Blogbejegyzések

monoBristol - itt a vége (2009-2016)

Van, mikor valamit el kell engedni. Kiadtam az utolsó releaset, ami a desktop fájl francia sorral bővíti (kérte egy srác, hogy tegyem bele) és ezzel bezártam a bazárt.

Le lehet fordítani a tarballt, szóval nagy törés nincs, de javasoltam a francia disztro karbantartónak, hogy írjon egy újat mondjuk Qt-ben.
2009-ben kezdtem fejleszteni, a kódot bárki meglátja, szörnyet hal egyből, ergo ilyen szinten nem kár érte.

Sok zenei disztroban ott van mai napig, ami jó érzés, szinte az első közösségi sikerélményem volt "programozóként".
Irány a jövő :)

Akka, újrafelhasználható Response Collector

Kérés-válasz (request-response) stílusú actor kommunikációnál a tell alapú (Response Collector) kommunikációt javasolják az ask mintájú helyett. Ez leegyszerűsíti az actor kommunikációt úgy, hogy a legtöbb válasz kezelési feladatot egy kitüntetett actor alá helyezi.
Ahelyett, hogy a timeout és hibakezelési logikát több helyre kellene felvennünk az actor rendszerben, az actor-ok egyszerű válaszokat adnak a kérésekre a tell mechanizmus segítségével, mialatt a Response Collector actor a beérkezett elegendő válasz alapján válaszol a kérést feltevőnek illetve kezeli a timeout-ot és az egyéb hibákat.

Tiling WM

Hat hogy en hogy tudtam eddig letezni enelkul? Komolyan mondom.

Win7-re az eddig mar jol bevalt VirtuaWin melle felpakoltam meg a Plumb-ot is, igy mar rogton kellemesebb dolgozni!

Azt sajnalom, hogy OSX-re nem talalok valami jot, az Amethyst-et neztem, meg meg parat, de ez nekem nem all kezre. A Plumb frankon ujrameretezi az ablakokat, ha az egyik meretet noveled, ilyet nem tud az Amethyst, ahogy lattam. Meg valahogy az Aqua se annyira tamogatja ezt. Fullscreen appokkal meg talan meg lehetne csinalni, viszont a Microsoft nagyot szakithatna ezzel, igy meglenne az ertelme a csempes design-nak. Mar van bash is Win 10 alatt, multidesktop is, (3rd party) tiling WM is. Lehet, hogy lassan Win10-et kene raknom az Air-re? :)

Ez már a Winux, vagy még csak félút?

$ gnome-terminal
Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 8

Értem, hogy systemd, freedesktop, hal, udev, dbus, pangocairo, istencsodája; de végülis nem kellene mindennek még működnie is? Szinte új Debian8 ez még...

20160427.1033: Értelmesebb hibaüzenet a /var/log/messages-ből:


Apr 27 10:33:12 hostname org.gnome.Terminal[1453]: Non UTF-8 locale (ISO-8859-2) is not supported!

Unom a spam-eket

Egyre pofátlanabbak a próbálkozások. Most épp meghalt egy rokonunk, aztán eljárás megszüntetve, nyomatékosítás gyanánt a címben Dr. prefix van, meg valami random ügyszámnak látszó dolog. Annak érdekében, hogy hitelesebb legyen, a 2016 is szerepel benne. Ja, meg egy mit csináltál, te állat, hogy az egyszerűbb lelkek is megszólításra kerüljenek.

Mondtam már, hogy uncsi? (Nem szoktam gügyögni, de ide most ez illik.)

Telepítőben telepítő, hát persze, hogy nem megy

Azt hiszem, megfejtettem, bár mérést nem végeztem, nem bizonyítottam az elképzelésemet.

Néha készítek live Linuxot, gondoltam, beleteszem a Broadcom wifi interface-ek jelentős részéhez szükséges wl driver-t. Tekintve, hogy a legfrissebb kernelt használom, készen repóban valószínű, hogy nincsen driver, ugyanakkor létezik az akmods nevű eszköz, amely elkészíti.

A chroot-olt környezetben le is fordítja az akmods a kernel interface-t, az rpm csomag előáll, ám a logban látszik, hogy a dnf nem tudja feltelepíteni, mert zárolva van. Tehát épp fut egy másik dnf. Ez persze érthető, az egész fordítás éppen a wl driver telepítésének hatására indult el. Tehát a telepítő az, ami közvetve az akmods-on keresztül ugyan, de elindítja az előállított rpm csomag telepítését.

16.04 Tapasztalatok

Némi sata kábel hiba miatt elhalt a telepített 14.04-es LTS, így kábelcsere után feltelepítettem az Xubuntu 16.04-et.

Pozitív:

Alapfunkciókhoz nem kellett külső tárolót felvenni, van freshplayer, mpv, icedtea8, nvidia 361, dropbox, thunar-dropbox-plugin, stb. Gyorsan települ, hiba nélkül.

Negatív:

A tárolókban nincs linux-firmware-nonfree. Mpv 0.14-es, az aktuális stabil verzió ha jól emlékszem a 0.17. Freshplayer nem működik, adobe test-en ezt kapom: https://dl.dropboxusercontent.com/u/7339269/HUP/firefox.png
Ráadásul a firefox azt mondja, telepített bővítmény: Shockwave Flash 13.1 r2
Utánanéztem, a peperflash-nonfree nincs telepítve, az install script hibás.

akkor most működik a samba-4.4.2?

No, nagy nehezen fordult, települt, elindult. Akkor most jól működik? Természetesen nem, nyilvánvaló módon.


[2016/04/25 07:49:40.816250,  0] ../source3/smbd/smbXsrv_session.c:1387(smbXsrv_session_update)
  smbXsrv_session_update: global_id (0xf89437c2) store failed - NT_STATUS_INVALID_PARAMETER
[2016/04/25 07:49:40.816455,  0] ../source3/smbd/sesssetup.c:388(reply_sesssetup_and_X_spnego)
  smb1: Failed to update session for vuid=5802 - NT_STATUS_INVALID_PARAMETER

20160428.0746.Szerk: Becsépeltem ide is, hogy megmaradjon.

Frissült Androidon (is) a Xiaomi Mi Band kezelőalkalmazása

A Xiaomi Mi Band-ről részletesen írtam a [Teszt] Egy hét a Xiaomi Mi Band aktivitásmérővel című cikkben. A karkötő kezelőszoftvere már jó ideje megújult iPhone-on, de nemrég az Android tulajok is megkapták a ráncfelvarrott verziót. Benne több újdonsággal, például immár testsúly kezeléssel:

Mi Band Androidon Mi Band Androidon

nmap wtf

Debian 7

apt-get install nmap


The following extra packages will be installed:
  fonts-droid fonts-liberation ghostscript gnuplot gnuplot-nox groff gsfonts imagemagick imagemagick-common libblas3 libblas3gf
  libcroco3 libcupsimage2 libdjvulibre-text libdjvulibre21 libexiv2-12 libgfortran3 libgs9 libgs9-common libijs-0.35 libilmbase6
  libjbig2dec0 liblcms1 liblensfun-data liblensfun0 liblinear-tools liblinear1 liblqr-1-0 liblua5.1-0 libmagickcore5
  libmagickcore5-extra libmagickwand5 libnetpbm10 libopenexr6 libpaper-utils libpaper1 libpcap0.8 librsvg2-2 librsvg2-common
  libsvm-tools libwmf0.2-7 libxaw7 libxmu6 netpbm poppler-data psutils ufraw-batch
Suggested packages:
  ghostscript-cups ghostscript-x hpijs gnuplot-doc imagemagick-doc autotrace cups-bsd lpr lprng enscript ffmpeg gimp grads hp2xx
  html2ps libwmf-bin mplayer povray radiance sane-utils texlive-base-bin transfig xdg-utils exiv2 liblcms-utils liblinear-dev
  librsvg2-bin poppler-utils fonts-japanese-mincho fonts-ipafont-mincho fonts-japanese-gothic fonts-ipafont-gothic
  fonts-arphic-ukai fonts-arphic-uming fonts-unfonts-core ufraw
The following NEW packages will be installed:
  fonts-droid fonts-liberation ghostscript gnuplot gnuplot-nox groff gsfonts imagemagick imagemagick-common libblas3 libblas3gf
  libcroco3 libcupsimage2 libdjvulibre-text libdjvulibre21 libexiv2-12 libgfortran3 libgs9 libgs9-common libijs-0.35 libilmbase6
  libjbig2dec0 liblcms1 liblensfun-data liblensfun0 liblinear-tools liblinear1 liblqr-1-0 liblua5.1-0 libmagickcore5
  libmagickcore5-extra libmagickwand5 libnetpbm10 libopenexr6 libpaper-utils libpaper1 libpcap0.8 librsvg2-2 librsvg2-common
  libsvm-tools libwmf0.2-7 libxaw7 libxmu6 netpbm nmap poppler-data psutils ufraw-batch
0 upgraded, 48 newly installed, 0 to remove and 6 not upgraded.

Ujjgyakorlat: Üres sor ellenőrzése kizárólag shell belső parancsokkal

Én napi feladataimhoz még ma is gyakran közönséges shell scriptet használok. Ilyenkor rendszeresen szükséges ellenőrizni, hogy valamilyen szöveges adatban van-e üres sor. Erre egy egyszerű grep pont megfelelő. Rákeresünk az adatban az üres sort jelentő regexp-re ( ^$ ), és a státusz kód jelzi.

Természetesen ezzel is van baj: létezik még a világban olyan rendszer, amelyiknél a grep nem ismeri a -q opciót, így ha hordozható kódot kell írni, akkor a triviális megoldást bonyolítani kell, és nem a grep-pel, hanem a shell-lel kell eldobatni az esetlegesen megjelenő fölösleges kimenetet. Azaz nem így:


if echo "$VAR" | grep -q '^$' ; then
# van üres sor

hanem így:


if echo "$VAR" | grep '^$' > /dev/null ; then
# van üres sor

A napokban viszont az egyik megoldandó probléma kapcsán elégedetlen voltam a kapott teljesítménnyel, így felmerült bennem, hogy ha a tízezres nagyságrendű fölösleges processz létrehozása helyett (merthogy egy ekkora számban lefutó ciklusban történt mindez) a shell belső parancsaival csinálnám az üres sor ellenőrzését, nyilván gyorsabb lenne a dolog. Viszonylag hamar beugrott, hogy melyek azok a shell konstrukciók, amelyek alkalmasak lehetnek, de valahogy nem nagyon sikerült a működő megvalósítást megtalálni. (Mindezt nehezítette az, hogy mint általában ilyen agymenésekkor mindig, a feladatot úgy szerettem volna megoldani, hogy ne használjak ki valami olyasmit, amit kizárólag a bash ismer - nálam az alap, hogy lehetőség szerint a kereskedelmi UNIX-okban kicsit sűrűbben előforduló Korn-shellben is működő módszert találjak.) Tegnap éjszaka aztán kigyököltem a megoldásokat. A könnyű tesztelés és olvashatóság érdekében shell-függvényt csináltam. Annak neve lehet valami értelmes, kódja lehet a francban a valódi futáshoz képest (tehát nem zavarja az olvashatóságot) - sőt az autoloading function nevű játékkal totál el is lehet rejteni :-) ; szóval az úgy jó.