Przyszłość Firefoksa

Wpis na 0. poziomie, wysłany 03 października 2011 o 12:13:36

Ten wpis dłuuugo leżakował jako szkic...

Jedną trzecią cyklu wydawniczego (po ludzku: dwa tygodnie) temu ponarzekałem sobie na zawrotne tempo pojawiania się nowych wersji Firefoksa. Wpis ten zaskoczył mnie dwiema rzeczami: popularnością (jak na mój blog) oraz odzewem. Otóż dwa dni później otrzymałem maila od firmy reprezentującej Mozillę w Polsce...

Czytaj dalej...

Fox on fire

Wpis na 0. poziomie, wysłany 19 sierpnia 2011 o 10:00:39

Wygląda na to, że trzeba powoli szukać alternatywy dla Firefoksa. Wszystko zaś przez ich czysto marketingową decyzję o nadrabianiu zaległości. Chodzi oczywiście o nową wersję co sześć tygodni. Problem w tym, że ta marketingowa decyzja ma fatalne skutki techniczne...

Nie mają już nawet czasu uaktualniać ilustracji

Czytaj dalej...

Linux 3.0

Wpis na 0. poziomie, wysłany 30 maja 2011 o 12:18:00

Nadejszła wiekopomna chwiła! Po ~20 latach:

+VERSION = 3
+PATCHLEVEL = 0
+SUBLEVEL = 0
+EXTRAVERSION = -rc1
W końcu coś się dzieje w tym Linuksie ;)

Linux 3.0

Czytaj dalej...

Dla porządku - Oracle porzuca OpenOffice

Wpis na 0. poziomie, wysłany 23 kwietnia 2011 o 09:33:57

Jak już pisałem niejednokrotnie, Oracle nie kontynuuje dobrej roboty Suna. Tym razem wycofują się z OpenOffice. Zgodnie z moim przeczuciem, wbrew tym którzy nie dostrzegali problemu. Obstawiam, że następny do odstrzału będzie VirtualBox.

Czytaj dalej...

Przemyślana paleta

Wpis na 0. poziomie, wysłany 08 kwietnia 2011 o 10:55:25

Sam należę do tych osobników, które może i odróżniają karmazynowy od szkarłatnego, ale nie mają zielonego pojęcia który lepiej pasuje do indygo. Stąd od zawsze moje ustawienia wszelakich kolorów ograniczają się do tego, co przyszło w pudełku. Problem w tym, że często twórcy programów z których korzystam, nie są w tej kwestii znacznie lepsi ode mnie... Dlatego bardzo cieszy, że trafiłem w sieci na serio przemyślaną paletę kolorów, z gotowymi plikami ustawień do co ważniejszych programów :)

Vim color palette

Czytaj dalej...

Największy (dotąd) błąd w C++

Wpis na 0. poziomie, wysłany 22 marca 2011 o 17:03:57

Jakiś czas temu opisywałem typowy błąd kompilacji w C++. Dzisiaj się męczę z dość poważną (np. mentorującą w Summer of Code) biblioteką... Która nijak nie chce współpracować. Pierwsza próba skompilowania przykładu z dokumentacji skończyła się ponad 700KB komunikatem błędu, z którego wklejam przykładową linijkę:

CGAL::Apollonius_graph_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_data_structure_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > >, CGAL::Boolean_tag >::expand_conflict_region(CGAL::internal::CC_iterator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> const&, CGAL::Apollonius_site_2 > const&, CGAL::Edge_list, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false>, int>, CGAL::Boolean_tag >&, std::map, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false>, bool, std::less, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> >, std::allocator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> const, bool> > >&, std::map, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false>, bool, std::less, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> >, std::allocator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> const, bool> > >&, std::vector, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> (*) [3], std::allocator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> (*) [3]> >*) in cc-hAZWN2.o

Jakoś nie miałem siły tego czytać... Może ktoś polecić jakiś prostszy soft który policzy mi graf (dualne do diagramu) Apolloniusa, albo od biedy Voronoi?

Python 3?!

Wpis na 0. poziomie, wysłany 21 lutego 2011 o 17:35:01

Zapowiada się na to, że znowu będę musiał przysiąść nad programowaniem w Pythonie. Z tej okazji, jak zawsze, robię rundę zwiadowczą w poszukiwaniu darmowych (z mojego punktu widzenia) usprawnień. Dzisiaj postanowiłem przyjrzeć się Pythonowi w wersji trzeciej. No i znalazłem kilka powodów, dla których jest on niemal niczym Perl 6 ;)

Czytaj dalej...

To niby jest C

Wpis na 0. poziomie, wysłany 05 grudnia 2010 o 17:13:19

Właśnie opublikowałem jedno z dziwniejszych przeżyć programistycznych. Niby jest to stare dobre C... Jednak sami powiedzcie, jak to Wam wygląda.

Czytaj dalej...

PyPy - dziękuję, postoję

Wpis na 0. poziomie, wysłany 01 grudnia 2010 o 17:52:48

W ramach pracy zawodowej piszę średniej wielkości aplikację w Pythonie. Żeby było śmieszniej, aplikacja ta powinna być możliwie wydajna. Stąd czasami przyglądam się różnym ciekawym rozwiązaniom. Cython jest niby fajny, ale psuje kompatybilność kodu z innymi interpreterami*. Psyco dało świetne rezultaty, ale projekt całkowicie zamarł. Dlatego dzisiaj przyjrzałem się PyPy.

Czytaj dalej...

Fixing Inkscape Python extensions

Wpis na 0. poziomie, wysłany 05 lipca 2010 o 23:20:11

Inkscape actually is a nice program. Maybe some of the competition (like Omnigraffle) are nicer. But then again, Inkscape beats them with the fact that it's free. It also has a lot of useful extensions (like Textext). Unfortunately, they managed to break the whole Python extension mechanism for 64bit OS X.

The exact error message was always:

The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml

And of course none of the hints found on Google helped...

Czytaj dalej...

Takie słowa od polityka? W Polsce?!

Wpis na 0. poziomie, wysłany 27 maja 2010 o 01:04:50

Każdy uczeń i student powinien mieć tablet zamiast teczki, oczywiście najlepiej z otwartym oprogramowaniem. I myślę, że to perspektywa szybsza, niż ktokolwiek się spodziewa.

Ten pan chyba wygrał mój głos w farsie nadchodzących wyborów. Nie tylko tą wypowiedzią.

Czytaj dalej...

Open Source, publish early a Jogger

Wpis na 0. poziomie, wysłany 26 maja 2010 o 14:42:28

Od ostatnich moich wpisów o Joggerze i późniejszego wpisu D4rkyego dużo się krzyczy o modelu rozwoju naszej platformy. Kierownictwo postanowiło, po skrzyknięciu chętnych, zamknąć się w wieży i nie wychodzić. Wiele osób uznaje to niemalże za zdradę stanu. Miejscami osoby domagające się otwarcia źródeł są dość, hmmm, radykalne. Zupełnie nie zauważając pewnych faktów.

Czytaj dalej...

Eksportowanie historii z Gajima

Wpis na 0. poziomie, wysłany 26 stycznia 2010 o 20:57:52

Mój ulubiony klient Jabbera trzyma logi w SQL. To raczej dobrze niż źle. Jednak w tym układzie nie można po prostu przekazać komuś pliku z jego historią. Nie będzie to prosty grep. Jeśli chcemy poratować kogoś częścią swojej historii rozmów, trzeba użyć czegoś w stylu poniższego:

Czytaj dalej...

All hail Dreamhost

Wpis na 0. poziomie, wysłany 16 października 2009 o 10:21:06

Jakoś tak przeszło bez echa, a to jednak ma znaczenie. Od pierwszego października Dreamhost sponsoruje proces stabilizacji projektu Linux-vserver. A to już najwyższy czas - poprzednia stabilna wersja bazuje na jądrze w wersji 2.6.22. Oczywiście nie oznacza to, że nie ma nowszych wersji. Jednak projekt ten ma rygorystyczną procedurę testowania, którą musi przejść przed ogłoszeniem wersji jako stabilnej. Zakończenia testów należy spodziewać się za kilka tygodni. Więc już niedługo zacznie się fala odświeżania systemów na hostingach.

Czytaj dalej...

Dr Richard Hipp w Polsce

Wpis na 0. poziomie, wysłany 16 marca 2009 o 01:05:06

Używałeś kiedyś Traca? Albo może CVSTraca? Ten drugi stał się źródłem inspiracji dla wszystkich dzisiejszych narzędzi opartych na koncepcie Timeline. Jeśli do tej pory odpowiadałeś przecząco, to z twórczością Dr Richarda Hippa miałeś kontakt dzięki bazie SQLite. Autor tego RDBMS o największej liczbie wdrożeń na świecie odwiedził w tym tygodniu Polskę. Wykładał o tworzeniu niezawodnego oprogramowania na politechnikach w Gdańsku i Wrocławiu.

Dr Richard Hipp i Remigiusz Modrzejewski (Dr Richard Hipp i Remigiusz Modrzejewski, wejście do gmachu głównego PG)

Czytaj dalej...