Niedawno Google wypuściło bardzo fajną rzecz. Usługa nazywa się Google Sites i jest częścią aplikacji przeznaczonych dla własnej domeny (Google Apps for Your Domain). Nie będę tutaj opisywał całości funkcjonalności, bo pewnie do wieczora bym nie skończył. Trzeba zobaczyć to na własne oczy i samemu poklikać.
Na początek filmik
Teraz należy udać się na kilka przykładowych stron: Company intranet, Team project, Employee profile, Classroom.
Myślę, że jest to świetna usługa dla wszelkiego rodzaju projektów. Szkoda że Google Code nie ma takiej funkcjonalności. Z minusów jakie zauważyłem to niewątpliwym jest brak możliwości komentowania przez odwiedzających. Taką możliwość mają tylko osoby kolaborujące. Mam nadzieję, że wkrótce jakoś to naprawią bo wpływa to w znacznym stopniu na feedback ze strony użytkowników.
Kolejna cześć sagi „zaktualizowałem jądro i sieciówka się posypała”. Próba skompilowania mojego ostatniego wydania sterowników kończy się błędem
scripts/Makefile.build:46: *** CFLAGS was changed in „src/Makefile”. Fix it to use EXTRA_CFLAGS. Stop.
Natomiast próba zbudowania paczki z AUR kończy się dla odmiany innym ;-)
atl2_main.c:1451: error: implicit declaration of function ‘SET_MODULE_OWNER’
Sterowniki z AUR naprawić jednak łatwo. Wystarczy wyedytować plik atl2_main.c i posłać linię 1451 w krzaki
...
netdev = alloc_etherdev(sizeof(struct atl2_adapter));
if(!netdev) goto err_alloc_etherdev;//SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);pci_set_drvdata(pdev, netdev);
adapter = netdev_priv(netdev);
...
Wersja dla leniwych: atl2-2.0.3.tar
Po rozpakowaniu wchodzimy do katalogu i czarujemy
# make
# cp atl2.ko /lib/modules/2.6.24-ARCH/kernel/drivers/net/
# modprobe atl2
i powinno działać
Pacnet jest próbą kategoryzacji pakietów z repozytoriów Arch Linuksa zgodnie z kategoriami używanymi przez Gentoo Portage. Na chwilę obecną znajduje się tutaj 4138 pakietów z repozytoriów core, extra i community.
Jeżeli zauważycie, że jakiś pakiet znajduje się w niewłaściwej kategorii, nie czujcie się skrępowani żeby ją zmienić. Pakiety mogą być niewłaściwie przypisane do kategorii, ze względu na rozbieżności w nazewnictwie pomiędzy obiema dystrybucjami.
Liczę na to, że z Waszą pomocą doprowadzimy szybko to repozytorium do porządku i co najważniejsze – przydatności.
Moje ostatnie narzekania na organizację repozytorium w Archu nie dawały mi spokoju. Dzisiaj z pomocą fixxxera (właściwie to tylko przerobiłem jego skrypt ;) powstał skrypt, który po otrzymaniu nazwy pakietu pokazuje nam do jakiej kategorii jest on przypisany w repozytoriach Gentoo.
Składania jest prosta:
$ python portage.py gajim
net-im
Oczywiście bez dwóch zdań będą jakieś niezgodności
$ python portage.py pacman
games-arcade
Ale na ogół skrypt powinien działać dobrze. Czyli pierwszy krok do kategoryzacji Archa zrobiony. Teraz tylko powkładać pakiety w kategorie, zrobić GUI i można podbijać świat ;-)
Przydaje się jako edytor do commitów w Subversion. Zaraz po odpaleniu możemy wpisać poczynione zmiany.
vim -c :start
a dokładniej
export SVN_EDITOR="vim -c :start"
To samo działa też z vi.
Przeglądając wczoraj AUR wpadła mi w oko pewna nazwa – Paintown – jak się okazało nie na darmo :-)
Po angielsku nazywa się to open source, classic style fighting game, po polsku chodzone mordobicie. Paintown to klasyczna gra z czasów, kiedy gry były jeszcze towarzyskie, czyli grało się w nie z kumplem na tej samej klawiaturze :-) Ehh.. Amiga 500, automaty i setki „roboczogodzin” – to były czasy. Na szczęście powróciły! W Paintown znajdziemy takie tryby gry jak klasyczna planszówka (chodzone mordobicie) i tryb „Vs mode” czyli walka z pojedynczym przeciwnikiem. Grać możemy samemu, w dwie osoby na jednym komputerze czy też przez sieć.
Główni bohaterzy to składanka herosów z różnych gier. Na pierwszym planie Ryu z niezapomnianego Streen Fightera. Brakuje mi tylko Franko ;-)
Wszystko przyprawione klasyczną Amigową muzyką czyli pełen oldschool.
Dla Archowców:
$ yaourt -S paintown
Jakiś czas temu nawiedziła mnie myśl, która nie daje mi spokoju. Zwłaszcza przypomina mi się kiedy odpalam gtkPacman-a i moim oczom ukazuje się taki widok
Wtedy myślami wracam do czasów Gentoo i bardzo dobrze przemyślanej struktury Portage. Pewnie nie jedna dystrybucja chciałaby mieć tak dobrze skatalogowane oprogramowanie jak Gentoo.
(tutaj pojawia się animacja zapalającej się nad głową żarówki)
A co by było gdyby stworzyć globalną bazę informacji o pakietach? Wystarczy prosta strona www udostępniająca podstawowe API dla wszelkiego rodzaju dystrybucyjnych menadżerów. Taki API mogło by zwracać tekst, HTML lub XML na podstawie wywołanego adresu np.:
http://bazwa.org/package/342432/text
http://bazwa.org/package/342432/html
http://bazwa.org/package/342432/xml
ewentualnie opcja z wersją pakietu (wiadomo, inna wersja inne funkcje inne zależności)
http://bazwa.org/package/342432/0.11.4.2/xml
Wystarczyłoby aby każda dystrybucja stworzyła sobie słownik łączący ichniejszą nazwę pakietu z id pakietu w bazie i voila! Mamy międzydystrybucyjną bazę najświeższych informacji o pakietach, z opisem większym niż jedna linijka, aktualnymi informacjami na temat autora/autorów, strony domowej i (czego najczęściej mi brakuje) zrzutów ekranu. A wszystko ładnie zaszufladkowane i gotowe do przeglądania przez www czy jakiegoś menadżera pakietów.
Oczywiście żeby nie przeciążać serwerów można by codziennie wypuszczać zrzut bazy, który dystrybucje by ssały i hostowały na swoich mirrorach. Hmm.. tylko dlaczego jeszcze nikt tego nie zrobił? Czyżby były jakieś poważne przeszkody o których nie pomyślałem ?
Skoro już rozpocząłem temat kamer to jeszcze mała notka. Całkiem fajną sprawą jest technika animacji poklatkowej, którą bardzo prosto jest osiągnąć domowym sposobem. Wystarczy kamera i Linux :-)
Programy do obsługi kamer takie jak wxCam potrafią automatycznie numerować kolejne zrzuty obrazu z kamery. W przypadku wxCam powstające pliki noszą nazwę costam-001.jpg, costam-002.jpg … (o ile wybraliśmy format JPG). Tak ułożone pliki wystarczy potraktować odpowiednim zaklęciem
ffmpeg -r 2 -i costam-%03d.jpg -y -an filmik.avi
TIP: parametr -r określa ilość klatek na sekundę
Jako plik wynikowy możemy też wpisać filmik.flv i mamy gotową animację w formacie Flash.
Przykład – jak się zarabia na otwartym oprogramowaniu ;-)
Ostatnio wiele serwisów donosiło o nowym wydaniu (v1.0) programu do obsługi kamer – wxCam. Żaden nie wspomniał jednak że w nowej wersji dodano bardzo interesującą funkcję – nagrywanie przy wykryciu ruchu. Ale po kolei.
W repozytorium Archa paczki nie ma, nie ma też nic w AUR. Trzeba radzić sobie samemu. Główne wymagania to:
Revel kompilujemy standardowo:
# ./configure
# make
# make install
CImg kompilujemy tak:
cd examples
make olinux
w wyniku tego katalog wyżej powstanie nam pliczek CImg.h, który należy skopiować do katalogu ze źródłami wxCam.
wxCam kompilujemy standardowo:
# ./configure
# make
# make install
Gotowe. Teraz polecenie wxcam powinno odpalić nam program.
Klikamy Capture > Show movement detection areas i zaznaczamy interesujący nas obszar
Następnie klikamy Capture > Movement detection i możemy już rozpocząć nagrywanie. W przypadku braku ruchu nagrywanie powinno się automatycznie zatrzymać.
Przykład:
Możliwe jest też zaznaczenie kilku obszarów
Chociaż wxCam nie ma żadnego API do którego można by podpiąć jakiś „alarm” to jednak łatwo to zrobić. Wystarczy tylko napisać skrypt monitorujący wielkość pliku do którego nagrywany jest obraz. Jeżeli plik zacznie się zwiększać oznaczać to będzie, że wykryto ruch i można wykonać jakieś działanie.
Dodatkowo wxCam oferuje kilka filtrów obrazu np.:
i kilka innych