Saturday, December 8, 2012

How Computer Geeks Become Such?..






This morning, while still half-asleep, I was wondering - how do geeks become programmers, you know - those pale people who lean on their monitors and make the computer (and the smart phone) work.


So I browsed the web and collected some prevalent reasons.  If one of you knows of another good reason to become a coder,  this is the place  to share:



First, many programmers start their practice while being teenage computer freaks. They start somehow reading some basic  programming books  and start creating codes, and oops.. get hooked and enslaved for good.

Second, some programmers like the idea that what they create may be relevant to almost every aspect of life: technology, media,art,sports,social life,politics, finance and many more.  It's the only technical field which deals with people in depth and not superficially. 


Third, many software developers switch their occupation from another engineering field (especially Electronics), due to employment constraints or natural advancement.   Those professionals are trained to other engineering/scientific fields, work for several years in the mentioned occupation, and 'cross the road'  to software development.

Fourth, undergraduates in many countries are drawn to this field because it allows them a higher living standard than most other occupation in those places.  This is especially relevant to countries in Eastern-Europe and Latin-America, where the job market prospects are relatively limited so programming may be very attractive to people with high technological abilities.


Thursday, December 6, 2012

Don't Take Your Laptop on a Vacation!







Dear readers, today I'm going to discuss a crucial geek's dilema: you're planning to go on a vacation away from home, and struggle with yourself: "should I leave my precious toy behind or should I stick with it even when I'm on a vacation?".

I can find a few arguments for you to stick with your plastic baby. no matter what:

First, it's a disgrace for a geek to abandon his/her laptop and just enjoy. For a geek to do such a thing is like for a troop to leave his weapon behind. Shame on you for even considering it!

Second, no vacation can be a real one without some decent gaming time without anyone around nagging you. Once a geek, always a geek.

So taking the laptop on a vacation? some serious arguments against it:



First, a computer is for work. A vacation is the opposite of work. The two just don't mix. If you're on a vacation, you don't involve with objects relating to work.

Second, every minute you spend on your laptop, is minute you don't do what you're supposed to do on a vacation: resting, relaxing, sight-seeing , dancing, eating decently and above all - forgeting about everything..

Third, if you take your laptop with you, your Skype or Messenger will tell all your work colleagues that you're available, and then your so called "vacation" will be over..

My decision - leave the little attention-sucker at home and dedicate the vacation for yourself & for your family. Make the most of your free time because you don't have much!

Sunday, December 2, 2012

Free Alternatives to Microsoft Office





Ladies & gentlemen, my dear readers!

Today I'm going to talk a beat about the new born baby - Apple's iPad. Who really needs this toy and what can it really do?

1. Reading articles or books - iPad's screen is large and clear enough to let you read web articles, e-books or PDF/Word documents. You'll not have to ruin your eyes or suffer in any other way.

2. Games - There's a reasonably wide variety of games for iPad and it can be a substitute to game consoles (like Nintendo) for light-gamers. However, it's early to relate to iPad as a substitute to the desktop PC.

3. TV & movies - you can watch TV or videos in a reasonable quality. I wouldn't bet on it replacing your 50 inch plasma TV, but as a little TV it can do great.

4. Presenting presentations - if you need to present Powerpoint presentations outside your office or something similar, the iPad can replace a laptop and make it easier for you.

5. Basic web usage - it can replace a laptop in basic web functions, like: email, Facebook and more. It doesn't suffer from special communication troubles that may harass the web usage, and the screen is large enough not to cause you much misery.

6. Long usage without battery charging - iPad can reach 10 hours of active usage without charging, which is much longer than an average laptop.



The downsides of iPad must be taken into account:

1. iPad's screen isn't successfully suitable for usage outdoors, and you may suffer from using it at the beach or at a picnic.

2. iPad was created by nerds and it's itself a nerd: smart,skinny and fragile. Daily usage by young kids or messing otherwise with it should make its days shorter & shorter.

3. iPad isn't widely perceived as an attractive instrument, and its functionality is much better than its looks. So it might not be the ultimate purchase for making you cool.

4. iPad (as an Apple product) doesn't support Flash, which may be a nuisance for some users.

5. Above all - iPad isn't a PC: which means that you shouldn't expect it to be more than it's meant to be: a partial substitute to a laptop.

Wednesday, November 28, 2012

And The World's #1 Programming Language is...



Knowing what are the most popular languages in the industry can tell you if  your hunch is right, and you indeed code in one of the promising platforms...

The data presented here reflect the number of jobs offered (mainly in North America & western Europe) in a mentioned platform.   It can't reflect the quality of a programming language nor the difficulty of the daily work with it.  Only the number of jobs.


1. Java -  Java is currently the  most popular programming language and hires nearly 20% of the software developers(data: TIOBE).
Java is used in developing complex dynamic web applications, network programming and robotics.   JSP(Java Server Pages), Servlets(Java programs that is executed on server side, and often used to process the client request) are the most popular java technology among web developers.
this excellent and diversified  language was developed in the middle 90th and hires about 9 million developers around the world. 
 This means that this an ocean of application written in Java, and this means there is an ocean of software requiring maintenance and modification.   Java is the language in which developers write Google  mobile-phone Android OS applications.  android OS even supplies an API in order to assist developers. 


2. C   -  Hires about 15% of the software developers.   This ancient language was developed in the early 70th, designated for system application development (operation system program).  It has developed to embedded software (in electronic devices) and recently to mobile phone applications.  C exactly comes between the Assembly language and object Oriented language such as Java.

3. C++  -  Hires about 10% of the software developers.  The language was developed in the late 70th as an enhacement  to C and was initially named "C with Classes".

It is widely used for development of system application, device drivers, embedded software,  server-client applications and entertainment application (graphic games, video games).


4. C#    -  Hires about 8% of the software developers. It was developed as a part of the .NET platform (of Microsoft) and was designated to be parallel to PHP functionally.

In recent years, it has become a standard language and not just a usable on .NET platform. Some viewers consider it as an improved Java.  

5.  PHP  -  Hires about 6% of the software developers. PHP is is the most widely used scripting language over the web.  

This script language runs on the server in web applications. It can also be used for command-line scripting and client-side GUI applications.  It's compatible with most servers, most operation systems and most relational-databases. 


Friday, July 6, 2012

What is Computer Science

Computer science or computing science (abbreviated CS or CompSci) is the scientific and mathematical approach to computation, and specifically to the design of computing machines and processes. A computer scientist is a scientist who specialises in the theory of computation and the design of computers. Its subfields can be divided into practical techniques for its implementation and application in computer systems and purely theoretical areas. Some, such as computational complexity theory, which studies fundamental properties of computational problems, are highly abstract, while others, such as computer graphics, emphasize real-world applications. Still others focus on the challenges in implementing computations. For example, programming language theory studies approaches to description of computations, while the study of computer programming itself investigates various aspects of the use of programming languages and complex systems, and human-computer interaction focuses on the challenges in making computers and computations useful, usable, and universally accessible to humans. The term "computer science" was first coined by the numerical analyst George Forsythe in 1961. Despite its name, a significant amount of computer science does not involve the study of computers themselves. Because of this, several alternative names have been proposed. Certain departments of major universities prefer the term computing science, to emphasize precisely that difference. Danish scientist Peter Naur suggested the term datalogy, to reflect the fact that the scientific discipline revolves around data and data treatment, while not necessarily involving computers. The first scientific institution to use the term was the Department of Datalogy at the University of Copenhagen, founded in 1969, with Peter Naur being the first professor in datalogy. The term is used mainly in the Scandinavian countries. Also, in the early days of computing, a number of terms for the practitioners of the field of computing were suggested in the Communications of the ACM – turingineer, turologist, flow-charts-man, applied meta-mathematician, and applied epistemologist. Three months later in the same journal, comptologist was suggested, followed next year by hypologist. The term computics has also been suggested. In Europe, terms derived from contracted translations of the expression "automatic information" (e.g. "informazione automatica" in Italian) or "information and mathematics" are often used, e.g. informatique (French), Informatik (German), informatica (Italy), informática (Spain, Portugal) or informatika (Slavic languages) are also used and have also been adopted in the UK (as in the School of Informatics of the University of Edinburgh).] Renowned computer scientist Edsger Dijkstra once stated: "Computer science is no more about computers than astronomy is about telescopes." The design and deployment of computers and computer systems is generally considered the province of disciplines other than computer science. For example, the study of computer hardware is usually considered part of computer engineering, while the study of commercial computer systems and their deployment is often called information technology or information systems. However, there has been much cross-fertilization of ideas between the various computer-related disciplines. Computer science research also often intersects other disciplines, such as philosophy, cognitive science, linguistics, mathematics, physics, statistics, and logic. Computer science is considered by some to have a much closer relationship with mathematics than many scientific disciplines, with some observers saying that computing is a mathematical science. Early computer science was strongly influenced by the work of mathematicians such as Kurt Gödel and Alan Turing, and there continues to be a useful interchange of ideas between the two fields in areas such as mathematical logic, category theory, domain theory, and algebra. The relationship between computer science and software engineering is a contentious issue, which is further muddied by disputes over what the term "software engineering" means, and how computer science is defined. David Parnas, taking a cue from the relationship between other engineering and science disciplines, has claimed that the principal focus of computer science is studying the properties of computation in general, while the principal focus of software engineering is the design of specific computations to achieve practical goals, making the two separate but complementary disciplines.[26] The academic, political, and funding aspects of computer science tend to depend on whether a department formed with a mathematical emphasis or with an engineering emphasis. Computer science departments with a mathematics emphasis and with a numerical orientation consider alignment with computational science. Both types of departments tend to make efforts to bridge the field educationally if not across all research.

Friday, June 29, 2012

Programmer Job Market - What's Next?

The #1 question every software professional needs to ask himself is : "Where's the heck I'm going to in the near future??". Software is a quickly changing world, where hot fields today may become irrelevant in a couple of years. Thus, a software professional can't afford neglecting this question, at least if he really wants to stay around for long years.

So where's the hot point: what are the most promising fields in the industry for the coming years.

1. Java - the most popular programming language in the world today, with 20% of developers using it as a primary language. This means that millions of applications are going to need updating and maintenance in the coming years.

Additionally, Java is useful for making desktop applications as well as web applications.

2. PHP - is a language for server side web pages. i.e when you load a web page, some of the operations are performed on a server. PHP is used now by millions of programmers around the world, many of them freelancers.

It's free-to-use ("open source") and enjoys an extensive online support.

3. HTML/Javascript/CSS - these languages (not exactly programming ones, but let's ignore that) are used to simply build the user experience of a web site, i.e. the side of the site which the user can see. Obviously in an era of Internet, mastering these languages is extremely important in order to stay relevant in the industry.

For a programmer, not to know HTML or Javascript is like for a doctor not to know resuscitation.

Summary - don't be indifferent to market trends, because you'll find yourself out of business some day.. I hope this short article will make your day a bit better..

Thursday, June 14, 2012

Startup - It's More Than What You Think...




When you boot your computer or just log in to your machine, you can see that some programs load automatically. These are startup programs. Generally speaking, they are instant messaging tools (like: Skype, Messenger) or security tools (like: anti-virus, anti-spam). These programs are put in that directory because it's important they're always on. Imagine to yourself what would happen to your computer if your anti-virus program would run only part of the time..

The setback of startup applications is that the automatic loading of these consumes inner memory (RAM), therefore slows the computer. So understandably you'd like to minimize their number. I'll show how to check your startup directory for unnecessary programs which may run there.



1. Click "Start" at the bottom left of the screen.

2. Click "Run". A small window pops up.

3. In the small window, write "regedit" and press "OK". A new large window pops up.

4. On the left side (of the new window) you can see a list of many folders. Choose "HKEY_LOCAL_MACHINE".

5. From the sub-folders of "HKEY_LOCAL_MACHINE", choose "software".

6. From the sub-folders of "software", choose "Microsoft".

7. From the sub-folders of "Microsoft", choose "Windows".

8. From the sub-folders of "Windows", choose "Run". Now you see a list of programs on the right side of the window. These are the startup programs, meaning: the programs which load automatically every time you log in to your computer.

9. You may delete unnecessary programs. Notice: if you delete a program from this list, the programs keeps residing on your computer. It just doesn't load automatically upon logging in.

Saturday, June 2, 2012

Your Laptop Battery - Things You Should Know

Your Laptop's Battery - a Few Important Points to Remember Your battery is low again, ah?? Here's a pack of small details you probably don't know yet, and might be helpful for you:

1. What's better : keeping the laptop plugged in to the power socket or letting it get empty and recharging it ? most of you might jump and say "sure, keeping it plugged in". Wrong! the battery is like a muscle, if it gets some training, it preserves its potency. If it's always fully charged, it gets older very fast.

2. If you think that after some 6 months with the laptop, the battery holds for less hours than when it was brand new, you're absolutely right! To know exactly how much capacity the battery has lost, you may use the following software: http://download.cnet.com/BatteryBar/3000-2094_4-10866804.html




3. Along the laptop's life, the power meter (this little meter that tells you how fully charged is the battery at the moment) gets less & less accurate. This may cause you problems like: sudden shutting down of the laptop while doing something important. You can fix this issue by "recalibrating" the battery.
How to recalibrate:
a. Charge your battery completely. Then,wait 2 hours with the laptop plugged in.
b. Drain the battery completely (till the laptop turns off). Then. wait 5 hours.
c. Charge again the battery. Now, the power meter should be more accurate.

4. When is the appropriate time to dump your battery and purchase a new one? Experts claim that it's recommended to keep the battery while it's at least 25% of its original strength. Below this point, the battery can't give you a reasonable service.

Summary - the battery is the laptop's #1 headache, but using the points I've mentioned, might prevent this pain from becoming a migraine..

Friday, May 11, 2012

Cloud Computing - is it Rainy Today?..





The term basically refers to performing computing activities online instead of offline (using the computer's hardware).  it means that individuals  or organizations lease remote  memory space and software , that are stored away from their physical location, and use them through the internet.  
The basic advantage of this model is that the customer doesn't have to purchase in advance software or memory space, but purchases them on demand only and for the extent he/she may need.   This feature often saves a significant portion of the computing costs of an organization.

The basic types of service available on Cloud Computing:

First, Sotfware-as-Service (SAAS), which refers to the use of computer programs installed on the supplier's servers, and the user makes use of them through the internet.  Prominent SAAS software examples: Gmail, online gaming.

Second, Infrastructure-as-service (IAAS), which refers to use of memory space of the supplier by the user.  Prominent examples: site hosting, backup storage.

Third, Platform-as-Service (PAAS), which refers to the use of developing platforms by the user in the process  of writing and testing software, such as: Linux emulators, online compilers.

The financial cost reduction using Cloud Computing derives from several factors:

First, no need of purchasing expensive hardware devices, such as: servers.

Second, no need of purchasing in advance expensive software products, such as: operating systems, Integrated Development Environment (IDE).

Third, no need of hiring local maintenance experts for the software and hardware.

Fourth, no need to deal with disaster relief procedures, as the supplier deals with it.

Fifth,  no limit of resources availability.  for example. if there's a shortage of memory space, there's a possibility of purchasing additional small size memory.

Sixth, no dependency on a specific location where software products are installed.

The shortcomings of Cloud Computing can be roughly divided into the following:

First, dependency on the supplier.  The latter may run bankrupt or have many operational failures. In such a case, the user can't do anything to prevent his own setback.

Second, possible security holes regarding the employees of the supplier, who may cause damage to the user's data.

Third, difficulty in communication between software products which are located on  many different servers.  For instance, SQL database that has to communicate with a web script held on another server.


Fourth, difficulty in managing software platform without the ability to access the hardware (because it belongs to the supplier).  For example, running a disk compression may be necessary for a software running but the user isn't permitted to do that.

Prominent Cloud Computing suppliers include:

1. Elastic Compute Cloud (EC2) of Amazon - The most well-known service, which allows memory space & infrastructure software  leasing.
2. App Engine of Google, which allows development & testing of Java/pythons application on remote servers.
3. Azure of Microsoft - which allows mainly platforms for online development of software.

Summary, Cloud Computing is here to stay, but due to its vulnerability concerning security, I believe that the move of organization to work with this model is going to take more than a few years.

Friday, May 4, 2012

Developing Countries Software Developers - on Their Way to Rule the World?




The pacific is small compared to the ocean of debate that has been held during the last decade concerning the possible evaporation of software development jobs out of western economies in favor of technologically developing economies (mainly India).

The main argument feeding that state of mind says that hiring developers in India (and other developing countries) in much less expensive than hiring personnel in developed economies. Let's have a look at the average annual hiring costs of software engineers in several countries:

Australia: $180,000
Canada: $155,000
Denmark: $146,000
United Kingdom: $145,000
United States: $130,000
Spain: $95,000
Poland: $50,000
India: $50,000
China: $36,000

Fine,now we all know that basically it's much more economical to close down your office in the the Silicon-Valley, Toronto, London (let alone Sydney) and move to the golden mines of Bangalore, Kiev or simply Beijing.

So why do you: Jeff, Philip. Francois, Jorgen and Kylie still employed? I guess that the decision-makers in high-tech firms also take into account the following arguments:

1. The hiring costs in developing countries rise constantly and quite sharply: about 10% annually. This means that by 2020 (if the trend continues), the hiring costs in India should be around $130,000. I assume that this trend deters mass transition of western firms to developing countries.

2. Mental gaps between continents may be excruciating: the mainstream cultures in the US, in W. Europe or in Australia are almost upside-down compared to those in most Asian nations, and those nearly reversed cultures should work together on a daily basis. Many decision-makers wouldn't take the risk.

3. Telecommuting is a fantastic idea, but most decision-makers just can't bear the possibility of not controlling face-to-face their employees, especially those involved in the core development of products. Let alone when the employees are located across the ocean.

4. Local patriotic concerns - many decision-makers can't come to terms with the idea of firing local employees in favor of foreigners, and do their utmost effort to avoid such steps. They know that they might meet the employee they fire at the local mall.

5. Disrespect for personnel in developing countries - Many decision-makers don't actually believe in the professional abilities of Programmers in developing countries, and tend to believe that the gap in the costs should materialize in gap of quality.



Conclusion - There are some decisive constraints on the move of software development to developing economies (primarily India). In my opinion, the large majority of software development is about to stay where it is today.

We should bear in mind that cultural changes (including organizational changes) take generally generations to take root. Think of how many services we can acquire on the web but still use the services of a professional: travel agents, matchmakers, newspapers, libraries and many more.






Friday, April 27, 2012

Your Mobile Phone & Your Boring Life

All of you who've purchased a new mobile phone during the last year, please raise your hands! Oh, I've got it: all of you..

The mobile phone, a tiny instrument that some 20 years ago used to be a status symbol for snobs, has become a part of our daily boring life. This has been possible mainly because of the fact that it has been much more than a phone device.




Let me remind you of some of the things you do with your mobile "phone":

1. Send SMS messages more than you eat or drink. Much of the communication today is performed in a means that some 20 years ago would have been considered "weird" or "geeky" and would have made you lose your job or get dumped in a relationship.

2. Play games - in the 80th & 90th playing a tiny electronic device was appropriate mainly for elementary school pupils. Nowadays, you can't walk down the street without catching some aging people doing something with their phones which takes more time than simply texting..

3. Schedule or meeting lists - who can remember the old days (a decade ago..) when people actually memorized their meetings or time schedule or (Heaven forbid) wrote those details on papers?..

4. Listen to music - well, I must admit that assimilating a music player into a telephone device seems quite logical, but only a decade ago it seemed a bit odd to plug an earphone to the same device where you gossiped about your new coworker.

5. Web surfing - in year 2000, if you would have asked an average person where he/she surfed the web, the answer would have been: "a computer with an heavy monitor & a 10 pound mother board". Seriously, who would have thought that a decade later "a monitor" would be a miniature telephone?..

To sum it all up, I can send you my Condolences for your mobile phone addiction!

Saturday, March 31, 2012

Freelance Programming - Pros & Cons


During the last decade, we can clearly see a trend of outsourcing parts of software projects to contract (freelance) programmers. The main reasons for that are:






1. Price - in some software fields (mainly web) there's a possibility of getting a project in a much cheaper cost,using the services of freelancers in developing regions, such as India or Eastern Europe.

2. Availability - many software firms are located in isolated places and not in large cities. This limits the availability of skilled personnel for hiring, and forces those firms hire remote personnel.

3. Cost on demand - many firms (especially small ones) prefer to be cautious and not hire personnel that they may not need for a long period of time. The use of freelance services lets them avoid commitment of hiring permanent personnel.

The main reasons for employers to refrain from hiring freelancers:


1. Location - many employers are skeptical about the efficiency of working vis-a-vis professionals located in other countries or even in other continents. They can't believe thay would have enough control over the project in such a mode of work.

2. Skill level - many employers are skeptical about the professional level of developers in developing countries and refrain from giving them a chance.

3. Local-patriotic sentiments - many employer feel obliged to hiring personnel in their region/country and feel a sense of guilt outsourcing work.

I've mentioned 3 pros and 3 cons concerning hire freelance developers or not. Now it's your turn to react: pro or con?

Saturday, March 24, 2012

News about the Web Browsers Market

The web browsers world has introduced us with some new key players during recent years: till about 2005, we were used almost completely to Internet Explorer, without being even aware to other options. But then, the Mozilla association woke up to offer us Firefox and then Sergei Brin's crew also did the same. In parallel, an emerging smart phone browsers market introduced us to new players like: Opera & Android browser.

Let's have a look at the share each main browser holds in the browser market:




1. Internet Explorer - 45%. This means that this portion of users uses primarily (even if not solely) one of IE versions.



2. Mozilla Firefox - 30%. This figure surely reflects a vast expansion of what used to be a marginal browser some 5 year ago. It happened much because of the vast add-on gallery the browser offers, which makes the browsing experience much more entertaining.



3. Google Chrome - 20%. Frankly speaking, it's not very surprising that a brand new browser (issued in 2009) has already gained a respectable proportion of the market, taking into account that its producer is the world's main searching tool, making it visible to almost every web user.

The figures mentioned above depict a simple picture: we have a tough competition between 3 main browser that probably will fascinate us in the coming years.

In the mobile phone browser market, the figures are such:

1. Opera - 22%. This browser is primarily structured for mobile phones, and its development platform (the environment where developers code the applications for the browser) simulates the functioning on mobile phones.

2. Android browser - 17%. as Android is Google's merchandise, it has a significant "push forward" from its owner. so no wonder why it has gain territory recently.

Saturday, March 17, 2012

The Future of Desktop Application vs Web 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).

Sunday, March 11, 2012

Want a Smartphone, Ah?..

So you've decided to get a smartphone.. Yes - you've seen this cool gadget in your friends' hands and got jealous, so what?.. Now it's time to consider what's important to you in a smartphone and how to avoid a lame purchase:



1. Ask yourself if you want to purchase a smartphone for the show-off or for a real need. Smartphones (as new technology devices) aren't so cheap those days and in addition, they require some time of learning. Many people buy these gadgets mainly for the kicks of it and find themselves doing the same things they could do with standard cell phones.

2. Consider switching your supplier, meaning: if you ask your supplier (the company selling you the cell phone service) for an upgrade to a smartphone, you'll probably get a relatively narrow choice because your supplier doesn't feel the necessity of attracting you to its service. Moreover, if you have a contract with that supplier, your case may be even more difficult..

3. Prepare yourself for the shopping - write down what you really need in a smartphone and what's expandable for you. If you start considering your needs under the pressure of an exuberant salesperson, you'll find yourself buying the salesperson's choice..

4. Consider the deal offered to you as a combination of basic cost (the phone) + the contract cost (monthly payment for maintenance + insurance). Most people overlook the monthly payment issue and find themselves with a super expensive package after all.

5. Check carefully if the smartphone offered to you actually supports basic programs such as: Microsoft Word or Microsoft Outlook. Some of the smartphones just don't support Microsoft software, and salespersons Don't tend to tell you that..

6. Battery - don't rely on what the salesperson tells you. Just Google it or ask someone! If you rely on the salesperson, you'll find yourself charging your smartphone every day and whining to all the world..

Saturday, February 25, 2012

Fresh IT Degree Graduate - You Better Read This!

The crisis point of nearly every university graduate, including in the High-Tech sector, is the beginning of career right after graduation. The cliche says: "All beginnings are tough", and that's exactly relevant to fresh graduates.

So what can you do when you're a proud graduate with absolutely no practical experience? all you know is theory, and employers need practicality. They can't generally put time and effort in a graduate in training him/her to suit the job's requirements. So there's the deadlock!

Here I give a few steps that can make life easier for fresh graduates, in this case: Computer Science (or Software Engineering) graduates:



1. While studying, make sure you take as many practical courses as you can: programming languages, website development, database platforms. Make sure you perform a large scale practical project, because that's what you can show prospect employers.

2. Create personal ties during your studies, as peers might be helpful in finding the first job.

3. Remember - you've got a family: ask your relatives (even remote ones) if they are familiar with job prospects or key personalities who may be of help.

4. Your CV - nowadays CV writing is an art by itself. This means that it may be useful hiring a professional to write your CV.

5. Be proactive - send every software firm in your area your CV. Many jobs don't go online, but if you take the initiative, you might catch some big fish.

6. Show some compromise about your salary. Small firms usually can't afford paying as much as large firms, but can give you the 2-3 year internship you need so desperately.

7. Change location - if you live outside the big city, it inhibits your job prospects. A relocation may be necessary.

Summary - the first job crisis may be lethal to graduates who don't deal with it wisely, but might quite easy to overcome if the right approach is taken.

Saturday, January 21, 2012

Desktop Applications - The End?

Recent years have seen a gradual transit from desktop applications (such that are installed on the computer) to web applications (such that reside on a web page).



Why should we think that the web is about to take the primacy in the software world?
First, the social networks niche which has become the most popular use of the PC, taking captive tens of millions of enslaved fans who actually live online.

Second, the growing capacity of the web of hosting large size data platforms, like: file-sharing platforms (i.e Emule) or video-sharing platforms (i.e Youtube).

Third, Rich Internet Applications (RIA), like: Flash or Silverlight, that give the user graphic quality equal to that of desktop applications.

Forth, users nowadays prefer logging in to their applications from everywhere (including mobile phones), so applications that are attached to a PC frequently may be conceived as old-fashioned.

So why are desktop applications still with us? I can think of a few reasons:

First, the power of the habit: people are used to downloading stuff to their computers, and among computer geeks or gamers downloading is simply a ritual. An entire industry of downloading and file-sharing is still alive and in full strength.

Second, the physical network (the communication lines) are way behind the size of data which is needed to go through them, especially in developing countries. This means that heavy applications get stuck in the way, giving desktop applications a chance of remaining relevant.

In short, the web becomes more and more dominant within the PC use and the desktop applications will become more and more expandable, but this process may take decades.

Do you think differently? Tell me!