Monday, November 30, 2015

Not this again

iPAD nitro dev day 




Today's target is an iPad original which has been in a deep sleep for a very long time and took what seemed 6 hours of trickle charge yesterday just to get screen to display the zero power error.

  • Purchase new iPad Cable NZ$30 
  • Charge iPad back from a brick 4h 
  • Charge iPad to actually boot 6h 
  • Reinstall Xcode 6.1 
  • Renew Apple Developer Membership NZ$149 
  • Undo Xcode 7 damage (see image above)
  • Resolving signing issues - 5 seconds (TFCFT)
  • Minimum target set at 5.1, blank application up and running
  • Apple receipt arrives, APAC region FTW.
  • First build #include not found; oh, this code has has not been here before...

Building iOS 


It sure is nice to be back on an iPAD. The 5.1 interface feels rock solid and shows up this long suffering Android user what a sticky mess Lollypop really is.

Android inherits a lot of rubbish directly from Linus, useless audio latencies and the need to "borrow" the user interface platform from elsewhere. Cue the stolen handbag warning slipping on massive Trolltech turd....

Oh that was nasty, not sure where that came from

New __IOS__ fixes in the build time is about 6 minutes and we have no known issues.


Linking iOS

When the going gets intrepid...

Just to make sure things were good on the tool front, we ensure monkey-x mojo2 bouncing aliens bounced on the iPAD original, and they did.



And just when you thought things were focussed we get diverted to try and win free swag on the inter-webs.

My Music Tech Design Entry




What I will build if I am selected(the more detail, the better!):

The Nitro Practise Session helps students practise and progress in musical skill.

It is intended to be used as teacher aide and self study gadget to give feedback on student practise sessions and encourage self improvement.

The interface is intended to use tone recognition as it's primary control interface and a fun R2-UknowWho style method of syntax to convey it's simple vocabulary.

Tools such as auto muting metronome and musical mime game will add small amount of scope when authoritarian level is set to relaxed.

It is intended that users of the Practise Session will improve time management when balancing the rhythms of music and daily life.

  • Help track weekly practise goals with time management function
  • Musical interface - play the notes A B C to interact with Practise Session interface
  • Multi Instrument - scale and arpeggio rehearsal modes are instrument agnostic
  • Expansion - provide SDK to allow application ecosystem and drive music community


Hard to pass up an electronics competition with this awesome axe as a prize:





Element14 are like Farnell but as is demonstrated here - rocking with star power.

Nitro iOS Linking Part 2

I need to keep reminding myself of the design pattern - the plan, which I have decided on.

Fat client, thin server, virtual cartridge.

The build of the client engine is done in volatile storage using cmake automation.


In the interests of cmake sanity we are trying to keep the bulk of build of the static 

So with that in mind we extend the automation to copy the simulator and universal release builds into our client projects and climb back into the cockpit.


TBC

A summary of this afternoons efforts will be posted in due course.


[EDIT]

After much deliberation it has been decided to remove SDL from Android and iOS clients. The reason is a simple not fit for purpose.

Skill sharpening can be a good metric when designing components of a stack. It is lucky for me that running nitro as close to the metal as possible and the value I accord familiarity with native Android and Xcode development skills means a win win. A third win can be considered with tidy up of platform abstraction getting a nice prod.

Sunday, November 29, 2015

SVG Test #1

While refreshing our knowledge of SVG we find smooth animation for duration of 2h and 20h OK.

The third line down, with a duration of 200h not so much.

The idea of an animation evolving over such a period seemed an obvious artistic design direction so it is a surprise for Chrome to say no-o-o-o--o.

duration precision test all three lines should match but precision fails on third

Saturday, November 28, 2015

finest moment








This is a screenshot of Guardian a game released by Acid Software in 1994.

First Generation Digital Linguists

Acid Software had it's roots in school hood friendship and the progressive creative environment that was the Selwyn College computer room.

Being a huge fan of your mates games made us all feel pretty grouse in school back in the early 80's.

I was such a big fan I set up shop with Mark years later so that we could continue to live the digital dream, and kill all aliens...




Half court basketball court in the quad was nucleus of all social interaction.

Sense of community when student radio station was broadcast from the library was typically excellent.


* as time passes it seems quite evident some of these people were to blame for our non-convergent independent streak.

We were I think lucky to be the first and possibly last generation determined and expected to let our hair down.

Mr Lowe was a maths teacher that led you along the path of logic with more charm and humility than anyone I have since encountered and one hell of a method when dealing with certain boy students who were inevitably complete dicks on a regular basis.

Mr Steele was the guy who allowed you to book an Apple][ computer to borrow for the weekend (typically a 2 month waiting line).

Anyways, enough with the name dropping and on with the end of the millennium.

The 16 Bit Grunge Generation

Unlike the beige coloured cricket players and the green monochrome pixels of the first generation, the second generation of home computers including the Commodore Amiga spilled colour and stereo sound on command.

We didn't stop playing 80's video games in the 90's but we did start publishing our own products internationally.

 

Including the programming language of champions Blitz2.

And for me, my finest moment in history of digital deposits made in 12 bit (4096 colour) video game period - the publishing of Mark Sibly's Guardian.



Recently spotted in the pages of this zarjazz book and other places of the net. Check out production values and the polygon count of that attract / intro!





End of Era

The Philips CDD 521 burner was $9800 investment in a string of CD32 titles for an underpowered game console that predated arrival of Playstation 1 and it's superior controller.

Both systems featured the all new "Shoulder Button" technology.

Unlike shoulder pads and leg warmers, shoulder buttons live on hurrah.

The shoulder buttons on the CD32 controller were brilliant.

The D-Pad that lasted 7.5 hours of game time before self imploding was not brilliant.

A decade that had began at full volume with Nevermind ended abruptly with Commodore and Cobain both imploding.


Thank goodness, the new millennium did arrive early with Ridge Racer and Mario 64 kickstarting an entirely new generation and grade of console entertainment.














Wednesday, November 18, 2015

work in progress 2

Nitro V8 Adapter Cart

Google can be pretty funny with their names. The tool to configure V8 builds is called gyp which is such a lovely term, in just 3 letters the company philosophy is thereby enshrined.

gyp1
dʒɪp/
informal
verb
  1. 1.
    cheat or swindle (someone).
    "a young inventor gypped by greedy financiers"
noun
  1. 1.
    an act of cheating someone; a swindle.

I would consider it even more amusing if gyp was the underlying python management build system for their advertising engine. If sentient systems even need build system management layers....

Anyways, after expanding the main partition to use entire SD card gifting the filesystem with 24GB of free space, today may feature an error free build of the nitro V8 adapter on Pi2.

The build itself started an hour ago with the simple

make -j4 native

The nice thing about V8 is it has a big brother Chromium the browser technology of champions that will, down the track, provide an even more substantial challenge to our mash up plans for 2016.

man page

Linux is a man's world. From the command line type man man for proof.

Here is the boilerplate for the nitro man page.


For those that don't know me, the concept of a bitwise interface is intended to make you giggle.

Nitro V8 Pi2 Progress

OK, after 2 or so hours yesterday's build died during construction of the google tests.

I and the internet both have no idea of the cause so more time required before hitting build on that one.

Argument Encoding

There are two places so far I plan to use a json encoded string as function interface.

Both physics bodies and entities and I suspect materials are going to use constructors based on many arguments encoded in a json object.

The number of methods provided by the platform continues to grow but this will definitely be the last week before a self enforced API freeze occurs.

Files of Interest


The NitroSDK API in C header form can be reviewed here:


It is intended that every function that remains after next cull will be available via local binary, remote network and virtual proxy interfaces.


The only release scheduled in 2015 will be for Raspberry PI after which commitment will switch to manufacture of value added content.




Sunday, November 15, 2015

work in progress

Todays blog will feature a train of disparate thoughts as I unravel a plan to get me to release.

New Target and Language Tables 

On realisation that Python holds top spot for Raspberry Pi developers I am going ahead this week and adding both Python and ECMAScript support to the Nitro Entertainment System SDK.

I have just added a read me and dreaming of a release before year's end: 

https://github.com/nitrologic/nitrosdk

The python support looks about as easy as an easy thing can be.

The V8 embedding for ECMAScript support is not so easy, but pretty exciting.

Evolving Concept

The Nitro SDK exposes both scene graph and frame buffer access points to a persistent meta-verse. 

The default home scene for the first release is likely to be a bench, an empty video game cabinet, a virtual 3D printer in the corner and virtual analogs to all devices discovered on the local area network with the nitro runtime installed.

The aim is to produce end nodes to allow creative potential to be applied and orchestrated in a realtime and immersive manner.

Mystical Lost Packet

Other vectors of research include the UDP-based Data Transfer Protocol or UDT4 to it's friends.

After success exchanging OSC packets with Derivative Touch Designer and Android Touch OSC (no relation) using plain UDP and a discussion about packet loss in the pub this protocol looks worthy of serious consideration.

3D Import

Like the Nitro3D API it seems wise to consider separation of file format for mesh and scene graphs with bones being replicated and or common to both.

The FBX importer got a few more improvements but not really functional.

Being undecided about the native geometry format we visit the very minimalist STL format, popular with 3D printer users and supported as first class citizen by the folks at github.com.

The Logical Mind

When exploring a space resonant points can indicate relationships.

A mathematician will recognise a common element and look to see if the equation from that point of view will simplify or add complexity when stating the equation.

A judge will iterate the woven relationships of a society's law in order to pass summary that is sound from all sides.

An the recreational programmer, well that is a topic for another day...



Here is a prototype from 6 months ago, with new foundation work complete a reconstruction period is nearly due.

Saturday, November 7, 2015

Soft Release Sunday

We begin with a picture of my project in it's current state (minus the new _gnu binaries).


The binary files in the SDK folder represent pre-release version of the Nitro Entertainment System.

Due to the nature of cross platform distribution we are still learning the ropes of best practise for binaries.

The targets in order of previous release schedule are:
  1. Raspberry Pi
  2. Apple Mac
  3. Windows 7/10
  4. GNU Linux
Some details of each of the platforms follows beginning with the star of the show our favourite kit set computer from the Kingdom of the U the Raspberry Pi. 


Raspberry Pi


This budget computer is in space. in  DIY arcade machines, on my desk in quantity, decorating shelves of millions of good intentioned bargain shoppers, and most importantly in the minds of millions of school aged creators tasked with exploring the new frontiers of the digital age and the internet of t.

Unlike the other platforms git-lfs is not required for Pi to use initial drop. The binaries have been tested on both Wheezy and Jessie (Raspbian Debian release names) and using the SDK should be a simple matter of clone and run including the use of a prebuilt monkey code compiler and a suite of tests demonstrating Nitro SDK performance with various languages.

The Nitro SDK does require C++11 which for Pi means installing g++-4.9 toolchain.

Available now is an upgrade to Jessie, recommended as it saves the hassle of installing the g++-4.9 toolchain manually on wheezy and has git-lfs support which may be required by future releases of the Nitro SDK for Pi.

Apple Mac


The NitroSDK initial release has following dependencies on Mac:
  1. MacOS 10.10 or above
  2. A current version  Xcode 
  3. git and git-lfs tools
With this configuration installing the Nitro SDK should be a simpler matter of clone and run.

Windows


The NitroSDK initial release has following dependencies on Windows:
  1. Windows 7 and above 64 bit only
  2. Visual Studio 12 (Windows 7) or Visual Sudio 14 (Windows 10)
  3. A current version  Xcode 
  4. git and git-lfs tools
With this configuration installing the Nitro SDK should be a simpler matter of clone and run.

GNU Linux


The binaries distributed with NitroSDK are designed to work with following:
  1. $HOSTTYPE = x86_64
  2. $OSTYPE = linux-gnu
  3. git and git-lfs tools 
For binaries to download correctly with git clone github's git-lfs extension is needed.

[edit] Due to git versions on Amazon Linux AMI separate _gnu and _deb editions have been released in which the _gnu binaries are not tracked with git-lfs. 

The _deb binaries are built on a Mint VM, the _gnu on an Amazon EC2 instance, both have not been tested for graphics.



To Be Continued...











Sunday, November 1, 2015

pi@raspberrypi testing 2

Tasks before first release include copyright notices:


That list is missing the work in progress additions of portmidi, sqlite3, portaudio. 

The editor in use and a little odd on the C++ string handling.  Visual Studio Code also adds line status bars, still getting to know them, perhaps they denote health.

Code is an editor based on the atom and node github projects which for me are new shining lights on the horizon of cross platform goodness.

... a bit later


With portmidi and portaudio underway it is time to look at nitro rom design.

The first type of rom is a currently a dynamic library in native OS format coded in monkey language. The native formats being .dll, .dylib and .so for Windows, MacOS and Linux respectively.

The second type of rom is built using the C/C++ language directly. The first instance of these roms is an adapter rom based on the mame project and built using published cmake template.

The cmake build technology has made development of the proprietary core of Nitro Entertainment System a breeze. To use the same build chain for open source rom based work is going to be great and will play a big part of tackling some of the more significant future developments planned.

... a bit later

A meta-verse packed with historical data allowing virtual time travel.

Starting with some collections curated by yours truly of the year 1981.

Matrix white floor with crystal clear HD objects from my growing turbo squid license pool.

The unit model test is a box of sorts.



This arcade machine from 1981 has a great back story. Erased from history years later by a machine from the pinball dimension featuring a hollywood singularity of same name.

The purpose of these boxes was to allow youth to rank themselves among their peers on a public notice board called the High Score Table. 

A coin or credit is dropped in the slot at the front causing the machine to emit a loud and empathic greeting. 

A spinoff project is envisaged in which an Arcade Machine Orchestra performs coin drop sequences using both time and space connections to the meta-verse.

More project news coming soon on the new Acid Software facebook page.