I took a look out there to see what people are doing and a found some very, very interesting things using different approaches. The ones that took my attention are those using metaball concepts; it is really crazy because of the metaball algorithms (the well done ones) have to draw the shapes pixel by pixel, which is something very expensive in terms of CPU time. The more balls the heavier in terms of performance but it gives us a good look and feel.
I did a very quick test (just few lines of code, nothing finished yet) using this metaball approach before answering to my friend. In this example I am just applying some gravity to 50 balls (with no collisions yet) and for rendering the whole thing in a 200x400 pixel canvas I am using pixel bender (it gives me multi core abilities). It is very, very simple, and easy to understand, only few lines of code. Take a look on how it is going on this first stage, as soon as I have a better idea about what/how to carry on with it, I will publish my progress on it.
]]>
]]>I still remember the first time I was facing a Flash exam, It was in 2001, I was somewhere in Costa Rica on front of a VUE terminal doing the "301 Macromedia Flash 5 Developer" exam, sweating and panicking, don't know why. I think that it is really important to have a "very clear" reason to take any exam in order to avoid feeling disappointed afterwards, no matter what the result was. Some people think that because of they are ACE (Adobe certified experts) then...
]]>I've been extremely busy during the last months; working up to 16 hours per day and not enjoying much many of the things I was doing, this is not all about feeling tired and exhausted, this is about something else. Basically I've been working on many things simultaneously parallel to my full-time job at central London where I've been working so far almost 5 years. For a while I've been getting interested in outside house things, working in some personal projects, doing research on things that don't have any relevant application to my real job, unfortunately all this made me feel overloaded and mainly very tired. Sadly I ended up on these days with one very simple question but constantly hammering my head; Why am I giving top priority to the things outside work? Why are more important the things I am doing outside than my full-time job, If my full-time job is the one that gives me the "real potato". I am not entire sure about the answer for this question but what I am completely sure is that the people who I work with don't deserve being disrespected, they are making a big effort to achieve whatever they are aiming to and I just can't give them the best of me any longer. I just realized that for long time I haven't grown into the company structure, I am exactly the same employee who I was 2 years ago intellectually and professionally, that's maybe the answer for many of my questions, I think it is really important to detect when things are restarting over and over again (in a loop) like a scratched vinyl. Although it wasn't an easy decision to make a couple of weeks ago I have decided to resign, and I did it.
There is a quite complicated story behind all this, especially because we are never totally sure about the right moment for leaving our jobs, even more now with all this eternal recession subject, unsatisfied people getting crazy on the streets (London riots), many out there unemployed, etc. But the truth is that there is never a proper moment for it, this is like when we want to break up a very long relationship, there is always something that makes us step back, especially our memories, ho god, how much time of our life spent at our jobs? 60% of our time awake?
Some of you are asking yourselves, what do I do for living? Well, I am a flash programmer since 98, but later on I got involved within the gambling industry in 2003 (when I used to live in Brazil) working in C++ making maths for cabinets "offline bingo games" and then when I moved to the UK (winter 2006) because of my previous experience, my destiny was carry on working in the gambling industry till now. The company where I work for, makes gambling "casino games" for different operators like William Hill, Ladbrokes, etc. I have learned a lot from this, there is a crazy science behind all this, especially if you're dealing with algorithms in the frontend simulating results that were processed ages ago in the backend. Do you remember my first article "predicting the landing position"? Anyway, this is it, enough for me; it is now time to flip over this page of the book of my career and move on to the next stage. August is my notice period at my current job.
Well, Flash On The Beach was always a very good event for getting inspired and mainly for networking. This year I am going to be there all days, attending all the good and bad sessions. By chance if you're going to this event, do not hesitate in contact me, send me an email, let's catch up there at any time, let's have a beer during the intervals and/or at the end of each day, cheers in advanced.
I would like to share with you an amazing video someone sent me recently, it is called "surprising truth about what motivates us" take a look, it really worth http://www.youtube.com/watch?v=u6XAPnuFjJc
]]>So because we know all these consequences (the weight of feeling what was done by us) we always try to do things better and better, and better means more efficient, smarter, reusable and mainly maintainable. This is when the experience comes over, before hand, the things we do normally satisfy all the possible execution scenarios (somehow we know them), that's what we love, have fully control of the fluid course, being masters of our own bubbles.
Over a decade dealing with programmers I haven't met anyone mediocre. We always try to do things well done and the thing we hate the most is when it is not actually possible. The main big problem comes when there are changes that need to be done in our programs for satisfying requirements that were not thought when everything has began; sometimes our programs fail after changes and it is in those moments where we ask ourselves. Are we not good developers because our programs are not flexible enough? Sorry, this question was made wrong; Are we bad developers because our vision is not good enough to predict the future?
So many times we have to forget about the things that we have invented, just throw them away, these things were made for satisfying requirements completely different of how the final requirements look like at the end. This normally happens when the prototyping process and final development are mixed in one single step. Unfortunately sometimes it is really hard for us say no. The word "no" is a synonymous of "incompetence" for some developers and what they still haven't learned is that this is a straight path to something everybody hates a lot, frustration. Even money does not compensate how it does feel; at the end what we are wasting is our soul, aren't we?
There is something very weird when programmers are coding, it is all about feelings and doing their job professionally, we all know these two things shouldn't be mixed but unfortunately most of the times they are, why? Cleary because we are not gluing bricks, we are inventors. Regardless which kind of language we are using; there are very strong reasons to explain why our code sometimes looks "beautiful", or sometimes it looks very messy, or simply very academic which some people can follow and feel indentified with.
It looks beautiful when "uniqueness" and performance, both together reach the limit after satisfying all what it was meant to be for, there is nothing more rewarding than that, it is a shame we rarely have the chance of sharing this emotion with someone else, it is a shame we normally later on realize it is not as unique as we thought because of people's feedback or simply because it was already invented by someone else but, still it is the charm of the whole thing I guess. Academic code is always following predefined patterns in order to be compatible with someone else, sometimes we have to code all together in the same style, following always a common convention, especially when we are coding in co-op mode (within a bunch of programmers). But hey, is it not really frustrating when we lose control of our source code? It is sad; it is frustrating when all comments in our code don't match with what the code does in execution after changes, changes and changes. It is crazy when we need to debug something and we can't even have access to the output log of our program because it looks extremely messy with no sense. Funny thing, many people always end up doing things like Log.fatal("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "+myvar);
I think that the only way to avoid all this happen is identifying beforehand if what we're doing is prototyping or coding a final development, separate these two things is normally very tricky, especially if we don't know how to say no, normally people can't visualize how complex things are (they don't have to) but at some point we need to say no otherwise what we will be always doing is, prototyping.
Remember, it is as important as the whole development process itself, allocating proper time for tidying up, for commenting, for packaging... a program is done not when it has been delivered with no bugs but when it is fully commented and ready to be reused. I know it is a boring task but it is extremely necessary if you want to keep your mood always up, your brain healthily.
]]>