TechLife devBlog

# Projekty

Nowe projekty: noku.pl

Internet, Portfolio, Projekty 15 listopada 2008 22:30

logo5

Nic ostatnio nie pisałem ponieważ cały wolny czas zabrał mi nowy projekt, a właściwie to praca magisterska ;-) Nowy twór to noku.pl, co w zamierzeniu ma być narzędziem do komunikacji student-student oraz student-wykładowca.

Cały pomysł opiera się na tym, żeby odgonić studentów od zakładania (w byle jakich miejscach) for/stron swoich „roków” i zgromadzić ich w jednym miejscu, dostarczając narzędzie skrojone na miarę i przystosowane do warunków studenckich. Następnie przyciągnąć w to miejsce nauczycieli akademickich, tak żeby mieli w jednym miejscu wszystkich swoich studentów, dzięki czemu wymiana materiałów czy informacja typu „nie ma mnie jutro na uczelni” trafiała natychmiastowo tam gdzie trzeba. Do tego dochodzą strony kół naukowych i mamy już małą e-uczelnię. Każdy wie co i gdzie piszczy.

Oczywiście co większe uczelnie mają już podobne systemy wymiany informacji/materiałów ale:
a) nie wszystkie, np. Politechnika Opolska nie ma i nie zanosi się żeby miała
b) inwigilacja studentów (w systemie hostowanym przez uczelnię) i tak sprawi, że do nieskrępowanej komunikacji pomiędzy sobą studenci założą gdzieś własne forum

Dlatego całym pomysłem na serwis jest:

  • wyprowadzenie systemu poza uczelnię
  • bezpieczna i zamknięta wymiana informacji/materiałów pomiędzy studentami
  • zapewnienie nauczycielom łatwego kontaktu ze studentami przez to, że będą mieli wszystkich w jednym miejscu

Od strony technicznej system jest przewidziany na N uczelni. Ograniczeni jesteśmy jedynie zasobami serwerowymi dlatego, póki co jesteśmy w stanie hostować tylko studentów z obszaru Politechniki Opolskiej.

Całość napisana jest w Django i działa na konfiguracji Ubuntu server, Nginx, PostgreSQL. Co najważniejsze kod serwisu jest dostępny na licencji AGPL !! Jesteśmy chyba jednym z niewielu polskich serwisów Django-wych, które zdecydowały się opublikować kod. Miejmy nadzieję, że wywołamy nową tendencję wśród aplikacji webowych dzięki czemu będziemy mogli się wzajemnie od siebie uczyć.

Linki:
noku.pl
blog.noku.pl (oczywiście jogger)
bugs.noku.pl (kod źródłowy oraz błędy)

Pacnet API

Linux, ArchLinux, Projekty, Pacnet 25 czerwca 2008 17:34

Właśnie wrzuciłem na serwer API v1.0

Adresy wyglądają tak:

[TYP] = text, json
[PAKIET] = firefox, gajim, mc …
[KATEGORIA] = net-im, games-rpg …
[SZUKAJ] = aur, fire, ftp …

lista wszystkich pakietów

http://pacnet.karbownicki.com/api/[TYP]/packages

informacje o pakiecie
http://pacnet.karbownicki.com/api/[TYP]/package/[PAKIET]

lista wszystkich kategorii
http://pacnet.karbownicki.com/api/[TYP]/categories

lista pakietów w kategorii
http://pacnet.karbownicki.com/api/[TYP]/category/[KATEGORIA]

wyszukiwanie pakietu
http://pacnet.karbownicki.com/api/[TYP]/search/[SZUKAJ]

W przypadku braku trafień typ tekstowy zwraca null natomiast JSON pusty obiekt {}

Pacnet - aktualizacja

Linux, ArchLinux, Gentoo, Projekty, Pacnet 16 czerwca 2008 00:26

Semestr już prawie się skończył, nareszcie mam trochę więcej czasu, wiec zabrałem się dzisiaj za aktualizację pacnetu. Z pomocą oczywiście przyszedł mi Python, dzięki któremu napisałem ładny skrypt, porównujący obecną bazę ze stanem repozytoriów i na tej podstawie dokonujący aktualizacji.

Na czerwono zaznaczane są nowe pakiety, które można przeglądać również na odpowiedniej podstronie.

Wreszcie dodałem możliwość wrzucania zrzutów ekranów, czyli najprzyjemniejszej funkcjonalności. Niestety nie dysponuję odpowiednim serwerem do przetrzymywania tej całej grafiki, więc całe wrzucanie ogranicza się do podania adresu miniaturki i dużej grafiki.

Ponieważ wiem, że pakietów jest sporo a zrzuty będą przybywały raczej w wolnym tempie więc dodałem automatyczne wyszukiwanie zrzutów w Googlu. Co prawda nie zawsze wyszukuje to co trzeba, ale w większości przypadków sprawuje się całkiem dobrze i od razu widać z jaką aplikacją mamy do czynienia. Poniżej zrzuty z Battle of Wesnoth.

Ostanie 20 zrzutów będzie wyświetlane na odpowiedniej podstronie.

Rozpoznawanie gestów za pomocą kamery

Kodowanie, Python, Projekty, Techblog 7 czerwca 2008 13:06

Od dawna chciałem już zrobić coś związanego z kamerą. W tym semestrze nadarzyła się okazja i zaproponowaliśmy prowadzącemu własny temat projektu z przedmiotu o nazwie „struktury systemów informatycznych”. Naszym zamierzeniem było stworzenie programu, który działałby podobnie jak gesty wykonywane myszą w Firefoksie tyle, że rolę myszki odegrać miała kamera. Założenia wstępne: platforma – Linux, język – Python.

Najwięcej problemów sprawiła nam sama kamera, a dokładniej to zbieranie i przetwarzanie jej obrazu.

Na początku zabraliśmy się za testowanie reacTIVision, które w zasadzie jest oprogramowaniem dla ekranów wielodotykowych. ReacTIVision ma swoją bibliotekę 89 symboli, które potrafi rozpoznać określając ich numer id, pozycję x-y, kąt nachylenia a nawet przyśpieszenie.

Symbole wyglądają tak:

Kamera widziała to tak:

A reacTIVision tak:

Działo to całkiem sprawnie. Jeżeli wykonaliśmy szybszy ruch markerem, a dokładniej przyśpieszenie markera przekroczyło pewną granicę, wówczas rozpoczynał się rysować gest. Wadą jednak tego rozwiązania były markery. Jeżeli nie miało się markera to program był bezużyteczny. Trzeba było więc go zastąpić czymś co ma każdy, np. ręką :-)

Do łapania obrazu z kamery tym razem wykorzystaliśmy moduł Pythona pyvideograb. Znaleźliśmy nawet bardzo przydatny skrypt, który wykrywał punkty ruchu w obrazie poprzez porównywanie dwóch sąsiednich klatek. Co prawda autorzy zaznaczyli, że działa tylko pod Windowsem z uwagi na moduł do przychwytywania obrazu z kamery, ale ten łatwo można było podmienić.

Teraz wystarczyło wrzucić wszystko do Pygame’a i już pierwsze efekty były widoczne.

Program wykrywał ruch i potrafił określić współrzędne punktu ruchu, co w przypadku poruszającej się większej powierzchni oznaczało jej środek.

Po naciśnięciu spacji możemy już wykonywać gest.

Następny etap to sieć neuronowa a dokładniej sieć Hopfielda. Dzięki niej jesteśmy w stanie rozpoznać, czy wykonany gest zgadza się z jednym z 4 wzorców. Jeżeli tak, wykonywane jest przypisane do niego polecenie.

W konsoli wygląda to tak:

W tej chwili program ma wprowadzone 4 wzorce (plik: patterns.txt)

Przypisane do nich działania można łatwo edytować (interfejs.py)

Jeżeli ktoś miał by ochotę się tym pobawić lub zrobić z tym coś więcej to proszę bardzo.

Gesty v0.001 na licencji GNU GPL

Projekt – 4.5, radość ze zrealizowanego pomysłu – bezcenna ;-)

Współautorzy:
– Marek Knaga
Jarosław Miazga

UPDATE: ponieważ strona projektu pyvideograb od jakiegoś czasu jest martwa zamieszczam spakowany moduł pyvideograb.tar.gz

Pacnet, czyli Gentoo w Archu

Linux, ArchLinux, Gentoo, Projekty, Pacnet, Techblog 26 lutego 2008 19:31

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.

pacnet.karbownicki.com

« Nowsze | Strona 2 z 3 | Starsze »