“Before you speak, listen. Before you write, think. Before you spend, earn. Before you invest, investigate. Before you criticize, wait. Before you pray, forgive. Before you quit, try. Before you retire, save. Before you die, give.”

Thursday, February 11, 2010

Debt-free

Finally I managed to pay for my car so if I exclude my rent and other bills I am finally debt free.
My first goal for the year is accomplished.
The feeling is very good to say the least .. so good that I don't think I will sign another loan contract again. I read this on a site (can't remember where) : "Think before you act , listen before you speak , earn before you borrow" .
The last part is the one most people don't think very often until they are forced to by economical realities.
As far as I am concerned I think it is just a matter of economical planning for a person and/or family.
If you want a new car and you do not have the money for it is simply means you can't afford it.The same goes for a new laptop , bike or anything else.
Borrowing money to buy these items would mean just lying to yourself.

Of course the culture we live in and the media always go for instant gratification at any cost. "I want to have it and have it now" .. yes but at a cost the cost of your future and your life. Guess who gets to use this trick : the banks world wide.
That was before the crisis. Commercials would show a bike (with an almost naked woman attached) and say : "Do you want to wait until you are 80 to get this ? " and people would buy that kind of nonsense and run to the bank asking for the biggest loan possible. Something like 10 years loan for a car was not unheard of and people would buy a 20.000 Euro car with 400 Euro salary/month (which is financial suicide if you ask me). I kept hearing : 20.000 Euro is nothing .. from people that would need 4 years in salary to get that kind of money (never mind saving).
The bank profits were huge and more important they would expand to almost every street corner.
People including the ones that should have been wiser (my dad) kept telling me that saving is not worth it and getting debt is a good thing .. but I still believe that even in business common sense is more important then the so called money-sense (or at least as important). Selling your future is never an option (never ever) and I hope people will understand that before our civilisation crashes down burning.

I read the famous book Rich dad,poor dad and the one thing I agree with is that borrowing for non-assets is something a smart person should never do. So borrowing money for a car/computer or worse case food is something that should never happen.. borrowing money to fund a start-up on the other hand might be ok if you believe in it and are willing to make it happen (but even then saving might be better).
Unfortunately even in my country it has become impossible to save money for a house (in a short period of time) so renting is my option for now(especially because the place I rent is ok and not very expensive).
Now I need to learn about something only the people in the communist past of our country did .. saving (and maybe investing).

Friday, February 5, 2010

R.I.P. Sun ...

For those of you browsing java.sun.com you might have noticed the Oracle name and tm there.
This Blog entry by James Gosling says it all .
I have been a Java programmer all my life (now just starting with Flex) and I really cannot believe that Sun is gone .. and MySQL will be gone soon enough.

Monday, February 1, 2010

The rebuild :)

Finally after working out the plan for 2010 (and taking into account my bonuses and raise) I decided to buy a faster computer sooner.
So here it is the config :
CPU : Intel core i7 860 (the best price/performance for a core i7) 2.8 Ghz Quad core +HT and 8MB L3 cache.
Memory : 1 GB (very cheap) Zeppelin 1333 Mhz memory - TODO upgrade it
Motherboard : Gigabyte P55A-UD4 - that is 333 or Serial Ata 3.0 3x power and USB3.0
PSU : used the (2 month)old one a Rasurbo silent power from my old Sempron
Case : Nexus version 1 aka Caterpilar - the quietest case I could find for less then 100Euro
GPU : Gigabyte Ati Radeon 4350 (yes it's slow but it works out nicely for my moderate gaming needs).
The best part is that I managed to build it all my self. I have changed some components before(CPU, GPU,RAM,RAM) but this is the first computer build I do by myself and is .. let's say very empowering to know that you can do this and have total control over your configuration. The shops selling parts would do it for 10$ (3o RON) but there was a 2 week waiting period and you were forced to buy the parts from one shop (and not use your old parts).
So I managed to get the total costs to around 550 Euro's (around 750$) for a great machine with good parts waiting for upgrade.

Needless to say Java /GlassFish/Mysql run a lot faster (up to 5 times faster) than my old computer BUT hard disk performance is still the bottleneck in some operations.
I could have used the money for a core i5 and more memory but these processors are all expensive so I feel fine with what I got since I can always add more RAM when I get some cash.
What I have here is a wonderful bicycle for the mind and used properly it could be an amazing tool and I feel almost guilty when I use it for gaming or web browsing .. hopefully the time and money invested in this machine will be worth it for the next 2-3 years.

Sunday, January 17, 2010

Project management .. or how do you get 1 baby in a month using 9 women

Since I started doing some kind of mini-project management I worked I realized something shocking. We (the developers) are just resources .. like a car engine or robot. The thing is that we are very expensive resources and we need to deliver code to actually ensure the company has profit.
The way management views us is that simple. And recently I have started to do it myself when using tools such as GanttProject. As you can see below this tool actually runs on Linux which makes it a great tool for new non-corporate project managers.















Ever since I started as a developer I had my conflicts with project managers. They would keep insisting that the task should take 2d because the project would not be on critical path otherwise .. and I would just say : It will not happen I think it takes 4 days (at least).
Now I get to do the estimations and the only way we could do the estimations right in my opinion is by using something called : Evidence Based Scheduling
I do not think you could ever estimate a new task without having it done before. This is not picking apples activity this is a complex endeavour. It is quite hard to say whether I can split a task between 4 people and parallelize it.
So as a team leader I am expected to make the right choice when doing the Gantt Diagram and sending it to management but I always tend to err on the safe side because I happen to know how it feels to be stuck before an error you could not possibly understand or to need something from a fellow developer and that guy is not available. Or to have some other priority taking away one or 2 members off your team.
The result is that I always finish on time and even before that but that is not always good because that time is always too long.
As far as I am concerned I feel obliged to honor my own estimation and that is that.
There are 2 ways of doing task estimating and only one is right in my view
1) We have a project deadline (already specified in contracts and signed for) let's split it between the developers and see how we can deliver it. The developers just have to do it in the specified time (or we will fire them).
2) We need to implement a project. We get together the team. Each developer chooses the features he needs to implement and gives an estimate. The team leader( me ) comes up with a sum of all estimates + some slack and the deadline is specified to the client (upper management might add some more slack).

Fortunately people understand that they need to do it using the 2nd method (at least where I work) but there are still shops doing the first method (been there done that) and these shops do not stay in business for long.
I like to be organized and I did my best to study time management techniques or to be effective in my work so I like to actually create a schedule and respect it (as a true professional) but I just don't like the idea that everything is already planned for you and you the developer don't get to actually say how much a task will take even if it is assigned to you. Developers that can't be trusted with estimates should not be trusted with code .. but (some) project managers seem to miss this point so they do the estimates for the poor guys and ask them to come during Weekends to get the work done.
LE: could not help it 9 women give you 1 baby /month :)



Thursday, December 31, 2009

Happy New Year !

This the time to set a new year's resolution ... well I can think of some of my failures in 2009 and some of my successes.
My failures :
- could not pay my car debt which was scheduled for end of the year
- could not bike all year long(car accident in November) .
- had some lazy periods when I could not be a top performer.
My successes:
- lost 23-24 kg .. I am now officially in the overweight but not obese category and it feels fine
- found a Java developer job and was promoted a team leader .


What I want for 2010 :
- pay my debt - it is so old fashion but I hate debt , being debt free is important for me and my wife
- get organized about my life (already am a lot better at this) and driven the two are interdependent no matter how much will you have you need to be organized and without will
you can't even organize. Professionally it means I should use all the 8-9 our at work(and not another hour more) to deliver working code and deal with the issues no matter how boring or incredibly hard they are.
- finally pass the SCEA certification .. this has been a work in progress since 2007 .. need to do it
- enter the master program - E-bussiness .
- loose weight - another 17kg would be nice
- bike a lot more( commute to work daily) , maybe even buy a road bike

Happy New Year Everyone !



PS : Being organized means I will definitely do a huge upgrade in March to a new computer .. can't wait for that.

Tuesday, December 29, 2009

Developer machine - do you really need a core i7 and 6 GB RAM ?

After a depressing post about Christmas I will try to finish the year on a happy note.
Due to the fact that I want to avoid adding to my already mounting debt (car especially) I gave up buying a new machine. Instead I kept upgrading it to make it faster.
My current machine now is a :
CPU : Amd Sempron 2500+ - 1.4 Ghz (o.c. to 1.626 Ghz)
Motherboard : Biostar K8M800-M7A
RAM : initially 512 Mb PQI - upgraded to 2GB king MAX DDR1 400
Cooler : Amd Stock - replaced with a Zalman 7500 AlCu Led.
HDD : 1 40 GB Seagate + 160 GB WD ATA
PSU : no name initially replaced by a Rasurbo Silent Power 550W

As you may realize this is was a low-end machine even in late 2005 when it was bought.

My machine felt really slow when working with Eclipse , Glassfish and cruisecontrol + svn on Ubuntu Linux 9.04. That was last year about the same time as now (December 2008).
All I wanted then was to buy a new computer on which to develop Java. But I am not Jeff Atwood at least not yet so borrowing 1500$ in this country and in this economy to fund your computer needs is not a good idea.
Well at my new job I got a new generation E2180 Intel Core2Duo computer which was supposed to be lightning fast(for beginning of 2008 anyway). Guess what .. it wasn't . The computer kept reading data from the HDD like crazy. This made me understand that it needed more RAM and required it ...
So if a 1 year old computer can be choked by software development requirement what can you ask from your old 4 years old computer ? While studying hardware used by other people on the internet for software development I found this post by Jeff which really made me think because I just happen to have a processor in the same family(with stripped down cache Celeron style).
So I started identifying bottlenecks and issues on my old Sempron
1) It would not always start
2) It was noisy
3)It was slow and kept reading from HDD
4)Compile times were too long.

Fix for 1 - bought a new PSU (and a silent one to fix 2) - 40$
Fix for 2 - bought a new CPU cooler (also a huge and silent one) - 35 $
Fix for 3 and 4 - bought 2GB of RAM and donated the old RAM to my dad - 75$
Total amount spent 150$ which was spent over 2 months period.

Finally after replacing the parts the computer is fast enough for development (not gaming ) and more important quiet. I can still hold on to it for 6 months and then keep it as a Linux server. Considering a new computer (case , mb,processor, RAM , psu, hdd) could easily cost 1100$ (my local market calculations with a core i7 920 2 GB RAM which would need to be upgraded soon enough to a i7 970 6GB RAM) I think the upgrade was a good idea and I will easily shave the 150$ off the CPU price next year (Intel processors are overpriced in my opinion but are worth it for a non-gaming machine).
Also as the cooler was very big and quiet I thought that I could afford a minor overclock from 1400 Mhz to 1626 Mhz and the system runs fine at this frequency(that was brave considering the fact that I was scared I would burn the CPU when installing it and the heatsink + thermal grease-did not happen).

Glassfish / MySQL and Eclipse run without interruptions and I can even open a PDF ,3 browsers and listen to music at the same time .. huge amounts of RAM can do this to you.
Considering the economy and the jobs in Bucharest it is always better to keep your money for bad days instead of expensive hardware. In Romania a good software developer can rarely get 1/3 rd of the American software developer paycheck .. and guess what costs are higher here .. but this does not mean you should not optimize your hardware .
I cannot understand people that are in this software development jobs and do not know (or care) what is underneath the case. I for one think that we need to know how to get the best of both our minds and our computers in order to deliver quality code.

PS : Because I did not study my computer info I kept thinking I had a socket A sempron until I opened the BIOS and found the information I needed. Before that I spent another 30$ on a Amd Athlon(Barton) 2600+ CPU which I will also give to my father.
I think that for his needs (office,music,movies) an AMD CPU will do (coupled with 1GB RAM).
LE : I did the upgrades on my father's computer now it works at 2600 + (Amd Barton socket A) a bit overclocked to 2700+ (2000 Mhz) and I really like how it works. I used his old processor an AMD 2000+ to power up one very old machine left around the house (carrying an old Duron 900 Mhz). Turns up that the thing I was scared of the most (installing a socket A processor and heatsink) was doable. I always thought I would burn down the damn thing but I didn't .. you just need to pay attention.

Thursday, December 10, 2009

Laid off for Christmas

Long time since I last wrote.
It's been a year since then. I hear Christmas carols .. .people smiling , the typical gifts rush .. but Christmas cannot be as nice for me anymore. The magic is gone .. people still die around the holidays , jobs are lost and a lot of people suffer from depression around this time of the year.

Last year I lost my job on December 5th. Those were some of the worst holidays in my life.
I could not afford to buy Christmas gifts and the only thing I was interested in was getting a job. People went on to their jobs each day .. I went running in the park and returned home just to find no calls, no emails and no comfort .. People were asking me were I would spend my Christmas holiday .. Austria or Romania .. I was thinking about my bank payments.



I luckily found a job in January this year but my holidays were ruined. The weird thing is that I was contacted by the same company that fired me (or laid me off .. not much of a difference for me) to work for one of the first of their customers.. well I can't say I can afford the chance to be fired again so I only agreed to do a part-time gig (which they could not fit into their plans) because a company that fires somebody for Christmas is not a company you want to join for a long-time relationship (even as incompetent /lazy as I was).

Thinking about the pain I went through I will make a note that if I ever found a software company I have to be nice to my employees and never ever fire somebody for Christmas. A 100.000 Euros Christmas budget(bonuses and presents (as in laptops/smart phones/geek toys) will almost guarantee faithful employees for a long time).

The worst case of Fired for Christmas last year ended in a shooting at the company Christmas party .. thinking about it I was pretty upset and was even invited to my ex-company Christmas party .. it is good we do not have shotguns.
On the other hand the experience really changed me yes there won't be any Christmas magic from now on(I still worry every day before Christmas about being made redundant) and I will never have a truly happy Christmas but I will never leave my life in the hands of somebody I do not trust , somebody that with just two words can destroy your holidays.
Here is another guy that went through the same thing. No .. no Merry Christmas for him either. ..