Monday, January 31, 2011

vWorker (ex RentACoder) - Let them win

I had recently a problem with a vWorker coder. He was supposed to fix a PHP script. When the deadlines come, he posted my file back and asked for his money. All he has done was to force some checkboxes to true (which was wrong anyway). His work amounted to less 40 extra characters added to my original file! I told him that he was wrong and he didn't actually fix the script. He instantly put the project in arbitration and now I understand why: the coders know that arbitration is a long and painful process in which the employers lose lot of time and money instead of using those resources for something useful. The arbitration can take weeks even if the failure is as obvious as a beam light looked from 1 meter distance.
So, the conclusion is: if your project is a failure and it is under $150-$200, don’t argue with the coder. It is better to give him the money they want and 10 points, instead of entering the arbitration. Believe me, it is cheaper this way.
Probably this is why 95% of coders on Rent A Coder/vWorker have a grade between 9 and 10 (10 is maximum). (To put it in other words, the grade of a coder has NOTHING to do with their skills and their trustfulness).

Edit: Even if I am not a PHP programmer, I fixed the code by my self. So, this project would have been better without

Friday, January 28, 2011

How much a software developer makes?

What they charge?

Are you new to online software selling? How much do you think you will make when you sell a copy of your software that worth $100?
$99? Wrong!
$95? Wrong!
$90? Wrong!
$80? Wrong!
$50? Wrong!
$40? Still wrong!

Let's take example of a $100 order placed via PO by your customer. In this case Plimus will charge $3 from customer and another $15 from vendor for a thing they call 'manual processing fee'.
 Also, every time a customer purchases something from you and pays via WireTransfer (very popular in EU), the bank on Plimus' side will charge a fee for wire transfer (up to $30) even if the customer is from EU where the wire transfer fee is $0. The fee will be deducted from the amount the customer sent. This means that when amount arrives to you, it will be short with about $30.

Customer places PO order ($100)
Customer makes payment via WireTransfer ($100+ $3 Plimus PO fee)
      Bank (customer side) send money without fee ($103)
      Bank (Plimus side) receives money and charges a fee ($103-$30)
            Plimus receives money ($73)
            Plimus holds PO fee ($73-3= $70) 
            Plimus charges standard commission (-5$ = $65) 
            Plimus charges PO fee ($65-15= $50)
            Plimus sends money to vendor via WireTransfer and charges for transfer ($50-$18)
Vendor receives money ($38)
Vendor pays income tax to government($38- 30$= $26.6)

Well, this is a worst case scenario, where the customer pays via PO. You can hope for better customers.

Related post:

Plimus commissions as January 2011

Transaction Amount Range (In US Dollars) Commission Rate
$0 - $4.99 75 cents
$5 - $8.99 15%
$9 - $49.99 10%
$50 - $59.99 9%
$60 - $79.99 8%
$80 - $99.99 7%
$100 - $139.99 6%
$140 - $279.99 5%
$280 and above 4.5%

Thursday, January 27, 2011

Manage account order in Thunderbird

This is doable. In your user profile folder find the prefs.js file.
In this file change the order of your accounts like this:
user_pref("", "account4,account1,account3,account2");

You can also use a Firefox extension called 'Folderpane Tools'.

Once you successfully installed the extension you will be able to define the new sorting orde.
To configure Folderpane Tools:
  1. In Mozilla Thunderbird, open Add-ons from the Tools menu.
  2. Locate the Folderpane Tools extension and click on it.
  3. Press the Preferences button
Then, you just rearrange your accounts to your taste (and select the default start up folder you want to use).

Tuesday, January 25, 2011

Firefox refuses to remember the URLs typed (fixed)

I had problems in the last month with Firefox which refused to remember the URLs I typed in the address bar.

There is a fuzzy Mozilla article that says to fix bookmarks problems. However it applies also to the problem described above. The article says that deleting the 'places.sqlite' will solve the problem but you will loose some data (like addresses/bookmarsk/browsing history).
So, I backed up my profile and deleted that file to see what happens. To my great surprise, it fixed the bug and my addresses were not lost. Just delete the 'places.sqlite' (backup first!). That's it.

Hint: If you are a Win 7 user, your places.sqlite file is located here:


Sunday, January 16, 2011

Those sundried-brain old school PHP programmers

Those sundried-brain old school PHP programmers

It is a shame that in these modern days some people are still coding in Notepad. Many of them as still far away from advanced concepts such as IDE. RAD? Well, they never heard of it. Framework? What’s that? (or, as one of them said “why use a framework…  I can do all that code by had”).

Some days ago I had to share a PHP project with some other coders. It looks like some of them have problems to understand what RadPhp is and keep telling me that the package of source code files I send to them is incomplete - and of course then they were asking for the "missing" files. RadPhp is a RAD, a IDE and a framework. The files that they THINK I forgot to distribute were part of this framework. There are 6285 of PHP/JS (and other) files in this framework. I believe at that moment that it was pointless to email them all those files since they already have them on their hard drive. But it looks like that even if I told them that the project was made in RadPhp AND it requires RadPhp, they decided to do the development in their old Notepad (nothing like a good old plain text editor, right boys? He-he). No matter as magnificent Notepad is, it cannot replace those 6285 files framework. So obviously my script was kept crying for the “missing” files. I hope I can convice those guys that the script will not work until they install the framework. What? “Framework”? I used that nasty word again? Sorry. I promise I will not do it again.


For all other PHP people that already know what a framework is, I deeply really apologize for this lemon-acid rant. For rest of them: Guys take a fucking dictionary and look for IDE,RAD and framework, or just download the damn thing and you will understand!

Monday, January 10, 2011

Toshiba sound driver thakes a lot of CPU

More horror stories about Toshiba's crappy drivers.
I just find out that turning on the year-candy features in Toshiba (x505) sound driver (especially the Dolby stuff) will eat one on my CPU's cores!
The high CPU utilization cannot be viewed directly from Task Manager since it is generated by a driver. Instead can be seen from Sysinternals Process Explorer under the DPCs.

Friday, January 7, 2011

Delphi - Testing application speed

Each test ran 4-5 times. The application priority was set to High in Task Manager.


Start point:

No optimization: 2.28 sec

Test 1:

With FastMM4 enabled:  2.23 sec
With FastMM4 enabled and RtlVclOptimize: 2.18 sec
With FastMM4 enabled and VCLFixPack: 2.10 sec 
With FastMM4 enabled and FastCode: 2.09 sec

All (FastMM4 and RtlVclOptimize and VCLFixPackand and FastCode): 2.12 sec


Test 1:

FastMM set on Release: 2.17 sec
FastMM set on Debug (aggressive): 4.80 sec

Unfortunately, the results are not very consistent. 

Delphi compiler crash because of faulty DPR code

Recently I wanted to test some things and I wanted to comment some of the units used in my project, in the DRP file. Unfortunately, I forgot to close the comment (close bracket}) so I commented too much code in that DPR. As soon as I compiled the project I got an access violation in module dcc70.dll.

After a while I figured out the problem and closed the comment. Yes, instead of showing there is a problem in the code, the compiler just AVed. Delphi compiler is very happy since I fixed the comment.
I seems this also can appear when you have invalid code in the top of the unit (in the INTERFACE section) or when you have strange programming errors (also typos) in code. 

Other people reported problems with code like this: 

procedure aa;
    system.Val(sn,xx,err); // this caused the AV problem !!!


  SeparatorIndices: array(1..7) of integer = (6, 13, 39, 65, 72, 75, 76);

instead of the correct code:
  SeparatorIndices: array[1..7] of integer = (6, 13, 39, 65, 72, 75, 76);

The solution is to comment pieces of code until the compiler starts to work again, then un-comment and see where the problem is.

Strange Delphi behavior/No icon in compiled program

Today my Delphi went ape. At a moment I recompiled and run a program. FastMM started to report all kind of strange memory leaks but it was unable to locate the source of the error (unknown address). After a while I tried disabling FastMM and recompiling the program. The program was recompiled but it had no icon.

After a long trial and error session I have found that rebuilding my VCLs solved the issue.
 It seems that even if my VCLs are set to "rebuild as needed' Delphi recompiles their DCUs but not also the afferent BPL/DCP files.