<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Maciej Pasternacki</title><link>http://blog.pasternacki.net/</link><description>Wpisy z dziennika internetowego Jogger, wspomaganego przez Jabbera</description><lastBuildDate>Fri, 03 Jul 2009 05:56:40 +0200</lastBuildDate><generator>JoggerPL</generator><item><title>Gdzie leży Wieliczka?</title><link>http://blog.pasternacki.net/2009/05/04/gdzie-lezy-wieliczka/</link><description>&lt;p&gt;Wczoraj miałem przyjemność zwiedzić część wiedeńskiego &lt;a href=&quot;http://www.nhm-wien.ac.at/&quot;&gt;Muzeum Historii Naturalnej&lt;/a&gt; (jak się okazuje, ponad trzy godziny to za mało żeby obejrzeć chociaż połowę; ponadto: kamienie są ładne, nie spodziewałbym się). Jednakowoż, nie o kamieniach chciałbym napisać. Wśród eksponatów znajdowały się kryształy soli z Wieliczki, a podpisy pod nimi… same stanowiły eksponat muzealny:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.pasternacki.net/pub/wieliczka.jpg&quot; alt=&quot;Steinsalz. Wieliczka, Galizien, Österreich.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;q&gt;Sól kamienna. Pochodzenie: Wieliczka, Galicja, Austria.&lt;/q&gt;. Bez komentarza.&lt;/p&gt;
</description><pubDate>Mon, 04 May 2009 13:10:22 +0200</pubDate><guid>http://blog.pasternacki.net/2009/05/04/gdzie-lezy-wieliczka/</guid><category>Cała reszta</category><category>Fortunki</category></item><item><title>Rewolucja</title><link>http://blog.pasternacki.net/2008/12/10/rewolucja/</link><description>&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/2008_Greek_riots&quot;&gt;Zamieszki w Grecji&lt;/a&gt; trwają już piąty dzień. Nie zamierzam pisać tutaj zaangażowanego komentarza na ten temat—zbyt mało wiem o sytuacji politycznej i najnowszej historii Grecji, by moje uwagi mogły faktycznie coś wnieść. Napiszę za to o innej rewolucji.&lt;/p&gt;
&lt;p&gt;Mianowicie, czymś dla mnie niesamowitym jest dostęp do &lt;a href=&quot;http://search.twitter.com/search?q=%23griots&quot;&gt;niezależnych&lt;/a&gt; i &lt;a href=&quot;http://cia.bzzz.net/ateny_16_letni_anarchista_zastrzelony_przez_policje&quot;&gt;alternatywnych&lt;/a&gt; &lt;a href=&quot;http://www.occupiedlondon.org/blog/&quot;&gt;źródeł&lt;/a&gt; &lt;a href=&quot;http://flickr.com/photos/tags/griots/&quot;&gt;informacji&lt;/a&gt; (&lt;a href=&quot;http://www.metamute.org/en/the_greek_uprisings_useful_starting_points_for_info_and_posting_news&quot;&gt;więcej&lt;/a&gt;). Ot tak, na skinienie palca. Wyobrażacie sobie coś takiego choćby 10 lat temu? Ja nie. Obecnie &lt;strong&gt;każdy&lt;/strong&gt; ma możliwość &lt;strong&gt;łatwego&lt;/strong&gt; publikowania w sieci; przeważnie skutkiem tego są tony badziewia (żeby się o tym przekonać, starczy poklikać trochę po Youtube), ale w sytuacji kryzysowej możliwość taka jest nieoceniona. Głupi niby &lt;a href=&quot;http://twitter.com/&quot;&gt;Twitter&lt;/a&gt; już kilka razy udowodnił swoją przydatność w takiej sytuacji.&lt;/p&gt;
&lt;p&gt;Do tego, w miejsce niedostępnych źródeł informacji natychmiast powstają nowe. Gdy &lt;a href=&quot;http://athens.indymedia.org/&quot;&gt;ateńskie Indymedia&lt;/a&gt; z niewiadomych powodów przestały działać na kilkanaście godzin, a jedyny wpis w serwisie &lt;a href=&quot;http://directactiongr.blogspot.com/search/label/english&quot;&gt;Direct Action Greece&lt;/a&gt; odnośnie bieżącej sytuacji brzmiał &lt;q&gt;16 lat. Zamordowany przez gliniarzy. Wszyscy na ulice. Nie ma czasu na aktualizacje&lt;/q&gt;—redaktorzy mieli na miejscu ważniejsze rzeczy na głowie niż zajmowanie się blogiem—ich rolę automatycznie przejął zaprzyjaźniony blog &lt;a href=&quot;http://www.occupiedlondon.org/blog/&quot;&gt;Occupied London&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Wiele się ostatnio trąbi o szkodliwych skutkach łatwej i taniej możliwości robienia zdjęć i filmowania cyfrakiem lub telefonem, i publikowania efektów w sieci; tutaj jakiś dzieciak czuje się upokorzony, tam nauczycielowi (który, skoro w ogóle dopuścił do zaistnienia takiej sytuacji, w ogóle nie nadawał się do wykonywania tego zawodu) wsadzą kosz na głowę i wrzucą w Internet, siam z kolei sieją oszczerstwa, nawołują do przestępstw i propagują rasizm. Zgoda, wszystko to się dzieje. Ale o drugiej stronie medalu jakoś cicho: ta sama łatwość umożliwia oddolne organizowanie się społeczeństwa, przepływ informacji w sytuacji kryzysowej, pozostający poza kontrolą organów państwowych i poza jakimikolwiek próbami cenzury czy kontroli. Może nam się nie podobać istnienie w sieci miejsc w rodzaju &lt;em&gt;redwatch&lt;/em&gt;; ale to samo, co umożliwia istnienie takich miejsc, umożliwia też wolny przepływ informacji, które inaczej zostałyby stłumione i wyciszone (jak w przypadku Grecji), lub na które po prostu nie byłoby czasu i środków (jak w przypadku huraganów w Stanach, gdzie dzięki Twitterowi ludzie mieli możliwość z pierwszej ręki i na bieżąco dowiedzieć się o losach swoich bliskich w czasie kataklizmu).&lt;/p&gt;
&lt;p&gt;Gdy oficjalne przekazy są kontrolowane (patrz pierwsze oficjalne oświadczenia ze strony Grecji), gdy nawet alternatywne serwisy informacyjne są nieobiektywne (bo, skoro są przez kogoś redagowane, siłą rzeczy są obciążone jakąś dawką subiektywizmu), możliwość sięgnięcia po relacje, zdjęcia i amatorskie filmy z pierwszej ręki jest bezcenna. Nawet w oskarżeniu strzelającego do Alexandrosa policjanta kluczową rolę odegrał amatorski film nakręcony telefonem komórkowym, na którym nie widać prawie nic—ale w szczególności nie widać, by młodzież atakowała policję. Mimo pierwotnych prób, sytuacji nie da się zatuszować, nie da się wmówić opinii publicznej, że tak naprawdę nic się nie dzieje, a sytuacja jest pod kontrolą.&lt;/p&gt;
&lt;p&gt;Dziesięć lat temu, dałoby się. Kiedy ludzie mogli porozumiewać się bezpośrednio telefonami, nie było bezpośredniego dostępu do relacji z pierwszej ręki, relacje świadków roznosiły się jako plotki i z wiarygodnością plotki, a alternatywnymi do &lt;em&gt;mainstreamowych&lt;/em&gt; źródłami informacji byłyby plakaty i ulotki wolnościowców. Kiedy nie byłoby technicznej możliwości natychmiastowego zorganizowania solidarnościowych akcji w miastach całego świata. Kiedy w sądzie mielibyśmy słowo policjanta przeciwko słowu manifestującego, a cała sprawa byłaby stosunkowo łatwa do zatuszowania. Teraz—to wszystko nie jest możliwe, informacja chce płynąć i płynie, a gdy z jakichś przyczyn przestanie działać jeden niezależny serwis, na jego miejsce powstają trzy następne. &lt;strong&gt;To jest rewolucja.&lt;/strong&gt; Równie ważna, albo wręcz ważniejsza od tej z kamieniami i koktajlami Mołotowa.&lt;/p&gt;
</description><pubDate>Wed, 10 Dec 2008 12:51:21 +0100</pubDate><guid>http://blog.pasternacki.net/2008/12/10/rewolucja/</guid><category>Cała reszta</category></item><item><title>Git, Squid, nagłówki…</title><link>http://blog.pasternacki.net/2008/11/04/git-squid-naglowki/</link><description>&lt;p&gt;Jakiś czas temu do zarządzania własnymi projektami przesiadłem się z &lt;a href=&quot;http://darcs.net/&quot;&gt;darcsa&lt;/a&gt; na &lt;a href=&quot;http://git.or.cz/&quot;&gt;Gita&lt;/a&gt;. Nie jest aż tak intuicyjny, ale nie jest też aż tak zabugowany (w darcsie pewne rzeczy wydają się być &lt;em lang=&quot;en&quot;&gt;broken by design&lt;/em&gt;) i ma o wiele większe możliwości. Nie narzuca użytkownikowi żadnego konkretnego modelu pracy, za to daje możliwość użycia w praktycznie dowolny sposób. Jednakowoż, &lt;abbr title=&quot;There Ain't No Such Thing As A Free Lunch&quot; lang=&quot;en&quot;&gt;TANSTAAFL&lt;/abbr&gt;. Jest o wiele trudniejszy w obsłudze i do sprawnego użycia wymaga jednak pewnej znajomości działania wnętrzności.&lt;/p&gt;
&lt;p&gt;Ale tyle o słoniu. W końcu jakbym chciał na tym blogasku opisywać wszystko, co robię, to pisałbym chyba trochę częściej; porównań systemów kontroli wersji w sieci jest od groma i trochę, i nie ma potrzeby pisania jeszcze jednego. Ku pamięci swojej i innych chciałbym za to opisać, jak git zachowuje się w połączeniu z protokołem HTTP i serwerem pośredniczącym &lt;a href=&quot;http://squid-cache.org/&quot;&gt;Squid&lt;/a&gt; po drodze, co zjadło mi spory kawał czasu dzisiaj, i nie jest tak trywialne. Otóż, w domu siedzę za wspomnianym Squidem – dostawca Internetu nie daje mi pod tym względem wyboru – a jedna z bibliotek, których używam i tworzę (konkretnie &lt;a href=&quot;http://common-lisp.net/project/cl-trane/&quot;&gt;CL-Trane&lt;/a&gt;) jest dostępna jako repozytorium Gita po HTTP. Psuję ją sobie, psuję, na stanowisku roboczym pchnąłem poprawkę jakiegoś błędu, i próbuję ją pociągnąć na drugim komputerze… &lt;q lang=&quot;en&quot;&gt;Already up-to-date.&lt;/q&gt; Łaty nie ma. Na serwerze – jest; po jakimś czasie nawet na &lt;a href=&quot;http://repo.or.cz/&quot;&gt;repo.or.cz&lt;/a&gt; była widoczna; &lt;kbd&gt;git clone&lt;/kbd&gt; na serwerze daleko-w-świecie widzi; na komputerze obok stacji roboczej, ani &lt;kbd&gt;git pull&lt;/kbd&gt;, ani świeży &lt;kbd&gt;git clone&lt;/kbd&gt; nie widzą. Ki czort?&lt;/p&gt;
&lt;p&gt;Oczywiście, mógłbym przepchnąć tę konkretną łatę bezpośrednio z repo roboczego. Ale to niehonorowo, poza tym testowałem akurat instalację od zera (uwaga na boku: &lt;a href=&quot;http://capify.org/&quot;&gt;Capistrano&lt;/a&gt; rządzi rulezem), więc ręczne przeciąganie łatek popsułoby całą zabawę. Po poszukaniu trochę na temat transportu HTTP dla gita (który jest tzw. „głupim” transportem) dotarłem do magicznego pliku &lt;code&gt;.git/info/refs&lt;/code&gt;; okazało się, że plik ten obejrzany przeglądarką tekstową na serwerze jest &lt;em&gt;inny&lt;/em&gt; niż ten sam plik obejrzany z domu. Przeładowanie go z poziomu przeglądarki WWW doprowadziło zawartość do normy. Uff…&lt;/p&gt;
&lt;p&gt;Okazuje się zatem, że Git jako klient HTTP grzecznie współpracuje z serwerami cache'ującymi i pośredniczącymi (co się chwali), ale gdy odpytuje, czy zawartość repozytorium dostępnego przez HTTP nie zmieniła się, jest aż za miły i wierzy serwerowi pośredniczącemu zamiast wymusić na nim sprawdzenie tego bezpośrednio u źródła. Trzeba to na serwerze wymusić samemu, korzystając z przeglądarki, &lt;kbd&gt;wget --no-cache&lt;/kbd&gt;, czy nawet (opcja dla geeków-superbohaterów) bezpośrednio telnetem lub netcatem. Dobrej zabawy! ;)&lt;/p&gt;
</description><pubDate>Tue, 04 Nov 2008 17:41:11 +0100</pubDate><guid>http://blog.pasternacki.net/2008/11/04/git-squid-naglowki/</guid><category>Maszyny</category></item><item><title>Wikibabel - słownik z Wikipedii</title><link>http://blog.pasternacki.net/2008/09/01/wikibabel-slownik-z-wikipedii/</link><description>&lt;p&gt;Nie wiem, jak szanowni Czytelnicy, ale ja czasem korzystam z &lt;a href=&quot;http://www.wikipedia.org/&quot;&gt;Wikipedii&lt;/a&gt; jako słownika. Posiada ona bowiem, w lewym panelu, sekcję „w innych językach,” a baza wyrazów Wikipedii (przynajmniej dla tych języków, w których zdarza mi się czegoś szukać) jest o niebo większa niż większości słowników dostępnych online. Co więcej, Wikipedia wspaniale się sprawdza przy tłumaczeniu nazw roślin, przypraw itp, do czego nie nadają się jednojęzyczne słowniki papierowe — to, że &lt;em lang=&quot;en&quot;&gt;daffodil&lt;/em&gt; to jest nazwa kwiatu, jestem w stanie zrozumieć z kontekstu, za to przydałoby się wiedzieć, jaki to konkretnie rodzaj badyla… a że biologiem nie jestem, zamiast opisu wolę jednak nazwę w moim języku.&lt;/p&gt;
&lt;p&gt;Kilka dni temu odkryłem, że MediaWiki (silnik Wikipedii) &lt;a href=&quot;http://www.mediawiki.org/wiki/API&quot;&gt;udostępnia publicznie API&lt;/a&gt;. Wieczór z PHP, dwa kolejne z CSS, &lt;em lang=&quot;en&quot;&gt;lo and behold&lt;/em&gt;: &lt;a href=&quot;http://wikibabel.info/&quot;&gt;WikiBabel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Przy okazji wyłonił się zabawny ficzer tłumaczeń Wikipedyjnych: dla wyrazów bliskoznacznych (np. gałka muszkatołowa / muszkatołowiec) i homonimów (np. „kuchnia”) linki do stron w innych językach często są jednokierunkowe. Nie wspomnę już o zamieszaniu robionym przez strony ujednoznaczniające. Zastanawiam się, czy da się to jakoś obejść/poprawić…&lt;/p&gt;
&lt;p&gt;Na razie mam nadzieję, że wyskrobany przeze mnie kawałek kodu komuś się przyda. Smacznego!&lt;/p&gt;
</description><pubDate>Mon, 01 Sep 2008 00:01:13 +0200</pubDate><guid>http://blog.pasternacki.net/2008/09/01/wikibabel-slownik-z-wikipedii/</guid><category>Maszyny</category><category>Techblog</category></item><item><title>GSoC Status Update, week 12½ (final)</title><link>http://blog.pasternacki.net/2008/08/18/gsoc-status-update-week-12-final/</link><description>&lt;div lang=&quot;\&amp;quot;en\&amp;quot;&quot;&gt;
&lt;p&gt;Seriously, where did this half a week come from? I can understand periods of time disappearing, but half a week appearing out of nowhere is something new to me. But I won't complain – extra time is good. ;)&lt;/p&gt;
&lt;p&gt;Pencils down now. Of course, project continues, but evaluations for Google will be based on what is done now, thus &lt;code&gt;gsoc_2008_pencils_down&lt;/code&gt; tag in darcs. The second tag is much nicer, it's &lt;code&gt;1_0_rc1&lt;/code&gt;. I think I got to a passable 1.0 version now. It may need some more unit tests (as always), documentation polishing, most probably there may still be bugs, and I don't want to call it a full 1.0 version before using the library in some actual application. Besides that, feature-, documentation- and API-wise all seems to be complete.&lt;/p&gt;
&lt;h2&gt;Work done since last report&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixed some bugs, esp. portability to other Lisps&lt;/li&gt;
&lt;li&gt;Some polishing (dropping unnecessary format string/argument pairs, renaming accessors, dependency updates, things like this)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://common-lisp.net/project/cl-openid/darcs/cl-openid/README.html&quot;&gt;Documentation!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Some unit tests (not that much)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Problems&lt;/h2&gt;
&lt;p&gt;This “Problems” section will list what doesn't seem to be complete after the “pencils down” timestamp rather than current problems. Completing those will go into 1.1:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unit tests don't cover much of actual protocol code. Not sure exactly how to do this, and whether it's worth to do it. We'll see.&lt;/li&gt;
&lt;li&gt;YADIS (&lt;a href=&quot;http://trac.common-lisp.net/cl-openid/ticket/7&quot;&gt;#7&lt;/a&gt;), and Relying Party discovery (&lt;a href=&quot;http://trac.common-lisp.net/cl-openid/ticket/13&quot;&gt;#13&lt;/a&gt;). Yadis support should be moved to a separate library, and used for discovering Relying Party return_to endpoints.&lt;/li&gt;
&lt;li&gt;Random number generation (&lt;a href=&quot;http://trac.common-lisp.net/cl-openid/ticket/14&quot;&gt;#14&lt;/a&gt;). The &lt;a href=&quot;http://rfc.net/rfc1750.html&quot;&gt;rfc1750&lt;/a&gt; should be implemented as a separate library atop &lt;a href=&quot;http://www.method-combination.net/lisp/ironclad/&quot;&gt;Ironclad&lt;/a&gt; for secure pseudo-random number generation. Currently plain &lt;code&gt;CL:RANDOM&lt;/code&gt; is used, which is not acceptable for security-sensitive deployments.&lt;/li&gt;
&lt;li&gt;With regard to &lt;a href=&quot;http://trac.common-lisp.net/cl-openid/wiki/OriginalProposal&quot;&gt;original proposal&lt;/a&gt;, most of portability has been deemed actually irrelevant. Web server portability has been achieved, web client and storage portability has been dropped. All storage is in-memory and that's enough (keeping user data is responsibility of library's user, and associations / nonces/ authentication processes can be kept in memory).&lt;/li&gt;
&lt;li&gt;API for 1.0 was deliberately kept as simple and small as possible to have any functioning relying party or provider. Intended side-effect is that it may not be flexible enough to support users' actual needs. I decided to keep API small and simple, and to extend it to actual users' requirements, instead of trying to get most comprehensive API ever. Not actually a problem, but connected with above (when need for HTTP client or storage portability will actually arise, it will be added).&lt;/li&gt;
&lt;li&gt;Relying Party and Provider are not separate systems; the specific RP/OP code is small, and the required libraries are common anyway. It will most probably stay this way.&lt;/li&gt;
&lt;li&gt;Logging. As for now, logging is responsibility of CL-OpenID user. Maybe it would be useful if library itself was able to log events. Not before 1.1, though.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Plans for future&lt;/h2&gt;
&lt;p&gt;Similarly to problems, final report's plans are also referring to the general future instead of next half-week. I intend to support the library, and use it in my own Web projects. Current state of code is labeled 1.0rc1; after some discussions with users, using CL-OpenID in own code, I will label it 1.0. It will need to wait a bit, as bugs and omissions will surely manifest. I expect to have final 1.0 in September. After that, issues listed in “Problems” section are more of a TODO list for 1.1. When that is done, some actual deployments will be already done, and I will be able to tell whether it's maintenance phase already, or should the development continue to 1.2 or 2.0.&lt;/p&gt;
&lt;p&gt;So, that's it. Pencils down. &lt;a href=&quot;http://planet.pld-linux.org/&quot;&gt;Planet PLD&lt;/a&gt; and other planet spammage by these reports will cease (contrary to some comments, there seems to be no spammage anywhere else since about two weeks, when I stopped redirecting those posts to &lt;a href=&quot;http://techblog.pl/&quot;&gt;techblog&lt;/a&gt;; if I'm wrong, please correct me even if it's too late). Now, off to announce 1.0rc1 to the world!&lt;/p&gt;
&lt;/div&gt;
</description><pubDate>Mon, 18 Aug 2008 21:33:01 +0200</pubDate><guid>http://blog.pasternacki.net/2008/08/18/gsoc-status-update-week-12-final/</guid><category>CL-OpenID</category><category>English</category><category>Lisp</category><category>Maszyny</category></item><item><title>GSoC Status Update, week 12</title><link>http://blog.pasternacki.net/2008/08/15/gsoc-status-update-week-12/</link><description>&lt;div lang=&quot;\&amp;quot;en\&amp;quot;&quot;&gt;
&lt;p&gt;Final weekend ahead. Finishing the code, writing tests, docs, ensuring consistency… 1.0 is definitely on the radars.&lt;/p&gt;
&lt;h2&gt;Work done since last report&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Discussed bugs, priorities and requirements for 1.0&lt;/li&gt;
&lt;li&gt;Fixed bugs (&lt;a href=&quot;http://trac.common-lisp.net/cl-openid/ticket/9&quot;&gt;#9&lt;/a&gt;, &lt;a href=&quot;http://trac.common-lisp.net/cl-openid/ticket/12&quot;&gt;#12&lt;/a&gt;, few unlisted ones)&lt;/li&gt;
&lt;li&gt;Added comments to example code, polished comments&lt;/li&gt;
&lt;li&gt;Added some exports (message API and AUTH-PROCESS accessors)&lt;/li&gt;
&lt;li&gt;Add a bunch of tests, especially for message API&lt;/li&gt;
&lt;li&gt;Started working on documentation (locally, not commited yet)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Problems&lt;/h2&gt;
&lt;p&gt;None&lt;/p&gt;
&lt;h2&gt;Plans for next half week&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add thread-safety and dependency on &lt;a href=&quot;http://common-lisp.net/project/bordeaux-threads/&quot;&gt;bordeaux-threads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Finish documentation&lt;/li&gt;
&lt;li&gt;More tests, as many as possible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since Monday 19:00 UTC is Google's pencils down date, next report (and last one of this form) will be sent on Monday evening instead of usual Tuesday.&lt;/p&gt;
&lt;/div&gt;
</description><pubDate>Fri, 15 Aug 2008 18:19:40 +0200</pubDate><guid>http://blog.pasternacki.net/2008/08/15/gsoc-status-update-week-12/</guid><category>CL-OpenID</category><category>English</category><category>Lisp</category><category>Maszyny</category></item><item><title>GSoC Status Update, week 11½</title><link>http://blog.pasternacki.net/2008/08/12/gsoc-status-update-week-11-1/</link><description>&lt;div lang=&quot;\&amp;quot;en\&amp;quot;&quot;&gt;
&lt;p&gt;Final week ahead. Time to focus on documentation and polishing; some bugs still left, mostly nontrivial ones, and not everything is covered by unit tests, but core functionality and final (I think) API is in place.&lt;/p&gt;
&lt;h2&gt;Work done since last report&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Moved code to proper source files, finalized source layout (I think)&lt;/li&gt;
&lt;li&gt;Separated examples&lt;/li&gt;
&lt;li&gt;First-class RP and OP, finalize proposed API&lt;/li&gt;
&lt;li&gt;Some minor tweaks and doc/comment updates&lt;/li&gt;
&lt;li&gt;Exported basic proposed API&lt;/li&gt;
&lt;li&gt;Fixed most of remaining bugs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Problems&lt;/h2&gt;
&lt;p&gt;Some bugs still left. Mostly they are nontrivial and I am a bit afraid to destabilize the code in last days before the deadline. Relying party discovery will have to wait until after the deadline. However, I think at least some of them should be fixed; however, I will focus more on documentation and tests.&lt;/p&gt;
&lt;h2&gt;Plans for next half week&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Discuss API&lt;/li&gt;
&lt;li&gt;Documentation: finish docstrings, start a &lt;a href=&quot;http://weitz.de/documentation-template/&quot;&gt;DOCUMENTATION-TEMPLATE&lt;/a&gt;-based doc&lt;/li&gt;
&lt;li&gt;If time permits, comment examples&lt;/li&gt;
&lt;li&gt;Add tests&lt;/li&gt;
&lt;li&gt;Fix some outstanding bugs and suggestions: thread-safety, maybe realm checking&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</description><pubDate>Tue, 12 Aug 2008 23:40:12 +0200</pubDate><guid>http://blog.pasternacki.net/2008/08/12/gsoc-status-update-week-11-1/</guid><category>CL-OpenID</category><category>English</category><category>Lisp</category><category>Maszyny</category></item><item><title>GSoC Status Update, week 11</title><link>http://blog.pasternacki.net/2008/08/09/gsoc-status-update-week-11/</link><description>&lt;div lang=&quot;\&amp;quot;en\&amp;quot;&quot;&gt;
&lt;p&gt;Refactoring is approaching end. I hope to have it done on the weekend, and spend final week on documentation and examples.&lt;/p&gt;
&lt;h2&gt;Work done since last report&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Updated internal message API to take care of formatting URIs, integers, and octet vectors as strings&lt;/li&gt;
&lt;li&gt;Use message API throughout the code&lt;/li&gt;
&lt;li&gt;Minor comment/documentation updates&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Problems&lt;/h2&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h2&gt;Plans for next half week&lt;/h2&gt;
&lt;p&gt;Finish refactoring:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First class OP and RP&lt;/li&gt;
&lt;li&gt;Separate example code&lt;/li&gt;
&lt;li&gt;Fix outstanding bugs from Trac&lt;/li&gt;
&lt;li&gt;Export symbols for final API&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</description><pubDate>Sat, 09 Aug 2008 02:37:45 +0200</pubDate><guid>http://blog.pasternacki.net/2008/08/09/gsoc-status-update-week-11/</guid><category>CL-OpenID</category><category>English</category><category>Lisp</category><category>Maszyny</category></item><item><title>GSoC Status Update, week 10½</title><link>http://blog.pasternacki.net/2008/08/05/gsoc-status-update-week-10-1/</link><description>&lt;div lang=&quot;\&amp;quot;en\&amp;quot;&quot;&gt;
&lt;h2&gt;Work done since last report&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add message utility functions and rewrite part of code to use those instead of list-level mangling&lt;/li&gt;
&lt;li&gt;Many minor bugfixes and cosmetic (formatting, naming consistency etc) fixes&lt;/li&gt;
&lt;li&gt;Comment and docstring fixes&lt;/li&gt;
&lt;li&gt;Fix possible DoS: Use counters instead of &lt;code&gt;GENTEMP&lt;/code&gt; for generating unique IDs, don't inter endpoint URIs when associating&lt;/li&gt;
&lt;li&gt;Introduce and use &lt;code&gt;AUTH-PROCESS&lt;/code&gt; structure instead of &lt;code&gt;ID&lt;/code&gt; alist&lt;/li&gt;
&lt;li&gt;Update tests, add some for newly introduced functions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Problems&lt;/h2&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;h2&gt;Plans for next half week&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Write more tests&lt;/li&gt;
&lt;li&gt;More docstring fixes&lt;/li&gt;
&lt;li&gt;Introduce first-class RP and OP, if time permits&lt;/li&gt;
&lt;li&gt;Logging, if time permits&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</description><pubDate>Tue, 05 Aug 2008 23:05:03 +0200</pubDate><guid>http://blog.pasternacki.net/2008/08/05/gsoc-status-update-week-10-1/</guid><category>CL-OpenID</category><category>English</category><category>Lisp</category><category>Maszyny</category></item><item><title>GSoC Status Update, week 10</title><link>http://blog.pasternacki.net/2008/08/01/gsoc-status-update-week-10/</link><description>&lt;div lang=&quot;\&amp;quot;en\&amp;quot;&quot;&gt;
&lt;h2&gt;Work done since last report&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Discussed refactoring and final API, reaching conclusion on most issues&lt;/li&gt;
&lt;li&gt;A bit of general cleanup&lt;/li&gt;
&lt;li&gt;Docstring and comment additions&lt;/li&gt;
&lt;li&gt;More moving to &lt;code&gt;shared.lisp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Moved message-specific functions to &lt;code&gt;message.lisp&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Problems&lt;/h2&gt;
&lt;p&gt;Work actually done differs a bit from what I was planning to do mainly as a result of the &lt;a href=&quot;http://common-lisp.net/pipermail/cl-openid-devel/2008-July/000032.html&quot;&gt;discussion&lt;/a&gt; mentioned in previous section. The message class idea has been rejected since it was really a premature optimization (which, as we all know, is &lt;a href=&quot;http://c2.com/cgi/wiki?PrematureOptimization&quot;&gt;root of all evil&lt;/a&gt;) – so I backed out of it, and stayed with alists, but separated message-related code.&lt;/p&gt;
&lt;h2&gt;Plans for next half week&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Finish factoring out messages&lt;/li&gt;
&lt;li&gt;Tests!&lt;/li&gt;
&lt;li&gt;Authorization process structure (for what is called &lt;code&gt;ID&lt;/code&gt; across the code)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</description><pubDate>Fri, 01 Aug 2008 23:01:08 +0200</pubDate><guid>http://blog.pasternacki.net/2008/08/01/gsoc-status-update-week-10/</guid><category>CL-OpenID</category><category>English</category><category>Lisp</category><category>Maszyny</category></item></channel></rss>