pwn2dict 2.6

Mam przyjemność ogłosić kolejną, niespodziewaną aktualizację pwn2dict. Jeden z czytelników zgłosił w ostatnim czasie usterkę związaną z sortowaniem haseł, która uniemożliwiała korzystanie z przekonwertowanych słowników w aplikacji koreader na Kindle. Problem istniał od samego początku, ale że w niczym nie przeszkadzał StarDictowi, dopiero teraz wyszedł na światło dzienne. Niemniej poprawka była banalna, więc bug jest już załatany. Przy okazji poprawiłem też inne ostrzeżenie wyświetlane przez stardict-verify, dotyczące spacji na końcu słów. Nowa wersja jest już dostępna do pobrania poniżej.

Przy okazji chciałbym ogłosić przenosiny bloga na adres mzblog.grajpopolsku.pl. Były one wymuszone pewnymi zmianami w konfiguracji serwera. Stare linki przekierowują, rzecz jasna, w odpowiednie miejsce, a żadne treści nie zostały utracone w wyniku migracji. W praktyce jest to jedynie zmiana kosmetyczna.

W każdym razie, oto lista zmian w pwn2dict 2.6:
- Poprawiony porządek sortowania haseł. Teraz jest on w 100% zgodny z oczekiwanym przez StarDicta.
- Skrypt usuwa teraz bezużyteczne spacje, które mogły pojawić się na końcu słów.

Linki:
pwn2dict, Instrukcja obsługi

Przenosiny repozytorium

W związku z tym, że Gitorious z końcem maja kończy swoją działalność, postanowiłem przenieść repozytorium pwn2dict na serwis GitLab. Nowy adres repozytorium to: http://gitlab.com/pwn2dict/pwn2dict. Wszelkie zmiany i poprawki od tej pory będą trafiały tam w pierwszej kolejności i rzecz jasna tutaj.

Korzystając z okazji naprawiłem dostrzeżoną przez czytelnika regresję w ostatniej wersji, która uniemożliwiała konwersję do formatu dictd. Poprawioną wersję można pobrać ze wspomnianego wyżej repozytorium, jak i tutaj. Ze względu na drobność usterki nie podbijałem wersji skryptu.

pwn2dict 2.5

Od ostatniej aktualizacji skryptu wiele wody w Wiśle upłynęło. Przez ten czas (ponad dwa lata!) uzbierało się parę stosunkowo drobnych, ale cennych zmian. Były one wprawdzie dostępne dla wszystkich w repozytorium na Gitoriousie, ale uznałem, że najwyższy czas wydać je oficjalnie, podbijając jednocześnie wersję skryptu.

Oto zmiany, które znajdziecie w pwn2dict 2.5:
- Poprawiona kompatybilność z Pythonem 3.2+
- Wsparcie dla słownika Portal PWN v1.2 2003
- Przyśpieszenie działania skryptu nawet o 30%

Linki:
pwn2dict, Instrukcja obsługi

pwn2dict 2.4

Po paromiesięcznym przestoju przyszedł czas na kolejną, może nieco drobniejszą niż poprzednim razem, aktualizację pwn2dict. Prawdę mówiąc, zmiany były już gotowe w grudniu, ale przez natłok innych zajęć nie miałem czasu wydać nowej wersji.

Nową funkcją jest wstępny eksport do formatu dictd obsługiwanego między innymi przez program S60Dict. Konwersji do tego nowo dodanego formatu można dokonać za pomocą nowego przełącznika -d / --dictd, analogicznie do formatu tabfile. Korzystając z okazji poprawiłem też jeden drobny bug, który mógł wywołać problemy z indeksem haseł, jeśli z jakiejś przyczyny słownik zawierał puste definicje.

Poza tym, w tak zwanym międzyczasie postanowiłem utworzyć dla skryptu repozytorium na Gitoriousie. Jeśli z jakiegoś powodu potrzebujecie którejś starszej wersji albo chcecie prześledzić zmiany, teraz macie taką możliwość. Umieściłem tam też przetłumaczoną na angielski instrukcję użytkowania skryptu. Podczas prac nad skryptem i tak używałem Gita, więc był to dość oczywisty wybór.

Linki:
pwn2dict, Instrukcja obsługi

pwn2dict 2.3

Minęło ledwie półtora tygodnia od poprzedniej wersji, a już mam dla was kolejną i jest to aktualizacja dość znaczna!

Otóż jeden z czytelników zgłosił bowiem problem z bazami rosyjsko-polskiego słownika, uniemożliwiający otwarcie niektórych haseł. Co ciekawe, problem występował tylko pod StarDictem, ale nie pod GoldenDictem. Otóż, okazuje się, że mój kod sortujący hasła przez drobne niedopatrzenie układał hasła nieco inaczej niż tego oczekuje StarDict. Problem na dobrą sprawę nie występował przy polskich i łacińskich znakach, ale przy cyrylicy już tak. Potem okazało się, że podobny problem dotyka również umlautów w niemiecko-polskim słowniku (o którym więcej za chwilę).

Sama tamta zmiana jest moim zdaniem na tyle istotna, żeby podbić numer wersji, ale na tym jeszcze nie koniec! Poprawiając tamten błąd dostałem też weny do uproszczenia kawałków kodu zapewniającego działanie pod obydwoma wersjami Pythona, dzięki czemu skrypt jest trochę ładniejszy :)

Korzystając z dobrej passy przyśpieszyłem też kod formatujący hasła i definicje. Teraz standardowe encje nie są ręcznie formatowane. Skrypt zmalał o jakieś 150 linii i zyskał do 14% szybkości, jeśli wierzyć testom.

Na koniec (last but not least), dzięki wymianie zrzutów ekranu i fragmentów haseł z czytelnikiem (podziękowania dla Przemysława Kaplona) dodałem też wsparcie dla (jeszcze ciepłego!) niemiecko-polskiego i polsko-niemieckiego słownika PWN!

Potraktujcie to jako świąteczny prezent ode mnie :)

Skrócona lista zmian:
* Prawidłowe sortowanie haseł słownika rosyjsko-polskiego i niemiecko-polskiego w StarDict
* Optymalizacja szybkości - do 14% szybciej
* Obsługa niemiecko-polskiego i polsko-niemieckiego słownika PWN

Linki:
pwn2dict, Instrukcja obsługi

GCC 4.5.1

Jakieś trzy tygodnie temu po uprzednim przestudiowaniu listy otwartych bugów postanowiłem zaktualizować GCC do wersji 4.5.1 i przekompilować system. Pamiętając burzliwą aktualizację do 4.1 i nieco mniej burzliwą do 4.3, spodziewałem się wielu kłód rzuconych pod nogi. Tymczasem była to prawdopodobnie najbardziej bezbolesna aktualizacja kompilatora, jaką kiedykolwiek przeprowadzałem. Może miałem dużo szczęścia, a może trafiłem po prostu na właściwy moment, ale z radością donoszę, że ŻADEN spośród ponad 950 pakietów w moim systemie nie wysypał się z powodu nowego GCC. Jedynym pakietem, który padł była stepmania w wersji cvs z zaprzyjaźnionego overlaya, a przyczyną usterki były zmiany w API ffmpeg, nie zaś zmiany w nowej wersji GCC. Cóż, wersja stabilna z portage i tak działa lepiej :) Krótko mówiąc, aktualizacja poszła jak po maśle. Nie zauważyłem w systemie żadnych niepokojących objawów. Nie uraczyłem też żadnych ewidentnych zysków z aktualizacji, ale cóż... :)

pwn2dict 2.2

Prawie równo pół roku od ostatniej aktualizacji udostępniam nową wersję skryptu. Główną zmianą jest tym razem dodanie pełnego wsparcia dla formatu PWN w wersji 2003, używanego w płytach dołączanych kiedyś do papierowych wersji słowników. Konwersja została sprawdzona na Słowniku Poprawnej Polszczyzny i Słowniku Języka Polskiego PWN (podziękowania dla Jakuba Cholewki za informację zwrotną), a także angielsko-polskim słowniku PWN Oxford 2003. Ponadto zostały poprawione usterki kosmetyczne w słowniku Słowniku Języka Polskiego w wersji dołączonej do Gazety Wyborczej. Jeśli ktoś z was dysponuje którymś z tych słowników i wcześniej nie mógł ich przekonwertować, teraz nic nie powinno stanąć na przeszkodzie :)

Nową wersję można pobrać tutaj bądź tam gdzie zwykle.

Czcionki w Operze 10.50+

Jako użytkownik Opery od wersji 4.x poczułem się mocno zmartwiony niefrasobliwym podejściem deweloperów Opera Software do kwestii czcionek w linuksowej wersji tej przeglądarki. Mniej więcej odkąd zaczęły się ukazywać pierwsze testowe buildy nowej serii Opery, cierpliwie czekam aż czcionki zaczną wyglądać "po ludzku". W różnych miejscach globalnej sieci informatycznej (w tym w komentarzach na blogu Desktop Team) nie brak zgłoszeń, że czcionki wyglądają gorzej niż w Operze 10.10, ale poprawek ani widu ani słychu. Problem dotyczy osób takich jak ja, które korzystają z nieco bardziej wyszukanych ustawień czcionek, konkretnie subpixel hintingu. Przyczyn zaś należy dopatrywać się w rozwodzie nowej serii Opery z Qt na rzecz własnego toolkitu. Wprawdzie deweloperom przyświecał szczytny cel - przyśpieszenie działania przeglądarki i lepsza integracja z różnymi środowiskami, ale w wyniku migracji nie obyło się bez różnych mniej lub bardziej uciążliwych usterek - w tym właśnie związanych z czcionkami. Opóźnienie w pracach nad wersją linuksową dodatkowo zaogniło problem.

W każdym razie, przez długi czas właśnie czcionki zmuszały mnie do pozostania przy Operze 10.1x. Wiedząc jednak, że nie mogę trzymać się jej bez końca, ostatnio zdecydowałem na aktualizację. Oczywiście zgodnie z oczekiwaniami wersja 10.62 nadal ignorowała ustawienia fontconfiga. Doświadczalnie doszedłem do wniosku, że istota problemu tkwi w wymuszaniu natywnego hintingu (BCI) zamiast autohintingu. Który z nich jest lepszy to kwestia gustu, ale osobiście przyzwyczaiłem się do tego, co oferuje autohinter, i na czymkolwiek innym moje oczy odczuwają wyraźne zmęczenie.

Biorąc pod uwagę opieszałość Opera Software i bezużyteczność ustawień fontconfig, postanowiłem zaatakować poziom wyżej - w kodzie źródłowym freetype. Mimo, że pierwszy raz zapuszczałem się w te tereny, sprawa okazała się dość prosta. Kilka linii kodu wystarczyło, żeby wymusić na stałe autohinter. Później dopisałem jeszcze warunek, żeby nie był używany dla grubych fontów (robią się trochę ZA grube).

Nie będzie to w żadnym razie kompletne HOWTO (zakładam, że czytający będą wiedzieli co z tym zrobić), ale oto co zrobiłem:
1) Skompilowałem freetype z zaaplikowaną moją łatką.
2) Skopiowałem /usr/lib/libfreetype.so.6.6.0 z tak spreparowanej paczki w bezpieczne miejsce.
3) W skrypcie /usr/bin/opera przed ostatnią linią dopisałem:

export LD_PRELOAD="/ścieżka/do/załatanego/libfreetype.so"

To może niezbyt eleganckie obejście dało mi w końcu jakąś namiastkę tego, czego szukałem - czcionki, od których nie krwawią mi oczy :P Mam wrażenie, że nie wszystko wygląda tak samo jak kiedyś (nowa wersja jakoś inaczej dobiera rozmiary czcionek i nie tylko), ale efekt jest bardzo bliski temu, do czego przywykłem. Mam nadzieję, że komuś te informacje pomogą w uniknięciu wizyty u okulisty :) Tymczasem nadal będę czekał na wersję Opery, w która będzie respektowała bez żadnych obejść ustawienia czcionek.

KDE 4.5 RC1

Jak widzicie, nie pisałem tutaj o drugiej becie i dwóch snapshotach, które pojawiły się w międzyczasie. Jednak nie oznacza to, że ich nie testowałem. Bardzo zwięźle podsumowując: prawie jak beta1, ale z paroma irytującymi babolami. Pozwolę sobie więc przedstawić listę ważniejszych zmian w RC1 w stosunku do wersji beta1, puszczając w niepamięć tamte buildy.

Jak więc działa wydana przed paroma dniami wersja RC1?
+ Menu w KDMie znowu działa, dzięki czemu można z niego normalnie korzystać.
+ Ikony oparte na libdbusmenu mają już normalnie działające menusy i wyświetlają się w nich ikony.
+ Plasma nie zapomina już ustawień pulpitu.
+ Linki z historii apletu Pastebin faktycznie działają.

Są to więc drobne, ale istotne zmiany na plus. Nowych bugów nie zauważyłem. Używam tej wersji już zupełnie komfortowo.

pwn2dict 2.1

Pamiętałem, że część was, szanowni użytkownicy, próbowała kiedyś uruchamiać skrypt za pomocą Pythona 3.x i dziwiła się, że nie działa. Ponieważ mam teraz Pythona 3.1 zainstalowanego obok poczciwego 2.6, postanowiłem zająć się tą sprawą. Efektem jest nowa wersja skryptu, która działa z Pythonem 2.6, jak i 3.1. Poza tym nie nanosiłem żadnych zmian w samej funkcjonalności. Skrypt dostępny tam, gdzie zwykle.