Mrinal Wadhwa is a Software Architect form Bangalore, India. He is interested in User Interfaces, Databases, Data Analysis, Data Visualization, Networking, Distributed Systems, Cloud Computing, Software Design, Architecture, Scalability etc. and is working with a small team trying to bootstrap a software as a service product startup.
Yesterday, I gave a presentation to team of young and enthusiastic software developers on processes and practices that they must adopt as their team grows and matures.
The presentation tried to use Robert M. Pirsig’s philosophical exploration of quality in his book Zen and the Art of Motorcycle Maintenance as a basis to explore — what is good quality software and things you should do as teams and individuals when trying to produce good quality software.
“What’s new?” is an interesting and broadening eternal question, but one which, if pursued exclusively, results only in an endless parade of trivia and fashion, the silt of tomorrow.
I would like, instead, to be concerned with the question “What is best?” a question which cuts deeply rather than broadly, a question whose answers tend to move the silt downstream.
Robert M. Pirsig, Zen and the Art of Motorcycle Maintenance
Other approaches, ideas, and practices that we discussed and those that I’ve learned to embrace over the years are discussed in some of the following articles and books that I highly recommend to anyone who is involved with building and/or delivering software in any role. read more
I’ve been working on optimizing some javascript code these days and I came across a technique for optimizing long loops called Duff’s Device or Loop Unwinding which seems pretty well known in the javascript world but I haven’t seen anyone use it in actionscript code.
The basic idea is that there is a small overhead associated with executing the loop body, so if we unfold the loop in a way that it does the work of 8 iterations in 1 iteration, we can save some time. My tests show that in long enough loops this technique can give us 8x to 10x performance gain.
I haven’t talked much about our startup project factors on this blog yet, but you will hear more and more about it from me over the coming weeks. Today, we’re open sourcing a very small but quite interesting part of the factors web client code. The client is built mostly in AS3 using an in house framework we call crayons. Crayons provides an application architecture as well as a library of user interface components along with a component architecture, you could think of it as a mixture of functionality provided by flex framework and cairngorm, but several times lighter since it only implements functionality we need for factors and doesn’t try to be too generic.
Among other things Crayons has a built in data binding framework which we’re open sourcing today. Data binding in crayons in based on Signals where an object dispatches a specialized ChangeSignal whenever a bindable property changes, for example the setter of a bindable property data in SomeModel object would look like this … read more
Update: Troy Gilbert suggested a much better solution for this in the comments below that uses -frame compiler option over the [Frame] metadata tag, I suggest you use his approach since it stops the compiler from bundling in Flex framework specific code like IFlexModuleFactory that you don’t really need.
Today, I needed to create a preloader for a pure AS3 application compiled with mxmlc. I couldn’t find much documentation on the topic but this post by Keith Peters describes the solution in good detail, except his post is some what old and the code there doesn’t work with the latest compiler..
As Keith describes, the first thing you need to do to implement a preloader is move your application to the second frame of the movie, this is done by adding a [Frame] metadata tag above your document class and providing it with a factory class that will initialize your application, in case of Flex this factory is mx.core.SystemManager .. read more