Feed on

I found this article on one of pretty popular Russian IT resources. Few weeks I could get it out of my head because of the way it was written and how accurate it was. So I figured I needed to share it with someone to let it go. Original post can be found here http://habrahabr.ru/post/145960/. Note that the story was written in the spirit of outsourcing (1) and translation quality may obfuscate some cultural elements (2). So do not judge strictly. Here is the story:

When I* kept saying that it was required to invest into blogs and user groups, you kept buying ping pong tables. Now we have a whole bunch of mediocre tennis players but missing the community.

When I kept saying that it was wrong to ensnare tech people to events by offering food, swag, you kept buying pizza, drinks, t-shirts and iPads. Now every event starts, goes and ends in search for freebies.

When I kept proposing to invest money in professional trainings, you kept paying for recommendations. Now nobody works, everyone just recommends.

When I kept saying that those who does not know how an abstract class differs from an interface should not be paid thousands of dollars, you kept doing that. Now everyone makes thousands of dollars but hell knows how an abstract class differs from an interface.

When I kept saying that technical articles needs to be written by developers, you kept reading TechCrunch and discussing companies. Now TechCrunch is full of respect but nobody writes technical articles.

When I kept saying you can’t call everyone a “senior”, you kept doing that. Now we have a bunch of 25 year old “seniors” and all the same nobody knows how an abstract class differs from an interface.

When I kept saying that people were more important than processes, you kept organizing agile meetups and installing scram-boards. Now we have total scram but projects are still executed in f*d up way.

When I kept saying that it was wrong to ask puzzles in interviews, you kept asking why manholes are round. Now everyone knows why manholes are round but how an abstract class… well you get the idea.

Now when you say that developers are lazy and unproductive you are not far from the truth – because you did everything right!

* “I” is a collective character, all coincidences are random. 


Android Source Code

I was involved into related activities lately, so there are a couple of things I would like to share.

I’m not going to tell the whole store here, as it is covered rather precisely in the official papers on the point:

  • http://source.android.com/source/downloading.html
  • http://source.android.com/source/initializing.html
  • http://source.android.com/source/building.html
  • http://source.android.com/source/using-eclipse.html

The purpose of the post is to make some notes on the setup process and to go a bit further. Major point on this way is to understand that at least basic literacy in Android development is required to pass through the process smoothly. You should not start platform investigation with building Android core from the source code. Android SDK itself provides the environment covering the entire life cycle of native application development. So make sure that you really need it, before you go.

Continue Reading »

Tags: , ,

Finally it happened! It is pretty important milestone for iRemote. This story walks you through all the intricacies of bringing iRemote to Android. Enjoy!

We started almost from scratch.

Then we discussed, what to do with what we had.

Continue Reading »

Tags: ,


From the perspective of ordinary developer Android seems to be really good platform. Those who cry about fragmentation, different devices, etc. etc. just never launched Eclipse in their life (and never wrote BlackBerry apps). Above is what I thought about this platform 20 minutes ago. And the fact that multitouch is really MULTI only in bounds of one view crosses out everything. I see that it works good (I mean precision of gestures translation into OS callbacks) on most devices and it makes me even more sad. How come? You (Android team, all and sundry) did so many things to make developers’ life easier and finally decided to spoil it. Everyone know how to implement it correctly, when you (platform in this case) operate with hierarchy of views. Just bind events to views with any sort of hit-testing approach and you are done. Remaining part is set of helpers to deliver only appropriate events to each view. I did it in a week, when I was working on input subsystem of OpenGL framework for multitouch-enabled devices. In our 10-maximum-fingers-world all above mentioned algorithms are fairly fast on 1GHz (almost dual-core) CPUs.

UPDATE: Android 3.0 (API level 11) seems to have this feature integrated (android:splitMotionEvents and android:windowEnableSplitTouch).
Now the question is when will Google announce its strategy on separation (or merging) of OS branches for phones and tablets. Currently Honeycomb is tablet-only platform.

Tags: ,

I know there is a guy, who can’t wait for this feature to become available for thousands of WP users. And by happy coincidence he has a birthday today!

Alternative content

Get Adobe Flash player


I decided to start my AppStore experience with iRemote because this utility most clearly shows the direction of my current research in software development from both technological and conceptual perspectives.

iRemote Suite official page gives detailed description on its functionality and features. In this post I’m going to touch architectural aspects and briefly describe application perspectives.

Stack of utilized technologis gives the best impression about core idea of iRemote/Remote PC architecture, from my point of view.

Technologies stack

The mainstream of this project is the separation of platform dependent concurrency and networking tools. CommonKit library (which is now in process of active development) was used for building object, concurrent and networking model of both applications (iRemote for iPhone OS and Remote PC for Windows).

Here I’d like to share my plans on iRemote perspectives. Portability is mainstream tendency for now. And the first thing I’m going to do is to publish Remote PC for MacOS X. This is caused by high amount of Mac users among iPhone owners. The development of Linux version of this tool has rather low priority. What concerns iRemote, it is difficult to preffer any mobile platform. I consider the following candidates: Blackberry, Windows Mobile and Android. But I don’t know yet which one should be the first. I think that statistics, on which one of these platforms is the most widespread, does not matter in this case. Besides, I should note that I do not plan to publish desktop client for Remote PC. This is caused by a number of reasons. One of them is that the philosophy of my application stands too far from fully featured control over another workstation (from desktop, not from mobile device).


Of course, porting is not the only tendency of the solution evolution. In nearest time I’ll focus on extending functionality of iRemote for iPhone. Most likely is that iRemote Pro will appear wih extended feature set. These new features will be fundamental (not just a couple of new buttons, hot keys, etc.) but exclusively within application mainstream: remote control over workstation via mobile device based on custom protocol. This underlines the fact that I don’t plan to support any existing interaction protocol (like Remote Desktop or VNC).

Tags: ,

BlackBerry Platform

Looking through the set of tools, APIs and advantages for developers of Research In Motion products it is difficult to disregard the care of the platform. Someone may ask: “Have you ever seen a developer who intentionally decreases potential attention to his product?” Of course, the answer is generally – “No”! But. After having a challenge round the iPhone development I can surely say that it is possible. No matter what the reason was but Apple intentionally locked a set of potentially interesting and popular features to regular developers. Thoughts?

  • Paying attention to the quality of the software. Maybe they decided that they can control the quality of the software by giving rights for using private frameworks to individual groups? Wrong decision. It is much more efficient (but more difficult and expensive) to perform at least minimum stability evaluation at the side of content provider (Apple Application Store). Instead of preventing access to important framework they would better to confess and proclaim something like “Do not use Quartz for 2D game development! Use OpenGL!”. Or any other of tons of other confessions they should do.
  • Overwhelming desire of getting as much profit as possible. You definitely can use embedded (but locked into private framework) map component if you become their friend. What you should do to achieve such a title? $?
  • Anxiety about the future. Maybe they afraid to lose their endless stream of bright ideas. In this case they will probably integrate video calls, video recording, mms,… (other tons of things you would like to add goes here). Have you seen a picture illustrating differences between iPhone (2008) and stone (40,000 B.C.)? (Ask Google for “iPhone vs stone”).

Make sense?

In any case, platform understanding comes in at least mouth or two but even after first glimpse at BlackBerry platform I can express it as “I see what to do attract potential users and to occupy the niche”. Business smart phones in North America is more then just interesting ($) target group.

What really attracts attention from the development point is that the whole stack of technologies is based on existing standards. It looks really stable, reliable and safe. This is a really good example of achieving business benefits through architecture based approach. If you decide to build safe device you have to start with the development of safe platform. Someone may argue that it is too simple and obvious to even notice it. But why do so many of us (starting from platform vendors and finishing with developers) make so much wrong decisions, if so?

Tags: ,

“It is always sorrowful to see a whale dying…” This phrase doesn’t exactly reflect my current state but similar thoughts involuntarily come with understanding that you should not deal with anything for the whole life to do it better than someone who has just got started. It often happens when the beginner cames with bright ideas, clear understanding of the situation and… when the beginner is Google…

Today I’ve reinvented Google Code for myself. After visiting some pages related to projects hosted by this resource I finally decided to create a mirror of Common Kit there. And as the result I’ve just published news at SourceForge on moving the project to Google Code. I’m not going to write a novel on differences between these resources but I want to point some major advantages of the service provided by Google:

  • Easy to use
  • Lightweight UI
  • Complete lack of advertising
  • SVN as a code version control system

It is difficult to tell whether the situation is similar to the one occurred with search engines (taking into account that SourceForge is 6 years older and the fact that it hosts approximately 180,000 projects). But at the moment I don’t see any reason to host a new project using this Titan. It is much more preferable to take advantage of Google alternative.

PS I am beginning to emerge view that in case of choosing between two different solutions for your activity (business, education, fun.. whatever) you should choose the one offered by Google without going into details.

Tags: , ,

What is more important?? It’s up to you to decide… but it is indisputably that owners of 1.x iPhones would not be satisfied with firmware update while comparing their device with renewed one which is twice cheaper.

Key features of iPhone 2.0 presentation made by Apple CEO Steve Jobs (http://events.apple.com.edgesuite.net/0806wdt546x/event/index.html) at WWDC few days ago are listed below:

  • 2.0 firmware release (with new features embedded in well known software).
  • 3G iPhone with GPS onboard.
  • Several comments of enterprise clients on platform successfulness were given.
  • Several betas of third party software were presented by especially invited developers.
  • Application distribution schemes (App Store, Enterprise, Ad hoc).
  • MobileMe feature was introduced (this feature is not free(!), but “extremely” useful).
  • New service which allows developers to avoid need in background processes.
  • Maps application with GPS.

Most of these events, releases and features are timed to the 11th of July.

PS I’m practically sure that second (front) camera will be onboard in nearest future.. Not tomorrow, not next week but it must appear by July, 11.

Tags: , , , , , ,

iPhone Setup

I’ve recently mentioned the procedure of application uploading and launching on the device. I find this topic worthy of separate post. I involuntarily associate it with a puzzle of especially exotic kind. And what is much more interesting is that there are at least some members of my team who completely agree with me. So.. Let’s get started.

This guide is for launching your application on the iPhone or iPod Touch device. All steps from this guide divided into two groups on the following criteria: steps marked with letter A are performed by team administrators and those marked with C must be complied by your customers (or someone else to whom you would like to provide an opportunity to launch your applications on device during beta period).

Continue Reading »

Tags: , , ,

Older Posts »