Strona GDR!aGDR! prezentuje...https://gdr.geekhood.net/2021-12-31T06:08:01+01:00FeedCreator 1.7.2Wróciłem2021-07-20T09:48:14+01:002021-07-20T09:48:14+01:002021-07-20T09:48:14+01:00https://gdr.geekhood.net/gdrwpl/21-07-20_wrocilem.htmlgdr@gdr.name (GDR!)<p> Strona wróciła po pożarze OVH w marcu. Dane ze spalonej serwerowni miałem bezpiecznie skopiowane w innym kraju, ale mój plan disaster recovery zakładał że w razie awarii przeniosę szybko adresy IP na nowe serwery i tam odtworzę dane. Postawienie nowej maszyny na którą można było przenieść adresy zajęło OVH trzy tygodnie, do tego czasu klienci byli dawno zmigrowani gdzie indziej. Więc zamiast szybkiego i czystego disaster recovery, miałem tydzień z piekła rodem z ogarnianiem zmian DNS w prawie dwóch setkach domen.</p>
<p> Do tego, OVH robiło jakieś dziwne ruchy finansowo, więc postanowiłem tam już nie wracać. Dali zadośćuczynienie w kwocie X zł (w formie kredytu na koncie). Potem przez dwa miesiące pobierali mi z karty część opłaty za spalony sprzęt oraz licencje na oprogramowanie które na nim działało, tak, jakby nadal działał. Powiedzmy, że wyniosło to Y zł. Po którymś tam kontakcie z supportem udało się zatrzymać opłaty i niby zwrócili mi Y zł. Tylko że saldo na koncie zamiast X+Y zł wynosiło X-Y zł. Do tej pory nie udało mi się tego wyjaśnić.</p>
<p> Po tym wszystkim nie chciało mi się bawić jeszcze w odtwarzanie tej strony, myślałem o tym żeby zostawić ją w stanie niedziałającym. Ale wróciła, trzeba wykorzystać to X-Y zł, więc wziąłem od OVH najmniejszą "instancję public cloud" na którą da się przenieść IP i tam odtworzyłem stronę.</p>
<p> Jebać tą firmę, pożar może się zdarzyć każdemu, ale wykorzystywanie zamieszania żeby się nakraść to dla mnie trochę za dużo.</p>
Nowe technologie w renowacji zabytków2019-12-15T12:25:33+01:002019-12-15T12:25:33+01:002019-12-15T12:25:33+01:00https://gdr.geekhood.net/gdrwpl/19-12-15_nowe_technologie_w_renowacji_zabytkow.htmlgdr@gdr.name (GDR!)<p> Udało mi się zrobić tytuł wpisu jak tytuł odtwórczej pracy magisterskiej która jednak dzięki wytrwałości studenta została oceniona pozytywnie. Chodzi o to, że mam stuletnie drzwi które się trochę rozlazły czy to od czasu, czy od wilgoci, i wzdłuż deseczek z których się składają porobiły się szpary zbyt szerokie by zakryć farbą. Duża część szpar jest w bezpośredniej okolicy frezów i ciężko tam sięgnąć palcem czy jakimś narzędziem żeby w miarę równo nałożyć kit. Wygląda to z grubsza tak:</p>
<p><img src="img/drzwi1.jpg" alt="Białe drzwi z wiocznymi szparami" style="max-width: 100%" /></p>
<p> Pomyślałem że przydałaby się jakaś miniaturka pistoletu do silikonu czy też tego na gorący klej. Odpowiedź przyszła w postaci promocji w Lidlu: <a href="https://en.wikipedia.org/wiki/3Doodler">3D pen</a>. Załadowałem biały filament PLA i zacząłem wypełniać. Z daleka wyszło nieźle, zdjęcie zrobione jeszcze przed pomalowaniem biała farbą:</p>
<p><img src="img/drzwi2.jpg" alt="Białe drzwi z zaklejonymi szparami" style="max-width: 100%" /></p>
<p> Z bliska są mankamenty, z racji nierównej przestrzeni wewnątrz dziur - choćbym przesuwał pena z maszynową precyzją - tworzą się <a href="img/drzwi3.jpg">bloby</a>. W mniej widocznych miejscach można to olać, w bardziej widocznych próbowałem następujących metod:</p>
<p> Wygładzanie rozgrzanym czubkiem 3D pena. Strasznie upierdliwe i powoli idzie.</p>
<p> Zainspirowane kompresją video zaklejanie dwuprzebiegowe. Najpierw zaklejałem szczelinę byle jak, aż bloby sięgały gdzieś 1-2mm pod powierzchnię, a potem robiłem drugie przejście już na bardziej przewidywalnej powierzchni. Dawało radę, upierdliwe i ciągle dalekie od idealnego efektu.</p>
<p> Nie chciało mi się próbować, ale przychodzą mi do głowy jeszcze takie metody: wyrównywanie lutownicą nastawioną na niską temperaturę typu 160 stopni i wyrównywanie dremlem z wąską końcówką szlifującą. Ale nawet bez perfekcji, efekt jest znacznie lepszy niż dziury albo zalepione kitem wszystko w około. I nieudane próby można dość łatwo wydłubać, plastik w przeciwieństwie do kitu trzyma się razem.</p>
ZFS on Linux 0.8 native encryption2019-10-23T12:34:18+01:002019-10-23T12:34:18+01:002019-10-23T12:34:18+01:00https://gdr.geekhood.net/gdrwpl/19-10-23_zfs_on_linux_0_8_native_encryption.htmlgdr@gdr.name (GDR!)<p> The option names changed since <a href="https://blog.heckel.io/2017/01/08/zfs-encryption-openzfs-zfs-on-linux/">this nice howto</a> has been posted, and it doesn't seem to be documented, so here's how to do it in 0.8:</p>
<pre>
zpool set feature@encryption=enabled tank
head -c 32 /dev/random >/root/key
zfs create -o encryption=aes-256-gcm -o keyformat=raw -o keylocation=file:///root/key tank/encrypted
</pre>
<p> Edit 2019-11-18: The above is not enough to have ZFS auto-mount the filesystem after reboot, at least not on CentOS 8. Here's the systemd unit file which makes it work (don't forget to systemctl enable zfs-load-key.service):</p>
<pre>
[root@db ~]# cat /etc/systemd/system/zfs-load-key.service
[Unit]
Description=Load ZFS keys
Documentation=man:zfs(8)
DefaultDependencies=no
After=systemd-udev-settle.service
After=zfs-import.target
After=systemd-remount-fs.service
Before=zfs-mount.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/zfs load-key -a
[Install]
WantedBy=zfs.target
</pre>
Korespondencja bankowa 20192019-10-09T05:30:04+01:002019-10-09T05:30:04+01:002019-10-09T05:30:04+01:00https://gdr.geekhood.net/gdrwpl/19-10-09_korespondencja_bankowa_2019.htmlgdr@gdr.name (GDR!)<p> Sześć lat temu <a href="13-09-12_korespondencja_bankowa.html">pisałem o szyfrowaniu korespondencji otrzymywanej od banków</a>. Od tej pory trochę się pozmieniało: powszechnie używa się certyfikatów LetsEncrypt, EFF zaczął <a href="https://starttls-everywhere.org/">promować</a> używanie TLS między serwerami. Ja z kolei przestałem używać Thunderbirda i, co za tym idzie, przestałem aktywnie rozwijać dodatek <a href="https://addons.thunderbird.net/addon/paranoia/">Paranoia</a>.</p>
<p> Ponieważ dodatek nie chce umrzeć i tym razem wskrzesili go sami użytkownicy, musiałem potestować ich zmiany i zrobić release. Okazuje się, że miałem problem ze znalezieniem niezaszyfrowanego maila! Żaden z banków który wysyła mi maile nie wysyła ich już czystym tekstem, mBank nadal wysyła za pośrednictwem Onetu ale chociaż szyfruje połączenie, nawet najdrobniejsze sklepy internetowe i sprzedawcy z Allegro mieli szyfrowane połączenia. </p>
<p> Nadal jest wiele do zrobienia, na pewno większość z tych połączeń jest podatna ma downgrade czy mitm, ale cieszy to, że są odporne na pasywne nagrywanie ruchu sieciowego. </p>
System do routera x862019-05-14T18:58:26+01:002019-05-14T18:58:26+01:002019-05-14T18:58:26+01:00https://gdr.geekhood.net/gdrwpl/19-05-14_system_do_routera_x86.htmlgdr@gdr.name (GDR!)<p> Napisałem <a href="openwrt-x86-lxd.php">tekst o trudnej sztuce kompromisu</a>.</p>
Ile to rdzeni?2019-05-08T07:54:10+01:002019-05-08T07:54:10+01:002019-05-08T07:54:10+01:00https://gdr.geekhood.net/gdrwpl/19-05-08_ile_to_rdzeni.htmlgdr@gdr.name (GDR!)<p> Marketing po chińsku.</p>
<p><img src="img/qualcore.jpg" style="max-width: 100%" alt="Opakowanie komputera z napisem QUAL CORE" /></p>
Tak było2019-04-24T10:46:34+01:002019-04-24T10:46:34+01:002019-04-24T10:46:34+01:00https://gdr.geekhood.net/gdrwpl/19-04-24_tak_bylo.htmlgdr@gdr.name (GDR!)<img src="img/zabka.jpg" alt="Brak doładowań energii" style="max-width: 100%" />
Alior światowo2019-03-04T11:08:31+01:002019-03-04T11:08:31+01:002019-03-04T11:08:31+01:00https://gdr.geekhood.net/gdrwpl/19-03-04_alior_swiatowo.htmlgdr@gdr.name (GDR!)<p> Alior od dziś wymusza używanie swojego nowego serwisu transakcyjnego, zalogowanie się wymagało ode mnie wizyty w oddziale, udało się i BYŁO WARTO bo powiało wielkim światem - serwis wyświetla się u mnie po angielsku, i nie da się tego zmienić :D Główna część serwisu jest OK, ale mniej używane elementy dali chyba do tłumaczenia praktykantowi ze słownikiem:</p>
<p><img src="img/alior_swiatowy.png" style="max-width: 100%" alt="Benefit Dobry Start is government program supporting families raising childrens" /></p>
Śnieżka2019-02-22T09:01:32+01:002019-02-22T09:01:32+01:002019-02-22T09:01:32+01:00https://gdr.geekhood.net/gdrwpl/19-02-22_sniezka.htmlgdr@gdr.name (GDR!)<img src="img/dzieci_do_cyrku.jpg" style="max-width: 100%" alt="Varovani! Deti bez dozoru budou prodany do cirkusu!" />
Trzydziestoletnia gwarancja Jansport2019-01-28T18:25:12+01:002019-01-28T18:25:12+01:002019-01-28T18:25:12+01:00https://gdr.geekhood.net/gdrwpl/19-01-28_trzydziestoletnia_gwarancja_jansport.htmlgdr@gdr.name (GDR!)<p>Kupilem sobie kiedys plecak nikomu nieznanej firmy Jansport, posmialem sie z tego ze z taka nazwa nie wstyd im robic ulotki po angielsku i udawac towar eksportowy, a kilka lat pozniej dowiedzialem sie ze mimo nazwy firma faktycznie jest zagraniczna.</p>
<p>Dziewiec lat pozniej popsul sie zamek blyskawiczny i przypomnialo mi sie o obiecywanej na metce trzydziestoletniej gwarancji. Sklep w ktorym dokonalem zakupu niestety juz nie istnieje, okazalo sie tez, ze Jansport wycofal sie ze sprzedazy w Europie, ale niezrazony napisalem maila i wyslalem laczem transatlantyckim. O dziwo, producent odpisal juz nastepnego dnia - ze teraz ich interesy w Europie reprezentuje firma Eastpak.</p>
<p>Na stronie Eastpaka jest nawet dzial poswiecony gwarancji na terenie Polski, niestety linki prowadzace do formularzy reklamacyjnych prowadza na strone 404, w dodatku w jezyku wroga. Pozostalo napisac maila, odpowiedz dostalem od jeszcze innej firmy - VFE Warranty Allbrands - ale byla po polsku, zawierala adres na ktory nalezy odeslac plecak i dwa formularze do wydrukowania.</p>
<pre>
Najpierw sugerujemy udać się do sklepu z którego Pan nabył plecak, albowiem wedle naszej informacji wiele sklepów wysyła reklamacje do nas Klientom za darmo. Gdyby to nie było możliwe to proszę wypełnić załączony formularz napraw i włożyć go do plecaka wraz z kopią paragonu oraz wysłać reklamowany produkt na poniższy adres:
VF Polska Distribution Sp. z o.o.
Centrum Napraw w Łodzi
Ul. Rojna 79, 91-134 Łódź
</pre>
<p>Plecak wrocil naprawiony dwa tygodnie pozniej. Jestem pod wrazeniem.</p>
Jak zbudowałem tuntoxa na RISC-V2018-11-01T13:48:01+01:002018-11-01T13:48:01+01:002018-11-01T13:48:01+01:00https://gdr.geekhood.net/gdrwpl/18-11-01_jak_zbudowalem_tuntoxa_na_risc_v.htmlgdr@gdr.name (GDR!)<p> Poszło zaskakująco łatwo, w zasadzie gdyby nie moje niedouczenie w zakresie crosskompilacji, proces nie różniłby się prawie niczym od budowania na x86. Zarówno biblioteka toxcore jak i mój tuntox nie sprawiały problemów po podstawieniu kompilatora na riscv64, największy "problem" był z libsodium która wymagała przełącznika do wyłaczenia optymalizacji w assemblerze:</p>
<pre>
./configure CC=riscv64-linux-gnu-gcc-8 LD=riscv64-linux-gnu-ld --target=riscv64-linux-gnu --host=x86_64-linux-gnu --disable-asm
</pre>
<p> Oprócz tego - sprawa była banalnie prosta: odpaliłem Debiana sid w dockerze, zainstalowałem niezbędne narzędzia:</p>
<pre>
apt install cmake make g++-8-riscv64-linux-gnu
</pre>
<p> Zbudowałem toxcore:</p>
<pre>
cmake .. -DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-8 -DCMAKE_SYSTEM_NAME=Linux -DBUILD_TOXAV=off -DBOOTSTRAP_DAEMON=off -DCMAKE_LINKER=riscv64-linux-gnu-ld -DBUILD_AV_TEST=off -DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-8
</pre>
<p> I samego tuntoxa, podmieniając CC w Makefile. Powstały <a href="https://github.com/gjedeer/tuntox/releases/download/0.0.9/tuntox-riscv64">plik wykonywalny</a> załadowałem do przeglądarkowego emulatora <a href="https://bellard.org/jslinux/">JSLinux</a>, odpaliłem, i bez problemu <a href="img/tuntox-riscv.png">udało się</a> połączyć z domowej maszyny!</p>
<p> Tylko po co?</p>
Błąd unexpected input w R2018-09-24T10:30:13+01:002018-09-24T10:30:13+01:002018-09-24T10:30:13+01:00https://gdr.geekhood.net/gdrwpl/18-09-24_blad_unexpected_input_w_r.htmlgdr@gdr.name (GDR!)<p> Przygotowuję do uruchomienia w warunkach produkcyjnych pewien skrypt w języku <a href="https://en.wikipedia.org/wiki/R_(programming_language)">R</a>. Został napisany przez kogoś innego i nie mogłem go uruchomić, pokazywał się następujący błąd:</p>
<code>
$ Rscript a.R <br>
Error: unexpected input in "�"<br>
Execution halted<br>
</code>
<p> Jedyne znaki spoza zakresu ASCII jakie wykazał grep to apostrofy (lsquo/rsquo), ale po ich zamienieniu na normalne apostrofy nadal nic się nie działo. Koniec końców okazało się, że trzeba było odpalić hex edytor i usunąć pierwsze trzy znaki z pliku tekstowego - <a href="https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8">BOM UTF8</a>.</p>
OpenWRT oficjalnie na EspressoBin2018-08-01T18:24:18+01:002018-08-01T18:24:18+01:002018-08-01T18:24:18+01:00https://gdr.geekhood.net/gdrwpl/18-08-01_openwrt_oficjalnie_na_espressobin.htmlgdr@gdr.name (GDR!)<p> Jakiś czas temu wyszedł fajny SBC na Armie który dobrze powinien się sprawdzać jako router do zastosowań domowych. <a href="https://espressobin.net/">ESPRESSObin</a> Marvella ma trzy gigabitowe porty ethernetowe, do 2 GB RAM-u, procesor z linii ARMv7 oraz <a href="https://espressobin.net/tech-spec/">inne dodatki</a>. Przeportowano na niego różne linuxy oraz OpenWRT, niestety ten ostatni podczas moich ostatnich testów trzeba było budować samodzielnie bo opkg nie działało - architektura nie była oficjalnie wspierana. Build niekonecznie chciał zadziałać na moim komputerze więc, z racji ograniczonej ilości czasu na takie zabawy, płytka poszła w kąt.</p>
<p> Dwa dni temu światło dzienne ujrzało OpenWRT v18.06.0, jak się okazało - z obsługą ESPRESSObin dodaną przez naszego rodaka, <a href="https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=584d7c53bd2d286a71fe5e8244624f59c529cb26">Tomasza Macieja Nowaka</a>. Opiszę tutaj krótko procedurę przygotowania karty SD oraz uBoota, bo nie znalazłem tego nigdzie indziej w internecie.</p>
<p> Najperw karta SD: ściągasz globalscale-espressobin-ext4-sdcard.img.gz, sha256sums oraz sha256sums.asc <a href="https://downloads.openwrt.org/snapshots/targets/mvebu/cortexa53/">stąd</a>, po czym rozpakowujesz oraz kopiujesz na kartę:</p>
<pre>
$ gpg2 --verify sha256sums.asc # porównaj ze skrótami kluczy na https://openwrt.org/docs/guide-user/security/signatures
$ sha256sum -c --ignore-missing sha256sums
$ gunzip globalscale-espressobin-ext4-sdcard.img.gz
$ sudo dd if=openwrt-mvebu-cortexa53-globalscale-espressobin-ext4-sdcard.img of=/dev/mmcblk0
$ sudo sync
</pre>
<p> Na karcie SD powstaną dwie partycje, druga z nich ma rozmiar 256 MB i będzie robiła za root. Jeśli, tak jak ja, nie jesteś wytrawnym użytkownikiem OpenWRT i będziesz musiał przetestować kilka pakietów zanim wybierzesz ten właściwy - propnuję ją powiększyć. KDE Partition Manager doskonale daje sobie radę z tym zadaniem.</p>
<p> Następnie włóż kartę do swojego ESPRESSObin. Będziesz potrzebował dwóch kabli: 5.5mm 12V do zasilania oraz Micro USB do połączenia z portem szeregowym. Proponuję najpierw podłączyć Micro USB oraz połączyć się z zasilanym przez niego konweterem USB/Serial:</p>
<pre>
$ sudo screen /dev/ttyUSB0 115200
</pre>
<p> Po podłączeniu zasilania, w konsoli powinny pojawić się komunikaty z uBoota, a po paru sekundach - prompt.</p>
<pre>
Hit any key to stop autoboot: 0
Marvell>>
</pre>
<p> Sekwencja komend która spowoduje prawidłowe bootowanie się OpenWRT jest następująca:</p>
<pre>
setenv fdt_name 'armada-3720-espressobin.dtb'
setenv image_name 'Image'
setenv ethact 'neta0'
setenv set_bootargs 'setenv bootargs $console'
setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p2 rw rootwait; booti $kernel_addr - $fdt_addr'
saveenv
run bootcmd
</pre>
<p> Po kilkunastu sekundach powinno pojawić się coś w stylu:</p>
<pre>
Please press Enter to activate this console.
...
[ 16.551701] mv88e6085 d0032004.mdio-mii:01 lan1: Link is Down
</pre>
<p> Wciśnij enter i ciesz się najnowszym OpenWRT (niestety, bez przepisu na drinka)</p>
<pre>
BusyBox v1.28.4 () built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt SNAPSHOT, r7705-fec8fe8
-----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/#
root@OpenWrt:/# opkg update
Downloading http://downloads.openwrt.org/snapshots/targets/mvebu/cortexa53/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
....
root@OpenWrt:/# opkg install luci
Installing luci (git-18.212.55585-176e246-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci/luci_git-18.212.55585-176e246-1_all.ipk
.....
</pre>
Test partycji flash w Androidzie2018-02-04T17:44:55+01:002018-02-04T17:44:55+01:002018-02-04T17:44:55+01:00https://gdr.geekhood.net/gdrwpl/18-02-04_test_partycji_flash_w_androidzie.htmlgdr@gdr.name (GDR!)<p> Mam telefon który umie wejść do recovery ale uruchamianie systemu kończy się bootloopem, obojętnie co zainstaluję. Pierwsze podejrzenie to padnięty flash, nie znalazłem w internecie gotowca pt. "tak się testuje czy partycja na androidzie ma bad sectory", więc skorzystałem z tego że recovery oferuje dostęp przez adb. <a href="android_check_flash.txt">Test partycji flash w recovery</a></p>
<p> Polecam również poczytanie dmesg, czasem wyłapuje błędy sprzętowe.</p>
Kalendarz dni niehandlowych2018-01-24T07:37:08+01:002018-01-24T07:37:08+01:002018-01-24T07:37:08+01:00https://gdr.geekhood.net/gdrwpl/18-01-24_kalendarz_dni_niehandlowych.htmlgdr@gdr.name (GDR!)<p> Na podstawie <a href="http://g2.gazetaprawna.pl/p/_wspolne/pliki/3225000/3225653-kalendarz-zakaz-handlu-2018-forsal.pdf">kalendarza Forsal</a> zrobiłem <a href="heavy/zakaz_handlu_uid.ics">plik ics/ical</a> z dniami w których handel w Polsce jest w tym roku zabroniony, z przypomnieniem w południe dnia poprzedniego.</p>
<p> Plik taki można zaimportować do dowolnego programu na komputerze, komórce bądź dostępnego przez stronę (nextcloud / google calendar). Niektóre programy zamiast pliku wolą URL kalendarza, który jest następujący:</p>
<pre>https://gdr.geekhood.net/gdrwpl/heavy/zakaz_handlu_uid.ics</pre>
<p> Ewentualne błędy proszę zgłaszać w komentarzu lub na gdr@gdr.name, wydarzenia były dodawane ręcznie. (<a href="http://cdn.instantcal.com/cvir.html?id=cv_nav5&file=https%3A%2F%2Fgdr.geekhood.net%2Fgdrwpl%2Fheavy%2Fzakaz_handlu_uid.ics&theme=RE&ccolor=%23ffffc0&dims=1>ype=cv_monthgrid&gcloseable=0&gnavigable=1&gperiod=month&itype=cv_simpleevent">podgląd</a>). <a href="https://icsdroid.bitfire.at/">Polecany program na Androida</a>.</p>