hoppke@gmail.com


The Road

Wpis na 0. poziomie, wysłany 25 stycznia 2010 o 22:37:52

...właśnie wróciłem z kina. Jeszcze się zrównoważyłem, więc podsumuję jednym słowem: mocne.

Więcej nawet, wstrząsające.

Powtórzę za jednym z komentarzy na imdb "this is not a popcorn movie".

Dodaj komentarz | Ogólne |

Choroba pracownicza

Wpis na 0. poziomie, wysłany 25 stycznia 2010 o 18:20:17

Moja office manager właśnie rozesłała po firmie oficjalne wytyczne "co robić w razie choroby".

  • Jeśli zachoruję, powinienem ją o tym jak najszybciej poinformować (najlepiej w ciągu 3h od momentu, w którym normalnie zaczynałbym pracę).
  • Choroba trwająca dłużej niż 7 ciągłych dni (wliczając w to dni wolne od pracy) wymaga przedstawienia zaświadczenia od mojego lekarza.
  • Choroba trwająca krócej niż 7 ciągłych dni wymaga wypełnienia dokumentu "autodiagnozy", w którym opisuję sam co mi dolegało.

A limit dni, które w ciągu roku mogę sobie bezkarnie przechorować wynosi, jeśli dobrze pamiętam, mniej więcej tyle, ile mój przydział urlopowy (25).

Sadyści.

1 komentarz | Ogólne |

Ćwiczenie programistyczne

Wpis na 0. poziomie, wysłany 13 stycznia 2010 o 22:32:45

W trakcie rozglądania się za nową, ciekawą pracą otrzymałem do rozwiązania dość nietypowe (jak na procesy rekrutacyjne) zadanie. Rozwiązywanie go było dość ciekawe, więc pomyślałem, że się podzielę:

LTP (Left-Truncatable Prime) to liczba pierwsza , która

  • nie zawiera cyfry 0
  • pozostaje liczbą pierwszą po odcięciu dowolnej ciągłej sekwencji cyfr z lewej strony.

Wprowadzenie:
5167 to LTP, gdyż 5167, 167, 67 i 7 są liczbami pierwszymi; 2179 nie jest LTP, bo co prawda 2179, 179 i 79 są liczbami pierwszymi, ale 9 już nie. W przedziale do 1 000 000 000 znajduje się 2166 LTP.

Napisz program, który:

  1. przyjmuje pojedynczą liczbę n (1 ≤ n ≤ 2166) jako parametr CLI
  2. oblicza n-tą liczbę LTP
  3. wypisuje wartość tej liczby na standardowe wyjście

Na przykład:

  1. podanie 10 powinno wypisać 47
  2. podanie 100 powinno wypisać 5167
  3. podanie 1000 powinno wypisać 8391283

Twoje rozwiązanie powinno mieć na uwadze wydajność (choć nie tylko ten aspekt wymaga uwagi). Twój program powinien być w stanie zwrócić odpowiedź w przeciągu 500ms na standardowym PC.

Oprócz tego oryginalne zadanie sugerowało, że rozwiązanie powinno być jakości "produkcyjnej", a stworzenie go nie powinno zająć więcej niż 1h, ale możemy to sobie darować.

Mnie najbardziej interesuje: jakie, droga braci techniczna, masz pomysły na algorytm, i ile czasu/MB pamięci potrzebują wasze rozwiązania? Zaznaczam, że program ma liczby obliczać, więc rozwiązanie typu "ściągam listę LTP z internetu, zapisuję w pliku, a program to tylko wczytuje" jest niekoszerne (taki był mój pierwszy pomysł :)

A, usłyszałem też, że nawet programiści z wieloletnim doświadczeniem potrafią mieć problemy z rozwiązaniem tego zadania/zapewnieniem odpowiedniej wydajności.

48 komentarzy | Ogólne Techblog |

Intel i5/i7?

Wpis na 0. poziomie, wysłany 08 października 2009 o 10:51:00

Od jakiegoś czasu łazi za mną myśl o odświeżeniu sprzętu -- irytuje mnie trochę, że gdy przysiądę w domu do programowania to mój domowy sprzęciorek nie sprawdza się tak dobrze jak pracowy.

Wychodzi mi, że wąskim gardłem musi być procesor (nienajnowszy już Athlon 64x2). W podstawkę AM2 nic wiele lepszego nie wcisnę, więc trzebaby wymienić płytę (ramu szkoda, bo niezły sobie skompletowałem, ale trudno...).

No i teraz się zastanawiam. Kupić i5? Czy warto dopłacić do i7 może? Na które płyty główne zwrócić uwagę? Jaki ram? Czy będę musiał wymienić zasilacz, bo branża znowu wymyśliła dodatkowe wtyczki z zasilaniem "wspomagającym"? A może odpuścić sobie grzebanie w sprzęcie na razie i poczekać na jakiś nowy produkt?

Zdaję sobie sprawę, że motywuje mnie też w sporej części zwykły zakupoholizm i cywilizacyjnośmierciowe zapędy konsumpcyjne (dawno nic do komputera nie dokupiłem i głód się zaczyna ;), ale chyba warto byłoby się przesiąść na coś z więcej niż 2 rdzeniami, no i wydajniejszym ramem...

7 komentarzy | Ogólne |

Win 7 za pół ceny

Wpis na 0. poziomie, wysłany 15 lipca 2009 o 18:35:13

...przynajmniej w US i UK.

Amazon.co.uk ma w tej chwili parę ciekawych ofert dla windowsiarzy: "prepurchase" Win 7 Home Premium za £44,97 zamiast £149,99, oraz analogiczny "przedzakup" Win 7 Professional za £89,97 zamiast £149,99. Inne europejskie oddziały Amazona miały podobne promocje, ale że liczba promocyjnych kopii ograniczona, to i dostępność się waha.

Inna równie ciekawa promocja to deal "kup teraz Vistę, a odpowiadający mu 7 dostaniesz od nas za darmo w dniu premiery". Można więc kupić Vistę Ultimate SP1 za £166.53 (obniżone z £218.99) i potraktować to jako "przedzakup" Windows 7 Ultimate (którego w inny sposób "przedzakupić" się chyba nie da). I jeśli dobrze zrozumiałem warunki, to nadal zostaje nam w ręku ta Vista -- czyli dostajemy dwa systemy za cenę jednego.

Dzięki miłościwie nam panującej UE wszystkie te Windows 7 to odmiany "E", czyli pozbawione przeglądarki IE. Efektem ubocznym wywalenia IE było upośledzenie wersji "upgrade" (aktualizujących Vistę do 7) do tego stopnia, że MS postanowił nie oferować ich w Europie -- wersje "E" dostępne są tylko jako "pełne" systemy, bo najwidoczniej MS nie dał rady na czas opracować procedury aktualizacji która nie instalowałaby też nowego IE. MS zapowiada jednak odpowiednie obniżenie ceny, by bardziej skusić posiadaczy starszych systemów.

Oprócz tego kupując którykolwiek z tych systemów łapiemy się też na zniżkę przy zakupie MS Office 2007 Home&Student. Zbija to cenę pakietu do chyba około £44. Dostajemy za to "niezbędnik" w postaci Worda, Excela i Powerpointa (oraz chyba OneNote, ale mało kto tego używa...), plus licencję na trzy niekomercyjne stanowiska -- idealne do domu.

Podobne kąski można pewnie wyszukać i u innych resellerów MS (bo promocyjne ceny "płyną ze źródła")

Microsoft pracując nad Win7 i okolicznymi produktami mocno zmienił cykl produkcyjny (darmowe bety i długo żyjące RC, zbieranie inputu od użytkowników), kampanię reklamową (momentami dość drapieżną), a także ceny (no, przynajmniej obecne oferty są warte uwagi, bo poza tym ceny przypominają te Vistowe, może są ciut niższe).

Ale czy to wystarczy, by odwrócić wcześniejszy kiepski PR i "noluv4vista"?

5 komentarzy | Ogólne |

Prezent od Sandiska

Wpis na 0. poziomie, wysłany 16 kwietnia 2009 o 18:37:10

Ładowałem sobie w pracy moją sansę fuze i przyszło mi do głowy sprawdzić, czy nie ma przypadkiem jakichś nowych aktualizacji dla niej.

Zainstalowałem więc Sansa Updater, uruchomiłem i proszę — zaproponowało mi nowy firmware. Sandisk dorzucił obsługę replaygain, nawigowania po katalogach (do tej pory Sansa porządkowała muzykę wyłącznie po tagach), obsługę kolejnej wersji ID3 i ponaprawiał trochę innych bugów. I obsługę slotRadio też wrzucili, ale to mi akurat całkowicie zwisa.

Znając Sandiska poprawki pewnie zostały już udostępnione (lub zostaną niedługo) i dla innych modeli (tak jak to było w przeszłości, gdy Clip dostała FLAC).

Swoją drogą piękne pro-konsumenckie zagranie. No bo ilu innych producentów dodałoby obsługę FLAC, replayGain czy nawigacji po folderach do urządzeń, które są już od dawna w sprzedaży? Po co dodawać nowe funkcje do urządzeń, za które klient już zapłacił? Nie opłacalniej wydać „nową generację” playerka i wyciągnąć użytkownikowi więcej kasy z kieszeni?

Cieszę się, że zdecydowałem się na Fuze, a nie na iPoda Nano 4 :)

3 komentarze | Ogólne |

Dokarmianie IT-ków

Wpis na 0. poziomie, wysłany 13 marca 2009 o 11:34:45

Dwa duże talerze pełne muffinków (dwa rodzaje), trzeci talerz zapełniony czekoladowo-karmelowo-chrupkowymi „ciasteczkami”.

Wystawić w odpowiednim punkcie biura, puścić mejlowy anons po wszystkich pracownikach.

Koszt znikomy, a pewnie dzięki takim akcjom zebrałem laurki w samych superlatywach wychodząc z okresu próbnego… :)

4 komentarze | Ogólne |

Sklep z mp3

Wpis na 0. poziomie, wysłany 03 stycznia 2009 o 19:42:00

Dlaczego dopiero teraz dowiedziałem się, że Amazon ma już dział z empetrójkami? I na dodatek sporo albumów w bardzo atrakcyjnych cenach…

Powinno wypalić, iTunes ma tyle wad, że łatwo go przebić...

Dodaj komentarz | Ogólne |

Maintenance cost

Wpis na 0. poziomie, wysłany 30 grudnia 2008 o 13:37:51

Firma miała sobie projekt. Ludzie, którzy go zrobili już tam nie pracują. Projekt ma dość wygodny interfejs webowy, więc da się go używać, ale nie ma dokumentacji i nikt nie ma pojęcia „jak to działa”, co uniemożliwia jakiekolwiek rozszerzanie funkcjonalności/naprawianie usterek. Czyli firma posiada czarną skrzynkę. Robię więc code review i spisuję powoli szkieletowy opis zaimplementowanej logiki biznesowej, od razu pod kątem refaktoryzacji.

Najwięcej kodu w projekcie zostało napisane przez gościa, po którym w firmie oprócz kodu ostała się legenda o jego zamiłowaniu do alkoholu — ponoć na przerwie obiadowej do posiłku wypijał zwykle 3 pinty piwa. To chyba tłumaczy wygląd niektórych kawałków kodu. Większośc jest OK, ale sporo jest takich pokroju Daily WTF.

Dlatego właśnie wszędzie w IT brakuje ludzi — bo sami sobie nawzajem tworzymy zajęcie. Piszemy coś, co potem ktoś będzie musiał poprawiać, albo poprawiamy coś, co ktoś wcześniej napisał. Im więcej produkujemy, tym więcej będzie nas potrzeba za parę lat, by utrzymywać ten bajzel. Boję się, że „nietechniczni” kiedyś nas przejrzą i wszystkich wypieprzą z roboty.

Ale na razie korci mnie, żeby sobie zrobić wizytówkę „Senior software engineer. Solving problems introduced by IT”.

6 komentarzy | Ogólne |

Wpis na 0. poziomie, wysłany 27 listopada 2008 o 11:59:09

Stało się. W moim ulubionym sklepie z komputerowymi „flakami” najlepszy stosunek ceny do pojemności (najniższą cenę za 1GB) ma od jakiegoś czasu dysk 1,5TB. To co, backupujemy internet? :)

...a przecież jeszcze nie tak dawno temu obiektem powszechnego wzdychania było P75 z dyskiem 850MB.

5 komentarzy | Ogólne |

Eee BOX, cz. 2

Wpis na 0. poziomie, wysłany 30 października 2008 o 23:14:29

Właśnie instaluję Ubuntu.

Miałem małą zagwozdkę, bo Eee BOX nie ma napędu CD, a nasz zewnętrzny CD podczepiany przez USB właśnie wyzionął ducha (płyt nie widzi). Próbowałem z Ubuntu 8.04.1 -- i przez unetbootin + karta SD, i przez UPX ciągnący dane z serwera tftp postawionego na moim desktopie z Vistą.

Nada. Nic. Bez skutku. LiveCD Ubuntu 8.04.1, mimo iż teoretycznie powinno działać (z poprawką na kartę graficzną, której nie rozpoznaje poprawnie i trzeba przestawić na sterownik Vesa), zawiodło mnie fatalnie -- jakimś cudem sterownik ethernetu nie wypuszczał pakietów choćby do rutera. Jest to sprzeczne z "success stories" jakie znalazłem w sieci, bo ewidentnie ludziom jakoś 8.04.1 działało z Eee BOX-em (model B202, czyli taki sam jak mój). Jednym słowem wczorajszy wieczór zakończył się porażką.

Ale dzisiaj skorzystałem z oficjalnej premiery 8.10 i ściągnąłem sobie http://releases.ubuntu.com/releases/8.10/ubuntu-8.10-rc-mobile-i386.img (Ubuntu powinno popracować nad promowaniem alternatywnych sposobów instalacji...). Jest to obraz, który należy wrzucić bezpośrednio ("cat img > /dev/pendrive") na jakiś nośniczek USB i użyć jak LiveCD. Można to wykonać i pod Windowsem -- ja użyłem dd.exe dla win32 i przygotowałem bootowalną kartę SD.

Eee BOX bezproblemowo wystartował z karty, pokazał bardzo estetyczny pulpit w 1600x1200 (natywna monitora podpiętego akurat przez DVI). Co ciekawe nie jest to raczej typowy Gnome (pionowy taskbar itp.), ale to pewnie dlatego, że ten obraz instalacyjny jest przeznaczony dla urządzeń mobilnych, netbooków.

Dysk standardowo posiadał 4 partycje, z czego 2 ukryte. Jedna z ukrytych nazywa się "Rescue", więc pewnie leży na niej coś ważnego. Druga zawiera bógwieco, podejrzewam, że może mieć coś wspólnego z Express Gate albo jakąś kopią systemu. Zbadam później. W każdym bądź razie partycje są pozakładane tak, że cfdisk marudzi o błędach w tablicy partycji i trzeba sięgać po zwykłego fdiska w razie czego. Miłe za to jest to, że dysk ma wydzieloną pustą partycję "Data" o wielkości 100GB, więc jest gdzie posadzić Linuksa bez dotykania pozostałych partycji.

Instalacja przeszła gładko. Nie wiedziałem gdzie wpakować bootloader by nie uszkodzić Express Gate (to taki minimalny Linux wbudowany jakoś w urządzenie, posiada graficzną przeglądarkę podejrzanie przypominającą Firefoksa w jakimś trybie kiosku, Skype, Pidgina, Photo Managera i parę innych programów do obsługi sieci/wifi, ale pozbawioną za to łatwego dostępu do CLI (BUUUUU!!!). Więc bootloader wylądował w bootsektorze partycji na której kazałem umieścić Ubuntu.

Oczywiście po restarcie automatycznie wstał WindowsXP. Jeszcze raz uruchomiłem Ubuntu z karty SD i fdiskiem ustawiłem flagę "bootable" na partycji Ubuntu. Po restarcie zobaczyłem czarny ekran biosu z komunikatem o uszkodzonej tablicy partycji.

W panice sprawdziłem, czy Express Gate nadal działa -- działa. No dobra, to przestawię bootable z powrotem na partycję WinXP i zaryzykuję umieszczenie bootloadera w MBR... zobaczymy co z tego wyjdzie!

Update

Uruchomiłem jeszcze raz LiveSD, uruchomiłem okienko terminala. Przestawiłem aktywną partycję w poprzedni stan. Podmontowałem partycję z ubuntu i wrzuciłem bootloadera do MBR:

sudo su
mount /dev/sda5 /mnt
cd /mnt
mount -o bind /dev dev
mount -o bind /proc proc
chroot . /bin/sh
grub
root (hd0,4)
setup (hd0)
quit
exit
umount proc
umount dev
cd ..
umount mnt

Zrestartowałem maszynkę, pojawił się Grub, wybrałem Ubuntu, wystartowało. Synaptic właśnie aktualizuje jakąś setkę pakietów. Jak na razie idzie nieźle.

4 komentarze | Ogólne Techblog |

Wanna!

Wpis na 0. poziomie, wysłany 30 października 2008 o 10:15:26

(czyt. "łona!", ew. "chcem!")

...ze względu na oryginalność. Minimalna obudowa PC. W moich obecnych warunkach byłaby mniej praktyczna od towera (którego mogę kopać i kłaść na nim różne przedmioty), ale dla kogoś, kto ma wiecznie otwartą obudowę komputera (by obniżyć temperaturę lub grzebać w dyskach) to fajna propozycja.

3 komentarze | Ogólne |

Eee BOX

Wpis na 0. poziomie, wysłany 29 października 2008 o 19:37:32

Dzisiaj nasze gospodarstwo domowe wzbogaciło się o kolejną zabawkę. Tym razem jest to maciupki Asus Eee Box (nie mylić z Eee PC), model czarny, z dyskiem 160GB o ile się nie mylę i WinXP na pokładzie. W chwili obecnej nie ma ich jeszcze zbyt wiele w naszej części globu, ale moim zdaniem to komputerki warte uwagi.

Właśnie jestem na etapie rozpakowywania, więc pełniejszą relację z wrażeń zdam gdy już go oswoję i posadzę na nim jakieś Ubuntu. Instalować będę pewnie musiał z karty SD... no nic, się zobaczy :)

5 komentarzy | Ogólne Techblog |

To martwy jogg

Wpis na 1. poziomie, wysłany 16 października 2005 o 18:00:51

Na wypadek gdyby ktoś trafił na tę stronę - ten jogg nie żyje. Nie ma sensu go śledzić. Konto istnieje bym mógł wygodniej korzystać z niektórych mechanizmów joggera. A swoje miejsce w sieci już mam (http://repo.dobremiasto.net/) i nie mam zamiaru zamieniać go na joggera. No. To chyba wszystko :)

6 komentarzy | Ogólne |