Gadu-Gadu skanuje przesyłane URLe
Rozmowa z kolegą znającym się na administrowaniu Linuksem zazwyczaj prowadzi do podniesienia poziomu mojej wiedzy tajemnej. Czasami pozwoli na dokonanie jakiegoś wiekopomnego odkrycia, którym nawet można zaskoczyć mądrzejszego kolegę
Konfigurując router, by pozwolił mi otworzyć stronę WWW na moim własnym serwerze, poprosiłem kolegę o pomoc. Wysłałem przez Gadu-Gadu linka do strony WWW, i w tym samym momencie w access.log pojawił się wpis:
91.197.15.34 - - [30/Jan/2012:11:19:15 +0100] "GET / HTTP/1.1" 200 761 "-" "-"
Właścicielem tego adresu jest:
inetnum: 91.197.12.0 - 91.197.15.255 netname: GADU-GADU descr: GG Network S.A.
Najprostsze wyjaśnienie to rutynowe sprawdzanie linków przed dostarczeniem, czy nie zawierają stron które mogą zaszkodzić użytkownikowi. Chociaż w świetle ostatnich kontrowersji na temat pewnej umowy międzynarodowej, definicja "szkodliwości" i tego co ma zostać odfiltrowane, może zostać łatwo poszerzona...
Wspólny WAR na wiele środowisk w Grails
Niestety ten artykuł jest dostępny na razie tylko w wersji angielskiej.
Nowa wersja aplikacji Phocus!
Ostrzeżenie: jeśli Twoje zamiłowanie do fotografii ogranicza się do utrwalania wspomnień kompaktem albo telefonem - to dobrze. Nie przejmuj się, jeśli dalsza część tekstu jest niezrozumiała - opisywany temat jest wybitnie niszowy.
Jeśli fotografujesz lustrzanką i nie rozumiesz sensu słów poniżej - kup kompakta, będzie Ci lżej.
Miło mi poinformować, że po tygodniach podkradania wolnego czasu udało się ukończyć prace nad nową wersją kalkulatora głębi ostrości Phocus! Poza znaną już funkcją wyznaczania zakresu głębi ostrości na podstawie ustawień aparatu, nowością jest funkcja działająca w przeciwną stronę - podaje optymalną przysłonę i punkt ostrości potrzebne dla osiągnięcia wybranej głębi.
Kiedy zapędziwszy się w twórczości postanowimy powiedzieć nie tyle "dosyć" co "wróć", stoimi przed drobnym problemem: revert wycofa tylko zmiany w plikach, nowe zostają na swoim miejscu.
Okazuje się, że istnieje łatwy sposób na zrobienie porządków, i po raz kolejny okazuje się, że ciekawa funkcja w Mercurialu została ukryta, chociaż wchodzi w skład dystrybucji. Tym razem wyciągnąłem z ukrycia rozszerzenie "purge" edytując plik .hgrc znajdujący się w moim domowym katalogu i uzupełniąc o jedną linijkę:
[extensions] purge =
Po tym wystarczy wpisać:
hg purge
i niechciane dzieci lądują do /dev/null.
Sposób na dziwne zachowanie TextMate
Ten tekst jest dostępny na razie tylko w języku angielskim. Najmocniej przepraszam.
CIDR jabłkowy na zdrowie
JetBrains, wydawca rewelacyjnego środowiska dla programistów Javy (i nie tylko) IntelliJ postanowiła skorzystać z nieustającego wzrostu popularności języka Objective-C. I zrobili to w swoim stylu: nowy produkt - CIDR (obecnie nazywany appCode), dostępny na razie jako early access pokazuje jak powinien wyglądać wzorcowe środowisko IDE. Jako edytor kodu źródłowego CIDR jest znakomity: oferuje większość niezbędnych refaktoryzacji, generuje @properties, @synthesize, uzupełnia deklaracje metod. Programiści Javy są do takich udogodnień od dawna przyzwyczajeni (i mają takie dostępne w większości darmowych i płatnych IDE). Niestety, developerzy na iPhone i Mac są skazani na Xcode. Do czasu.
Zaskakująco nieźle działa integracja z Xcode - po uruchomieniu projektu włącza się symulator, gdy trzeba stworzyć interfejs użytkownika - włącza się Xcode'owy Interface Builder. Oczywiście wszystko działa również z Xcode 4.
Pozostaje mieć nadzieję, że cena będzie atrakcyjna - patrząc na ceny innych specjalizowanych IDE (dla jednego języka) można oczekiwać, że nie przekroczy 100 euro. Dla dramatycznego wzrostu produktywności (przynajmniej mojej) będzie do zaakceptowania.
Czytelne wyświetlanie JSON-a
Okazuje się, że wyświetlenie danych w formacie JSON w formie czytelnej dla człowieka jest bardzo proste do zrobienia z wiersza poleceń. Nie trzeba niczego instalować, wystarczy... Python. W porządnych systemach operacyjnych interpreter jest prawdopodobnie zainstalowany wraz z dystrybucją, dla mniej porządnych można go łatwo pobrać. Potem wystarczy:
echo '{ "Japko.net" : "Rzondzi" }' | python -mjson.tool
Barwniejszy Mercurial
Aby uprzyjemnić sobie pracę z klientem Mercuriala z wiersza poleceń, warto dopisać sobie parę zaklęć do .hgrc. Otwieramy go naszym ulubionym edytorem:
vim ~/.hgrc
Po czym dopisujemy sekcję [extensions], a w niej:
[extensions]
color =
highlight =
graphlog =
color i highlight włączą nam kolorowanie statusu kopii roboczej i diffów. Graphlog dodaje nową komendę: glog, która wyświetla dziennik zmian w wersji pseudograficznej, tj za pomocą znaków ASCII mercurial usiłuje narysować "drzewko". To rzecz jasna nie wszystkie rozszerzenia, do odkrycia. Ja zacząłem od takich, które uprzyjemnią nieco pracę w wierszu poleceń.
Tyle się mówi o "otwartości" Androida i jaki to iPhone jest paskudny, zamknięty i zły. Pojęcie otwartości jednak nabiera głębszego znaczenia w kontekście. Poszukiwałem w API klas pozwalających grzebać w kalendarzu na urządzeniu Android, i... nie znalazłem. Można oczywiście sobie pracować z kalendarzem, ale tym w chmurce. A chmurką rządzi Wujek Google, rzecz jasna, bo nie jest organizacją dobroczynną i coś musi z tego otwartego systemu mieć, prawda?
iPhone Coding WTF
Zdarzyło mi się robić zmiany do pewnego obcego projektu. Wiedziałem, że projekt miewał poważne kłopoty: masa bugów, wysypywanie się aplikacji na telefonach, a nawet odrzucenie przez App Store z powodu wysokiej awaryjności. Szykowałem się na najgorsze, cytując ostatnie słowa Kurtza z Jądra Ciemności: "The horror! The horror!".
Niestety, złowieszcze przepowiednie się sprawdziły. Główny kontroler widoku długi na 3000 linii nie wróżył nic dobrego. Wciąż aktualna jest prawda, że pomimo znajomości języka programowania i API można popełnić gniota z punktu widzenia projektowego.
Morał tej historii jest krótki: przestańcie myśleć Turbo Pascalem. Objective-C jest językiem obiektowym, więc do diabła, korzystaj z tego!
Kliknij na dalszy ciąg tekstu by zobaczyć jednego programistycznego kwiatka...


Polski
English




