czwartek, 22 kwietnia 2010

Czy jesteś wśrod 10% programistów, którzy potrafią zaimplementować wyszukiwania binarne?

Wyszukiwanie binarne rozwiązuje problem (wyszukiwania wcześniej posortowanej talbicy) poprzez manipulowaniem zakresem tablicy, w której znajduje się wyszukiwana wartość. Wstępnie zakresem jest cała tablica. Nastęnie zakres jest dzielony na dwie części i następuje sprawdzenie, czy poszukawna wartość jest mniejsza lub większa od wyznaczonego środka zakresu. Ten proces trwa do momentu gdy wartość zostanie znaleziona lub gdy zakres jest pusty.

Złożonośc obliczeniowa takiego algorytmu wynosi log(2)N.

Większośc programistów uważa, że korzystając jedynie z powyższego opisu algorytmu implementacja jest prosta. Nic bardziej mylnego. Jedyny sposób by to sprawdzić to napisać algorytm samemu bez korzystania z dodatkowych pomocy. :)

Zasady testu są następujące:
  1. Użyj dowolnego języka programowania.
  2. Żadnego wycinania, wklejania, CTRL+c, CTRL+v, itp.
  3. Nawet nie podglądaj na kod algorytmu od innych.
  4. Nie używaj bsearch() i innego typu oszustw. ;)
  5. Nie spiesz się. Czas nie gra roli.
  6. Możesz użyć jedynie kompilatora do sprawdzenia składni programu.
  7. ŻADNEGO TESTOWANIA, dopóki program nie będzie napisany od początku do końca.
Jeśli uznasz, że napisałes dobry program, porównaj go z tym linkiem.

środa, 21 kwietnia 2010

To work@home or not to work@home?

Dzisiaj chciałem podzielić się z Wami moimi przemyśleniami na temat pracy w domu (pracy zdalnej) jako programista.

Kilka lat temu zostałem zatrudniony przez portal zapewniający pasaże sklepów online. Firma nie posiadała jeszcze biura dlatego skutkiem ubocznym była konieczność - co bardzo było mi na rękę ze względu na dzienny tok studiów - pracy zdalnej.

Początki były błogie - elastyczne godziny pracy, to jest to czego każdemu szczerze życzę. Chcesz w danej chwili popracować? Pracujesz. Nie masz ochoty? Wychodzisz na miasto - wracasz po kilku godzinach i wtedy pracujesz - za zwyczaj do późna. Niby wszystko fajnie - tylko nie wiedzieć dlaczego tych pierwszych przypadków (że nie chce się pracować) było znacznie więcej. Problemem jest mobilizacja. Nie chodzi tutaj o kwestie finansowe, bo pensja była godziwa. Chodzi to zasadę: "jeśli masz coś zrobić, usiądź i poczekaj aż ci przejdzie". Ona bardzo dobrze się tutaj sprawdza.

Druga sprawa: brak obcowania z ludźmi. Może i był spokój w pokoju, brak jęczących administratorów i wpadających do pokoju Project Managerów, ale z doświadczenia pracy w wielkiej firmie powiem Wam, że nic tak nie cieszy jak piłeczka ping-pongowa rzucona przez kolegę z drugiej części biura odbijająca się od monitora i trafiająca centralnie w nos.

Trzecia sprawa: jesteś w domu! Wszystko co związane z domem kojarzy mi się z pracami domowymi oraz z odpoczynkiem a nie pracą. Ponadto, przychodzi (np. ciocia) i mówi: "O, widzę, że jesteś w domu, mógłbyś mnie zamieźć do miasta na rynek?" Odpowiedź: "Bardzo chętnie ciociu, ale pracuję." Riposta: "Jak pracujesz, przecież widze, że bawisz się komputerem.".

Myślę, że każdy znajdzie coś dla siebie z bilansu plusów-minusów pracy zdalnej w domu jako programista.

poniedziałek, 19 kwietnia 2010

Backupy, backupy, backupy...

Jest takie stare rzymskie przysłowie:
Są dwa typy ludzi: Ci, którzy robią backupy i Ci, którzy BĘDĄ robili backupy!
Nie trudno się z nim nie zgodzić. Czy może nie mieliście takiej sytuacji, w której pluliście sobie w brodę: Dlaczego nie nagrałem tego na płytkę-pendrive'a? Albo najprościej - jak robi moja wife-to-be - nie wysłałem sobie maila do samego siebie? Przecież można było tego uniknąć!

Pozwólcie, żę zaprezentuję Wam proste, super-wygodne, oczywiście darmowe i bardzo pomocne narzędzie:
Dropbox.

Podstawowa zasada działania prorgamu jest następujaca:
  1. Wybiera się katalog na swoim dysku lokalnym, który bedzie pełnił funckję dysku zapasowego.
  2. Program synchronizuje zawartość tego wybranego katalogu ze zdalnym repozytorium za każdym razem gdy wprowadzone zostaną jakieś zmiany w katalogu lub w zdalnym repozytorium.
Proste? Bardzo!

Dodatkowym atutem programu jest możliwość dostępu do danych przez zwykła stronę WWW. Dla przykładu: W naszym katalogu zapisaliśmy jakiś dokument. Katalog uległ synchronizacji i kopia dokumentu została utworzona w zdalnym repozytorium. Nasz dysk ulega poważnej awarii - przypadkowy upadek z 7 piętra - i tak 4 razy. Żeby odzyskać nasze zapasowe dane wystarczy:
  • Odwołać się do strony www Dropboxa i poprzez przeglądarkę uzyskać dostęp do dokumentu.
  • Zainstalować Dropboxa ponownie, wybrać jakiś katalog na dysku i poczekać aż zawartość się synchronizuje ze zdalnym repozytorium.
Jeśli ktoś chce poczytać więcej o wykrozystaniu Dropboxa, to odsyłam do artykułu w serwisie VBeta.

niedziela, 18 kwietnia 2010

Na pewno każdy kiedyś miał styczność z programami typu "portable". Dla przypomnienia aplikacje portable to takie, które nie wymagają instlacji w systemie, a co za tym idzie mogą być uruchamiane z urządzeń przenośnych (stąd "portable").
Czyż to nie jest wygoda? Zamiast tracić czas na instalowanie jakiejś aplikacji - powiedzmy Adobe Photoshop - która będzie zajmowała na dysku miejsce wystarczy podłączyć pendrive'a ze źródłem aplikacji i uruchomić ją dwoma kliknięciami. Wygodne i poręczne.

Warto zapoznać się ze zbiorem apliakcji portable prezentowanym przez serwis VBeta.pl. Znajdziecie tam listę 13 aplikacji portable do czyszczenia komputera z wirusów i innych robaczków.

sobota, 17 kwietnia 2010

Coś ze sportu - NBA Rulez!

Pewnie nie każdy się interesuje koszykówką i to zrozumiałe - nie kazdy jest doskonały ;)

Ale wszystkim którym nie jest obojętne dobre widowisko sportowe i emocje sięgające zenitu, GORĄCO POLECAM obejrzeć poniższy filmik z TOP 10 PLAYS of the 2009/2010 NBA Season. Ludziska, naprawdę warto.


Tym, którzy się interesują tym pieknym sportem pragnę przypomnieć, że jutro zaczynają się Playoffy 2010.
W tym w 1 rundzie finałów spotkają się następujące zespoły:
  • Los Angeles Lakes vs. Oklahoma City Thunder
  • San Antonio Spurs vs. Dallas Mavericks
  • Portland Trail Blazers vs. Phoenix Suns
  • Utah Jazz vs Denver Nuggets
  • Chicago Bulls vs. Cleveland Cavaliers
  • Charlotte Bobcats vs. Orlando Magic
  • Milwaukee Bucks vs. Atlanta Hawks
  • Miami Heat vs. Boston Celtics 

Może ktoś wytypuje zwycięzców? Zapraszam do komentowania.

piątek, 16 kwietnia 2010

Nowości w GMailu

W usłudzie GMail od firmy Google pojawiło się kilka dodatkowych udogodnień dla wszystkich korzystających z tej - moim skromnym zdnaiem - najlepszej usługi pocztowej przez WWW.

Pierwszy feature - "drag&drop" to umożliwienie przenoszenia plików z pulpitu do wiadomości e-mail jako załącznik. Identyczna funkcjonalność pojawiła się już wczesniej w Google Wave. Ograniczenie wielkości plików to 25 MB oraz dodatkowo póki co z tej funkcjonalności mogą skorzystać jedynie osoby eksplorujące internet przy pomocy Firefoxa 3.6 i Google Chrome 4+.

Drugi feature to integracja Gmaila z Kalendarzem Google. Od dzisiaj do każdej wiadomości można w prosty sposób dołączyć zaproszenie do wydarzenia. Wystarczy skorzystać z linka "Zaproszenie", które znajduje się ppod polem tematu wiadomości.

źródło: Webinside.pl

środa, 14 kwietnia 2010

Czy warto korzystać z mobilnego internetu w komórce?

Dopóki nie zacząłem pracować nad serwisami mobilnymi w lajt.onet.pl nie zdawałem sobie sprawy z tego jak wiele możliwości i jak wiele frajdy daje korzystanie z internetu w komórkach. :) ...najlepiej jak to jeszcze jest za darmo, ale o tym za chwilke.

Prawie każdy ceniony się serwis internetowy posiada swoja kopie-odpowienik na urządzenia mobilne, żeby każdy i z dowolnego miejsca na ziemi, mógł przy użyciu telefonu komórkowego - bo kto teraz, oprócz mojego dziadka - nie chodzi wszędzie z telefonem komórkowym - sprawdzić pocztę, wiadomości, wynik meczu, lub ile wzrostu miał Lech Kaczyński wcześniej zakładając się o to z kumplem...

Zabawa jest naprawdę przednia, telefony poręczne z coraz większymi wyświetlaczami. Jednak w Polsce mamy jeden mankament: Internet mobilny jest nadal bardzo drogi. Osoby, które prywatnie chciałyby korzystać z uroków mobilnego dostępu do netu muszą liczyć się, że koszta są wysokie. Mimo iż za 1MB danych płaci się naprawde symboliczne grosze, to na wszystkich stronach coraz więcej jest grafiki, JS i innych wodotrysków, za ściągnięcie których po prostu trzeba zapłacić. Po 15 minutach szperania po wikipedii, onecie czy nawet m.google.com można się okazać, że wydaliśmy na to kilka złotych.
Co warto przeglądać na komórkach?
Przedewszystkim zależy to oczywiście od twoich zainteresowań - to logiczne. Pytanie brzmi: Od czego zacząć? Warto zaczepić sie najpierw o jakiś portal, który zapewni nam szybki dostęp do informacji, np lajt.onet.pl.
Powiedzmy, że chcemy np znaleźć coś na temat koszykówki NBA. Wchodzimy na lajt.onet.pl, następnie do kategorii Sport, potem koszykówka, a potem NBA. Przypominam, że za każdym razem jak ładuje się nowa strona operator telekomunikacyjny zabiera nam nasze grosze. Dlatego jak już dotrzemy tam gdzie znajdują się interesujące nas informacje warto utworzyć sobie w telefonie zakładkę/skrót do tej strony.
Bardzo bogaty zbiór serwisów na komórki posiada google. Wystarczy wpisać adres google.com, a w komórkowej przeglądarce uruchomi się mobilna wersja serwisu. Wikipedia, Twitter, Facebook - tu również warto zaglądnąć używając komórki.
A jak zredukować koszty / korzystać za darmo z internetu w komórce?
Proste dwa sposoby:
  1. Wybrać plan taryfowy zapewniający darmowy dostęp do sieci przez komórkę.
  2. Upewnić się, że telefon posiada możliwość połączenia z internetem przez Wi-Fi.
Jeśli chodzi o ten drugi sposób, to coraz większa ilość komórek posiada obsługę Wi-Fi. Co wtedy zrobić? Wystarczy rozglądnąć się w około i poszukać czegoś takiego jak hotspot - to takie miejsce np, w restauracji, kawiarni, dworcu, itp. gdzie można za friko połączyć się z netem przez Wi-Fi. Jak już znajdziemy hotspota, to najlepiej zamówić sobie kawę i rozkoszować się serfowaniem po necie korzystając z własnego telefonu komórkowego.

piątek, 9 kwietnia 2010

Dyplom i co dalej?

Pozwoliłem sobie zrobić dłuższą przerwę od wszystkiego, bo ostatnio sporo się podziało. TAK! Zostałem marigstrem i inzynierem za jednym zamachem. Z wielką radością mogę powiedzieć wszystkim, że... zupełnie nic to w moim życiu nie zmieniło. Jeden kolega pocieszał mnie, że to kiedyś będzie procentować, jednak w naszym bardzo rzemieślniczym zawodzie śmiem twierdzić, iż NIE!
Wyższe zarobki?
Oczywiście, że nie. Przecież każdy pracodawca zamiast zapłacić 500 PLN więcej wykwalifikowanemu, dyplomowanemu inżynierowi, będzie wolał zatrudnić na jego miejsce dwóch młodych studentów, którzy będą zapewne bardziej wydajni, mniej kręcący nosem i wyrzymalsi. Brutalne? Ale prawdziwe.
Co zatem zrobić, żeby dotychczasowa nauka nie poszła w las?
 Odpowiedzi jest kilka. Ja zaprezentuję dwie najprostsze:
  1. Ucz się dalej.
  2. Poszukaj pracy na innym stanowisku i licz na to że uda Ci się naciągnąć pracodawcę na to, że będziesz równie wydajny co dwóch tanich młodych studentów.
Uczyć się?
Owszem! Masz już tytuł - wykorzystaj go jako przepustkę na studia podyplomowe. Teraz magiczna zasada: nie kontynuuj tego fachu który już masz - i tak nikt tego nie doceni. Zrób dyplom z czegoś zupełnie nie związanego z tym, czego uczyłeś się do tej pory. Takie combo pozwoli poszerzyć swoje horyzonty i elastyczność jeśli chodzi o rozwój zawodowy.

Drugie rozwiązanie jest na tyle naiwne, że nawet nie próbuję go rozwijać. Niemniej słuszne i bardzo pożądane.