Zmiany na stronie — 2006

Strona główna

16.10.2006
  • pydvi2svg — od dziś potrafi automatycznie wczytywać fonty Type1 jeśli tylko program FontForge lub fnt2meta są dostępne w systemie. Dzięki temu nie trzeba w ogóle martwić się o fonty, o ile rzecz jasna posiadacie je w swojej instalacji TeX-a, w wspomniane programy będą w stanie te fonty przekonwertować.

    Póki co próbowałem z Computer Moder oraz Antykwą Półtawskiego i żadnych problemów nie zanotowałem.

    fnt2meta to prosty programik wykorzystujący bibliotekę FreeType2, który na standardowe wyjście wypisuje kształty poszczególnych glifów z podanego fontu, a pydvi2svg wczytuje te dane bezpośrednio do plików pamięci podręcznej.

  • SVG style cleanup — programik odchudzający pliki SVG. Usuwa te wszystkie własności zapisane w stylach konkretnych elementów, które: a) nie są przypisane do elementu, b) mają wartości domyślne, c) wartość jest taka sama jak dziedziczona. Efekty dobrze widać na plikach generowanych przez Inkscape, który „na oślep” zapisuje w stylach wszystkie własności.

  • fbi16 — dropbna poprawka: program nie wywala się, jeśli nie zostanie uruchomiony w wirtualnym terminalu, ale np. z poziomu mc. Niestety trzeba czasem kilka razy odświeżyć obraz, co jest niezwykle wkurzające, ale raczej nie do obejścia.

15.10.2006
  • pydvi2svg -- dodana nowa opcja --enc-method dzięki której powinno stać się łatwiejsze wskazanie kodowania fontów w niejasnych przypadkach — dodatkowe funkcje przeglądają pliki .map oraz próbują znaleźć najlepiej pasujący zestaw znaków. Z pewnością metody te nie dają 100% gwarancji powodzenia, ale lepsze to niż pozostawienie użytkownika samego sobie.

  • fbi16 — obrazki są automatycznie centrowane.

  • walk_dir

    W pliku znajdują się dwie funkcje: find_file oraz find_all_files.

    Funkcja find_file zwraca pierwszy plik, dla którego predykat pred jest prawdziwy, natomiast find_all_files zwraca listę wszystkich plików spełniających predykat. Funkcja pred przyjmuje dwa argumenty: nazwę bieżącego katalogu oraz nazwę pliku.

    Funkcje wyszukują pliki w katalogu, bądź na liście katalogów.

    Obie funkcje przechodzą katalogi wszerz; o tym czy katalog zostanie odwiedzony decyduje funkcja enterdir (domyślnie każdy katalog jest odwiedzany). Funkcja enterdir przyjmuje dwa argumenty: nazwę bieżącego katalogu oraz poziom w drzewie katalogów (liczony od zera).

    Wyszukanie pliku nie uwzględniając rozmiaru liter:

    filename = 'Text.TXT'
    
    def pred(p, f):
            return f.lower() == filename.lower()
    
    f = find_file(['.', '/home/'], pred)
    

    Wyszukanie plików .py we wszystkich katalogach oprócz CVS, .svn i tmp:

    def pred(p, f):
            return f.endswith('.py')
    
    def enterdir(p, l):
            return not p.endswith('/CVS')  and \
                   not p.endswith('/.svn') and \
                   not p.endswith('/tmp')
    
    fl = find_all_files('.',  pred, enterdir)
    
  • group_elements

    Funkcja grupuje kolejne elementy list, dla których funkcja value zwróci tę samą wartość.

    >>> L = [1, 1, 1, 1, 2, 3, 3, 4, 4, 4, 4]
    >>> group_elements(L)
    [(1, [1, 1, 1, 1]), (2, [2]), (3, [3, 3]), (4, [4, 4, 4, 4])]
    >>>
    >>> L = ["aaa", "aab", "bba", "bab", "bca"]
    >>> group_elements(L, lambda x: x[0])
    [('a', ['aaa', 'aab']), ('b', ['bba', 'bab', 'bca'])]
    >>>
    

    Zwraca listę par (wspólny element, lista elementów).

    Funkcję fields (z bodajże SML-a), która działa podobnie do split, ale zostawia na liście pola białych znaków można bardzo zgrabnie wyrazić za pomocą group_elements:

    def fields(string, pred=lambda x: x.isspace()):
            tmp = group_elements(string, pred)
            return [(p, ”.join(cl)) for p, cl in tmp]
    

    Dopisek z 16.10.2006: Secret hackers rule: hackers read manuals, a ja hakerem nie jestem — nie zauważyłem, że w Pythonie od wersji 2.4 taka funkcja znajduje się w module itertools.

13.10.2006
  • poprawiony jeden błąd w fbi_2

12.10.2006

11.10.2006
  • Automatyczne rysowanie drzew (struktur danych) --- Dwa algorytmy (opracowane przeze mnie), które automatycznie rozmieszczają węzły drzew. Efekty są naprawdę przyzwoite i to niewielkim nakładem środków.
  • fbi16 — prosty programik do przeglądania czarno-białych obrazków w 16-kolorowym buforze ramki (moduł vga16fb). Popularny program fbi powiada iż „can handle only packed pixel frame buffers”.
  • pycode — poprawiona i usprawniona implementacja tej jakże użytecznej dla mnie reSTowej dyrektywy.
  • blender-gui — wrócił na stronę.
6.10.2006
  • Kolejna odsłona pydvi2svg: została dodana obsługa różnych kodowań znaków, a jeśli automatyka zawiedzie, można bez większych kłopotów przetestować alternatywne. Ponadto zoptymalizowałem generator SVG, dzięki czemu wynikowe pliki są mniejsze.

    Rozszerzyłem też nieco dokumentację, choć nie jest ona jeszcze wystarczająca. Ale jak to mówią: Z dokumentacją jest jak z seksem — jakakolwiek lepsza niż żadna.

    Praktycznie bez kłopotów skonwertowałem pliki DVI z polskimi fontami (pl*) a także teksty składane Antykwą Półtawskiego. Wcześniej oczywiście nie było kłopotów z Computer Modern, co chyba gdzieś tam zaznaczyłem.

    Zapraszam do testowania i zgłaszania uwag.

2.10.2006
28.09.2006
  • edytor dla pakietu ctbi4tex wspomagający wprowadzanie tekstów tybetańskich. Jest to edytor klikalny, a jego głównym zadaniem jest ostatecznie wypisać źródło LaTeX-owe gotowe do skompilowania.

    Jeśli komuś nagle przyjdzie składać teksty tybetańskie, tak jak mnie kiedyś „dopadło”, to być może ten edytor będzie pomocny.

18.05.2006
  • unzip — robi dokładnie odwrotną rzecz, jak wbudowana funkcja zip; wszystkie krotki muszą mieć co najmniej tyle elementów ile pierwsza krotka:
  • filter2 — wybiera z sekwencji krotek, te które pasują do wzorca.
5.05.2006
  • vsogl-gui — poprawiłem kilka głupich błędów, dodałem także praktyczną kontrolkę LabelRef, wyświetlającą tekst z zewnętrznego źródła; zwykły Label tworzy kopie łańcuchów (ale jest bardziej rozbudowany). Wyszedł w tym miejscu brak dokumentacji. Niestety, dokumentacji wciąż nie ma — długi weekend nie był dobrym czasem do jej pisania. (Swoją drogą na angielskiej Wikipedii jest hasło Long weekend, a o Polsce piszą tam tak: In Poland, such a phenomenon usually occurs several times a year).
9.04.2006
  • Vsogl-gui powstało ponieważ potrzebuję jakiegoś GUI do projektu z Grafiki Komputerowej. Na razie GUI jest na etapie beta, czyli działa tak jak chciałem, ale jeszcze nie wiem kiedy się rozsypie.

    Podkreślam, że jest to prosty interfejs, więc nie ma w nim jakiś bardzo zaawansowanych kontrolek, po prostu najprostsze elementy interfejsu graficznego jakie przewiduję, że będą potrzebne.

    Całość jest napisana w C (C99), a bardziej precyzyjnie staram się by gcc wywołany z opcjami -pedantic, -Wall i -std=c99 nie wypisywał ostrzeżeń, a przynajmniej by te ostrzeżenia nie brzmiały zbyt groźnie.

    Na dziś kod jest tylko trochę udokumentowany, ale w przyszłości będzie lepiej, w szczególności zakładam współpracę z doxygenem.


Starsze: 2005, 2004, 2003


Dokument utworzony przez rozszerzony rst2html.