Oszukany ­čśş


Lo and behold. Dałem się oszukać w internecie. Bycie kierownikiem zespołu IT w banku i picie wódki z Piotrem Koniecznym nie oznacza, że jestem odporny na na wszystki scamy.

Na OLX ÔÇ×zakupi┼éemÔÇŁ procesor, zap┼éaci┼éem, a kiedy upomnia┼éem si─Ö o wysy┼ék─Ö ÔÇô┬ákonto sprzedaj─ůcego ju┼╝ nie istnia┼éo. Email kt├│ry mi poda┼é r├│wnie┼╝.

Patrz─ůc wstecz, by┼éo kilka czerwonych flag, jednak i tak da┼éem si─Ö z┼éapa─ç. Na pewno moj─ů czujno┼Ť─ç obni┼╝y┼éy: 100% sukces├│w w dotychczasowych transakcjach na OLX i emocjonalne podej┼Ťcie ÔÇ×niez┼éa okazja, trzeba bra─çÔÇŁ. Natomiast powinienem zwr├│ci─ç uwag─Ö na:

  • cena ni┼╝sza o ok. 10% ni┼╝ podobnych og┼éosze┼ä; niby nic, zw┼éaszcza przy u┼╝ywanym CPU sprzed 7 lat, ale kieruje uwag─Ö wprost na og┼éoszenie oszusta
  • podane w opisie kontakt tylko przez OLX i brak telefonu; oszustowi u┼éatwia prowadzenie r├│wnocze┼Ťnie wielu wa┼ék├│w, nam utrudnia weryfikacj─Ö. Policja te┼╝ wydaje si─Ö by─ç bardziej obeznana z uzyskiwaniem danych klienta od telekom├│w, ni┼╝ z serwis├│w internetowych
  • p┼éatno┼Ť─ç przez PayPal i pro┼Ťba o zaznaczenie opcji "przesy┼éam pieni─ůdze znajomemu" aby unikn─ů─ç prowizji. Co jeszcze powoduje ta opcja? Brak mo┼╝liwo┼Ťci za┼éo┼╝enia sporu via PayPal, bo to przecie┼╝ nie sprzeda┼╝ tylko kasa dla ziomka. Podobnie, Policja rozumie p┼éatno┼Ť─ç kart─ů i przelewy z konta, ma gotowe formularze na zwolnienie z tajemnicy bankowej, ale u┼╝ycie po┼Ťrednik├│w p┼éatniczych zbija z panta┼éyku

Oszustwo zg┼éosilem na komisariacie, potwierdzenie wys┼éa┼éem z opisem sytuacji do OLX (maj─ů wi─Öcej danych i mog─ů zablokowa─ç telefon/IP/tokeny/cokolwiek oszusta). Zg┼éoszenie chargeback w banku wymaga┼éo najwi─Öcej zachodu, bo w BNP Paribas w dw├│ch oddzia┼éach nie przyznaj─ů si─Ö do znajomo┼Ťci tego trybu. Dosta┼éem kartk─Ö A4 na kt├│rej opisa┼éem sytuacj─Ö i za┼╝─ůda┼éem chargeback, teraz czekam.

Miejcie oczy otwarte i niech si─Ö komu┼Ť nie wydaje, ┼╝e skoro klika w internety od 25 lat, to nie spos├│b go oszuka─ç.

Projekt Gom D┼╝abbar


Jakby kto┼Ť nie wiedzia┼é (impossible!) to w tym roku b─Ödzie mia┼é premier─Ö film Diuna, re┼╝yserem jest Denis Villeneuve (pan zrobi┼é Arrival, Blade Runner 2049, Sicario itp).

Oryginalny sze┼Ťcioksi─ůg Diuny przeczyta┼éem dwa razy; najpierw w okolicach 7. klasy podstaw├│wki, natomiast drugie podej┼Ťcie pi─Ötna┼Ťcie lat temu. Wychowalem sie na tym uniwersum: Dune 2 (The Building of a DynastyÔÇŽ wci─ů┼╝ s┼éysz─Ö The planet Arrakis, known as Dune z intra), ksi─ů┼╝kach i filmie Lyncha. Mo┼╝e by sobie od┼Ťwie┼╝y─ç?

(nota bene, przed Lynchem Diunę próbował ekranizować Alejandro Jodorowsky. Nie udało się, ale ekipa wzięła przygotowane pomysły i stylistykę i poszła nakręcić Obcego w 1979).

Wracaj─ůc do ksi─ů┼╝ek. Oryginaln─ů seri─Ö doko┼äczy┼é syn Franka Herberta z koleg─ů, dopisuj─ůc Hunters of Dune oraz Sandworms of Dune. Tych jeszcze nie czyta┼éem, wi─Öc r├│wnie┼╝ trafi┼éy do kolejki. Ale poza sequelami powsta┼éo te┼╝ kilka prequeli. Czy┼╝ wi─Öc wspania┼éym pomys┼éem nie by┼éoby przeczytanie wszystkiego w kolejno┼Ťci wydarze┼ä w uniwersum? Tak jak zrobi┼éem np. z cyklem Fundacji czy Enderem? W internetach mo┼╝na znale┼║─ç pomocn─ů list─Ö z chronologi─ů. Tak zrodzi┼é si─Ö m├│j prywatny Projekt Gom D┼╝abbar.

Na razie przeczyta┼éem 3,5 ksi─ů┼╝ki oraz 3 opowiadania. Recenzje (o ile mia┼éem si┼é─Ö) znajduj─ů si─Ö na Lubimy Czyta─ç. Og├│lnie ÔÇô dramat, g┼é├│wnie fabularnie, warsztatowo te┼╝ s┼éabo. Z niecierpliwo┼Ťci─ů wyczekuj─Ö, a┼╝ dobrn─Ö do orygina┼é├│w Herberta. Na razie kryptonim projektu oddaje w 100% odczucia towarzysz─ůce czytaniu ksi─ů┼╝ek autorstwa Briana Herberta i Kevina J. Andersona.

Do premieru filmu zostało 10 miesięcy i 4 dni.

W 2019 nast─ůpi┼é koniec


Nast─ůpi┼é koniec sporej liczby seriali. Nie przypominam sobie roku z a┼╝ tak─ů kumulacj─ů fina┼é├│w. A po┼╝egnali┼Ťmy si─Ö m. in. z:

  • The Affair ÔÇô┬áciekawy eksperyment z pokazywaniem tych samych wydarze┼ä z r├│┼╝nych perspektyw da┼é rad─Ö na 5 sezon├│w
  • The Big Bang Theory
  • Designated Survivor ÔÇô pomys┼é OK, dalej niestety generic political procedural
  • Elementary
  • Man in the High Castle
  • Mr Robot
  • Game of Thrones ÔÇô meh
  • Orange is the New Black ÔÇô everybody loses
  • Preacher
  • Silicon Valley ÔÇô ko┼äc├│wka bardziej smutna ni┼╝ ┼Ťmieszna
  • Suits ÔÇô tu by┼é nawet jeden odcinek, w kt├│rym wszyscy nazwzajem na siebie NIE krzyczeli

Zako┼äczy┼é si─Ö te┼╝ wielki, 11-letni rozdzia┼é z Avengers. W sumie dobrze, bo trudno odcinki marvelowego film-serialu odr├│┼╝ni─ç od siebie, a i Tony Stark ju┼╝ nie taki ┼╝ywy jak na pocz─ůtku.

Time needed to dist-upgrade Fedora


Every couple of months I upgrade my main home computer to the latest Fedora. As this process is not instantaneous, this means some time without internet, wifi, smart home controls etc. This time I decided to measure how long it takes exactly.

Hardware is mid-range home server: Core i5 CPU, 16GiB of RAM, storage is 2x HDD in btrfs raid1, over LUKS, bcached on NVMe drive.

I've used dnf system-upgrade to download packages, then I rebooted and started counting time.

Wallclock Time since start Time Δ Phase
10:50
System booted. This will take a while displayed.
11:06 16m +16m Upgrade started. 5294 steps to finish.
11:23 33m +17m First thousand steps done.
11:41 51m +18m Second thousand steps done.
11:59 1h09m +18m Third thousand steps done.
12:11 1h21m +12m Fourth thousand steps done.
12:26 1h36m +15m Fifth thousand steps done.
12:29 1h39m +3m 5294 steps done. Running scriptlets begin.
12:31 1h41m +2m Scriptlets done. Verification begin.
12:36 1h46m +5m Verification done. No messages for few minutes.
12:42 1h52m +6m Upgrade done, rebooting.

Basically, full distribution upgrade from Fedora 30 to 31 takes about 2 hours. This is with bcache mode set to writeback. With safer writethrough, upgrade takes couple more hours, but I don't have specific number.

It's election time in Fedora-land


It's time to influence the course of our beloved project ÔÇô┬áFedora Linux. Before 5th of December 2019 we have a chance to select people for:

  • Fedora Engineering Steering Committee (FESCo)
  • Fedora Council
  • Mindshare (community groomers)

So, go read candidate interviews at Community Blog, think about them and cast the vote at https://elections.fedoraproject.org/

Over few iterations, I've noticed that my choice is little influenced by the interviews; I put more weight to what I remember about individuals from the mailing list traffic. I mean mainly fedora-devel, although I follow -infrastructure and -server, too. That in turns means, I won't be voting for Haralds, Kevins and Johns juniors haunting those lists, no matter how awesome their interview may be. Abrasive people should be extinguished, not promoted.

There's a minority of people I know personally. Often I do respect their skills, so Zbigniew got my vote.

But over the last few elections, interviews gave me hints who not to vote for. Candidate putting too much weight on modularity raises a red flag, and quickly falls into ÔÇťdo not voteÔÇŁ bucket.

There's a lot to unpack why modularity was like a sand thrown into Fedora's gears. Mailing list threads reached Debian's proportions, overshadowing discussions we had when we were considering systemd. Hard to read them all. Here's a shortcut ÔÇô go read excellent Fedora's modularity mess at LWN.net. This summary is prime example of LWN's high writing standard. I urge you to pay for subscription to LWN ÔÇô it's really worth it.

https://badges.fedoraproject.org/pngs/ivoted-f31.png

OpenShift's haproxy as IPv6 ingress


Kubernetes networking always struck me as some PoC mistakenly put into production. Among questionable design choices, Internet Protocol version 6 is hardly supported. But when using OpenShift's default router ÔÇô haproxy ÔÇô you can easily handle IPv6 at your ingress.

With recent version is even easier than before. I've started following Customizing HAProxy Router Guide, but after extracting config template I've discovered that all the ground work has been prepared already, for v3.7 and up.

OpenShift's HAProxy container reacts to ROUTER_IP_V4_V6_MODE environment variable. When set to v4v6, the router will gladly accept connections in both IP versions, legacy and v6.

You should oc -n default edit dc/router and in the long block of envvars add this:

- name: ROUTER_IP_V4_V6_MODE
  value: "v4v6"

While editing this, you may want to add ROUTER_ENABLE_HTTP2=true, too.

Gdzie si─Ö podzia┼éo to p├│┼é rokuÔÇŽ


Huh. Ostatnie sze┼Ť─ç miesi─Öcy znikn─Ö┼éo mi nie wiem gdzie.

Po cz─Ö┼Ťci to wina zmian zawodowych. Powiedzia┼éem YOLO, wyszed┼éem poza stref─Ö komfortu, i od lipca do┼éo┼╝y┼éem sobie obowi─ůzk├│w. Teraz jestem Head of DevOps w naszym kawa┼éku NRD, czyli w Group Data Management Office. Dalej robi─Ö jakie┼Ť automatyzacje przy Big Data, chocia┼╝ bardziej to m├│j zesp├│┼é robi. I pami─Ötajcie dzieci, DevOps to podej┼Ťcie, nie stanowisko.

Strava uprzejmie wypomnia┼éa mi, jak si─Ö zapu┼Ťci┼éem. Dosta┼éem ┼Ťwietny filmik z ┼╝a┼éosnymi wynikami. A przeniesienie biura do Gdyni bardzo ┼║le odbi┼éo si─Ö na wspinaczce w Elewatorze. Wstyd.

Czas zjadła mi też nauka i certyfikacja. Certified Kubernetes Administrator, Certified Specialist in OpenShift Administration, SAFe Advanced Scrum Master (no joke!).

Pilnowanie fachowca urz─ůdzaj─ůcego mieszkanie, oraz zwi─ůzane z tym wcze┼Ťniejsze przygotowania te┼╝ zabra┼éy swoje.

A na koniec roku ma┼éy sukces. W ko┼äcu, po raz pierwszy uda┼éo mi si─Ö wyl─ůdowa─ç w F29 Retaliator. Wcze┼Ťniej chyba si─Ö po prostu nie przyk┼éada┼éem.

F29 na lotnisku

Tak, po 25 latach od kiedy pierwszy w to zagra┼éem. Kolejny cel: wyl─ůdowanie w T.F.X.

Szale┼ästwem jest robi─ç wci─ů┼╝ to samo i oczekiwa─ç r├│┼╝nych rezultat├│w (BO2019 Gda┼äsk)


A ja robi─Ö. Po raz kolejny zg┼éosi┼éem do Bud┼╝etu Obywatelskiego w Gda┼äsku m├│j projekt ÔÇô ┼Ücie┼╝k─Ö rolkowo-biegowo-piesz─ů wok├│┼é zbiornika retencyjnego Jab┼éoniowa. Dosta┼é numer 11 w┼Ťr├│d projekt├│w dzielnicowych dla Jasienia. I tym razem projekt wygra :)

Potrzebne s─ů tylko g┼éosy, kt├│re mo┼╝na oddawa─ç od 10 do 24 wrze┼Ťnia br. Je┼Ťli mieszkacie w Gda┼äsku, to wejd┼║cie prosz─Ö na https://gdansk.zetwibo.pl/voting/info i oddajcie 5 g┼éos├│w na jedenastk─Ö. A je┼Ťli nie mieszkacie, to zach─Ö─çcie znajomych st─ůd.

G┼éosowa─ç mo┼╝na na projekty w innych dzielnicach ni┼╝ swoja. Nie trzeba mie─ç meldunku ÔÇô wystarczy o┼Ťwiadczenie o byciu mieszka┼äcem Gda┼äska.

Dzi─Öki!

Quick note: openHAB/ESPEasy/MQTT and easy fading


Connecting ESPEasy's GPIO outputs to switch elements in openHAB, using MQTT is quite simple:

Switch sD1MINI02MOS "Countertop light [%s]" <whites> {
  mqtt=">[motherqtt:/d1mini02/gpio/5:command:ON:1],>[motherqtt:/d1mini02/gpio/5:command:OFF:0]"
}

MQTT binding field explanations:

motherqtt
broker's name (defined in openhab.cfg)
/d1mini02/
ESPEasy %sysname%. Basically, a module name
gpio/5
GPIO number to control
command
openHAB will send a command
ON:1
what to send (ÔÇť1ÔÇŁ) when state changes to on
OFF:0
ditto when switching off

Switching ON/OFF gets boring quite fast. Luckily, ESPEasy exposes PWM (pulse width modulation) control of GPIO outputs. This gives possibility to vary brightness of light sources controlled by GPIOs. Let's modify the item definition to have light dimmed when set to OFF (not turned fully off):

Switch sD1MINI02MOS "Countertop light [%s]" <whites> {
  mqtt=">[motherqtt:/d1mini02/pwm/5:command:ON:1023],>[motherqtt:/d1mini02/pwm/5:command:OFF:128]"
}

Compared to direct gpio control: gpio became pwm, and 1/0 for ON/OFF became 1023 (fully filled impulse) and 128 (one eighth of full brightness).

Two things to remember: while ESPEasy's range of PWM is 0├Ě1023, openHAB's dimmer type only works support 0├Ě100 (like in percents). You cannot directly drive /pwm/ with openHAB's values, you need transforms. Second, when you start using /pwm/, standard /gpio/ stops working. You need to set /pwm/ to 0 to have /gpio/ control work again.

PWM fading is quite nice, but with binary ON/OFF state not very useful. But! Look closely at ESPEasy GPIO command set. There's a PWM command version with <duration>. This is useful for having lights turn on and off softly, instead of abruptly.

This requires slightly more complicated definition. We cannot use /pwm/ directly, instead control the /cmd endpoint:

Switch sD1MINI02MOS "Countertop light [%s]" <whites> {
  mqtt=">[motherqtt:/d1mini02/cmd:command:ON:PWM,5,1023,200],>[motherqtt:/d1mini02/cmd:command:OFF:PWM,5,0,600]"
}

Above definition will give pleasant, 200ms long fade in when turned ON, and 600ms long fade out when turned OFF. Compared to first definition, following has changed:

  • /gpio/5 (or /pwm/5) became /cmd
  • 1 (or 1023) for ON became PWM,5,1023,200 ÔÇô control PWM, on GPIO number 5, set fill to 1023 during 200ms
  • symetrically, 0 (or 128) for OFF became PWM,5,0,600 ÔÇô fade GPIO 5 to 0 during 600 ms

You provide final PWM value, fade starts from current value. Happy fading! :)

Dwa kroki do przodu, jeden wstecz. Extract!


W post─Öpuj─ůcem smartyzacji mieszkania na razie najwi─Öcej czasu zesz┼éo mi na pod┼é─ůczeniu okapu kuchennego. Obmy┼Ťli┼éem kilka podej┼Ť─ç, a to co wdro┼╝y┼éem musia┼éem poprawia─ç. Utrudni┼éem sobie za┼éo┼╝eniem, ┼╝e dodatkowe sterowanie musi by─ç rownoleg┼ée z oryginalnym. ┼╗eby nie psu─ç istniej─ůcych funkcji i nie musie─ç wyrabia─ç nowych nawyk├│w.

Ale na pocz─ůtek. Przypadki u┼╝ycia:

  • pod┼Ťwietlenie; dwie halogenowe lampki ┼Ťwiec─ůce do garnk├│w s─ů z pewno┼Ťci─ů przydatne. Z kolei ma┼éo przydatne, a nawet turbo-wkurzaj─ůce jest wymy┼Ťlone przez producenta sterowanie. O ile w┼é─ůczenie dotkni─Öciem jest OK, to ┼╝eby je wy┼é─ůczy─ç trzeba przytrzyma─ç pole kontrolne dok┼éadnie przez 1,21 sekundy. Milisekunda mniej lub wi─Öcej i ┼Ťwiat┼éo nie reaguje, albo tylko zmniejsza si─Ö jasno┼Ť─ç. Uproszczenie wy┼é─ůczania wystarczy┼éo mi za motywacj─Ö do lutowania;
  • sterowanie wyci─ůgiem; mia┼éem ju┼╝ sytuacj─Ö, ┼╝e jestem po ┼éokcie zaj─Öty robieniem jedzenia, a na patelni obok co┼Ť zaczyna mocno dymi─ç. I ┼╝eby zwi─Ökszy─ç obroty wyci─ůgu musz─Ö si─Ö odkopa─ç i wyczy┼Ťci─ç jeden palec (bo sterowanie panelem dotykowym!). Marzy┼éo mi si─Ö po prostu powiedzie─ç ÔÇ×Jarvis^W Aleksiej, w┼é─ůcz wyci─ůg na 3ÔÇŁ.
  • lampki pod sufitem; to bonusowo, bo skoro ju┼╝ mam esp8226 w pobli┼╝u zasilania, to mog─Ö tam podpi─ů─ç sterowanie (i zrezygnowa─ç z jednego z gniazdek na pilota z Biedronki).

Dla ustalenie uwagi, jeszcze par─Ö s┼é├│w o okapie. Silnik wyci─ůgu ma 3 biegi i jest zasilany z 230V. Co ciekawe, ka┼╝dy bieg ma osobne uzwojenie, tj. przy w┼é─ůczeniu biegu 2 zasilane powinno by─ç tylko uzwojenie nr 2. Wola┼éem nie sprawdza─ç co si─Ö dzieje po podaniu zasilania na wi─Öcej ni┼╝ jedno uzwojenie ÔÇô czy spali si─Ö w potoku iskier, czy tylko oderwie si─Ö od ┼Ťciany i odleci.

Lampki halogenowe zasilane 12V, poprzez transformator elektroniczny Shark60. Jest na nim napisane ÔÇ×dimmable by trailing or leading edge dimmerÔÇŁ, ale za wiele mi to nie m├│wi.

Interfejs u┼╝ytkownika to panel dotykowy z wy┼Ťwietlaczem 7 segmentowym. 4 pola dotykowe: bieg wyci─ůgu + i -, timer (nigdy nie u┼╝y┼éem) i pojedyncze pole sterowania o┼Ťwietleniem (patrz 1. przypadek u┼╝ycia). Pod┼é─ůczony do sterownika 10 przewodami. Niestety nie uda┼éo mi si─Ö znale┼║─ç rozpiski co i jak, wi─Öc nie wykorzysta┼éem tego interfejsu samemu. Mo┼╝e kiedy┼Ť.

Kontroler. Do┼Ť─ç prosta p┼éytka, najwa┼╝niejszy jest mikrokontroler atmega8l. Do jego wyprowadze┼ä pod┼é─ůczone m. in. zasilanie 5V (via regulator napi─Öcia 7805) i bank tranzystor├│w w uk┼éadzie ULN2003.

Na tej bazie wyklarowały mi się trzy scenariusze w jaki sposób mógłbym dołożyć swoje sterowanie.

Plan 1: bezpo┼Ťrednie sterowanie 230V

W pierwszym przybli┼╝eniu rozwa┼╝a┼éem ca┼ékowite olanie istniej─ůcego sterownika i powielenie jego funkcji w moim uk┼éadzie. To oznacza konieczno┼Ť─ç sterowania 230V ÔÇô specjalnie si─Ö do tego nie pal─Ö, ale kilka przeka┼║nik├│w albo triak├│w za┼éatwi spraw─Ö.

Uci─ů┼╝liwo┼Ťci jest jednak ca┼ékiem sporo. Potrzebuj─Ö dodatkowo zasilacza z 230V na 12V (do halogen├│w) i 5V/3.3V (klony d1mini, kt├│re mam, mo┼╝na zasila─ç z obu napi─Ö─ç). To zajmuje miejsce, a w okapie wcale go du┼╝o nie ma. Do tego trzeba pilnowa─ç, ┼╝eby nie w┼é─ůczy─ç uzwojenia dw├│ch bieg├│w okapu na raz.

Wi─Öcej przeszk├│d ni┼╝ zalet. Mo┼╝e jednak zobaczy─ç, co si─Ö kryje w firmowym kontrolerze.

Plan 2: sterowanie przeka┼║nikami

/dżogstaff/2018.04.02-1.płytka.thumbnail.jpg

P┼éytka jest bardzo prosta i dok┼éadnie wida─ç co si─Ö ┼Ťwi─Öci. Projektant przy prawie wszystkich elementach napisa┼é ich model ÔÇô wielkie kudos! Po kolei:

  • z┼é─ůcze po prawej: tutaj przychodzi zasilanie (dolne 3 piny), wychodzi zasilanie uzwoje┼ä silnika (┼Ťrodkowe piny) i wychodzi 230V doprowadzone do tranzystora steruj─ůcego o┼Ťwietlenie (g├│rne dwa piny)
  • na ┼Ťrodku 3 przeka┼║niki odpowiadaj─ůce za sterowanie silnikiem:
    • jest miejsce na 4 przeka┼║nik w modelach z dodatkowym biegiem
    • przeka┼║niki s─ů sprytnie po┼é─ůczone: w┼é─ůczenie ni┼╝szego biegu odcina zasilanie od przeka┼║nik├│w wy┼╝szych bieg├│w. Dzi─Öki temu niemo┼╝liwe jest w┼é─ůczenie naraz dw├│ch lub trzech bieg├│w w silniku
  • w g├│rnej cz─Ö┼Ťci optoizolator MOC3052, triak BTA-12, cewka ÔÇô uk┼éad sterowania o┼Ťwietleniem halogen├│w z mo┼╝liwo┼Ťci─ů redukcji jasno┼Ťci (wsp├│┼épracuje z Shark60).
  • po lewej ÔÇô 7805, przetwarzaj─ůcy napi─Öcie 12V (do sterowania przeka┼║nikami) na 5V (dla mikrokontrolera)
  • po drugiej stronie p┼éytki, pod naklejk─ů z kodem paskowym ÔÇô wspomniana atmega8l i scalaczek z tranzystorami.

W zasadzie perfekcyjnie. Obecne na p┼éytce 5V zapewnia mi zasilanie dla esp8226 na d1mini. Do sterowania o┼Ťwietleniem m├│g┼ébym wpi─ů─ç si─Ö pod gotowy optoizolator. Uk┼éad przeka┼║nik├│w zabezpiecza przed nieprawid┼éowym w┼é─ůczeniem. Tylko do ich sterowania (12V!) potrzebowa┼ébym jakiego┼Ť uk┼éadu z tranzystorami. Ale czy nie wspomina┼éem, ┼╝e doszed┼éem do 3 scenariuszy?

Plan 3: Mimikra do atmegi

Planuj─Ö u┼╝y─ç mikrokontrolera do sterowania wy┼╝szymi napi─Öciami. A przecie┼╝ ju┼╝ jest taki mikrontroler na tej p┼éytce. I ma swoje tranzystory, optoizolator. Najpro┼Ťciej b─Ödzie si─Ö po prostu wpi─ů─ç w miejsca, gdzie ju┼╝ jest pod┼é─ůczony.

Przeka┼║niki jedn─ů n├│┼╝k─Ö maj─ů pod┼é─ůczon─ů pod +12V, druga idzie do zestawu tranzystor├│w zamkni─Ötych w uk┼éadzie ULN2003. Sygna┼é z GPIO atmegi steruje tranzystorami, powoduj─ůc zwarcie do masy i w ten spos├│b zamkni─Öcie obwodu zasilaj─ůcego przeka┼║nik.

Podobnie optoizolator: ten z kolei na stałe jest przylutowany do masy, natomiast sterowanie z mikrokontrolera zapewnia zasilanie wbudowanej diody LED.

Pora lutowania ÔÇô plan 3

/d┼╝ogstaff/2018.04.02-2.plan3.thumbnail.jpg

Wszystko ┼éadnie pi─Öknie, tylko nie dzia┼éa. Przeka┼║niki w og├│le nie reaguj─ů, w┼é─ůczenie ┼Ťwiat┼éa po chwili powoduje reset mikrokontroler├│w. Pora si─Ö zastanowi─ç, co posz┼éo nie tak.

Po pierwsze to niezgodno┼Ť─ç zasilania. Atmega dzia┼éa na 5V. Esp8226 na 3,3V. Co prawda ESP ma z┼é─ůcza gpio 5V-tolerant, ale to oznacza tylko tyle, ┼╝e si─Ö nie spali przy takim napi─Öciu. Samo wi─Öcej ni┼╝ 3,3V nie poda.

Po drugie port GPIO ma albo stan wysoki (max 3,3V na ESP), albo zwarty do masy. A jak dwa mikrokontrolery s─ů spi─Öte swoimi portami, i jeden ustawi sobie stan niski, a drugi akurat chce wysoki, to w efekcie wsp├│lna masa jest zwierana do napi─Öcia zasilania. Not good.

Zabawny efekt powsta┼é przy w┼é─ůczeniu o┼Ťwietlenia ÔÇô znika┼éa mo┼╝liwo┼Ť─ç zmiany biegu na inny ni┼╝ aktualnie ustawiony, ani przez ESP, ani panelem dotykowym (przez atmeg─Ö; co podw├│jnie ciekawe, cyfr─Ö biegu na wy┼Ťwietlaczu da┼éo si─Ö zmieni─ç). Wy┼é─ůczenie o┼Ťwietlenia powodowa┼éo, ┼╝e wybrany bieg ÔÇ×wskakiwa┼éÔÇť.

Co pr─Ödzej od┼é─ůczy┼éem moj─ů konstrukcj─Ö i przemy┼Ťla┼éem podej┼Ťcie.

Krok w tył - plan 2

Spr├│bowa┼éem wi─Öc z planem po┼Ťrednim. W┼éasnor─Öczne sterowanie przeka┼║nikami wymaga┼éo kilku element├│w wi─Öcej. Na kawa┼éku p┼éytki zamocowa┼éem 3 MOSFETy i doprowadzi┼éem do nich GPIO z ESP. O dziwo, zadzia┼éa┼éo poprawnie od razu. W obudowie oryginalnego kontrolera znalaz┼éo si─Ö miejsce na tranzystory. D1mini zostawi┼éem na zewn─ůtrz ÔÇô i tak metalowa obudowa dooko┼éa nie jest najlepsza dla komunikacji po wifi.

/d┼╝ogstaff/2018.04.02-3.plan2.thumbnail.jpg

W dalszym ci─ůgu jednak nie dzia┼éa┼éo w pe┼éni sterowanie o┼Ťwietleniem. Przyczyna ta sama co poprzednio: jeden kontroler zwiera┼é do masy stan wysoki drugiego. Z tym sobie poradzi┼éem lutuj─ůc na oryginalnym optoizolatorze m├│j, z n├│┼╝k─ů zasilania pod┼é─ůczon─ů tylko do ESP:

/d┼╝ogstaff/2018.04.02-4.optosandwich.thumbnail.jpg

Logika sterowania

Stron─Ö oprogramowania mia┼éem ju┼╝ prze─çwiczon─ů kilka razy wcze┼Ťniej. Poza mn├│stwem ruchomych element├│w ÔÇô Mosquitto (MQTT), OpenHAB, ha-bridge, Alexa ÔÇô nic specjalnie skomplikowanego. W interfejsach (webowym, kom├│rkowym, aleksowym) nie mam bezpo┼Ťredniego sterowania uzwojeniami bieg├│w wyci─ůgu. Jest tylko jeden element, kt├│remu mo┼╝na ustawi─ç zadany bieg, i on pilnuje ┼╝eby tylko jedno uzwojenie by┼éo w┼é─ůczone. Dubluj─ůc zreszt─ů zabezpieczenie wynikaj─ůce z pod┼é─ůczenia przeka┼║nik├│w, ale im wi─Öcej tym lepiej.

Poniek─ůd przez to, ┼╝e w ha-bridge ca┼éy okap udaje ┼╝ar├│wk─Ö (ÔÇŽ) to nie mo┼╝na Aleksie wyda─ç polecenia ÔÇ×ustaw wyci─ůg na 2ÔÇŁ. A mo┼╝e to ograniczenie aleksy. W ka┼╝dym razie biegi mam zmapowane dwojako: 1% w┼é─ůcza bieg 1, 2% drugi a 3% trzeci; pewne poziomy procentowe w┼é─ůczaj─ů konkretny bieg, np. 20% w┼é─ůcza bieg pierwszy. Mo┼╝na wi─Öc powiedzie─ç ÔÇ×w┼é─ůcz wyci─ůg na 20%ÔÇŁ:

Satysfakcja 99% procent. Za┼éo┼╝enia spe┼énione, a brakuj─ůcy 1% pojawi si─Ö, je┼Ťli rozgryz─Ö oryginalny dotykowy panel sterowniczy.

Hokus, pokus, jeste┼Ťmy dworcem


Pisane na kolanie absurdalne ustawy inspiruj─ů dzia┼éania rodem z Monthy Pythona. Bez wi─Ökszego komentarza, gar┼Ť─ç artyku┼é├│w:

Na zakupy do sklepu lepiej wzi─ů─ç walizk─Ö.

Stay tuned for more absurd.

Alt-historia z zaci─Öciem sci-fi


Utwory opisuj─ůce inn─ů rzeczywisto┼Ť─ç. Podawane w formie uk┼éadanki, do samodzielnego monta┼╝u motyw├│w. To lubi─Ö. Temu wp┼éywowi si─Ö poddaj─Ö.

A colder war. Przeczytałem. Dwukrotnie. Teraz, gdy pracuję z domu, w komunikatorze jako lokalizację mam wpisane XK MASADA.

Kr├│tkometra┼╝├│wki Blomkampa to w wi─Ökszo┼Ťci meh. Rakka, Zygote, Gdansk, Kapture, Bill, Adam. Meh. Ale nie Firebase. To ma co┼Ť w sobie. Zmusza do zastanowienia. Kadry same si─Ö przypominaj─ů.

W dyskusji o powy┼╝szym kto┼Ť wspomnia┼é The Flesh Interface Series. Oryginalnie publikowane jako komentarze na Reddicie. Jaka┼Ť dobra dusza zrobi┼éa kompilacj─Ö wszystkich post├│w. Wsi─ůk┼éem. Czytam. Sk┼éadam.

There's a red LED on Sonoff Basic


Sonoff Basic is quite a nifty gadget. For less than $5 you get a WiFi-controlled mains switch, build around popular ESP8226 chip. That's right, an ESP, a relay, power supply, plastic shell and a green LED. Strangely enough, the LED has 3 connectors.

ITEAD, the manufacturer, was kind enough to provide electrical schematics for this gadget. Comparison with circuit board shows that the LED is infact a dual-color one. Red pin is used in 433MHz version of Sonoff (the RF). On the wifi module red pin is not connected to the chip, but quite accesible.

Notice how the traces go. On one side, the trace from LED goes to R3, and then to the place for Q3. The MOSFET is missing, but it's soldering pads are in place. Remember this location.

/d┼╝ogstaff/2017.09.28-sonoff-red-led.1.thumbnail.jpg

The trace for LED goes in another direction, too. First to R23 (missing on my board), then through a via to other side of board. Flip the board and the trace hits the place for Q4 MOSFET, also missing.

/d┼╝ogstaff/2017.09.28-sonoff-red-led.2.thumbnail.jpg/d┼╝ogstaff/2017.09.28-sonoff-red-led.3.thumbnail.jpg

I suggest soldering a wire to Q3's contact. The resistor R3 is already in place, you need only a connection to GPIO. Either use exposed GPIO14 on 5-pin header, or ÔÇô if you feel brave ÔÇô you can solder the wire to GPIOs directly on ESP chip. You can see details on last 3 photos on Evert Dekker's site.

Now you can blink Sonoff's Basic LED in green and red.

Maico + Sonoff + DHT22


Smart Home to ┼Ťwietne hobby. Co mo┼╝e by─ç lepszego, ni┼╝ piel─Ögnowanie lenistwa? Temat SH w zesz┼éym roku przybli┼╝a┼éem na Zimowisku TLUG.

W mieszkaniu musz─Ö si─Ö mierzy─ç z oszcz─Ödno┼Ťciami poczynionymi przez projektanta i dewelopera. Maksymalizuj─ůc stosunek powierzchni technicznej (niesprzedawalnej) do metr├│w kwadratowych mieszkania, zminimalizowali powierzchni─Ö komin├│w wentylacyjnych. Przez to wentylacja musi by─ç wspomagana mechanicznie. Inna oszcz─Ödno┼Ť─ç: zamiast zbiorczego wyci─ůgu na dachu ÔÇô indywidualne wiatraki w mieszkaniach.

Wentylatory s─ů dwubiegowe. Pierwszy bieg musi by─ç ca┼éy czas w┼é─ůczony, ┼╝eby spe┼éni─ç warunki techniczne wentylacji. Drugi mo┼╝na w┼é─ůczy─ç np. po k─ůpieli, ┼╝eby wyci─ůgna─ç wilgo┼Ť─ç. I nie wyhodowa─ç grzyba na ┼Ťcianie. A czy wy┼╝szy bieg nie m├│g┼éby si─Ö sam za┼é─ůcza─ç? M├│g┼éby, ale przyoszcz─Ödzono i wybrano wk┼éad wentylatora bez czujnika wilgotno┼Ťci. Mo┼╝na oczywi┼Ťcie wymieni─ç (koszt ok. tysi─ůca z┼é), ale fajniej jest wzi─ů─ç lutownic─Ö w ┼éap─Ö i zrobi─ç samemu.

Sprz─Öcior

Za nieca┼ée 5 dolc├│w sztuka naby┼éem od sko┼Ťnookiego producenta wifi-w┼é─ůczniki Sonoff Basic. Sk┼éadaj─ů si─Ö z popularnego uk┼éadu ESP8266, przeka┼║nika i uk┼éadu zasilaj─ůcego ca┼éo┼Ť─ç. Oryginalnie przychodz─ů z jak─ů┼Ť appk─ů i komunikuj─ů si─Ö ze statkiem macierzystym w Chinach, ale sam producent pokazuje na swoich stronach gdzie przylutowa─ç kabelki i jak zmieni─ç oprogramowanie.

Popularno┼Ť─ç ww. chipa zaowocowa┼éa wysypem r├│┼╝nych hobbystycznych firmware. Po pomoc w zmianie softu zwr├│ci┼éem si─Ö do Przemka i otrzyma┼éem do zabawy sztuk─Ö z wgranym ESPEasy.

Alternatywny soft daje obs┼éug─Ö r├│┼╝nych dodatkowych urz─ůdze┼ä pod┼é─ůczonych pod dost─Öpne GPIO. Tak, w┼é─ůcznik pr─ůdu ma dost─Öpne programowalne piny wej┼Ťcia/wyj┼Ťcia. Witamy w przysz┼éo┼Ťci.

Pod┼é─ůczy┼éem wi─Öc czujnik wilgotno┼Ťci DHT22 i skonfigurowa┼éem wysy┼éanie jego odczyt├│w.

Sofcior

Przy okazji researchu bardzo spodoba┼é mi si─Ö protok├│┼é MQTT i jego implementacji w postaci serwera Mosquitto. Protok├│┼é dzia┼éa na zasadzie szyny danych. R├│┼╝ne urz─ůdzenia wrzucaj─ů do niej dane pod ustalonymi adresami, a kto jest zainteresowany mo┼╝e dowolne dane (z dok┼éadno┼Ťci─ů do ACL) czyta─ç i przetwarza─ç. I ca┼ékiem dobrze integruje si─Ö z OpenHAB, kt├│rym automatyzuj─Ö mieszkanie.

Swoj─ů drog─ů dawno nie widzia┼éem takiego dzia┼éaj─ůcego ÔÇ×od r─ÖkiÔÇŁ oprogramowania. Nawet zmostkowanie drugiego serwera (do test├│w w czasie wolnym w biurze) posz┼éo jak z p┼éatka.

Fuzja

Wiatrak dwa biegi ma zrealizowane przez dwa uzwojenia, na kt├│re podajemy napi─Öcie. Pierwsze jest z za┼éo┼╝enia ca┼éy czas pod pr─ůdem ÔÇô to daje 230V, kt├│re wykorzysta┼éem do zasilania Sonoffa. W┼é─ůcznik drugiego biegu pod┼é─ůcza faz─Ö pod drugie uzwojenie. R├│wnoleg┼ée do tradycyjnego pod┼é─ůczy┼éem wifi-w┼é─ůcznik ÔÇô dzi─Öki w┼é─ůcznik nie traci funkcjonalno┼Ťci i wci─ů┼╝ mo┼╝na r─Öcznie wymusi─ç wy┼╝szy bieg.

Regu┼éka w OpenHAB jest d┼éu┼╝sza ni┼╝ minimalna. For fun steruj─Ö jasno┼Ťci─ů diodki na Sonoffie ÔÇô gdy wilgotno┼Ť─ç jest w obszarze histerezy, diodka ┼Ťwieci si─Ö coraz mocniej przy zbli┼╝aniu si─Ö do granicy za┼é─ůczenia:

val int h_low = 55
val int h_high = 65

rule "W┼é─ůcz wiatrak przy du┼╝ej wilgotno┼Ťci"
when
    Item h_lazienka received update
then

    if (h_lazienka.state > h_high) {
            /* wlaczyc wiatrak i diodke  */
            sSONOFF03.sendCommand(ON)
            dSONOFF03LED.sendCommand(0)

    else if (h_lazienka.state < h_low) {
            sSONOFF03.sendCommand(OFF)
            dSONOFF03LED.sendCommand(1023)

    else {
            /* pomiedzy 55 a 65 */
            val h_lazienka_int = h_lazienka.state as Number
            var led_pwm = (h_high - h_lazienka_int) * ( 1023 / (h_high - h_low) )
            if (led_pwm < 0) { led_pwm = 0 }

            dSONOFF03LED.sendCommand(led_pwm)
    }
end

Wszystkie etapy przykręcania kabelków zostały udokumentowane fotograficznie. W starym interfejsie OpenHABa przybyło mi:

https://lh3.googleusercontent.com/nd8iZuUiX3GfQT7Jo1n3Xi8_Grj4qkHZuIwRPptF3wUElU4CDLNZvIr4aaGCdc5ISijXsi-mynUpDMvJ9ixm9JuOrE0Y9tqIqTlADUthXym4WziSG_kM-g9HMQt0IJdI7O1VUYUb2_-I_na-mZmSXa7GkYMj5uuCFNJCeAyf7EbDQx_LZADY57K9FHSho-Bv3PcR2p6ZEug8dZ01yY6tnKFl8Xinf3mWGvqFuKftWsHRdLNQEB0f7Q__JNyi-CQYpDsP_dUnecQ_Q-J7bt7eMyPpP_5elIBhcGW9lWZxSQYZ452Jhx2TLy9Q1cxIwji4UJ6dKzn03W-S2Z8bIWh3XYjLMZUPt_hBRuv9nrWUoKZLnYIuTNP7KXR2pSSlyrUfAHxXfZPuGWDxZTw3mgWhuxz6cOX47jUFIPrpe4dF_IK8sDipcvcHUb6CyizbWLilZ9F_dBO9z1iz6wRAO86C5PI--FsSJbvMqLbDOXJYpUhL7sjB3VXz49uXMaxUIa2EVTvgZ3eLyMKTT_2fjXAslxUByqhGZlzy5q2iEdApoAXlfJ_O3wKuqU_mrVuhtobHigMwnbN4F-BXujabPTPOv9N_p8zzW9qFUJI0lyFD8yoKyO8uaiJHZUKHt3uXHtuigCdVzN_ZzR5eKNVm3W2MtISwF9YzJt20vIY=w322-h219-no

Czym flashowa─ç, jak ┼╝y─ç?

Kt├│ry firmware wybra─ç? Na pocz─ůtku sk┼éania┼éem si─Ö ku Tasmota. Opisywany jest jako ÔÇ×dedykowanyÔÇŁ do Sonoff├│w. Przemek skierowa┼é moj─ů uwag─Ö na ESPEasy, kt├│ry jest og├│lniejszy, za to ma wi─Öcej mo┼╝liwo┼Ťci konfiguracji (np. sterowanie PWM) i oferuje sensowniejsz─ů hierarch─Ö MQTT.

Obydwa oprogramowania pozwalaj─ů na aktualizacj─Ö Over-the-Air. Po pierwszym wgraniu, kolejne aktualizacje przeprowadzamy po WiFi. Dzi─Öki temu piny RX/TX UARTa mo┼╝na przekonfigurowa─ç uzyskuj─ůc dwa kolejne GPIO.

Tasmota ma obs┼éug─Ö Last Will and Testament w MQTT, co u┼éatwia sprawdzenie czy modu┼é jest on-line. Bo przecie┼╝ do VLANa z w┼é─ůcznikami ma dost─Öp tylko broker MQTT, nieprawda┼╝?

Ostatecznie stan─Ö┼éo na ESPEasy. Jednego z pozosta┼éych Sonoff├│w mam z Tasmot─ů, mo┼╝e rozwinie si─Ö w jaki┼Ť sensowny spos├│b.

Gor─ůco polecam celebracj─Ö lenistwa poprzez usmartawianie swojego domu.

p61107 (a w zasadzie p62056-21) update 2017


Kilka dni temu sko┼äczy┼éem sprz─Ötow─ů cz─Ö┼Ť─ç mojego hobbystycznego projektu p61107. Zacz─ů┼éem raptem pi─Ö─ç lat temu, a nazywa─ç si─Ö w zasadzie powinien p62056-21, bo to jest najnowsza wersja standardu IEC. Z tej okazji, przywitajcie moje kilowatogodzinki:

DEBUG - 1.8.0*00(00015605.02) DEBUG - 0.2.2(:::::G11)

Zosta┼éo mi tylko sensowne obkodowanie tego. Namierzy┼éem kilka bibliotek w Pythonie do obs┼éugi protoko┼éu, najsensowniejsz─ů zbackportowa┼éem do starego pythona 3.4 ÔÇô bo raspbian to przecie┼╝ Debian, wi─Öc staro─ç. Nie u┼╝y┼éem Fedory, niestety, bo w wersji pignus niedomaga klient FreeIPA.

Z wartych odnotowania spraw: elegancko uda┼éo mi si─Ö poradzi─ç z zasilaniem. W szachcie przy drzwiach mie┼Ťci si─Ö m├│j wymiennik ciep┼éa. Do sterowania elektrozaworem wyprowadzone jest z rozdzielni mieszkaniowej 230V. Zza mojego licznika, z w┼éasnym bezpiecznikiem i wy┼é─ůcznikiem. A do skrzynki, w kt├│rej zamkni─Öte s─ů pod┼é─ůczenia, idealnie zmie┼Ťci┼éa si─Ö stara nokiowa ┼éadowarka z MicroUSB.

Kolejne aktualizacje stanu projektu mam nadziej─Ö pisa─ç cz─Ö┼Ťciej, ni┼╝ co p├│┼é dekady.

IPv6 w UPC? Do Bydgoszczy będę jeździł!


Co jaki┼Ť czas widuj─Ö pytania typu ÔÇ×kiedy UPC b─Ödzie dawa┼éo IPv6ÔÇŁ. I za ka┼╝dym razem zauwa┼╝am, ┼╝e ju┼╝ daje. Co jestem u Te┼Ťciowej w mie┼Ťcie nad Brd─ů, to w jej sieci dostarczanej przez UPC w jakim┼Ť najta┼äszym pakiecie bez problemu korzystam z IPv6.

Modem pos┼éuguje si─Ö tak─ů adresacj─ů:

/d┼╝ogstaff/2017.04.15-upc-ipv6-adresacja.png

Adresy legacy IPv4 mo┼╝na sobie zmienia─ç, v6 nie. Wyj┼Ťcie na ┼Ťwiat jest zno┼Ťne:

$  tcptraceroute6 ftp.task.gda.pl
traceroute to ftp.task.gda.pl (2001:4070:1::fafa) from 2a02:a311:c122:7700:59e:40f7:d772:945b, port 80, from port 40950, 30 hops max, 60 bytes packets
1  2a02:a311:c122:7700:x:x:x:x (2a02:a311:c122:7700:x:x:x:x)  2.890 ms  5.642 ms  5.123 ms
2  * * *
3  2a02:a300:0:8:0:1502:0:1 (2a02:a300:0:8:0:1502:0:1)  11.413 ms  13.263 ms  41.638 ms
4  2001:730:2c00::5474:fe82 (2001:730:2c00::5474:fe82)  23.625 ms  56.263 ms  26.888 ms
5  2001:730:2c00::5474:fe1e (2001:730:2c00::5474:fe1e)  53.984 ms  26.788 ms  25.574 ms
6  2001:730:2c00::5474:fe1d (2001:730:2c00::5474:fe1d)  26.846 ms  27.785 ms  19.525 ms
7  2001:4070:0:f::1 (2001:4070:0:f::1)  27.670 ms  26.323 ms  22.725 ms
8  ftp.task.gda.pl (2001:4070:1::fafa)  22.835 ms [open]  28.463 ms  19.476 ms

W innym miejscu ustawienia sugeruj─ů b─Öd─ůce w u┼╝yciu DS-lite.

/d┼╝ogstaff/2017.04.15-upc-ipv6-wersje.png

I faktycznie trasa po v4 wygl─ůda jako┼Ť tak dziwnie:

traceroute to ftp.task.gda.pl (153.19.251.222), 30 hops max, 60 byte packets
1  * * *
2  pl-waw04a-rc1-ae18-0.aorta.net (84.116.253.121)  23.935 ms  23.988 ms  23.984 ms
3  pl-waw26b-rc1-ae4-0.aorta.net (84.116.133.45)  23.969 ms  23.951 ms  26.118 ms
4  * * *
5  * * *
6  ftp.task.gda.pl (153.19.251.222) <syn,ack>  28.595 ms  19.232 ms  27.245 ms

I co tu du┼╝o m├│wi─ç, po prostu dzia┼éa, w obie strony. Nie wiem od kiedy ÔÇô pami─Ötam tylko, ┼╝e w grudniu 2013 po┼é─ůczenia sz┼éy po fatalnym jako┼Ťciowo v4. Teraz jest bajerancko.

Antyreklamy radiowe


Z uwagi na kontuzj─Ö, ostatnio do pracy nie chodz─Ö ani nie je┼╝d┼╝─Ö rowerem, a docieram samochodem. W zwi─ůzku z tym s┼éucham radio i jestem nara┼╝ony na kontakt z g┼éupimi reklamami. Mo┼╝na wr─Öcz napisa─ç antyreklamami, bo osi─ůgaj─ů cel przeciwny do zamierzonego. Jedna z nich, sieci sklep├│w spo┼╝ywczych, leci mniej wi─Öcej tak:

Do tego sklepu ustawiaj─ů si─Ö kolejki. Dlaczego kolejki? Bo mi─Öso rzucili. Takie smaczne, ┼╝e sam ustawisz si─Ö w kolejce.

EeeeeÔÇŽ jakbym chcia┼é posta─ç w kolejce, to bym poszed┼é na Poczt─Ö Polsk─ů. W przypadku zakup├│w, je┼Ťli mia┼ébym bezczynnie sta─ç, to zrezygnuj─Ö z zostawiania moich dukat├│w i p├│jd─Ö gdzie┼Ť indziej.

Co osi─ůga sklep tak─ů reklama─ů? Komunikat brzmi: nie potrafimy sprawnie zorganizowa─ç sprzeda┼╝y, za ma┼éo mamy pracownik├│w, u nas stracisz czas. By─ç mo┼╝e kto┼Ť starej daty operuje skojarzeniem kolejka == co┼Ť fajnego, ale sorry, mamy 2017. Ludzie maj─ů lepsze rzeczy do robienia ni┼╝ marnowanie ┼╝ycia w kolejce.

Podobnie skojarze┼ä nie przemy┼Ťla┼é jeden z deweloper├│w (takich od blokowisk, nie od kodu), kt├│ry przez d┼éugi czas sponsorowa┼é autopilota w radio. Nazwa firmy i inwestycji pojawia┼éa si─Ö tu┼╝ przed i tu┼╝ po informacjach o utrudnieniach na drogach. Zupe┼énie jakby chcieli w s┼éuchaczach wyrobi─ç skojarzenie nasze osiedle == stanie w korkach.

Niekt├│re firmy powinny naprawd─Ö przemy┼Ťle─ç jak si─Ö promuj─ů i z czym chc─ů si─Ö asocjowa─ç. To ju┼╝ nawet biedronka w┼Ťr├│d deweloper├│w ma lepsze reklamy.

sd_notify() support in nghttp2


nghttp2 is an implementation of HTTP/2. It comes as a set of libraries and tiny programs using them ÔÇô a client, WWW server and a proxy. I've started using the last one, nghttpx, as a reverse proxy in few project and I'm quite content with.

Recently I implemented sd_notify() support in it. Explicit main PID tracking and readiness signaling works like a charm with systemd. sd_notify() protocol let us reliably supervise service even during hot-swap. That is, after receiving SIGUSR2, nghttpx executes new binary and tells systemd ÔÇťthis is main process nowÔÇŁ. Old binaries can finish serving current requests and exit.

The pull request, after a round of comments and fixes, was merged into trunk after v1.19.0, so it will be in the next release. If you're willing to test, I'd ask you to check USR2 graceful shutdown branch, also. At the moment you need to manually SIGQUIT old processes after hot-swap. This branch is supposed to automate it.

And if you're maintain nghttp2 package in a distribution, please be sure to check changes in the service unit file.

Drutostr├│┼╝


Od ko┼äca zesz┼éego wieku u┼╝ywam IPSec to zabezpieczania ruchu sieciowego. Zgodnie z dziwactwami opensource, FreeS/WAN morfowa┼é si─Ö przez Openswan do Libreswan i strongSWAN. R├│wnolegle korzysta┼éem te┼╝ z racoon. Interesowa┼é mnie racoon2 z uwagi na integracj─Ö z Kerberosem (KINK), ale ten wygl─ůda na porzucony. Ostatnio zainteresowa┼é mnie Wireguard, kt├│ry do niekt├│rych zastosowa┼ä jest ca┼ékiem fajny.

Mo┼╝e najpierw zalety. Wireguard oparty jest na wsp├│┼éczesnych algorytmach i protoko┼éach kryptograficznych, autor chwali si─Ö ca┼ékiem niez┼é─ů wydajno┼Ťci─ů i niskimi op├│┼║nieniami. Konfiguracja jest bardzo prosta i dzia┼éa w zasadzie od strza┼éu. W systemie pojawiaj─ů si─Ö dodatkowe interfejsy sieciowe, w kt├│re mo┼╝na zajrze─ç tcpdumpem albo wyroutowa─ç w nie ruch do szyfrowania.

Mi┼éym dodatkiem jest ┼╝e tak powiem moshowato┼Ť─ç. Po jednokrotnym nawi─ůzaniu sesji, wymiana zaszyfrowanych pakiet├│w odbywa si─Ö nawet je┼Ťli jednej z ko┼äc├│wek zmienia si─Ö adres IP (oczywi┼Ťcie je┼Ťli po zmiane odezwie si─Ö on do drugiej). Trudno wi─Öc wpa┼Ť─ç w sytuacj─Ö, w kt├│rej sesja jest niby zestawiona, a ruchu trafia w czarn─ů dziur─Ö.

S─ů te┼╝ wady. W zestawieniu z IPSec, Wireguard ca┼ékowicie ignoruje aspekt zarz─ůdzania kluczami. Ko┼äc├│wki maj─ů swoje klucze publiczny z prywatnym, ale administrator pozostawiony jest sam sobie z kwesti─ů ich propagacji. A to cz─Östo jest najbardziej skomplikowane zagadnienie przy opracowywaniu architektury rozwi─ůzania szyfruj─ůcego.

Jak mo┼╝na si─Ö domy┼Ťle─ç z obecno┼Ťci dedykowanego interfejsu sieciowego, Wireguard obs┼éuguje tylko tryb tunelowy. Szkoda, bo o wiele cz─Ö┼Ťciej korzystam z trybu transportowego. Sieciowo jest bardziej oczywisty. Cz─Ö┼Ťci scenariuszy nie da si─Ö za pomoc─ů WG zrealizowa─ç. Mo┼╝na za to inne, jak np. przeniesienie tylko szyfrowanego interfejsu sieciowego do przestrzeni nazw jakiego┼Ť kontenera. Niekt├│rzy tego potrzebuj─ů, o czym ┼Ťwiadczy chocia┼╝by pojawienie si─Ö w Linuksie interfejs├│w ip_vti*.

No i najwi─Öksza wada, WireGuard jeszcze nie jest w j─ůdrze Linuksa. Jason (autor WG) ma plan w┼é─ůczenia gdzie┼Ť w drugiej po┼éowie roku. Od tego uzale┼╝niona jest szeroka dost─Öpno┼Ť─ç w dystrybucjach i w┼é─ůczenie obs┼éugi w systemd-networkd. Jak na razie dost─Öpne s─ů repozytoria i samokompiluj─ůce si─Ö modu┼éy dla r├│┼╝nych dystrybucji.

WireGuard ma jak─ů┼Ť tak─ů trudn─ů do uchwycenia elegancj─Ö i czuj─Ö, ┼╝e co┼Ť z tego b─Ödzie. Mo┼╝e nawet pojawi si─Ö wsparcie dla innych ni┼╝ Linux system├│w.

https://video.fosdem.org/2017/Janson/wireguard.vp8.webm

Zaciskanie pasa TLSa


Red Hat zdecydowa┼é si─Ö na nietypowy krok w swojej dystrybucji Linuksa. W wersji RHEL 6.9 usun─ů lub ogranicz─ů obs┼éug─Ö przestarza┼éej kryptografii. Zmiana dotknie SSLv2, MD5, RC4 itp. W aktualizacji stabilnej wersji nie powinno si─Ö zmniejsza─ç zakresu obs┼éugi, jednak ten krok wymusi┼éy odkryte problemy z bezpiecze┼ästwem.

Zmiana nie dotknie os├│b ponadprzeci─Ötnie dbaj─ůcych o bezpiecze┼ästwo, bo Ci admini ju┼╝ dawno wprowadzili zalecenia z Applied Crypto Hardening PDF. I przeprowadzili analiz─Ö, do jakiego stanu mo┼╝na pod┼Ťrubowa─ç security, ┼╝eby za bardzo nie utrudni─ç innym. Ja przyk┼éadowo na serwerze WWW chcia┼éem ograniczy─ç TLS tylko do v1.2/1.3. Ale sprawdzi┼éem, i oznacza┼éoby zablokowanie dost─Öpu osobom z Androidem <5.0. Na takie po┼Ťwi─Öcenie nie jestem got├│w ;-). Nie ka┼╝dy dzia┼éaj─ůcy tablet z 4.x mo┼╝na zaktualizowa─ç, a je┼Ťli kto┼Ť wchodzi na bloga mobilnie, to zazwyczaj jest w trudnej sytuacji bez dost─Öpu do czego┼Ť lepszego. Zablokowanie mu dost─Öpu w takiej chwili by┼éoby bezsensowne. A mo┼╝e i okrutne, bo pewnie popsu┼é sobie dost─Öp do internetu i szuka spos├│bu na napraw─Ö.

Przy okazji, wspomniany dokument w wielu przypadkach specyfikuje wprowadzenie ci─ůgu okre┼Ťlaj─ůcego dozwolone algorytmy w postaci EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+ÔÇŽ. Jest to dosy─ç nieelastyczne, w Fedorze mo┼╝na to zrobi─ç lepiej: wystarczy poda─ç PROFILE=SYSTEM. Wtedy poziom zabezpiecze┼ä dla wszystkich us┼éug na raz ustawimy poprzez manipulacje w /etc/crypto-policies/ i wywo┼éanie polecenia update-crypto-policies.