12.14.08

Fotozabawa

Opublikowany w informatyka, zdjęcia @ 10:32 pm - autor: knowak

Prosty sposób na podrasowanie kontrastu zdjęć, choćby do wywołania, przy pomocy GIMPa:

  • Zduplikuj widoczną warstwę
  • W dialogu “Layers” ustaw sposób komponowania na “Overlay”
  • Dostosuj suwakiem siłę efektu zgodnie z potrzebą; łatwo porównać otrzymany efekt do zdjęcia oryginalnego po prostu ukrywając dodaną warstwę

Próbki poniżej (najpierw wersja oryginalna, druga po retuszu):

Foto oryginalnePo szybkim retuszu

12.05.07

FOSDEM

Opublikowany w informatyka, wycieczki @ 10:07 pm - autor: knowak

Postanowiłem, jadę na FOSDEM (Free and Open Source Software Developer’s European Meeting), 23-24 lutego w Brukseli. Właśnie kupiłem bilety na różowy samolot. Wylot w piątek 22-go z Wawy (18:30, przylot 20:30), powrót też do Wawy (niedziala; 20:50, przylot 22:45). Cena przystępna, bo po zsumowaniu wszystkich tajemniczych opłat wyszło 218PLN w obie strony. Z czego powrót w niedzielę był prawie połowę droższy, niż lot piątkowy… Cóż, spędzenie tam dodatkowej nocy żeby wrócić taniej w poniedziałek akurat niweluje różnicę i jeszcze musiałbym dopłacić. Co prawda mam w okolicy jakiś dalekich znajomych, ale nie chcę zakładać nadmiernej gościnności.

Dobrze będzie wreszcie spotkać się z osobami znanymi do tej pory tylko z sieci. :)

11.17.07

Summer of Code 2007

Opublikowany w informatyka @ 7:50 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2007-04-17 14:31:51)

Podejrzewam, że chyba każda osoba związana jakoś ze środowiskiem Open Source słyszała o programie Summer of Code, prowadzonym przez Google. Idea jest prosta: projekty tworzące wolne (jak mowa, nie jak piwo) oprogramowanie zgłaszają się jako organizacje mentorujące. Następnie studenci (i tylko studenci) zgłaszają swoje propozycje projektów związanych z wolnym oprogramowaniem tworzonym przez wybrane organizacje, które chcą zrealizować w czasie letnich wakacji. Po tym następuje etap selekcji, w którym wybierane są najlepsze aplikacje i szczęśliwcy mogą przystąpić do pracy… finansowani przez Google.

Jak nietrudo zauważyć, każdy czerpie tu jakieś korzyści: studenci mają szansę zdobyć dużo doświadczenia i trochę zarobić, open-source’owe projekty mogą wykorzystać zdolnych ludzi na swoje potrzeby, a Google wzmacnia ruch wolnego oprogramowania (z którego samo przecież korzysta) i ma szansę wyłowić sobie przyszłych pracowników.

Piszę o tym dlatego, że mój projekt Interactive Wiki Maintenance with Jabber/XMPP został zaakceptowany przez ludzi z MoinMoin Wiki i będę rozwijał go do końca sierpnia. Muszę raportować wyniki swoich działań, co też będę robił tutaj, z konieczności głównie po angielsku. Mam nadzieję, że Was nie zanudzę, a ruch ściągnięty z zapowiadanej “Summer of Code 2007 Planet” pomoże Jabbie w dotarciu do szerszego grona potencjalnych blogerów. ;-)

Pół roku użytkowania

Opublikowany w gp2x, informatyka @ 7:50 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2007-02-23 15:56:54)

W lutym mija pół roku od momentu, gdy w moje ręce wpadła wreszcie konsolka GP2X i mogę chyba sobie pozwolić na małe podsumowanie wrażeń z jej użytkowania w tym czasie, zainspirowane komentarzem do sierpniowego wpisu… Ogólnie: nie żałuję. :)

Dobre…

Konsolka spełniła moje najważniejsze oczekiwania: jest świetnym gadżetem, dzięki któremu można pobawić się ciekawym sprzętem z w pełni otwartym środowiskiem software’owym. Sprzęt, zbudowany na bazie zwykłych komponentów (producent praktycznie złożył ją z gotowych części), sprawuje się bardzo przyzwoicie pod względem wydajności – bez problemu działają takie gry jak Duke Nukem 3D, Quake (pierwsza część), Egoboo (dzięki implementacji OpenGL ES w oparciu o rdzeń ARM940T), czy komercyjnie dostępne na tę platformę Vektar oraz Payback. Interesujące mnie emulatory (NES, SNES) również nie sprawiają problemów.

Oprócz grania używam mojej GP2X również do rozrywki “multimedialnej” – głównie słuchania muzyki i oglądania filmów w pociągu/łóżku. ;) Pod tym względem nie mam większych zastrzeżeń – płynnie odtwarzają się filmy w dużych rozdzielczościach (wyjście TV robi pocieszne wrażenie), choć w trosce o żywotność baterii oraz miejsce na karcie SD warto je sobie przekompresować. Odtwarzacz do muzyki… dobrze odtwarza muzykę i chyba o to chodzi. ;) Z rzadka zdarza mi się też poczytać jakiegoś ebooka (w czystym tekście) oraz przeglądać zdjęcia – dostępne oprogramowanie nadaje się do tego idealnie. Co więcej, bardzo dobra jakość ekranu znacząco podnosi przyjemność czerpaną z rozrywki.

Oprócz tego miałem okazję zdobyć swoje pierwsze doświadczenia z programowaniem na “platformę wbudowaną” (choć to określenie trochę na wyrost w przypadku mini-komputera z Linuksem na pokładzie), przygotowaniem narzędzi do kompilacji skrośnej, ich wykorzystaniem i drobnymi problemami wynikającymi w trakcie tych prób. Ostatnio wróciłem też do grzebania przy “Wesnoth4GP2X”; o szczegółach napiszę przy okazji na sciniksie. Na zdjęciu powyżej widać konsolkę okablowaną semi-developersko: słuchawki, zasilanie i USB (sieć!); niestety ekran wyszedł na nim kiepsko.

… i złe strony

Jest też kilka detali, na których się zawiodłem. Jednym z nich jest zupełne odcięcie się producenta od społeczności używającej jego sprzętu – GPH w żaden sposób nie uczestniczy w życiu użytkowników i nie zapewnia żadnego (?) wsparcia programistom tworzącym oprogramowanie na ich sprzęt. Chyba tylko dzięki wyjątkowo utalentowanym hobbystom można w pełni cieszyć się możliwościami tej konsolki – łatwo można skompletować pełen toolchain oraz uzyskać względnie wygodny dostęp do wszelkich możliwości systemu. Sam producent skazuje potencjalnych developerów na czytanie referencyjnej dokumentacji chipsetu (jak to często bywa w takich przypadkach, nie wolnej od błędów) i bolesnego rzeźbienia w assemblerze.

W niezmierne zdziwienie wprawił mnie też fakt, że dioda sygnalizująca zużycie baterii nie jest obsługiwana przez system operacyjny, a jej zaświecenie w przypadku wyczerpującego się zasilania leży w gestii aplikacji użytkownika. Nie muszę chyba dodawać, że nie wszyscy programiści troszczą się o odczytywanie tajemniczych wskazań odstarczanych przez jądro. Sama żywotność baterii, ok. 4 godzin przy umiarkowanym użytkowaniu dwóch 2500mAh paluszków, nie imponuje.

Cyfrowy manipulator jest trochę zwodniczy – po płynnie wychylającym się kontrolerze człowiek spodziewa się intuicyjnie płynnego sterowania. Tymczasem trzeba wychylić go dość daleko, co w przypadku intensywnej gry często się nie udaje, a chwilowa utrata kontroli potrafi być frustrująca.

USB, oprócz problemów wspomnianych na sciniksie, jest powolne. Wygodę korzystania z FTP do manipulowania plikami skutecznie zabija prędkość połączenia (ok. 50-60kB/s).

W sumie jednak dobrze

Tak, jestem zadowolony. Mimo, że dostrzegam wady tej zabawki, to sporo się dzięki niej nauczyłem (i uczę). Nadal niezmiernie cieszy mnie otwartość – nikt nie próbuje ograniczyć moich możliwości uruchamiania dowolnych, wybranych przeze mnie programów (jak na, tfu tfu, Sony PSP). Dzięki temu mogę z GP2X robić wszystko to, co sobie wymarzyłem przed jej kupnem, a drobne problemy mimo wszystko nie psują radości. Zatem jeśli ktoś nie brzydzi się tym, że zabawa wiąże się też z pewną ilością grzebania i ceni sobie wolność – nadal polecam.

“Mam takie zabezpieczenia, że sam się ich boję”

Opublikowany w humor, informatyka @ 7:49 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2006-09-05 12:01:36)

Sami tylko spójrzcie jakie “przemyślne” zabezpieczenia niektórym przychodzą do głowy:


12:00 [efnet] -!- End of /MOTD command.
12:00 [efnet] -!- Mode change [+i] for user grzyw
12:00 [efnet] -!- You are banned from this server- Temporary K-line 60 min. - Possible drone (random nick) (2006/9/5 11.55)
12:00 [efnet] -!- ERROR Closing Link: kolos.math.uni.lodz.pl (Temporary K-line 60 min. - Possible drone (random nick) (2006/9/5 11.55))
12:00 -!- Irssi: Connection lost to irc.efnet.org

Ja im dam “Random nick”!

‘Tell me what is C!?’

Opublikowany w informatyka @ 7:48 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2006-08-27 00:28:59)

Nagłe ożywienie jakie zapanowało po opublikowaniu przeze mnie wpisu Systemowa zagadka zachęciło mnie do napisania przed snem kolejnej, tym razem poświęconej programowaniu w C. Ta również była już przeze mnie poruszana w kręgu znajomych i powstało wiele alternatywnych, często zaskakujących rozwiązań. Jeśli już się tym bawiłeś – nie psuj zabawy innym zbyt szybką odpowiedzią! :)

Problem jest z pozoru prosty: należy napisać program w C, który wyświetli liczbę “10″.

A teraz ograniczenia. Jedyną funkcją jakiej można użyć jest printf z biblioteki standardowej. W programie można użyć tylko jednego literału (z wyjątkiem stringu formatującego w printfie, przy czym dozwolone są w nim tylko parametry formatujące, t.j. n.p. “%d”), którego wartość jest inna niż 10, i nie wolno deklarować ani definiować żadnych zmiennych lub stałych.

Kto tym razem będzie pierwszy? ;-)

Pomysłowa Pomarańcza

Opublikowany w informatyka @ 7:48 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2006-08-27 00:09:33)

Miałem okazję przed chwilą wysłać SMSa z MultiBoxa na orange.pl i tak się niefortunnie złożyło, że użyłem w nim symbolu “$”, by skrótowo określić, że mam na myśli pieniądze. Jakie było moje zdziwienie, gdy zerknąwszy do historii wysłanych wiadomości ujrzałem w treści nie “$”, a “USD”. ;-)

Systemowa zagadka

Opublikowany w informatyka @ 7:48 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2006-08-26 22:19:38)

Zainspirowany ostatnimi dwoma wpisami (tu i tu) na jabbie SebanLog, które poświęcone były bardziej zaawansowanym aspektom Linuksa (czy systemów *niksowych w ogóle) postanowiłem przedstawić taki oto autentyczny problem-zagadkę, którego rozwiązanie mam nadzieję ktoś sprytny poda w komentarzu.

Rzecz wydarzyła się na początku roku, gdy mój znajomy grzebiąc coś w systemie zamiast zrobić sobie kopię ważnych danych, przeniósł je. Owe ważne dane to katalogi /bin, /sbin oraz /lib, które wylądowały w nowym katalogu /newroot, tworząc następującą hierarchię:

/newroot/bin
/newroot/lib
/newroot/sbin

Jakie było jego zdziwienie, gdy okazało się, że cofnięcie tego ruchu nie jest specjalnie łatwe. Dla przykładu:

host:/newroot/bin# ./cp --help
-su: ./cp: Nie ma takiego pliku ani katalogu

Pytanie jest proste: jak uratować taki system mając dostęp jedynie do jednej działającej z prawami administratora powłoki, bez dostępu do sprzętu i możliwości restartu? :-)

Tiny gui a paski stanu

Opublikowany w gp2x, informatyka @ 7:47 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2006-08-18 01:54:47)

Jednym z bardziej rażących błędów graficznych, który miałem jak do tej pory okazję wyeliminować przy pracach nad trybem “tiny gui” w Battle for Wesnoth, były błędnie rysowane paski HP i XP pokazujące się obok jednostek. Jeszcze do niedawna ekran gry wyglądał np. tak:

w4.png

 

Pomijam tu popsuty theme, bo przystosowana do pracy w rozdzielczości 320×240 wersja jest już od dość dawna, a chodzi mi raczej o paski stanu, które są bardzo, bardzo brzydkie. Problem udało mi się jednak usunąć nie zmieniając ani jednej linijki kodu w C++. Efekt jest zdecydowanie lepszy:

 

bars_fixed.jpg

 

Otóż w czym rzecz: budowanie Wesnoth z włączoną opcją --enable-tinygui skryptu configure powoduje, że podczas kopiowania plików gry do katalogu docelowego pliki graficzne są automatycznie pomniejszane, by gra nie musiała “w locie” skalować grafik do mniejszej rozdzielczości. Rozwiązanie proste i skuteczne… z jednym wyjątkiem. Grzebiąc w kodzie odpowiedzialnym za wyświetlanie jednostek i pasków stanu trafiłem na taki komentarz:


// calculate_energy_bar returns incorrect results if the surface colors
// have changed (for example, due to bilinear interpolaion)

Funkcja calculate_energy_bar odpowiedzialna jest za obliczenie pozycji i rozmiarów pasków stanu. Robi to na podstawie pliku graficznego z kolorową kulką, która pojawia się nad jednostką, tak by narysowane zostały one dokładnie pod nią. Przesunięcie określa na podstawie piksela o predefiniowanym kolorze, szukając go punkt po punkcie na załadowanym obrazku. Co się jednak stanie, gdy takiego punktu nie znajdzie? To widać było na pierwszym zrzucie ekranu. W kodzie co prawda znajduje się odpowiednie zabezpieczenie, dzięki któremu zawsze brana jest pod uwagę grafika w oryginalnym rozmiarze (na wypadek gdyby w trakcie gry została zmieniona skala), ale nie działa ono, gdy skalowanie przeprowadzone zostało poza programem, a tak właśnie dzieje się podczas instalacji z opcją --enable-tinygui – zmiana rozmiaru grafiki powoduje, że potrzebny do prawidłowego działania punkt zostaje usunięty. I tak oto poprawienie błędu, który pozornie znajdował się w kodzie, sprowadziło się do zmiany jednej linijki w pliku Makefile.am:


- (cd $(top_srcdir) && find data/campaigns data/tutorial images images/terrain ( $(findfilterflags) -o -name '*.png' -print ) ) | while read p; do
+ (cd $(top_srcdir) && find data/campaigns data/tutorial images images/terrain ( $(findfilterflags) -o -name '*.png' -and -not -name 'bar-energy-unmoved.png' -print ) ) | while read p; do

Tiny gui – WIP

Opublikowany w gp2x, informatyka @ 7:47 pm - autor: knowak

(Wpis przeniesiony z Jabby, napisany dnia: 2006-08-04 22:34:20)

Prace nad przystosowaniem interfejsu Battle for Wesnoth do działania w rozdzielczości 320×240 idą mi względnie sprawnie. Nieźle wygląda dialog wyboru kampanii:

camp.jpg

 

oraz lobby do gry wieloosobowej:

 

mp1.jpg

 

Ekran zakładania gry był okropnie pracochłonny, ale daje się go już używać:

 

mp2.jpg

 

Jak widać z obu powyższych usunąłem możliwość wprowadzania tekstu: nie jest ona zbyt prosta do wykorzystania na urządzeniach przenośnych, a muszę walczyć praktycznie o każdy piksel wolnej przestrzeni. Nie wygląda to jeszcze zbyt estetycznie, ale zaczyna być funkcjonalne, a o to przede wszystkim mi chodzi. Na pewno przyda się dopieścić rozmiary fontów, choć nie wiem, czy uda się uzyskać odpowiedni kompromis między czytelnością, a używanym miejscem.

Następna strona