[PL] Wiki-konkurs – finał (ostatnia aktualizacja)


No i oczywiście nie mogło być tak, żebym ten konkurs przeprowadził idealnie.
Gdzieś faktycznie w mojej poczcie umknął mi program Arkadiusza Benedykta.

Już swoją winę nadrabiam i skontaktuję się z tobą mailem w sprawie nagrody 🙂

Dla wszystkich zainteresowanych oto wersja Arka i sam autor:

image

Z luźnych wniosków pokonkursowych to, co głównie wszyscy zauważyliśmy to:
1) Wiki ma w miarę ustandardowany układ adresów internetówych, można by się pokusić o wykorzystanie szablonów adresów z WCF 3.5
2) Wiki wykorzystuje XHtml więc można się pokusić o wykorzystanie Linq for Xml
3) Wiki _nie_ma_ żadnego API, do którego można by się podłączyć (RSS, Webservices)
4) Wiki faworyzuje jedną przeglądarkę w kwestii pobierania kontentu? Tutaj średnio chce mi się wierzyć, że rozwiązanie z nagłówkami Firefox'a to jedyne rozwiązanie, skoro normalnie w przeglądarce te strony się wyświetlają. Może serwer wikipedii potrzebuje poprawnych nagłówków identyfikujących znane mu przeglądarki. Ktoś próbował z kompletnym nagłówkiem IE?

-
Updated: 2008-01-29 - dodano zdjęcie ostatniego zwycięzcy.

Technorati Tagi: ,,

Comments (18)

  1. macbirdie says:

    Myślę że autor oryginalnej porady z User Agent po prostu miał firefoksa i zaproponował taki identyfikator. Sprawdzę wieczorem z UA IE7 i Opery – podejrzewam że problemów nie będzie.

    Wikipedia może wykrywa "spiderowanie" przez boty i blokuje przechodzenie do haseł zawierających więcej linków (głównie artykuły rozwijające termin występujący w różnych dziedzinach).

  2. No właśnie też mi się tak wydaje. Co do wykrywania botów – może tak być, aczkolwiek wtedy tak prosto "zhakować" się tego by nie dało i błędami rzucało by częściej. Mam nadzieję, że tych naszych programików nikt tam po drugiej stronie jako atak DoS nie potraktuje 🙂

  3. Łukasz says:

    Śpieszę z wyjaśnieniami a propos przeglądarki. Otóż .NET wysyłając domyślne zapytanie – bez nagłówków – nie podaje User-Agent, a wikipedia czasem o niego prosi, a jak nie dostaje to zwraca "403" – "Please provide a User-Agent header". Nie rozumiem tylko dlaczego czasem akceptuje brak tego nagłówka, czasem nie.

    Gratuluje Arku!:)

  4. macbirdie says:

    Nagłówek

    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 3.5.21022)

    nie spotyka się z obrzydzeniem Wikipedii. 🙂

  5. Szymon says:

    Cześć,

    Mnie udało się skończyć program dopiero wczoraj więc jest to już praca pozakonkursowa. Niestety pogrążyło mnie użycie zbyt wielu nowinek na raz. Ale było warto bo trochę się przy okazji dowiedziałem.

    Moje rozwiązanie można pobrać tutaj (instrukcje są w Readme.txt): http://cid-4c7ec0c2176a0b0d.skydrive.live.com/self.aspx/Blog/SixDegreesOfWikipedia_1_0.zip

    Jeszcze raz gratuluję wszystkim zwycięzcą i dziękuję Danielowi za zorganizowanie fajnej zabawy – oby było więcej takich pomysłów!

    Pozdrawiam,

    Szymon

  6. Szymon says:

    A odnośnie powyższej dyskusji to Wikipedia jednak _posiada_ API z którego można odczytywać dane w XML. Zajżyjcie tutaj http://en.wikipedia.org/w/query.php

    W szczególności można poprosić o podanie linków występujących na danej stronie: http://en.wikipedia.org/w/query.php?what=links&titles=MediaWiki&format=xml

    Znalazlem to dopiero wczoraj, ale zmieniłem swój kod żeby korzystał z tego API i dzięki temu mogłem użyć do zapytań LINQ to XML. Ciekaw jeszcze jestem czy można tu zastosować "szablony adresów WCF" o których napisał Daniel. Ktoś wie jak to zrobić?

  7. Mam ten sam problem.. Co prawda wykurowałem się i wróciłem do zabawy, ale teraz wieczorami po pracy pozostaje niewiele czasu do podziału pomiędzy bycie geekiem a normalnym życiem 🙂

    Jako, że także testuje na tym projekciku dużo dla mnie nowych mechanizmów oraz upycham nowe technologie to jest ciągle in-dev :>

    Tak czy siak za moment zrobię jakąś zbiorczą stronkę z repozytorium wszystkich naszych podejść. Dzięki za wzięcie udziału w zabawie i dzięki za miłe komentarze.

  8. @rek says:

    Szymon… dzieki za API, moze sie przydac. Chociaz dziwi mnie ze "w dzisiejszych czasach" wiki niedorboilo sie jakiegos miłego web service-[a|u]

  9. @rek says:

    aaa……….. backlinks (What pages link to this page(s)) w takim razie jest szansa na duze przyspieszenie wyszukiwania 🙂

    Na szybko szkielet:

    od słowa źródłowego przejście do 2 poziomu to błysk, 3 tez nie zabiera dużo czasu( 4 i dalej to już robią się ogromne ilości stron z czego większość już idzie w tak abstrakcyjne maliny że czasem aż nieprawdopodobne)

    od słowa końcowego zatem przez backlinki IMHO warto sciągnąc też ze 2/3 poziomy i jesli z tych 2 list linkow cos dopasujemy to juz mamy przejscie 🙂 mam nadzieje ze jasno opisałem pomysł 🙂 w razie czego mogę doprecyzować 😀

  10. Z tego co na szybko zobaczyłem u Szymona, na tempo wpływa:

    1) cache – najbardziej wydajny z naszych implementacji bo bazodanowy (Arek, wspomniałeś o tym)

    Ja w swoim startupie z cache’em wykorzystałem pliki, aby ciekawskich nie zadręczać jakąkolwiek ścieżką instalacji aplikacji, tylko compile&run.

    2) znalazł APi, które "pluje" xmlem zawierającym ninimum koniecznych informacji. Nie trzeba pobierać pełnych stron i bawić się samemu. Wiki wykorzystuje XHtml, więc tak czy siak można użyć Linq for Xml (Maciek w swoim przykładzie tak robi). Download to zawsze warunek losowy w zależności od bandwith (testowałem na Orange.BE po Edge – mordęga :>)

    3) A* Pathfinding – algorytm przeszukiwania ścieżki – jeden z bardziej efektywnych w temacie.

    Optymalizować można dalej zachęcam do kontynuowania zabawy we własnym zakresie.

    Jak wspomniałem wokół tego tematu można sobie opcjonalnych zadań wymyślać. Wyszukiwanie ścieżki to dobry fundament do analizowania tak pokategoryzowanej informacji :>

    Co do szablonów, to chodzi mi oczywiście o UriTemplate. Jak ten mechanizm ugryźć opowiadałem na konferencji "Discover Visual Studio 2008" w Warszawie ostatniej jesieni. Powerpoint’a z tej sesji znajdziecie tutaj:

    http://www.dbiesiada.com/publications/NET%20Framework%20-%203.5%20v2.zip

  11. Szymon says:

    Hej,

    Pisałem już o tym wczoraj do Daniela ale nie wiem czy miał czas przeczytać maila więc napiszę jeszcze raz tutaj do wszystkich…

    Jak widać wszyscy mamy kolejne pomysły co jeszcze można byłoby zmienić czy dołożyć. Pomyślałem że fajnie byłoby połączyć siły.

    Wymyśliłem sobie że można by to rozbudować do pełnej przeglądarki Wikipedii napisanej w .NET. Przez to API można ściągać też treść stron w formacie Wiki więc myślę że bez trudu da się go skonwertować do XAML-a (myślę tu też o użyciu SCE Starter Kit). Do tego możemy dołożyć jakieś dodatkowe narzędzia jak właśnie szukanie najkrótszej ścieżki, itp.

    Proponuję żeby założyć projekt na CodePlex i wspólnie zbudować taką aplikację. Ja pewnie i tak będę się dalej nad tym pracował ponieważ potrzebuje jakiegoś poligonu doświadczalnego do testowania rozwiązania Composite WPF (Prism) szykowanego przez p&p.

    Co wy na to? Kto miałby ochotę dalej się w to bawić?

  12. @rek says:

    hm…. pomysł bardzo fajny, ale ja odpadam ze względu na czas. nawet do swojej aplikacji nie dorobiłem UI ( dlatego najciekawsze rzeczy wyrzucane są przez debug.write 🙂 )

  13. Szymon, swietny pomysl :> Jako, ze na ten moment twoj kod reprezentuje najbardziej rozbudowane stadium mozna by to wykorzystac jako bazę (jesli nie masz nic przeciwko) i sobie ustalic priorytety i dlubac dalej.

    Z czasem to chyba kazdy z nas ma kiepsko, ale skoro z zalozenia robimy to dla przyjemnosci to nikt nas nie goni :>

    Codeplex brzmi swietnie.

  14. Na spokojnie odezwę się wieczorem na maila.

  15. @rek says:

    hm…… oj Daniel, chyba mnie przekonałeś 🙂 musze tylko zdobyć VS2008 (Uczelnia powinna juz miec 🙂 God bless MSDN-AA)

  16. Łukasz says:

    Uff, wracam do życia po 2 ciężkich dniach. Inicjatywa z projektem na CodePlex bardzo fajna 😉 Jeśli ktoś mnie zechce, to ja się na to pisze. Może doświadczenia nie mam zbyt dużego, ale chętnie je podłapię 😉 Z czasem również krucho, jak u innych (dziewczyna, rodzina, szkoła..), ale wieczorek na kodzenie się pewnie znajdzie. Daniel, jeśli przejmiesz inicjatywę, to odezwij się na maila.

    Pozdrawiam.

  17. Szymon says:

    Cześć,

    Wczoraj założyłem projekt na CodePlex: http://www.codeplex.com/WikiSpider

    Projekt nie jest jeszcze opublikowany więc musicie mi podać nazwy swoich kont na CodePlex (ewentualnie sobie założyć) to was dołącze do zespołu. Na razie wrzuciłem tylko źródła mojej wersji i czekam na pomysły jak to rozbudować.

    Pozdrawiam,

    -Szymon

  18. W paru mailach ostatnio dostałem pytanie co z kwietniowo/majowym konkursem na dodatek do Visual Studio.Net

Skip to main content