Midnight Commander mimo licznych zalet nie miał powiązania plików *.py z python'em. Na szczęście da się to łatwo naprawić.

W swoim domowym katalogu utworzyłem plik .mc/bindings a w nim wstawiłem:

regex/\.py$
    Open=python %f

po ponownym uruchomieniu mc wystarczy wcisnąć klawisz ENTER na pliku z rozszerzeniem py by go uruchomić.

Można to też zrobić globalnie w pliku /etc/mc/mc.ext ale nie każdy ma do uprawnienia zapisu do tego pliku.

Jak już kiedyś pisałem, można sobie porobić ładnie regułki dla urządzeń USB. Powstaje tylko pytanie skąd wziąć dane do reguł. Wiedziałem jak to robić dla przejściówki z USB na RS-232, ale z programatorem AVR ISP mkII było gorzej - on nie tworzył urządzenia. Okazało się, że nazwa może też być ścieżką względem /dev/, czyli poleceniem

udevadm test --action=add `/sbin/udevadm info --query=path \
--name=bus/usb/005/006`

(dokładniejsza) lub

/sbin/udevadm info --query=all --name=bus/usb/005/006

(wole tą metodę) w moim przypadku zmienił się numer seryjny.

Będąc szczęśliwym posiadaczem USBprog działającego jako AVR ISP mkII któregoś dnia przekonałem się, że zmiana go w inne urządzenie jest banalnie prosta.

Powodem "przekonania się" było rozprogramowanie się urządzenia (tak całkiem "samo się" nie popsuło - podałem mu za wysokie napięcie "od tyłu" - przez złącze ISP). Efektem było regularne mruganie, zaraz po włączeniu, diody sygnalizującej pracę które oznacza, że dział bootloader

Rozwiązanie jest banalne: wystarczy ponownie zainstalować oprogramowanie AVR ISP mkII. W tym celu:

  1. Ściągnąłem źródła narzędzia do programowania
    wget http://download.berlios.de/usbprog/usbprog-dev.tar.gz
    
  2. Miałem zamiar kompilować, ale okazało się po rozpakowaniu
    tar -xzf usbprog-dev.tar.gz
    
    , że wewnątrz jest kompilowany gotowiec
    usbprog-dev/usbprog_tools/usbprog-old/usbprog
  3. Ściągnąłem "wsad":
    wget http://www.ixbat.de/usbprog/avrispmk2.bin
    
    inne, np.: analizator stanów logicznych, są dostępne na stronie domowej)
  4. Zaprogramowałem układ poleceniem
    usbprog-dev/usbprog_tools/usbprog-old/usbprog avrispmk2.bin
    

W efekcie dostałem działający "znowu" programator.

Podczas pracy nad programami często stosuje podgląd za pomocą terminala (RS-232, terminal lub SSH) - ja używam do tego Target Management Terminal (ze standardowe pczki w Galileo) wraz z RXTX End-User Runtime (wersja 2.1.7.4) zainstalowanym zgodnie z instrukcją, czyli dodałem nową "stronę" po wejściu w Help->Install new software z adresem http://rxtx.qbang.org/eclipse/ którą nazwałem RXTX.

Jeżeli przy próbie uruchomienia programu minicom pojawi się błąd:

Device /dev/ttyUSB0 lock failed

(zamiast ttyUSB0 może być inna nazwa urządzenia) należy sprawdzić, czy użytkownik należy do grup uucp i dialout.

Grupa uucp jest potrzebna do zapisu w katalogu /var/lock, a dialout to grupa z którą są zakładane pliki blokujące (zaczynają się zwykle od LCK).

Programowy (software) reset można uzyskać za pomocą programatora wysyłając polecenie połączenia, bez podawania polecenia zapisania lub odczytu pamięci procesora, np.:

avrdude -pm163 -cavrisp2 -Pusb

przydaje się podczas rozwijania oprogramowania na płytkach które nie mają

Podczas robienia tabelek w CSS'ie natknąłem się na problem z różną wysokością kolumn zależną od zawartości. Rozwiązanie nie jest trywialne, ale dobrze opisane. Wystarczy to tylko umieć użyć ...

Przełączyłem się na chwilę na MS Windows ... i się zaczęło. Wiśta nie potrafi znaleźć sterowników do modemu Huawei E800. Producent też nie ma (sic!) na stronie. Znalazłem dopiero na stronie www.nerve.org.za. Plik huawei_drivers_3.09.00.00.zip zawiera co prawda sterowniki do innych modeli, ale za to do większości wydań MS Windows (XP, Vista, Vista 64, Windows 7 i Windows 7 64). Najważniejsze, że działają (Vista 32 bity).

Zgłębiam temat rozpoczęty ostatnio. Wyszukuję za pomocą wbudowanej funkcji advancedsearch. Formatkę wyszukiwania, a w zasadzie jej pola, można zrobić tak jak podano w przykładzie (strona nie jest już rozwijana, ale przykład działa). Ma to ten minus, że atrybuty trzeba wstawić po ich ID, a nie nazwie, ale odpowiednio komentując kod można go zrobić przejżystym.

W mojej wersji zrobiłem wyszukiwanie po atrybutach o ID 362 i 363 (każdy się domyśli, że wyszukuję po Miejscowości i powiecie :-) . Wstawiłem w jednym z własnych szablonów (template) taki kod:

<form action={"/content/advancedsearch/"|ezurl} method="get">
    {* 45, czyli Atrakcja *}
    <input type="hidden" name="SearchContentClassID" value="45" />
    {* 363 - Powiat *}
    Powiat: <input type="hidden"
name="Content_search_attribute_fulltext_classattribute_id[]"
value="363" />
    <input type="text"
name="Content_search_attribute_fulltext_value[]"
value="" />
    {* 362 Miejscowość (attraction_attrib_city) *}
    Miasto: <input type="hidden"
name="Content_search_attribute_fulltext_classattribute_id[]"
value="362" />
    <input type="text"
name="Content_search_attribute_fulltext_value[]"
value="" />

    <input type="submit" value="Search" name="SearchButton">
</form>

To nawet działa, trzeba tylko pamiętać o ustawieniu

[SearchSettings]
AllowEmptySearch=enabled

w pliku settings/override/site.ini.append.php, ew. można jeszcze dołożyć w tej samej sekcji

EnableWildcard=true

, ale to wymagane tylko dla zaawansowanych użytkowników.

Teraz wystarczy tylko ustalić jak zrobić własną stronę z własnym szablonem na którym będzie tylko wyszukiwanie. Można oczywiście utworzyć własną klasę, nawet nie musi mieć atrybutów - wystarczy, że będzie miała nazwę, którą będzie można powiązać z szablonem zawierającym wyłącznie formularz wyszukiwania, ale może można to zrobić prościej.

Ładny opis pływających elementów HTML'a (atrybuty CSS: float i clear) znalazłem na stronach maxdesign (tutaj dodatkowo jeszcze opisy zagnieżdżonych list) oraz BarelyFitz Designs.

Ten kto umie pisze kod, ten kto nie umie pisze książki..., albo blog.

Pon Wt Śr Czw Pt So N
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
eZ Publish™ copyright © 1999-2025 eZ Systems AS