Jak wygląda JPEG po 100 000 rekompresji?

Z cyklu "moje szalone eksperymenty", czyli co się dzieje z obrazem zapisanym w formacie JPEG, jeśli będziemy go ciągle otwierać i zapisywać?

Do tego doświadczenia posłużyłem się napisanym specjalnym programem który kolejno, aż do znudzenia, otwierał i zapisywał do JPG’a ten sam obraz. I tak 100 000 razy. Nie wchodziłem zbytnio w optymalizację na ten jeden raz, stąd też nieco to trwało.

Pewnie myślicie że po kilkunastu takich operacjach z pierwotnego zdjęcia została sieczka? Prawdę mówiąc też tak myślałem. Jakież było moje zdziwienia gdy się okazało że praktycznie nic się nie zmienia! Ale gdyby to był końcowy wniosek, wpis ten był by nudny, poszedłem zatem o krok dalej :).

Dalszy krok

Początkowo po prostu prowadziłem rekompresje obrazu zapisując go za każdym razem w tej samej jakości. I tak jak wyżej wspomniałem, jakość zdjęcia nie pogarszała się wraz z kolejnymi iteracjami – cały czas pozostawała na określonym poziomie wynikającym z obranego stopnia kompresji.

Dlaczego tak się dzieje? Wynika to wprost z algorytmu JPEG.

Nokia 700 – mój pierwszy dotykowiec

Nie będę ukrywał, że to tego wpisu zainspirowała mnie seria postów Krogulca na temat Nokii N9. Prawdopodobnie mój wpis nie będzie takim tasiemcem ;) jak wyżej wspomniana seria, ale postaram się przekazać to co dla mnie było najważniejsze przy wyborze tego modelu.

Tak jakoś mi się utarło że średnio co dwa lata zmieniam telefon. Z uwagi na fakt że mój pierwszy był marki Nokia, po dziś dzień używam telefonów tej firmy – mimo różnych opinii na jej temat i ich systemów. Kwestia przyzwyczajenia oraz tego że w zasadzie znajduje w nich wszystko co jest mi potrzebne.

Do modeli stricte dotykowych zawsze podchodziłem z dystansem, składało się na to kilka powodów. Po pierwsze brak fizycznych klawiszy, wymiary, waga no i cena też nie jest bez znaczenia. Model 700 jest reklamowany przez Nokię jako najmniejszy smartphone na rynku, i nie wchodząc w polemikę czy tak jest naprawdę, to rzeczywiście aparat ten należy do grona bardzo małych.

Moje najdziwniejsze programy

Z programowaniem, jak z każdą inną twórczością, jedne rzeczy wychodzą lepiej, inne gorzej, jeszcze inne lądują w koszu nie ujrzawszy nigdy światła dziennego.

Chciałbym się dziś z Wami podzielić moimi najdziwniejszymi programami jakie udało mi się stworzyć a które z różnych względów nie zostały nigdzie opublikowane, bądź znikły z uwagi na ich wiek. Główna przyczyna tego stanu rzeczy? Bardzo wąska specjalizacja bądź też typowo prywatny cel stworzenia czegoś, co ułatwia mi codzienną pracę przy komputerze.

Zapnijcie zatem pasy i nie próbujcie tego w domu ;).

Bot Routes Editor

Zdecydowany lider, niedościgniony wzór i autorytet w dziedzinie najbardziej specjalizowanej aplikacji jaka wyszła spod mojej ręki. Cóż to takiego?

Bot Routes Editor to narzędzie służące do optymalizacji i naprawiania konfiguracji ścieżek botów dla moda (!) do gry Soldier of Fortune II.

Swego czasu byłem zapalonym fanem tej gry. Wraz z przyjacielem bardzo często korzystaliśmy z pewnego moda który dodawał obsługę CPU w grach multiplayer. Aby boty mogły działać należało stworzyć im tzw. ścieżki.

Bezgłośny domowy komputer serwerowy

Każdy z nas marzy o bezgłośnym, a przynajmniej bardzo cichym blaszaku. Pogoń za wydajnością pociąga za sobą coraz to większe ilości wydzielanego ciepła, a co za tym idzie problemy z jego odprowadzaniem. Oczywiście coraz to mniejszy proces produkcyjny nieco ratuje sytuację, ale niedostatecznie.

Pasywne konstrukcje są z reguł droższe od aktywnych odpowiedników. O ile w przypadku kart graficznych, procesorów coś jeszcze można ugrać, to przykładowo pasywne zasilacze są nie dość że rzadkością to jeszcze bardzo drogie.

Co zatem robić? Dziś sytuacja jest nieco lepsza niż kiedyś, mamy bezgłośne SSD, zasilacze ITX, czy nawet chłodzenia wodne. Kilka lat temu stanąłem przed problem zbudowania całkowicie bezgłośnego komputera, który miał służyć za serwer mojej własnej gry. Trudno było wypromować grę multiplayer gdzie gracz po jej odpaleniu nie miał gdzie grać.

Podstawa

Zacznijmy od podstaw, płyta główna i procesor. Pierwsza to najzwyklejsza ATXowa płyta. Procesor Intel Celeron 766MHz z chłodzeniem jak na załączonym obrazku – czyli wyprzedzającym znacznie epokę tego procesora.

Jak działają multiplayerowe gry strategiczne?

Pamiętam jak dziś, kiedy po raz pierwszy zagrałem on-line w produkcję firmy Blizzard, strategię czasu rzeczywistego, grę Starcraft. Wtedy jako początkującego programisty, urzekł mnie fakt że to wszystko po prostu działa! Na modemie o oszałamiającej prędkości 3 KB/s dziesiątki jednostek poruszały się i walczył bez najmniejszego zająknięcia.

Po kilku latach przeczytałem artykuł podobny do tego wpisu, i zachwycił mnie geniusz ludzi którzy wymyślili w jaki sposób rozwiązać realizację protokół sieciowego w grach strategicznych. Może dzisiaj nie wydaje się to czymś bardzo odkrywczym, nie mniej, chciałbym podzielić się to wiedzą. Zakładam że bardzo dużo dzisiejszych gier działa w podobny sposób.

Co to za plik? - nietypowa usługa, nietypowy wpis

Odchodząc od tradycyjnej formy blogowej, wpis ten będzie nieco nietypowy. Dlaczego? Gdyż głównie zależy mi w nim na Waszej opinii w temacie jaki chciałem przedstawić. O czym mowa? O produkcie który stworzyłem kawałek czasu temu, a który obecnie z braku perspektyw leży odłogiem. Ciekawi mnie czy coś takiego ma w ogóle rację bytu i czy jest sens dalej się tym zajmować.

Wszystko rozbija się o stronę www.cotozaplik.pl. Cóż to takiego? Co to za plik? jest serwisem pozwalającym na identyfikację konkretnych plików na dysku twardym. Przy pomocy programu dostępnego na stronie, łatwo (z menu kontekstowego pliku) dowiemy się czym jest i do czego służy dany plik. Każdy użytkownik serwisu może również dodać opis dowolnego pliku bądź poprawić już istniejące. W odróżnieniu od innych serwisów, cotozaplik.pl pozwala na sprawdzenie konkretnego pliku, a nie jego typu (rozszerzenia).

To tyle autoreklamy ;).

Wyłączanie komputera o określonej porze

Oczywiście bez użycia zewnętrznych narzędzi, gdyż takich jest sporo. Czasami zachodzi potrzeba zostawienia komputera włączonego jeszcze przez godzinę, jeśli nie mamy innego softu, bądź nie chcemy go instalować tylko do tej jednej czynności, proponuje skorzystanie z systemowego polecenia shutdown.exe.

Polecenie to ma mnóstwo przełączników, nas jednak interesuje poniższa składnia:

shutdown.exe /s /t 1200

...gdzie: /s oznacza zamknięcie systemu, a /t określa czas w sekundach do tego zdarzenia (w tym wypadku 1200 sekund, czyli 20 minut). Po wydaniu tego polecenia naszym oczom ukaże się poniższy komunikat.

Gdybyśmy się rozmyślili, odliczanie łatwo przerwać poleceniem:

shutdown.exe /a 

Pozycjonowanie a dobra treść

Jakiś czas temu natknąłem się na coś takiego jak „precel” w temacie pozycjonowania stron. Dla niewtajemniczonych, owy „precel” to strona www, na której umieszczane są artykuł wraz z linkami zwrotnymi do pozycjonowanej strony. Z reguły każdy może dodać taki artykuł aby podnieść pozycję swojej strony w wyszukiwarce.

Zetknąłem się z tym po raz pierwszy i prawdę mówiąc zacząłem się zastanawiać, czy to już aby nie jest przesada? Rozumiem że na wrażliwych frazach jest ostra walkę o pozycję w wyszukiwarkach, ale przecież ludzie nie są idiotami! Załóżmy że ktoś osiągnie swój cel, i wyjdzie na pierwszą pozycję z stroną niekoniecznie pasująca do słów kluczowych. No przecież każdy kto nawet odwiedzi taką stronę szybko ją opuści jeśli się okażę że to nie to czego szukał.

Wydaje mi się że dobra treść, dobry produkt sam potrafi się obronić i nie potrzeba aż takich gimnastyk. Naturalnie powstające linki zwrotne załatwią sprawę. Oczywiście zakładam że strona jest dobrze napisana i zoptymalizowana w minimalnym stopniu pod kątem wyszukiwarek.

Jak dodać własny plik do sieci BitTorrent?

Zapewne wielu z Was używa sieci bezpośredniej wymiany plików korzystającej z protokołu BitTorrent. Wszystko przebiega bezproblemowo, do czasu gdy chcemy sami dodać nowy plik.

Każdy zbiór danych, aby mógł być pobrany przez innych użytkowników, musi być śledzony przez tzw. tracker - informacje o nim zawarte są w plikach .torrent. Oczywiście nie ma sensu stawiać własnego tracer'a, gdyż wiązało by się to ze sporymi kosztami.

Jak zatem dodać własny plik do tej sieci p2p? Na te i inne pytania postaram się odpowiedzieć w dalszej części wpisu, bazując na kliencie µTorrent.

Z menu Plik, wybieramy pozycję Utwórz nowy torrent.... W grupie Wybierz źródło, wskazujemy plik bądź folder który zamierzamy udostępnić.

W polu Trackery

Dlaczego załącznik e-mail'a zajmuje więcej niż na dysku?

Pewno wielu z Was zastanawiało się nie raz, dlaczego ten sam plik, wysłany pocztą elektroniczną zajmuje więcej niż na dysku. Przyczyny tego zjawiska należy dopatrywać się w czysto tekstowej formie protokołu poczty POP3 oraz SMTP. Jako że tekst drukowany, zawiera się w niepełnych 8-bitach (tzn. jest mniej niż 256 różnych liter alfabetu i innych znaków), stąd też nie można wysłać danych 8-bitowych przy jego pomocy.

Co się robi w takiej sytuacji? Pewni sprytni ludzie, wymyślili swego czasu kodowanie o nazwie Base64. Cóż takiego ono robi? Przekształca bloki 3 bajtowe, na 4 bajtowe o reprezentacji w zakresie znaków drukowanych. Innymi słowy, zapisuje 3 liczby 8-bitowe w postaci czterech 6-bitowych, jednakże tak, aby użyć do tego celu jedynie liter alfabetu oraz cyfr.

Z uwagi na w/w sposób działania, zwiększa się ilość danych potrzebnych do reprezentacji tego samego zbioru w kodowaniu Base64.