log69 blogja

FrontFoo / quickPAD

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.

Egy barátom igényére raktam össze, cél volt a minél kevesebb munkával, minél kevesebb klikkelhető logikával és minél kevesebb megjelenített információval a felületen kivitelezni. Lehet opcionálisan határidőt rendelni egy bejegyzéshez és keres fájlok tartalmában (de nem jelzi, hogy a sorból melyik fájlban van a találat). Illetve klikkelhető módosításért a határidős szöveg és a timestamp rész (tudom erre nem hívja fel a figyelmet az UI). Bedobom ide hátha érdekel valakit:

FrontFoo / share code

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.

FF / bookmark toolbar -> bookmark sidebar

Ma kikapcsoltam a bookmark toolbart és bekapcsoltam a bookmark oldalsávot, mert előbbi a weboldalak függőleges helyéből vett el, míg utóbbi a szélességből és ez jobb, mert úgyis több hely van a lapos kijelzőn, illetve kényelmesebb is számomra keskenyebb méretben használni a webet.

Megjegyzem, megszámoltattam a pixeleket, az oldalsó sáv 4.3x több pixelt vesz el a képernyőből az én DPI és egyéb beállításaim mellett :)

Ami baromi jó lenne, ha a tabokat is lehetne balra rendezni az oldalsávba azért, hogy azok se a függőleges helyből vegyenek el. Erre írtam már amúgy feature request-et.

FrontFoo / rest API / server oldali támogatás

Összehoztam hogy ne csak kliens, hanem szerver oldalról is ugyanazzal a kóddal és API-val tudjam elérni az adatokat.

Az alábbi kódból kivéve a ?server? parancsot ugyanazt az eredményt kapjuk. Kicsit trükköznöm kellett, mert a szerver oldali azonosításnál nincs sütim. Megérte gondolkodni rajta, mert 2 sor beszúrásával (süti elküldése a rendszerből a legenerált szerver oldali kódnak) plusz a POST request implementálása NodeJS-ből elegendő volt.

Kimenet itt | dokumentáció



FrontFoo / új feature / uglify (minify) JS + CSS + HTML

Néha sok belső infóval és jegyzettel látom el a kódjaim, ezért éles rendszerbe küldés előtt bizonyos esetekben hasznos és fontos számomra kikapni minden ilyet, illetve gátolni a kód újra felhasználását is (nyilván minden vissza alakítható, de információ akkor is kikerül illetve a hatékonyság romol).

?uglify? parancsot használva eddig csak a script kódoknál tettem meg (Javascript, Coffeescript, Typescript, Babel), mostantól viszont automatikusan megteszem CSS és HTML kódok esetén is.


FrontFoo / új feature / szerver oldali kód futtatása

Kiegészítettem fejlesztői rendszeremet úgy, hogy a webes felületen ne csak kliens oldali kódot tudjak fejleszteni, hanem ha elkerülhetetlen vagy speciális igény van szerver oldali kód futtatására is (például ha egy külső eszköznek akarunk kommunikációt biztosítani a belső rendszerhez vagy csak szerver oldalon elérhető funkcionalitásra van szükség), akkor megtudjam tenni.

Ugyanúgy csak felveszek egy új kódot (szintén lehet sima JS, Coffeescript, Typescript vagy Babel), hozzáadom az oldalhoz valahová a ?server? parancsot és ez JS-re fordítva NodeJS-el fog lefutni szerver oldalon. Így nagyon kényelmes és gyorsan be tudok injektálni logikát további limitek nélkül.

Természetesen nem engedélyezem ezt a feature-t magamon kívül másnak, csak ha valaki megvásárol jogokat a rendszer saját szerveren való futtatására.

Dokumentáció | Minta kód | Weboldal

Ruby / milyen digest-et?


require "digest"

Digest::SHA256.hexdigest("hello")
=> "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
(64 char)
Digest::SHA256.hexdigest("hello").to_i(16).to_s(36)
=> "14bu24ea7cq4jhmrgj4a3jrn1v6vem8ualnohxyeq239y1gobo"
(46-50 char)
Digest::SHA256.base64digest("hello")
=> "LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ="
(44 char)

A második tetszik a legjobban praktikai okokból (olvashatóság, karakterhossz, habár ez utóbbi változik a másodiknál), ugye itt 36-os számrendszerbe konvertálom a kimenetet. A harmadik már nem is jó ha például URL-ben is kell.

G trashed

Dobom az egész G infrastruktúrát részemről ami fiókhoz kötött (mail, video megosztás, chat, személyre szabott keresés). Nem tetszik amit a nagy cégek művelnek. Bug-osak a cuccaik, sync nem jó, szavakra már nem lehet rendesen keresni az agyon okosított algo-k miatt. Illetve ez a témám is hozzájárult:

https://hup.hu/node/156212

Átálltam a svájci fizetős protonmail-re. Remek és jól átgondolt a felület (webapp), jó a mobil app is. Nem olcsó, de jó. Egy felüdülés. Ha más is használja, jöhet tapasztalat.

https://protonmail.com/pricing

Videó megosztáshoz Vimeo, keresésre duckduckgo (pár éve már talán). Chat-en még gondolkodok. Megjegyzéseket szívesen veszek.

Zram #2

Előzmény itt.

Nézegetem jó ideje Zram tömörítésének arányát, és továbbra is úgy van amit írtam egyik előző blogomban, hog 3x és 5x között van a ráta. Mindegy milyen fajta a felhasználás (VM, játék, egyéb). Sőt, mivel custom Live ISO-ba is beletettem alap csomagként, így teszteltem kisebb memória kiosztással (2G és 1G) és a VM-ben futó guest OS memóriájánál is ezt a rátát látom.

Ugye zram-config csomag telepítésével (kell egy reboot) létrejön pár új blokk eszköz zram0, zram1 stb néven (lásd lsblk parancs), melyek összesen a fizikai RAM felét fogják megkapni. Alapból nem foglal memóriát a megoldás és a fizikai memória és a lapozó fájl közé illeszkedik be logikailag, vagyis:

FF / Android / min font size

about:config / font.minimum-size.x-western = 21

Egy ilyen alap dolgot miért nem lehet kivezetni UI-ra? Pár pixeles betűk jelennek meg alapértelmezetten sok oldalon. Régebben mondjuk ki volt vezetve, csak nem volt hatása ahogy Chrome alatt sem működik. Mindegy, biztos fontos mérnöki vagy üzleti okok vannak mögötte :)

(Küldtem feature request-et)

FF / YesScript2 / 3.1

Tovább gondoltam a kiegészítőmet és változtattam a működésen.

Az eddigi 2 állapot helyett most már 3 állapotú a kapcsoló:
- nincs blokkolás (szürke ikon)
- fél blokkolás (belső scripteket engedi míg a külsőket blokkolja, kék ikon)
- teljes blokkolás (minden scriptet blokkol, vörös ikon)

Tesztelést és visszajelzést szívesen veszek. Jelige: "blokkolnám" ;)

https://addons.mozilla.org/addon/yesscript2/

FF / YesScript2 v2.6

https://addons.mozilla.org/addon/yesscript2/

* new platform: mobile (Android)

Remarks for debugging:

Debug for foreground scripts:

Firefox -> Console (F12)

Debug for background scripts:

1) disable firewall on desktop
2) open WebIDE on desktop (shift+F8)
3) open Firefox on mobile and enable remote debugging via WiFi (Settings / Advanced)
4) click "RUNTIME APPS / Main process" in WebIDE (left side)
5) open console for "Main process" (F12)

Ubuntu / custom live

https://launchpad.net/cubic

Kellett saját live rendszer, nagyon jó. Fedoránál támogatott és elég egyszerű, viszont Ubuntu-hoz nem igen volt jó eszköz. Teszteltem, teljesen jó. A legyártott ISO-mat is újra tudtam generáltatni egy update-tel, nem kell mindig újra csinálni nulláról.

Készítés közben kapunk egy chroot parancssort, aminél lehet csomagokat telepíteni, frissíteni, saját fájlokat és script-eket betenni (nem homa-ba kell hanem /usr/local/ ajánlatos, ott meg lesz a live-ban) és akármi más. Egyszerű és kényelmes.

(zram-config csomaggal sem volt gondja, a live rendszerem boot-olva mondhatjuk megnégyszerezi a fizikai RAM-ot a gépben.)

FF / wishlist

Az alábbit küldtem be Mozillának:

http://input.mozilla.org/feedback/

Dear Mozilla Dev Team,

Please consider the following:

Ctrl+W and Ctrl+Q are very close on the keyboard and sometimes we make mistakes hitting Q when intending to close a window only. Though I can set FF to reshow windows and tabs from the last time, it's still a pain cause there are a lot of dynamic content on the web that the browser will not be able to scroll back to (social media searches, paused videos etc). There is a setting in about:config: browser.warnOnQuit that says whether to confirm exiting. However it does not work when windows and tabs are set from last time. The setting is superfluous in this case. It could have the meaning to ask confirmation in this case too without breaking any backward compatibility. There has been a legacy addon for it too so many people felt the need for this. Please you consider it too.