Tag Archives: linux

ammit

De ceva vreme am tot cochetat cu invatatul de Python in contextul dezvoltarii de chestii web based (sa le zicem servicii). Pentru ca am tot felul de idei, da nu prea stiu programare, m-am apucat sa fac experimente micute sa inteleg cum functioneaza treburile, cum se leaga componentele intre ele si alte lucruri din astea super de baza.

Unul din experimentele astea se cheama Ammit si  este un URL shortener foarte basic bazat pe Bottle si Redis (via redis-py). Poate fi rulat ca aplicatie UWSGI din nginx. Ce e comis pe GitHub, ruleaza ca si standalone app pentru testare/dezvoltare.

GitHub il folosesc ca sa invat de stuff cu git si version control.

pyodbc & centos 6

Pe CentOS 6, versiunea de pyodbc este 2.1.7 si are un mic bug atunci cand are de interoperat cu baze de date care tin mortis sa dea datele encoded UTF-16 si face double-encoding la orice rezultat primit de la baza de date in urma unei interogari, daca ruleaza pe un sistem pe 64 de biti (cam asta am inteles io din descrierea problemei).

Descrierea BUG-ului se afla la https://code.google.com/p/pyodbc/issues/detail?id=78 iar rezolvarea se face prin modificarea unei singure linii de cod si stergerea unei litere :)

La http://www.imacandi.net/sin/blog/wp-content/uploads/2015/09/pyodbc-2.1.7-1.el6.x86_64.rpm se gaseste un RPM cu pyodbc patchuit si recompilat.

Cu ocazia asta mi-am adus aminte si de cum se foloseste rpmbuild.

open air 2015

Din categoria sa se mai intalneasca si linuxarii la o bere, weekend-ul asta am fost la o iesire  cu diversi oameni pe undeva pe langa Bran sa ne relaxam, sa discutam una alta de diverse chestii care au mai mult sau mai putin de a face cu calculatoarele si sa ne plimbam pe munte.

Vineri a fost light, toata lumea obosita dupa drum, cu discutii din astea mai mult despre companiile mari si rele care abuzeaza consumatorii si angajatii. Dar goosfraba, si lasat ignorantii in lumea lor.

Sambata m-am trezit fara nici o durere de cap, doar un pic nedormit ca am avut un sforaitor in camera si camera era pe partea cu soarele si s-a facut cald repede de tot si a devenit nasoala atmosfera.

Pe la 11 asa am luat-o incetisor la o plimbare pe munte sa vedem natura si ce alte chestii se mai pot vedea pe munte. Si am mers asa pana am gasit o scurtatura spre unii din grup care o luasera inainte. Si dupa un pic de gandeala am zis sa ne luam dupa o femeie si sa mergem inainte ca stie ea cum ajungem inapoi unde stateam. Si am mers, si am mers, si am mers. Am gasite niste poteci, niste alti munti, niste paduri, am gasit un izvor cu apa care avea gust de oaie, niste alte poteci. La un moment dat am zis sa facem o chestie nu foarte barbateasca, si anume am dat de un om intr-o curte si l-am intrebat cu cum ajungem unde vroiam noi sa ajungem. Anyway, long-story short dupa vreo ~10-12km asa si vreo 4 ore jumate am ajuns inapoi la pensiune.

Noroc ca mi-am luat sapca cu mine ca altfel o sugeam maxim ca a fost un soare puternic de nu se poate.

La cabana am bagat ca spartul si pe nerasuflate in mine vreo 3 farfurii de ciorba de fasole cu afumatura si tot as mai fi mancat ceva.

Am ars-o aiurea pana mai pe seara cand a venit cina unde iar am mancat ca spartul de foame ce-mi era dupa tot mersul pe coclauri. Contrar experientei trecute, am mancat berbecut facut la protap fiind convins de cineva ca berbecul e diferit de oaie :)

Seara in timp ce vorbeam cu un prieten de ce-am vazut la o expozitie prin Bucuresti, de ce jucarii foloseam cand eram copii am zis si ‘aveau planurile de fumigena’. Si asa ni s-au facut ochii mari la amandoi, ca staniol aveam ca mancasem niste ciocolata iar pensiunea avea o masa de ping-pong. Si uite asa am ciordeles una din mingiile de pingpong si ne-am pus pe treaba. Pentru ca nu mai stiam cum se face am cautat pe youtube tutorial. Primul film incepea cu “… se ia azotat de amoniu si…”. Acolo l-am oprit ca povestile care incep cu “azotat de amoniu” se termina cu “… si pensiunea a explodat”. Adica faceam fumigena, da un pic cam mare decat ne-am fi dorit. Si in plus era noapte si nici azotat nu aveam. Asa ca am trecut la al doilea filmulet unde era ce cautam.

Dupa un pic de munca am asamblat fumigena, ne-am intors cu ea la masa si dupa o prima tentativa esuata de a-i da foc, a doua oara a luat-o si am aruncat-o pe sub masa. Unii nu prea stiua care e treaba, altii cu “hai ba sin, ce pula mea” si unul a dat-o cu “mmm, mirosul copilariei”. S-a disipat repede fumul ca eram pe terasa si dupa aia ne-am continuat discutiile pana cand aproape a rasarit soarele.

Am reusit sa dorm vreo 3 ore, dupa care mic dejun, salutat lumea si inapoi spre casa. Pe DN1 am mers bara la bara cam de pe la cativa kilometri de la iesirea din Predeal spre Bucuresti pana dupa Busteni.

Am ajuns pisat pe mine e oboseala, dar am mai rezistat eroic vreo doua ore pana m-am luat somnul pe la 5 si ceva asa.

Care somn nu m-a tinut mult pentru ca a inviat berbecul in mine si m-am trezit cu un rau si-o greata de m-a facut muci complet. Mai rau ca atunci cand beam de uitam cum ma cheama :( Dupa cum ziceam mai devreme, nu m-a dus mintea sa stau departe de oaie :((

Azi am ars-o la orizontala, pe la 3 asa am putut sa bag ceva mancare solida in mine si sa nu mi se mai faca greata.

Daca nu ma manca in cur sa fiu viteaza cu oaia, cred ca ar fi fost super ok toata treaba.

beghepe beghepe

De ieri pana azi am behait pe langa o banala problema de BGP intre doua linux-uri pe care ruleaza Quagga. Sesiunea se ridica, se reseta si dupa aia ca la budist, ciclul se repeta.

Da-i cu tcpdump, da-i cu debug in Wireshard, ce-are, ce-are. Nu-mi sarea nimic in ochi iesit din comun. Config la fel pe ambele routere, verificat linie cu line, totul in oglinda. Da tot nu mergea.

Azi dimineata m-a pocnit, quagga de capul lui nu-si pune totdeauna router-id corect si atunci foloseste 0.0.0.0. Eh, 0.0.0.0 pe post de router-id nu e chiar cea mai fericita optiune si se pare ca e chiar invalida conform RFC-ului, asa ca dupa ce-am schimbat router-id la o valoare mai apropiata de adevar, s-a ridicat instanat sesiunea si acu sunt si io fericit ca merge stuff-ul cum trebe :)

upgrade server LUG

A venit vremea ca serverul ce deserveste serviciile *.lug.ro sa fie actualizat la o configuratie mai din zilele noastre.

De aceea, pentru cine citeste acest blog a folosit sau foloseste serviciile lug.ro este invitat, daca se poate si in masura posibilitatilor sa faca o mica donatie in contul Asociatiei ProLinux pentru a strange banii necesari achizitionarii serverului respectiv.

La adresa http://wiki.lug.ro/mediawiki/index.php/Hardware_Requirements (inclusiv pagina de discutii) puteti vedea configuratia stabilita.

Mesajul care contine si datele bancare ale asociatiei poate fi gasit la http://lists.lug.ro/lurker/message/20100324.175956.be8fe057.en.html.

In alta ordine de idei, dati stirea mai departe sa se mai adune oameni care sa contribuie la ajutorarea comunitatii.

Multam fain.

mysql & oracle

De ceva vreme Oracle tot incearca sa-i cumpere pe Sun. Si de ceva vreme ba s-a opus Departamentul de Justitie in SUA, ba Comisia Europeana in Europa. Cica chestii antitrust, c’ar fi nasol daca Oracle ar avea si hardware pentru bazele de date. Departamentul de Justitie a zis ca OK, Oracle poate face plata. UE inca se mai caca in sus in aceasta privinta – ca se pare ca apucat-o dragul de MySQL si despre soarta lui in mainile lui Oracle.

MySQL e GPL. Se face fork si se continua dezvoltarea fara probleme. Nu stiu ce pisici e asa greu sa priceapa si Comisia Europeana.

Si ca sa fie treaba treaba, gigi ala de’a facut MySQL prima oara pune gaz pe foc ca vai, Oracle o sa puna gheara pe MySQL si ca o sa ceara bani pe el and stuff si ca o sa fie monopol. Asta avand in vedere ca MySQL in continuare e GPL, asa ca nu e nimic oprit sa si-l dezvolte in continuare daca vrea sa-l foloseasca. Si uite asa s-a apucat el de impartit panica pe ici si pe colo impotriva lu Oracle.

Ce uita el in schimb e ca a vandut MySQL lui Sun acu ceva timp pentru 1 miliard de verzisori. Si cu miliardul ala de verzisori in buzunar si-a pierdut dreptul de a-si da cu parerea in privinta a ce se intampla cu MySQL. Simple as that.

Parerea mea e ca e un ipocrit si jumatate, dupa ce-a bagat banii in in buzunar de la Sun sa chitatie ca ce nasol ca o sa fie vandut mai departe la Oracle. De fapt, pe langa faptul ca e ipocrit, e si nesimtit cu chitaiala asta.

Lumea zice c’ar fi de fapt inca una din metodele de competitie corecte practica de Microsoft in razboiul bazelor de date. Si ca Monty ala ar fi luat ceva verzisori si de la MS sa produca atata FUD. Nasol cand iti intuneca banii mintea. Sau ura chioara fata de un vendor anume.

[geek stuff] iscsi micro howto

Stand io aseara pe #mumu (ca orice geek care se respecta sambata seara) am prins o discutie de iSCSI over IPSec over Wireless over ADSL. Anyway, ideea era ca merge – incet, repede, mergea.

Si brusc m-a pocnit ideea: ce-ar fi sa pun si io iSCSI pentru backup-uri. Si’am pus. E click click toata jmecheria: exporti niste partitii sau fisiere mari de tot care vor fi un fel de imagini de discuri (cum e cazul meu unde am o partitie maaaare de tot pe care n-o pot micsora).

La mine setupul a fost asa: Linux (target) – router … ISP Cloud … router – Windows server (initiator).

Pe Linux a facut doua imagini mari si late de cate 500GB cu dd:

dd if=/dev/zero of=issci_1.img bs=4M count=128000
128000+0 records in
128000+0 records out
536870912000 bytes (537 GB) copied, 2991.13 seconds, 179 MB/s

Dupa care imaginea asta am exportat-o cu tgtd. tgtd asta face parte din scsi-target-utils-0.0-5.20080917snap.el5 (CentOS 5.3).

se editeaza /etc/tgt/targets.conf si se baga cateva linii acolo:

<target iqn.2009-01.domeniu.ro:tgtd>
backing-store /iscsi_export/iscsi_1.img
</target>

Dupa care /etc/init.d/tgtd start. Da, stiu ca se poate face si cu atentificare and stuff, insa io nu l-am putut convinge pe Windows sa se autentifice si nici target daemon-ul nu are documentatie.

Pe Windows se downloadeaza si se instaleaza Microsoft iSCSI Initiatior tools. Dupa care se ruleaza, se adauga serverul de discovery – in cazul meu numele de DNS sau adresa IP a serverului Linux, se face “Log on…” pe volumul exportat si se porneste Disk Management care va vedea un nou disk in sistem de 500GB pe care ne va ruga frumos sa-l initializam si sa facem partitii pe el.

Io am facut o singura partitie, pe care ma screm sa fac backup la stuff. Azi am rulat primul backup de test si avand in vedere ca reteaua intre Windows (initiator) si Linux (target) este de 100Mbps, am avut rezultate foarte imbucuratore:

iscsi_ntbackup_transfer_rate

Adica ~ 124GB in 4 ore si ~ 20min.

Dintr-un motiv numai de Microsoft inteles, varianta de 64 de biti a iSCSI initiator pentru Windows 2003 64bit necesita restart la server. Aia pe 32 de biti pentru Windows 2003 32bit nu are nevoie de reboot.

Acu mai trebuie sa invat niste Windows Scripting sa rezolve niste chestiuni, si-o sa am si io backup cum trebuie fara sa ma doara creierul foarte tare.

mysql replication, click click

Azi dupa multa vreme am mai adaugat un slave intr-o configuratie de mysql master-slave si a fost foarte “click click”. Pe vremea mea(tm) trebuia sa faci nustiucate operatii pana ieseea cum trebuie. acu tre sa ai doar baza de date si definitia tabelelor si gata, problem solved.

mysql> start slave;

Am pierdut mai mult timp incercand sa fac cum stiam io decat sa citesc cu atentie ororile din loguri.

casa noua la blog si wiki

O data cu realocarea unor resurse, am gasit si casa noua la blog. Ca nu prea mai mergea pe platforma veche, mai ales cand se napusteau spambotii la vizitat blogul.

Asa ca am plecat de la P3 si am ajuns la dual P4 Xeon. De la 512M RAM la 1G RAM. De la HDD IDE la SCSI 15k RPM. De la un singur HDD la RAID-1, ca vorba aia… pornul are nevoie de redundanta :)

Cum io in ultima vreme m-am dat foarte mult pe chestii click-click, am schimbat OS-ul de la Debian GNU/Linux la CentOS din motiv ca CentOS-ul in Xen s-a instalat mai repede si mai automat decat ce artificii aveam de facut pentru a pune un Debian in domU. Acum am doua masinute: un CentOS (rogue) si un Debian 5.0 (cyclops).

Ce s-a stricat la upgrade a fost MediaWiki, unde se pare ca versiunea de o aveam io nu prea functiona bine cu PHP 5.3.0 asa ca a venit si momentul mult asteptat de upgrade la 1.15.1. care a decurs cu succes.