<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.politics.sejmometr.api">
    <title>gmane.politics.sejmometr.api</title>
    <link>http://blog.gmane.org/gmane.politics.sejmometr.api</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/104"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/95"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/93"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/86"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/85"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/82"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/78"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/77"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/76"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/75"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/64"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/61"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/55"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/54"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/53"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/52"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/48"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/45"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/41"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.politics.sejmometr.api/38"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/104">
    <title>REST_API pytanie o nowe tabele</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/104</link>
    <description>&lt;pre&gt;Czy w najbliższym czasie planujecie dodać dodatkowe API dla wystąpień, 
interpelacji i głosowań posła? Odpowiednio (Posel_Wystapienia, 
Posel_Interpelacje, Posel_glosowania) ? 
W chwili obecnej wyszukiwanie wystąpień i interpelacji jest mało wydajne, 
ponieważ trzeba pobrać każde wystąpienie interpelacje/glosowanie aby 
sprawdzić, czy czasem nie należy do Posła np. po mowca_id. Niestety 
przykładowy link: http://sejmometr.pl/poslowie/id_posla/wystapienia nie ma 
API i zwraca zawsze http://sejmometr.pl/poslowie/id_posla/info

&lt;/pre&gt;</description>
    <dc:creator>Bartłomiej Opajdowski</dc:creator>
    <dc:date>2013-03-07T15:47:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/95">
    <title>Brak pola sentencja w danych sa_orzeczenia</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/95</link>
    <description>&lt;pre&gt;W jaki sposób poprzez API uzyskać tekst z pola sentencja widocznego po 
wejściu w szczegółach orzeczenia np. 
http://sejmometr.pl/sa_orzeczenia/787034

&lt;/pre&gt;</description>
    <dc:creator>rav_er</dc:creator>
    <dc:date>2013-02-12T13:34:30</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/93">
    <title>Treść wystąpień w nowym API</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/93</link>
    <description>&lt;pre&gt;Witam jak dostać się do treści wystąpień w nowym API, kiedyś jsonem 
szczytywałem po prostu,np http://api.sejmometr.pl/wystapienie/16714/tekst , 
a teraz nie widze w żadnej tabeli takiego pola. Czy czegoś nie zauważyłem, 
czy nie ma tabeli z id wystpienia i trescia itp ?
&lt;/pre&gt;</description>
    <dc:creator>Bartosz Bujała</dc:creator>
    <dc:date>2013-01-24T12:42:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/86">
    <title>problem z pobraniem rekordow z tabeli sejm_wystapienia</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/86</link>
    <description>&lt;pre&gt;Witam, mam problem z pobraniem obiektów z tabeli *sejm_wystapienia*. 
Mianowicie taki kod:
*            $dataset = new ep_Dataset( 'sejm_wystapienia' ); 
            echo 'przed';
            $sejm_wystapienia = $dataset-&amp;gt;find_all();
            echo 'po';*
powoduje, że cały program wysypuje się już na linii *$senat_wystapienia = 
$dataset-&amp;gt;find_all(); *i druga instrukcja* echo* oraz wszystko dalej 
zwyczajnie już nie działa. Wystarczy zmienić *'sejm_wystapienia' *w 
konstruktorze Dataset na cokolwiek innego, istniejącą, bądź nie nazwę 
tabeli i iterpreter przechodzi dalej. Rekordy z innych tabel zatem można 
wyświetlać (testowałem na tabelach *'senat_wystapienia', 'poslowie', 'gminy'
*). Obiekt Dataset przy tym wydaje się też być prawidłowo zainicjowany, 
gdyż użycie jego metody *count* zwraca prawidłową liczbę wszystkich 
rekordów w tabeli (28755).
Problemem ewidentnie wydaje się find_all() w tym kodzie;/ Ograniczenie 
liczby pobieranych rekordów także nic nie daje.
&lt;/pre&gt;</description>
    <dc:creator>Łukasz Iżuk</dc:creator>
    <dc:date>2013-01-23T00:30:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/85">
    <title>Aktualność danych</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/85</link>
    <description>&lt;pre&gt;Witam, właśnie zainstalowałem sobie bibilotekę eP_API i próbuje dojść co i 
jak. Chciałbym np pobrać informacje o najnowszych ustawach, tak próbuję to 
zrobić;
*$dane = new ep_Dataset('ustawy');*
*$dane = $dane-&amp;gt;order_by('data_publikacji', 'DESC')-&amp;gt;find_all(10,0);*
ale dostaje informacje o ustawach z 2000r. Czy coś robię źle?
&lt;/pre&gt;</description>
    <dc:creator>seoinfor-Re5JQEeQqe8AvxtiuMwx3w&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2013-01-22T16:24:41</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/82">
    <title>REST_API (z perspektywy pythona + json)</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/82</link>
    <description>&lt;pre&gt;Witam,
jesli ktoś potrzebuje rozwiązania do pythona to dobrym przykładem jest:

   req = 
urllib2.Request('http://sejmometr.pl/poslowie/(id_posla)/glosowania')
   req.add_header('Accept','application/vnd.EPF_API.v1+json')
   r = urllib2.urlopen(req)
   return r.read()

niestety glosowania nie zwracają głosowań a zakładkę info... (oczywiście 
url podany w przykładzie mozna zastąpić dowolnym) 

Fajnie by było, jakby w dziale "PRZYKŁADY"pojawiły się rozwiązania dla 
innych języków jak php oraz linkami odpowiednimi dla danych obiektów np. 
 ep_Sejm_Glosowanie - http://sejmometr.pl/sejm_glosowania/1213
ułatwiło by to implementacje i testowanie bez konieczności skakania między 
dokumentacją, a stroną z danymi.

Czy może ktoś podpowiedzieć, jak pobrać teraz listę wszystkich ID głosowań ?
W chwili obecnej link http://sejmometr.pl/sejm_glosowania w JSONie zwraca 
20 (ostatnich?) wyników 
("limit_max":"100","limit_default":"20") 
Czy da się zwrócić coś na wzór: http://api.sejmometr.pl/glosowania, jeśli 
tak to jak ? ?  (Ta funkcja zwraca tablicę identyfikatorów głosowań. Każdy 
identyfikator jest liczbą naturalną). Chodzi mi o listę wszystkich głosowań 
danej kadencji (a może jeszcze parametr "kadencja", który przyda się do 
rozróżniania kadencji posła)
Następnie można by pytać jak w poprzedniej 
wersji http://api.sejmometr.pl/glosowanie/{$ID_GLOSOWANIA}/wyniki
ale rozszerzyć o ID_POSLA, aby uniknąć zwracania tablic tablic, a otrzymać 
wyniki dla konkretnego posła 
lub opcja bez ID_POSLA zwracajaca glosowania wszystkich poslow, tylko wtedy 
wracamy do tablicy tablic asocjacyjnych

Jakieś pomysły jak to rozwiązać? 
Niestety http://sejmometr.pl/poslowie/ID_POSlA/glosowania nie działa i 
zwraca jedynie obiekt ep_Posel
&lt;/pre&gt;</description>
    <dc:creator>Bartłomiej Opajdowski</dc:creator>
    <dc:date>2012-12-28T12:29:20</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/78">
    <title>REST API (BETA)</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/78</link>
    <description>&lt;pre&gt;Witam

Dodaliśmy do Sejmometru REST API. Narazie nie podajemy informacji o tym na 
stronie, bo chciałem Was poprosić o opinię, co do samej filozofii 
działania. Oto jak to działa:

Pod adresy URL Sejmometru, pod którymi wyświetlane są strony HTML, można 
wysyłać żądania HTTP z odpowiednimi nagłówkami Accept. W tej chwili 
akceptowane są dwie wartości:
*application/vnd.EPF_API.v1+xml* (jeśli chcemy otrzymać dane w XML),
*application/vnd.EPF_API.v1+json* (jeśli chcemy otrzymać dane w JSON),
(dla każdej innej wartości, serwer zwróci stronę HTML).

Oto przykład w PHP:
    
    $opts = array(
      'http'=&amp;gt;array(
        'method' =&amp;gt; "GET",
        'header' =&amp;gt; array("Accept: application/vnd.EPF_API.v1+xml"),
      ),
    );
    
    $context = stream_context_create( $opts );
    $url = 'http://sejmometr.pl/gminy';
    
    $transport = file_get_contents( $url, null, $context );
    var_dump( $transport );


Odpowiedź z REST API jest dokumentem, z określonym polem "resource". To 
pole może być równe "ep_Dataset" lub "ep_Object".


Przykład 1
Jeśli chcemy przeglądać zbiór aktów prawnych, to należy wysyłać żądania pod 
adres:
http://sejmometr.pl/prawo

W odpowiedzi dostaniemy dokument typu "ep_Dataset". Dla zasobów tego typu, 
możemy dodatkowo kierować parametry GET:
*p* - numer strony wyników (domyślnie: 1)
*pp* - liczba wyników na stronę (każdy dataset ma swoją domyślną wartość, 
najczęściej 20)
*w* - pozwala filtrować wyniki. musi być tablicą conajmniej 3 elementów: 
['nazwa_pola', 'operator', 'wartosc']. Dozwolone operatory: =, &amp;lt;, &amp;gt;, &amp;lt;=, 
*o* - pozwala sortować wyniki. musi być tablicą conajmniej 2 elementów: 
['nazwa_pola', 'kierunek']. Dozwolone kierunki: ASC, DESC
*k* - dodatkowy filtr wyników. tablica fraz do szukania w datasecie. Dla 
większości datasetów miałomto być wyszukiwanie pełnotekstowe. Dla 
niektórych (np kody pocztowe) jest to wyszukiwanie "proste". ten filtr nie 
działa obecnie tak jak powinien. pracujemy nad tym.


Przykład 2
Jeżeli znamy id obiektu, którego dane chcemy uzyskać, to należy wysłać 
odpowiednie żądanie pod adres URL Sejmometru. Np jeśli chcemy uzyskać 
informacje o gminie, której id=100, to wysyłamy żądanie pod 
http://sejmometr.pl/gminy/100.

W odpowiedzi dostaniemy zasób typu "ep_Object". Docelowo pod adresy 
obiektów będzie można wysyłać parametry GET, które umożliwią załadowanie 
dodatkowych warstw obiektu. Np  w przypadku gmin, dodatkową warstwą może 
być zbiór punktów będących granicą geodezyjną gminy, wyniki wyborów itp. 
Pracujemy nad tym?



Proszę o opinię, czy tak może być i czy możemy iść dalej z takim systemem.
W tej chwili REST API jest dostępne bez żadnych ograniczeń. Docelowo 
chcielibyśmy, aby mogli z niego korzystać tylko osoby, które mają konto w 
Sejmometrze. Czy OAuth2 będzie dobrym systemem zarządzania dostępem przez 
tokeny?


Pozdrawiam
Daniel Macyszyn


 
&lt;/pre&gt;</description>
    <dc:creator>Daniel Macyszyn</dc:creator>
    <dc:date>2012-12-24T09:27:30</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/77">
    <title>Kilka pytań</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/77</link>
    <description>&lt;pre&gt;W związku z tym, że api REST się do tej pory nie pojawiło wznowiłem pracę 
nad biblioteką dla pythona (jeżeli ktoś chce zobaczyć jak idzie: 
https://github.com/rafales/python-epanstwo-api). Mam kilka pytań:


   1. O co chodzi z keywordami w DataSet? Nie znalazłem żadnych przykładów 
   użycia
   2. Jest gdzieś dostępna lista operatorów, które mogą być wykorzystane w 
   where()?
   3. Które endpointy zwracają dane w mode "DBF"? Przynajmniej jeden 
   przydałby się do testów.

Pozdrawiam
&lt;/pre&gt;</description>
    <dc:creator>Rafał Stożek</dc:creator>
    <dc:date>2012-12-22T12:25:20</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/76">
    <title>Dane na temat konkretnego głosowania posłów</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/76</link>
    <description>&lt;pre&gt;

Szanowni Państwo,

chciałbym skorzystać z Waszego API. Interesuje mnie jak głosowali posłowie 
w konkretnych głosowaniach. Bo w dokumentacji widzę tylko zbiorcze wyniki 
danego głosowania, natomiast na stronie przedstawiacie głosy posłów więc 
jakoś jest to dostępne.
Pozdrawiam
Tomek
&lt;/pre&gt;</description>
    <dc:creator>tomasz.bartoszewski-Re5JQEeQqe8AvxtiuMwx3w&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2012-12-14T18:47:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/75">
    <title>WebService</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/75</link>
    <description>&lt;pre&gt;Cześć

Czy będzie dostępny WebService dla danych?&lt;/pre&gt;</description>
    <dc:creator>Lukasz</dc:creator>
    <dc:date>2012-12-12T06:57:49</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/64">
    <title>Komentarz dotyczący nowego API</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/64</link>
    <description>&lt;pre&gt;Czyli pułapki, przemyślenia podczas implementacji biblioteki dla pythona.

1. Brak dokumentacji
To chyba sprawia, że implementacja czegokolwiek staje się praktycznie 
niemożliwa bez grzebania w kodzie PHP (i debugowania go), kilku godzin 
klnięcia i zmieniania koncepcji całej biblioteki.

2. API nie jest REST
Aktualnie większość API tworzy się zgodnie z zasadami REST. Nie bez powodu. 
O zaletach REST napisano już wiele. Jest w zasadzie standardem, istnieje 
sporo bibliotek, które pomagają w implementacji klientów, wszystko jest 
intuicyjne. Poza tym bardzo łatwo cache'ować takie API. Sejmometr natomiast 
ma bardzo niewygodne RPC, dostosowane pod bibliotekę napisaną w PHP. Tak 
się robiło 10 lat temu. Jeżeli cały projekt ma coś osiągnąć, to API powinno 
być proste, intuicyjne, wygodne i łatwe do wykorzystania w każdym języku i 
środowisku.

Proponuję obejrzeć tę 
prezentację: http://www.youtube.com/watch?v=NEWTPFzt2-E

3. Uwierzytelnianie
Powinno być proste. Najlepiej wykorzystać HTTP Auth. Pojedynczy token, bez 
sekretu i podpisywania zapytań. Zamiast tego wykorzystać HTTPS.
Aktualnie napisanie kodu do generowania sygnatur wymaga nawet kilku godzin 
oraz debugowania kodu biblioteki w PHP.

Aktualnie sposób podpisywania zapytań w połączeniu z formatem danych 
oczekiwanym przez PHP sprawia, że implementacja w każdym innym języku 
będzie upierdliwa. Musimy podpisać dane w stylu {"parametr": ["raz", "dwa", 
"trzy"], "inny_parametr": "1"}, natomiast wysłać dane w specyficzny dla PHP 
sposób: parametr[0]=raz&amp;amp;parametr[1]=dwa&amp;amp;parametr[2]=trzy&amp;amp;inny_parametr=1. 
PHP ma funkcję, która się tym zajmie. Żaden inny język nie. W pythonie - 
około 60-70 linii dziwnych przekształceń i kombinacji. Z dokumentacją 
wszystko było by prostsze! Warto też wspomnieć o użyciu JSON'a - otóż 
wygenerowany JSON nie w każdym języku wygląda tak samo. W Pythonie wygląda 
inaczej (dodatkowe spacje). Na szczęście Python sobie z tym radzi, ale nie 
wiem jak to wygląda z innymi językami.
Kolejna sprawa: parametry liczbowe czy boolean są przekazywane jako ciągi 
znaków, nawet do podpisu w sygnaturze!

Ja wiem - ktoś powie, że to nie są rzeczy, z którymi nie można sobie 
poradzić. Prawda. Max 100 linijek kodu i gotowe, ale to nie o to chodzi! To 
ma być nowoczesne, intuicyjne i łatwe. Uwierzytelnienie powinno zająć 1-2 
linijki, nie 100.

4. To tylko RPC dla biblioteki w PHP
To widać na każdym kroku. Wysyłane dane - dokładnie tak jak je traktuje 
PHP. Parametry są liczbowe, ale po parse_str( http_build_query( $params ), 
$params ) wszystko zamienia się na ciągi znaków? No to po stronie serwera 
też traktujmy wszystko jako ciągi znaków! (to ma znaczenie tylko przy 
generowaniu sygnatury). Zwracane dane nazwijmy dokładnie tak jak klasy w 
bibliotece PHP. Nawet się z tym nie kryjmy - nazwijmy zmienną "item_class".

Popatrzmy na tego potworka:

{'gminy.adres': 'Baborów, Ul. Dąbrowszczaków 2a 48-120 Baborów',
   'gminy.bip_www': 'www.bip.baborow.pl',
   'gminy.dochody_roczne': '16990949.47',
   'gminy.email': 'um-qeUeW3FsEPXVItvQsEIGlw&amp;lt; at &amp;gt;public.gmane.org',
   'gminy.fax': '0-77 403-69-28',
   'gminy.id': '20',
   'gminy.liczba_ludnosci': '6315',
   'gminy.nazwa': 'Baborów',
   'gminy.nazwa_urzedu': 'Urząd Miejski w Baborowie',
   'gminy.nts': '5163202013',
   'gminy.powiat_id': '62',
   'gminy.powierzchnia': '117.00',
   'gminy.telefon': '0-77 403-69-20',
   'gminy.teryt': '160201',
   'gminy.typ_id': '3',
   'gminy.wojewodztwo_id': '8',
   'gminy.wydatki_roczne': '16182887.10',
   'gminy.zadluzenie_roczne': '-808062.37',
   'powiaty.id': '62',
   'powiaty.nazwa': 'głubczycki',
   'powiaty.sejm_okreg_id': '21',
   'wojewodztwa.id': '8',
   'wojewodztwa.nazwa': 'Opolskie'}

Tak wyglądają dane zwrócone dla gminy. W każdym normalnym API "powiaty" i 
"wojewodztwa" były by w osobnych obiektach. No i oczywiście niepoprawny 
Content-Type (text/html zamiast application/json) który może załatwić 
niektóre biblioteki do obsługi HTTP.

W zwróconych danych znajduje się też jakieś tajemnicze "mode" z możliwymi 
wartościami "DB" i "DBF". Z tego co zrozumiałem, to przy DBF każdy rekord 
przyleci do nas osobno zakodowany w JSONie. Super! JSON W JSONie. Kto wpadł 
na ten genialny pomysł?

5. Gdy klient robi coś nie tak
Kiedy klient zrobi coś nie tak, normalnym jest wysłanie kodu http innego 
niż 200 (najlepiej któryś z 5xx). Ewentualnie obiekt w jsonie z "status": 
"error". To API zwraca błąd w postaci tekstowej, z kodem 200 (OK). Nie ma 
nawet żadnej czytelnej wiadomości, która uświadomiła by mnie co robię źle. 
Po prostu "Error no. 356" czy "Error no. 425". Czasem nawet jest jeszcze 
ciekawiej:

Warning: mysqli::query(): Empty query in /home/www/s/_lib/mPortal/db.php on 
line 18
&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD 
HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;&amp;lt;html&amp;gt;&amp;lt;head 
profile="http://www.w3.org/2005/10/profile"&amp;gt; &amp;lt;meta 
http-equiv="content-type" content="text/html; 
charset=UTF-8"&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;WystÄ piÅ nieoczekiwany bÅÄ d. 
Przepraszamy.&amp;lt;br/&amp;gt;&amp;lt;a href="http://sejmometr.pl"&amp;gt;Sejmometr&amp;lt;/a&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;

Myślicie, że to trudno wywołać? Skądże. Wystarczy się walnąć w nzwie 
datasetu. Oczywiście wysłane jako html. I szukaj wiatru w polu, bo stack 
trace pokazuje błąd gdzieś w bibliotece obsługującej API.

Podsumowanie
Podczas pisania tego skonsultowałem się z kilkoma osobami. Myślę, że 
aktualny stan najlepiej oddaje reakcja jednego z moich znajomych: "O 
matko Jap*cenzura*".

Prawdopodobnie o wielu rzeczach zapomniałem. Aktualne API to tylko RPC 
stworzone na potrzeby biblioteki w PHP. Z myślą głównie o wygodzie 
programisty, który to API tworzył, nie zaś ludzi, którzy będą z niego 
korzystać. Zostało stworzone według schematów, które aktualne były 10 lat 
temu, nie dzisiaj. Warningi z PHP pokazują tylko, że API nie jest w ogóle 
przetestowane. Jeżeli chcemy nowoczesnego e-państwa może powinniśmy zacząć 
od nowoczesnego API dla wszystkich ludzi, dla wszystkich platform, z którym 
poradzą sobie zarówno zaawansowani programiści, jak i Ci którzy na codzień 
są naukowcami czy kimkolwiek innym, kto w pracy programuje, ale programistą 
na codzień nie jest.

Nie zrozumcie mnie źle. Pomysł jest świetny. Zebraliście wszyskie dane i tu 
należą się same pochwały. Moje uwagi (domyślam się, że mogą zabrzmieć dosyć 
ostro) dotyczą tylko tej jednej warstwy - API. A projekt tej skali, który 
moim zdaniem jest ważny dla Polski musi mieć porządne, nowoczesne API. 
Także niech nikt się nie obraża, bo myślę, że zależy nam na tym samym.

Ten post powstał na prośbę Piotra Waglowskiego na Facebooku.
&lt;/pre&gt;</description>
    <dc:creator>Rafał Stożek</dc:creator>
    <dc:date>2012-12-05T17:14:28</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/61">
    <title>Nowe otwarcie :)</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/61</link>
    <description>&lt;pre&gt;Witam

Nazywam się Daniel Macyszyn. Pracuję w Fundacji ePaństwo i będę się z Wami 
komunikował na tej grupie. Uruchomiliśmy właśnie zupełnie nową wersję 
naszego API: http://sejmometr.pl/api. Wszelkie pytania, komentarze i 
przytyki można kierować do mnie :)

Wiem, że poprzednio nie byliśmy za bardzo aktywni na tej grupie, ale teraz 
się to zmieni. Proszę o kilka dni na przejrzenie starszych wątków. Wkrótce 
udzielę na nie odpowiedzi.

Pozdrawiam
Daniel Macyszyn
Fundacja ePaństwo
&lt;/pre&gt;</description>
    <dc:creator>Daniel Macyszyn</dc:creator>
    <dc:date>2012-12-05T11:53:55</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/55">
    <title>Wydajność sejmometr.pl</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/55</link>
    <description>&lt;pre&gt;Witam,

Pozwoliłem sobie zerknąć na wydajność strony głównej sejmometru (jako, że
API dalej w przebudowie) i nasunęło mi się kilka uwag odnośnie wydajności.

* Najwyraźniej niezalogowani userzy mają odpalaną sesję, nie wiem czy jest
jakiś powód ku temu. Warto wywalić razem z niepotrzebnymi cookies.
* Za każdym odświeżeniem strony mamy nagłówek odpowiedzi
Set-Cookiesm_token=deleted;
expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
pomimo braku takowego cookie.
* Nagłówki bronią cacheowania strony (Expires/Cache-Control/Pragma), nie
zawadziło by pewnie ustawienie cache'a na min 60s
Trzy powyższe eliminują możliwość prostego użycia cache'a/proxy w stylu
Varnish'a lub nawet cache'a w przeglądarce user'a. Nie wiem czy macie
istotny powód ku temu, ale można by rozważyć poprawienie, zwłaszcza, że sam
czas ładowania strony nie powala prędkością

Odpaliłem też szybko test przy użyciu Apache Benchmark'a i nie wiem czy w
ramach zabezpieczenia ale dla concurrency na poziomie 64 zaczynało masowo
rzucać odpowiedzi 30bajtowe. Podejrzewam, że to zabezpieczenie na takich
delikwentów jak ja, ale jeśli nie to może warto na to zerknąć ;-)

Taka myśl mi chodzi po głowie, nie wiem czy jest na to gdzieś odpowiedź,
ale wydaje mi się dość naturalne, że projekt w stylu sejmometru mógłby
zyskać będąc projektem typu open source (oczywiście jeśli taka forma
odpowiada autorom). Wtedy programiści niekoniecznie ściśle związani z
projektem mogli by dodać swój wkład, co zawsze było by dodatkową korzyścią
dla projektu. Bardzo fajnie się to sprawdza w przypadku projektów na
github'ie, i całej koncepcji pull-request'ów (żeby przejrzeć propozycję
zmian w kodzie przed akceptacja). Przyznam, że chętnie bym się w taki
sposób zangażował w ten projekt, acz z racji notorycznego braku czasu
ciężko było by mi zobowiązywać się do jakiegoś konkretnego stopnia
zaangażowania. Taka myśl. Pewnie już poruszaliście podobny temat, jeśli nie
to może warto ;-)

Ogólnie bardzo fajna jest nowa odsłona strony sejmometru. Świetna sprawa,
znacznie lepiej się prezentuje od poprzedniej wersji - jestem pod wrażeniem
:-) Pozdrawiam i życzę wszystkiego dobrego.

Pozdrawiam,
--
Paweł Sroka
&lt;/pre&gt;</description>
    <dc:creator>Paweł Sroka</dc:creator>
    <dc:date>2012-11-15T20:05:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/54">
    <title>JSON API, koniec utrzymywania tej wersji serwowania danych?</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/54</link>
    <description>&lt;pre&gt;Witam, 
ostatnio postanowiłem skorzystać z udostępnionego API, dane do 24 
października udaje mi się ściągnąć, niestety dalej jakby tylko część. 

http://api.sejmometr.pl/glosowanie/1213/info to ostatnia informacja o 
głosowaniu. 

Mimo że http://api.sejmometr.pl/glosowania zwraca id głosowań aż do 1268, 
to nie udaje mi się pobrać żadnego z "info" o tych głosowaniach (wszędzie 
zwraca mi null)

Czy macie podobny problem ? Czy pojawiło się nowe API i czy stare będzie 
równolegle utrzymywane? Czemu dokumentacja przestała działać? 
&lt;/pre&gt;</description>
    <dc:creator>Bartłomiej Opajdowski</dc:creator>
    <dc:date>2012-11-15T13:44:55</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/53">
    <title>JavnySejm - Java API dla danych serwisu Sejmometr</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/53</link>
    <description>&lt;pre&gt;
Zapraszam do zabawy, komentowania i krytykowania:

https://github.com/mariuszz/javnysejm

pozdrowienia,
Mariusz Zamolski

&lt;/pre&gt;</description>
    <dc:creator>Mariusz Zamolski</dc:creator>
    <dc:date>2012-09-05T22:36:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/52">
    <title>Kodowanie znaków</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/52</link>
    <description>&lt;pre&gt;Jaki zestaw kodowania znaków jest użyty w wypowiedzi o id 16883 ? Bo różni 
się on od poprzednich np. w wypowiedzi 16880 litera ę ma kod \u0119 a w 
18883 już \u0328 ?
&lt;/pre&gt;</description>
    <dc:creator>viko</dc:creator>
    <dc:date>2012-08-10T11:46:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/48">
    <title>Określenie kolejności wystąpień</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/48</link>
    <description>&lt;pre&gt;Czy da się uporządkować kolejność wystąpień posłów?

Funkcja wystapienia zwraca teoretycznie pola time_start i time_stop, które 
dają możliwość posortowania mówców, ale na 13 tysięcy wypowiedzi, które 
teraz są teraz udostępnianie brakuje czasu w ponad 1100 przypadkach.
Czy w tych przypadkach można się posiłkować wystapienia_id?
Czy większe wystapienia_id oznacza, że wystąpienie było później?

maciek
&lt;/pre&gt;</description>
    <dc:creator>Maciej Ostaszewski</dc:creator>
    <dc:date>2012-06-26T18:18:17</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/45">
    <title>Przynależność klubowa posłów</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/45</link>
    <description>&lt;pre&gt;Wydaje mi się, że przydałaby się funkcja pozwalająca sprawdzić 
przynależność klubową posła w określonej chwili.

Teraz da się albo odczytać bieżącą przynależność, albo sprawdzać po kolei 
wszystkie głosowania posła.

maciek
&lt;/pre&gt;</description>
    <dc:creator>Maciej Ostaszewski</dc:creator>
    <dc:date>2012-06-26T15:35:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/41">
    <title>Dwie niespójności w API</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/41</link>
    <description>&lt;pre&gt;
Witam

1) Rozpatrywania: time_start i time_stop w dokumentacji występują jako 
DateTime.
W rzeczywistości ( http://api.sejmometr.pl/rozpatrywanie/339/info ) są 
typu Time.
Jest to dość niewygodne a poza tym mocno niespójne z resztą API.
Pytanie: czy "tak ma być" czy planowana jest zmiana tego zachowania?

2) Punkty porządku dziennego: numer porządkowy punktu, w dokumentacji 
występuje jako Integer.
Jak widać na załączonym obrazku: http://api.sejmometr.pl/punkt/235/info 
może przyjąć wartość "11.",
która numeryczną nie jest.
Pytanie, czy to błąd w zwracanej wartości, czy też należy przyjąć dla 
tego pola typ "string".


pozdrowienia,
Mariusz Zamolski
&lt;/pre&gt;</description>
    <dc:creator>Mariusz Zamolski</dc:creator>
    <dc:date>2012-06-25T06:56:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/38">
    <title>Mówcy i funkcje mówców</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/38</link>
    <description>&lt;pre&gt;Czy jest gdzieś dostępny słownik mówców i funkcji mówców do wystąpień? 
Chciałbym móc rozwikłać to tajemnicze mowca_funkcja_id a najlepiej i 
mowca_id.
&lt;/pre&gt;</description>
    <dc:creator>Piotr Sobiegraj</dc:creator>
    <dc:date>2012-06-18T23:48:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.politics.sejmometr.api/37">
    <title>Złe numery punktów porządku w rozpatrywaniach</title>
    <link>http://comments.gmane.org/gmane.politics.sejmometr.api/37</link>
    <description>&lt;pre&gt;Przykładowo  http://api.sejmometr.pl/rozpatrywanie/747/info zwraca  {"id":"747","posiedzenie_id":"16","dzien_id":"78718","punkt_id":"747","tytul":"Punkt 
14. porz\u0105dku dziennego: Informacja dla Sejmu i Senatu o udziale 
Rzeczypospolitej Polskiej w pracach Unii Europejskiej w okresie 
lipiec\u2013grudzie\u0144 2011 r. (w okresie polskiej prezydencji) wraz ze 
stanowiskiem Komisji do Spraw Unii 
Europejskiej","ilosc_wystapien":"29","ilosc_glosowan":"0","time_start":"13:32:26","time_stop":"16:07:09"} 
czyli ten sam punkt_id co id. Oczywiście punktu 747 nie ma -  
http://api.sejmometr.pl/punkt/747/info zwraca "null" Ze strony (nie API) 
sejmometru  http://sejmometr.pl/punkt/389#747 wynika, że rozpatrywaniu 747 
odpowiada punkt 389. I faktycznie  http://api.sejmometr.pl/punkt/389/info zwraca  
{"id":"389","nr":"14.","tytul":"Informacja dla Sejmu i Senatu o udziale 
Rzeczypospolitej Polskiej w pracach Unii Europejskiej w okresie 
lipiec\u2013grudzie\u0144 2011 r. (w okresie polskiej prezydencji) wraz ze 
stanowiskiem Komisji do Spraw Unii 
Europejskiej","posiedzenie_id":"16","typ_id":"3","druk_akcja_id":"0","druk_id":"0","glosowanie_id":"0"} 
- tytuły się zgadzają.
Generalnie to dotyczy to wszystkich rozpatrywań - mają one albo null w 
punkt_id albo powtórzony id.
&lt;/pre&gt;</description>
    <dc:creator>Piotr Sobiegraj</dc:creator>
    <dc:date>2012-06-18T23:36:36</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.politics.sejmometr.api">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.politics.sejmometr.api</link>
  </textinput>
</rdf:RDF>
