Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum dla Październik, 2012

OpenStreetMap – notatki z książki

Autor: Piotr Karpiuk o 30. października 2012

Poniżej notatki z kolejnej książki o OpenStreetMap, uzupełniające notatki z poprzedniej książki.

Wprowadzenie

Tworzenie mapy świata

Wiele miast jest już w OpenStreetMap zmapowanych do poziomu szczegółowości nieosiągalnego przez produkty Google’a, Yahoo czy Microsoftu. Co więcej, dane OSM są zwykle bardziej aktualne niż jakakolwiek mapa drukowana i wiele map dostępnych w sieci.

Niektóre obszary zostały w dużym stopniu zmapowane dzięki uprzejmości firm i rządów, np. Niderlandy (duńska firma AND), USA (baza danych TIGER), podobnie Kanada czy Niemcy.

Wady OSM: projekt nie doczekał się jeszcze łatwego sposobu pokazywania zmian w danych mapy w przystępnej formie, tak aby wolontariusze widzieli co zmieniło się na ich obszarze. Ponadto, wycofywanie zmian jest obecnie bardziej kłopotliwe niż np. w Wikipedii, i często wymaga uciążliwej ręcznej pracy.

Idea współtworzenia map przez społeczność znalazła uznanie również w komercyjnych projektach, np. firma TomTom produkująca narzędzia nawigacyjne, kupiła firmę TeleAtlas (drugiego na świecie co do wielkości dostawcę danych mapowych), której program Map Share pozwala użytkownikom w ograniczonym stopniu modyfikować dane mapy. Google w 2008 roku udostępniło edytor Map Maker.

Sztuka kartografii polega głównie na wyborze właściwego zbioru obiektów z bazy danych, i podjęciu decyzji jak one powinny być reprezentowane na mapie (kolor, styl, itp.).

Światowa społeczność GISowa składa się głównie z osób używających GISów profesjonalnie. Oprogramowanie GISowe jest potężne, ale trudne do opanowania przez laików, a ponadto często sporo kosztuje.

Choć OSM nie jest GISem, istnieje kilka mostów łączących te dwa światy. Przykładowo dane OSM mogą być przekonwertowane do shapefiles lub zaimportowane do bazy danych PostGIS – oba formaty są bardzo powszechne w świecie GIS.

Czytaj więcej »

Napisany w Recenzja książki, WWW | Brak komentarzy »

OpenStreetMap

Autor: Piotr Karpiuk o 25. października 2012

Wstęp

OpenStreetMap (OSM) to opensource’owy projekt światowej geograficznej bazy danych. Docelowo ma przechowywać wszystkie geograficzne obiekty planety. Początkowo projekt skupiał się na ulicach, ale obecnie przechowywane są w nim takie obiekty jak ścieżki, budynki, drogi wodne, potoki, lasy, plaże, skrzynki pocztowe, a nawet pojedyncze drzewa. Użytkownicy chętnie dodają budki telefoniczne, przystanki autobusowe i toalety publiczne. Ścieżki dla pieszych i rowerowe są w OSM reprezentowane lepiej niż w innych bazach danych. Ogólnie jest umowa żeby w bazie umieszczać informacje o obiektach trwałych (ang. permanent geographical feature). W projekcie uczestniczą zarówno osoby prywatne jak i firmy, a sposób działania serwisu opiera się na idei crowdsourcingu, czyli wykorzystaniu Internetu do przydzielania zadań wolontariuszom i zbierania od nich wyników.

Serwis używa systemu podobnego do wiki, gdzie każdy może dodać lub edytować dowolny obiekt bazy, przy czym przechowywana jest historia edycji każdego obiektu (nawet jeśli został usunięty), dzięki czemu można np. wycofać skutki wandalizmu. OSM do przechowywania danych nie używa żadnego oprogramowania typu GIS, ale zamiast tego oferuje własną implementację i model danych nastawione na maksymalne ułatwienie crowdsourcingu. Nie ma „superużytkowników” którzy mogliby wprowadzać więcej zmian niż zwykli użytkownicy, i nie ma żadnej sztywnej, ustalonej ontologii dla wprowadzanych danych. W praktyce można mówić o schematach tagowania przyjętych przez społeczności poszczególnych krajów.

Chociaż projekt skupia się na zbieraniu danych, członkowie projektu stworzyli wiele narzędzi do tworzenia, edycji, i użycia danych OSM na różne sposoby.

Obecnie dane są udostępniane na licencji Creative Commons Attribution Share-Alike 2.0 (CC-BY-SA), ale rozważa się przejście na licencję Open Database 1.0 (ODBL).

Baza OSM jest aktualizowana częściej niż inne tego typu. W rzeczywistości, jest aktualizowana na bieżąco (zmiany są dostępne na głównej stronie projektu w ciągu kilku minut), a najnowsze zmiany zawsze są dostępne do ściągnięcia. Dla odmiany, pełna baza zwana plikiem planety jest wypuszczana co tydzień, z dziennymi łatkami. Kilka systemów GIS i pakietów renderowania danych potrafi obsłużyć dane OSM. Najlepsze pokrycie mają dane OSM dla terenów zurbanizowanych Europy Zachodniej.

Czytaj więcej »

Napisany w WWW | Brak komentarzy »

CSS 3D Clouds

Autor: Piotr Karpiuk o 23. października 2012

Sympatyczny pokaz nowych możliwości w przeglądarkach, czyli efekty 3D w kaskadowych arkuszach stylów. Kliknij obrazek, aby interaktywnie pobawić się realistycznie wyglądającymi chmurami! (Najnowsze Google Chrome lub Firefox).

Napisany w HTML5, WWW | Brak komentarzy »

Google App Engine

Autor: Piotr Karpiuk o 19. października 2012

Google App Engine (GAE, App Engine, GAE/J) to dostępna od 2008 roku chmura obliczeniowa typu PaaS (ang. Platform as a Service) będąca środowiskiem wykonania dla aplikacji webowych w centrach danych Googla. W porównaniu z innymi skalowalnymi usługami w chmurze takimi jak Amazon EC2, GAE udostępnia więcej gotowych komponentów ułatwiających i przyspieszających pisanie skalowalnych aplikacji (np. automatyczne uruchamianie nowych instancji w razie potrzeby, klastrowanie, monitoring, niezawodność, cache’owanie danych), ale jednocześnie narzuca pewne ograniczenia, przez co nie każda aplikacja nadająca się do chmury będzie pasowała do GAE. Tak więc, o ile w wielu innych chmurach użytkownik może zainstalować i skonfigurować w zasadzie każde oprogramowanie UNIXowe, App Engine zmusza deweloperów do użycia określonych języków programowania (Python, Java, lub Go), API (m.in. Full Text Search, MapReduce, OAuth, OpenID, Blobstore, Task Queue, XMPP, Mail), i frameworków. Programista GAE nie może korzystać z systemu plików w trybie zapisu, ale ma do dyspozycji mechanizm trwałego przechowywania danych w nierelacyjnej bazie BigTable (od 2011 roku można używać relacyjnej bazy danych MySQL o wielkości nie większej niż 10 GB). Jedynym sposobem wywołania akcji po stronie serwera jest protokół HTTP. Wszystko to razem utrudnia przenoszenie aplikacji do innego dostawcy i uzależnia od konkretnych technologii.

Pewnych twardych limitów nie można przekraczać:

  • ograniczenia czasowe: żądanie HTTP nie może być obsługiwane dłużej niż 60 sekund,
  • odpowiedź HTTP nie może być większa niż 32 MB,
  • rozmiar pojedynczej wartości w bazie danych nie może przekroczyć 1 MB.

Platforma GAE jest darmowa, dopóki nie przekroczy się limitów, m.in.:

  • do 1 GB przestrzeni dyskowej na aplikację,
  • do 5 mln odwiedzin stron miesięcznie,
  • do 10 aplikacji na jedno konto Google.

Czytaj więcej »

Napisany w Cloud computing | Brak komentarzy »

Instapaper, Pocket, Readability

Autor: Piotr Karpiuk o 17. października 2012

Typowy sposób użycia opisywanych dziś usług: podczas surfowania w Internecie widzimy interesujący artykuł, ale nie mamy czasu aby go w danej chwili czytać. Na pasku narzędziowym przeglądarki klikamy przycisk, który przekształca treść artykułu (pozbawioną reklam, bocznych pasków i linków nawigacyjnych typowych dla stron WWW) na pięknie sformatowanego e-booka i umieszcza go w chmurze, skąd może zostać w każdej chwili pobrany przez odpowiednią aplikację na urządzeniu mobilnym (iOS, Android, Kindle), aby później móc offline przeczytać artykuł w pociągu, autobusie w drodze do pracy, kolejce do lekarza, czy w łóżku przed snem.

Na pierwszy rzut oka wydaje się, że to rozwiązanie niewiele lepsze niż przeglądarkowe zakładki (ang. bookmarks), które ostatnimi czasy dają się łatwo synchronizować pomiędzy komputerami. Niezupełnie. Sytuacje w których mamy czas na czytanie artykułu często podpadają pod wzorzec użycia urządzeń mobilnych: czekamy na przystanku, jedziemy metrem/pociągiem, lecimy samolotem, stoimy w kolejce, leżymy na plaży lub w sypialni. No więc po pierwsze często nie ma wtedy połączenia z Internetem lub jest ono fatalne – możliwość czytania offline staje się wtedy kluczowa. Po drugie, większość witryn internetowych nie dostosowuje swoich treści do urządzeń mobilnych, a ładowanie całej strony wraz z reklamami, paskami bocznymi, flashami itp., powiększanie jej tak aby widać było treść i przewijanie tej treści – to są czynności bardzo niewygodne, zwłaszcza na małym ekranie. Wspomniane usługi rozwiązują oba problemy. Artykuł zaprezentowany jako ebook, z możliwością dopasowania czcionki i tła (tryb nocny!) przywraca szacunek dla treści umieszczanej w Internecie, a już zwłaszcza dla dłuższych tekstów. Instapaper obsługuje takie cieszące oko drobiazgi jak kerning czcionki czy ligatury. W efekcie czytanie nawet na małym ekranie staje się po prostu przyjemne.

Wrzucenie artykułu do tego typu serwisów jest na ogół bardzo proste: każdy z nich udostępnia skryptozakładkę, którą wystarczy przeciągnąć na pasek narzędziowy przeglądarki aby otrzymać przycisk – jego naciśnięcie zapisuje aktualnie oglądany artykuł. Zamiast tego można użyć rozszerzenia przeglądarki lub wysłać link do artykułu mailem na odpowiedni adres email. Ponadto w wielu aplikacjach takich jak czytnik RSS czy aplikacje mobilne, można spodziewać się opcji wrzucenia aktualnie czytanej treści do Instapapera, Pocketa lub Readability. No i oczywiście każda z tych usług oferuje bogaty wachlarz aplikacji mobilnych (często więcej niż jedna aplikacja do wyboru na każdą platformę mobilną).

Serwisy o których mowa w dzisiejszym poście oferują również dodatkowe funkcjonalności:

  • artykuły można często komentować, umieszczać w strukturze katalogów lub opatrywać tagami, a także archiwizować,
  • artykuł można zaznaczyć jako „ulubiony”, co przy odpowiedniej konfiguracji konta skutkuje rekomendacją znajomym na portalu społecznościowym (Facebook, Twitter, Tumblr itp.), a także przeniesieniem do odpowiedniego katalogu,
  • artykuł można wyeksportować jako plik ePub lub Kindle,
  • listę swoich artykułów można wyeksportować w postaci CSV lub HTML, importować z innych usług tego typu,
  • opcja zamiany tekstu na mowę (Instapaper),
  • niektóre aplikacje mobilne udostępniają takie wygodne opcje jak przewracanie stron bez użycia rąk (głosem lub odpowiednio przechylając urządzenie),
  • jak wiele innych serwisów, można dla nich pisać recepty IFTTT,
  • udostępniane jest API, pozwalające programistom pisać własne aplikacje zintegrowane z usługą.

Jeśli miałbym wyliczyć wady, to chyba tylko takie:

  • serwisy tego typu nie nadają się raczej do przechowywania bardzo dużej liczby artykułów – w takich przypadkach rozważ inne usługi jak np. Evernote, lub serwisy zakładkowe takie jak Pinboard czy Delicious
  • jeśli w artykule osadzone są zdjęcia, to w sformatowanej wersji zostaną one na ogół usunięte.

Czytaj więcej »

Napisany w WWW | Brak komentarzy »