• I can see both worlds... and kind-of 'going-back' to more 'free-flying' after or while still working with one leg+ in a 'perfectly well', very heavy (prison-gang)-tool-chained world is a challenge... to say the least... as for me.

    That does not mean that we have to be stupid and throw out all what 'we' have learned since the mythical man month and while growing with all the more recent code dev, build, test, deploy, and management 'techniques'. But applying them in their spirit by living out a more self-disciplined approach than in a system-over-policed way is the way in this resource-constrained (Espruino) micro controller world.

    I feel like being allowed to take the trainings-wheels off when switching to the Espruino platform. ...may be it is because I learned (and still learning) in the well guarded context. On the other hand I have to confess that even with Espruino I still take advantage of the guarded world:

    • To figure out and get to a working algorithm or formula I resorted to the browser world and made the development there to then 'move' the code (slimmed down) into the Espruino context (see reply #13 to this post about GPS code/module/library leaking memory before 'satellite lock', where I wondered what a more Espruino suitable way of (coding) life would be for a piece of (functionally) perfectly correct working code for decoding the latitude zones. How your code looks matters a lot.... Any whatso-ever tool-chain can do only that much 'good' to the code what is already implemented in the spirit of the code. Since the example is pretty small - and almost trivial - I just followed the spirit of what has been discovered in last decades rather than pulling in all the tool arsenals...
    • Another example is the memory manager for external memory - EEPROM/FRAM/MRAM - which is still in the works and has not moved yet to the Espruino wonder land ;-). A Clickable working example in this post. Just click the link of the uploaded - self contained - mm.html file. For more details how works and some use cases see posts #14 through #16 in the conversation about Running code off of an EEPROM.
    • Working lately heavily on the existing testing plug-in of the Espruino WebIDE I'm thinking to go beyond just jQuery with some plug-ins to 'hack' the DOM. I got triggered to work on the plug-in because I was looking for how I can do testing of my javascript code in the Espruino context (last but not least code that I 'developed outside and moved in onto' Espruino). I wanted to have only the runtime code in Espruino and 'all other' code 'outside', such as the regression testing and also monitoring. For the 'outside' the WebIDE is a good choice. It has already a certain amount of infrastructure and most important a good and easy to use connectivity in close vicinity to the board (over USB). Currently I'm tackling UI and functionality enhancements, but in the end I'd would like also to add (Espruino) event driven test data flow on individual test data point vs. current polling of all defined and enabled data points at once on interval . To do that I'm considering aspect oriented programming techniques to have the least - but dynamic - intrusion into the runtime code. Furthermore, I'd like to add some regression function, because current testing is all manual triggered and by 'manually' evaluating the test results (no assertions). - For now I still learning more of the WebIDE framework and setup and jQuery (...I'm more from the dojo / dijit and backbone / underscore / bootstrap wold - and miss some of that contexts...).

    As you - @boneskull - can see, there are things going on into your direction, but it should - as you say - be transparent to the user - if the user does 'not care' explicitly - and should happen in the spirit of Espruino... without compromising its resource frugalness.

    For sure, more is to be conversed about and figured out how to make available for the Espruino community.

    Btw, @alexanderbrevig, thanks to point out function edit. It does not only allow to modify (particular) code in an instance on the living object (without loosing the data) but also capture the final version to put it into the (edited) file... ;-)


Avatar for allObjects @allObjects started