Komputery, oprogramowanie, internet i okolice
Kategorie: Wszystkie | Aplikacje | Blog | Dev | Hacks | Linux | Subversion | Varia | gry | khoomei | książki | mjuzik
RSS
piątek, 29 kwietnia 2011

Cóż... Na starość człowiek geeczeje, a do głowy przychodzą różne głupie pomysły. I tak zamiast kończyć przygotowania do wydania nowej wersji Python Window Organizera w wolnej chwili postanowiłem pobawić się modelami jednej z moich ulubionych gier.

Quake MDL Loader

Stój bo strzelam!

Korzystając ze znakomitego opisu formatu plików MDL autorstwa Davida Henry'ego (warto też zerknąć do Unofficial Quake Specs) napisałem sobie prosty pythonowy programik wczytujący modele z Quake'a 1. Kod źródłowy można sobie zobaczyć i pobrać z katalogu python/quake w repozytorium kosciak-misc. Może komuś się jeszcze przyda.

Od strony programistycznej wielkiej filozofii tu w sumie nie ma. Całość sprowadza się do użycia modułu struct w celu rozpakowania danych binarnych. Jeśli zaś chodzi o samą strukturę danych najlepiej zerknąć do wspomnianych wyżej specyfikacji lub do źródeł narzędzia modelgen z pakietu qutils. Dodam jeszcze, że zaimplementowałem jedynie tzw "simple frames", nie uda się więc załadować modeli flame.mdl i flame2.mdl. Pozostałe wydają się działać prawidłowo.

A na koniec jeden z efektów zabawy z zaimportowanym modelem - stereoskopowy Shambler w galopie!

Shambler w galopie

Słyszałem, że wszystko wygląda lepiej w 3D :-)

19:43, kosciak1 , Dev
Link Dodaj komentarz »
niedziela, 10 kwietnia 2011

Podczas prac programistycznych często trzeba na szybko wykonać jakiś fragment kodu, lub sprawdzić coś w konsoli. Zdawałoby się, że najprostszym rozwiązaniem jest wykonanie komedy :sh by uruchomić shell, zrobić co się ma do zrobienia i wrócić do VIMa. Ewentualnie zastosować bashowe Ctrl-Z i wrócić za pomocą fg. Niby tak, ale wtedy tracimy z oczu pisany kod, a włączanie za każdym razem, dajmy na to, interpretera Pythona wygodne na pewno nie jest.

Conque Shell - conque_term.vim

Conque Shell - bash w okienku VIMa

Jeśli ktoś nie ma ochoty na taką gimnastykę z pomocą przychodzi Conque Shell pozwalający na uruchomienie terminala w buforze VIMa. Z tego co widzę od wersji 2.0 wspierany jest również system Windows.

Instalacja

By zainstalować plugin najprościej ściągnąć Conque Shell spakowany jako vimball (plik z rozszerzeniem .vba), następnie otworzyć go w VIMie i wykonać :so % - wszystkie pliki zostaną skopiowane do właściwych katalogów, a tagi dla pliku pomocy zostaną wygenerowane. Zawsze też można pobrać zwykłe archiwum i ręcznie skopiować pliki do katalogu ~/.vim/.

Konfiguracja i użytkowanie

Obsługa pluginu Conque Shell jest dziecinnie prosta. Wystarczy wykonać :ConqueTerm [polecenie] by uruchomić dany program w bieżącym oknie. Można też użyć :ConqueTermSplit lub :ConqueTermVSplit by wykonać polecenie w nowym oknie dzieląc je odpowiednio w poziomie lub pionie. Jednak ze względu na brak możliwości ustawienia domyślnego umiejscowienia okna Conque Shell (prawa/lewa strona, góra/dół) ja osobiście wolę ręcznie podzielić okno za pomocą :sp lub :vsp, ustawić pożądany rozmiar i dopiero wtedy otworzyć Conque Shell.

W trybie INSERT sterowanie klawiatury przekazane jest do konsoli, by powrócić do VIMa wystarczy nacisnąć ESC. Jeśli chcemy użyć klawisza ESC w uruchomionym programie należy nacisnąć ten klawisz dwa razy. Ewentualnie można ustawić własny klawisz, za pomocą którego będziemy przełączać sterowanie z Conque Shell spowrotem do VIMa za pomocą:

let g:ConqueTerm_EscKey = '<C-q>'

Jeśli chcemy wysyłać do programu uruchomionego w Conque Shell naciścnięcia klawiszy funkcyjnych musimy ustawić:

let g:ConqueTerm_SendFunctionKeys = 1

Jeśli chcemy przełączać się pomiędzy oknami VIMa bez opuszczania trybu INSERT w Conque należy użyć:

let g:ConqueTerm_CWInsert = 1

By poprawić szybkość działania można w ustawieniach wyłączyć obsługę kolorów, czy też przejść do trybu Fast Mode wyłączającego wszelkie opcje, które mogą spowalniać:

let g:ConqueTerm_Color = 0

let g:ConqueTerm_FastMode = 1

Przydatna może być jeszcze możliwość wykonania aktualnie edytowanego pliku po naciśnięciu F11, wysłanie zawartości aktywnego pliku do ostatnio otwartego okna Conque za pomocą F10, czy też wysłanie zaznaczonego tekstu (w trybie VISUAL!) za pomocą F9.

Werdykt

Jest to rozwiązanie niezwykle ciekawe. Mimo kilku niedoskonałości (na przykład problemy z prawidłowym wyświetlaniem kolorów) radzi sobie bardzo dobrze i bywa niesamowicie przydatne.

Na koniec taki mały żarcik z użyciem Conque Shell...

VIM - Incepcja!

...VIMowa Incepcja jak się patrzy! :)

00:05, kosciak1 , Linux
Link Dodaj komentarz »
sobota, 09 kwietnia 2011

Dzień jak co dzień. Włączam komputer, odpalam Vimperatora, sprawdzam pocztę, odpisuję komu trzeba, przeglądam RSSy, robię sobie prasówkę, potem praca nad różnymi projektami. Tylko jedna rzecz cały czas nie daje spokoju. Kursor myszy... Wiszący nieruchomo na środku ekranu. Krzyczący z każdą minutą coraz głośniej: "Hej! Spójrz na mnie, tu jestem! Użyj mnie wreszcie, na co czekasz?!" Po godzinie mam już dość, moja cierpliwość ma pewne granice. Sięgam w końcu po mysz tylko po to, by przesunąć kursor gdzieś na brzeg ekranu...

Unclutter - ukrywanie kursora myszy

Unclutter w akcji :)

Coraz bardziej zirytowany tą sytuacją postanowiłem działać. Po chwili googlania znalazłem rozwiązanie. Program nazywa się unclutter i robi dokładnie to czego mi potrzeba. Po określonym czasie bezczynności kursora ukrywa go z ekranu. Użytkownicy Ubuntu znajdą to narzędzie w oficjalnym repozytorium, wystarczy więc użyć apt-get install unclutter i ustawić uruchamianie ze startem systemu.

Do najważniejszych opcji należy ustawianie czasu po jakim kursor zostanie ukryty za pomocą -idle [seconds], oraz wskazanie okien, dla których kursor nigdy nie będzie ukrywany za pomocą -notname [name] i -notclass [class]. Pozostałe opcje można sprawdzić w dokumentacji, czytając man unclutter

Jak na razie jestem bardzo zadowolony i nie zauważyłem jakichś skutków ubocznych używania uncluttera. Choć podejrzewam, że w przypadku niektórych programów (na przykład gier) może wprowadzać trochę zamieszania.

14:57, kosciak1 , Hacks
Link Komentarze (5) »
Spis Treści
Kanały RSS
Add to Google
Add to Netvibes