Zmiany na stronie — 2007

Strona główna

6.09.2007
31.08.2007
  • SSE2 & string.h — pierwsza wersja biblioteki zawierająca implementację kilku funkcji ze string.h.
9.08.2007
  • Ulepszona MMX-owa funkcja strcmp — zostało usunięte jedno niepotrzebne porównanie, a sama procedura nieco uproszczona. Szczegóły w stosownym artykule.
14.07.2007
  • Demonstracja algorytmu rozmywania obrazów grayscale. Program zawiera implementacje wzorcową w C oraz asemblerową używającą rozkazów MMX; algorytm kiedyś dość szczegółowo opisałem. Szczegóły dotyczące kompilacji programu znajdują się na osobnej stronie.
28.06.2007
  • W artykule Dodawanie z nasyceniem poprawiłem metodę nr 3 (MMX) dodawania pikseli 16-bitowych — wyleciały 4 nadmiarowe instrukcje (dwie błędne, dwie niepotrzebne).

    Jest też dostępny przykładowy program zawierający metody pierwszą (x86) i trzecią (MMX). Program możne działać albo wsadowo i wówczas wykonuje wybraną procedurę n razy (profilowanie, pomiar wydajności) albo interaktywnie — ładuje wskazany obrazek PPM, wyświetla w oknie (X Window) i wykonuje dodawanie z nasyceniem. Dokładny opis kompilacji i wymagań znajduje się na innej stronie.

24.06.2007
19.06.2007
  • p6perf — odczyt PMC — wew. liczników procesora
18.06.2007
  • ttyscreenshot — do zrzucania zawartości konsoli linuksowej do pliku graficznego PNM; uwzględniane są bieżące kolory i załadowane fonty. Wymaga wyższych uprawień, przynajmniej możliwości odczytu /dev/vcsa* i /dev/tty* (i pewnie czegoś jeszcze...).

    Przykład — zawartość konsoli na której program fbi_text modyfikuje fonty, aby przedstawić obrazek; ze zrzutów zostało wycięte czarne tło.

    Zrzut konsoli po lewej: znaki na konsoli mają szerokość 9 pikseli (standardowo na kartach EGA/VGA — wyraźnie widać zakłócenia na wyświetlanym przez fbi_text obrazku). Zrzut konsoli po prawej: znaki o szerokości 8 pikseli (niestandardowe ustawienia, możliwość zmiany tylko z poziomu konta root; jak widać obrazek jest już przedstawiony bez zakłóceń).

    img/tty9pix.png img/tty8pix.png
15.06.2007
  • replace — podobne do metody replace, ale przy podmianie wołana jest funkcja; zainspirowałem się rozwiązaniem z Javascript, bardzo pomysłowe to jest.
  • pred_split — jak metoda split, ale o miejscach podziału decyduje predykat.
  • cddb.py — narzędzie do zarządzania listą plików z CD/DVD/archiwów; umożliwia wyszukiwania duplikatów (względnie plików pojedynczych) w lokalnym systemie plików. Nic wielkiego, po prostu od pewnego czasu nie mogłem ogarnąć co już mam zarchiwizowane (i na której płytce to znajdę), a co nie.
10.06.2007
  • Biblioteka/program do odczytu i zapisu plików dla GNU locate; napisana w Pythonie, wydana oczywiście na licencji BSD.
5.04.2007
29.03.2007
  • Pluginy dla GIMP-a:
    • Oczyszczanie tła skanów cz/b dokumentów
    • Dokumentacja funkcji programistycznych w formacie HTML; statyczna wersja PDB browser z GIMP-a
22.03.2007
  • Moduł canvasvg umożliwia łatwy zapis zawartości canvas w pliku SVG. Wszystkie obiekty geometryczne są poprawnie zapisywane, także wygładzone łamane i wielokąty. Teksty także, za wyjątkiem wielowierszowych (atrybut width = 0). Obrazki oraz okna są pomijane.
  • Poprawiona i rozszerzona implementacja oraz testy drzew trie.
13.03.2007
  • Program SVGfrags zastępuje w istniejącym dokumencie SVG fragmenty tekstu, tekstem złożonym w (La)TeX-u — działa podobnie do znanego z LaTeXa pakietu psfrags. Poza zwykłym zastępowaniem tekstu, potrafi także wstawiać TeXowe fragmenty do prostokątów, przeskalować do żądanych rozmiarów itp.
7.03.2007
  • pydvi2svg — dzięki nieocenionej pomocy i uwagom R (Chandra) Chandrasekhara pydvi2svg znacząco zyskał, że wspomnę tylko o łatwiejszej istalacji i użytkowaniu, konwersji fontów METAFONTowych (via mftrace) i wyliczaniu dokładnego pudełka otaczającego.
  • reSTowe rozszerzenia (i przy okazji przykładowa implementacja drzew trie) — ulepszona dyrektywa math/cmath, m.in. nazwy funkcji są pisane czcionką prostą, liczby są tokenami (tj. x_{12} i x_12 są równoważne).
  • Automatyczne rysowanie drzew — dodana metoda rysowania binarnych drzew pełnych (każdy węzeł ma dokładnie dwa następniki, liście znajdują się na jednym poziomie). Podejrzewam, że da się tę metodę uogólnić na drzewa pełne wyższych rzędów; do następnej bezsennej nocy — nierozstrzygnięte.
17.02.2007
  • Interaktywne demo algorytmu Cohena-Sutherlanda wykorzystujące SVG + Javascript — zadziała w nowych przeglądarkach (Firefox 1.5+, Opera 8+). Algorytm jest opisany na polskiej Wikipedii, a także we Wprowadzeniu do grafiki komputerowej Foleya, van Damma.
13.02.2007
  • Artykuł Automatyczne rysowanie dowolnych drzew został rozszerzony o przykładową, bardzo prostą i krótką, procedurę służącą do rysowania drzew binarnych (specjalny przypadek opisanej tam metody 1).
  • Jako suplement do artykułu Punkt wewnątrz wielokąta pojawiło się demo pokazujące w jaki sposób, po opisaniu wielokąta za pomocą drzew BSP, można klasyfikować punkty, tj. stwierdzać, czy leżą wewnątrz/na zewnątrz wielokąta.

    articles/img/bsp-tree-tkdemo.png
4.02.2007
2.02.2007
  • Dopisałem jeszcze programiki demonstracyjne do algorytmów LZ77 i LZSS. Ale tych akurat nie umieszczę na Wikipedii, ponieważ są nieczytelne (i na dodatek koszmarnie wolne).

    Źródła:

    Użycie: python LZ78.py/LZW.py nazwa_pliku — na wyjściu pojawią się statystyki.

    Różnica między LZxx.py, a LZxx-2.py to zakres w jakim wyszukiwane są najdłuższe prefiksy bufora wejściowego. W pierwszym wariancie („klasycznym”) przeszukiwany jest słownik + bufor wejściowy, w drugim przeszukiwany jest wyłącznie słownik — co upraszcza dekoder i jak na Wikipedii napisano: przy rozmiarach słownika dużo większych niż bufora wejściowego nie rzutuje to znacząco na stopień kompresji. (Moje eksperymenty wskazują, że te różnice przy słowniku o rozmiarze 8kB są rzędu 0.1-0.2 punktu procentowego).

31.01.2007
  • Przy okazji rozszerzenia hasła LZW na Wikipedii napisałem prosty programik demonstrujący samą ideę kodowania i dekodowania LZW. Jako że od LZW do LZ78 jest rzut beretem.... yyy, bardzo mało zmian w kodzie było potrzebnych, przeto w haśle LZ78 również pojawił się programik demonstracyjny.

    Źródła udostępniam również tutaj:

    Użycie python LZ78.py/LZW.py nazwa_pliku — na wyjściu pojawią się statystyki.

6.01.2007
  • Tkinterowe demo automatycznego rysowania drzew --- Program pozwala na interaktywną edycję drzewa (dodawanie węzłów, usuwanie poddrzew), a także zmiana podpisu węzła oraz jego koloru i kształtu: prostokąt, koło, prostokąt z zaokrąglonymi rogami (wykonanie tego ostatniego w Tkinterze jest niespecjalnie łatwe).

    proj/tree_layout/tree_layout-tkdemo2.png

    Szczegóły na stronie Automatyczne rysowanie drzew

    Przy okazji napisałem minimalistyczną paletkę 16 HTML-owych kolorów tkcolorpicker.py — może się przydać również w innych projektach. (Tak, wiem że jest tkColorChooser ale nie odpowiadało mi).

    img/tkcolorpicker.png
img/graham-tkdemo.png
3.01.2007
  • pythonowa funkcja msplitsplit na znakach z określonego zbioru
  • pythonowa funkcja partitionsplit na łańcuchach/zbiorach łańcuchów pozostawiający te rozdzielające łańcuchy na liście (ponoć ma się pojawić w P3k):

Starsze: 2006, 2005, 2004, 2003


Dokument utworzony przez rozszerzony rst2html.