luni, 13 ianuarie 2014

Experienţe cu Python şi Qt

Lucrez la un client de Yahoo! Messenger, pe care îl scriu în Qt şi Python. Tocmai am rezolvat un bug funny care mi-a reamintit cât de fâşneţ e Qt când vine vorba de managementul memoriei. Aş spune că e unul chiar violent, având în vedere faptul că acesta dealocă tot ce se poate dealoca şi reutilizează tot ce se poate reutiliza.



sâmbătă, 11 ianuarie 2014

Quick fix: sistemul "sacadează" la copierea de fişiere pe/de pe memoriile USB

O altă problemă care şi pe sistemul vechi îmi dădea de cap: sistemul se blochează intermitent la copierea masivă de date pe sau de pe un stick de memorie USB sau card-reader. Problema e cauzată de un feature în kernelul Linux în combinaţie cu calitatea proastă a memoriilor USB, prea lente pentru a face faţă transferului de date. Se rezolvă uşor executând


echo never > /sys/kernel/mm/transparent_hugepage/enabled 
echo never > /sys/kernel/mm/transparent_hugepage/defrag
ca root. Pentru ca modificările să fie definitive,
vedeţi https://wiki.archlinux.org/index.php/Maximizing_Performance#USB_storage_devices.

De asemenea, instalarea unui kernel optimizat pentru sistemele ce folosesc un mediu grafic (cum ar fi linux-pf) poate să ajute mult în acest caz (cel puţin la mine se observă îmbunătăţiri de performanţă).

Edit:
Nope, soluţia de sus s-a dovedit a nu funcţiona pentru mine. Ce s-a dovedit util în cazul meu a fost executarea, ca root:

echo 50331648 > /proc/sys/vm/dirty_bytes 
echo 16777216 > /proc/sys/vm/dirty_background_bytes

Pentru ca fixul de mai sus să se aplice la fiecare boot, creeaţi (sau editaţi) fişierul /etc/sysctl.d/99-sysctl.conf  iar în acesta adăugaţi următoarele linii:
vm.dirty_background_bytes=50331648
vm.dirty_bytes=16777216
UPDATE: dacă valorile nu se setează după reboot, de vină e laptop-mode-tools.

joi, 9 ianuarie 2014

Lenovo M5400 şi Manjaro Linux

De vreo trei săptămâni sunt deţinătorul şi utilizatorul unui laptop Lenovo M5400. Nu o să scriu aici un articol lung despre acesta, ci doar câteva hack-uri pentru a îmbunătăţi compatibilitatea acestuia cu Linux, sistem de operare care - din păcate - nu rulează fără probleme pe acest sistem. Scopul e să ajut vreun utilizator al acestui laptop rătăcit pe acest blog căutând soluţii cât şi să îmi ajute mie, în caz că într-o zi îmi voi reinstala OS-ul.