[Jacek Śliwerski]
(rzyjontko)Autor
Chłopak z Bałut (Dołów), po uniwerku i stypendium. Wiecznie zestresowane, przemądrzałe bezguście. Więcej na stronie domowej.
Asus Eee c.d.
Kilka ciekawych pytań pojawiło się w komentarzach do mojej mojej recenzji Asusa Eee. A ponieważ przypomniało mi się jeszcze kilka kwestii, postanowiłem napisać ciąg dalszy recenzji.
Wykonanie
Obudowa laptopa wykonana jest z solidnego plastiku - nie jestem specjalistą, ale wydaje mi się dosyć solidna, a przynajmniej nie mniej wytrzymała od standardowego materiału, z którego wykonuje się laptopy. Z całą pewnością nie została wykonana w fabryce zabawek. Matryca jest... normalna: daje ładny obraz w rozdzielczości 1024x600, chociaż (w przeciwności do niektórych laptopów) nie wygląda jakby była ze szkła.
Z innych ciekawostek: podwójne zapięcie baterii (jeden zaczep odsuwa się na sprężynie, drugi ma dwie pozycje) uniemożliwia jej przypadkowe wysunięcie, a jednocześnie wyjęcie jej nie wymaga gimnastyki - bardzo sprytny pomysł.
Bateria
A skoro jesteśmy już przy baterii - wytrzymuje ona około 2 - 3 godziny pracy. W instrukcji doradzają ograniczenie jasności ekranu oraz wyłączenie WiFi, ale przecież nie po to kupiłem tego laptopa, żeby nie korzystać z sieci.
W pasku zadań cały czas wyświetlona jest ikonka ze stanem baterii. Niestety, raportuje ona stan z dokładnością do 10% (w tooltipie), a sama ikonka ma tylko 4 kreski. Jak tylko ilość energii spadnie do 40% wyświetla się tylko jedna z nich. Ponadto laptop nie pozwala na całkowite rozładowanie baterii - na trzy minuty przed końcem wyświetlane jest ostrzeżenie z prośbą o zapisanie swojej pracy, a po upływie tego czasu system się zamyka i wyłącza komputer.
Touchpad
Zapomniałem napisać o touchpadzie. Nie mierzyłem go linijką, ale jest on chyba standardowego rozmiaru, a przynajmniej ja nie odczułem, żeby był mniejszy od innych, z których korzystałem. Przewijanie zostało bardzo sprytnie rozwiązane - zamiast przesuwać palec wzdłuż brzegu (jak to się robi w innych laptopach), przesuwa się po prostu dwa palce. Urządzenie to obsługuje również gesty służące do powiększania i pomniejszania:

Próbowałem z tego skorzystać, ale gest ten działa chyba tylko w 3 aplikacjach i (przynajmniej w Photo Managerze, w którym go wypróbowywałem) wydaje się trudny do wykonania i bezużyteczny.
01 sierpnia 2008, 21:41:37 2 komentarze
Asus Eee
Kupiłem sobie Asusa Eee 900 z dwudziestogigowym dyskiem SSD i postanowiłem podzielić się moimi spostrzeżeniami na jego temat.
Z zewnątrz
Moje pierwsze spostrzeżenie dotyczące Eee, gdy oglądałem tylko egzemplarz koleżanki z pracy, było takie, że ten laptop nie ma zaczepów. W pierwszej chwili wydawało mi się to dziwne, ale po pewnym czasie używania zaczepy w innych laptopach zaczęły mnie drażnić. Eee stawia lekki opór przy otwieraniu, a potem idzie już całkiem lekko - bardzo to sprytne.
Ze względu na mały rozmiar, klawiatura jest odrobinę mniejsza od zwykłej. Da się na niej pisać bezwzrokowo, ale wymaga to przyzwyczajenia. I utrudnia to potem przestawienie się na klawiaturę o pełnych rozmiarach. Dlatego ja korzystam z mojej klawiatury bezprzewodowej, której odbiornik podłącza się przez USB.
Wyposażenie
Już w pierwszych dniach po otrzymaniu laptopa miałem okazję wykorzystać prawie komplet jego wyposażenia: już na samym początku przeprowadziliśmy rozmowę wideo przez zainstalowanego na nim skajpa. Jedyne, co trzeba było zrobić, to wybrać jedną z dostępnych sieci bezprzewodowych oraz wprowadzić login i hasło w skajpie. Obraz z kamerki jest takiej jakości:

Nie miałem też żadnych problemów ze zgraniem zdjęć z aparatu. Wsunąłem kartę SD do czytnika, po czym wyświetliło mi się takie okienko:
Oprogramowanie
Sama karta podmontowywana jest jako D:, co chyba jest ukłonem w kierunku osób przyzwyczajonych do Windowsów.

Skopiowanie zdjęć na laptopa z Windowsami okazało się równie trywialne - wystarczyło udostępnić katalog ze zdjęciami przechodząc na zakładkę "Windows Sharing" jego właściwości:

W Eee praktycznie wszystko działa "od ręki". Dotyczy to nie tylko sterowników wszystkich urządzeń, ale również oprogramowania zainstalowanego domyślnie. Oprócz skajpa, Firefoksa, Thunderbirda, OpenOffice'a i Acrobat Reader'a zainstalowany jest również SMPlayer, Amarok, Pidgin, parę gier i innych drobnych aplikacji (np. Midnight Commander). Na dodatek Firefox zainstalowany jest z pokaźną listą pluginów:
- Flash
- DivX
- QuickTime
- Real Player 9
- Windows Media Player
- mplayerplug-in
- Adobe Reader
- Java 1.5
Braki
Pierwszym odczuwalnym brakiem był brak polskiego układu klawiatury, ale wystarczyło 5 minut i google, żeby się przekonać, że wystarczy prosta edycja /etc/X11/xorg.conf.
W następnej kolejności postanowiłem zainstalować Firefoksa 3. Zadanie to było odrobinę trudniejsze, ale opłaciło się - Firefox 3 jest wprost stworzony dla tego laptopa: pełne powiększanie stron bardzo ułatwia czytanie stron, a inteligentny pasek adresu pozwala pozbyć się toolbara z zakładkami. Trzeba tylko pamiętać o wyłączeniu automatycznej aktualizacji, bo nie działa ona w pakiecie ze strony 3eportal.com.
Poza tym brakuje mi narzędzia do automatycznej aktualizacji systemu a'la Ubuntu, a Photo Managerowi przydałaby się możliwość prostej edycji zdjęć (skalowanie, przycinanie, itp.).
Cena/Wydajność
Prędkość działania była bezpośrednim powodem, dla którego zdecydowałem się na zakup. System uruchamia się w piętnaście sekund (sic!), zamyka równie szybko. Na Celeronie 900 MHz i 1 GB RAM pracuje mi się zupełnie tak samo, jak na komputerze stacjonarnym. Z tą tylko różnicą, że mój komputer stacjonarny kosztował znacznie więcej niż 1200zł.
Na koniec
Gratulacje dla wszystkich, którzy pracowali przy dystrybucji Xandrosa zainstalowanej na Eee. Widać bardzo dużą dbałość o szczegóły - z tak przygotowanego systemu korzysta się z przyjemnością. I choć rozważałem instalację Ubuntu (screenshoty Netbook Remix wyglądają bardzo zachęcająco), to postanowiłem poczekać aż instalator nie będzie wymagał przesuwania okien, a system będzie działał równie szybko.
31 lipca 2008, 22:44:07 12 komentarzy
A mogłem zostać terrorystą
"Zachód", Czepianie, Niepoważne
Okęcie
Przed wylotem do USA Karolina bardzo dokładnie sprawdziła, co można, a czego nie można wziąć ze sobą na pokład samolotu. Jej podstawowym zmartwieniem był zakaz wnoszenia płynów o objętości ponad 100ml. Znalazła jednak gdzieś przezroczystą kosmetyczkę (wszystkie płyny muszą się znajdować w jednej, wielokrotnie zamykanej przeźroczystej torebce plastikowej o pojemności do 1 litra
) i poprzelewała potrzebne jej kosmetyki do mniejszych buteleczek. Ja natomiast spakowałem mój scyzoryk (z którym nigdy się nie rozstaję) do walizki.
Na kontroli bezpieczeństwa musieliśmy pozbyć się pierwszego przedmiotu - budyniu, który zabraliśmy z (wyłączonej na czas naszej nieobecności) lodówki. Okazało się bowiem, że budyń jest traktowany jako płyn, a jego objętość przekraczała 100ml... najwyraźniej ze 150 ml budyniu też można zrobić bombę.
JFK
Przed powrotem do Polski zapomniałem spakować mój scyzoryk do walizki i miałem go (jak zwykle) w kieszeni spodni. Zorientowałem się dopiero po nadaniu walizki, gdy staliśmy już w kolejce do kontroli bezpieczeństwa. Żal mi go było niezmiernie, bo był jedyną moją pamiątką z wizyty w Szwajcarii.

Ale już wcześniej czytałem o tym, że zasady (zaklinane często formułką "It's the law") mogą być nieubłagane.
Pozostało mi więc tylko jedno rozwiązanie - zgrywać głupa. Wziąłem pudełko i włożyłem do niego wszystkie przedmioty, które miałem w kieszeni: klucze, portfel i scyzoryk... a po przejściu przez wykrywacz metalu odebrałem swój scyzoryk i schowałem z powrotem do kieszeni.
Morał: budyń stanowi znacznie większe zagrożenie niż nóż z dwoma ostrzami.
27 lipca 2008, 18:21:12 5 komentarzy
Atak gołębi
Od jakiegoś czasu prowadzimy wojnę z gołębiami. Przed naszą przeprowadzką balkon został oczyszczony z pięcioletniej warstwy ich odchodów, ale już po kilku miesiącach gołębie zaczęły wracać na "swój" teren. Na początku próbowaliśmy je ignorować i odganialiśmy od czasu do czasu. Niestety, gołębie postanowiły na dobre przejąć nasz balkon i chyba nawet wykurzyć nas z mieszkania. Codziennie rano, między piątą a szóstą rano, raczyły nas swoimi odgłosami, nie dając spać.
Naszym pierwszym kontratakiem było wystawienie kruka:

Niestety, nasz fortel szybko stracił na sile rażenia, w związku z czym dodaliśmy mu żółty wiatraczek. Ale i wiatraczek nie pomógł. Gołębie wciąż wracały.
Wreszcie pod koniec zeszłego tygodnia postanowiłem rozwiesić siatkę tak, aby zasłaniała cały balkon. Niestety, i to okazało się za mało, bo gołębie znalazły lukę przy ścianie. Zastawiłem ją deską - to ją przewróciły. Więc podparłem deskę drugą:
Dziś z rana gołębie przypuściły kolejny szturm. O 6:45 rano dwa gołębie, rzutem na siatkę, wdarły się na nasz balkon i zaintonowały pieśń bitewną. Nie mogliśmy im tego przepuścić. Po dwóch godzinach ciężkiej walki udało nam się odbić balkon i rozpoczęliśmy umacnianie naszych pozycji.
Niestety... nie pomogło. Idąc z przystanku tramwajowego do domu, zauważyłem wroga po naszej stronie szańców. Zakradłem się do domu, powolutku uchyliłem drzwi (wychodząc z domu zostawiłem uchylone okna i drzwi balkonowe), po czym wdarłem się do mieszkania. Na szczęście, było czyste. Skoczyłem do okna, żeby ocenić straty - trzech wrogów patrolowało teren. Poczekałem na posiłki (Karolina wyszła dzisiaj trochę później z pracy), po czym przystąpiliśmy do kontrataku. W pierwszej kolejności musieliśmy zniszczyć część umocnień, aby przy pomocy naszej jedynej broni

zmusić agresora do wycofania się przez tak przygotowany wyłom.
Po odzyskaniu naszych pozycji zabraliśmy się do dalszego okopywania. W tej chwili wygląda to tak:
Trzymajcie za nas kciuki, bo wróg z całą pewnością nadciągnie jutro ponownie. Oby nasze wysiłki nie poszły na marne i oby nasze obwarowania dały odpór nalotom wroga. W każdym razie, nie zamierzamy pertraktować - żaden rozejm nie wchodzi w grę.
30 czerwca 2008, 21:22:08 5 komentarzy
Skąd Włodzimierz Zientarski bierze informacje o sobie?
Oczywiście z Wikipedii. Pan Zientarski skopiował artykuł na swój temat do tekstu zatytułowanego "O mnie". Widziałem już wiele różnych zastosowań elektronicznej encyklopedii, ale żeby tak bezrefleksyjnie przeklejać tekst o sobie do własnego bloga? I to bez podania źródła?
26 lutego 2008, 21:32:11 8 komentarzy
Jak im nie wstyd?
Firma Lionbridge poszukuje pracowników posiadających umiejętność zrozumienia istniejących, dużych baz kodów
. Nie byłoby w tym zapewne nic dziwnego, gdyby nie fakt, że firma Lionbridge świadczy usługi w dziedzinach: lokalizacji oprogramowania, (...) specjalistycznych tłumaczeń
. Ogłoszenie to tak mnie zafascynowało, że postanowiłem zrobić zrzut ekranu, żeby inni też mogli się pośmiać.
Jest chyba oczywistą oczywistością, że tekst ten został przetłumaczony z języka angielskiego, a niefortunnie przełożony fragment dotyczył rozumienia existing code base. Tak się akurat składa, że moja dziewczyna pracowała dla kilku biur tłumaczeń, więc wiem co poczęłaby z tym fragmentem (gdyby akurat mnie nie było w pobliżu). Z całą pewnością wpisałaby frazę code base w Google. No to zobaczmy...
Nawet nie trzeba w nic więcej klikać. Już na pierwszej stronie wyświetlona jest definicja, mówiąca mniej więcej tyle, że code base to po prostu kod źródłowy aplikacji, a nie żadna baza kodów
.
Jakie świadectwo wystawił sobie światowy lider w dziedzinie usług globalizacyjnych
?
14 grudnia 2007, 12:06:08 12 komentarzy
Kup pan misia!
Wiedzona szczytnym celem akcji oraz przyciągnięta niebanalnym designem Barbary Bukowskiej, moja dziewczyna postanowiła nabyć (drogą kupna) misia z reklamowanej w TVN strony kupmisia.allegro.pl.
Pierwsza niespodzianka: strona ładuje się koszmarnie długo. Procenty rosły tak powoli, że postanowiliśmy zająć się w międzyczasie czymś innym. A kiedy wróciliśmy, oczom naszym ukazała się strona, na której... nic nie ma. Jest jakiś flash, ale klikanie w misie niczego nie zmienia. Trudno. Klikamy więc w "Kup misia na Allegro"... i pojawia się znany chyba wszystkim żółty pasek z napisem "Program Firefox nie pozwolił tej witrynie na otwieranie wyskakujących okienek". To gdzie ja jestem? Na stronie charytatywnej, czy płatnym porno? Wybaczyliśmy. Zezwoliliśmy na otworzenie wyskakującego okienka i oczom naszym ukazał się komunikat:
Chcieliśmy dobrze, a wyszło jak zwykle... chciałoby się powiedzieć.
02 grudnia 2007, 22:28:28 11 komentarzy
Lenistwo redaktorów TVN24
Czy UE może ukazywać Polskę? Tak wydaje się twierdzić serwis internetowy TVN24, cytując(?) słowa posła Religi:
Błędy ortograficzne i literówki pojawiają się w portalach dosyć często (głównie za sprawą niskiej jakości depeszy PAP), ale ta ilustruje ciekawą kwestię: nadmiernego zaufania do oprogramowania. Odnoszę wrażenie, że redaktor przygotowujący ten tekst wyszedł z założenia, że jeśli spell-checker nie znalazł w nagłówku błędu, to jest on poprawny. Lenistwo jest tym bardziej oczywiste, że pierwsze zdanie wiadomości brzmi (zrzut ekranu):
Odłożenie wejścia w życie ustawy ograniczającej czas pracy lekarzy naraża Polskę na kary ze strony Unii Europejskiej...
Od pracowników stacji, która de facto pełni rolę mediów publicznych, można chyba oczekiwać trochę więcej.
30 listopada 2007, 11:48:52 3 komentarze
Dojč Kafa - innowacja w piciu kawy
To już ostatni bałkański wpis... Taką mam przynajmniej nadzieję. Postanowiłem przybliżyć Wam jeszcze jedną ciekawostkę dotyczącą południowych Słowian... Otóż, wynaleźli oni innowacyjny1 sposób dostarczania kofeiny do organizmu - popijają kawę wodą. W kawiarniach kelner podaje do kawy szklankę wody i nie należy się temu dziwić - woda jest za darmo, bo pochodzi z kranu. Na dowód - rachunek:

Ciekawe jest też, że chociaż Niemcy po chorwacku to Njemačka, na rachunku występuje pozycja Dojč Kafa... Nie potrafił nam tego wyjaśnić nawet nasz przewodnik po Czarnogórze.
1 - Nie znoszę tego słowa. Ale pomyślałem sobie, że jeśli będziemy wszyscy dostatecznie często go używać (szczególnie w odniesieniu do spraw codziennych), to w końcu znudzi się ono nam wszystkim tak bardzo, że nie będę go musiał codziennie słuchać.
01 lipca 2007, 18:04:23 10 komentarzy
Niemcy wprowadzają drugi filar
W Niemczech do dziś funkcjonuje system emerytalny, który kilka lat temu został w Polsce zastąpiony rozwiązaniem trójfilarowym. Działa to w dużym skrócie w ten sposób, że składki emerytalne odciągane z mojej pensji są na bieżąco wypłacane aktualnym emerytom. Otrzymałem nawet ulotkę zachwalającą tę metodę ubezpieczenia jako niezależną od stanu gospodarki (o starzeniu się społeczeństwa nawet się w niej nie zająknęli). I o ile w 1957 roku całkiem rześko to działało, bo na jednego emeryta przypadało ośmiu płacących składki, tak teraz na dwóch emerytów przypada trzech pracujących i system przestaje wyrabiać.
Niemcy wpadli więc na genialny pomysł: skorzystać z rozwiązań stosowanych już w krajach ościennych - Polsce i Szwajcarii - i wprowadzić drugi filar ubezpieczenia emerytalnego. Jak pomyśleli, tak zrobili. Postanowili jednak być przy tym mądrzejsi od sąsiadów i, zabijcie mnie, ale ja po prostu nie rozróżniam tutejszego drugiego i trzeciego filara. Obydwa są dobrowolne i nie są częścią płaconego przeze mnie już teraz ubezpieczenia emerytalnego (ponad 21%; dla porównania, w Polsce na pierwszy filar oddaje się 12,22%, a na drugi - 7,3%). Jedyną różnicą jest chyba zobowiązanie pracodawców do poinformowania pracowników o możliwości ubezpieczenia w drugim filarze.
W związku z tym, w zeszłym tygodniu odwiedził nas pan reprezentujący dużą firmę z Kanady. Poinformował nas, że istnieje coś takiego jak drugi filar, a jego firma chętnie wszystkich ubezpieczy. Posługiwał się przy tym retoryką rodem z podręcznika dla komiwojażera - "Kto z Państwa da mi jedno euro za dwa? Bo widzą Państwo, nasza oferta do tego się właśnie sprowadza (z dokładnością do inflacji, ale o tym nie chcą przecież Państwo słyszeć - przyp. autora)". Pewnie pomyślał, że skoro idzie do polskiej firmy, to będzie mówił do pracowników budowlanych. A tu się okazało, że ma mówić do ludzi wykształconych, którzy podejrzliwie podchodzą do "prezentów". Na domiar złego, zastał prawie samych Niemców, których trudno przekonać, że Allianz nie jest lepszym rozwiązaniem od nikomu nieznanej kanadyjskiej spółki. W tej sytuacji niezbyt dobrym posunięciem było pochwalenie się, że firma ta unika niemieckich podatków dzięki prowadzeniu swojej działalności z Irlandii.
18 czerwca 2007, 22:26:54 7 komentarzy
"Z pamiętnika podróżnika"
Ostatnie dwa tygodnie spędziliśmy na Bałkanach. Pierwszy raz w życiu byłem na wyjeździe organizowanym przez biuro podróży - była to wycieczka Z Pamiętnika Podróżnika, w ramach której zwiedzaliśmy Bośnię i Hercegowinę, Chorwację, Czarnogórę i Słowenię. Generalnie, jestem zadowolony i pewnie jeszcze znajdę czas na opisanie tego, co mi się podobało - może wrzucimy kiedyś też zdjęcia. Natomiast w ramach czepiania się opiszę wszystko to, z czego nie byłem zadowolony:
- Odjazd był zorganizowany koszmarnie. Autobus z logo Itaki stał na wskazanym peronie przez jakieś 20 minut, po czym odjechał pusty. Po kilkunastu kolejnych minutach przyjechał drugi, do którego wszyscy, naprędce, bez zbędnych pytań się załadowali. My - podążając za stadem baranów - zrobiliśmy to samo, po czym się okazało, że pani obok jedzie do Paryża. Pierwsze słowa wyjaśnienia usłyszeliśmy dopiero w Opolu, gdzie rozdysponowano nas do różnych autokarów. Przyznać jednak muszę, że powrót był zorganizowany wzorowo - busiki czekały już dobrą godzinę przed czasem, a pan kierowca zgodził się wysadzić nas na Partynicach, gdzie zaparkowany był nasz samochód (pozdrowienia dla p. Kasprzaka z Wyścigów).
- Im bogatszy był kraj, w którym spaliśmy, tym gorsze warunki zakwaterowania nam oferowano. I tak:
- W Sarajewie spaliśmy w pięciogwiazdkowym hotelu Radon Plaza, który wygląda mniej więcej tak:

W tym spodku na górze jedliśmy śniadanie. Oprócz nas zakwaterowane tam były również reprezentacje piłkarskie Bośni i Turcji. Z ciekawostek - mają tam takie windy, jak opisywał kiedyś Joel i jedna z pań podróżujących z nami złapała się na opisywany przez Joelausability bug
. - W bośniackim Neum spaliśmy w czterogwiazdkowym apart-hotelu Adria. Co prawda, w naszym pokoju było tylko jedno gniazdko elektryczne (albo ładowarka, albo Raid na komary), ciepła woda rano starczała tylko najwcześniej wstającym, a wielkość naszego pokoju (z oknem na schody) nie pozwalała na jednoczesne otworzenie dwóch walizek, ale całe wyposażenie hotelu było nowiuteńkie, a na przykład naszym sąsiadom trafił się elegancki apartament z widokiem na morze. Musimy również wspomnieć, że obsługa była nad wyraz miła.
- W Chorwacji noclegi mieliśmy zorganizowane w ośrodkach turystycznych z lat 70-80. Ośrodki w Korczuli, Sućuraju i Novim Vinodolskim od dawna nie były remontowane, ale ja widziałem tylko jednego karalucha - w Sućuraju, gdzie pchły pogryzły pana kierowcę. Poza tym było przynajmniej czysto, a na obsługę nie można było narzekać.
- W Słowenii sięgnęliśmy dna. Jeśli ktoś będzie się kiedyś wybierał na jakąkolwiek wycieczkę, która w programie ma zwiedzanie Jaskiń Szkocjańskich, to radzę się upewnić, że organizator nie oferuje noclegu w pobliskim Motelu Avtokamp w Kozinie. Pokoje były obrzydliwie brudne, wyposażenie zdewastowane, a obsługa niemiła i niekompetentna. Na szczęście w pobliżu była stacja benzynowa, na której z zaprzyjaźnionym małżeństwem zaopatrzyliśmy się w napoje ułatwiające przetrwanie tej nocy.
Panie, jaka opieka socjalna? To jest Bośnia
. - W Sarajewie spaliśmy w pięciogwiazdkowym hotelu Radon Plaza, który wygląda mniej więcej tak:
- W programie wycieczki mieliśmy również 2 dni przeznaczone na plażowanie i odpoczynek. Szczególne wrażenie zrobił na mnie dobór drugiego miejsca - zapyziała przystań promowa w Sućuraju. Choć przyznaję, że dzięki brakowi jakichkolwiek atrakcji turystyczno-wypoczynkowych, byliśmy tam jedynymi turystami.
13 czerwca 2007, 19:18:38 6 komentarzy
"Profesjonalne" tłumaczenie
Potrzebowałem dzisiaj otworzyć dokument w formacie ODF. Tak się składa, że w pracy mam legalnego Microsoft Office'a i jakoś nie miałem ochoty instalować drugiego pakietu biurowego tylko po to, aby otworzyć ten jeden dokument. W Wikipedii znalazłem listę programów obsługujących ODF, a wśród nich - Google Docs & Smth. Niewiele więc myśląc, zalogowałem się na moje konto i próbuję otworzyć dokument. Na stronie głównej nie widzę opcji otworzenia dokumentu z dysku, więc kombinuję, co tu zrobić. Tworzę nowy dokument, otwieram menu "plik", ale tam tylko zapisywanie i drukowanie. Otwieram listę dokumentów, ale tam też nie ma opcji otworzenia istniejącego. Szlag mnie w końcu trafił i wysłałem sobie dokument na mejla i otworzyłem go z załącznika...
Jakiś czas później przyszło mi do głowy, że może jeśli zmienię w ustawieniach język na angielski, to znajdę opcję otwierania istniejącego dokumentu. Wybieram język angielski, wciskam "Save" i przenosi mnie na stronę główną, a tam - wytłuszczony link Upload. Jak mogłem go pominąć? Wracam do ustawień, włączam z powrotem język polski i już wiem... ktoś przetłumaczył Upload jako Prześlij... Nawet w tej chwili, po dobrych kilku godzinach od zdarzenia, ciśnienie mi rośnie na myśl o człowieku, który to przetłumaczył.... oczywiście, szanuję go.
13 kwietnia 2007, 22:13:30 1 komentarz
Mozilla straszy mnie pozwem o złamanie praw autorskich
Gwoli ścisłości: zostało mi zasugerowane, że nie chciałbym, żeby Mozilla Foundation wytoczyła mi proces o złamanie praw autorskich. Oczywiście, nic mi nie grozi. Nawet przez chwilę nie przeszło mi przez myśl, że Mozilla Foundation mogłaby nie tylko chcieć wystąpić przeciwko mnie do sądu, ale chociażby zażądać usunięcia swoich danych. Ale sama problematyka wydaje mi się bardzo ciekawa ze znacznie szerszej perspektywy.
Najpierw kilka słów wprowadzenia, o co poszło. Prowadzę serwis open-tran.eu, przy pomocy którego można wyszukiwać tłumaczenia angielskich fraz na 87 języków obcych. I tak, na przykład, każdy, kto wejdzie na stronę http://csb.open-tran.eu/suggest/file already exists, overwrite? przekona się, w jaki sposób spytać po kaszubsku o wolę nadpisania pliku... tak mi się przynajmniej wydaje.
Baza danych zasilona jest tłumaczeniami trzech dużych projektów: GNOME'a, KDE i Mozilli. No i tu pojawia się problem. Pliki zawierające dane, które zaimportowałem do bazy serwującej tłumaczenia, są bowiem chronione przy pomocy odpowiednich licencji. Wyobraźmy więc sobie takie dwie sytuacje:
- Pan Kowalski korzysta z mojego serwisu do zlokalizowania swojej komercyjnej przeglądarki www na język polski. Załóżmy przy tym, że za każdym razem znajduje frazę z Mozilli i używa jej bez żadnej zmiany.
- Ten sam pan Kowalski uruchamia Firefoksa i za każdym razem, gdy szuka jakiegoś tekstu, wyszukuje odpowiednią opcję w programie i korzysta z tego tekstu do lokalizacji swojej przeglądarki.
Czy sprzedając swój program narusza warunki GPL? W pierwszym przypadku? A w drugim? Czy mój projekt łamałby GPL, gdyby jego źródła nie były dostępne na licencji zgodnej z GPL? Czy powinienem czuć się w obowiązku poinformować potencjalnych użytkowników, że wyświetlane wyniki są objęte odpowiednimi licencjami, zależnymi od projektu? No a przede wszystkim - czy warto jest sobie w ogóle zawracać głowę takimi kwestiami?
29 marca 2007, 21:47:28 5 komentarzy
Strach przed nieznanym
"Zachód", Czepianie, Narcyzm, Wynurzenia
Twórcy polskich (choć może powinienem po prostu napisać nieamerykańskich) serwisów internetowych odznaczają się dwoma cechami:
- Obawą przed konfrontacją.
Amerykanie dysponują dodatkowymi źródłami wiedzy i doświadczeniami, niedostępnymi dla pozostałych. Tworzą swoje oprogramowanie w kosmicznym tempie, bo korzystają ze znacznie lepszych narzędzi i zaawansowanych technologii, które do nas jeszcze nie dotarły. Poza tym ich metodyka pracy znacznie przewyższa nasze standardy. Za każdym razem, kiedy my skopiujemy wreszcie ich zdobycze, oni odskakują nam na kilka lat do przodu - po prostu nie ma na nich rady. Zamiast z nimi walczyć, lepiej bacznie się przyglądać temu, co robią... i, ewentualnie, kopiować ich pomysły, zanim sami zdążą zlokalizować swój produkt na potrzeby polskiego rynku. - Brakiem znajomości języków obcych.
Wielu ludzi uważa, że nasz kraj jest zacofany, niedojrzały, a na rynku brakuje odbiorców dysponujących odpowiednią siłą nabywczą. Internet jest medium, przy pomocy którego można w niedrogi sposób dotrzeć do odbiorców z całego świata. Tylko trzeba się z nimi jakoś porozumieć. Nie wierzę, że językiem angielskim biegle potrafi się posługiwać 72% polskich biznesmenów. Zamiast pytać, jak oceniają swoją znajomość angielskiego, należałoby raczej spytać, jak często rozmawiają po angielsku ze swoimi partnerami za granicą bez obecności tłumacza. Bierna znajomość języka angielskiego i zerowa znajomość kultury i obyczajów obcych krajów jest - i będzie - główną barierą docierania na inne rynki. Przytoczę tutaj anegdotkę o tym, jak to jeden z dyrektorów wpadł na genialny pomysł hasła reklamującego nasz produkt w Niemczech: "Sieg! Erfolg! Expansion!"
Polskich firm, które podbiły świat, jest co najmniej kilka. Istnieją już polskie firmy (np. Q-workshop), które globalny rynek podbiły poprzez Internet. Myślę, że przyszedł już czas na pierwszy polski serwis, który podbije cały świat (przynajmniej w obrębie własnej niszy) i wierzę, że niedługo to nastąpi. Kto wie, może to właśnie open-tran.eu nim będzie? Z całą pewnością nie będzie to serwis "społecznościowy", raczej konkretny produkt oferujący konkretną wartość dodaną.
Ja obcych się nie boję (a Niemców, Angoli i Amerykanów w szczególności). Kiedyś się chwaliłem, że zostałem zacytowany w publikacji Microsoft Research. Od tego czasu ilość cytowań zdążyła jeszcze wzrosnąć. A że byłem również wśród 91% autorów publikacji odrzuconych na ICSE 2006, porażek się nie boję.
To takie moje 3 grosze w dyskusji o innowacjach, pomysłach i realizacjach.
25 lutego 2007, 17:27:33 1 komentarz
Bayesian Filters
Związek frazeologiczny bayesian filter
pochodzi od nazwiska brytyjskiego matematyka Thomasa Bayesa. Jakkolwiek samo złożenie tych dwóch słów (wprowadzone przez Paula Grahama) jest semantycznym nadużyciem (oryginalny filtr poparty jest wątpliwym aparatem matematycznym, a jego modyfikacje nadal nie mają wiele wspólnego z twierdzeniem Bayesa), to przekręcanie go na filtr bayesiana
z całą pewnością nie jest poprawne.
03 lutego 2007, 20:21:01 1 komentarz
O tym jak nie poszedłem na interview
Wstęp
Z cyklu: o tym jak nie pracuję w... dziś będzie o firmie Siemens... to znaczy BenQ... to znaczy Rinf.
Telefon z pytaniem o to, czy jestem zainteresowany pracą w firmie Siemens. Umawiam się na rozmowę we wrocławskim biurze firmy... Rinf - widać duże firmy zlecają mniejszym firmom znalezienie pracowników (sobie pomyślałem). Pani pyta mnie o moją wiedzę, doświadczenie, ale tak naprawdę interesują ją nazwy języków programowania - wszak jej jedynym zadaniem jest wręczenie mi odpowiedniego testu...
Test
... dwóch testów, gwoli ścisłości. Pierwszy z Javy, drugi z C++. Zadania typu: przeanalizuj poniższy fragment kodu i odpowiedz na pytanie, co robi:
- Nie kompiluje się.
- Wykonanie kończy się nieobsłużonym wyjątkiem.
- Program wypisuje 10.
- Program wypisuje 11.
STL, wielokrotne dziedziczenie, template'y... no, jednym słowem nie podobał mi się ten test. Nie miałem prawa go dobrze napisać, więc napisałem go byle jak. Nie miało to zresztą dla mnie większego znaczenia, bo nie spieszyło mi się specjalnie ze znalezieniem pracy. Mimo to, jeszcze tego samego dnia (a może następnego) poinformowano mnie, że zostałem zakwalifikowany do następnego etapu rekrutacji, którym miało być...
Szkolenie
Dowiedziałem się, że szkolenie trwa dwa dni (sobota/niedziela), obejmuje wiedzę z zakresu autoprezentacji i języka angielskiego, i jest obowiązkowe. Udałem się zatem w sobotę na Klecinę i razem z grupą kilkunastu innych osób wziąłem udział w podnoszeniu swoich soft skills.
Zadaniem pana trenera było przekonanie nas, że wszyscy się świetnie nadajemy do pracy w firmie Siemens. Żeby dodać nam otuchy, pan trener dowodził nam, że mamy wyższe kwalifikacje (i znacznie bogatsze doświadczenie) od pani sprzątaczki, a dowolnego języka skryptowego możemy się nauczyć w czasie krótszym niż od momentu rozmowy kwalifikacyjnej do momentu rozpoczęcia pracy. Tyle optymizmu wlał w nasze serca, że aż ktoś się spytał o pensję, na jaką można liczyć na starcie.
Ale czy pensja jest naprawdę tak ważna? Najważniejsze, że będziemy pracować w znanej na całym świecie międzynarodowej korporacji zapewniającej bezpieczeństwo stałego zatrudnienia... czy jakoś tak.
Zasadniczo rzecz ujmując, to szkolenie przygotowywało nas do rozmowy kwalifikacyjnej, którą odbyć mieliśmy w firmie Siemens. Pracowalibyśmy dla firmy BenQ (a może BenQ-Siemens, tego nawet trener podówczas nie wiedział). Natomiast zatrudnieni bylibyśmy w firmie Rinf... przynajmniej na początku. Bo po roku (albo pół) firma Siemens (albo BenQ) przejęłaby nas do siebie. Wrócimy do tej konstrukcji po szkoleniu z języka angielskiego.
Angielski dla kandydata
Sala, w której siedzieliśmy od godziny 8 rano bez obiadu, została nieco przemeblowana. Gdy wróciliśmy, stały w niej tylko krzesła ustawione na planie okręgu. Zajęliśmy swoje miejsca, a prowadzący szkolenie Irlandczyk rozpoczął tworzenie nastroju grozy. Zamysł był taki, że jeśli będzie się zachowywał jak osoba niepoczytalna i nieobliczalna, będzie nagle podnosić, to znów ściszać ton głosu, to poczujemy się jak na rozmowie kwalifikacyjnej. Wyrywał nas więc jednego po drugim i każdy musiał się przedstawić i powiedzieć jakie studia skończył. Na koniec każdy musiał mieć idealnie opanowaną formułkę My name is... I have graduated from... I have studied...
. I po tym, jak dowiedziałem się, co studiowali moi współtowarzysze niedoli, stwierdziłem, że chyba nie mam ochoty pracować tam, gdzie oni... z całym szacunkiem dla wszystkich nauczycieli fizyki. Większość uczestników miała poważne problemy z przedstawieniem podstawowych faktów dotyczących swojej osoby. Ponieważ dalsze szczegóły bogatych karier moich współtowarzyszy niespecjalnie mnie interesowały, postanowiłem zrezygnować z drugiego dnia szkolenia, a tym samym z rozmowy kwalifikacyjnej z Hansem (czy innym Helmutem).
Epilog
O co w tym wszystkim chodziło? Firma Siemens dysponowała określonymi limitami rocznego zatrudnienia. Aby móc zatrudnić większą (niż dozwolona) liczbę osób, wynajmowała firmy zajmujące się body leasingiem (zwanym również human resources, ew. outsource'ingiem), które zatrudniały tych dodatkowych ludzi za niewielką prowizją. Ponieważ handlarzy jest wielu, każdy stara się złapać jak największą liczbę niewolników i wyposażyć ich w jak najlepszą broń, aby przeżyli jak najwięcej walk na igrzyskach. Hojnie obdarowując ludzi szkoleniami i kursami języka angielskiego oraz przygotowaniem pod kątem konkretnej rozmowy kwalifikacyjnej, firma Rinf zwiększała szanse swoich ludzi na zgodę Siemensa na zatrudnienie dla BenQ w firmie Rinf.
02 lutego 2007, 22:52:50 9 komentarzy
Jak hosting, to nie w Polsce
Ostatnio szukałem hostingu. Miałem jednak przy tym dosyć... nietypowe wymagania. Problem polega na tym, że czasami potrzebuję sobie uruchomić jakąś swoją usługę, która byłaby dostępna przez Internet z całego świata. Pogadałem ze znajomymi z pracy, którzy polecili mi wynająć sobie wirtualny serwer. Tak się akurat składa, że jeden z nich wynajmuje serwer dedykowany w strato.de i jest bardzo zadowolony. Zajrzałem na stronę i okazało się, że firma owa oferuje również serwery wirtualne za niewygórowaną (jak na mój gust) cenę.
Pomyślałem sobie jednak, że przecież taką samą usługę mogę sobie zamówić w Polsce. Wybrałem się na poszukiwania do googli. Hasło "serwery wirtualne" zwróciło całą listę firm zajmujących się hostingiem, ale żadna z nich nie oferuje pełnego dostępu do maszyny. Bo trzeba tu wiedzieć, że usługi hostingowe są różnej maści:
- Hosting stron www to oczywiście najpopularniejszy rodzaj usługi. Do naszego konta mamy zazwyczaj dostęp przez interfejs www, gdzie możemy sobie sprawdzić ilość wykorzystanego miejsca na dysku, transferu itp. Zazwyczaj otrzymuje się również dostęp do możliwości tworzenia subdomen, zakładania kont pocztowych, ftp itp... takich dostawców jest bez liku.
- Kolokacja serwera to jakby przeciwny biegun rynku. Kupujemy sobie serwer rackowy i wysyłamy do serwerowni. Usługodawca podłącza nasz serwer do UPSa, kabla sieciowego i tyle. Reszta, to nasza sprawa.
- Serwer dedykowany to coś pomiędzy. Od kolokacji różni się tym, że nie kupujemy serwera, tylko wynajmujemy go od usługodawcy. Poza tym serwer jest do naszej wyłącznej dyspozycji.
- Serwer wirtualny to taka tańsza wersja serwera dedykowanego. Na serwerze usługodawcy zainstalowanych jest kilka wirtualnych maszyn (np. za pomocą VMWare), a my uzyskujemy dostęp do jednej z nich.
Ponieważ serwer potrzebuję do własnej zabawy, a nie do prowadzenia poważnego biznesu, postanowiłem znaleźć taki właśnie wirtualny serwer, na którym zainstalowałbym sobie moją ulubioną dystrybucję Linuksa i uruchomił na niej wszystko to, co mi do zabawy potrzebne. I jeszcze tydzień temu byłem wprost przekonany, że w Polsce nikt nie oferuje usług tego typu. Ale łażąc w weekend po różnych stronach, trafiłem na firmę Warsaw DataCenter, która takie usługi udostępnia.
Udałem się na ich stronę, aby sprawdzić, ile ta przyjemność może kosztować... Sama usługa ukryta jest pod maluteńkim guziczkiem z napisem vps (virtual private server). Wchodzimy, a tam tabelka z informacją o trzech różnych planach taryfowych. Różnią się one powierzchnią dysku (max to 8GB, w najtańszym planie w strato.de użytkownik dysponuje dziesięcioma GB), ilością transferu (max 110GB, najtańszy plan w strato obejmuje 500GB) oraz liczbą adresów IP. Nie ma informacji o ilości dostępnego RAMu bądź maksymalnej ilości wirtualnych serwerów przypadających na fizyczny komputer. Ale co tam (sobie pomyślałem) - przynajmniej miałbym do czynienia z kimś, kto mówi po polsku. Niestety, cen też na tej stronie nie znalazłem. W ramach desperacji wypełniłem formularz zamówienia oferty. Wpisałem swoje dane, adres email i numer telefonu, wcisnąłem "Rejestruj"... Operacja nie powiodła się, gdyż nie wypełniłem obowiązkowego pola "Nazwa firmy". WTF? Od kiedy nazwa firmy jest obowiązkowym polem? Nic to, pomyślałem, i wpisałem "osoba fizyczna". Dziś (czyli po upływie DWÓCH dni roboczych) otrzymałem mejla od pana Grzegorza Pilarskiego informującego mnie, że firma WDC nie świadczy usług osobom fizycznym.
Postanowiłem więc pana Grzegorza poinformować, że istnieją firmy na tym kontynencie, które oferują hosting wirtualnych serwerów, uruchamianych "od ręki" dla każdego klienta. Na stronie strato.de nie musiałem szukać ceny, nie musiałem szukać warunków, nie musiałem szukać niczego. To nie ja walczę o usługodawcę, to usługodawca walczy o mnie. Za kwotę 40eur można na rok wynająć serwer wirtualny z wybraną domeną. Przy zamówieniu podałem numer telefonu, na który przyszedł kod potwierdzający zamówienie. Po tym jak go wpisałem na odpowiedniej stronie, serwer został przygotowany do pracy w ciągu... może godziny. No, ale widać firma WDC ma tak olbrzymią ilość klientów firmowych, że nie opłaca się schylać po takich szaraczków jak ja... Życzę powodzenia.
30 stycznia 2007, 18:45:50 10 komentarzy
Jawne implementowanie interfejsów
Znowu mam powód do ponarzekania. I znowu dzięki panom dizajnerom z Microsoftu, którzy zrobili wszystko, żeby utrudnić życie programistom. A wszystko za sprawą cudownego mechanizmu zwanego explicit implementation. Generalnie rzecz biorąc idea może nie jest taka najgłupsza, ale dlaczego ja się pytam, tak dużo uwagi przyłożono do tego, aby utrudnić ludziom życie?
Historia zaczyna się tak, że tworzymy sobie pakiet rozszerzający VisualStudio. Robi się to w ten miły sposób, że dziedziczymy z odpowiedniej abstrakcyjnej klasy Package, dekorujemy ją jakąś setką atrybutów (z czego połowa to GUIDy, jedna czwarta to numery kluczy do resource'ów, a reszta to jakieś inne stringi) i implementujemy sobie jakieś tam metody. Do tego przychodzi nam na myśl, że fajnie byłoby zaimplementować interfejs IOleCośTam, który już jest implementowany przez klasę Package. Jest to o tyle fajna sytuacja, że w większości przypadków moglibyśmy się zdać na Package i obsługiwać tylko te, które nas interesują. I tu w naszą drogę wchodzi właśnie jawna implementacja interfejsów. Dla uproszczenia przyjmijmy taką sytuację:
public interface IFoo
{
void Foo();
}
public class Bar : IFoo
{
void IFoo.Foo() { ... }
}
Tak więc mamy sobie fajną klasę Bar. Wydziedziczymy z niej sobie naszą nową klasę, w której spróbujemy przeciążyć metodę Foo, ale w taki sposób, żeby wywołać Foo z klasy Bar.
public class Baaz : Bar, IFoo
{
public Foo()
{
base.Foo();
}
}
Bad luck! Metoda Foo nie została w klasie Bar bez powodu oznaczona jako publiczna, żebyśmy ją sobie teraz ot tak po prostu mogli wywołać.... no dobra, to może tak:
public class Baaz : Bar, IFoo
{
public Foo()
{
((IFoo)base).Foo();
}
}
I to jest właśnie to miejsce, w którym panowie z Microsoftu na chama stawiają szlaban. Otóż kompilator mówi, że wksaźnika base nie można sobie przerzutować na coś innego. Oczywiście przerzutowanie this na odpowiedni interfejs kompiluje się poprawnie i w sposób jak najbardziej poprawny prowadzi do stack overflow poprzez nieskończoną rekurencję. Więc jak? Otóż tak:
public class Baaz : Bar, IFoo
{
public Foo()
{
Type t = typeof(Bar);
InterfaceMapping map = t.GetInterfaceMap(typeof(IFoo));
MethodInfo mi = Array.Find(map.TargetMethods,
delegate(MethodInfo m) { return m.Name.Equals("Bar.Foo"); });
mi.Invoke(this, null);
}
}
Prawda, że elegancko? Dobieramy się do metody klasy bazowej przez reflection (trzeba tutaj zwrócić uwagę na podanie nazwy metody poprzedzonej kwalifikowaną nazwą klasy), po czym wywołujemy ją przy pomocy Invoke. Oczywiście możemy zapomnieć o kontroli typów.
I ja się teraz pytam. Skoro do tej metody i tak można się dostać, skoro istnieją takie sytuacje, w których to jest konieczne, to dlaczego, dlaczego, dlaczego musiało to zostać tak cholernie utrudnione? Dlaczego nie można było dać ludziom do ręki normalnego mechanizmu dostępu do tych metod?
Panów dizajnerów C# radzę wysłać na tygodniowy kurs Pythona. Może przy następnej próbie utrudniania życia programistom ręka im zadrży.
29 stycznia 2007, 21:20:22 1 komentarz
O tym jak nie dostałem pracy
Wstęp
Mniej więcej dwa lata temu zacząłem na serio interesować się różnymi pracodawcami i rozpocząłem pierwsze przygotowania do szukania pracy. Jako, że do ukończenia studiów cały czas miałem jeszcze sporo czasu, nie podchodziłem do tego w desperacji, lecz zupełnie na spokojnie, na zasadzie - jak się uda to fajnie, a jak nie to i tak mam jeszcze czas znaleźć coś innego. Tak się akurat składa, że mąż mojej ciotki pracował w Procter & Gamble i był bardzo zadowolony. Stąd dowiedziałem się, że firma owa bardzo chętnie zatrudnia ludzi młodych, świeżo po studiach, albo wręcz na praktyki. Niewiele myśląc udałem się więc na stronę, która podówczas znajdowała się pod adresem it.kariera.procter.pl i wypełniłem formularz zgłoszeniowy wraz z CV (które miałem już przygotowane, bo musiałem się ubiegać o miejsce na seminarium).
Etap II
Po tygodniu (a może dwóch) oczekiwania otrzymałem mejla z prośbą abym udał się na podaną stronę i wypełnił formularz z pytaniami. Linka przy tym miałem (zgodnie z instrukcją w mejlu) otworzyć przy pomocy Internet Explorera w wersji przynajmniej X, albo Netscape Navigatora w wersji przynajmniej Y. Przekonany, że treść mejla jest przedawniona otworzyłem linka w Firefoksie i oczom moim ukazał się komunikat
404 File not found.
Okazało się bowiem, że treść mejla nie jest przedawniona, a serwer został tak skonfigurowany, żeby innym przeglądarkom odsyłać kod błędu. Na szczęście na terminalach w MPI był odpowiedni Netscape Navigator i wypełniłem (żebym nie skłamał) chyba 17 stron pytań. Przy czym odpowiadałem uczciwie pamiętając, że nie ma złych lub dobrych odpowiedzi.
Etap III
Po ponad miesiącu otrzymałem kolejnego mejla informującego mnie, że zostałem zakwalifikowany do kolejnego etapu. Tym razem miałem wziąć udział w teście umiejętności analitycznych... w siedzibie P&G w Warszawie. Test składał się z prostych zadań matematycznych (z których większość sprowadzała się do rozwiązania układu równań liniowych) oraz z rozumienia tekstu pisanego po polsku. Było nas czterech (jeden ze współzdających pochwalił się swoim statusem weterana testów, które przechodził również w Ernst&Young oraz PWC i jeszcze gdzieś tam), ale zdały tylko dwie osoby. Przy czym nie otrzymaliśmy wyników, po prostu dowiedziałem się, że zdałem i że ktoś się ze mną skontaktuje.
Etap IV
W kolejnym etapie zaproszony zostałem ponownie do Warszawy na rozmowę z pracownikiem działu HR. Pan haerowiec nie mógł najpierw przez dłuższy czas znaleźć wolnej sali, ale w końcu usiedliśmy sobie i pogadaliśmy. Musiałem przypominać sobie jak ostatnio zareagowałem na trudną sytuację, albo jak postąpiłem w sytuacji gdy musiałem wybierać między X a Y i generalnie udowodnić, że wspaniale radzę sobie w zespole i sam wychodzę z inicjatywą itd. Po rozmowie dowiedziałem się, że firma skontaktuje się ze mną w swoim czasie, ale raczej nie prędko, bo trwa reorganizacja i nikt nic nie wie i w ogóle to lepiej jakby się ta rekrutacja nie odbywała.
Etap V
Po kilku tygodniach otrzymałem kolejne zaproszenie do warszawskiej siedziby P&G na rozmowy z menadżerami czegośtam. Na dobry początek - dobrze mi już znane problemy ze znalezieniem sali. Pan menadżer ratował się opowiadając mi jak to fajnie, że ostatnio biuro zostało zamienione w open space
(cokolwiek by to miało znaczyć) i że tak jest fajniej. Następnie wyrzucił jakichś ludzi z sali, którą zajęliśmy. Pytania, które mi zadawał, niewiele różniły się od tych z mojej poprzedniej przygody. Jak sobie radzę w stresie, opowiedzieć coś po angielsku, czy przewodziłem kiedyś grupie, czy umiem współpracować z innymi itd. Na koniec ja zadałem pytanie, czym się pan menadżer zajmuje. Odpowiedział mi (z pełnym przejęciem i ewidentną pasją w głosie), że cały jego dział zajmuje się uzupełnianiem cyferek w jakimś programie. Ale jest to bardzo, ale to bardzo ważne, bo jak się ktoś pomyli, to to wpływa na działanie całej firmy, na całym świecie.
Po rozmowie okazało się, że nie ma kto ze mną przeprowadzić drugiej rozmowy. Z braku laku wyrwano więc dwójkę pracowników, którzy zabrali mnie na lunch i opowiadali jaka wspaniała jest firma, bo stabilne zatrudnienie, bo szkolenia za granicą i w ogóle najważniejsze to dobrze sobie zorganizować pocztę elektroniczną, bo to najważniejsze narzędzie pracy. A w ogóle to P&G rekrutuje kadrę menadżerską ze swoich pracowników, więc każdy ma szansę się wybić.
Drugą rozmowę prowadził ze mną szef całego tego kramu. Fantastyczny gość, nawiasem mówiąc. Muszę przyznać, że rozmowa ta sprawiła mi ogromną przyjemność, bo człowiek na poziomie, gadał do rzeczy, nie pytał o bzdety, tylko interesowało go co robiłem na studiach, czy to mogłoby mieć potencjalne zastosowanie np. w P&G... no generalnie zrobił na mnie olbrzymie wrażenie. Jedyne co, to posługiwał się sporą ilością skrótów i nazw, które były specyficzne dla firmy, ale nie miały dla mnie żadnego znaczenia (np. powiedział mi, że jest pierwszym polskim szefem Global CośTam). A w ogóle to właśnie przejmują Gillette i trochę mają mętlik. A ponieważ fajnie nam się gadało, to na koniec (w ramach przysługujących mi pytań) spytałem jak mnie ocenia.
Na koniec miałem nieprzyjemność rozmowy z panią menadżerką, która co chwila wchodziła mi w słowo, nie pozwalała dokończyć żadnej myśli i w ogóle była strasznie niecierpliwa. Ja byłem już wtedy zmęczony i miałem ochotę jak najszybciej to zakończyć i pójść sobie wreszcie. Na zakończenie poprosiłem, żeby tym razem oszczędzili mi kolejnych tygodni czekania i poinformowali o wyniku postępowania najlepiej jeszcze tego samego dnia, o ile to możliwe.
Epilog
Ok. godziny 19 zadzwoniła do mnie pani z P&G, powiedziała, że wszystkie dzieci były świetne i wszystkie zasłużyły na zwycięstwo, ale takie są reguły "Od przedszkola do Opola", że tylko jedno dziecko może wygrać i to nie byłem tym razem ja. Ale na pewno świetnie sobie poradzę itd itp.
Podsumowując - rekrutacja trwała ponad pół roku. Tak długo, że zastanawiałem się, czy nie podzielić tej sagi na odcinki i publikować co kilka dni. Na sam koniec miałem już szczerze wszystkiego dość, ale postanowiono mnie dobić traktując jak smarkacza startującego w konkursie na najładniejszą laurkę z okazji Dnia Matki. Mimo wszystko starałem się być obiektywny i unikać sarkazmu. Po tym wszystkim, co przeszedłem, zależało mi naprawdę na tej pracy, jakkolwiek bym tego nie deprecjonował.
15 stycznia 2007, 20:05:55 20 komentarzy
Iwenty w wiżułal studio
Kolega z zespołu pracuje nad rozszerzeniem Visual Studio. A ponieważ to bardzo cierpliwy i spokojny człowiek, co kilkanaście minut wyrzuca z siebie coś a'la "To przecież chore", albo "Tego nie ma". Dzisiaj pokazał mi coś, w co sam nie byłem po prostu w stanie uwierzyć.
Problem pojawił się kilka tygodni temu wraz ze zgłoszeniem, że zamykanie projektu nie czyści niektórych okien. Zgłoszenie zostało już dawno zamknięte mimo braku pełnego rozwiązania wraz z opisem, że do zamknięcia projektu należy najpierw pozamykać ręcznie wszystkie pozostałe okna. W przeciwnym przypadku nie odpalało się po prostu odpowiednie zdarzenie.
Dzisiaj kolega trafił przypadkiem na rozwiązanie. Okazało się, że zamiast podpinać się pod zdarzenie w ten sposób:
_applicationObject.Events.SolutionEvents.Opened += ...
należy najpierw przypisać sobie sam event do zmiennej, a następnie podpiąć odpowiedni handler do tej zmiennej np w ten sposób:
Events2 events;
SolutionEvents solutionEvents;
events = (Events2)_applicationObject.Events;
solutionEvents = events.SolutionEvents;
solutionEvents.Opened += ...
Szczena mi opadła, jak to zobaczyłem. Pierwszą myślą było, że może to pewnie ze względu na to rzutowanie - nie jestem nadal pewien, czy można przeciążać zdarzenia, ale wydawało mi się to niewykluczone. Wstawiliśmy więc rzutowanie do pierwotnego rozwiązania - nic nie dało. Nie wiem, po prostu nie mam absolutnie zielonego pojęcia dlaczego tak jest.
03 listopada 2006, 19:23:57 Dodaj komentarz
Jeszcze więcej problemów z Reflection.Emit
Jedną mam olbrzymią radę dla wszystkich, którym by kiedykolwiek do głowy przyszło korzystać z niekonsekwentnie zaprojektowanego, słabo udokumentowanego i kiepsko zaimplementowanego nejmspejsa: zastanów się dwa razy, zanim wpakujesz się w to po uszy.
Dzisiejsze godziny poranne upłynęły mi pod znakiem próby dobrania się do konstruktora listy o elementach typu, który jest w trakcie generowania. Konkretnie chodzi o takie coś:
ConstructorInfo GetListConstructorInfo(TypeBuilder elementType)
{
Type listType = typeof(List<>).MakeGenericType(elementType);
return listType.GetConstructor(Type.EmptyTypes);
}
Specjalnie zadeklarowałem tu elementType jako TypeBuilder, żeby podkreślić, że ten typ nie został jeszcze stworzony. Jeśli ktoś śledził moje dotychczasowe przygody, to już wie czym się kończy wykonanie tego kodu: NotSupportedException.
24 października 2006, 20:43:25 Dodaj komentarz
Niekonsekwencja
Znowu będzie o Reflection. Najpierw odpowiem sobie sam jak ładnie stworzyć sobie obiekt reprezentujący typ polimorficzny:
return typeof(List<>).MakeGenericType(new Type[] { elementType });
Nie przypuszczałem, że C# dopuszcza coś takiego jak List<>. Niestety okazuje się, że nie wszędzie się programistom Microsoftu chciało i poniższy fragment kodu już przez parser nie przejdzie.
class A<T> { ... }
class B<S> where S : A<> { ... }
W powyższym przykładzie trzeba dodać drugą zmienną typową do deklaracji typu B, żeby to przeszło.
24 października 2006, 20:14:35 Dodaj komentarz
Delegaty w C#
Delegaty jako element języka C# zawsze wydawały mi się niewygodne w użyciu. Nie jestem w stanie zrozumieć logiki ich podwójnej deklaracji:
public delegate TOutput Converter<TInput,TOutput> (TInput input);
public List<TOutput> ConvertAll<TOutput> (Converter<T,TOutput> converter)
Tak, jakby TOutput converter<T,TOutput>(T element) nie było dobrym argumentem dla ConvertAll.
I musze zmartwić panów projektantów z Microsoftu (choć tego nie czytają, więc ich raczej nie obejdzie), że syntax highlighting w Visual Studio niewiele pomaga - deklaracja delegatu zawsze będzie mi się mylić z deklaracjami zmiennych i (jako osobie przyzwyczajonej do wskaźników do funkcji z C oraz do deklaratorów z Nemerle) zawsze będzie mi to wadzić (o słabiutkiej inferencji typów w C# w ogóle nie chcę wspominać).
Kolejnym problemem delegatów w wydaniu Microsoftu jest niekompletna dokumentacja. To znaczy - informuje ona programistów, jak z nich korzystać, ale w przeciwieństwie do innych klas, brak jest odnośnika Members, a do hierarchii typów trzeba się dobierać z innej strony. W tej sytuacji, w charakterze dokumentacji korzystam z pary: kompilator-dissassembler oraz Reflectora (np. kompilator C# nie używa żadnego z konstruktorów klasy Converter'2, który byłby odziedziczony z którejś z nadrzędnych klas).
Cała ta gimnastyka przypomina mi trochę czasy implementowania obsługi SMTP albo POP3 - najpierw czytałem RFC, a potem obserwowałem co robią inne programy pocztowe. A ponieważ inne programy nie były zgodne z RFC, to dla dobra użytkownika ja również nie byłem.
07 października 2006, 13:57:20 2 komentarze
Reflection Emit, czyli narzekania na Microsoft ciąg dalszy
Resztki mojego wewnętrznego przekonania, że programiści Microsoftu przygotowują elegancki kod i wspaniałe API (patrz poprzednie przygody), odeszły dzisiaj całkowicie do lamusa. Od rana jeden z moich kolegów siedział nad rozszerzeniami do Visual Studio. Klął przy tym niemiłosiernie bo dokumentacji do tego brak jakiejkolwiek, a do części funkcjonalności po prostu nie sposób się dobrać.
Ja tymczasem siedzę nad generatorem kodu i natrafiłem na kolejne kwiatki w moim ulubionym nejmspejsie. Po pierwsze radzę uważać na argumenty przekazywane do metody Emit, bo mogą nadpisać następne instrukcje. Konkretnie chodzi o tego typu wywołanie: ilGenerator.Emit(OpCodes.Ldarg, num). Jeśli num jest mniejszy od inta, to następne wygenerowane instrukcje zostaną potraktowane jako fragment argumentu instrukcji Ldarg... no ale tak to jest, jak się robi tyle przeciążeń. Po drugie zaś dowiedziałem się, że nie przewidziano API umożliwiającego dostęp do GACa. Jak poinformowali nas autorzy dokumentacji:
If you use the GAC, this directly exposes your application to assembly binding fragility or may cause your application to work improperly on future versions of the .NET Framework. (...) The actual storage location and structure of the GAC is not documented and is subject to change in future versions of the .NET Framework and the Microsoft Windows operating system.
No nic... póki co najlepszym API dostępu do GACa jest chyba opakowanie sobie gacutila.
25 września 2006, 20:22:35 Dodaj komentarz
Kogel Mogel
Jako, że zostałem w domu sam, a pojutrze wyjeżdżam z domu na 2 tygodnie, to staram się wykorzystać pozostawione w lodówce resztki jedzenia, w tym jajka. Tak więc, przy pomocy poniżej zaprezentowanego cudu techniki, utarłem sobie żółtka z cukrem na kogel mogel.
Ładny mikserek? Pan dizajner chciał być nowoczesny i zaprojektował go w takich ślicznych, opływowych kształtach.... ale pan dizajner chyba nigdy wcześniej nie miał do czynienia z mikserami, bo nie wpadł na to, że mikser trzeba jakoś odstawić. Eh...
09 września 2006, 18:21:20 9 komentarzy
Optymizm
Pierwszą poważną przeszkodą na drodze do uzyskania tytułu magistra informatyki był na moich studiach egzamin z logiki
"Program wykładu logiki dla informatyków nie jest trudny — w następnych semestrach będziecie Państwo słuchali dużo trudniejszych wykładów. Mimo to co roku znaczna część studentów nie zdaje egzaminu z logiki."
Na moim roku, w pierwszym terminie, po obniżeniu progu punktowego egzamin zdało 25 osób (z ok. 150). Czy problemem jest trudność tego egzaminu? Trudno powiedzieć. Ale od tamtej pory nie ulega mojej najmniejszej wątpliwości, że ludzki optymizm nie zna granic.
Egzamin ów składa się z dwóch części.
- Pierwszą (tzw. połówkę) zdaje się już w grudniu. Obejmuje ona tylko część materiału i można z niej uzyskać maksymalnie 40 punktów.
- Druga część organizowana jest w sesji, obejmuje cały materiał wykładu i można z niej otrzymać maksymalnie 60 punktów.
Aby zdać, należało z obydwu części zdobyć w sumie 33 punkty (25 po obniżeniu progów).
Jako urodzony pesymista skalkulowałem, że zdobycie mniej niż 0,4*33=13,2 punktów na egzaminie połówkowym nie pozwala mi wierzyć w końcowy sukces. Dlaczego? Spodziewałem się bowiem, że w drugiej - trudniejszej - części egzaminu zdobędę maksymalnie taką część punktów, jaką część uda mi się zdobyć w pierwszej części. Rozmawiając z kolegami po pierwszej części egzaminu, zauważyłem, że mają na ten temat zupełnie inne spojrzenie. Oddanie jednego zadania (wartego maksymalnie 10 punktów) uznawali za sukces. Byli nawet tacy, którzy na egzamin połówkowy przyszli tylko po to, aby zobaczyć jak wyglądają zadania.... bo przecież aby zdać wystarczy niewiele ponad połowa punktów z egzaminu końcowego.
Skąd w ludziach ten bezgraniczny optymizm? Jak z czterech porażek z rzędu można wnioskować, że za piątym razem się uda?
"All the failed and troubled software development efforts you've been involved in have one elemnt in common... you."
03 września 2006, 13:38:02 4 komentarze
