Tuesday, 29 December 2009

Popularity of programming languages

Have a problem to pick up a programming language to learn?

First of all decide, what area you are most interested in (embedded dev: C, C++; commercial: Java, C#, VB, PHP etc; Logical: LISP etc) and then follow the programming languages popularity chart below (which was compiled by TIOBE Software).



The more a language is in use the higher the probability you will find a workplace if you know it.

As usually there is an exception for persons who are smart and brave enough to follow it: the less a language is common (spread among devs) the higher salary gets the persons who knows it... but there is a high risk that you will not find a company interested in hiring you (especially in such a small country like EE)

PS: Ideally you should know 2-3 language from TOP-10.
although you are likely to be a professional in only one of them using it constantly.

Sunday, 20 December 2009

A problem of choice

There is a well known statement on selecting something among alternatives

The more alike two items are the more complex it is to choose one of them .... although the actual cost of been wrong is minimal in this case.

Initially I like this statement since it seemed to be exactly correct... but after some thinking I disliked it too since I felt it is incorrect as well.

Now, I believe I should reformulate it into

The more alike two items seems to be the more complex it is to choose one of them. [full stop]

Comment: I thing the catch in the original statement: you actually feel that items are not similar, otherwise you would simply select one of those... but you just have not enough information to distinguish those items by pros and contras.

Friday, 18 December 2009

ORACLE joke

Unfortunately I cannot trace the original source.

An ORACLE specialist, who acquired all certificates and actually did all exams can, known just an ip address, kill a person by a single SQL statement.

Sunday, 13 December 2009

Saturday, 12 December 2009

Fair rate for .Net devs outsourcing functionality development: Estonia and USA case

How would you answer the following question "What is a fair rate for .Net devs (per hour or per man-day) in Estonia and USA if a project lasts circa 2 months?" Comment: that is an amount one company would pay to another company, so the last one will have to pay all taxes. We are not talking about a salary that devs would get into their bank accounts. Moreover here we are talking here about one-time work. Not a long-term cooperation or stable income for the dev company.

Obviously the answer depends on the involved devs level. An experience from our company when we had the maximum number of developers – abilities of devs to generate correct code were varying circa 3-15 times, i.e. one dev was able to produce a code in one day, while another will do the same code in 3 man-days or even 3 man-weeks.
It also depends on time-frame. The faster result should be delivered the more costly it will be to produce. If there is no rush, then professional consultants will not be involved, so the price will drop sufficiently.

What answeres do we have at the moment?

1. quote " I work in a startup. Think 1-3 person teams who release v1.0 in 4-6 months. In this scenario, $5k or $10k goes a long way towards bringing a product to fruition. $10k can pay for a senior offshore developer ($15/hour) full-time for 4 months (so 120$ man-day)"

My comment: seems that „indian universal devs' are involved here – sometimes they even offer to write a code solving NP != P problem in a week :)


2. USA – well it depends on the dev level - from 50 to 75$ an hour (s 400-600$ a day), but sometimes miracles happen also by having 120-180$ an hour.

3. My friends recently did a project of 40 man-days. For a company they have very good relationship with. The cost was 2500 ЕЕК per day - so 240$ per day. The price was fixed for functions which were estimated including risks, so I would rate it as 240 - 320$ per day in other cases. An important fact – it was outsourced so, that the work-force was involved basing on a free schedule, so they could work on the main workplace doing extra when they willing to spent their time on it (although a deadline was also set).

4. It used to be 500-800 EEK an hour in Estonia some time ago. Not sure how much it is at the moment. Here I talk about highly qualified devs. You can find a student for 100EEK as well, but obviously the quality will be different as well as the time required to build the desired functionality. So here we get again circa 400-600$ per day.

5. Europe company got a rate from my friends - 500$ per day. They are a bit in rush, so they easily accepted that.

.. what answeres do you know? Could you share those with us?

Friday, 11 December 2009

WCF: limits

Today I have lost a half of the day trying to understand a problem occurring when a .Net client was communicating to a server talking via WCF - when the posted byte array size was over circa 2MB.

Both client and server looked to be fine in term of limits:

Client
moWsHttpBinding = New WSHttpBinding(System.ServiceModel.SecurityMode.None) moWsHttpBinding.MaxReceivedMessageSize = Integer.MaxValue
moWsHttpBinding.ReaderQuotas.MaxArrayLength = Integer.MaxValue
moWsHttpBinding.ReaderQuotas.MaxStringContentLength = Integer.MaxValue
moWsHttpBinding.MessageEncoding = WSMessageEncoding.Mtom
moWsHttpBinding.ReaderQuotas.MaxBytesPerRead = Integer.MaxValue
moWsHttpBinding.ReaderQuotas.MaxNameTableCharCount = Integer.MaxValue
moWsHttpBinding.UseDefaultWebProxy = False
moWsHttpBinding.BypassProxyOnLocal = True
moWsHttpBinding.ReceiveTimeout = New TimeSpan(20, 0, 0)
moWsHttpBinding.SendTimeout = New TimeSpan(20, 0, 0)


Server (from web config - omitting a lot of detals on how they are bounded)
<wsHttpBinding>
<binding name="NoneBind" messageEncoding="Mtom" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />

<security mode="None" />

</binding>
</wsHttpBinding>


... and as usually a solution was simple and laid outside of this code (and actually well known for me from asp.net development experience): you have to add into web.config something like:
<system.web>
<httpRuntime maxRequestLength="131072"/>
</system.web>

to increase the limit to circa 128MB.



which makes me wonder why remaining binding settings disallow to overcome this simple general one.