Archive for the 'Flash Talk' Category

Correct Software Development – What’s That and What’s It for?

January 27, 2009

By Alexander Nemtsov

What is meant by correct development of programming systems? What is right? Be it a primitive “piece of cake” or an exotic product using modern RUP, XP, UML, or something still more sophisticated, when can we praise the development as correct and what are the criteria?

The leading question in the title is somewhat similar to a widely discussed holy war of Delphi’s superiority over C++ or vice versa. Quite a number of folks will ignore it and try to prove that all this sophistication is nothing but a bubble in comparison to Visual Basic, the best programming language of everything ever written with a skillful pen of a man. You know, it is so simple without any classes or something odd used to work with a strange, almost swear word UML.

Let such advocates stick to their point. It is a highly thankless task to argue a person out of their opinion. It is not our mission as well to explain which tools help create programs. We will focus on how programs are created, that is, highlight the process in question.

Fancy that! John Doe, a creative programmer, appears at work by noon but presses his computer buttons with great enthusiasm till 3 a.m. When John is in a great mood, he can develop a very sophisticated algorithm, a real thing to boast about. Being out of spirits or humor, he just plays Quake or chats with his buddies. In his free time or even hiding from all-seeing eyes of the boss John sometimes tailors small applications, say in Java/C#/Delphi (you can choose any you like and tick it). The applications are supposed to automate routine work in the accounting department where his girlfriend/grandma/friend works (go on ticking the variant you like). Avoiding any novelties and any help of testers or analysts – the latter will want to be paid, won’t they? – John gets a decent fee, which can be spent on beer with friends, and is absolutely happy about his life in spite of the crisis and all that stuff. Do you think such an approach without a line of official documentation or a UML diagram in Rational Rose or Visio,etc. is a correct way of developing programs? I believe it is, and I am going to argue it. Just go on reading. We will be back soon.

Let’s start thinking in terms of the development goal. It might be a bit unclear, but it always exists. In the case of John he did his work meaning to create a necessary product and get a deserved fee. If the fee is paid, the goal has been achieved successfully. The fee can be not only the money but also some useful experience, one’s friends’ praise, self-satisfaction with one’s wide intelligence and what not. However, the end user does not have a slightest interest in the inside of the product or the development itself. Nor are they going to distinguish between Delphi and Java. The program should work fast enough, take up modest resources and be worth the money paid. And the last but not the least – to perform all the desired functions. In such a case John will get his money.

So, John aims at getting an adequate fee enough to, say, visit a pub/restaurant/bowling/Hawaii in return for his efforts. (If you still tick variants, it is high time you went for a cleaning tissue and wiped your screen.) The fee is the indicator of good and correct work. If John does not receive any complaints or face angry customers, they can be thought of to be satisfied. So, John is on the right way.

Let’s now take a small developing company with 10-15 employees who write programs for small businesses trading goods, or furniture, or something else granted that Excel cannot cope with the amount of data to be analyzed. Should our company use object oriented programming, UML, RUP, MSF or anything else equally complicated? There is a trap here. We cannot be sure if a company needs such tools unless we consider the fee for the efforts. Suppose the customers’ needs are met. Then why invest additional money into expensive courses or buying new licensed products?

It is here when we come to the crucial question asked at the beginning – what is meant by correct software development? I guess now you are ready to answer. Correct development is the process helping the customer to get profit. The choice between waterfall or an iterative process as well as the degree of formalism and sticking to traditional processes is important only in terms of your client’s business.

The series of articles to follow will describe making a product for our needs called Sibers Meetings. You will see how the product grew from «we have a problem» phase to a «ready to use solution».

Sibers Meetings dates back to the moment Sibers expanded its power to a new city office. The office showed up with a number of problems the main being everyday communication. Using a traditional telephone soon became ineffective as public address equipment did not serve the purposes of project meetings. We realized a need in some environment for collective discussions on our customers’ projects. It became the basis for the product in question.

(to be continued)

5 Eras of Applications

February 19, 2008

nemtsov.gif
By Sibers Flash Team Leader Alexander Nemtsov

Mainframes. Remember the times.

Oldbies remember the times when terminals used to connect to powerful servers and the information was processed by mainframes, a thin client being essentially an input device to display data.

Gradually PCs were becoming smaller and more powerful, and it became possible to process information at work places. Thanks to traditional modern applications.


A huge Soviet supercomputer working at clock rate of 10 MHz – fastest in the 60’s. Now one of our offices is located in a room where such machine used to stay. Image courtesy of Novosibirsk Institute of Theoretical and Applied Mechanics.

Traditional Applications

It is traditional application that we access information through, are entertained by and get new potential for our work. Basically, they are the frameworks of our interaction with the PC. Any problems we might face while working with the computer arise from the way the applications were developed long time ago.

Traditional applications have been serving us faithfully for ages, but they are not absolutely devoid of drawbacks. They are tied to a certain machine and your operating and file system. They need installation, which requires special skills and takes time. Moreover, almost all the results of your work with applications are stored locally on the PC, and collective work with them runs into certain difficulties.

Thus, we have to think over main processes inside the applications. Except doing your work, you have to know something about file types, codecs, drivers and many more things having nothing to do with the task you are solving. Being an expert in your field is not enough any longer, you have to be an expert in computers as well.

ms-ind.jpg
Microsoft and Indian software companies are famous for developing software. This picture shows Indian developers at Microsoft. Courtesy of blogs.msdn.com/ie

Web Applications

The Internet changed an average person’s capabilities dramatically. Now we can easily find and use vast digital experience stored in the net. With standards for browsers developing, users can expect any content to be available for use any time and any place.

I realized the possibility of replacing traditional applications by web ones when I saw my friend using Gmail web interface instead of his mail client. He was not an expert in computers and I offered him my help in installing and tuning Thunderbird. My friend thanked me but politely declined the offer as the interface perfectly satisfied all his needs.

Web applications are a nice discovery, but they do not lack some problems, either.

Quite often we use the Internet as a source of information. It can as well be used as an effective tool for entertainment and improvement of our work facilities.

net.jpgJust like this person in a Soviet poster says “Net” to alcohol, certain Internet users say “no” to desktop software and choose web-based applications.

RIA

Traditional web applications are built up on some well-known standard elements of interface. Hyperlinks, combo-boxes and forms are excellent for creating interactive pages, but unfortunately are not enough for editing images, showing video flow, displaying GPS data or making a phone call. Users are requiring more and more of the interface and make designers and developers provide new ways of interaction with different data and processes.

Rich Internet Applications are notable for providing you with a possibility to do your work in the Internet. The set of tools I need for my work is to be available for me everywhere regardless of the PC type or the OS version. The same refers to my data. All of my working environment is supposed to follow me like a cloud, RIA inherited this idea from traditional web applications and went further.

noimage.jpg
Unfortunately, we couldn’t find any image of a cloud of rich internet applications following their users wherever they go.


Symbiosis

Multipurpose RIAs are a new generation of applications evolving as a result of web application and traditional desktop application symbiosis.

When the applications and the data related to them are really “on a cloud”, we get radically new capabilities. It becomes much easier to share data or work in collaboration. Such collaboration can proceed either on- or off-line, with the use of audio or video flow and text to supplement the communication.

symbiosi2.jpgTrue RIAs make absolutely unnecessary an abstract concept of a file. Your data is saved and you can search it through. However, you never deal with “raw” files, you work with your “ideas” instead. Such work is much more effective as it focuses on the result and does not require a user to know something about computer processes.

The coral animal lives in symbiosis with small algae and other organisms – just like RIA with desktop applications! Courtesy of coral-reefs.org.

Long time no writing

March 22, 2007

By Sibers CTO Andrew Gavrilov.

Former versions of ActionScript seemed to be more of a Flash appendix, therefore I didn’t study them in detail. This new third one claims to be something for big guys. Here are the big guy’s impressions.

Good things first.

First of all, AS3 introduces a well designed JIT compiler, which ensures appropriate performance.

Secondly, its compatibility with the ECMA standard means that even if the language was designed by idiots, we can implement all needed things in it. With minimum overheads for learning it.

But… as I dig deeper, I run into annoying surprises…

For example there are two inheritance methods. One follows the ECMA standard, the other is compatible with the Flash Player API and increases performance. I can’t believe that it wasn’t possible to make it straightforward…

Another interesting moment is associative massives (hashes). AS3 uses the Object class for them. Prototype ECMA inheritance allows adding new properties to the objects, which we are supposed to use. And there are no methods like “length”! There’s also a special class Dictionary that allows using objects as keys, but it works the same dumb way i.e. via adding a property.

To sum it up: pretty usable, but quite nasty.

***

Few words about MX Framework (Flex 2) – default framework AS3 for building interfaces.

Big advantages are one of the most developed Layout system, basic description of the interface in XML (.mxml files) and utilization of CSS. No complaints here except for against a pretty weak visual editor in IDE.

And again, we dig deeper…

For example, we create a visual component and want to know its width. Where would you look? Into a “width” property? Nope – it’s equal to zero. Value of this field (just like all others with sizes and coordinates) is shown only if it’s assigned there.

Solution is original: first of all we call measure method. So we make the component measure itself. After that we get the width value with getExplicitOrMeasuredWidth method, which returns the measured value if none was assigned.

Or take another example. I want to get coordinates of an icon in a button. There’s no external access to the icon properties even for the inheritors of Button (I, as a true believer of OO programming, created an inheritor for all these experiments). Okay, let’s go to the hidden properties via namespace mx_internal and voila – now we see why Adobe developers hesitated to show this to everyone: the coordinates of an icon are calculated beginning from the nearest button border. This means that depending on the mutual position of the icon and text, we get different coordinates of the icon each time. Brilliant idiocy!..

How long does it take to create an Arkanoid Flash Game?

January 19, 2007

by Alexander Nemtsov Senior Flash Developer

Yesterday I decided to face a challenge: How long does it take to code the Arkanoid game?

3,5 hours of development, and here you are! – a nice and playable Arkanoid.

Play the game!

arkanoid.gif

Code for the Arkanoid Flash Game: swf, as, fla files included

Sibers Are Playing Their Brain Muscles

December 22, 2006

You probably know how people love to compete with each other? All those machos out there are always discussing whose muscles bigger, legs stronger and etc. Among science geeks the discussion is usually held about whose brains are better in this or that scientific field, that’s why they produce so much scientific papers each year.

Well, that sort of competition could not left out our developers as well. So we decided to show you, dear reader, that among our IT crowd there are also machos-developers, who love to test their wits on the website, famous by its test conducted among professionals in many fields, called Brainbench. This site is delivering easy-to-use assessment products that predict success on the job. This website exists for many years (founded in 1998), and it is not a laughing matter, when some of its users gain high ranking.

Two members of our Sibers team decided to check out how smart they have become while working at our company and took tests in their fields of expertise. And behold! They gained pretty serious rating in those tests. One of them is our Flash Team Leader, Alexander Nemtsov. He took Flash Development test and found out that he ranks 12 among top Brainbench users from Russian Federation, who took the same test.

Another hero of the day is our Senior PHP Developer, Alexey Kupershtokh. He gained number 13 ranking among top Brainbench users from Russian Federation, who participated in PHP test.

New articles on Cairngorm 2 framework were published recently!

November 30, 2006

Our team decided to share this bit of news with our visitors, since among us these articles became too popular as soon as they were published.

Steven Webster, the practice director for Rich Internet Applications at Adobe, has published a series of articles called “Developing Flex RIAs with Cairngorm Microarchitecture“. In his articles he writes a lot about issues of RIA development, difficulties that RIA developers experience and solutions, provided to RIA developers by Cairngorm 2 framework.

Web 2.0 As The New Philosophy of Information Distribution. Part 2

November 20, 2006

by Sibers Senior Flash Developer Alexander Nemtsov

Another useful service is connected with e-commerce. Currently a new term “one-man shop” was introduced with regard to the Internet applications. It means that all aspects of one e-shop are managed by various companies, each of them specializing in managing one particular aspect of this shop, and its owner just manages interactions between these companies. In this schema, for example, a person who wants to open his or her own e-shop doesn’t have to hire an accountant to manage their e-shop finances, they simply find a specialized company that provides accountant services for such businesses, and all calculations and financial management of the e-shop are conducted by this company. The owner doesn’t have to worry about logistics but simply hires another company that will be responsible for this. It is necessary just to manage interactions between these companies in a most convenient way. The point here is that each company in the business chain specializes in its own area thus improving the whole business process of the company they are servicing. So Web 2.0 is the type of application that is distributed all over the Internet. How parts of this application will interact with each other and what information channels will be used in this process are the issues we will be working on in the future. At present we have already started to conduct the research on these issues in our department.

Another important feature of Web 2.0 is Read the rest of this entry »

Web 2.0 As The New Philosophy of Information Distribution. Part 1

November 17, 2006

by Sibers Senior Flash Developer Alexander Nemtsov

Web 2.0 is not just a new way for developing applications but it is an absolutely new business model. And everything connected to new ways of making money is always popular in our world.

At present, when everybody is speaking about Web 2.0, it mostly concerns marketing rather than new technologies. You can find Web.2.0 mentioned more often in the context of design than business. Clients usually ask: “I want the design in Web.2.0 style”. But this is absolutely wrong; Web 2.0 is not about design at all! Moreover, in my opinion, now it is too early to use the term Web 2.0 because it is not just a new technology but a new approach to the information management that has not completely defined yet.

In my university years we had one subject among many others, Informatics. It was not related to IT technologies and computers but rather to the study of different information issues. We studied the theory of information, laws and issues of information distribution. At present I have clear understanding that development of Web 2.0 is impossible without developing a new approach to information distribution in the Internet. New schemas of information distribution should be developed. Discussions on this subject have already started in the Internet. The new philosophy of the Internet seems to emerge.

I am not saying that Web 2.0 has not appeared yet. Completely new schemas of information management and customer relations do appear. We can look at Flickr as an example of such a new schema (www.flickr.com). This is really a bomb. It represents a completely new method of image storage and processing. I believe that more and more web applications will be multi-user applications since users loose their interest in single-user web applications. And I am not talking only about multi-player games, but about social networks as well. When looking at Flickr, Read the rest of this entry »

Adobe Labs announce the brand new application developed on Apollo

October 26, 2006

At the Adobe Max exhibitions the first new brand application developed on Apollo was announced.

Adobe Digital Editions is a completely new way to read and manage eBooks and other digital publications.

But the key factor is a fact of such release. Application was developed on Apollo that is a platform for easy creating desktop apps via web-technologies. So the new kind of apps will be developed abstractedly from any operation systems. It’s a turning point in web application development.

As a flash development team, we follow every publication on this topic. And what is more, if any plan announced on the Adobe Max conference is coming true, we will be prepared for a sudden change.

Reach the highest at work; reach the highest in the sky

September 18, 2006

As a development company from the “capital” of Siberia and its renowned scientific center, we are used to reaching all the highest goals in what we are doing. Our developers adhere to this principle not only in their work, but in their private life as well.

One of these days our Flash developer Grigory Dmitrenko, one of the active organizers of the Flash Seminar, tried his strength in parachute jumping. This kind of extreme sport can be taken by enthusiasts in the suburbs of Novosibirsk.

Grigory Dmitrenko comments, “It was really great, the best moment I had ever had in my life! As great as mountain skiing! Now I’m going to take a complete parachute jumping course and reach even upper heights.”
Grigory has already reached as high as 1000 meters (3,280.84 feet) and is going to jump from a height of 3000 meters (9,842.52 feet).

When asked what was more exciting – to fall free or to soar, – he answered that the most breathtaking thing was to make a step into the depth! Evaluate the heights and depths of our experience.

parachute jumping-people parachute jumping-Grigory Dmitrenko parachute jumping