log69 blogja

Ubuntu / cubic / openssh / connection reset

Cubic-al Ubuntu 18 x64 Live-ot készítek. Egy frissítés óta az openssh-server csomagot telepítve nem generálódnak host kulcsok, így mikor a Live-ba bootolt rendszerbe akarok SSH-val loginolni, "connection reset" hibát dob. Megoldás:

dpkg-reconfigure openssh-server

Megoldás a live-hoz hogy boot után fusson le: root cronjob:

@reboot (/usr/sbin/dpkg-reconfigure openssh-server)

Ubuntu / Pulse Audio / System wide sound level normalization

Egy kis karácsonyi ajándék Linux felhasználóknak (latest finding):

https://askubuntu.com/a/771628

Különböző hangforrások, különböző youtube és egyéb videók különböző hangerővel rendelkeznek és így böngészés közben folyamatosan állítgatni kell a hangerőt. Van viszont plugin elérhető csomagként (LADSPA), amely tudja normalizálni valós időben a hangmintát.

BeamNG

BeamNG.drive is a vehicle simulation video game developed and published by Bremen-based video game developer BeamNG. The game features unique soft-body physics, and was released into Steam Early Access for Microsoft Windows on 29 May 2015.

On 28 May 2012, BeamNG released a YouTube video titled "Revolutionary soft-body physics in CryEngine3".[1] Originally, BeamNG.drive was to be based on CryEngine 3, but its use in a driving game uncovered numerous bugs, leading development to be rolled over to Torque.[2] BeamNG.drive relies heavily on coding in Lua, and uses packets of local data using the Lua network system while the game is operating in order to complete the complex physics equations during gameplay.

Linux / screen cast

RecordMyDesktop rossz kimenetet produkál egy full HD-s képernyővel 1920 x 1072-es felbontással 1080 helyett, ezért a YouTube-ra feltöltött videó vagy csúnya lesz (nem lesz penge éles), vagy pedig csak 720p-ben generálja le. A hiba ismert és azért van mert a vízszintes felbontásnak 2-vel, a függőlegesnek 16-al kell oszthatónak lennie.

Több megoldást megnéztem (köztük VLC), de mindegyiknek van hibája. Egy jó lista itt:

Kód ellenőrzés + AI #3

Előzmények itt.

Téma: fejlesztő munkájának segítése anomáliák keresésével a kódjában mesterséges intelligencia használatával. Ez olyan rendellenességet jelent, amely a betanított mintától valamiért jelentősebben eltér (outlier), ezért rejtett szemantikai problémát is takarhat. Nyilván függ ezért attól, hogy milyen tanító adatbázist állítunk össze (például csak egy adott nagy cégtől származó kóddal és így ahhoz képest viszonyíttatunk az AI-vel, ez szerintem megadhat praktikai eltéréseket is).

Kód ellenőrzés + AI #2

Előzmények itt.

Célom a fejlesztők munkájának megtámogatása a platformomon úgy, hogy egyetlen klikkel meg tudják vizsgáltatni a kódjukat anomáliák után kutatva benne egy tanított mesterséges intelligenciával. Ez bármilyen rendellenességet jelenthet, melyet az AI a tanult adatok alapján képez.

Meg van a backend és a frontend működés is. Elkezdtem betanítani az AI-t és kutatom hogy milyen mintával tanított modell milyen mintában talál lehetséges anomáliákat. Valószínű hogy többször újra kell tanítanom, egyelőre teszt jelleggel egy alap tanítással kísérletezek. Nyilván adhat több false jelzést.

Kód ellenőrzés AI-jal

Kutatást végzek arról, hogyan tudnám tovább növelni a fejlesztő kényelmét és hatékonyságát a támogató platformommal. Mivel 1 éve foglalkozok neurális hálózatokkal, úgy döntöttem hogy megpróbálom jósoltatni a hibákat és regressziót keresni egy mesterséges intelligencia betanításával. (Ugye az AI egyik részhalmaza a Machine learning, és annak egy részhalmaza a neurális háló, és ezen belül is hatalmas a terület (deep learning, LSTM, attention stb). Nos, ez utóbbira hivatkozok csak röviden mint AI).

Egyelőre Livescript-el (LS) kísérletezek. Ugye ez Javascript-re (JS) fordul. Megnéztem hogy van-e a fordítójának olyan kapcsolója, amely bytecode-ot vagy egyéb más strip-elt struktúrát tud kidobni. Éppen van:


npm install livescript

lsc --help

...
  -l, --lex       print the tokens the lexer produces
  -t, --tokens    print the tokens the rewriter produces
  -a, --ast       print the syntax tree the parser produces

Task nevű példaprogramom kódját konvertálom AI-jal megetethető formába (csak simán a script tag-ek közti részt kimásolom fájlba és beadom lsc-nek, és azt konvertálom tovább). Lássuk a 3 különböző struktúrát (csak részletet mutatok, ebből már látszik megfelelően):

Kód futattás wildcard certtel -> mycode.domain.com

Régebb óta vártam Letsencrypt wildcard támogatását. Kösz ToMpEr-nek a bejelentést és Endruu-nak a segítséget a beállításához.

Webfejlesztést támogató megoldásom tudja azt, hogy ha olyan néven hozol létre kódot amilyen domain-ről hivatkozol rá és beteszed a ?domain? parancsot bárhová, akkor lefuttatja azt. GET paraméterekkel is lefut a kód, így könnyen átadható adat a webapp számára. Például:

https://hello.frontfoo.com

forráskód | doksi | features

Gyorsan lehet így adhoc megoldásokat deploy-olni: weboldal, webapp vagy épp csak egy sima dokumentáció.

MariaDB / regexp_replace()

Két napja váltottam MySQL-ről MariaDB-re, lásd bejegyzés itt. Az oka a következő volt:

Fejlesztett megoldásom adatkezelő felületén eddig is volt lehetőség tömeges adatcserére. Jól jön ha például egy táblában egy oszlop bizonyos adatából az összeset át kell írnunk. Eddig úgy működött, hogy mindig a teljes cella értékét cseréltem. De mi van akkor, ha csak részleges cserét akarunk végezni? Például azért, mert minden Horváth nevű embert h betű nélkül vittek fel, és mindenhol javítani kell, viszont különböző keresztnevek vannak és így a cellák értéke nem azonos?

Fejlesztések

git log | grep feature | head -n3
  • add feature: add auto progress indicator changing background color for api calls
  • add feature: add new api param "progress" to turn off indicator and add param "color" to set indicator color
  • add feature: fill values automatically to make api requests more flexible

Példa program

Összeraktam egy ismerősöm számára Livescript-tel egy egyszerű feladatkezelő programot mintának, hogy szemléltessem a működést.

Felül objektumok (vagyis mivel tudunk interakcióba lépni), alatta stílus (hogyan néznek ki), alatta pedig funkcionalitás (mit tudunk tenni velük).

Próbálom tovább egyszerűsíteni, szívesen veszek ötletet.

(csak elég széles (nem mobil) képernyőn jelenítem meg a forráskódot, egyébként csak futtatás gomb van)

Fejlesztések

git log | grep feature | head -n4
  • add feature: purge whitespaces and replace tabs with 4 spaces from the end of every line when ctrl is pressed when saving the code
  • add feature: letter capitals and white spaces do not matter in the matching pattern for ?replace? command
  • add feature: open web app with a get request when clicking run with the ctrl key so it's easier to reload it during testing because no confirmation is asked for page reload by the browsers
  • add feature: new rest api command: auth to check if username and password match, this is useful for websites for login

FF / disable Ctrl+Q

Állandóan bezárom véletlenül a böngészőt a shortcut-tal. Beletehették volna már legalább az about:config-ba ennek kikpacsolását 10 éve. Az alábbit elég egyszer megcsinálni program indításonként. Ha hónapokig nincs bezárva csak altatva a gép, akkor nem sok meló, illetve megjegyzi a console, tehát elég a felfelé nyíl + enter.

Ctrl+Shift+J -> document.getElementById('key_quitApplication').remove()

https://addons.mozilla.org/en-US/firefox/addon/disable-ctrl-q-and-cmd-q…