publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
19 skomentuj »

TAGI: programowanie , google , wywiad , peter norvig

2011-06-06 12:34  |  Peter Seibel

Haker czy inżynier: jakim programistą warto być? Wywiad z Peterem Norvigiem, szefem działu rozwoju w Google

Haker czy inżynier: jakim programistą warto być? Wywiad z Peterem Norvigiem, szefem działu rozwoju w Google

Peter Norvig jest z natury człowiekiem o szerokich horyzontach i hakerem. Kiedyś napisał program do znajdowania w dziennikach wyszukiwania serwisu Google trzech kolejnych zapytań jednego użyt­kownika składających się na haiku (oto jedno z tych, które najbardziej utkwiły mi w pamięci: „java ECC / java elliptical curve / playboy faq").Dzięki pracy w Google, NASA i Junglee Norvig ma doświadczenie w stosowaniu „hakerskich" i „inżynieryjnych" technik budowania oprogramowania, a w wywiadzie opowiada o zaletach oraz wadach obu tych podejść. Ponieważ jest byłym wykładowcą nauk komputerowych, a obecnie pracuje w jednej z największych na świecie firm zajmujących się oprogramowaniem, ma też ciekawy punkt widzenia na relacje między akademickimi naukami komputerowymi i praktyką ze świata przemysłu. Warto przeczytać ten wywiad.

Zgarnij książkę "Sztuka kodowania. Sekrety wielkich mistrzów" Petera Seibela!

Tak, możesz mieć tę fascynującą pozycję. Wystarczy, że weźmiesz udział w naszym konkursie. Co trzeba zrobić? Odpowiedz na poniższe pytania, wyślij je na adres redakcja@webhosting.pl, w tytule wpisz "Kocham programowanie" i licz na to, że Twoje odpowiedzi będą poprawne.

1. Jaki był pierwszy program napisany przez Norviga?
2. Jaka jest wg Norviga najważniejsza oprócz programowania umiejętność, którą powinien rozwijać programista?
3. W jakich sytuacjach, będąc częścią zespołu programistów, lepiej jest pracować razem, a kiedy osobno?

Do dzieła!

Uwaga: jako że cały czas przychodzą do nas zgłoszenia konkursowe, prosimy o cierpliwość. Konkurs trwa do poniedziałku włącznie. We wtorek ogłosimy zwycięzcę i wyślemy książkę!

Wyniki konkursu

Bardzo wszystkim dziękujemy za udział w naszym małym konkursie. Liczba zgłoszeń była naprawdę imponująca, dlatego przedłużyliśmy nieco czas jego trwania. W ocenie redakcji najlepszą odpowiedź na zadane pytania udzielił (werble):

  • Paweł Patyk.

Uprzejmie prosimy Pawła o kontakt z redakcją o podanie danych do wysłania książki. Dziękujemy wszystkim raz jeszcze za udział w naszej zabawie i zapraszamy na naszą stronę na Facebooku, gdzie ogłosiliśmy właśnie nowy konkurs związany z magiczną liczbą 4 tys. fanów!

Pozdrawiamy wszystkich Czytelników,
redakcja Webhosting.pl

Kiedy nauczyłeś się programować?

W szkole średniej. Szkoła miała komputer PDP-8, tak mi się wydaje, i zapisałem się na kurs. Zaczęliśmy od programowania w języku BASIC i to był mój początek.

W którym to było roku?

Skończyłem średnią szkołę 1974, dlatego musiał to być rok 1972 lub 1973. Pamiętam z tych czasów parę rzeczy. Przykładowo nauczycielkę, która próbowała nauczyć nas tasowania talii kart. Jej algorytm działał tak: użyj generatora liczb losowych do wyboru dwóch miejsc, a następnie zamień karty z tych pozycji miejscami; przechowuj wektor bitowy z informacją o przeniesionych kartach i kontynuuj proces do czasu zamiany wszystkich kart. Pamiętam, że pomyślałem wtedy: „To bez sensu. Musi to być najgłupsze rozwiązanie na świecie. Algorytm może działać w nieskończoność, ponieważ może znaleźć się jedna para, której nigdy nie wybierzemy".

Czy zaraz po tym, jak nauczycielka opisała algorytm, uznałeś, że jest błędny? A może najpierw przez pewien czas eksperymentowałeś z nim, a dopiero potem stwierdziłeś: „Jejku, to strasz­nie dużo operacji"?

Chyba od razu zauważyłem problem. Trudno stwierdzić, co naprawdę myślałem, ale chyba od razu dostrzegłem, że algorytm może nie zakończyć pracy. Nie jestem pewien, czy równie dobrze zdawałem sobie sprawę z oczekiwanego czasu działania.

Pamiętam też, że znalazłem na strychu stare numery „Scientific American" ojca. Był w nich artykuł Christophera Stracheya na temat inżynierii oprogramowania. Strachey pisał, że zaczniemy używać języków wyższego poziomu. Wymyślił język, dla którego nigdy nie utworzono kompilatora. Był to język „papierowy". Strachey stwierdził, że napisze w tym języku program do gry w warcaby. Pamiętam, jak go czytałem. Był to pierwszy skomplikowany program, z którym się zapoznałem - w szkole uczyliśmy się tylko, jak tasować karty i robić podobne rzeczy. Niedawno ponownie przeczytałem artykuł i pierwszą rzeczą, jaką zauważyłem, było to, że znajduje się w nim błąd. To wspaniałe uczucie, ponieważ wiesz, że to Christopher Strachey i powinien wiedzieć, co robi.

Był to więc pierwszy ciekawy kod, który przeczytałeś. Jaki pierwszy interesujący program napisałeś?

Chyba był to program Game of Life. Napisałem go w ramach zadania domowego. Szybko je ukończyłem, a wtedy - oczywiście - nie mieliśmy dobrych wyświetlaczy. Nie posiadałem trzydziestocalowego monitora - miałem dalekopis z żółtym papierem. Stwierdziłem, że szkoda drukować jedno małe pole (mieliśmy chyba użyć pola dziesięć na dziesięć kratek), a potem następne i jeszcze następne. Dlatego stwierdziłem, że wydrukuję pięć pokoleń, jedno za drugim. Pamiętam, że w języku BASIC nie można było stosować tablic trójwymiarowych, a z jakiegoś powodu nie mogłem nawet użyć zestawu tablic dwuwymiarowych. Prowadziło to do wyczerpania pamięci lub czegoś w tym rodzaju. Dlatego musiałem wymyślić, jak utworzyć pięć lub sześć potrzebnych tablic dwuwymiarowych. Wtedy odkryłem pola bitowe.

Z uwagi na ograniczenia pamięci utworzyłeś własną pamięć na dużą ilość danych. Czy ktoś nauczył cię używać tablic bitów i wymyśliłeś, jak je zastosować, czy może przeglądałeś podręcznik i stwierdziłeś: „O, popatrzcie, mamy tu instrukcje PEEK i POKE" lub coś w tym rodzaju?

No cóż, zapisywałem w każdej lokalizacji zero lub jedynkę, a gdzie indziej musiałem zapisać więcej danych. Stwierdziłem: „Och, zapiszę inne liczby tutaj". W zasadzie nawet nie pamiętam, czy użyłem pamięci bitowej. Możliwe, że stosowałem cyfry i to raczej dziesiętne niż dwójkowe, ponieważ nikt nie przedstawił nam systemu dwójkowego w ciekawy sposób. Potem dodałem różne możliwości, np. sprawdzanie, czy liczby się nie powtarzają, a jeśli tak, to w jakim cyklu. Nie można było tego zrobić przy przechowywaniu tylko jednego wcześniejszego pokolenia.

W college'u studiowałeś przedmioty komputerowe, ale nauki komputerowe nie były twoim głównym kierunkiem, prawda?

Kiedy zaczynałem, kursy komputerowe były prowadzone na wydziale matematyki sto­sowanej. Zanim ukończyłem college, powstał wydział nauk komputerowych, ale moim głównym kierunkiem pozostała matematyka. Miałem wrażenie, że jeśli chcę ukończyć nauki komputerowe jako główny kierunek, muszę jako główny kierunek studiować IBM. Trzeba było poznać ich asem­bler, ich system operacyjny 360 itd. Nie uznałem tego za ciekawe. Niektóre kursy mi się podobały, dlatego się na nie zapisałem, ale nie chciałem brać udziału we wszystkich wymaganych zajęciach.

Po college'u przez dwa lata pracowałem w firmie programistycznej w Cambridge. Po tych dwóch latach stwierdziłem: „Szkoły zacząłem mieć dość po czterech latach, a pracy - po dwóch, może więc dwa razy bardziej lubię szkołę?".

Co robiłeś w tej firmie?

Jej głównym produktem był pakiet narzędzi do projektowania oprogramowania. Firma prowadziła też doradztwo z różnych obszarów oprogramowania. Założyciele pracowali w Draper Labs w Cambridge w ramach misji Apollo i nad podobnymi projektami. Mieli znajomości w lotnictwie i otrzymywali zlecenia od rządu. Posiadali swoją wizję projektowania oprogramowania. Nigdy w nią nie wierzyłem, ale była ciekawa.

Pamiętam, że jeden z projektów w tej firmie wymagał napisania narzędzia do rysowania diagra­mów przepływu. Pomysł polegał na tym, że narzędzie miało analizować program i generować dla niego diagram przepływu. Było to idealne rozwiązanie, ponieważ właśnie w ten sposób ludzie korzystają z takich diagramów. Należy je przygotować na początku, ale nikt tego nie robi - tworzymy je po napisaniu kodu. Narzędzie było pomysłowe, ponieważ miało specyficzną gramatykę częściową, dlatego działało dla programów niepoprawnych składniowo i ukrywało elementy, których nie potrafiło przetworzyć. Narzędzie musiało umieć przetwarzać instrukcje IF, ponieważ składały się one na różne bloki, natomiast inne elementy miało jedynie umieszczać w blokach. Uzyskaliśmy kontrakt na opracowanie tego programu. Zleceniodawca określił, że narzędzie ma działać w systemie Unix. Pożyczyliśmy więc maszynę z uczelni MIT i użyliśmy do budowania kompilatora wszystkich uniksowych narzędzi - narzędzia yacc i innych. W ostatniej chwili zleceniodawca stwierdził, że chcą zainstalować program w systemie VMS. Nagle okazało się, że nie mamy dostępu do narzędzia yacc. Uznaliśmy jednak, że nie stanowi to problemu, ponieważ go nie potrzebujemy. Narzędzie to było potrzebne tylko do wygenerowania tablic, co już zrobiliśmy.

Dopóki gramatyka się nie zmieni, wszystko będzie w porządku.

To prawda. Udostępniliśmy więc produkt, a odbiorca był zadowolony. Jednak wtedy - oczywiście - gramatyka się zmieniła, a my nie mieliśmy już dostępu do żadnych maszyn z Uniksem. Ostatecznie musiałem poprawiać gramatykę przez domyślanie się, co oznaczają tablice. Odbywało się to tak: „Tu mamy przejście do innego stanu - w porządku, wymyślę nowy stan i przejdę w zamian właśnie do niego".

Czy rzeczywiście było to odpowiednie rozwiązanie? Czy nie pomyślałeś o tym, aby po prostu napisać nowy parser?

Prawdopodobnie powinienem był tak zrobić, ale chodziło tylko o tę jedną małą poprawkę.

Czy nie wpadłeś przez to w pułapkę związaną z tym, że odbiorca co kilka tygodni zgłaszał nową zmianę w gramatyce?

Wtedy poszedłem na studia doktoranckie. Ktoś inny musiał zmierzyć się z tym problemem i nie wiem, co się stało.

Nie było to już twój problem. Uzyskałeś tytuł doktora. Czy zmieniłbyś coś w sposobie, w jaki uczyłeś się programowania?

Ostatecznie trafiłem do środowiska komercyjnego, dlatego mogłem wcześniej robić więcej rzeczy z tego obszaru. Nauczyłem się ich, jednak dużo czasu spędziłem w college'u i na studiach doktoranckich. Sprawiało mi to wiele frajdy, dlatego niczego nie żałuję.

Czego musiałeś nauczyć się o programowaniu w środowisku komercyjnym?

Musiałem przestrzegać terminów i dbać o zadowolenie członków zespołu, klientów oraz menedżerów. Na studiach doktoranckich nie trzeba tego robić. Wystarczy od czasu do czasu spot­kać się z opiekunem.

Chyba największą zmianą było przejście od samodzielnej pracy do działania w zespole i poznawa­nie interakcji między ludźmi. Z tym zwykle nie spotykamy się na studiach. Wydaje mi się, że nie­które uczelnie zaczynają wprowadzać do programu zajęcia z tego obszaru. Kiedy byłem na studiach, pracę zespołową nazywano oszukiwaniem.

Jakie umiejętności, oprócz pisania kodu, powinny rozwijać osoby, które chcą pracować w branży informatycznej?

Przede wszystkim komunikowanie się z innymi. Ważna jest umiejętność zrozumienia oczekiwań klienta - ustalenia, co trzeba utworzyć i czy przygotowane rozwiązanie jest poprawne. Trzeba umieć komunikować się z odbiorcami oraz innymi członkami zespołu. Istotne są też interakcje z osobami zajmującymi wyższe stanowiska w firmie i z klientami. Są to różne relacje społeczne wymagające odmiennych umiejętności.

Czy obecnie programowanie stało się zadaniem bardziej społecznym niż kiedyś?

Tak uważam. Etapy programowania były kiedyś bardziej rozdzielone od siebie. W dawnych czasach stosowano przede wszystkim przetwarzanie wsadowe, dlatego interfejs był znacznie prostszy. Można było używać modelu wodospadu i stwierdzić, że danymi wejściowymi ma być np. talia kart, a danymi wyjściowymi - przykładowo raport z daną liczbą w określonej kolumnie.

Prawdopodobnie nie był to najlepszy sposób tworzenia specyfikacji. Należało od początku częściej komunikować się z klientem. Jednak wydawało się, że poszczególne etapy są bardziej niezależne od siebie. Teraz wszystko wydaje się bardziej płynne i interaktywne, dlatego sensowniejsze jest stwierdzenie: „Zamiast od początku przygotowywać kompletną specyfikację, zbierzmy klientów i rozpocznijmy burzę mózgów".

Czy pamiętasz konkretne momenty „olśnienia", w których zauważyłeś różnice między sa­modzielną pracą a wykonywaniem zadań w zespole?

Nie wiem, czy były to konkretne momenty. Raczej zdałem sobie sprawę, że nie mogę zro­bić wszystkiego sam. Uważam, że dużą część procesu programowania można wykonać w głowie, ale nie da się w ten sposób zrobić wszystkiego - przynajmniej ja tego nie potrafię. Później trzeba polegać na innych osobach mających odpowiednie pomysły i je wykorzystać. Zacząłem myśleć: „W jaki sposób jest to prawdopodobnie zrobione?" zamiast: „Wiem, jak jest to zrobione, ponieważ sam to napisałem". Jak zrobiłbym daną rzecz, gdybym otrzymał takie zadanie? Zakładam, że tak właśnie to działa, a jeśli jest inaczej, muszę ustalić, dlaczego tak jest, a następnie odkryć, jak z tego korzystać.

Jaki sposób pracy w zespole ci odpowiadał, kiedy byłeś programistą? Czy lepiej podzielić problem, tak aby każdy otrzymał jego fragment? A może wolisz model programowania ekstremal­nego, kiedy wszystko jest pisane w parach, a kod jest własnością całego zespołu?

Bardziej odpowiada mi podział pracy. Steve Yagge napisał kiedyś artykuł Good Agile, Bad Agile. Uważam, że ma rację. Przez 10% czasu naprawdę warto pracować razem, aby wszyscy rozu­mieli zadanie w ten sam sposób. Przez większość tego czasu programiści nie są w pełni efektywni.

Jeśli zespół składa się z dwóch dobrych programistów, lepiej, żeby pracowali osobno, a następnie debugowali nawzajem swój kod po zakończeniu zadania. Gorsze jest podejście: „Zgadzamy się na 50% spowolnienie pracy w zamian za dodatkową parę oczu".

Uważam, że współpraca jest ważna przy ustalaniu planu pracy. Chodzi tu o analizy problemu do rozwiązania i dodawanych funkcji. Przed rozpoczęciem pracy nie wiadomo, czym ma być produkt. Naprawdę warto wtedy pracować razem. Następnie grupa dochodzi do etapu, kiedy można powiedzieć: „W porządku, wiemy, co chcemy zrobić. Jak podzielimy pracę?". Także to warto zrobić razem. Kiedy już wiadomo, co trzeba robić, uważam, że lepiej pracować samodzielnie. Informacje zwrotne są przydatne, dlatego myślę, że każdy fragment kodu powinien przejrzeć ktoś oprócz autora, ale nie musi się to odbywać w czasie rzeczywistym, w trakcie pisania kodu.

Pamiętam pomysł mistrza programisty promowany przez IBM. Wydało mi się to najgłupszą rzeczą, jaką kiedykolwiek usłyszałem. Dlaczego ktoś miałby pracować na rzecz jednego prawdziwego programisty?

Dziwi mnie, że uważasz model mistrza programisty za tak zły pomysł. W eseju „Teach Yourself Programming in Ten Years" napisałeś, że programowanie to dziedzina, której prawdziwe opanowanie wymaga - podobnie jak inne umiejętności - około dziesięciu lat. W wielu dziedzinach obowiązuje hierarchia typu mistrz - czeladnik - uczeń. Możliwe, że nikt nie chce być uczniem, ale czy to takie dziwne, że osoba z dziesięcioletnim doświadczeniem ma robić coś innego niż ktoś świeżo po studiach?

Uważam, że najlepsza w byciu uczniem jest możliwość podpatrywania mistrza. Chciałbym częściej widzieć takie podejście. Dlatego uważam, że jest to następne zastosowanie programowania w parach. Dla początkującego naprawdę korzystne może być podglądanie kogoś o znacznie większym doświadczeniu. Dotyczy to zwłaszcza zadań, których szkoły nie uczą, np. debugowania. Każdy może nauczyć się algorytmów i tym podobnych zagadnień, ale szkoły naprawdę nie uczą debugowania. Przydatne jest podglądanie kogoś, kiedy można powiedzieć: „Nigdy bym o tym nie pomyślał".

Sądzę, że związki mistrz - uczeń rozwinęły się po części z powodu niedostatku materiałów. Jubiler miał do dyspozycji tylko niewielką ilość złota. Chirurg operuje tylko jedno serce, dlatego pracować powinna tylko najlepsza osoba, a pozostałe mają służyć pomocą. Przy pisaniu kodu jest inaczej. Mamy dostęp do wielu terminali i klawiatur. Nie trzeba ich racjonować.

«poprzednia 1 2 3 4 ... 5 następna »

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
19 skomentuj »

Komentarze

  • murwazy

    #1 murwazy® 2011-06-07 10:14:54 0

    bardzo dobry wywiad, wiecej takich!

    IP: 89.79.188.[...] Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.8.131 Version/11.11

  • dAREuS

    #2 dAREuS® 2011-06-07 10:34:04 0

    Dzięki murwazy. Będziemy się starali :).

    IP: 195.140.236.[...] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24

  • invictus
  • murwazy

    #4 murwazy® 2011-06-07 12:22:58 2

    invictus co za roznica? jaka jest szansa ze trafie na te ksiazke nie czytajac powyzszego wywiadu? nie rozumiem Twojego komentarza.

    IP: 89.79.188.[...] Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.8.131 Version/11.11

  • dAREuS

    #5 dAREuS® 2011-06-07 12:38:25 0

    Chodzi o to, że możecie to przeczytać za free u nas, co nie jest już tak oczywiste, prawda? Ja rozumiem, że w Polsce zawsze trzeba znaleźć dziurę w całym, ale może tym razem warto się pocieszyć naprawdę wyjątkowym wywiadem? Miłej lektury.

    IP: 195.140.236.[...] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24

  • invictus
  • dAREuS

    #7 dAREuS® 2011-06-07 13:42:34 1

    A ja za free chciałbym nowy samochód, takie to rodzime... Mam nadzieję, że będziemy mogli jednak tym, którzy są zainteresowani przedrukami ciekawych książek dostarczać nadal wiedzę.

    IP: 195.140.236.[...] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24

  • czytelnik2011
  • czytelnik2011
  • invictus

    #10 invictus 2011-06-07 14:07:30 1

    @czytelnik2011 źródło podaja na końcu artykułu

    @dAREuS "A ja za free chciałbym nowy samochód, takie to rodzime..." Arthur Schopenhauer napisał cytat "Są trzy fazy ujawniania się prawdy. Najpierw prawda jest ośmieszana, potem spotyka się z gwałtownym oporem, a na koniec traktowana jest jako oczywistość"

    IP: 80.51.57.[...] Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.11) Gecko/20101013 Ubuntu/9.04 (jaunty) Firefox/3.6.11

  • czytelnik2011

    #11 czytelnik2011 2011-06-07 14:10:35 0

    fakt, nie doszedlem do ostatniej strony, moj blad w tym wypadku.

    IP: 212.244.151.[...] Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0

  • dAREuS

    #12 dAREuS® 2011-06-07 14:16:35 0

    czytelnik2011 , jeśli ktoś oczekuje automatycznie wygenerowanego e-maila, a nie oczekuje nagrody i zwycięstwa w konkursie, to jest to dla nas wielce niezrozumiałe.

    invictus, Pan, którego przywołujesz słynął również z umiejętności wskazywania manipulacji w argumentach interlokutora. Twój cytat ma coś uprawomocnić, ale co? Co tutaj jest tą ośmieszaną przeze mnie prawdą?

    IP: 195.140.236.[...] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24

  • invictus
  • jacek2v

    #14 jacek2v 2011-06-07 15:07:22 1

    Niezależnie czy przedruki czy za free, czy nie za free, tekst jest dobry. Zapewne to zasługa osoby wywiadowanej, czyli Petera Norviga :)

    A to, że webhosting.pl wydłubał ten tekst z masy "shitu" za to im chwała. Portale nie służą do tworzenia nowych treści, służą do informowania, filtrowania inf. i komentowania. Właśnie filtrowania inf. i komentowanie jest decydujące o jakości portalu. HOWK :)

    IP: 77.255.61.[...] Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71 Safari/534.24

  • dAREuS

    #15 dAREuS® 2011-06-07 16:04:13 1

    invictus, przyznam, że dalej nie rozumiem, bo wcześniej zacytowałeś coś innego. Ale ok. Dla mnie nie ma problemu. Mam nadzieję, że tak naprawdę z twoim kolanem wszystko ok. Ufam też, że komuś się ten materiał jednak spodobał tak jak mnie.

    IP: 188.121.11.[...] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24

  • werian

    #16 Luke__® 2011-06-08 00:58:25 1

    Art/wywiad jest po prostu genialny, a pieniacze niech zmykają na onet, skoro poza biciem piany nie potrafią nic sensownego dodać od siebie.

    IP: 95.48.173.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24

  • rizstas

    #17 rizstas 2011-06-14 08:56:03 0

    Czy ktoś wie o co chodzi z Google? Mam jakiś nowy interfejs, że taki ajaksowy czy coś.. i nie idzie wpisać niektórych zapytań! Że sam sugeruje wszystko, od razu wypluwa wyniki, ale ogólnie to totalna żenada... WTF? Czy ja przespałem jakieś newsy na ten temat? Jak to g.... wyłączyć? Czas na zmianę wyszukiwarki?

    IP: 89.79.113.[...] Opera/9.80 (Windows NT 6.1; U; Edition Campaign 21; pl) Presto/2.8.131 Version/11.11

  • ARMed w/ SSH

    #18 ARMed w/ SSH 2011-06-16 11:41:38 0

    ooo!

    Przydatny materiał do rozważań na Webhosting. Rzadko się trafia, tym bardziej warto odnotować :)

    IP: 95.178.66.[...] Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30

  • Morpheus

    #19 Morpheus 2011-07-13 14:36:30 0

    Hacker czy inżynier

    Win-win situation

    Pytanie bez sensu, szkoda czasu na roztrząsanie.

    IP: 95.178.66.[...] Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.55 Safari/535.1

Uwaga! Możesz zarejestrować się w serwisie i w ten sposób zarezerwować swój nick oraz ominąć konieczność ciągłego odczytywania wyrazów.

Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł