Profile cover photo
Profile photo
Piotr Kochański
Piotr's posts

Post has attachment
So, shall we learn LISP or stay away from it, becaus it is to powerful?

Post has attachment
Ahhh, Java.

No doubts Cedric Beust is a smart guy, but playing with Java code for too long marked him heavily. 

There is a class Person with a method livesNear(Person anotherPerson). So, we need to add  somehow distance checking service to class Person. Sounds ugly, but, as Cedric shows, it can be also made weird. Namely we can create some Guice factory class that will produce Person objects, and that distance calculation service injection would be sort of hidden. 

This visually improves situation showing clearly what's wrong with Java.

Personally I would prefer to have a plain function boolean livesNear(Person aPerson, Person anotherPerson) placed in the same module, namespace, whatever you call it, as Person. But we cannot create functions in Java, so we need separate class to keep that function as a method. Annoying. In fact I would even prefer to have generic method, that would act on any object having localization info (address, GPS data, whatever).

Java is a simple language and in this situation we have two options.

(1) Go with the object orientation spirit and insert into Person class whatever seems to belong there (like that localization service).

(2) Give up, create some "util" or "manager" class that would act as a placeholder for methods that does not fit well into given class (give up, since we sort of abandon object orientation).

There is also a number of variants, but usually they mean overengineering. I count Cedric's approach as one of them: we don't like that constructor clutter, so we create artifacts to hide it. 

But, in Java tradition, we can come up with something much more strange, like creating interface Localizable with method isNear that would be extended by a class SpatiallyLocalizable with needed implementation. Person would extend that class to have ready-to-use method. Ufff.

Because there is no simple multiple inheritance in Java that's a little bit cumbersome, since it may appear that Person has to extend one more class - what to do then?

The fun part is that all this discussions and Cedric's considerations are unique to Java. In JavaScript or Clojure (or any other LISP) or Python or Objective C or Ruby this is a non-issue. Language is enough powerfull to handle nicely such situation.

Why superstar programers hate recruiters? Look at this people [ and authors of stupid comments below] or [!/dhh/status/154336235068993536].

I don't get it. Recruiters are doing their job - they are linking employers with employees. That's sort of useful activity, given high unemployment rates.
Obviously someone might not be interested in a job offer, but why publicly mourn about that?

Sometimes when I walk or drive I come across people who are cleaning sidewalks or streets. Sometimes I have to wait or walk on the lawn or drive slowly but it never came to my mind to be angry. These people are doing their hard and, in fact, very important job, getting salary probably lower than mine.

The superstar programmers are earning much more than average recruiter. They get these money partially because the company they are working for managed to employ right people - maybe thanks to some recruiter’s work.

Some superstar programmers are kind of celebrities. That has advantages and disadvantages: Basecamp is so popular because of the hype connected to 37signals people, (David Heinemeier Hansson, Jason Fried) and Ruby on Rails. So DHH managed to become rich because of the marketing strategy, in which he and his 37signals colleagues played crucial role. They are rich, popular, sell books, many people know about them and want to work with them, use them, etc. Celebrity’s everyday life.

Madonna, Lady Gaga, Jack Nicolson, Dustin Hoffman, Kate Winslet or Nicole Kidman are also getting job offers all the time, but I haven't heard that they are arrogantly complaining about it.

You do not want to receive job offers? That's simple. Remove your Twitter/FB/G+/LinkedIn account or keep it private. Stop blogging. Don't post your e-mail address publicly. Use fake Github account (if you need to use Github at all). You are invited to TED conference - refuse. And so on. Easy.

And think how many people would like to have your problems with recruiters.

Post has shared content
Bashing Google UI team again. What's going on. Are day so arrogant or so incompetent? Bet for arrogancy.
By the way, that Youtube setting panel is, indeed, completely broken:

Post has attachment
I like charts. What the message "Apple sold more iphones than Macs ever" really tells?

First, imposed interpretation: iPhone is selling so great
Second interpretation: Macs sells are and were rather miserable...

Beware of statistics!

Post has attachment
So the Basecamp people decided to rewrite Basecamp from scratch [].

Rewriting is bad idea in itself [,], so why 37Signals are doing it? I am not convinced by "official" reasons.

Maybe this has something to do with Ruby on Rails. Ruby + Rails is a magic technology. The problem is that even the greatest magician forgets his tricks after some time. Not to mention apprentice magician, who has to make sens in magic code written by some else. The ability to make on thing in 55 different ways in Ruby/Rails does not help to keep code readable. That ugly Java shines here.

Another thing is Ruby approach to backward compatibility (both in language itself and various libraries). I had a real "fun" playing with 3 versions of CanCan. And after every version upgrade everything stopped working (they were simply deleting methods, deprecation seems to be unknown beast in Ruby land).

Will Basecamp people survive the rewrite? Sure they will. Why? Because Basecamp is a rather simple piece of code, so they can play as they want. That's why there are so many Basecamp clones, btw. But it's hard to "become trendy", as one day Basecamp did, so Basecamp is still ahead.

Post has attachment

Post has attachment
Good luck Hungary!!!

Post has attachment
That's a sad, but eye opening article about reasons why companies are moving their bussiness to China.

The problem is that workforce costs are not the most important factor, but flexibility of Chinese companies, availability of well educated engineers, rough products and natural resources.

For years US and European companies were moving to China jobs, which were consider "simple", "cheap", "unimportant", later, they started to move there more and more advanced technologies. Chinese people used the opportunity to educate themselves and be able to replace workers from US and Europe.

Capital do not know what is patriotism and move to the place where it can effectivly multiply itself. Corporations the same - they just go where the low cost and high income can be found.

The article mentions US, but the same concerns Europe and, yes, jobs of people like me (software engineers) and the whole IT ecosystem workers are in danger.

Are we ready to work for fraction of today's incomes? Are we ready to come back to working on Saturdays?

Can we afford any longer to give 80% of our income to the countries administration, European Union beaurocrats in the form of taxes (income, VAT) and social security payments for pensions (that we might never get anyway)?

The World is changing rapidly, are we going to perish or to adapt well? Do we have enough energy, vivacity to be able to adapt at all or we are simply to lazy and coddled?

Note: unfortunately the article lacks more indepth analysis of US job market (many information are taken clearly from Apple P.R. department). Also the importance of the fact that Chinese workers are often treated more like slaves then workers is a little bit hidden - this is NYT after all. The comments under article point out its flaws. Nevertheless reality is reality.

Post has attachment
Wait while more posts are being loaded