MSDN vs. Adobe Help

25 06 2009

I should admit that MSDN C#/Silverlight articles quality is better comparing to the help system of Adobe for ActionScript/Flex.

It’s hard to explain but the feeling is like they are written more professionaly and with keeping a large picture in mind.

MSDN site itself is quite ugly in design but that is minor thing as long as it gives me a good content :)





Operators overloading in C#: good and bad examples

23 06 2009

While reading “CLR via C#” of Jeffrey Richter, which I must say is a great book,  I’ve come up to the section dedicated to operators overloading. I think this is quite interesting feature of the language and it can be very practical. Mr. Jeffrey has delved into very specific details of how Microsoft recommends to design operators overloading and what is his personal opinion but somehow I was not able to get the clear view on the topic. Instead I found a very short and practical article here: http://www.csharphelp.com/archives/archive135.html

I think all authors should focus first on the topic itself and only then on their critics about how Microsoft or other compilers/languages producers do their job.





Viral Marketing

17 06 2009

Some time ago I have first heard about viral marketing in relation to social networks. It sounded interestingly to me since my interest in immunology. The word “viral” attracted my attention and I put it on a shelf for closer investigation a bit later when I have some spare time.

Today I’ve found that spare time and let’s see what wikipedia tells me on the thing: … marketing techniques that use … social networks to produce increases in brand awareness … through self-replicating viral processes…

After closer look I see that this is just a buzzword. I must say I don’t like buzzwords and moreover I don’t like people who operate with buzzwords. Such people immediately shows me their lack of fundamental knowledge of things which they try to substitute by words.

It may sound too aggressive but this is how I see it. Fundamental progress in any science and technology is not going through the ways of buzzwords. It goes through people who see a problem, analyze it and then creating a solution. In general this is called SYNTHESIS.
In case of buzzwords the process is reverse: people take already established things and processes to which they are not related at all, they call it with a nice word and try to bring it forward as something new and something their.

Advertising has been there long ago. Advertising in net has been there long ago. There is nothing self-replicating when comparing spread of information about printed advertisement and about advertisement in a social network. Just a scalability and speed is a bit different. There is too much ANALYSIS and too little SYNTHESIS. I think this is what all marketing and marketers are all about.

Watch more ads, take more bullshit ppl :)





Be Careful with Renderers

17 06 2009

After we added one fancy renderer to ADG to highlight our search results in case user performed a search I noticed that vertical scrolling slowed down way too much.

After some investigation we found the culprit: in case when no search was performed the renderer filled the cells with white solid fill using beginFill() and endFill(). We substituted this to just graphics.clear() and everything was fixed. So it appears that beginFill() – endFill() is quite expensive though primitive operation. Not funny :)





My environment

10 06 2009

I’m growing and I need to move.

After recent talks about life with two my friends, one living now in China and one living in South Africa I thought for the first time that my life style should be constant moving. I would like to live one year at one place, the next in other and so on.

Also I clearly see I’m growing professionally. My understanding of what the software engineering is is broader than I can see in a lot of my colleagues. I need better environment and will start searching for it.





State Transition Diagrams with UI Mockups

3 06 2009

Bill Buxton from Microsoft Research in his keynotes talk on the MIX09 shown a very good idea I was not thinking about before: for each UI mockup you nead to have on the same piece of paper a small state transition/sitemap diagram that shows where exactly the screen represented by that mockup resides in the interaction flow. This is small but very important practice I think.

Watch the talk here.





The First Law of Software Development

3 06 2009

Today I have produced the first funny law of software development: if you’ve got to deal with a hairy DB then no matter of your effort you’d get a hairy application :)





Flex Builder: Memory Profiler Problem with Object References View

2 06 2009

Ok, now on Flex Builder memory profiler again.

It has Object References view which is supposed to show me which objects are holding my particular one from being garbage collected.

Let’s take a look what it shows me from time to time:

profiler fuckup

It tells me “expand to see references” but there is nothing to expand. Bitches :)





FX -> SL

22 05 2009

It seems to me folks that I will start mastering Silver Light.

I’ve invested few hours of my time just to read as much of possible forums, etc. as I could to see what community is thinking.

Multiplying it by everything I’ve heard from the guys I’m working with the conclusion is to install all needed staff and start coding for SL. Seems it is already mature enough for not being a headache.





Mate: Drinking and RIA Development

21 05 2009

It happened almost at the same time when I introduced myself to Mate-as-beverage and Mate-as-Flex-Framework :)

Both things are good stimulators. When you drink Mate it is a kind of a ritual, not just like you buy a bottle of Cola and just drink it. To prepare a good Mate you need to put a piece of your soul and some good thoughts into it, not to say about technology: the water must be of a particular temperature, you should know how much Mate to put in, how to pour water into it, etc. etc. When you done it well you are relaxing, your friends are relaxing and everything is just fine, everyone enjoys a good drink. If you done it improperly people will drink it, they will tell you it’s tasty but they will think “what the fucking crap is it?” ))

The same thing with Mate framework. Proper developer armed with Mate will make the design simpler and cleaner. When applied in wrong way it can make the application heavy and hard to understand. After few monthes of sometimes hard work I have something to summarize and say on this framework, maybe this will be helpful for some readers:

  • the first thing to say: coding with a framework is more productive then coding without one. This is true in general and true for Mate. If you don’t agree with this – go and code for some bananas.
  • Mate provides a variety of weapons that are nicely arranged as MXML tags. After you’ve become friends with few of them you can intuitively understand all others since framework is coherent and consistent. The latest thing I think is due to the fact that Mate is writen by a very small team and the core is actually written by a single man: Nahuel Foronda.
  • As it would be real damage for your body if you drink liters of Mate each day and if you don’t drink anything else the same damage will occur to your application if you use Mate here and there without a mind. I went through it and I know what I say. Do not use Mate if you can do simple things inside your single class. Do not overcomplicate the design. I mean if you can dispatch and catch some minor helper event inside the same object you should bypass Mate event maps.
  • Now about drawbacks. I encountered only one real drawback but in my case very important one: if you need to generate some models/views dynamically whitin the life-period of one swf and if you need to remove such views from the display list and substitute them by fresh ones you can go into trouble. The troubles will happen if you use injectors. Though the Dependency Injection is real power allowing you brain to not control each and other step in your algorithms sequences it creates a lot of bindings which  you can not delete in case you are removing your view from a display list.  So no matter how thoroughly you clean up your models/views that you don’t want to use anymore, no matter how many variable = null assignments you will do almost everything handled by those bindings will remain in memory and not GCed.
    Though still Mate can be used in this case: just without dependency injections. You still have EventHandlers, MethodInvoker and DataCopier workhorses that can save you a lot of time.
  • My next thought may sound a bit heretic but I decided to keep the rule: minimize number of injectors in your event maps. Almost everything you reference in Mate xml constructs you reference by class names, not by some ids of concrete instances. So this rule pretty implies that you need to minimize the number of classes you are referencing in your event maps.

In general: Mate should and can be used for real applications development. I am sure that each developer using this framework will serve his own unique flavor of the Mate with its own taste. And this is very right thing: we are all different so why shouldn’t we do different code :p

When I decided to use Mate in my application I didn’t know ANYTHING about it, just have read some websites with different people impressions. But I decided I will employ it anyway. Now I have a framework in my pocket but the pocket is large and there is still a lot of place :)