log69 blogja

Ubuntu / Pulse Audio / System wide sound level normalization

 ( log69 | 2018. december 21., péntek - 10:11 )

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

 ( log69 | 2018. augusztus 27., hétfő - 19:08 )

Idézet:
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.

Ubuntu

 ( log69 | 2018. július 26., csütörtök - 14:17 )

lsb_release -d

Description: Ubuntu 18.04.1 LTS

VLC / always continue

 ( log69 | 2018. július 8., vasárnap - 23:15 )

edit ~/.config/vlc/vlcrc

qt-continue=2

(Régóta kellett, sehol nem találtam infót, elkezdtem próbálgatni az értékeket és meglett)

Linux server stat / Ruby

 ( log69 | 2018. június 13., szerda - 23:16 )

Kicsit leporoltam a server stat scriptemet, amely egyetlen szál Ruby script és célom az egyszerű output.

https://github.com/log69/stat

https://screenshots.firefox.com/yk5yE8FKxbPjhTq3/127.0.0.1

FF / site specific zoom

 ( log69 | 2018. május 21., hétfő - 7:29 )

about:config -> browser.zoom.siteSpecific -> false

(hogy ne az összes azonos domain-en lévő oldalt nagyítsa, hanem csak az adott tab-on lévőt)

Ubuntu 18 / fordított vízszintes scroll

 ( log69 | 2018. május 19., szombat - 20:14 )

Frissítettem 16-ról 18-ra. Jó a rendszer. Egy kisebb bug a touchpad kétujjas scrolljánál, lásd cím. Megoldásom:

https://askubuntu.com/a/1038180/831875

Linux / screen cast

 ( log69 | 2018. május 9., szerda - 16:38 )

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

 ( log69 | 2018. március 24., szombat - 17:41 )

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

 ( log69 | 2018. március 20., kedd - 13:40 )

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.

Kód ellenőrzés AI-jal

 ( log69 | 2018. március 15., csütörtök - 16:43 )

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

 ( log69 | 2018. március 14., szerda - 16:44 )

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()

 ( log69 | 2018. március 13., kedd - 18:35 )

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?

MySQL > MariaDB

 ( log69 | 2018. március 11., vasárnap - 12:57 )

Cseréltem MySQL servert MariaDB-re, mert csak utóbbi tartalmazza a REGEX_REPLACE() függvényt amire szükségem lett:

https://mariadb.com/kb/en/library/regexp_replace/

Fejlesztések

 ( log69 | 2018. március 4., vasárnap - 2:21 )

Felhasználói hierarchia a rendszerben:

level  3 - super admin (server admin, super cow)
level  2 - main admin (registered account)
level  1 - admin (organizational admin, coder)
level  0 - normal (normal user, web app user, chicken)
level -1 - shared (unprivileged user of shared data)

Felület testreszabás

 ( log69 | 2018. február 24., szombat - 14:59 )

Meg akartam oldani, hogy fejlesztők ne csak saját app-okat tudjanak írni, hanem FrontFoo felületébe is tudjanak injektálni saját stílust és kódot, akár HTML objektumokkal.

Fejlesztések

 ( log69 | 2018. február 23., péntek - 18:30 )

git log | grep feature | head -n3

  1. add feature: add auto progress indicator changing background color for api calls
  2. add feature: add new api param "progress" to turn off indicator and add param "color" to set indicator color
  3. add feature: fill values automatically to make api requests more flexible

Példa program

 ( log69 | 2018. február 22., csütörtök - 13:27 )

Ö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)

Livescript

 ( log69 | 2018. február 18., vasárnap - 10:47 )

Coffeescript leszármazottja. Tervezem az átállást. Szép munka Jeremy!

http://livescript.net/#literals

https://en.wikipedia.org/wiki/LiveScript

Fejlesztések

 ( log69 | 2018. február 17., szombat - 13:40 )

git log | grep feature | head -n1

  1. add feature: new api command "code" to call server side code from client side

Fejlesztések

 ( log69 | 2018. február 12., hétfő - 2:23 )

git log | grep feature | head -n4

  1. add feature: purge whitespaces and replace tabs with 4 spaces from the end of every line when ctrl is pressed when saving the code

  2. add feature: letter capitals and white spaces do not matter in the matching pattern for ?replace? command

  3. 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

FF / disable Ctrl+Q

 ( log69 | 2018. február 11., vasárnap - 23:21 )

Á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/reviews/854938/

FF / melyik weboldal mennyi memórát eszik?

 ( log69 | 2018. február 9., péntek - 22:04 )

F12 -> Memory tab -> Take Snapshot gomb

FrontFoo / quickPAD

 ( log69 | 2018. február 4., vasárnap - 11:37 )

Kitettem public-ba példakódot egy esemény követő cuccra. Tudom van zillió jobb megoldás már, ez viszont legalább félkész és nincs lebegő fejléc.

FrontFoo / share code

 ( log69 | 2018. február 3., szombat - 0:08 )

Néhány friss fejlesztésem:

?share? pass parancsot elhelyezve bárhol a HTML kódban megosztásra kerül a kód jelszavas védelemmel, melyet ?include? codeuuid pass paranccsal tudnak beilleszteni mások (itt nem elég a kód név hanem az uuid kell). Saját csoporton belüli user-hez elég az ?include? codename parancs is.

?server? paranccsal szerver oldalon fut le az adott kód kliens oldal helyett. Egyelőre meghatároztam szigorúan dedikált user-eket akik használhatják a parancsot. Viszont szükségem van más user név alól is a kód futtatására kihelyezett kliensről úgy, hogy a user ne tudja megváltoztatni a szerver oldali kódot (szép nagy tervezési hiba lenne), illetve hogy ne kelljen a saját user-em authentikációját kiadni. Auth kulcsokkal meg nem kívánok szórakozni, lévén annyi user-t és úgy hozok létre, ahogy tetszik, illetve minél alacsonyabban akarom tartani a komplexitás szintjét.