Michał Moroz

Abecadło smoczątka, dziennik niecodzienny

Strona domowa, czyli milestone m1

`Nie można cofnąć tego, co puściło się w eter', to jedna z prawd wyniesiona z warsztatów radiowych w WSHE.

Można jednak wypuszczać te sygnały, które zmotywują, bądź zmuszą Cię do dalszej pracy. Tak i ja zrobiłem. Celowo umieściłem informację o własnym portfolio we wpisie Nowe serwisy podbite przeze mnie, która niedługo potem stała się najważniejszym priorytetem na następny miesiąc. W ten sposób rozpocząłem pracę nad własną stroną domową.

Vitalist stał się niezastąpionym narzędziem w mojej pracy. Jestem wzrokowcem i może dlatego ranga każdego zadania rośnie, kiedy zapiszę je sobie. Dodatkowa możliwość określania terminu zakończenia danego zadania motywowała mnie jeszcze bardziej. Wygodny interfejs skłonił mnie do pozostania przy właśnie tej liście todo, a moje poszukiwania menedżera zadań dobiegły końca.

Taka ogranizacja mojej pracy pozwoliła mi na zakończenie prac przed rozpoczęciem roku szkolnego, co przyjąłem za cel już na samym początku.

Pewnego wieczoru usiadłem i zacząłem rysować możliwości dotyczące wystroju strony domowej. Jeden z ciekawszych pomysłów odrzuciłem bojąc się, że sama praca nad tłem zajmie mi bardzo dużo czasu, nie mówiąc już o tym, że uznałem go za zbyt skomplikowany jak na mój aktualny poziom rozwoju graficznego. O czym mowa? Niebo u góry, ziemia pośrodku i podziemia poniżej.

Postawiłem więc na inny pomysł, ten, który można zobaczyć na mojej stronie domowej.

Następnym krokiem było wykonanie back-endu dla strony domowej. W założeniu miała być ona prosta do bólu i dałoby się ją wykonać nawet na czystym HTMLu. Uznałem jednak, że warto by było przypomnieć sobie PHP i poznać te ciekawsze możliwości klas i obiektów w piątej wersji języka. Dzięki temu też przymierzyłem się do PDO i wykonałem coś w rodzaju bardzo prymitywnego frameworka. Do wyświetlania tegoż zdecydowałem się skorzystać z xt - xhtml templates, których zdecydowanym plusem jest to, że do wyszukiwania elementów korzysta się z selektorów CSS3. Ze strony klienta wykorzystałem JQuery, w którym ten proces wygląda praktycznie tak samo. Kolejnym plusem JQuery jest łączenie wyrażeń w łańcuchy (chaining), co przypomina dokładnie budowanie zapytań SQL we frameworku Django. Podsumowując, nauczyłem się tutaj wiele i nie żałuję mojego wyboru.

Na koniec zostawiłem sobie opracowanie dokładnych szablonów dla powstającego portfolio oraz tego bloga.

Z tego, co zauważyłem, poszczególne strony są używalne od IE5.5 wzwyż oraz w przeglądarkach obsługujących standardy. Uwaga, Safari/Win ma problemy z JQuery, ale z tego, co wiem, na Macach biblioteka ta działa, jak należy. Zakładając, że Safari/Win jest aktualnie używana głównie przez developerów, nie będę próbował naprawiać jej błędów.

Dla wszystkich tych, którzy przewinęli tylko z góry na dół, podaję linki: strona domowa oraz portfolio. I oczywiście nagłówek tego bloga. :)

Mile widziane wsparcie w postaci wytykania błędów, szczególnie tych językowych. ;]

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Stormy Day

Stormy Day

Powoli zaczynam się porozumiewać pismem obrazkowym, publikując na tym blogu. Mam nadzieję, że intelektu mi z tym nie ubędzie. ;)

Nazwa
Stormy Day
Wersje do pobrania
JPEG, 1024x768 (312KB)

Dedykowane burzy, która jakieś dwa tygodnie temu pozbawiła mnie telefonu, Sagema F@st 800 od Neostrady+ i karty sieciowej 3Com 3c905B oraz kilku dni połączenia z Internetem.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Sny niespełnione?

Rozchorowałem się. Nie sądziłem, że w czerwcu człowiek może się rozchorować. Ale nie o tym chciałem. ;)

Ostatnio moje myśli i czas zajmuje przedsięwzięcie o nazwie Sny niespełnione?. Wraz z grupą młodych ludzi spełniamy marzenie zmarłej koleżanki Marty Binek i wydajemy tomik jej wierszy.

Ambitne przedsięwzięcie i wysoko postawiona poprzeczka. Widząc jednak to, co udało nam się wytworzyć, jestem pewien, że sprostaliśmy zadaniu. Wystarczy spojrzeć na kilka przykładowych stron z tomika: dwunastą, trzynastą i trzydziestą czwartą. Taka forma podoba mi się straszliwie, a jakie są Twoje wrażenia?

Strona WWW to oczywiście mój projekt zaaprobowany przez innych uczestników projektu. Możecie mnie teraz biczować za kod, chociaż nie pogardziłbym także jakimś miłym słowem. ;)

W oczekiwaniu na wystawę (szczegóły na stronie), przeprowadzamy nietypową kampanię reklamową - rozklejamy żółte karteczki z doczepionymi do nich piórkami i linkiem prowadzącym na stronę projektu. W najbliższym czasie postaram się zrobić jakieś zdjęcie takiej karteczce spełniającej swe zadanie. :)

Aha - jeśli w przeciągu najbliższych dwóch tygodni będziecie w Łodzi, zapraszam! Wstęp wolny, ale ilość tomików jest ograniczona i możliwe, że w pewnym momencie ich zabraknie.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Next

Next

Na bazie pomysłu, który wpadł mi do głowy kilka dni temu w szkole, szybko wprowadziłem oprogramowanie graficzne w ruch i stworzyłem tapetę.

Nazwa
Next.
Wersje do pobrania
PNG, 1024x768 (33KB)

Na żądanie mogę dorobić inne rozdzielczości. ;)

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

GTK+/mtrace

Wraz z kolegą przygotowujemy sobie treningowo (a zarazem na zaliczenie) kalkulator. Podzieliliśmy się w ten sposób, że ja projektuję rdzeń (przetwarzanie ONP, ładowanie pluginów z funkcjami róznego rodzaju i takie tam bajery) i opiekuję się projektem (poznając autotoolsy), a on robi interfejs graficzny używając GTK+ 2.x i Glade.

Nadeszła już faza projektu odpowiednia na poważne programowanie GUI (patrz - rdzeń w większości działa, a Google potwierdza wyniki) i powoli, powoli zaczyna się budowa tegoż interfejsu.

Aktualnie udało nam się scalić kawałek okienka z rdzeniem i po wpisaniu wyrażenia w TextEdit i naciśnięciu przycisku się oblicza.

Chcąc sprawdzić, czy są memleaki, skorzystałem z funkcji mtrace, dzięki której automagicznie można sprawdzić, czy gdzieś nie cieknie.

$ MALLOC_TRACE="./mtrace.log" ./wyswtekstu
$ ls -l mtrace.log
-rw-r--r-- 1 dragonee dragonee 10951417 gru  4 23:41 mtrace.log

Samo wypluwanie wyjścia komendy mtrace, która przetwarza powyższy log i wyświetla adresy pamięci, które nie zostały zwolnione, zabrało mi jakąś minutę.

Zastanawiam się teraz, czy GTK+ tak ma, czy to tylko niezapisanie jakiejś magicznej komendy czyszczącej...

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Blog - jakie technologie powinien implementować?

Z powodów, których część wymieniłem we wpisie Dwie rzeczy, których mi brakuje w blogach, istnieje duża szansa, że zabiorę się wreszcie za projekt wykonania bloga za pomocą frameworka Django.

Mam jednak wrażenie, że technologie, które zapisałem sobie na kartce, już teraz czynią ten projekt przestarzałym. Właśnie dlatego kieruję zapytanie do Was, drodzy czytający - co powinienem wykorzystać, aby być na czasie?

Proszę o wszelkie pomysły, nieważne od tego, jak dziwne by były - chciałbym mieć jak największe rozeznanie w temacie.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Wsparcie dla Meebo me w ekg2

Kilka dni temu, Piotr Konieczny opisał komunikator internetowy, oparty na sieci Jabber, z interfejsem w postaci strony www. Nie byłoby w tym nic dziwnego, gdyby nie dwa rozwiązania, niespotykane na innych serwerach. Istnieje możliwość transportu innych jabberowych kontaktów. Jest także widżet o nazwie Meebo me, który umieszczony na stronie www, staje się anonimowym klientem Jabbera, oferującym szybki kontakt z posiadaczem konta Meebo.

Korzystając z komunikatora Meebo, autoryzacja tych kontaktów odbywa się automagicznie, i można niezwykle prosto porozumieć się z nimi. Ale wymaga to otwartej karty przeglądarki. Korzystając z innych komunikatorów1, sprawa już nie wygląda tak prosto. Każdy kontakt trzeba ręcznie zautoryzować, co jest męczące przy większej popularności Twojej strony.

W ekg2, prawdopodonie najlepiej programowalnym komunikatorze obsługującym sieć Jabber, całą czynność da się zautomatyzować. Właśnie dlatego powstał projekt meebome-ekg2.

Skrypt co dziesięć sekund sprawdza, czy pojawił się nowy kontakt, którego serwerem jest guest.meebo.org. Jeśli tak, autoryzuje go i dodaje do listy jako GuestX, gdzie X to pierwszy niezajęty numer. Następnie, jeśli kontakt ten staje się niedostępny, usuwa go z listy. Oczywiście, cała operacja nie narusza innych kontaktów. Bardzo wygodne.

Przykład działania skryptu, zmniejszony

Więcej informacji można znaleźć w pliku README.

  • 1 Aby dodać kontakt Meebo do listy kontaktów w innym komunikatorze, należy użyć JID: login@meebo.org, oraz zezwolić na przesyłanie nieszyfrowanego hasła (ang. allow plaintext logins).
Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Logo dragoniego

Testowe logo właśnie zostało wydane na świat. Na chwilę obecną do wyboru mam cztery układy kolorystyczne - zielony, niebieski, ciemnoniebieski i odcienie szarości. Chętnie też przyjmę kolejne pomysły na projekt, prorocze wizje, poprawki, czy inne sugestie.

Zielone logo
Niebieskie logo
Ciemnoniebieskie logo
Logo w odcieniach szarości
Różne rodzaje testowego loga.

Stawiam na któreś z dwóch ostatnich - problem w tym, że ciemnoniebieskie wydaje mi się ładniejsze, a to w odcieniach szarości ma jednak dwukrotnie mniejszy rozmiar (mówię tutaj o obrazkach w formacie PNG).

Kostruktywna krytyka mile widziana.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Tagokąt - mktags.js

Dlaczego tagokąt? Bo nigdy z niego chmurka nie wyjdzie - za kanciasty jest. Znajduje się niżej. Każdy, komu się spodoba, może też ściągnąć źródełko z mojego serwera i zaaplikować je u siebie. Wystarczy zaaplikować dowolny znacznik, którego id="tags", zawierający w sobie linki do poszczególnych kategorii z title="&CATEGORY_ENTRIES;".

Oczywiście, kategorie są porównywane względem największej z nich - dlatego nie można się dziwić, że kolor. czy wielkość może się nieco zmienić, chociaż wcale nie dodawaliśmy wpisów pod daną kategorią. Niestety, sprawi to kłopot starym Joggerowiczom (stażem oczywiście), którzy mają ileśset wpisów w kategorii 'Ogólne'. Ostatecznie, jeśli komuś będzie to potrzebne - mogę dopisać pomijanie określonych kategorii.

Podziękowania dla Gavina Christnera, którego implementacji AttachEvent użyłem w tym kodzie.

Update: Zapomniałem wspomnieć, że IE nie wspiera zmieniania stylów poprzez JavaScript i skrypt ten nie będzie działał w tej przeglądarce, mimo jego poprawności.

Update: Nowa wersja skryptu obsługuje już IE.

Update: Dokładniejsze instrukcje znajdują się na joggerowej wiki pod adresem http://wiki.jogger.pl/index.php/Tagowa_chmurka.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Szablon 2.0

Disclaimer: Związek z pewnym ostatnio dość modnym tematem całkowicie zamierzony. Ale nie robiłem rounded corners. ;)

Co poprawiono?

Po pierwsze: strona jednocześnie waliduje się i wyświetla poprawnie w przeglądarkach opartych na silniku Internet Explorera, Gecko, Opery i KHTMLu. W celu zapewnienia kompatybilności IE użyto dwóch hacków (zmiana hasLayout oraz użycie height zamiast min-height). ;)

Po drugie: przepisano commlink, żeby obsługiwał trackbacki, czego efekt można zobaczyć np. w tym wpisie. Został również przeniesiony nieco na bok - mam nadzieję, że nikt nie będzie mi miał tego za złe.

Po trzecie: podpalono feedy rss. Jeśli ktoś czyta rss z tego bloga, proszę o uaktualnienie adresu.

Po czwarte: pobawiłem się z ficzerami, które udostępnia Google Adsense i dodałem wyszukiwarkę oraz przycisk "Ściągnij sobie Firefoksa z Srebrną Kitą Google'a", czy jakoś tak.

A jak wam się podoba?

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Co zrobiłem, a co nie - bilans ostatnich dwóch dni

Jeden. Pisałem, że PHP ssie. Wreszcie ruszyłem do przodu z moimi podbojami tego języka i doszedłem do wniosku, że PCRE nie zostało zaprojektowane zbyt fortunnie, nadal zawiera kilka błędów, skutecznie utrudniających pracę. Na przykład: Niemożność użycia back references w patternie dla preg_replace. Lub zmuszanie do niezrozumiałego przeze mnie użycia nawiasów okrągłych (inaczej regexp nie zadziała). Mimo to mój prosty kod generujący strony w oparciu o szablony podobne do joggerowych jako tako działa, będę musiał jeszcze posprawdzać czasy wykonania. I przerobić po raz następny skrypty mojej strony. Możliwe też, żeby dorobić jakieś małe API. Nie chce mi się za każdym razem kopiować tego samego. W wolnej chwili może wystawię kod, bo w końcu taki zły nie jest. :)

Dwa. Zmusiłem mój skrypt javaskryptowy do działania w Internet Explorerze, dzięki czemu pozwoliłem sobie na zmianę wersji szablonu na 1.5pre1. Ostatniego błędu szukałem dobre dwadzieścia minut, okazało się, że skoro na stronie jest już element o id='toc', to nie wolno używać na nim getElementById(). Szczerze powiem, że chyba nigdy bym na to nie wpadł. Mimo to, jednak nie wszystko wygląda tak, jak powinno. Na oko IE nie pokazuje niektórych divów lub nie wyświetla ich css'a. Niestety, nie mogę określić, o co dokładnie chodzi, bo nie ma (albo nic o tym nie wiem) żadnego wyświetlania struktury drzewa DOM, przez co mogę jedynie się domyślać przyczyn.

Trzy. Właściwie niezbyt jest czym się chwalić, ale skoro już siedziałem na tym ze dwie godzinki, to chociaż się zareklamuję. :) Expert. Utwór Potwór jest w formacie ogg.

Cztery. Może niedługo ruszy coś z JeMeNem. Projekt stoi już od bardzo długiego czasu, ale wydaje nam się (mnie i Zimnemu) że jednak warto się zabrać za coś takiego, chociażby dla przyjemności. Tak więc możliwe, że coś kiedyś w końcu... I to chyba wszystko, czym się zajmowałem przez ostatnie dwa dni.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

PHP ssie

Pełen chęci, z pomysłem i zacięciem zabrałem się do pisania w PHP. I przyszło oświecenie...

replacement

The string or an array with strings to replace. If this parameter is a string and the pattern parameter is an array, all pattens will be replaced by that string. If both pattern and replacement parameters are arrays, each pattern will be replaced by the replacement counterpart. If there are less keys in the replacement array than in the pattern array, the excedent patterns will be replaced by an empty string.

Źródło.

To... To nie umie ruszać funkcji? Nie!

Oczywiście, znalazłem po sekundzie funkcję preg_replace_callback. Tylko, że jej sposób przekazywania danych zupełnie mi nie pasuje. Całkowicie. Nie wiem nawet, czy dałoby się przekazać dane poprzez \\1, \\2, które byłyby bardzo przydatne, inaczej musiałbym jeszcze raz przepuszczać to przez preg_*.

A miało być tak pięknie...

Przy okazji nie jestem pewien zachowania kilku innych rzeczy...

Apdejt: Jednak nie wszystko stracone.

Apdejt 2: Problem jest, ale w innym miejscu, niż się spodziewałem. Wygląda na to, że w preg_replace nie można wstawiać \\1 do pattern, dzięki czemu poszukiwanie /<data:(\S+)>(.*?)<\/data:\\1>/e nie chce zadziałać w żaden sposób. Na razie to jest główny problem, sądzę, że głębiej w kodzie znajduje się kilka innych niedoróbek, albo i poważnych błędów. Jeszcze do tego jednak nie dotarłem. Muszę najwierw spróbować obejść tą niedogodność.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Chciałem coś napisać

... ale zapomniałem. Kurczę! Ale tak to jest, jak się myśli o tysiącu spraw naraz.

Wreszcie się nauczyłem względnej obsługi rcs. Przydatne to. Ale na razie i tak nie mam do czego tego zastosować. Albo coś już zrobiłem, albo nie chce mi się tego robić, albo mam własne pokręcone rewizje i wstawianie tego zajęłoby godzinę, albo starsze, funkcjonalne wersje poszły w niepamięć. ;]

Wczoraj miałem ślubowanie i terez oficjalnie jestem członkiem społeczności szkolnej, na co mam paiery i znaczek tysz. ;P

Wpadłem na pewnien pomysł, jak obsługiwać coś w stylu szablonów z joggera, ale cały problem polega na tym, że samo wyszukiwanie da się załatwić prosto, używając dwóch regexpów i wywoływania funkcji z poziomu samej siebie w przypadku bloków danych. Jednak nie mam pomysłu, w jaki sposób przechowywać te dane, aby w łatwy sposób mieć do nich dostęp. Szczególnie, jeśli blok danych jest tablicą struktur danych (załóżmy, że tablica struktur - to tylko nazwa poglądowa, która z filozofią tablic w PHP i tak nie ma zbyt wielkiego związku), jak <ENTRY_BLOCK>, albo <ENTRY_COMMENT>.

Pokombinujemy...

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Chciałem dobrze

... próbując ulepszyć mój javaskrypt, aby działał w IE. I tyle. Niczego nie udało mi się zrobić - nie wiem, co jest powodem błędu, a informacja "Przeglądarka nie obsługuje tego obiektu, linia x, wiersz y" niewiele pomaga, gdy okazuje się owa linia pustą, przepraszam - zawierającą pojedynczy \t (tabulator).

Pozostaje mi chyba tylko designhappy.org i namawianie nowych osób na inną przeglądarkę albo dalsze (skuteczne?) zmagania z tą przeglądarką. Jedynie statystyki są nieco pocieszające.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

XFN i CSS

Dzięki możliwościom CSS 2.1 można uzyskać bardzo duże wsparcie (oraz ciekawe rezultaty wizualne) dla XFN (strona projektu). Postanowiłem się tym zająć, czego efekty - na razie dość prymitywne - widać np. w menu Czytani.

Jednak bez legendy nawet najlepsza mapa nie zostanie odczytana przez wszystkich. Dlatego też zamieszczam tu krótki opis, co i w jaki sposób oznaczyłem. Będę starał się uaktualniać tą notkę na bieżąco w miarę postępu moich prac nad szablonem.

Specyfikacja.

met
contact
friend
muse
sweetheart

Komentując - kombinuję z moim szablonem, a z drugiej strony nie chce mi się nawet zmienić antypikseli. ;]

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Jogger tweak

Po przeczytaniu wpisów Pimp My Jogger na blogu Riddle'a oraz Favikonki przy podpisach na blogu Pawła Ciupaka również skłoniłem się do ulepszania jogga poprzez różne ficzery.

Rozbudowałem nieco skrypt tworzący permalinki do komentarzy. Dobudowałem boczne menu i przechowywanie informacji o obejrzanych i nieobejrzanych komentarzach. Niestety, kod nie jest zbyt przenośny - większość musiałem napisać konkretnie pod moją konstrukcję szablonu. Ale ktoś znający się na rzeczy nie powinien mieć zadnych problemów z przeniesieniem tego do siebie.

O ile ktoś jednak chciałby zastosować to u siebie - podaję techniczne dane.

Table Of Comments, wersja ohohoho, albo i mniejsza - specyfikacja.
W szablonie komentarzy wstawiamy skrypt w sekcji head.
<script type="text/javascript" src="/custom/dragonee/files/commlink-toc.js"></script>
Tag <COMMENT_NICK/> musi być oznaczony następującym tagiem:
<tag class="commentNick"><COMMENT_NICK/></tag>
W podobny sposób oznaczamy miejsce, za którym mają zostać dodane permalinki:
<tag class="commhead"> zawartość </tag>
Następnie w dowolnym miejscu wstawiamy sobie znacznik div:
<div id="toc"></div>
Kod w powyższym divie generuje drzewko o takim wyglądzie:
<div class="tocmenu">
	<div id="oldcomm" class="menuitem">
		<div class="items">
			<a>
	<div id="newcomm" class="menuitem">
		<div class="items">
			<a>
Ciasteczka wyglądają tak:
name = eid
value = ilość komentarzy
expires = 7 dni

To chyba wszystko, co warto wiedzieć, aby skrypt poprawnie zadziałał. I tak będę pewnie jeszcze kilka razy poprawiać, aby uzyskać większą przyjazność dla uzytkownika. ;]

Apdejt: Już widzę, co pierwsze do poprawki - użyć jakiegoś tekstu zastępczego w przypadku braku komentarzy.

Apdejt 2: Poprawiłem błąd z pustym menu przy braku komentarzy. Teraz się zupełnie nie wyświetla w tym przypadku. Dodatkowo wszelkie klasy i identyfikatory umieściłem w zmiennych na początku skryptu, tak więc dopasowywanie będzie odrobinę prostsze. Na razie nie będę opisywać zmiennych - sądzę, że da się wywnioskować ich przeznaczenie z powyższej specyfikacji.

Tak z zupełnie innej beczki - Polska Żeńska Siatkarska Reprezentacyja ma już na pewno srebrny medal. :D

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Wystawiam szablon

Bynajmniej nie na aukcję. ;)

Za prośbą Cenebrisa, wreszcie ruszyłem kuprem i dopracowałem mój szablon. Na oko nie powinien zawierać błędów, ale w końcu jestem tylko człowiekiem.

Blablabla, CC 2.5: Attribution - ShareAlike, blablabla, miło by było, jeśli jednak powiadomisz mnie na jid/mail, że używasz mojego szablonu. Od razu się robi człowiekowi cieplej na sercu. ;]

To chyba wszystko.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

ap

Szkoła zabiera mi zdecydowanie za dużo czasu, co widać po objętości i ilości nowych notek. Ale staram się chociaż jedną dziennie wydusić, co nie do końca zawsze wychodzi.

Właśnie skończyłem wczesną wersję ap. Tak trochę dla rozrywki, trochę dla nauki, trochę kodu mi się później przyda. mcv, dzięki za inspirację do layoutu, za mulabs.org. ;) Ciekawe, jak się spodoba wam, joggerowiczom i wszystkim zaglądającym tutaj?

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Taki dziwny pomysł mam

Te dziwne pomysły oczywiście muszą wpadać zawsze wieczorem, kiedy się już nie chce wstać i zapisać ich nigdzie, z czego wiele z nich zapominam. :P

Dzisiaj nad ranem się zastanawiałem, co by fajnego i oryginalnego zrobić w php. Wreszcie, po paru odrzuconych pomysłach natrafiłem na coś, co wygląda w miarę sensownie. Forum w postaci jednego wątku, pomysłem oparty o Uniksowe drzewo procesów. Pierwszy post to init. Offtopy wskazane. :D

Teraz trzeba do tego dobudować całą ideologię, żeby to właściwie wyglądało. Zresztą, jedno z rozwiązań już mam, opierać się będzie na score'owaniu.

Założyłem sobie, że minus trzy punkty powodowałyby zablokowanie wątku i jeko następców (bezpośrednich, czy wszystkich?). Wyjątkiem od tej zasady byłby init, którego nie da się punktować. Każdy komentarz może być pozytywny, neutralny i negatywny, z czego ten środkowy jest naturalny. Nie możemy komentować wiele razy jednego posta/siebie.

Jak uważacie, warto byłoby coś takiego robić?

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Zlepek informacji

Skończyłem właśnie pisać kolejne skrypciki do mojej stronki i opycham się ciachem (nie, nie cookies, polskim ciachem - w kończu trza popierać własną gospodarkę). Dzięki sześciu - ośmiu godzinom pisania i testowania napisanego mam zaimplementowaną obsługę RSS2.0 oraz handlera do tekstów, jakie kiedykolwiek napisałem/napiszę. Uwaga, warczę, gdy ktos mnie spyta o rzecz związaną z php. Htmla też mam dosyć na dziś. Podziwiajcie dzieło. :P

Również dzisiaj skończyłek czytać drugą z książek, które sobie wypożyczyłem z biblioteki. Dla mnie, a może i dla kogoś jeszcze opiszę je pokrótce.

Stanisław Lem - Wizja lokalna.
Książka odrobinę zbyt trudna dla mnie, ze względu na skomplikowane i długie opisy (wręcz encyklopedyczne) świata, do którego miał udać się Ijon Tichy. Ciekawy pomysł ewolucji ptaków i rozmnażania się przez zapylanie. Ciekawa książka, dająca do myślenia.

David Eddings - Belgarath Czarodziej
Od początku zakładałem, że ta książka będzie czymś prostym i lekkim. Nie pomyliłem się, chociaż bardzo podobało mi się to, że wszystkie zdarzenia były z góry przewidziane. Niestety, powieść kończy się w środku, chociaż nigdzie nie było napisane, ze są inne części. Też przyjemna książka, można się rozerwać po czymś wymagającym myslenia.

Jeszcze nie przeczytałem książki, która przebiła swym klimatem Kronik Thomasa Covenanta. Polecam wszystkim, chociaż trochę ciężko napisana.

A z muzyki oczywiście The Mars Volta i album Frances The Mute. Boska muzyka, ale muszę przyznać, że pierwsza płyta (De-loused in the Comatorium) trzymała mnie przez dobre ponad pół roku tak, że nie chciałem nawet sięgnąć po tą.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Małe skrypciki do ripowania audio-mpc

Takie coś się bardzo mi przydało, kiedy chciałem sobie zripować jedną płytkę. Ze względu na bardzo dobrą jakość kodeka musepack i jego prostotę od dawna się posługuję tylko nim. A więc pierwszą mniej-więcej działającą wersję możecie ściągnąć stąd.

"Czego ty chcieć", czyli wymagania.

mppenc w $PATH
cdparanoia
bash

Działanie jest proste, opiera się na dwóch skryptach, z których jeden odpowiada za ripowanie, drugi za enkodowanie. Napisałem je tak, aby działały symetrycznie, dzięki temu można skrócić o powien czas cały proces. Dodatkowo wspierają tagowanie (ale jakoś nie złapałem jeszcze, w jakim kodowaniu powinny być polskie litery). I nie trzeba zmieniać nazw. W większości wszystko jest automagiczne.

Jeśli ktoś znajdzie jakiś błąd to proszę o mesga na jabbera, albo maila (podany w README).

Dobra, wystarczy info. :P

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Free movie downloads

  • Pomysł: mcv.
  • Wykonanie: ja.
  • Miejsce: tu.
  • Plik można pobrać z tego miejsca. Kodek - FMP4
  • Film zenkodowany Xvidem jest tutaj.
Dla chętnych podaję sposób: 
$ mencoder mf://* -mf type=jpg:fps=20 -ovc raw -o dch.avi
$ mencoder dch.avi -ovc xvid -xvidencopts bitrate=500 -o dch2.avi

Przy próbie enkodowania od razu z jpegów niestety wywalał mi się segfault, więc zastosowałem półśrodki. Uwaga, z tysiąca plików o rozdzielczości 320x240 i fps=20 mencoder wygenerował mi plik o rozmiarze 120MB, więc lepiej nie używać tego przy małej ilości miejsca na dysku. Teraz filmik powinien ładnie otwierać się u wszystkich, którzy mają kodek Xvid. ;)

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

GNU na obudowie

W czasie odpoczynku od php, bazy PostgreSQL i konfiguracji tego wszystkiego, zająłem się czymś przyjemnym i odprężającym. W końcu kto nie chciałby mieć czegoś takiego na obudowie?

Wynik końcowy mojej pracy

Wczoraj sobie zrobiłem szkic GNU, ściągnięty z obrazka na tej stronie. Nie wiedziałem wtedy, że wpadnę na pomysł umieszczenia sobie takiego obrazka na obudowie. Dopiero dzisiaj, około 15:00 po raz pierwszy dopuściłem do siebie myśl o czymś takim.

Wykonanie

Po denerwujących zdarzeniach opisanych w poprzednim poście, około 21:30 zabrałem się za robotę. Na początku wymontowałem boczną ściankę z obudowy lilium (hosta, na którym pracuję). Następnie uprzątnąłem biurko i wykonałem szkic ołówkiem. Poprawiłem go, aby wyglądał normalnie. Z tego etapu pracy mam dwa zdjęcia (bo ciężko jest robić coś i trzymać kamerkę nie_wiadomo_czym): pierwsze i drugie. Następnie namalowałem markerem (Faber-Castell, 3 zł) cały wzór od nowa. Linie od linijki, a resztę bez wspomagania. Odczekałem kilka minut, wyczyściłem z pozostałej gumki obudowę i używając gumki chlebowej starłem delikatnie resztę ołówka, którą spod obrazka było widać. Gumka taka świetnie się do tego nadaje - jest plastyczna (ma konsystencję masy ciastowej) i zbyt słaba, aby rozmazać markera. Potem mogłem tylko podziwiać dzieło.

Wszystkie obrazki. Jeśli strona jest niedostępna, to znaczy, że wyłączyłem serwer. No cóż, czasami muszę go wyłączać na noc.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Szablon prawie gotowy- cz. 2 :)

Dzisiaj, tak jak zapowiedziałem, wstawiłem kilka rzeczy do menu wymagających ingerencji w kod - między innymi wygodniejsze logowanie i wylogowywanie. Z tego powodu mogę ogłosić, że mój szablon przyjął wersję 0.1.2. Na razie zostanie tak jak jest, jak skompletuję listę ważnych linków to ją wrzucę, ale to wszystko da się zrobić z naszego wypasionego panelu sterowania. :P A może kiedyś wystawię go jako Open Source.

Ostatnio nie mam czasnu na bawienie w Internecie, robię z ojcem mały remoncik w domu, co zajmuje około 12 godzin dziennie - zdarzenia, które nie zależą od nas. Ale dobrze, oderwę się od nieustannego siedzeia przed komputerem i poprzebywam troszkę czasu na świeżym powietrzu, a co się nauczę/wyćwiczę, to moje. ;)

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Szablon prawie gotowy

Kilka godzin pisałem ten szablon z dokumentacją w przeglądarce, ale wynik jest dość zadowalający. Co prawda, na razie to dopiero wczesna wersja, ale już działa i, o ile sprawdzałem, walidowała się. Jutro mam zamiar dodać resztę, czyli linki, silkscreenowe buttony (wie ktoś, jak to się naprawdę nazywa?), oraz inne fikuśne rzeczy.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane
Na górę
Reklamy Google