Michał Moroz

Abecadło smoczątka, dziennik niecodzienny

Do zapamiętania

Jeden. Nie stosuj object.setAttribute('style', 'costam');, aby ustalać styl obiektu, skoro możesz się odwołać poprzez object.style.

Dwa. Pamiętaj koniecznie, żeby nie stawiać średnika, odwołując się poprzez object.style, tak jak w tym przykładzie: object.style.property = "1em;". Internet Explorer nie akceptuje tego.

Trzy. Gdy już wstawiasz jakiś kod na serwer, licz się z możliwością wydania większej ilości wersji niż jedna i od razu zrób tam odpowiedni folder. Dodatkowo, genialne polecenie ln potrafi czynić cuda. Możemy zrobić dowiązanie do aktualnej wersji kodu (ln -s project-wersja.ext project-current.ext), a kiedy wyprodukujemy następną, zmieniamy tylko to dowiązanie. Zyskamy na wyszukiwaniu i poprawianiu wszystkich linków, które do tego miejsca prowadzą.

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

Python a JavaScript

Widząc Pythona o raz za dużo, można się rozleniwić i zacząć żądać wszędzie upraszczających pisanie struktur, funkcjonalności i filozofii. Cóż, każdy dobrze się czuje, gdy podsuwają mu talerz z ciepłym jedzeniem pod nos, potem przykrywają kołdrą i nucą kołysankę. ;)

Inna rzecz, że potrafi być zdradziecki, jak to wąż, a na pięćdziesiąt linijek kodu czterdzieści osiem zajmuje sprawdzanie możliwych błędów. Dwie pozostałe wystarczą, aby wyprasować, pościelić i zawiązać krawat. W wypadku, gdy nie chce nam się pisać tych czterdziestu ośmiu linijek i gdy przypadkiem zawieruszy się gdzieś nasz krawacik - program z godnością wystrzeli w kosmos. Nie dziwmy się więc, że na księżycu dużo dziur.

Przechodząc do spraw bardziej przyziemnych: po raz kolejny poprawiając skrypcik odpowiadający za robienie skrótu komentarzy doszedłem do momentu, gdzie przydałaby się możliwość wywoływania funkcji z domyślnymi argumentami. Metoda prób i błędów wykluczyła najbardziej logiczną i naturalną składnię. Albo twórcy chcieli być koniecznie odrębni, albo w JavaScripcie nie ma takich możliwości. Tak, czy siak, marudzę. Ale po Pythonie - nawet w takiej mikrej ilości jak moja - jest to normalne.

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

Firefox i Tiny.pl

Poproszony przez Rozbita zacząłem kombinować, jak tu by zautomatyzować obsługę tiny.pl. Już myślałem, że trzeba będzie kombinować z postem, albo autoklikiem na formularzu, gdy wpadło mi w oko to. Teraz to już luzik, nie ma problemu, żeby wykorzystać. Lekko poprawiona wersja tego kodu wygląda tak (bez <pre>, bo potem wyszłaby długaśna linijka kodu, nieprzyjemna do przeklejania).

Skrptozakładka.

Tak przygotowany kod wklejamy jako źródło zakładki. Z tak przygotowanego linka robimy sobie zakładkę (u mnie leży ona sobie w Folderze zakładek osobistych) i używamy do woli. Można przekleić link lub odpalić stronę, a skrypt sam skorzysta z document.href.

I już. :)

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

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
Na górę
Reklamy Google