Poprawiłem mój perlowy skrypt GoogleCode Downloader. Ostatnio pobierając jakiś kod w źródłach znalazło się kilka tagów htmlowych. Być może google coś zmieniło, albo wtedy nie miałem okazji trafić na takie pliki. Przy okazji dorzuciłem usuwanie znaków nowej lini, bo zawsze kilka ich znajdowało się na końcu pliku.
Changelog wersji 0.2:
usuwanie tagów html z kodu źródłowego; usuwanie znaków końca linii z końca kodu źródłowego; W pewnych okolicznościach wystąpił jeszcze jeden, dosyć specyficzny błąd, ale nie mogłem go ponownie wywołać, więc nie został ostatecznie poprawiony.
Od kilku dni prace nad frameworkiem (lub tym czym to na razie jest) w PHP nie posuwają się naprzód, a to z kilku powodów. Jednym z nich są napotkane trudności, a drugim inne, bardziej lub mniej ważniejsze zajęcia (m.in. grzebanie w asemblerze i “czystym” C). Mam nadzieję, że wkrótce wrócę do tego kodu.
Ta wspomniana trudność, jaka mi stanęła na drodze to forwardowanie. A dokładniej to pewna sytuacja przy forwardowaniu kontrolera/akcji.
Wiem, że powinienem w tym czasie zamiast bawić się w PHP rozwijać te kilka ważnych dla mnie projektów w C++, ale doszedłem do wniosku, że poświęcę jeszcze trochę czasu na uporządkowanie kilku spraw i projektów, aby potem zabrać się pełną parą za komunikator ;)
Notatka nie będzie dotyczyć zabaw z typowym routerem, mowa tu o komponencie/module frameworka odpowiedzialnego za obsługę żądań (requestów) i spraw związanych z generowaniem linków. Może nie jest to typowe, modelowe zadanie routera, tak czy owak w moim małym, skromnym frameworku spełnia takie funkcje ;)
Zastanawiałem się ostatnio nieco nad swoją przyszłością w roli programisty. Czas najwyższy “olać” kilka języków, a zacząć się specjalizować w tych kilku wybranych, tych ulubionych, tych które mnie najbardziej interesują.
W obecnej chwili myślę, że będzie to głównie C/C++/D, jeśli chodzi o kompilowane, natomiast ze skryptowych to Perl, PHP, może Python (choć tego akurat wcale nie znam i na razie się nie śpieszę poznać). Ewentualnie mogę do tej listy dołączyć C#, ale nie planuję większych zabaw z .
Każdy już zna zapewne FeedBurnera. Jedną z ciekawych funkcji, jakie oferuje jest licznik subskrybentów naszego kanału. Licznik ten jest graficzny, co nie wszystkim może odpowiadać.
Amit Agarwal na swoim blogu w notce “FeedBurner Tip: Change The Text Inside FeedCount Chicklets” zaprezentował ciekawy hack na zmianę tekstu widniejącego na liczniku graficznym. Ja jednak chcę czysty tekst z liczbą czytelników feeda.
Na pomoc przychodzi API FeedBurnera, a dokładniej Awareness API. Nie będę się tu zagłębiał w szczegóły tego API, zainteresowanych odsyłam do dokumentacji.
Migracja na nowy hosting (dzięki lan za kawałek miejsca). A skoro już migruję to przy okazji nowa domena, jid i e-mail. Wszystko za jednym zamachem, aby nie narobić zbyt wielkiego zamieszania i problemów ;)
Historia z “nową” domeną jest ciekawa. Do niedawna malcom.pl była domeną firmową pewnej firmy. Kiedyś nawet złożyłem im ofertę odkupienia domeny, ale oczywiście definitywnie odmówili jakiejkolwiek możliwości odstąpienia/odsprzedaży. Tak więc, zadomowiłem się pod znanym obecnie adresem malcom.
Może już wkrótce Śląsk będzie miał swoje własne śląskie GrilIT, czyli spotkania ludzi związanych z szeroko pojętymi technologiami sieciowymi i IT.
Z inicjatywą śląskich spotkań “wyskoczył” normanos na swoim blogu. Tam zapewne również będą pojawiać się aktualne nowinki i informacje dotyczące implementowania beta spotkania.
Ja jak najbardziej popieram inicjatywę, nie jesteśmy gorsi od innych i swój “Spodek 2.0” też będziemy mieli!
Mam nadzieję, że wszystko pójdzie według planów i już za niedługo będziemy mieli swoje pierwsze “spotkania sieciowe” w Katowicach.
Google Code jest jedną z kilku rzeczy, jakie naprawdę się udały temu monopoliście ;)
Pewnie mieliście też taką sytuację, że znaleźliście ciekawy kod źródłowy bądź projekt przy pomocy tej wyszukiwarki. Tak Wam się spodobał, że bardzo zapragnęliście go posiadać. Próbujecie pobrać (przeważnie archiwum) z macierzystego serwera, gdzie owe pliki się znajdują i rozczarowanie - 404! Pod podanym adresem już nie znajdziecie tego, czego tak bardzo szukaliście. Smutek na twarzy się pojawia…
W ramach wstępu zapraszam do lektury artykułu Marcina Kasperskiego pt. Horror nazewniczy pod windows.
Miałem podobny problem z SendMessage() w xiT++, przez co początkowo została wykorzystana nazwa sendMessage() w bibliotece używanej na systemach Microsoftu. I dziś udało mi się na szybko ten problem rozwiązać obejść przy pomocy preprocesora. Wkurzała mnie taka “odmienność” nazwy jednej metody od stylu nazewnictwa reszty.
Ten “magiczny” kod (pochodzący z xiT++):
#ifdef WIN32 // Fixed SendMessage function name problem on Win32 #ifdef UNICODE bool SendMessageW(const Message& message); #else bool SendMessageA(const Message& message); #endif #else bool SendMessage(const Message& message); #endif Może komuś się przyda takie szybkie i proste rozwiązanie ;) Choć to jest chamski i brzydki hack!
W czasie debugowania (i nie tylko) nieraz potrzeba wyświetlić nazwę wartości typu wyliczeniowego - enum. Wszakże lepiej i łatwiej zorientować się widząc nazwę niż samą liczbę i szukać po plikach, definicjach jakiej nazwie ona odpowiada.
Szkoda, że sam język nie posiada jakiejś konstrukcji do tego celu, pre-definiowanego makra lub czegoś innego.
Poszukałem trochę w sieci i znalazłem kilka propozycji rozwiązań tego problemu:
Makra do debug’owania i nie tylko (część dyskusji) Converting C++ enums to strings C++ enum names as strings C++, outputing enum values from fprintf Generic Printable ENUM++ Niestety nie są one ani proste ani łatwe… Chciałbym coś tak prostego w użyciu i banalnego jak same typy wyliczeniowe, bez zbędnego “babrania” się z podobną składnią/konstrukcją.