Sunday, March 29, 2009
Pierwsze aplikacje
Dzis wyslalem moja pierwsza naprawde profesjonalnie przygotowana aplikacje o nowa prace. Polecialo do kanady do bardzo fajnej firmy robiacej software dla ecommerce. Specjalnie szukalem czegos co nie bedzie tak duze jak Siemens acz wystarczajaco spore i bogate by zatrudniac prawdziwych profesjonalistow od ktorych moznaby sie bylo czegos superanckiego nauczyc. Zobaczymy co z tego bedzie. Kanada jest daleko.. ale w sumie nigdy tam nie bylem wiec wypad na roczek lub dwa nic by nie zaszkodzil. Szkoda tylko ze placi sie tam w dolarach, jest zimno i blisko do hamburgerow. No ale.. czego to sie nie robi dla dobrej pracy i przygody.
Friday, March 27, 2009
Game over
No i stalo sie. Pod koniec kwietnia opuszczam MED GS (a moze HS... juz sam nie wiem, tak czesto zmieniaja sie tu nazwy dzialow ze za tym nie nadazam... hmm.. nie chce mi sie nawet nadazac). Kasa sie skonczyla i nie stac ich juz na pracownikow zewnetrznych.. zycie.
Prawdepowiedziawszy.. nie czuje w tym momencie nic. Spedzilem w tej firmie prawie trzy lata i jedyne czego bede zalowal to.. hmm.. to to ze nie znalazlem sobie ciekawej pracy zanim nastal tu kryzys (i nie mam tu na mysli kryzysu "globalnego").
No ale.. w sume to musze stwierdzic ze wiele sie tu nauczylem, np. jak nie programowac, jak nie testowac, jak nie tworzyc zlej architektury, jak nie powinien wygladac team work, jak nie powinno sie uzywac scrum'u, jak nie powinno sie obchodzic z ambitnymi ludzmi, jak nie zabijac dobrych pomyslow, jak nie przeprowadzac rekrutacji, jak i gdzie nie zaczynac swojego biznesu, itp, itd. To jest naprawde wiele! Co by bylo gdyby wszystko przebiegalo perfekcyjnie, gdyby pracowali tu ludzie super kompetentni, "guru", perfekcjonisci? Czulbym sie pewnie nie najlepiej jako poczatkujacy programista, nie mialbym pola manewru, kazdy wiedzialby lepiej i mial do tego racje... a tu, mimo ze kazdy wie lepiej to ja i tak wiem ze racji pewnie nie ma, moge to sprawdzic... oswiecic kogos.. nauczyc sie czegos... mile uczucie ;-) Tak wiec zaczalem lekko... nauczylem sie tego czego chcialem na przykladach z zycia wzietych na koszt firmy. Super, jestm happy i moge isc dalej... hmm... tylko gdzie. Przez te wszystkie doswiadczenia z "jak nie ..." mam teraz maly uraz psychiczny i "nieco mocniej" zdefiniowane wymagania co do pracodawcy. Wiem tez, ze moj obecny "employer" nie znajdzie mi pewnie niczego co odpowiadaloby moim zachciankom (java, open source, etc.). Biore sie wiec do roboty i szukam czegos superanckiego... moze znajde.
Prawdepowiedziawszy.. nie czuje w tym momencie nic. Spedzilem w tej firmie prawie trzy lata i jedyne czego bede zalowal to.. hmm.. to to ze nie znalazlem sobie ciekawej pracy zanim nastal tu kryzys (i nie mam tu na mysli kryzysu "globalnego").
No ale.. w sume to musze stwierdzic ze wiele sie tu nauczylem, np. jak nie programowac, jak nie testowac, jak nie tworzyc zlej architektury, jak nie powinien wygladac team work, jak nie powinno sie uzywac scrum'u, jak nie powinno sie obchodzic z ambitnymi ludzmi, jak nie zabijac dobrych pomyslow, jak nie przeprowadzac rekrutacji, jak i gdzie nie zaczynac swojego biznesu, itp, itd. To jest naprawde wiele! Co by bylo gdyby wszystko przebiegalo perfekcyjnie, gdyby pracowali tu ludzie super kompetentni, "guru", perfekcjonisci? Czulbym sie pewnie nie najlepiej jako poczatkujacy programista, nie mialbym pola manewru, kazdy wiedzialby lepiej i mial do tego racje... a tu, mimo ze kazdy wie lepiej to ja i tak wiem ze racji pewnie nie ma, moge to sprawdzic... oswiecic kogos.. nauczyc sie czegos... mile uczucie ;-) Tak wiec zaczalem lekko... nauczylem sie tego czego chcialem na przykladach z zycia wzietych na koszt firmy. Super, jestm happy i moge isc dalej... hmm... tylko gdzie. Przez te wszystkie doswiadczenia z "jak nie ..." mam teraz maly uraz psychiczny i "nieco mocniej" zdefiniowane wymagania co do pracodawcy. Wiem tez, ze moj obecny "employer" nie znajdzie mi pewnie niczego co odpowiadaloby moim zachciankom (java, open source, etc.). Biore sie wiec do roboty i szukam czegos superanckiego... moze znajde.
Wednesday, March 25, 2009
UNMOUNTABLE_BOOT_VOLUME - XP on vmware
I recently updated my Gentoo box to the latest version available (I tought "few hours compile time"... but no.. it actually took the whole night!). Since I also had the vmware-player im my "world" it got updated too. Unfortunately, I was unable to start the XP vmware after I rebooted my PC. I don't know what the reason was but all my stuff on that virtual machine seemed to be GONE! All I could see was just a blue screen (which happened to appear only for about 200ms.. which is long enough to take a screenshot).

If you happened to have the same problem, here is what I did:
It helped me, maybe it can also help you. Good luck!

If you happened to have the same problem, here is what I did:
- Took the XP installation CD and started vmware with it
- When the installation app asks you what to do, choose REPAIR (press 'R' key)
- run CHKDSK app (may take a while, depending on size of your disk)
- done. CHKDSK should print out smth about finding errors, etc.
- restart vmware.
It helped me, maybe it can also help you. Good luck!
Saturday, March 21, 2009
Jestem psycholem :-)
Czasami lubie patrzec na takie rzeczy...

Nie.. no powaznie, nie moge od tego czasami oderwac oczu. Podobnie jest zreszta z wszelkimi monitorami pracy komputera. Gapie sie w nie jak bezdomny zima w ogien. Szczegolnie kreca mnie xosview i gkrellm kiedy pokazuja obciazenie procesorow w trakcie kompresji, kompilacji czy linkowania. Czuje ze wykorzystuje w pelni moc mojej maszyny... hehe... czy jestem psycholem?

Nie.. no powaznie, nie moge od tego czasami oderwac oczu. Podobnie jest zreszta z wszelkimi monitorami pracy komputera. Gapie sie w nie jak bezdomny zima w ogien. Szczegolnie kreca mnie xosview i gkrellm kiedy pokazuja obciazenie procesorow w trakcie kompresji, kompilacji czy linkowania. Czuje ze wykorzystuje w pelni moc mojej maszyny... hehe... czy jestem psycholem?
Tuesday, February 24, 2009
Co by bylo gdyby to mechanicy samochodowi tworzyli software?
Oczywiscie to pytanie to czysta abstrakcja. Ale.. no co by bylo?
Dwa tygodnie temu oddalem nasza Mazde do przegladu po 90K. Drogo bo drogo ale autko sobie na to zasluzylo. Nie sprawialo nawet najmniejszych problemow od momentu zakupu (choc to juz 8latek). Trzeba bylo zmienic pasek rozrzadu, wymienic olej i pare filtrow. Teoretycznie prosta sprawa dla kodos kto robi to na codzien, nie?
Co otrzymalem z powrotem?... piszczacego szrota! Autko chodzilo niby normalnie.. przez chwile... a potem zaczelo piszczec i swiszczec, jakby ktos paznokciami po czarnej tablicy szorowal.
Na szczescie mieszkam w niemczech i obowiazuje tu gwarancja na takie rzeczy, nikt nie proboje wciskac kitow itp. A co by bylo jakbym mieszkal w Polsce? (hmm.. pewnie ten post bylby na temat trojanow i robali)
Okazuje sie ze problem z pojeciem jakosci pracy i produktu pojawia sie w kazdym biznesie. Niestety, nie wszyscy mysla o tym ze cos nowo zbudowanego, przerobionego, "naprawionego" trzeba najpierw przetestowac zanim sie to przekaze klientowi. A przeciez to takie proste!! Test! Wsiadasz do fury i jedziesz.. raz szybciej, raz wolniej. Zakrecasz, wyjezdzasz na prosta i w gaz... itp. Sama zabawa i do tego nie wymaga az tyle czasu!
Doswiadczeni mechanicy czasami podobni sa do programistow pracujacych metoda "Kopiego-Pejsta". Kopiuja robote ktora pamietaja ze kiedys tam juz robili. A skoro tak zrobili i dzialalo to mysla ze jak zrobia to jeszcze raz tak samo to wszystko bedzie dobrze. Odpalaja aplikacje... chodzi. Yes! Niestety, po tygodniu, gdy kolega wciska przycisk w dolnym rogu aplikacji system pada, EXCEPTION! Chlopaki, testujcie!!
Zaraz wiaze fure do poprawki, juz sie ciesze na dzwiek kredy w garazu.. auuuc.
Dwa tygodnie temu oddalem nasza Mazde do przegladu po 90K. Drogo bo drogo ale autko sobie na to zasluzylo. Nie sprawialo nawet najmniejszych problemow od momentu zakupu (choc to juz 8latek). Trzeba bylo zmienic pasek rozrzadu, wymienic olej i pare filtrow. Teoretycznie prosta sprawa dla kodos kto robi to na codzien, nie?
Co otrzymalem z powrotem?... piszczacego szrota! Autko chodzilo niby normalnie.. przez chwile... a potem zaczelo piszczec i swiszczec, jakby ktos paznokciami po czarnej tablicy szorowal.
Na szczescie mieszkam w niemczech i obowiazuje tu gwarancja na takie rzeczy, nikt nie proboje wciskac kitow itp. A co by bylo jakbym mieszkal w Polsce? (hmm.. pewnie ten post bylby na temat trojanow i robali)
Okazuje sie ze problem z pojeciem jakosci pracy i produktu pojawia sie w kazdym biznesie. Niestety, nie wszyscy mysla o tym ze cos nowo zbudowanego, przerobionego, "naprawionego" trzeba najpierw przetestowac zanim sie to przekaze klientowi. A przeciez to takie proste!! Test! Wsiadasz do fury i jedziesz.. raz szybciej, raz wolniej. Zakrecasz, wyjezdzasz na prosta i w gaz... itp. Sama zabawa i do tego nie wymaga az tyle czasu!
Doswiadczeni mechanicy czasami podobni sa do programistow pracujacych metoda "Kopiego-Pejsta". Kopiuja robote ktora pamietaja ze kiedys tam juz robili. A skoro tak zrobili i dzialalo to mysla ze jak zrobia to jeszcze raz tak samo to wszystko bedzie dobrze. Odpalaja aplikacje... chodzi. Yes! Niestety, po tygodniu, gdy kolega wciska przycisk w dolnym rogu aplikacji system pada, EXCEPTION! Chlopaki, testujcie!!
Zaraz wiaze fure do poprawki, juz sie ciesze na dzwiek kredy w garazu.. auuuc.
Thursday, February 5, 2009
Darmowe żarcie
Przegladajac niemieckie oferty pracy natknalem sie ostatnio na cos takiego (to tylko urywek tej oferty):
Oferta ta, mimo ze ledwie przedstawia informacje na temat tego, czego tak na prawde pracodawca potrzebuje, wymaga i generalnie soba reprezentuje przyciagnela moja uwage. Byla to podswiadoma reakcja na ktorej sie zlapalem i postanowilem ja przeanalizowac. Oferta mierna wiec co to bylo do cholery? Dlaczego mysle, ze to moze byc dobra propozycja? Dlaczego, mimo ze nie mialem nic wspolnego z PHP od czasow uczelnianych, wciaz jest kuszaca? ... hmmm... no tak.. "Bio food"!
Nie zaregowalem tak z powodu tego ze bylem glodny albo ze mi "Bio" zarcia na codzien brakuje. Ten pracodawca pokazal mi po prostu ze swoj projekt a takze swoich pracownikow bierze na powaznie a nawet dodatkowo traktuje ich wyjatkowo (bo Bio zarcie nie jest przeciez dla mas :-)).
Wedlug Maslowa (see Model Abrahama Maslowa) zaspokajanie podstawowych potrzeb prowadzi do tego ze koncentrujemy sie na celach "wyzszych". Uczucie glodu, pragnienia itp. moze nas developerow lekko wytracic z kursu. Co by bylo gdyby np. w trakcie pracy nad jakims zajebiscie skomplikowanym algorytmem, miejsce mysli z rozwiazaniem zajela mysl o tym ze "za godzinke bedziesz w domu i zjesz w koncu ten obiad, batona czy cokolwiek zapychajacego".
Oczywiscie jest jeszcze druga strona medalu. A co jezeli pracodawcy chodzi o to zeby jego pracownicy wyprowali z siebie flaki i czesto zostawali po pracy zeby zdazyc z projektem na czas? To tez moze byc powodem "podrzucania" pozywienia do biora, nie? Hmm? Moze... ale wydaje mi sie ze wtedy nie byloby to bio zarcie... a poza tym, takie numery szybko koncza sie wypowiedzeniem.
Podsomowujac: Wydaje mi sie ze kazdy pracodawca liczy na to ze jego "podopieczni" beda dawac z siebie wiele. Idea umilenia pracy developerom np. Bio bananem czy Bio cola jest moim zdaniem bardzo dobra i na pewno wplywa pozytywnie na wydajnosc jak i motywacje pracownikow. Oby tak dalej!
Chcialem jeszcze dodac ze:
a) darmowa, super bajerancka kawa to podstawa! Nie musze tu chyba pisac dlaczego. Szkoda ze sa jeszcze pracodawcy ktorzy tego nie rozumieja (np. moj)
b) open space (Open-plan offices) - sami przeczytajcie
Senior Software Engineer (m/w)
Unser Kunde bietet Dir folgendes an:
- Flexible Arbeitszeiten
- Eigenes Budget für Bürobedarf und Fortbildung
- Garantierte Weiterbildung und keine leeren Versprechen
- Gratis Biofood und Getränke
- Unterstützung bei Wohnortswechsel
- Koordinierte Arbeitsabläufe und klare Trennung der Zuständigkeitsbereiche
Du bist fit in folgenden Bereichen:
- Erfahrung mit der Planung und Entwicklung einer Internet Plattform
- Erfahrung in objektorientierter Programmierung mit PHP5, MySQL
- Design und Implementierung eines neuen Datenbankschemas in MySQL
- Fundierte Kenntnisse mit Unit Testing in xUnit
Unser Kunde bietet Dir folgendes an:
- Flexible Arbeitszeiten
- Eigenes Budget für Bürobedarf und Fortbildung
- Garantierte Weiterbildung und keine leeren Versprechen
- Gratis Biofood und Getränke
- Unterstützung bei Wohnortswechsel
- Koordinierte Arbeitsabläufe und klare Trennung der Zuständigkeitsbereiche
Du bist fit in folgenden Bereichen:
- Erfahrung mit der Planung und Entwicklung einer Internet Plattform
- Erfahrung in objektorientierter Programmierung mit PHP5, MySQL
- Design und Implementierung eines neuen Datenbankschemas in MySQL
- Fundierte Kenntnisse mit Unit Testing in xUnit
Oferta ta, mimo ze ledwie przedstawia informacje na temat tego, czego tak na prawde pracodawca potrzebuje, wymaga i generalnie soba reprezentuje przyciagnela moja uwage. Byla to podswiadoma reakcja na ktorej sie zlapalem i postanowilem ja przeanalizowac. Oferta mierna wiec co to bylo do cholery? Dlaczego mysle, ze to moze byc dobra propozycja? Dlaczego, mimo ze nie mialem nic wspolnego z PHP od czasow uczelnianych, wciaz jest kuszaca? ... hmmm... no tak.. "Bio food"!
Nie zaregowalem tak z powodu tego ze bylem glodny albo ze mi "Bio" zarcia na codzien brakuje. Ten pracodawca pokazal mi po prostu ze swoj projekt a takze swoich pracownikow bierze na powaznie a nawet dodatkowo traktuje ich wyjatkowo (bo Bio zarcie nie jest przeciez dla mas :-)).
Wedlug Maslowa (see Model Abrahama Maslowa) zaspokajanie podstawowych potrzeb prowadzi do tego ze koncentrujemy sie na celach "wyzszych". Uczucie glodu, pragnienia itp. moze nas developerow lekko wytracic z kursu. Co by bylo gdyby np. w trakcie pracy nad jakims zajebiscie skomplikowanym algorytmem, miejsce mysli z rozwiazaniem zajela mysl o tym ze "za godzinke bedziesz w domu i zjesz w koncu ten obiad, batona czy cokolwiek zapychajacego".
Oczywiscie jest jeszcze druga strona medalu. A co jezeli pracodawcy chodzi o to zeby jego pracownicy wyprowali z siebie flaki i czesto zostawali po pracy zeby zdazyc z projektem na czas? To tez moze byc powodem "podrzucania" pozywienia do biora, nie? Hmm? Moze... ale wydaje mi sie ze wtedy nie byloby to bio zarcie... a poza tym, takie numery szybko koncza sie wypowiedzeniem.
Podsomowujac: Wydaje mi sie ze kazdy pracodawca liczy na to ze jego "podopieczni" beda dawac z siebie wiele. Idea umilenia pracy developerom np. Bio bananem czy Bio cola jest moim zdaniem bardzo dobra i na pewno wplywa pozytywnie na wydajnosc jak i motywacje pracownikow. Oby tak dalej!
Chcialem jeszcze dodac ze:
a) darmowa, super bajerancka kawa to podstawa! Nie musze tu chyba pisac dlaczego. Szkoda ze sa jeszcze pracodawcy ktorzy tego nie rozumieja (np. moj)
b) open space (Open-plan offices) - sami przeczytajcie
Wednesday, January 14, 2009
Polimorfizm vs. Polimorfizm (a.k.a. Strategy pattern)
Z cyklu "Bad practices"
Dzis zaskoczyl mnie nasz architekt ale niestety niezbyt pozytywnie. Jako ze facet ma jakies doswiadczenia zyciowe, wydawaloby sie ze sporo juz kodu w swoim zywocie widzial, a moze nawet napisal, nalezal mu sie do tej pory szacunek. Niestety, jak to juz w zyciu jest na szacunek ciezko jest zapracowac, za to stracic go mozna w jednej chwili... co tez kolega Berndt uczynil :-)
Grzebiac w kodzie naszego "wspanialego" systemu znalazlem gdzies taka metode:
prawda ze podejrzanie wyglada? hehe..
Przejrzalem historie zmian i okazalo sie ze metoda getSomething byla kiedys abstrakcyjna a klasa w ktorej obecnie sie znajduje byla kiedys interfejsem.
Jednym slowem niezle sie w systemie pozmienialo przez ostatnich pare lat. Najgorsze jednak bylo to ze ten bzdurny kawalek kodu przeszedl przez code review. Zadalem wiec architektowi pytanie. WHY???
Odpowiedz byla mniej wiecej taka:
Architekt: "Ahh!.. no bo to jest przeciez Strategy Pattern i tak juz musi zostac. Patrz, to sa np. klasy ktore dziedzicza od tej... bo w tej klasie ta metoda nie ma sensu wiec defaultowo zwraca to co przyjela."
Ja: "Ale.. ale... dlaczego ta klasa nie jest juz abstrakcyjna.. A po jakiego wala jest tam ten 'throws Exception'? Czy ktos kontroluje to co sie z kodem dzieje czy nie?"
Architekt: "Niech tak zostanie. Tak sie robi."
To ma byc Polimorfizm? No niby tak sie wlasnie ta cala konstrukcja zachowuje. Nie! Jak dla mnie to chuj nie polimorfizm! Liczy sie jeszce jakosc! - pomyslalem po czym polozylem glowe na klawiaturze, zamkalem oczy myslac o kawalku z "Code Complete" Steve'a McConnell'a o tym jak to zona gotowala kotleta wedle przepisu tesciowej. Nikt nie zastanowil sie nad tym dlaczgo w przepisie stalo "Posolic, popieprzyc i obciac dwa konce steku" (czyli standartowe "Bo tak sie robi"). Okazalo sie ze matka tesciowej lekko przycinala stek bo jej patelnia byla za mala :-) Tak wiec wydaje mi sie ze czasem wypada podrazyc temat troche glebiej by odkryc niepotrzebne bzdury, pozadnie przebudowac subsystem i ulatwic ludziom prace.
Shit, z takim architektem daleko nie zajdziemy.
Dzis zaskoczyl mnie nasz architekt ale niestety niezbyt pozytywnie. Jako ze facet ma jakies doswiadczenia zyciowe, wydawaloby sie ze sporo juz kodu w swoim zywocie widzial, a moze nawet napisal, nalezal mu sie do tej pory szacunek. Niestety, jak to juz w zyciu jest na szacunek ciezko jest zapracowac, za to stracic go mozna w jednej chwili... co tez kolega Berndt uczynil :-)
Grzebiac w kodzie naszego "wspanialego" systemu znalazlem gdzies taka metode:
|
prawda ze podejrzanie wyglada? hehe..
Przejrzalem historie zmian i okazalo sie ze metoda getSomething byla kiedys abstrakcyjna a klasa w ktorej obecnie sie znajduje byla kiedys interfejsem.
Jednym slowem niezle sie w systemie pozmienialo przez ostatnich pare lat. Najgorsze jednak bylo to ze ten bzdurny kawalek kodu przeszedl przez code review. Zadalem wiec architektowi pytanie. WHY???
Odpowiedz byla mniej wiecej taka:
Architekt: "Ahh!.. no bo to jest przeciez Strategy Pattern i tak juz musi zostac. Patrz, to sa np. klasy ktore dziedzicza od tej... bo w tej klasie ta metoda nie ma sensu wiec defaultowo zwraca to co przyjela."
Ja: "Ale.. ale... dlaczego ta klasa nie jest juz abstrakcyjna.. A po jakiego wala jest tam ten 'throws Exception'? Czy ktos kontroluje to co sie z kodem dzieje czy nie?"
Architekt: "Niech tak zostanie. Tak sie robi."
To ma byc Polimorfizm? No niby tak sie wlasnie ta cala konstrukcja zachowuje. Nie! Jak dla mnie to chuj nie polimorfizm! Liczy sie jeszce jakosc! - pomyslalem po czym polozylem glowe na klawiaturze, zamkalem oczy myslac o kawalku z "Code Complete" Steve'a McConnell'a o tym jak to zona gotowala kotleta wedle przepisu tesciowej. Nikt nie zastanowil sie nad tym dlaczgo w przepisie stalo "Posolic, popieprzyc i obciac dwa konce steku" (czyli standartowe "Bo tak sie robi"). Okazalo sie ze matka tesciowej lekko przycinala stek bo jej patelnia byla za mala :-) Tak wiec wydaje mi sie ze czasem wypada podrazyc temat troche glebiej by odkryc niepotrzebne bzdury, pozadnie przebudowac subsystem i ulatwic ludziom prace.
Shit, z takim architektem daleko nie zajdziemy.
Subscribe to:
Posts (Atom)