Michał Moroz

Abecadło smoczątka, dziennik niecodzienny

Kitty

Postać kotka jest pomysłem KariNeko, zachęcam do obejrzenia jej wszystkich prac - są interesujące; szczególnie ze względu na ich prostotę.

Sam kotek doczekał się kilkunastu różnych obrazów. Dość duża grupa z nich stanowi jedną, oddzielną serię wyróżniającą się tymi samymi kolorami. Muszę przyznać, że ta odrębna całość wywiera na mnie wrażenie, a postać kotka jest śliczna. ;)

Prawdopodobnie z przeznaczeniem chwilowej osłody życia, poskładałem je wszystkie w jednym miejscu.

Kitty...fixed it
Kitty...alone
Kitty...broken
Kitty...letters
Kitty...kiss
Kitty...hurt
Kitty...candy
Kitty...heavy heart
Kitty...big heart
Kitty...flower
Kitty...balloon
Kitty...phone
Seria o kotku autorstwa KariNeko. Kolejność miniaturek dowolna.

Odkrycia dokonałem dzięki pomocy Mystic i znaczącą część przyczyn powstania tego wpisu przypisuje się jej.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Tylko jedna reklama

TVN, oglądam film. Jak zawsze, gdy coś zaczyna się dziać, wchodzą reklamy.

Dziś jednak wielka spostrzegawczość pozwoliła zauważyć, że będzie tylko jedna reklama. Naiwnie pomyślałem, że taką ilość zdzierżę.

Wejściówka TVNu (z napisem "Tylko jedna reklama"), reklama, wyjściówka (oczywiście z napisem "Tylko jedna reklama"), wejściówka (już bez tego napisu), blok reklam, który trwa już z dwanaście minut, wyjściówka.

Prawda, że chłyt maketindodi?

Pamiętajmy jednak, że gdy kupimy wszystkie te produkty, o których mówili, to będziemy szczęśliwsi, nie?

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Programistyczna kanapka, czyli wprowadzenie do warstw abstrakcji

Pomysłów na kanapkę jest wiele. Aby nadać jej odpowiedni smak, możemy posłużyć się ogromem składników. Mimo to, większość z nas, tworząc własną kanapkę korzysta z tych samych zasad, podyktowanych głównie przez eksperymenty i zdrowy rozsądek. Wymieńmy je:

  1. Na spodzie kładziemy chleb, lub wyrób chlebopodobny. Chociażby dlatego, że pomniejsze składniki na samej ręce nie będą chciały zbytnio się utrzymać.
  2. W środku kładziemy główny składnik (w znakomitej większości jeden, dość rzadko - dwa, większa ich ilość jest pomijalna).
  3. Na górze dodajemy warzywa i przyprawy, które nadal potrafią odmienić wielce smak tej samej kanapki z głównym składnikiem. Dodatkowo, zapewniają one wizualizację zaplanowanego przez nas wyglądu idealnej kanapki.

Schemat na budowę kanapki wydaje się prosty, jednak dzięki niemu możemy stworzyć zadziwiającą ilość kombinacji. Dojdziemy także do wniosku, że ten schemat właściwie nas nie ogranicza.

Po zaprogramowaniu i zjedzeniu kanapki oraz umyciu rąk, siadamy przed monitorem i zastanawiamy się, jak stworzyć jakiś program. Paradoksalna sytuacja, skoro przed chwilą bez zastanowienia projektowaliśmy w ten sam sposób. Dojście do najprostszych rozwiązań, choć tak popularnych i naturalnych, zawsze bywa kłopotliwe.

Z wiedzą o zależności kanapki i programu, możemy się zabrać za sensowne go tworzenie. Postawmy sobie następujące założenia:

  1. Chcemy zminimalizować czas potrzebny na poprawianie błędów w programie.
  2. Chcemy, aby nasz program dawało się rozwijać bez jakiejś skomplikowanej ingerencji w dotychczasowy kod. Implikując, chcemy go rozwijać.
  3. Nie chcemy, aby kod był duplikowany.

W tym wypadku, sensowne wydaje się użycie warstw abstrakcji. Co możemy dzięki nim zyskać?

  1. Przejrzystość i czytelność kodu - wymuszone naszymi założeniami.
  2. Pewność, że nie będziemy naruszali spójności całego programu, zmieniając lub dopasowując właściwości danego komponentu.
  3. Znacznie mniej koniecznej dokumentacji do zrozumienia działania programu.
  4. Elastyczność w dodawaniu nowych funkcji - chyba największa zaleta warstwowego podejścia do programowania.
  5. Możliwość używania kodu z wcześniejszych projektów bądź łatwo dostępnego w sieci bez konieczności przepisywania jego połowy w celu przystosowania do programu.

Następnym razem - jak przygotować się mentalnie do programowania warstwowego.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Battlestar Galactica na TVP2

Puszczają prawdopodobnie całą pierwszą serię.

Już dziś wieczorem, na TVP2 będzie można obejrzeć pierwszy odcinek serialu Battlestar Galactica, jednego z ciekawszych seriali science fiction ostatniej dekady. Akcji tu niewiele, ale fabuła trzyma w napięciu. I (o ile dobrze pamiętam) wreszcie ktoś zauważył, że w przestrzeni dźwięki rozchodzą się raczej słabo.

Po Latającym Cyrku Monty Pythona, emitowanym w środy wieczorem na TV4, będzie to kolejna nieco bardziej stała pozycja mojego telewizorooglądactwa.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane

Mój pierwszy AVR

... miga zachęcająco czerwoną diódką do mnie. Zacznijmy jednak od początku.

Od dawna wiedziałem, że mikrokontrolery to bardzo ciekawe urządzenia, skoro mogą wykonywać więcej niż jedną czynność, a na dodatek można je oprogramować wedle uznania. W tamtych, pięknych czasach, mikroprocesory nie były jednak rozpowszechnione, a wszystkie programatory były albo drogie, albo droższe. Poza tym koszt samych układów wahał się w granicach kilkudziesięciu złotych. I sam także nie znałem się na programowaniu, więc pozostawały one dla mnie marzeniem.

Od pewnego czasu sytuacja się zmieniła. Powstały układy AVR, do których nie potrzeba specjalistycznych urządzeń, a ich koszty zmalały. Nadają się świetnie do różnych układów, począwszy od budzików, skończywszy na pomniejszych sterownikach, a dzięki otwartemu oprogramowaniu nie ma dużych problemów, by je oprogramować. Chęć ich poznania wróciła ze zdwojoną siłą.

Zachęcający był szczególnie pseudoprogramator - tak naprawdę odpowiedni kabel drukarkowy - dzięki któremu można było programować procesor w układzie, bez wyjmowania go z płytki. Kwestia zlutowania kilku kabelków z dwiema wtyczkami.

Domowym sposobem została zmontowana płytka, na której znajdują się cztery diody świecące LED, jeden przycisk, jeden mikrokontroler i kilka dodatków, potrzebnych do działania. Praktycznie, jeden dzień roboty od projektu do gotowej płytki.

Dla komatybilności z artykułem Wojtka Kaniewskiego, na którym się wzorowałem, użyłem układu ATTiny2313. Dużo czasu zejdzie, zanim zacznę używać wszystkich jego funkcji.

Po przygotowaniu płytki, wyjęciu zasilacza warsztatowego (zmontowanego przez ojca, kiedy byłem mały), przeniesieniu ustrojstwa do domu, zasileniu układu i podłączeniu wtyczki programującej, skompilowałem, wykorzystując źródło kodu z artykułu Wojtka, nieco zmodyfikowany plik Makefile z jednego z przykładów z manuala avr-libc oraz używając programu avrdude do wrzucania skompilowanego kodu do pamięci Flash mikrokontrolera. Uisp niestety nie chciał działać.

Kompilator i avrdude są w Ubuntu, co skraca proces ich instalacji do jakiejś minuty.

Po wgraniu flasha dioda nadal nie migała. Wziąłem woltomierz i zacząłem sprawdzać wszystko. Jakie było moje zdziwienie, gdy zauważyłem regularnie pulsujące napięcie na zaprogramowanym wyjściu. Jeśli tak, to mikrokontroler był w porządku, a jakiś element za nim odmówił współpracy. Tak być nie może! Nie damy się przecież pomiatać rezystorom i kondensatorom! Wreszcie, zmierzywszy napięcia na całej drodze od układu do diody, doszedłem do wniosku, że bezmyślnie wlutowałem diody odwrotnie do kierunku przewodzenia.

Zapamiętać: w tym typie diód ścięta końcówka nie oznacza anody.

Szybko przelutowałem i zaczęło migać. Udało się!

Teraz mogę zacząć rozgryzać stronę programową mojego mikroprocesora. I wyrywać Girls2.0, oczywiście.

Zobacz komentarze Trackback dodajdo.com Zobacz pełne metadane
Wcześniejsze wpisy Na górę Późniejsze wpisy
Reklamy Google