#projekty

wszystkie notatki oznaczone etykietą "projekty"

Wakacyjny miniodbiornik FM

Dokładnie 3 lata temu powstał mój pierwszy wakacyjny miniodbiornik radiowy na fale długie, dlatego w tym roku nie mogło obejść się bez podobnego weekendowego projektu prościutkiego radyjka. Skoro był już AM to teraz pora na FM w prostej formie, czyli odbiornik superreakcyjny, na jednym lub kilku tranzystorach… Miał to być stricte wakacyjny i jedno-weekendowy (bardziej jedno-wieczorowy) projekt, ale że miniony weekend planowo miał mi wypaść to zabrałem się za zabawę trochę wcześniej.

Czytaj dalej

Szkoła Konstruktorów - podsumowanie 2016/2017

Dziś pierwszy dzień szkoły, a to jest dobra okazja do zabrania się za podsumowanie swojego udziału w Szkole Konstruktorów w minionym roku szkolnym. Jak co roku w lipcowym numerze EdW, podobnie jak ma to miejsce w zwykłej szkole, w ramach Szkoły Konstruktorów następuje coroczne podsumowanie. A ja jak sam zapowiedziałem, po kilkunastu latach powróciłem do brania udziału w tym przedsięwzięciu. O ile starczy czasu i sił, i oczywiście, jeśli poruszane tematy i zagadnienia będą pokrywać się z moimi bliższymi lub dalszymi planami, czy potrzebami.

Czytaj dalej

Wakacyjny miniodbiornik AM

Wakacje dobiegają końca, a mnie bardzo naszła ochota, aby po raz kolejny, tym razem już oficjalnie, uruchomić proste radyjko na AM i udokumentować ten fakt. Dokładnie 20 lat temu w sierpniowym wydaniu Elektroniki dla Wszystkich z 1997 roku, ukazał się opis prostego układu - Wakacyjny miniodbiornik AM (AVT-2156). Były to czasy mojej rozpoczynającej się przygody z elektroniką i jak pamiętam, jako dziecko 13-latek bardzo chciałem ten odbiornik, jak również i wiele innych, zbudować i uruchomić.

Czytaj dalej

Syringe - moja mała strzykawka (kodu)

Wydobywając kod firmware z kodu procesu Sealogic (SaeLog #4), w jednym z możliwości związanych z hookowaniem transmisji USB, wspomniałem o technice wstrzykiwania kodu do uruchomionego procesu, wykorzystującej popularną metodę ze zdalnym wątkiem (CreateRemoteThread). Sugerując przy tym wykorzystanie dostępnych w sieci injectorów lub napisanie czegoś własnego. Od tego czasu, w wolnych chwilach, próbowałem okiełznać i uporządkować mój kod, jaki używałem do tego typu zabaw. W istocie zrodził się projekt syringe, jako uniwersalnego narzędzia związanego z wstrzykiwaniem kodu i nie tylko… i tak zacząłem pisać stary/nowy kod…

Czytaj dalej

ByteOrder - kolejność bajtów

Architektury współczesnych mikroprocesorów powszechnie używają dwóch różnych metod i konwencji przechowywania danych w pamięci, zwane “kolejnością bajtów” (byte order). Niektóre komputery umieszczają najbardziej znaczący bajt w słowie jako pierwszy (big-endian), a inne jako ostatni (little-endian). Przez większość czasu, kolejność bajtów może być ignorowana, programista nie musi się martwić o to, jaki format jest używany, ale w niektórych sytuacjach staje się to ważne. Kiedy implementujemy binarny format pliku, bibliotekę sieciową lub protokół, lub po prostu przesyłamy dane binarne miedzy innymi komputerami, musimy wziąć pod uwagę kwestie związane z uporządkowaniem bajtów.

Czytaj dalej

MPU: klasy cech kontenerów STL

Kolejna notatka z serii MPU, opisująca kilka ciekawych konstrukcji zawartych w mistycznym MetaPrograming-Unit. Tym razem o klasach cech opisujących typy kontenerów zawartych w STL. Każdy programista C++ zaznajomiony jest z klasami cech (traits) i ich wielkim potencjałem. Dla tych wszystkich, którzy nie do końca łapią temat, dwa zdania wprowadzające. Klasy cech w C++ są specyficznym typem klas szablonów dostarczających w czasie kompilacji informacji o innych typach bądź strukturach danych. Wykorzystywane są głownie w programowaniu generycznym, przez inne obiekty lub algorytmy do określenia polityki działania lub szczegółów implementacji i realizacji.

Czytaj dalej

Thread.js

Zgodnie z zapowiedziami, kontynuacja tematu z ostatniej notki, w której przedstawiałem sposoby umożliwiające w pewnym stopniu na emulacje środowiska wielowątkowego w JS. Teraz, jak obiecałem, nadszedł czas na przedstawienie mojej implementacji, prostej biblioteki umożliwiającej w bardzo prosty sposób emulować wielowątkowość. Wprowadzenie Wspominałem w poprzedniej notatce, że sam problem zawieszania się i blokowania przeglądarki, przez długo wykonywujący się kod JS mnie za bardzo nie dotyczył - dopóki sam nie musiałem rozwiązać tego problemu.

Czytaj dalej

MPU: uogólniony begin i end

Według obietnicy z pierwszej notki o MPU chciałbym przedstawić najczęściej używany element, który ułatwia wykorzystywanie standardowych algorytmów operujących na zakresach dla danych przechowywanych w zwykłych tablicach. Oczywiście nie ma żadnego problemu (pomijając wszelkie biblioteki), bo do tej pory tablice w łatwy sposób mogły być używane jako zakresy w dowolnej funkcji algorytmu z STL-a. Przeważnie robiło się to w prosty sposób, podając wskaźnik na początkowy i ostatni + 1 element tablicy. Tak, jak na poniższym przykładzie wypisującym zawartość tablicy:

Czytaj dalej

MPU: Meta-Programing Unit

Wraz ze wzrostem doświadczenia, a raczej ilości “wyklepanych” linii kodu i “przemielonych” projektów rośną nasze zasoby elementów i własnych konstrukcji najchętniej wykorzystywanych w kolejnych projektach. Oczywiście pomijam tutaj sens robienia czegokolwiek co znajduje się w bibliotece standardowej, boost lub jednej z miliona innych popularnych bibliotek. Niemniej, czasami nawet te standardowe i najczęściej używane biblioteki mają jakieś braki lub z innych powodów oferowane przez nie implementacje potrzebnych nam elementów nas nie zadowalają.

Czytaj dalej

WP Math Captcha

W poprzedniej notce wspomniałem o rezygnacji z dotychczas używanego filtru anty-spamowego, a z powodu takiego, że mój devblog ciągle nawiedzają jakieś spam-boty i zaśmiecają bazę niepotrzebnymi komentarzami-śmieciami, musiałem coś zaaplikować, coś co ich powstrzyma i zmniejszy ten, jakże paskudny proceder. W tym celu przejrzałem katalog wtyczek do WP pod etykietą spam oraz rozejrzałem się po sieci. Wtyczek do eliminacji spamu jest cała masa, ale po zaznajomieniu się z kilkunastoma odechciało mi się kontynuacji tego procesu.

Czytaj dalej