FK~

Moje odkazy

Ostatní odkazy

EFF: svoboda blogování
Close Windows
Nenajdete mě na Facebooku ani Twitteru
Rozpad EU
Jsem členem FSF
Jsem členem EFF

Paralelní port jako generátor signálu

vydáno: 11. 6. 2017 19:05, aktualizováno: 11. 6. 2017 18:58

Dnes oprášíme zase jednu starou dobrou technologii – paralelení port – a ukážeme si, jak ji softwarově ovládat. Protože je to dost nízkoúrovňová záležitost, nebude to tentokrát v Javě ale v C++. Cíl bude poměrně skromný: generovat obdélníkový signál s frekvencí 10 000 Hz a zadanou střídou (což zde neznamená střed chleba). Ve výsledku budu signál generovat jiným programem, nicméně nejdřív si chci otestovat jednotlivé části systému samostatně, takže teď to bude jen LEDka a pár řádků kódu bez nějakých složitostí.

konektor DB-25 pro paralelní port (LPT)

číst dál

Herní ovladače počátku 90. let

vydáno: 28. 12. 2016 22:50, aktualizováno: 4. 2. 2017 19:36

Před dvaceti pěti lety vzniklo něco, co předurčilo podobu budoucích herních ovladačů, včetně těch dnešních (jako třeba DualShock pro Sony PlayStation 4). Pojďme se podívat na dva významné gamepady té doby – Gravis PC GamePad a ovladač k herní konsoli Nintendo SNES (resp. Super Famicom).

Nintendo SNES a ovladač Super Famicom

Základní rozložení – čtyř-směrový ovladač vlevo a čtyři tlačítka vpravo – se od té doby drží jako nepsaný standard, jen se přidávají případná další tlačítka a funkce.

číst dál

GPIO v Raspberry Pi jako soubory

vydáno: 12. 11. 2016 20:16, aktualizováno: 13. 11. 2016 23:26

Univerzální vstupně/výstupní piny (GPIO) můžeme ovládat pomocí zvláštních knihoven v různých programovacích jazycích (Java, Ruby, Python, C atd.). Tyto knihovny ale nejsou nutné – ukážeme si jednodušší postup.

Raspberry Pi – GPIO piny

V souladu s unixovou (resp. Plan 9) filosofií „všechno je soubor“ budeme s GPIO pracovat jako se soubory – čtení hodnoty pinu (např. dveřního čidla nebo tlačítka) znamená tedy čtení souboru. A nastavení hodnoty pinu (např. rozsvícení/zhasnutí LEDky) je zase obyčejný zápis do souboru.

číst dál

Nakupujeme v zahraničí po Internetu

vydáno: 29. 2. 2016 23:45, aktualizováno: 4. 6. 2017 23:03

Z nakupování po Internetu se stala už poměrně standardní záležitost. Nicméně většina lidí nakupuje pouze v tuzemských obchodech. Jak složité a nebezpečné je nakupovat v zahraničí? Následující text je určen začátečníkům, kteří zatím neměli odvahu si v zahraničních obchodech něco koupit, ale láká je to.

eBay, AliExpress, DX, Farnell, Sparkfun, DigiKey

číst dál

Malajsie: Kuala Lumpur a hackerspacy

vydáno: 24. 12. 2015 17:25

Možná jste postřehli, že jsem se pohyboval v jiné časové zóně. Byl jsem se podívat v UTC+8, konkrétně v Malajsii. Kromě obvyklých turistických atrakcí jsem si dal za cíl i prozkoumání místních hackerspaců.

Malajsie – Kuala Lumpur

číst dál

Opravujeme chyby v softwaru: inotify-tools

vydáno: 4. 10. 2015 12:25, aktualizováno: 5. 10. 2015 00:17

V pátek jsem narazil na chybu v programu inotifywait a dneska jsem ji ze zvědavosti trochu prozkoumal. Program za určitých okolností padal (SIGSEGV, core dump). Jedná se o celkem banální chybu, kterých je všude plno, a rád bych na ní ukázal, jak v takovém případě můžeme postupovat.

string = csv

číst dál

CLOC: počítáme řádky kódu

vydáno: 30. 9. 2015 23:10, aktualizováno: 1. 10. 2015 01:26

Když si stáhnu zdrojové kódy nějakého programu, jednou z prvních věcí, které zkoumám, je, v čem je to napsané a kolik toho je. Počet řádků kódu považuji za celkem důležitý ukazatel, ale o tom zase někdy příště… Programovací jazyk můžeme zjistit podle přípon souborů nebo nahlédnutím do nich. Řádky zase můžeme spočítat pomocí příkazu wc z GNU coreutils. Ale pro tyto úkoly existuje daleko lepší specializovaný nástroj, který se jmenuje cloc (Count Lines of Code).

číst dál

binfmt_misc: spouštíme javovské programy podobně jako nativní binárky

vydáno: 20. 6. 2015 20:03, aktualizováno: 20. 6. 2015 21:57

Programy napsané v jazyce Java se překládají do tzv. bajtkódu a pro jejich spuštění je – na rozdíl od nativních binárek jako ELF – potřeba běhové prostředí (JRE). Programy v Javě tedy spouštíme pomocí příkazů typu:

java NázevTřídy

# nebo častěji:
java -jar program.jar

Linux (jádro) ale obsahuje mechanismus, umožňující spouštět programy v různých (interpretovaných) jazycích stejně jako nativní binárky – stačí tedy souboru nastavit spustitelný příznak (chmod +x) a spustit bo pouhým zadáním jeho názvu – např. program.jar.

číst dál

Přepisujeme soukromé proměnné v Javě pomocí reflexe

vydáno: 13. 6. 2015 22:56, aktualizováno: 14. 6. 2015 12:40

Java je (primárně) objektově orientovaný jazyk a máme zde zapouzdření – k soukromým (privátním) proměnným cizího objektu nemůžeme přímo přistupovat – objekt si je může měnit jen sám a ostatním to může dovolit jen nepřímo přes svoje metody. Přesto Java nabízí způsob, jak zapouzdření obejít – reflexe.

Logo OpenJDK (průhledné 1)

číst dál

Jak jsem si (ne)koupil notebook

vydáno: 4. 4. 2015 16:47, aktualizováno: 6. 4. 2015 19:08

Na podzim jsem sháněl druhý počítač na práci (doma mám už nějaký čas osmu). Rozhlížel jsem se po noteboocích, ale sehnat něco použitelného je dnes dost těžké.

pracovní stanice s AMD osmijádrem

číst dál

Archiv: starší články