Friday, December 10, 2010

Beware: Recruiters: How-To notes

In a start-up you must have best recruiters possible. Unfortunately, quite often, this is not a case. Many recruiters just pick candidates from job search engines, like yahoo jobs, dice or monster and trying to present them to you as if they identified them.

More than that - if you hire person who was found on a search engine, but by any chance (which is quite high) such recruiter also have send you same candidates resume, he can claim that you owe him the fee.

Considering that many of such recruiters keep litigation lawyers on contingency, you can face a lawsuit very fast if you reject to pay such a fee.

I was recently involved into "damage control" situation, when reckless executive behaviors enabled recruiter to sue the company and actually get some money in a process - as for businesses very ofter it is easier to pay than to engage into lengthy lawsuit.

As a person in charge of hiring, it is very important to make sure that agreement clarifies what search of candidates you expect from recruiter.

Another important point - always make sure to have a written agreement in place. Never agree to have couple candidates to be presented to you "just to show how good I am". This is an invitation to a legal troubles.

As a person in charge you already know what percentage / fee you are willing to pay and what other conditions for candidate search you need to have in place. Ask recruiter to send you an agreement, modify it with change tracking, send it back, execute it. After that let him present candidates.

Fees in general:

25% today is a standard proposed fee. I have negotiated 20% with the majority of the search firms. Some companies tried to set 30-35%, but in todays economy this is not reasonable and should not be considered

Other conditions:

Usually recruiter propose 30 days free replacement if candidate left of let go. In complex technical and business positions, this is nearly not enough to understand if person fully fits the position or not.

Always request free candidate replacement within 90-120-180 days - whatever longer you can negotiate. I manage to negotiate 120-180 days with many recruiters.

Monday, December 6, 2010

DB2:SQLPL: Weird look-ahead bug in SQLPL stored procedure SQL0811N

Just found interesting bug in DB2:

One of the update statements was failing with below SQL Error:

SQL0811N  The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row.  SQLSTATE=21000
Nothing unusual, outside of fact that this error was appearing in run time immediately after stored procedure started to execute.

Problem SQL was in the middle of stored procedure body, but it was a FIRST REAL SQL in the body (not call to other stored procedures).

The moral: DB2 executing look-ahead approach in stored procedures and when it finds "naked" SQL it will execute it, ignoring other statements (including debugging ones).

Sunday, December 5, 2010

Oracle: Internal structure of "date" data type

Did some investigation on internal date data format:

A date in binary format contains seven bytes, as shown in table below:

BYTE          1    2     3   4    5      6      7
Meaning Century Year Month Day Hour Minute Second
Example     120  110    11  30   16     18      1


The century and year bytes are in an excess–100 notation.

Dates Before Common Era (BCE) are less than 100.

The era begins on 01–JAN–4712 BCE, which is Julian day 1.

For this date, the century byte is 53, and the year byte is 88.

The hour, minute, and second bytes are in excess–1 notation.

The hour byte ranges from 1 to 24, the minute and second bytes from 1 to 60.

If no time was specified when the date was created, the time defaults to midnight (1, 1, 1).

You can use DUMP function to investigate this:

 SQL> create table t ( x date );

Table created.

SQL> insert into t values ( to_date( '03-nov-2010 3:17:01pm', 'dd-mon-yyyy hh:mi:sspm' ) );
1 row created.
SQL> commit; 


SQL> select dump(x) from t;
DUMP(X)
--------------------------------------------------------------------------------
Typ=12 Len=7: 120,110,11,3,16,18,2

tidbit:windows:show administrator login

Needed to be able to see "Administrator" user as a login:

in "regedit" navigate to the following key:

1) HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ SpecialAccounts \ UserList
2) Right-click in the right pane and select New DWORD Value.

Type-in Administrator as the value.

Friday, December 3, 2010

business: Mail Campaign Websites

Needed to get a good provider for a mail campaigns.

Would very nice URL: 

http://email-marketing-service-review.toptenreviews.com/

Looks like Constant Contact is an industry standard, but others like MailChimp and Campaigner are definitely to be considered.

tidbit:windows:reset and re-validate windows registry and system files

After recent virus attack, I suddenly lost windows search on outlook 2007. I tried many things - reinstalled windows search 4.0, upgraded to Outlook 2010, rebuild indexes - not much help.

When looking after the solution, I have found advice to execute "sfc /scannow" -

This will scan the system files looking for error and will automatically repair or replace any corrupted files. 

This actually helped and now I have search functionality restored.

Wednesday, December 1, 2010

tidbit:Java:Garbage Collection on Netbeans and Eclipse

Triggering garbage collection (GC) on java-based IDE, such as Netbeans or Eclipse can greatly improve IDE performance, especially if you do not restart IDE for a long time.

Easy way is to start JConsole (standard JDK application), connect to IDE process, select "Memory" tab and click "Perform GC"

BTW - JConsole can be started directly from Netbeans - In "Debug" menu select "Start JConsole"

Check this link for another way to trigger GC from Eclipse:

http://compdottech.blogspot.com/2009/05/trigger-gc-in-eclipse.html