log69 blogja

FF 31 / browser.tabs.closeButtons removed

http://kb.mozillazine.org/Browser.tabs.closeButtons

Ezt vajon miért? Mindig 1-es értékkel használtam, hogy csak ott legyen X a tab bezárásához, amit éppen nézek, mert egyébként sokszor félre klikkeltem és véletlen bezártam pici tab-okat amikor sok volt nyitva.

Kiegészítőt ajánlanak helyette, de azt nem fogok feltenni.

F20 / HDMI hang megy

Régebb óta nem ment az asztali gépemen a hang HDMI kábelen keresztül a TV-re kötve. Most figyeltem fel rá, hogy egy friss Fedora 20 x64 alól már rendben megy (Gnome 3 felület). Emlékeim szerint még Ubuntu 12 alól sem ment. 14-et nem próbáltam.

Másnak milyen tapasztalatai vannak? Szokott rendben menni a HDMI hang és csak nekem van kicsit különleges hardverem?

Automatikus top lista algoritmus #2

Előzmény itt.

Használom ezt a megoldásmat, és arra jutottam, hogy még jobb, ha kibővítem egy olyam limittel, hogy a linkeket csak addig íratom ki, amíg a delta idő értékek egy maximum alatt vannak.

Ugye van egy listám a megnézett linkekkel. Ezekhez csak a megtekintés időpontját tárolom, és ezen időket sorba rendezve képezek egy olyan listát, ahol az idők különbségét nézem az aktuális időhöz képest. Vagyis azt, hogy mostanhoz képest mennyi másodperccel régebben volt megtekintve egy link.

Ehez az előzményekben leírt algoritmusom alapján generálok egy olyan top listát (leggyakrabban nézett linkek), ahol igényem volt az, hogy ne legyen se rövid, se túl hosszú ez a lista - mert különben egyszerű lett volna csak simán sorbarendezni idő szerint és levágni egy fix értéknél, hogy pl. csak a top 5-öt mutatom. De én kicsit okosabban akartam ezt.

FF / form kitöltő / leggyakrabban használt ill. legújabb érték

Célom, hogy a form kitöltő a legújabban elküldött értékeket hozza fel a listában a leggyakrabban használtak helyett. Azért, mert felhasználási szokásomat nézve ez előbbi a gyakoribb érték, amelyet be kell gépelnem. Lehet másnál is így van?

Az about:config menüben a "formfill" keresőszóra adott beállításokat találtam csak erre vonatkozólag, és ott mindegy milyen súly értékekkel játszottam, csak az alábbi ad megoldást az igényemre, és csak úgy, hogy a legújabb értékek legalul lesznek a listában, nem pedig legfelül - sebaj, lefele nyíl helyett felfelét nyomok.

XFCE-hez task switcher: skippy-xd

Exposé jellegű full képernyős program választó X-hez relative kevés függőséggel. Gyors apró C program.

http://code.google.com/p/skippy-xd/
https://github.com/richardgv/skippy-xd

Fedora 20-on az alábbi függőségek kellettek:
giflib-devel
libpng-devel
libjpeg-devel
libXft-devel
libXinerama-devel
libXcomposite-devel
libXdamage-devel

Az Arch Linux-os AUR-on ott vannak a pontos függőségek:
https://aur.archlinux.org/packages/skippy-xd/

Fedora csomag sajnos nincs.

[code]
cd ~/bin

git clone https://github.com/richardgv/skippy-xd

cd skippy*

make

mkdir ~/.config/skippy-xd
cp skippy-xd.rc-default ~/.config/skippy-xd/
nano ~/.config/skippy-xd/skippy-xd.rc

Automatikus top lista algoritmus

Szükségem van az alábbira:

Adottak felhasználók által meglátogatott linkek. Ebből van "n" darab. Tárolom hogy melyik linket mikor látogatták meg utoljára.

Egy oldalon megjelenítem a leggyakrabban használt linkeket ezek közül. Viszont nem egy hosszú top listát akarok nyomtatni az utolsó látogatás ideje alapján, hanem automatikusan röviden akarom tartani ezt a listát. Végül az alábbi algoritmust terveztem meg:

Azt vizsgálom, hogy a linkek látogatási ideje között mennyi idő telt el és ezt nevezzük "idő"-nek. Sorba rendezem a linkeket idő szerint, majd a legújabbtól a legrégebben látogatott felé haladva az alábbit csinálom:

SELinux sandbox + keyboard layout

Sandbox-ban futtatott app-oknál nem működik alapból az Altgr billentyű funkció. Tehát magyar kiosztással nem lehet például @ vagy & jelet írni. Ez régóta így van, kezdve régebbi Fedoráktól vagy SL / CentOS 6-tól is. Példa:

su -c "yum install policycoreutils-sandbox"
sandbox -t sandbox_web_t -X -- firefox

Érdekes módon egy "setxkbmap hu" parancs futtatása a sandbox-on belül megoldja a problémát (xterm-mel tesztelve). Gyakorlatilag Xephyr-t kellene paraméterezni, de arra meg nem találtam infót sehol neten vagy doksikban, hogy ezt hogy lehetne megmondani a sandbox eszköznek.

XFCE / Run or Raise

Vissza álltam XFCE-re. Gyors, szép, sokat tud.

Egyetlen dolog hiányzik nekem, amelyet már pont le akartam programozni, de találtam kész megoldást. Azt szeretném, hogy ha egy program ikonjára klikkelek, akkor a már futó program ablakát hozza előtérbe és kapja meg a fókuszt. Ha nem fut, akkor pedig indítsa el. Mint a Unity-nél is az ikon klikk.

Alább találtam megoldást:

http://vickychijwani.github.io/2012/04/15/blazing-fast-application-swit…

Egyetlen csomag kell (van alapból minden disztróban elvileg): wmctrl

Linux / terminate process tree

Csoport azonosítóval (groupid, gid) lehet leállítani folyamatot és alfolyamatait, viszont nem biztos hogy a leállítandó folyamatunk a legmagasabb szülő, és így a csoport kilövésével nem kívántakat is leállíthatunk.

Arra kerestem megoldást, hogy egy folyamatot úgy állítsak le, hogy csak erre és az összes gyermek folyamatára vonatkozzon.

Megoldás itt:
http://stackoverflow.com/questions/392022/best-way-to-kill-all-child-pr…

Vagyis:

kill -- -$( ps opgid= $PID | tr -d ' ' )

Érdemes elolvasni a magyarázatot amit az emberke ír, mert elsőre nem egyértelmű.

Ruby uuid

SecureRandom.uuid helyett saját formátumú uuid kellett, pl. csak szám, és az epoch time legyen az eleje, hogy sorba rendezve látszódjon, hogy melyik lett előbb létrehozva.


# generate uuid with only numbers based on time and random numbers
# it is made sure that the time part ends with zero
# so no chance for a step back in time because of the random part
# result is minimum 20 char long (17 time and 3 random)
def get_uuid_number(len = 20)
	len = 20 if len < 20
	t = Time.now.to_f.to_s.gsub(".","")[0..16]
	r = ""; 100.times{ r << rand.to_s[2..-1]; break if r.size >= len - 17 }
	return t + "0" * (17 - t.size) + r[0..len-18]
end

Ruby

Ruby 2.1-en teszteltem az alábbiakat.

http://www.sitepoint.com/guide-ruby-collections-iv-tips-tricks/

Véletlen adatokat tartalmazó tömbnél pl. az alábbi helyett:

(1..20).map{rand(100)}

ez gyorsabb:

Array.new(20){rand(100)}

[42] pry(main)> Benchmark.realtime{ 100000.times{ a = (1..20).map{rand(100)} }}
=> 0.802904685
[43] pry(main)> Benchmark.realtime{ 100000.times{ a = (1..20).map{rand(100)} }}
=> 0.807004722
[44] pry(main)> Benchmark.realtime{ 100000.times{ a = Array.new(20){rand(100)} }}
=> 0.698779995
[45] pry(main)> Benchmark.realtime{ 100000.times{ a = Array.new(20){rand(100)} }}
=> 0.691444354

Ruby 2.1

Pár napja megjelent:
https://www.ruby-lang.org/en/news/2013/12/25/ruby-2-1-0-is-released/

Új verzió számozási séma: a MINOR érték minden karácsonykor nő 1-el ;)

Változások:
https://raw.github.com/ruby/ruby/v2_1_0/NEWS

Forrásból fordítom minden platformon. Jelenleg ruby-prof szerint közel 20 %-al gyorsabb nálam az új 2.1.0 mint 1.9.3p484 (gép, rendszer és környezet ugyanaz).

Ami érdekes viszont, hogy a webapp-om kimenetét nézve FF böngészőből a dev tools azt mutatja, hogy 10 %-al lassabb, mire megérkezik a HTML kimenet. Valamiért a profiling eszköz nem valós adatot mutat. Ezt még kutatom.

BtrFS tapasztalatok

Hosszabb használat után ma összedőlt (Ubuntu 13.04 x64). Fsck sem tudta megjavítani.

Tudni kell hogy a hiba sok működés közbeni kikapcsolás után jött elő (fagy a gép naponta többször és csak a hideg reset segít). Adat ment vissza backup-ból.

Android: Dolphin böngésző vs Opera

Tegnap jött egy frissítés Dolphin-hoz. Azóta nem jegyzi meg a jelszavakat. Adatok törlése és újratelepítés sem segít. Sajnos ez volt az egyetlen használható böngésző táblagépen, mely használhatóan tudott szöveget újratördelni nagyításkor.

Ma viszont visszatették Operát a Google Play-be és megjelent egy új verziója. Ugye az előző Webkit-re épülőt kivették mert annyira gyalázatos volt és nem is volt elérhető. Viszont a mai verzió kisegített, mert sok számomra hiányzó igényt kielégít:

- szöveg tördelése, ráadásul nem kell dupla tapi, hanem a zoom után azonnal átméretez (tudni kell hogy a pár verzióval ezelőtti Firefox-ban ez benne volt, de kivették!! az egyik frissítésnél) - picikét bug-os, de nem vészes
- enged nagy mértékű nagyítást hatalmas betűkkel
- gyors lett a render és a page scroll
- linkről fájl letöltés működik úgy, hogy meg is nyitható a fájl ezek után (ezt még Chrome sem tudja, sem Dolphin vagy egyéb, FF-nél megy)
- jó a letöltés kezelője

AppArmor szigorú Firefox profil

Habár Ubuntu szállít gyárilag is Firefox profilt AppArmorhoz, szerettem volna egy include-ok és előre gyártott sablonok nélküli szigorúbb sajátot, mely számomra áttekinthetőbb és dbus hívásokhoz nem ad engedélyt.

Fájl elérhető itt (magyarázat a használatra a fájl elején):
https://github.com/log69/myscripts/blob/master/etc/apparmor.d/usr.lib.f…

Ubuntu 13.10 x64 alatt tesztelem több flash-es weboldallal. Ha valakit érdekel és segítene a tesztelésben és javításban, azt megköszönöm.

Git diff colors

Régóta kellett volna már testre szabnom a diff kimenet színeit, hogy fehér háttéren olvashatóbb legyen. Most vettem az időt és utánanéztem mit lehet és mi lenne jó. Global konfigom idevonatkozó része (~/.gitconfig):


[color "diff"]

        # accepted values are:
        # normal black red green yellow blue magenta cyan white
        # bold dim ul blink reverse

        meta = black bold
        frag = reverse
        old = white red
        new = white blue

Geany + bookmark plugin

Régebben az egyetlen dolog, ami Geany-ből hiányzott nekem az az volt, hogy elmentse a bookmark-jaimat a fájllal együtt. A forrásban sok megjelölt pont elvesztése a fájl újra megnyitásánál sok felesleges munka és energia veszteség.

Úgy látszik ezt megoldották a geany-plugin-numberedbookmarks kiegészítővel.

Használat: bookmark létrehozás: ctrl+shift+(0..9), könyvjelzőre ugrás: ctrl+(0..9)