Parser #przeczytane

Dodane 10 marca 2010 o 01:33:28 w kategorii ' Blip, Techblog, Wszystkie wpisy '

Będąc wielką fanką blipa, jego nadpobudliwą użytkowniczką oraz molem książkowym jednocześnie, postanowiłam napisać parser dla tagu #przeczytane gdzie obecnie najwięksi lanserzy serwisu wrzucają nazwy książek jakie wchłonęli ostatnio. Nie sądzę, aby powstał jakoś bardzo szybko, dlatego postanowiłam zapisać sobie tutaj ogólną specyfikację, aby móc sięgnąć do niej później, a także dlatego, że sam fakt jej istnienia będzie motywował mnie do napisania realnego programu.

Ponieważ mam zamiar być pierwszą użytkowniczką mojego własnego serwisu ze sparsowanymi książkami, ustalę składnię blipnięcia, które będzie dodawało książkę do bazy. Będzie ono mniej więcej w postaci:

#przeczytane Nazwisko Autora "Tytuł w cudzysłowiu" Uwagi 10.0 #temat1 #temat2

Blipnięcie będzie musiało składać się obowiązkowo z otwierającego je tagu "#przeczytane", a następnie dowolnej ilości słów oznaczających autora książki. Wielu autorów rozdzielonych będzie przecinkami. Ostatnim obowiązkowym elementem będzie tytuł książki, który będzie wyróżniony okalającymi go znakami cudzysłowia.

W blipnięciu będą mogły znajdować się opcjonalne elementy jak komentarz lub uwagi, które będą umieszczone po cudzysłowie z nazwą książki. Liczba w formacie float będzie oznaczała ocenę książki w skali 1.0 - 10.0. Wszelkie pozostałe tagi będą traktowane jako tagi określające tematykę książki (na przykład buddyzm).

Parsowaniem blipnięć będzie zajmował się bot działający na zasadzie podobnej co bot biegacze, ale sądzę, że wprowadzę jakiś sposób zapisania się do serwisu wcześniej (np. dodanie mojego bota do obserwowanych), aby uniknąć parsowania przypadkowych blipnięć.

Planuję wprowadzić system statystyk oparty na sparsowanych z tagach książkach. Przykładowo będzie to wyświetlanie ilości przeczytanych ostatnio książek, albo oceny przypisanych przez blipujących do książki.

Nerd events calendar

Dodane 25 maja 2009 o 16:35:53 w kategorii ' Inne, Techblog, Wszystkie wpisy '

Dzisiaj jest Dzień Ręcznika (Towel Day) w którym mamy możliwość złożenia hołdu Douglasowi Adamsowi poprzez noszenie ze sobą ręcznika. Trudno o piękniejsze i bardziej nerdowskie święto. Niestety mało kto o nim pamięta (włącznie ze mną), dlatego postawiłam pomóc sobie i innym zakładając Google Calendar.

Kalendarz nazywa się Nerd Events i mam zamiar umieszczać w nim daty ważne dla nerdowskiego światka

Na pomysły dni, które zasługują na zamieszczenie w kalendarzu czekam pod mailem/jabberem:

Wyszukany program podający liczbę pseudolosową z zakresu 1-5

Dodane 25 maja 2009 o 13:35:51 w kategorii ' PHP, Techblog, Wszystkie wpisy '
 
<?php
	echo "Twój szczęśliwy numerek: ".rand(1, 5);
?>
 

Program publikuję aby udowodnić przed chętnymi na grę, że jestem uczciwa ;)

Wynikiem pierwszego uruchomienia programu było: 1

Color nie tylko tekstu

Dodane 02 stycznia 2009 o 15:02:17 w kategorii ' CSS, Techblog, Wszystkie wpisy '

Zawiłość specyfikacji CSS jest niemalże legendarna. Jej czytanie jest jak droga przez mękę, nawet dla osób zawodowo związanych z tematem. Joel Spolsky na swoim blogu bardzo malowniczo opisuje swój stosunek do sprawy:

Those documents are super confusing. The specs are full of statements like »If a sibling block box (that does not float and is not absolutely positioned) follows the run-in box, the run-in box becomes the first inline box of the block box. A run-in cannot run in to a block that already starts with a run-in or that itself is a run-in.« Whenever I read things like that, I wonder how anyone correctly conforms to the spec.

Joel sugeruje, że specyfikacje są po prostu zbyt zawiłe, żeby móc je dobrze zaimplementować. W tym przypadku jednak twórcom przeglądarek chyba się udało, ale developerom nie ;)

Przypuśćmy, że chcemy zdefiniować paragraf czerwonego tekstu, a potem otoczyć go ramką. Jakiego koloru będzie ramka?

p {  color: red; border: 1px solid; }

Zadziwiająco, odpowiedź nie brzmi: domyślnego (czyli np. czarnego)! Ramka będzie czerwona.

W opisie właściwości 'color' nie znalazłam wytłumaczenia tego fenomenu.

Foreground color: the 'color' property

This property describes the foreground color of an element's text content.

Z pomocą przychodzi komentarz pod przykładem generowania ramki.

In the above example, the color of the left border is black, while the other borders are red. This is due to 'border-left' setting the width, style, and color. Since the color value is not given by the 'border-left' property, it will be taken from the 'color' property. The fact that the 'color' property is set after the 'border-left' property is not relevant.

Dzięki temu zupełnie nieoczekiwanemu odkryciu będę mogła często zaoszczędzić na definiowaniu koloru ramki. Wygodne, polecam :)

Dziękuję Sztywnemu za pomoc w kopaniu w specyfikacji ;)

Kolory klikalnych nagłówków

Dodane 05 sierpnia 2008 o 00:02:26 w kategorii ' CSS, Dobry pomysł, zły pomysł, Techblog, Wszystkie wpisy '

Dobry pomysł

Aby oszczędzić sobie pracy i kodu najlepiej styl css zacząć od:

body h1 a, body h2 a, body h3 a, body h4 a { color: inherit; }
 

Dzięki temu za każdym razem kiedy link będzie zawierał się w nagłówku, odziedziczy od niego kolor. Zaoszczędzimy dzięki temu linijkę kodu.

Zamiast:

body h1 { różne właściwości, potrzebne do ostylowania nagłówka }
body h1 a { color: #fff; }
 

Będzie:

body h1 { różne właściwości, potrzebne do ostylowania nagłówka; color: #fff; }
 

Zły pomysł

Zaczynanie w ten sposób stylu css jest jednocześnie zupełnie bez sensu, bo pracy przybędzie nam tak czy siak - powyższa metoda nie działa w IE6 i IE7. W tych przeglądarkach wartość "inherit" właściwości nie jest obsługiwana.

Plagiatorzy z Pyrkonu

Dodane 21 marca 2008 o 12:43:01 w kategorii ' Techblog, Wszystkie wpisy '

Porównanie wyglądu menu na stronach Polconu 2007 i Pyrkonu 2008

Oglądając stronę tegorocznego Pyrkonu zwróciłam uwagę na dosyć niefortunny sposób podświetlenia menu. "Wypukłe" menu po najechaniu robi się płaskie - w dosyć nieprzyjemnym kolorze. Właściwie fakt, że autor strony stworzył nieelegancką grafikę do tego elementu strony nie byłby zbrodnią, gdyby nie fakt, że ja ten efekt :hover już skądś znam... No przecież. Identycznie sprawy wyglądały na stronie Polconu 2007 w której dużej części byłam autorką. Szybkie zerknięcie w kod obu stron pozwala ustalić, że na stronie Pyrkonu znajduje się nic innego niż praca moja i mojego przyjaciela Godryka (Tomasza Marcinkowskiego), który był autorem oryginalnego wyglądu takiego menu.

Podobieństwo jest właściwie niepodważalne. Skrypt js wykorzystany do "animowania" menu to identyczny kod pod dwoma różnymi nazwami. Ponadto, cała strona Pyrkonu została wykonana w technologii tabelkowej, oprócz kawałka z menu, który świeci divami. Divami ze strony Polconu oczywiście, włącznie z idkami divów i kolejnością ich właściwości w css (które pozostały nota bene niemalże takie same).

Warto wspomnieć, że o zgodę na wykorzystanie naszej pracy nie zostaliśmy zapytani - ani ja, ani Godryk.

Sprawa byłaby prosta do rozwiązania, gdyby nie stosunek klubu Druga Era (organizatora Pyrkonu) do problemu. Na wezwanie do naprawienia błędu autorstwa Godryka, Paweł "Paszko" Matuszak odpisał:

Przykro mi, Godryku, że czujesz się przez nas okradziony. Przyznam, iż nie mieliśmy pojęcia, iż skrypt ten jest Twojego autorstwa. Po pierwsze, nigdzie przenigdzie nie jest w nim zamieszczone żadne info na temat autora czy też praw autorskich. Po drugie, jak zapewne zdajesz sobie sprawę, na sieci krążą ogromne ilości darmowych skryptów. Chcąc zaimplementować menu na naszą stronę, przejrzeliśmy spore ich ilości, natrafiając m.in. na ten: http://www.htmldog.com/articles/suckerfish/dropdowns/ będący podobnym do zamieszczonego na stronie Polconu. Na podstawie powyższego mogliśmy podejrzewać, iż zamieszczony na stronie Polconu skrypt jest jakąś tam modyfikacją owego skryptu darmowego. W związku z tym postanowiliśmy zamieścić go i u nas (w końcu przynajmniej jest przetestowany) i przyznam, że podstawę do naszego skryptu stanowiła wersja ze strony Polconowej (na co argumentem były bardziej swojsko brzmiące nazwy zmiennych). Co nie zmienia faktu, iż wciąż mogliśmy sądzić, iż skrypt ten jest DARMOWYM SKRYPTEM wykorzystanym przez was. Jak sam również zaznaczyłeś - wprowadziliśmy tam swojej poprawki i zmiany.
Jeśli czujesz się urażony tym, że wykorzystaliśmy skrypt ze strony Polconu jako podstawę do naszego, możemy go bez problemu zmienić na inny, co nie pociągnie zmian w funkcjonowaniu naszej strony. Jeśli natomiast postanowisz odłożyć urazy na bok, to proponuję zamieszczenie w nagłówku skryptu na naszej stronie komentarza o tym, iż jest on twojego autorstwa.
Natomiast ze strony swojej sugeruję podpisywać skrypty - jest to ogólnie przyjętą normą, szczególnie jeśli ma się potem zamiar wykłócać o prawa autorskie.

Nie wiem, czy podejście "wykorzystaliśmy ten skrypt, ponieważ był najpewniej był darmowy, nie był podpisany, a w ogóle to nikt nam tego nie zabronił" wymaga komentarza. Znamienne jest dosyć, że Paszko nie napisał nic o html/css co do których nie ma wątpliwości, że zostały ukradzione. Prawdopodobnie "layout menu" brzmi mniej poważnie niż "skrypt" dlatego nie warto się nim zajmować. Dobrze też uściślić, że cała strona Polconu 2007 jest podpisana moim nazwiskiem (za zgodą Godryka) i to ja jestem osobą odpowiedzialną za kod.

W toku dalszych rozmów uzgodniliśmy, że zażądamy zadośćuczynienia w postaci akredytacji na jeden z przyszłych Pyrkonów (dla mnie i dla niego) oraz przeprosin na stronie Pyrkonu.

W tym momencie pozostało 7 dni do rozpoczęcia Pyrkonu 2008, strona nadal wykorzystuje bez zgody kod mój i Godryka, jest on wciąż niepodpisany, a także przeprosin na stronie wyraźnie brakuje.

Ze swojej strony dodam tylko, że okropnie nie lubię, kiedy Code Monkeys nie potrafią się zachować.

Pandora.com goes restrictive

Dodane 03 maja 2007 o 12:35:53 w kategorii ' Techblog, Wszystkie wpisy '

Wczoraj dostałam od Pandora.com, mojego ulubionego radia internetowego, następującego maila:

Dear Pandora listener,

Today we have some extremely disappointing news to share with you. Due to international licensing constraints, we are deeply, deeply sorry to say that we must begin proactively preventing access to Pandora's streaming service for most countries outside of the U.S.

It is difficult to convey just how disappointing this is for us. Our vision remains to eventually make Pandora a truly global service, but for the time being, we can no longer continue as we have been. As a small company, the best chance we have of realizing our dream of Pandora all around the world is to grow as the licensing landscape allows.

We show your IP address is '212.76.37.134', which indicates you are listening from Poland. If you believe you are seeing this by mistake, we offer our sincere apologies and ask that you please reply to this email.

Delivery of Pandora is based on proper licensing from the people who created the music - we have always believed in honoring the guidelines as determined by legislators and regulators, artists and songwriters, and the labels and publishers they work with. In the U.S. there is a federal statute that provides this license for all the music streamed on Pandora. Unfortunately, there is no equivalent license outside the U.S. and there is no global licensing organization to enable us to legitimately offer Pandora around the world. Other than in the U.K., we have not yet been able to make significant progress in our efforts to obtain a sufficient number of international licenses at terms that would enable us to run a viable business. The volume of listening on Pandora makes it a very expensive service to run. Streaming costs are very high, and since our inception, we have been making publishing and performance royalty payments for every song we play.

Until now, we have not been able to tell where a listener is based, relying only on zip code information provided upon registration. We are now able to recognize a listener's country of origin based on the IP address from which they are accessing the service. Consequently, on May 3rd, we will begin blocking access to Pandora to listeners from your country. We are very sad to have to do this, but there is no other alternative.

We will be posting updates on our blog regarding our ongoing effort to launch in other countries, so please stay in touch. We will keep a record of your existing stations and bookmarked artists and songs, so that when we are able to launch in your country, they will be waiting for you. We deeply share your sense of disappointment and greatly appreciate your understanding.

-Tim Westergren
(Pandora founder)

Już od dawna Pandora.com zbierała przy rejestracji ZIP code i straszyła niewielkim napisem ze stopki " Pandora is currently for US listening only". Wczoraj twórcy poszli o krok dalej.

Pytanie na dziś: Czy ktoś zna jakieś amerykańskie proxy?

Archiwum

Kategorie

Meta: