Category Archives: Programming

Space Invaders

Recently I have started to learn a little bit Python programming and wanted to write something more fun then dry examples, so I followed a game development article on Linux Journal: Creating Games with Pygame. The game is called Space Invaders: The code and data files for the Space Invaders game are on my BitBucket: [...]

Muzyka dla programistów

Podczas wysiadywania godzin przed komputerem i wykonywania kolejnych zadań, słucham muzyki, aby się skupić na zadaniu a nie na rozmowach kolegów, czy innym hałasie. Niestety czasami chciałbym się totalnie nad czymś skupić, ale akurat na mojej playliście wskakuje jakiś kawałek, który do tego nie dopuszcza. Raczej nie jestem w stanie wyeliminować muzyki, ponieważ maskuje ona [...]

Programator AVR

Sprawdziłem programator AVRów. Rejestruje się w systemie i można programować mikrokontrolery. Niestety rejestruje się ze złymi prawami dostępu i nie można z niego skorzystać jako zwykły użytkownik. make program avrdude -p atmega32 -P usb -c usbasp -U flash:w:MAOR_main.hex avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted avrdude: error: could [...]

Programator AVR

Udało mi się uruchomić programator AVR pod Linuksem. Sprawa wygląda następująco. Laptop Toshiba, Kubuntu 32bit, programator nie działa, logi po podłączeniu są takie: Feb 1 21:12:59 quatre-toshiba kernel: [159614.156278] usb 2-1.2: new low speed USB device number 107 using ehci_hcd Feb 1 21:12:59 quatre-toshiba kernel: [159614.172453] hub 2-1:1.0: unable to enumerate USB device on port [...]

Przekazywanie rozmiaru tablicy do metody w C++

W języku C++ można wykorzystać szablon metody i przekazywanie argumentów przez referencję do zmniejszenia jawnego przekazywania argumentu zawierającego informację o rozmiarze tablicy. Takie rozwiązanie zmniejsza ilość wymaganych parametrów oraz zapobiega podaniu złego rozmiaru. Kod programu: #include <iostream> using namespace std; template <int N> int func(float (&x)[N]) { for(int i = 0; i < N; ++i) [...]

Nowy telefon: Samsung Galaxy Ace

Ostatnio bateria w moim telefonie mocno napęczniała. Telefonem tym był G1 od Google’a. Nie tylko bateria miała swoje za sobą, także system na nim nie był najświeższy. Udało mi się wrzucić na niego Androida (CyanogenMod) 1.6. Wiem, że jest możliwość wgrania wersji 2.x, ale wymaga to ingerencji w bootloadera i partycje. Na razie sobie odpuściłem, [...]

Zamiana liczby dziesiętnej na binarną

Dla rozgrzewki postanowiłem napisać prosty program zamieniający liczbę dziesiętną bez znaku na liczbę binarną. Algorytm jest dosyć prosty: 1. Jeżeli liczba jest parzysta, wypisz zero. Jeżeli nieparzysta – jedynkę. 2. Podziel liczbę przez dwa i odrzuć część ułamkową z dzielenia. 3. Jeżeli wynik dzielenia jest równy zero, zamiana zakończona. 4. Jeżeli wynik dzielenia nie jest [...]

Maszyna stanów do robota miniSUMO

Powoli i do przodu idzie mi uczenie się programowania mikrokontrolerów AVR. Na razie moim środowiskiem uruchomieniowym jest robot miniSUMO. Logika w głównej pętli wykonawczej będzie oparta o prostą maszynę stanów. Napisanie i wrzucenie maszyny stanów na uC na początek nie jest dobrym pomysłem, ponieważ nie ma widocznego sprzężenia zwrotnego. Postanowiłem więc napisać prostą aplikację testową. [...]

Programowanie Qt: organizacja projektu

Ostatnio trochę zacząłem się uczyć programowania w Qt. Czasami wiedza za zakresu programowania GUI w jakimś frameworku jest potrzebna, szczególnie jeżeli potrzeba nam stworzyć jakiś tool wspomagający nasze prace programistyczne. Nie chodzi mi tutaj o narzędzia parsujące, ale na przykład narzędzia do analizy logów. Lepiej jest analizować logi, szczególnie jeżeli jest ich bardzo dużo i [...]

Zamiana zmiennych bez użycia trzeciej

Ostatnio dowiedziałem się jak zamienić dwie zmienne bez użycia trzeciej. Generalnie jest to dość ograniczony algorytm i nadaje się najlepiej do użycia prostych, określonych zmiennych. int a, b; a = a+b; b = a-b; a = a-b; Takiego algorytmu nie stosuje się zwykle w desktopowych aplikacjach, ale w programowaniu mikrokontrolerów, gdzie pamięci może być mało, [...]

Follow

Get every new post delivered to your Inbox.