This year was one of the most eventful, probably as much as year 2002 when I went to study in the United States. Year 2010 was comprised of 3 equal parts: in Finland, in Russia, and in Taiwan.
In the beginning of the year I was still in Helsinki. However, I decided to wrap up working in Finland and moved back to Russia in May. Then I spent the summer working on my startup. Cloudy Security, the company that I am founder of, offers consulting services in cloud computing area. In September I went to Taiwan to work with Industrial Technology Research Institute, a government-sponsored organization known for creation of Taiwan laptop industry, as well as many other high-tech initiatives. So I am staying in Hsinchu, Taiwan since then, even though I had to make a few trips to Russia.
At work I was dealing mostly with embedded systems this year. Various Linux middleware libraries, applications, as well as kernel were areas of my work. Another reason why I compare this year to year when I started studies in the US is that I had to learn lots of new things during this year. Obviously, embedded computing is extremely hot area during these days. Everybody is trying to move to the cloud or to mobile platforms – this offers better flexibility and reduces utility bills.
But I was working on my own projects besides that work in the office. JavaScript is the language I like a lot. To me it seems that in the world of desktop development (or traditional Linux development using C++) lots of work has been done in the area of designing the software. I like to learn how to use design patterns. JavaScript is used in developing browser applications – an environment where design patterns are used all the time. But JavaScript itself does not include many object-oriented features. Implementing design patterns in JavaScript is a challenging and enjoyable task.
I have worked on a number of my pet projects, none of which I had time to release. In the beginning of the year I worked on improved Timeline. I want to place arbitrary widgets on SIMILE Timeline, for example to make it possible to interact with events on the timeline – vote for events you like, rate them, etc. This work has been completed but I just did not get a chance to publish it. I still want to do it.
Next, I worked on Norton Commander for Web – a tool with the look and feel of popular file manager, except that it runs on your web site. This tool should help web developers a lot. Of course, I started implementing it in JavaScript. One can ask: why do you need a file manager on your web site in addition to what the hosting company offers? Indeed, most hosting companies offer a file manager that the owner of the web site can use. The drawback of this solution is that it takes lots of time to login into the management console of your web site (oh, btw., what is that top-secret password needed to access my web site?), and often those file managers are implemented in Flash. Last but not least, the UI of file managers I have seen is in no way similar to that of Norton Commander, a file manager with arguably the best UI. This is why I decided to re-implement Norton Commander but in a totally different environment – in a web browser. Also, HTML5 makes it possible to access local file system, therefore one can use this file manager to work with one’s computer as well.
Then in the summer I worked on updating my web site. I implemented new layout and menus. The menu at the top of the page allows one to navigate quickly to one of the few areas of interest: blog, projects, hobbies, etc. In addition, the accordion-style side menu makes it possible to navigate within sub-sections of the selected area.
After I left Finland I still wanted to implement a few pet projects using Qt, the framework that I learned in Finland. But the coming Qt book to which I had access through Safari Rough Cuts grabbed my attention. I spent lots of time proof-reading it because it dealt with such advanced areas of Qt as web programming and model-view design pattern. I communicated often with Mark Summerfield, the author of the book and my name is mentioned several times in Errata. Also, I found a bug in latest release of Qt while reading this book.
In addition to programming, I began creating 3D models using Google Sketchup during this summer. First, I read a book called Sketchup for Dummies. Then I created models of two schools and a church in my home town Dzerzhinsk. It is a very enjoyable process and gives you lots of satisfaction when your models are accepted to Google Earth. Everybody can see the school you went to as a kid!
In the Fall of 2010 I moved to Taiwan, such a beautiful country! I traveled a lot to various parts of Taiwan, as well as to Hong Kong taking lots of pictures. Therefore, while writing my travel reports I needed a convenient tool to insert pictures. This is why I decided to write a plugin for WordPress that would allow me to insert a small image gallery to my blog. This plugin allows one to select the images (thumbnails and full-size) when one writes a new blog post and generates appropriate JavaScript code. Then when one publishes new blog entry a good-looking photo gallery appears. Despite the fact that WordPress offers thousands of plugins, very few image gallery plugins have been written so far. I am still working on improving the UI of this plugin. It should have intuitive interface: palette of images on the left-hand side (your photo library) and the images you selected for inclusion into the blog post on the right hand side.
This work led to the following idea: I would like to re-implement Qt library in JavaScript. The advantage of Qt is that it offers well-thought design patterns to implement UI. The advantage of JavaScript is that it runs in web browser. Therefore, with Qt APIs available in JavaScript, one can easily port Qt applications to browser! But of course this project will require lots of time, there are so many classes in Qt.
To summarize, this year was the year of cool ideas. Lots of prototyping has been done, but nothing released yet. I am already counting down hours until the beginning of year 2011 – then I will go ahead and release the pet projects I have prototyped, and work on more pet projects, and who knows what!