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.

KDE 4.5 beta1

Trzy miesiące od wydania pierwszej stabilnej wersji KDE 4.4 mamy już pierwszą betę z serii 4.5. Jak zwykle nie mogłem poskromić ciekawości i skompilowałem ją zaraz po ukazaniu się tarballi 🙂 Czas więc znowu na krótkie wypunktowanie zmian i moich obserwacji.

Plusy:
+ Powiadomienia zajmują mniej miejsca i w końcu działa ich przechowywanie i grupowanie. Wizualnie być może jest jeszcze trochę do poprawy, ale jest to krok w dobrym kierunku.
+ Zasobnik systemowy ma teraz mniej odcinający się od reszty panelu wygląd, co wydaje mi się miłą dla oczu zmianą.
+ Plasmoid "Informacja o urządzeniach" wyświetla się teraz w zasobniku systemowym, dzięki czemu można oszczędzić trochę miejsca na panelu.
+ KRunner również wygląda zgrabniej i działa szybciej.
+ Panel ustawień systemowych ma nowy układ, bez podziału na dwie zakładki i z nieco przemianowanymi i inaczej rozłożonymi panelami. Z początku będzie trudno się przyzwyczaić, ale teraz jest dużo przejrzyściej.
+ Okno wyboru tapety jest teraz dużo przyjemniejsze w użyciu.
+ Dodano jeden nowy efekt pulpitu, Glide, którego prawdę mówiąc nie miałem okazji sprawdzić w akcji.
+ Zapewne przez zmiany w stylu Oxygen zniknął błąd kosmetyczny w smplayerze (śmieci przy wyświetlaniu czasu na pełnym ekranie).

Minusy:
– Ze względu na opóźnienia w portowaniu KMaila do Akonadi nowa beta nie zawiera kdepim (choć nieoficjalnie w Gentoo jest większość paczek). Zostałem więc przy starym KMailu i zależnościach.
– Po aktualizacji zniknęły mi wszystkie ustawienia pulpitu Plasmy. Musiałem od nowa ustawiać tapetę i wrzucać plasmoidy. Na szczęście z panelem nie było takich samych przygód. [UPDATE: Zdaje się, że jest to skutek uboczny nowego zarządzania działaniami. Wystarczyło wybrać odpowiednie działanie w Activities i pulpit wrócił do normy bez potrzeby ustawiania wszystkiego od nowa. Nie zmienia to jednak faktu, że powinno to przebiegać jakoś gładziej.]
– Ponieważ miałem "Informację o urządzeniach" na panelu, a w nowym KDE dodano ten plasmoid do zasobnika systemowego, na dzień dobry miałem podwójne powiadomienia o włożeniu penkluczyka 🙂 Poprawione oczywiście przez usunięcie starej kopii plasmoida.
– Tooltipy z podglądem folderów w "Widoku katalogu" z jakiegoś powodu pokazują tylko nazwę, zawartości już nie. Nie jestem w sumie pewien czy to nie działanie celowe. Stare zachowanie przez długi czas mnie irytowało aż w końcu do niego przywykłem. A teraz będę musiał się najwyraźniej odzwyczajać 🙂[UPDATE: Okazuje się, że teraz tooltipy pokazują się po naciśnięciu nowej ikonki pod plusem. Czemu jej nie zauważyłem? Używany przeze mnie temat jej nie posiadał, a puste miejsce nie zdradzało jej obecności 🙂 Pomogło skopiowanie widgets/action-overlays.svgz z tematu Air.]
– Nowe Konsole miało mocno popsute menu, zarówno główne jak i to pod prawoklikiem, przez co nie miałem dostępu do podstawowej funkcjonalności. Skończyło się na powrocie do Konsole z KDE 4.4.3. [UPDATE: Kasując zapobiegawczo stare ustawienia Konsole przegapiłem jeden plik konfiguracyjny, sessionui.rc. Po jego usunięciu razem z konsoleui.rc wszystko wyświetla się jak należy.]
– Menu w nowym Klipperze działa tylko po naciśnięciu lewego przycisku (przedtem można było też kliknąć prawym) i uparciu nie chce znikać po kliknięciu na jeden z elementów. Tu również skończyło się na powrocie do starszej wersji. [UPDATE: Podbicie libdbusmenu-qt do wersji 0.3.3 usuwa jeden z problemów, mianowicie niedziałające menu pod prawym przyciskiem. UPDATE 2: Aktualizacja do wersji 4.4.81 rozwiązuje problem z nieznikającym menu.]
– Niektóre ikony zasobnika (przynajmniej te używające nowego standardu) nie chcą zniknąć po zamknięciu programu, do którego należą. Zdarzyło mi się to z nowym Klipperem i Amarokiem.[UPDATE: Okazuje się, że jest to bug w Qt 4.6.2. Aktualizacja do Qt 4.6.3 załatwia sprawę.]
– Menusy w kdmie nie reagują na kliknięcie, przez co są bezużyteczne. Na szczęście rzadko widuję kdma, więc nie jest to dla mnie żaden problem.

Werdykt:
Jak na pierwszą betę, nowe KDE działa dość solidnie. Wiele mniejszych i większych usprawnień sprawia, że praca jest w moim odczuciu wygodniejsza niż w KDE 4.4. Downgrade Konsole i Klippera zasadniczo usuwa wszystkie usterki, które uniemożliwiały mi normalną pracę. O ile kolejne wersje więcej naprawią niż napsują (*khem* KMail2 *khem*), będzie dobrze 🙂

GCC 4.4.3

Kilka dni temu lazy_bum natchnął mnie do spróbowania najnowszej wydanej wersji GCC czyli wersji 4.4.3. Zwykle czekam aż kompilator trafi do stable, ale niektóre dystrybucje już jakiś czas używają GCC 4.4, a prawie wszystkie związane bugi na bugs.gentoo.org są od dawna zamknięte. Postanowiłem więc wziąć byka za rogi i wczorajszy dzień zszedł na zwyczajową rekompilację systemu. O dziwo natknąłem się na o wiele mniej przeciwności niż przy aktualizacji do 4.1 czy 4.3. Z powodu niekompatybilności wysypały się tylko 3 pakiety (w tym jeden z wiadomego overlaya, a jeden naprawiony na następny dzień w portage). Ciekawskich informuję, że były to media-sound/gogo, app-i18n/scim-bridge i net-print/hplip. Poza tym nie stwierdziłem żadnych czkawek, a system zdaje się chodzić cokolwiek płynniej. A podobno może być jeszcze lepiej, jeśli dołoży się wsparcie dla graphite. Niewykluczone, że sprawdzę to w najbliższym czasie. Na razie kompilowania czegokolwiek mam po dziurki w nosie 🙂

Kelogviewer dla KDE4

Jakiś czas temu szukałem programu do przeglądania plików elog z portage. Wiedziałem oczywiście o istnieniu elogviewer, ale chciałem czegoś pod KDE. Bliźniaczy skrypt, kelogviewer, wymagał niestety KDE 3.5 i nie był od dawna aktualizowany. Pomyślałem sobie więc, że warto by go przeportować do KDE4. Ta sztuka, jak widać, mi się udała. Wrzucam go więc tutaj. Przy okazji usunąłem nawet parę wpadek 🙂

Moje zmiany:
* Kompletny port do PyKDE4 i PyQt4
* Poprawione wyszukiwanie
* Poprawione formatowanie sekcji
* Alfabetycznie posortowane filtry

Link: kelogviewer.py

Uwagi:
* Skrypt wymaga do działania PyKDE4 i PyQt4
* Elogi z paludisa nie są obsługiwane ze względu na nieco inny format
* Skrypt nie był testowany z Pythonem 3

QFaktury – zestaw łatek

Jakiś czas temu przyszło mi szukać linuksowego programu do wystawiania faktur. Na pierwszy ogień poszły QFaktury, choćby dlatego, że opiekuję się ebuildem do nich 🙂 Skompilowałem więc program i zacząłem się nim bawić. Niestety, o ile działał i miał dość przyjemny interfejs, mniejsze i większe niedoróbki tu i ówdzie skutecznie psuły wrażenie. Tu dane kontrahentów wyparowywały, tam historia faktur nic nie pokazywała, gdzie indziej jakieś drobiazgi kosmetyczne. Zamiast marudzić postąpiłem jednak zgodnie z mantrą open-source – "napraw to sam". Zakasałem więc rękawy i przez kilka dni wyłapałem i naprawiłem dostrzeżone przez siebie błędy. A teraz udostępniam swoje zmiany jako patchset do nałożenia na QFaktury 0.6.2_1. Mam nadzieję, że komuś to oszczędzi nerwów 🙂

Poprawki:
* Odwrócone działanie opcji "rok krótki"
* Błąd przy zmianie VAT na liście towarów (backport z trunka)
* Odczyt i zapis drugiego ID w danych użytkownika
* Znikające dane kontrahentów i towary przy pierwszym uruchomieniu
* Nieprawidłowy zapis filtru daty przy pierwszym uruchomieniu
* Spójność czcionek w ustawieniach wydruków
* Tworzenie katalogu danych
* Format daty końcowej w filtrze przy pierwszym uruchomieniu
* Usunięte wszystkie znane wycieki pamięci
* Wczytywanie jednostek na liście towarów
* Spójność kosmetyczna pól Ilość i Rabat przy dodawaniu towarów

Inne zmiany:
* Filtr daty domyślnie pokazuje zakres o 1 stycznia do 31 grudnia bieżącego roku
* Uproszczony zapis i odczyt filtra daty
* Dodany przycisk resetujący filtr
* Zmiana domyślnego formatu NIP z 999-99-999-99 na 999-999-99-99
* Zapisywanie danych w ~/.local/share/data zamiast ~/elinux
* Automatyczne dopasowywanie szerokości kolumn w tabelkach

Link: qfaktury-0.6.2_1-patches.tar.gz
Łatki sprawdzone z ostatnią wydaną wersją programu QFaktury (0.6.2_1). Większość z nich powinna się też nakładać się na QFaktury z trunka, po drobnych zmianach.

pwn2dict 2.0

Od wydania pierwszej wersji pwn2dict upłynął ponad rok. Skrypt spotkał się z cieplejszym przyjęciem niż się spodziewałem. W wyniku kolejnych aktualizacji dodałem wsparcie dla różnych mutacji formatu i usunąłem pomniejsze niedopatrzenia. Ponieważ skrypt zauważalnie się rozrósł, od jakiegoś czasu miałem ochotę przepisać co niektóre części. W ostatnich dniach postanowiłem w końcu to zrobić, przy okazji dodając kilka nowych funkcji. Zmiany są na tyle poważne, że postanowiłem podbić wersję do 2.0.

Co nowego:
* Wsparcie dla Słownika Wyrazów Obcych i Słownika Frazeologicznego (zamiana nowych encji i tagów, sam format był już obsługiwany)
* Znacznie obniżone zużycie pamięci dzięki nowemu podejściu do konwersji (definicje są teraz wczytywane i konwertowane pojedynczo)
* Ok. 40% przyśpieszenia dzięki optymalizacji formatowania wpisów indeksu (tylko hasła ze znakami specjalnymi są teraz formatowane)
* Wchłonięcie skryptu pwn2tabfile (funkcjonalność dostępna pod opcją -t / –tabfile)
* Eksperymentalne kolorowanie wzorowane na kydpdict (opcja -c / –colors, domyślnie wyłączone)
* Automatyczny wybór nazwy docelowej, jeśli nie została podana przez użytkownika
* Rozliczne poprawki techniczne i stylistyczne, w tym przepisanie kodu jako klasy

Link: pwn2dict
Repozytorium: GitLab

Obsługa skryptu:

pwn2dict.py [opcje] zrodlo.win [nazwa.dict]

Dostępne opcje:

  -t, --tabfile  konwersja do formatu tabfile
  -c, --colors   eksperymentalne kolorowanie znaczników

Uwagi końcowe:
Domyślnym formatem docelowym jest StarDict. Jeśli nie podano nazwy docelowej, zostanie ona wybrana automatycznie. Skrypt wymaga Pythona 2.6. Nie jest kompatybilny z Pythonem 3.x. Funkcjonalność starego skryptu pwn2tabfile została wchłonięta i skrypt ten nie będzie już wspierany. Autor nie ponosi odpowiedzialności za używanie programu z nielegalnymi kopiami baz słownika. Gorąco zachęcam do kupna słowników.

Historia zmian:
2008.10.31: Pierwsza wersja skryptu obsługująca słownik PWN Oxford 2004.
2009.03.01: Dodana obsługa dla formatu PWN Oxford 2006/2007.
2009.06.17: Obsługa baz papierowego słownika w edycji 2005.
2009.09.01: Obsługę słownika polsko-rosyjskiego/rosyjsko-polskiego.

2010.02.11: Wersja 2.0 dodająca wsparcie dla Słownika Wyrazów Obcych i Słownika Frazeologicznego. Gruntownie przepisany skrypt, optymalizacja szybkości i nowe funkcje.
2010.03.04: Poprawiłem drobne niedopatrzenie przy konwersji do formatu StarDicta.
2010.06.06: Wersja 2.1 dodająca wsparcie dla Pythona 3.x.
2010.12.08: Wersja 2.2 dodająca wsparcie dla formatu PWN 2003.
2010.12.19: Wersja 2.3 dodająca wsparcie dla niemiecko-polskiego/polsko-niemieckiego słownika PWN i poprawiająca sortowanie haseł ze znakami narodowymi
2011.05.02: Wersja 2.4 dodająca obsługę konwersji do formatu dictd
2013.05.13: Wersja 2.5 poprawiająca kompatybilność z Pythonem 3.2+, dodająca wsparcie dla słownika Portal PWN v1.2 2003 i przyśpieszająca konwersję nawet o 30%

Pastebin – kolejne starcie

Parę dni temu wstaw.org zmienił layout, a co się z tym wiąże przestała działać moja łatka do plasmoida Pastebin ze wsparciem dla tego serwisu. Zaktualizowałem ją więc, co wyszło jej ogólnie na zdrowie. Teraz zamiast parsować treść strony wynikowej bierze url z drugiego przekierowania, co jest dużo ładniejsze i mniej podatne na błędy 🙂 Niejako przy okazji przyuważyłem też problem z Imageshackiem. Tę niedoróbkę też naprawiłem, zmieniając używane wyrażenie regularne 🙂 Łatki do pobrania tutaj i tutaj.

UPDATE: Upstream naprawił bug z Imageshack w inny sposób w finalnym KDE 4.4.0. Moja łatka jest niepotrzebna.
UPDATE2: Łatka do wstaw/wklej.org miała jedną zbyteczną funkcję, którą teraz usunąłem. Do pobrania pod starym adresem.
UPDATE3: Dla niecierpliwych ludzi, którzy podobnie jak rzucili się w wir testów KDE 4.5, przygotowałem zaktualizowaną łatkę dla tej wersji.
UPDATE4: Począwszy od KDE 4.6 plasmoid Pastebin posiada fabrycznie wsparcie dla wstaw.org i wklej.org. Tym samym moje łatki stały się zbędne. Najnowsza wersja plasmoida używa do tego skryptów QtScript, które można dociągnąć z sieci. Mój kod nie został więc bezpośrednio użyty, ale jakiś wkład miałem 🙂

Sztuczki i kruczki

Czas na kolejną porcję łatek i porad:

* mc można zmusić do automatycznego wykrywania kodowania edytowanych i wyświetlanych plików za pomocą enca. W tym celu nakładamy tę łatkę. W ~/.mc/ini w sekcji [Misc] powinna pojawić się opcja autodetect_codeset, którą w naszym przypadku ustawiamy na pl. Łatka oparta na znalezionej tutaj. Usunąłem dwa warningi przy kompilacji i poprawiłem jeden hunk, który nie nakładał się na mc 4.7.0.1. (UPDATE: Poprawiłem ścieżkę do jednego nagłówka, bo łatka działała z 4.7.0.1, ale z 4.7.0.2 już. Teraz działa z obydwiema. Huh.)

* Od dłuższego czasu nie działał mi tryb 800×600 pod Xami. Nie pamiętam czy stało się to po którejś aktualizacji nvidia-drivers, Xorga czy też zmianach w jego konfiguracji. W każdym razie, mój LCD buntował się komunikatem "bad refresh", wobec czego byłem bezsilny… aż do wczoraj, kiedy odkryłem, że wywoływany tryb nazywa się 800x600d60. Po krótkiej rozmowie z wujkiem Google okazało się, że to tryb double-scan, coś raczej niewskazanego dla LCD. Odkryłem też, że tryb 800x600_60 (bez double-scan) działał dobrze. Pozostało wymusić, żeby tryby z "d" miały niższy priorytet. Rozwiązanie z dokumentacji nvidia-drivers (odwraca priorytet trybów double-scan):

Option "ModeValidation" "CRT-0: DoubleScanPriority"

* Okular to fajny czytnik pdfów, ale nie mogłem zdzierżyć braku wygładzania podpikselowego. Winny był backend Qt4 w bibliotece poppler i od dłuższego czasu próbowałem różnych chwytów i łatek. Bezskutecznie głównie ze względu na rozbicie popplera w Gentoo na kilka modułów i to, że ebuildy używały autotoolsów (łatki działały tylko przy budowaniu z CMake). Aż w końcu w ostatnich dniach w portage pojawił się nowy, monolityczny ebuild do popplera (app-text/poppler), używający CMake 🙂 Nałożyłem więc rzeczone łatki i mam ładne fonty w Okularze. Wprawdzie nie w każdym pdfie (to chyba zależy od fontów użytych przy generacji albo użytych narzędzi), ale Adobe Reader poszedł do krainy wiecznych łowów 😛

* Ostatnio udało mi się zmusić many do wyświetlania polskich znaków niezależnie od źródłowego kodowania, ale same komunikaty mana ("Nie ma strony podręcznika dla…") miały krzaki po tym, jak przeszedłem na UTF8. Po prostu komunikaty były wewnętrznie zakodowane jako iso-8859-2 i w takim charsecie wyświetlane. Dla kosmetyki przekodowałem komunikaty i zrobiłem tę łatkę. Teraz pod system z ISO będą krzaki 😛

* Jeśli ktoś używa pidgin-knotify pod systemem bez Unicode (jak ja do niedawna), pewnie zauważył, że powiadomienia mają krzaki zamiast polskich znaków. Pidgin wysyła je w UTF8, knotify spodziewa się lokalnego kodowania. Zrobiłem więc łatkę. Mogę potwierdzić, że jej nałożenie nie ma skutków ubocznych na systemie z UTF8, a na systemie z ISO polskie znaki wyświetlają się jak należy. Nie miałem okazji sprawdzić, co stanie się w przypadku znaków, których nie można przekodować z UTF na ISO.

* Od jakiegoś czasu używam tej łatki do dispatch-conf, dzięki której zmiany w configach są księgowane w lokalnym repo gita. Jest to o tyle dobre, że w razie, gdybym napytał sobie biedy, dysponuję pełną historią zmian i pełną mocą, jaką oferuje git. Łatka nie jest jednak idealna. Nowe pliki trzeba dodawać ręcznie za pomocą git add, podobnie zmiany wykonane poza dispatch-conf. Musiałem też stworzyć .gitgnore z wpisami jak: profile.env, ld.so.conf i katalogiem config-archive, żeby uniknąć zbędnego zamieszania. Pierwotna łatka miała też drobną wpadkę, którą usunąłem w swojej wersji.

* Oxygen-Molecule to bardzo udany klon motywu Oxygen dla GTK. Wygląda dużo lepiej niż poprzednie próby ujednolicenia wyglądu Qt i GTK. Ku mojemu zaskoczeniu jest nawet w portage (pakiet x11-themes/oxygen-molecule). Tym samym GTK zaczęło u mnie wyglądać po ludzku 🙂

KDE 4.4 rc2

Mimo niechęci do niezbędnego teraz Akonadi, wczoraj zdecydowałem się zainstalować KDE 4.4 rc2 czyli 4.3.95 i muszę przyznać, że nie jest tak źle jak myślałem. Nie wzbiera we mnie chęć powrotu do zaufanego 4.3, jak przy beta2, które wyleciało z mojego systemu z prędkością światła z powodu problemów na styku KMail-Akonadi i wielu irytujących niedoróbek. Od tamtego czasu większość tych bolączek została poprawiona, a reszta to według deweloperów nie bugi 😛

Jak zwykle pozwolę sobie wypunktować swoje odczucia:
+ Znacznie przyjemniejszy aplet od urzadzeń, który wyświetla teraz akcje wewnątrz plasmoida, a nie w nowym oknie, ma rozbudowaną konfigurację (automount, wyświetlanie partycji) i pokazuje wolne miejsce na nośniku.
+ Dużo mniej irytujące tooltipy w folderview, które nie wchodzą tak bardzo w drogę dzięki sprytniej ustawionym timerom.
+ Maksymalizowanie okien przez rzucenie ich o górną krawędź ekranu (na modłę Aero Snap).
+ Grupowanie okien w zakładki za pomocą myszki lub opcji w menu kontekstowym.
+ Powiadomienia są teraz zapisywane i grupowane, a także zgodne wstecznie z libnotify, dzięki czemu aplikacje gtk wyświetlają teraz powiadomienia KDE.
+ Wiele drobnych poprawek kosmetycznych, jak choćby poprawiony blur przy wylogowywaniu.
+ Możliwość zmiany akcji przycisków myszki dla pulpitu, a co za tym idzie wyświetlanych menu.
– Akonadi wymaga MySQL i Nepomuka lub dostajemy różne ciekawe ostrzeżenia i błędy. Niby w dzisiejszych czasach te kilkadziesiąt MB więcej to niewiele, ale dla samej książki adresowej w Akonadi wydaje się to zbędny balast.
– Na dzień dobry straciłem kontakty z książki adresowej. Wróciły dopiero po ręcznym dodaniu starej bazy. Ale tu przyznaję, że ja mogłem coś namieszać w swojej chytrości 🙂
– Nowe okno dodawania plasmoidów jest dla mnie strasznie nieporęczne i wymaga dużo przewijania w bok. Brak też w nim możliwości usunięcia plasmoida, choć to akurat w każdym normalnym plasmoidzie robimy klikając krzyżyk.
– Na początku nie chciał mi działać cover switch, ale to tylko dlatego, że teraz nie wystarczy go włączyć. Dodatkowo trzeba go wybrać jako domyślny efekt przy alt+tab 🙂

Jest na tyle dobrze, że nie mam ochoty wracać do poprzedniej wersji. Balast w postaci Akonadi i Nepomuka jakoś przeboleję. Wyłączyłem indeksowanie dysku i staram się zapomnieć o ich istnieniu 😛

W każdym razie, plasmoid pastebin przeszedł solidne zmiany strukturalne, przez co moja stara łatka dodająca obsługę wklej.org i wstaw.org przestała się nakładać. Sprężyłem się więc i przeportowałem swoje zmiany do nowej wersji. Nowa łatka do pobrania tutaj.