Tuesday, May 31, 2011

Can Web Applications Replace Desktop Applications?

Ladies & gentlemen, geeks & nerds, my dear readers - I am, as an independent software developer, in an annoying crossroad: should I keep developing web applications or should I move to development of desktop applications.



The reason for keeping developing web applications are various:

1. The trend during recent years has been to use online applications for basic needs: email, file sharing, social networks or games. Also there's has been a trend to use combined desktop & web application (installed software that functions by connecting to the web), such as: Skype or chat applications. Because most of the users are basic users (as opposed to technical users, like programmers or bloggers), this is a major argument.

2. Web applications can be accessible from everywhere, giving users the flexibility of accessing their email,documents or images without being near their personal computers.

3. No need of installation - most people are lazy and like everything done for them. So bypassing the phase of installation or updating is definitely an argument.

The reasons for developing desktop applications:

1. It's very hard to believe that web applications, running on a browser, can be equal or better than desktop applications. It's important to take into account, that browsers (by their nature) are quite restricted in using the computer's hardware. This issue is crucial in complex applications (like: image processing or sound processing applications).

2. Confidentiality - When using an online application, the user's data is generally vulnerable to misuse by the hosting site. Who would want their financial data to be open to stranger's eyes?..

3. Speed - using a web application means communicating with a distant server, which makes it usually slower (depends on the user's bandwidth).


Conclusion - it seems that sole desktop applications will be losing power in the next years, partially for desktop-web applications (like:Skype) and partially for web applications (like: Gmail or GoogleDocs).

Friday, May 27, 2011

Java - Advantages & Disadvatages

Java is now the world's most popular programming platform. About 20% of the developers worldwide use Java as their sole or main development language. But what are the main advantages & disadvantages of this platform ?



In my view, Java enjoys the following advantages:

1. Cross-platform compliant - a Java program can run as it is on every operation system. This means that a developer doesn't have to issue a version for every operation system. This feature is due to the fact, that the compilation in Java produces an intermediate code that the Java platform installed on the computer transforms into a final code compatible with the specific operation system of that computer.

2. Automatic memory dismissal - Java releases every memory block right after it ends its function. In other languages, the programmer has to free the memory by himself, which makes the work harder for him.

3. No double inheritance - when a programmer defines that a class inherits another class (i.e. a class 'Officer' inherits a class 'soldier'), he/she may do it once for every inheriting class. In other object oriented languages, a class may inherit many classes, which may cause many errors.

4. Threads - Java lets developers run several code blocks in parallel, which means that the computer performs a code block for a period of time and when the time ends, the computer starts running another code block and so on.
This feature is especially good for computer with multiple processors (cores), because it makes the computing time shorter.

5. Simplicity - Java is by far the simplest programming language among the main languages. It was designed to be easily learned and easily implemented .

But not all is good about Java. I've found the following disadvantages using Java:

1. Slowness - Java is slower than the other main languages (like: C++ or c#) and more memory consuming. This feature can be crucial in games or graphics development.

2. Weird look - applications developed in Java look to the user quite different compared to applications developed in other main languages. To fix that, the developer has to put extra efforts in.

3. Only objects oriented - basically, it's possible to use Java only as an object orient language. In other language (like c++) there's a possibility of using OOP and procedural code alike.

Saturday, May 21, 2011

Windows 7 - What's New?

Basically we can consider this OS as a "well functioning Vista". It doesn't add much to what Vista offered before, and I'll pinpoint the added functions Windows 7 offers.

generally speaking, WIN 7 is more functional than Vista with a better emphasis on user experience:



First, the User Account Control (UAC) is modernized compared to one in Vista. The UAC in Vista used to alert the user every time any change was performed on the computer, and by that I refer even to a simple clock setup. Win7 alerts the user only in a single scenario: when a program tries to implement changes on the computer. This change makes the UAC more reliable, because the user actually pays attention to the alerts.
In addition, Win 7 lets you an amount of control over the UAC: you may choose between 3 choices: off,partially on - only for changes made by software, on (like in Vista).

Second, A new element is added: 'Homegroup', which make it easier to share folders,files & hardware component over a home network. The Network and Sharing Center is now much more efficient and easy to work with. The file sharing mechanism, that was head-breaking in Vista, is very easy to use in Win 7 and requires not much than a right-click.

Third, A new task bar was formed, which now replaces the former 'Quick Launch bar' and resembles the task bar on MAC OS. This task bar will show the user all the opened windows in a micro size image. Moreover, if the user drags a non-maximized window to the top of the screen - that window is automatically maximized. If the user drags a maximized window downwards, it returns to its original size. If that window is dragged to the left edge of the screen, it occupies the left half of the screen. The same if dragged to the right edge.

Fourth, The Control Panel is much more user friendly on Win 7: when a user chooses a category on the control panel, he/she gets a new screen with the subcategories of that main category. That feature may make the tracking of the desired function swifter.

Tuesday, May 17, 2011

Why Should You Move to Linux OS?



This morning, while brushing my teeth and shaving, a weird question crossed my mind: if Windows OS costs a lot and Linux OS is free, why do so few people use Linux. I've search the web for answers, combined it with what I already know, and here it is.

The fact is many organizations & individuals consider seriously using Linux, but most of them refrain from doing so. The main reasons:

1. Habit - people are just used to Windows, and leaving it takes a serious reason which most people just don't see.

2. Consensus - people see that almost every one they know uses Windows OS, so they assume that 'everyone can't be wrong';

3. Lack of skill - many refrain from Linux usage because they believe that it requires a significant technical knowledge and it's not user-friendly like Windows OS.

4. Less compatible software - most people believe that if they moved to Linux OS, they would suffer from a small variety of compatible software.

So why should people move to Linux OS? Basically, I can think of a few main reasons:

1. It's free - a couple hundred dollars per a computer isn't cheap for Americans & Europeans and is definitely expensive for most parts of the world. So Linux OS is a nice opportunity for a little saving.

2. Hardware support - in recent years, the portion of drivers, graphical cards and others that can work with Linux has risen sharply. This means that most hardware functionality available on Windows OS is also available on Linux.

3. Security - the terms 'Anti-virus' or 'anti-spyware' are quite unknown to Linux users because this operating system is almost free of these risks. This occurs due to the fact that Linux is based on voluntary contributions from its large community, so solutions to viruses and other security issues are quickly spread through the web.

4. Flexibility - Linux OS allows more flexibility than Windows OS. For example,you may modify the user interface easily and communicate with the OS kernel more extensively.

5. Software - most Linux software is free & open-source. This means that you may modify the software for your needs or even monetize it after modification.

Wednesday, May 4, 2011

How Can I Measure my Internet Speed?

Internet speed = the pace of downloading data from internet sites to the user's computer.
Internet speed is crucial especially in media (video &graphics) application.
The following website can tell your internet speed, and supply statistics of it compared to others in tour country  and around the world:  see here

Viewing the international statistics, I can infer that there are large gaps between regions and sometimes between countries  of the same region.  The top ten nations, those who enjoy the average fastest internet connections are: South-Korea,Sweden, Lithuania,Romania,Netherlands,Latvia, Switzerland, Moldova,Bulgaria,Germany.

Surprise: half of those nations have developing economies and are not well-developed.  This comes in contrary to my initial intuition, saying that top economies allow top web service.  Moreover, the web speed in the US isn't faster by far  than  in Russia & Eastern Europe.  China & India both suffer from a very slow average internet connection, a fact contradicting the thought that these two can take the world lead in technology.


Tuesday, May 3, 2011

Proud to Present: Virtual Private Server (vps)






The VPS was invented to enable small businesses or individuals enjoy a (dedicated) server of their own in a cost of a little more than a basic (shared) hosting and without purchasing any piece of hardware.   The idea is simple: the supplier allocates a memory block and defines it as a server by  installing all the software environment needed for it.  

Cases you don't need a VPS and can do well enough with a shared hosting:
1.In cases you have a low to medium traffic website .
2. In cases  you don't have any Linux experience and prefer a simple administration panel.
3. In cases a gap of $25-$40 may be significant for you.

Cases you would enjoy a VPS more than a shared hosting:

1. When you need a full server administrator access and can't do well with the very limited administrative rights given to you in a shared hosting.  For example: if you need to install SSL (encryption) for your website, or if you need to modify the PHP engine configuration.
2. When you have heavy traffic coming in to your site.  In case of a shared hosting, this can cause trouble (the bandwidth is more limited than in a VPS). 

Now, what are  the differences between a VPS and a full dedicated server:
1. Though a VPS is a server, the fact that it uses the same hardware with other VPS's, limits a little the flexibility of the administrator regarding the server's configuration.
2. For the same reason, the surfing to your site can be sometimes a beat slower, because other sites using the same hardware might be flooded by traffic at that moment.
3. Using a VPS, you save a respectable sum of money due to the lack of hardware required and due to the fact that you don't have to maintain regularly the hardware.
4. Resources on demand - using a VPS, you can easily enlarge vital resources like: RAM & fixed memory.  Using a dedicated server, you have to purchase an additional hardware device in such a case.

Summary - a VPS is an hybrid of two: the large dedicated server and the primitive shared hosting.  If you have a modest website (no video or complex graphics)  with a traffic of no more than a couple of thousands a day, you should do fine with a shared hosting program.  If you represent a huge portal having tens of thousands visitors a day and presenting heavy data (graphics, video), it seems that you won't escape a heavy expenditure on   a dedicated server.  If none of the above is relevant to you, would you consider a VPS?..
 



 

Sunday, May 1, 2011

Eye Pain in Computer Users - How Can You Relieve It??




Recent researches have shown that 50%-90% of computer workers suffer from eye strain or some other eye problem.  There are some proven techniques of relieving the problem:
1. Periodical eye exam - once a year it's recommended to perform an exam, including asking the doctor for advice about working with computers for long hours a day.

2. Mind the light strength around you - often people work in an environment which has an excessively bright light.  In average, an office is bright as two times as it should be.  So it's recommended to close a bit the curtain or limit the number of bulbs in the office. Especially it's recommended to avoid working under overhead fluorescent lights.

 3. Minimize Glare - this is a main cause to eye strain.  To avoid it, paint your walls in a color other than white ,install an anti-glare screen  on your monitor and cover the windows of your office. If you wear glasses, purchase lenses with anti-reflective (AR) coating.   AR coating reduces glare by minimizing the amount of light reflecting off the front and back surfaces of your eyeglass lenses.

4.  Move to LCD monitors - monitor such as we find in laptops. These monitors  are easier on the eyes and usually have an anti-reflective surface.  The monitor should  have the highest resolution  you can afford, because it allows a lower dot pitch.       Generally, displays with a lower dot pitch have sharper images. Choose a display with a dot pitch of .28 mm or smaller.




 5. Adjust brightness & contrast - adjust the display settings on your computer so the brightness of the screen is about the same as your work environment.  As a test, try looking at the white background of this web page. If it looks like a light source, it's too bright.   If it seems dull and gray, it may be too dark.

6. Blink a lot - when people work at a computer, they tend to blink less.  This behavior causes many eye problems, since the blinking is crucial to the eye's health as it coats the eye with tears (defending the eye).     Try this exercise: Every 20 minutes, blink 10 times by closing your eyes as if falling asleep (very slowly). This will help wet your eyes.

 7. Exercise your eyes - Look away from your computer at least every 20 minutes and gaze at a distant object (at least 20 feet away) for at least 20 seconds.  Looking far away relaxes the focusing muscle inside the eye to reduce fatigue.   Another exercise is to look far away at an object for 10-15 seconds, then gaze at something up close for 10-15 seconds. Then look back at the distant object. Do this 10 times.

8. Take many breaks - as much as it sounds funny, taking breaks may help your eye's health.   Most workers take two breaks a day of about 15 minutes each.  researches have implied that taking additional 3-4 abrupt breaks of about 5 minutes, is very healthy to the eye. The surprising side of this method is that the productivity of the works hasn't declined due to the additional breaks, due to the extra freshness of their eyes.

9. Improve your workstation - Put printed pages as close to the screen as possible, to prevent the eye's movement between the monitor and the pages.  

If you  want to use a desk lamp,  make sure it doesn't shine into your eyes or onto your computer screen.
 
Purchase  furniture to enable you to position your computer screen 20 to 24 inches from your eyes. The center of your screen should be about 10 to 15 degrees below your eyes for comfortable positioning of your head and neck.

10. Change your glasses or lenses - it would be great to change those with glasses/lenses especially compatible with intensive computer work.