Ćwiczenia

This commit is contained in:
Filip Gralinski 2021-03-17 11:11:44 +01:00
parent 5fc8388eef
commit 7b4ef13653
1 changed files with 181 additions and 0 deletions

View File

@ -0,0 +1,181 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Opracować w języku Haskell wyspecjalizowanego robota pobierającego dane z konkretnego serwisu.\n",
"\n",
"Punkty: 80 (domyślnie - niektóre zadanie są trudniejsze, wówczas podaję osobno liczbę punktów)\n",
"\n",
"Ogólne zasady:\n",
"\n",
"* pobieramy informacje (metadane) o plikach PDF, DjVU, JPG itp, ale nie same pliki,\n",
"* nie pobierajmy całego serwisu, tylko tyle, ile trzeba, by pobrać metadane o interesujących nas zasobach,\n",
"* interesują nas tylko teksty polskie, jeśli nie jest to trudne, należy odfiltrować publikacje obcojęzyczne,\n",
"* staramy się ustalać datę z możliwie dużą dokładnością.\n",
"\n",
"Sposób pracy:\n",
"\n",
"0. Pobrać Haskell Stack\n",
"\n",
"~~~\n",
"curl -sSL https://get.haskellstack.org/ | sh -s - -d ~/bin\n",
"~~~\n",
"\n",
"Na fizycznych komputerach wydziałowych są błędnie ustawione prawa dostępu na dyskach sieciowych, Haskell Stack musi działać na fizycznym dysku:\n",
"\n",
"~~~\n",
"rm -rf /mnt/poligon/.stack\n",
"mkdir /mnt/poligon/.stack\n",
"mv ~/.stack ~/.stack-bak # gdyby już był... proszę się nie przejmować błędem\n",
"ln -s /mnt/poligon/.stack ~/.stack\n",
"~~~\n",
"\n",
"1. Pobrać repozytorium:\n",
"\n",
"~~~\n",
"git clone https://git.wmi.amu.edu.pl/filipg/twilight-library.git\n",
"~~~\n",
"\n",
"2. Wypchnąć na początek do swojego repozytorium (trzeba sobie najpierw założyć to repozytorium na <https://git.wmi.amu.edu.pl>)\n",
"\n",
"~~~\n",
"cd twilight-library\n",
"git remote set-url origin git@git.wmi.amu.edu.pl:YOURID/twilight-library\n",
"git push origin master\n",
"git remote add mother git://gonito.net/twilight-library\n",
"~~~\n",
"\n",
"3. Zobacz, czy przykładowy robot dla strony z „Alamanachem Muszyny” działa:\n",
"\n",
"~~~\n",
"~/bin/stack install # może trwać długo za pierwszym razem\n",
"~/bin/stack exec almanachmuszyny\n",
"~~~\n",
"\n",
"\n",
"W razie problemów z instalacją:\n",
"\n",
"~~~\n",
"sudo apt install libpcre3 libpcre3-dev\n",
"~~~\n",
"\n",
"3. Opracuj swojego robota wzorując się na pliku `almanachmuszyny.hs`.\n",
" (Ale dodaj swój plik, nie zmieniaj `almanachmuszyny.hs`!)\n",
"\n",
"4. Dopisz specyfikację swojego robota do `shadow-library.cabal`.\n",
"\n",
"5. Pracuj nad swoim robotem, uruchamiaj go w następujący sposób:\n",
"\n",
"~~~\n",
"~/bin/stack install\n",
"~/bin/stack exec mojrobot\n",
"~~~\n",
"\n",
"(Tzn. nie nazywaj go „mojrobot”, tylko użyj jakieś sensownej nazwy.)\n",
"\n",
"6. Jeśli publikacja (np. pojedynczy numer gazety) składa się z wielu plików, powinien zostać wygenerowany jeden\n",
"rekord, w `finalUrl` powinny znaleźć się URL do poszczególnych stron (np. plików JPR) oddzielone ` // `.\n",
"\n",
"7. Po zakończeniu prac prześlij mejla do prowadzącego zajęcia z URL-em do swojego repozytorium.\n",
"\n",
"Lista serwisów do wyboru (na każdy serwis 1 osoba):\n",
"\n",
"1. [Teksty Drugie](http://tekstydrugie.pl)\n",
"2. [Archiwum Inspektora Pracy](https://www.pip.gov.pl/pl/inspektor-pracy/66546,archiwum-inspektora-pracy-.html)\n",
"3. [Medycyna Weterynaryjna](http://www.medycynawet.edu.pl/archives) — również historyczne zasoby od 1945 roku, **120 punktów**\n",
"4. [Polskie Towarzystwo Botaniczne](https://pbsociety.org.pl/default/dzialalnosc-wydawnicza/) — wszystkie dostępne zdigitalizowane publikacje!, **130 punktow**\n",
"5. [Wieści Pepowa](http://archiwum2019.pepowo.pl/news/c-10/gazeta) — nie pominąć strony nr 2 z wynikami, **110 punktów**\n",
"6. [Czasopismo Kosmos](http://kosmos.icm.edu.pl/)\n",
"7. [Czasopismo Wszechświat](http://www.ptpk.org/archiwum.html)\n",
"8. [Czasopisma polonijne we Francji](https://argonnaute.parisnanterre.fr/ark:/14707/a011403267917yQQFAS) — najlepiej w postaci PDF-ów, jak np. [https://argonnaute.parisnanterre.fr/medias/customer_3/periodique/immi_pol_lotmz1_pdf/BDIC_GFP_2929_1945_039.pdf](), **220 punktów**\n",
"9. [Muzeum Sztuki — czasopisma](https://zasoby.msl.org.pl/mobjects/show), **220 punktów**, publikacje, teksty, czasopisma, wycinki\n",
"10. [Wiadomości Urzędu Patentowego](https://grab.uprp.pl/sites/Wydawnictwa/WydawnictwaArchiwum/WydawnictwaArchiwum/Forms/AllItems.aspx)\n",
"11. [Czas, czasopismo polonijne](https://digitalcollections.lib.umanitoba.ca/islandora/object/uofm:2222545), **140 punktów** S.G.\n",
"12. [Stenogramy Okrągłego Stołu](http://okragly-stol.pl/stenogramy/), **110 punktów**\n",
"13. [Nasze Popowice](https://smpopowice.pl/index.php/numery-archiwalne)\n",
"14. [Czasopisma entomologiczne](http://pte.au.poznan.pl/)\n",
"15. [Wiadomości matematyczne](https://wydawnictwa.ptm.org.pl/index.php/wiadomosci-matematyczne/issue/archive?issuesPage=2), **120 punktow**\n",
"16. [Alkoholizm i Narkomania](http://www.ain.ipin.edu.pl/archiwum-starsze.html)\n",
"17. [Czasopismo Etyka](https://etyka.uw.edu.pl/tag/etyka-562018/), O.K.\n",
"18. [Skup makulatury](https://chomikuj.pl/skup.makulatury.prl), **250 punktów**\n",
"19. [Hermes](https://chomikuj.pl/hermes50-1) i https://chomikuj.pl/hermes50-2, **250 punktów**\n",
"20. [E-dziennik Województwa Mazowieckiego](https://edziennik.mazowieckie.pl/actbymonths) **150 punktów**\n",
"21. [Czasopismo Węgiel Brunatny](http://www.ppwb.org.pl/wegiel_brunatny)\n",
"22. [Gazeta GUM](https://gazeta.gumed.edu.pl/61323.html)\n",
"23. [Nowiny Andrychowskie](https://radioandrychow.pl/nowiny/)\n",
"24. [Kawęczyniak](http://bip.kaweczyn.pl/kaweczyn/pl/dla-mieszkanca/publikacje/archiwalne-numery-kaweczyniaka-rok-1995-2005/kaweczyniaki-rok-1997.html)\n",
"25. [Zbór Chrześcijański w Bielawia](http://zborbielawa.pl/archiwum/)\n",
"26. [Gazeta Rytwiańska](http://www.rytwiany.com.pl/index.php?sid=5)\n",
"27. [Nasze Popowice](https://smpopowice.pl/gazeta/2005_12_nasze-popowice-nr_01.pdf)\n",
"28. [Echo Chełmka](http://moksir.chelmek.pl/o-nas/echo-chelmka)\n",
"29. [Głos Świdnika](http://s.bibliotekaswidnik.pl/index.php/archwium/116-glos-swidnika) **100 punktów**\n",
"30. [Aneks](https://aneks.kulturaliberalna.pl/archiwum-aneksu/) **90 punktów**\n",
"31. [Teatr Lalel](http://polunima.pl/teatr-lalek)\n",
"32. [Biuletyn Bezpieczna Chemia](https://www.pipc.org.pl/publikacje/biuletyn-bezpieczna-chemia)\n",
"33. [Głos Maszynisty](https://zzm.org.pl/glos-maszynisty/)\n",
"34. [Kultura Paryska](https://www.kulturaparyska.com/pl/index), całe archiwum z książkami i innymi czasopismami, **180 punktów**\n",
"35. [Gazeta Fabryczna - Kraśnik](https://80lat.flt.krasnik.pl/index.php/gazeta-fabryczna/) **120 punktów**\n",
"36. [Artykuły o Jujutsu](http://www.kobudo.pl/artykuly_jujutsu.html)\n",
"37. [Wycinki o Taekwon-Do](https://www2.pztkd.lublin.pl/archpras.html#z1996)\n",
"38. [Materiały o kolejnictwie](https://enkol.pl/Strona_g%C5%82%C3%B3wna) **180 punktów**\n",
"39. [Centralny Instytut Ochrony Pracy](http://archiwum.ciop.pl/), znaleźć wszystkie publikacje typu <http://archiwum.ciop.pl/44938>, wymaga trochę sprytu **130 punktów**\n",
"40. [Biblioteka Sejmowa - Zasoby Cyfrowe](https://biblioteka.sejm.gov.pl/zasoby_cyfrowe/), **200 punktów**\n",
"41. [Elektronika Praktyczna](https://ep.com.pl/archiwum), te numery, które dostępne w otwarty sposób, np. rok 1993\n",
"42. [Litewska Akademia Nauk](http://www.mab.lt/), tylko materiały w jęz. polskim, takie jak np.\n",
" <https://elibrary.mab.lt/handle/1/840>, **170 punktów**\n",
"43. [Litewska Biblioteka Cyfrowa](https://www.epaveldas.lt), wyłuskać tylko materiały w jęz. polskim, **190 punktów**\n",
"44. [Czasopisma Geologiczne](https://geojournals.pgi.gov.pl), **120 punktów**\n",
"45. [Czasopisma PTTK](https://www.czasopisma.centralnabibliotekapttk.pl/index.php?i3), **120 punktów**\n",
"46. [Czasopisma Polskiego Towarzystwa Dendrologicznego](https://www.ptd.pl/?page_id=7), **100 punktów**\n",
"47. [Kilka przedwojennych książek](https://dziemiela.com/documents.htm)\n",
"48. [Historia polskiej informatyki](http://klio.spit.iq.pl/a4-wyroby-polskiej-informatyki/a4-2-sprzet/) - wyjątkowo bez datowania\n",
"49. [Zeszyty Formacyjne Katolickiego Stowarzyszenia „Civitas Christania”](http://podkarpacki.civitaschristiana.pl/formacja/zeszyty-formacyjne/), tylko niektóre pliki można zdatować\n",
"50. [Józef Piłsudski Institute of America](https://archiwa.pilsudski.org/) - **220 punktów**\n",
"51. [Prasa podziemna — Częstochowa](http://www.podziemie.com.pl), również ulotki i inne materiały skanowane - **180 punktów**\n",
"52. [Tajemnica Atari](http://krap.pl/mirrorz/atari/horror.mirage.com.pl/pixel/), plik ZIP z DjVu\n",
"\n",
"\n",
"### F.A.Q.\n",
"\n",
"**P: Nie działają strony z protokołem https, co zrobić?**\n",
"\n",
"O: Trzeba użyć modułu opartego na bibliotece curl. Paczka Ubuntu została zainstalowana na komputerach wydziałowych. Na\n",
"swoim komputerze możemy zainstalować paczkę libcurl4-openssl-dev, a\n",
"następnie można sobie ściągnąć wersję twilight-library opartą na libcurl:\n",
"\n",
" git fetch git://gonito.net/twilight-library withcurl\n",
" git merge FETCH_HEAD\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}