duminică, 29 noiembrie 2009

Install grub from liveCD from scratch

Scenario: I just installed Slackware, it gave an error during the LILO install, and I wantet grub anyway. So what to do?

I put in an Ubuntu liveCD (the only one I had around), and then run the following commands (assuming sda2 is where the install is):

sudo -s
apt-get install grub
mkdir /mnt/sda2
mount /dev/sda2 /mnt/sda2
mkdir /mnt/sda2/boot/grub
cp /usr/share/grub/i386-pc/* /mnt/sda2/boot/grub
grub
> find /boot/grub/stage1
> root (hd0,1)
> setup (hd0)
>quit
gedit /mnt/sda2/boot/grub/menu.lst


And you then have to create the menu.lst. I made a quick and basic one for now, here's what it looks like:

default 0
fallback 1

title Slackware
kernel (hd0,1)/boot/vmlinuz root=/dev/sda2

title Windows
root (hd0,0)
makeactive
chainloader +1

Good luck :P

joi, 5 noiembrie 2009

Acer Aspire 5520G review

Acum un an+ a fost promotie mare, laptop Acer Aspire 5520G la un pret bun pentru performantele lui (AMD Turion 1.9GHz, nvidia GeForce 8600M, 2gb RAM), gaming laptop, ce mai, f smeker, tot imi sponsorizau rudele cumpararea unui laptop, hai sa-l iau. Eu si inca o gramada de persoane, desigur.

Intr-adevar, laptopul era dragut, si mergeau jocuri gen Call of Duty 4 foarte bine pe el... foarte bine pentru prima jumatate de ora, desigur, dupa se supraincalzea si performantele scadeau semnificativ, era putin lag si low fps dar era ok.

Intre timp, absolut toti oamenii pe care ii cunosc si si-au cumparat modelul asta au avut probleme cu el. Ca nu mai merge cd drive-u, ca nu mai merge tastatura, ca se strica incarcatorul, etc. Am fost surprinsa, al meu in ciuda supraincalzirii (care oricum se intampla doar sub windows cand ma jucam, sub linux era ok), nu avea nimic, mergea perfect. Am zis ca poate au avut probleme ca nu au avut grija de el.

Acum, 1 an mai tarziu si dupa ce a iesit din garantie, surprize surprize: laptopul se supraincalzeste din ce in ce mai rau. Oricum am desktop nou, si ma joc pe el, nu mai folosesc laptopul pentru asta, el ajungand sa fie folosit doar ca sa stau pe mess si skype in timp ce ma joc... dar se pare ca nici de asta nu mai e in stare, se supraincalzeste si se stinge! Si am zis ca initial problema era doar sub windows, da? Eh, acum ii dau frumos un distribution upgrade la linuxu meu si in mijlocul instalarii pachetelor.... imi zice frumos k a ajuns la temperatura critica de 79 grade C si ca se va stinge (!!!!).

Cu un linux nefunctional si un windows semifunctional, ma gandesc hai sa-l desfac sa vad poate o fi intrat praf si daca il curat e ok... pe dreq, praf prea mult nu avea, decat f putin pe cooler. Btw, cooleru e pus pe placa video, procesorul nu are decat o chestie de metal care teoretic ar trebui sa conduca caldura spre exterior. Nu are nici macar o amarata de gaura sa iasa aerul in dreptul lui! Efectul: plastic cu culoarea schimbata in dreptul procesorului si in inca cateva locuri.

Ma gandesc sincer daca are vreun rost sa ii iau un cooling pad sau sa-l arunc si sa ma impac cu ideea ca e mort... Mi-e si frica sa ma apuc sa instalez ceva pe el sa nu ma trezesc ca se stinge in timpul instalarii si devine 100% functional... poor little baby...

Anyway, concluzia: sfatul meu e sa nu va luati acer!

sâmbătă, 31 octombrie 2009

Pentru fumatorii idioti

Warning: rant si limbaj inadecvat minorilor.

Un alt exemplu care ma face sa imi pierd speranta in omenire ca au cacat pe post de creieir.

Dragi fumatori care au creierul format dintr-un singur neuron singuratic, postul asta e pentru voi. Ok, inteleg ca fumati, si eu fumez. Inteleg ca fumati pe balcon, si mie imi place sa fac asta, nu afum casa oamenilor si e un peisaj mai placut. Inteleg ca va e lene sa luati scrumiera, sau poate nu are omul in casa, si aruncati tigarea aprinsa de pe balcon, si eu mai fac asta uneori. DA UITATI-VA DREQ UNDE O ARUNCATI SA NU TREACA NIMENI PE STRADA, PISAM-AS PE MAMA VOASTRA CA NU V-A INVATAT SA AVETI GRIJA CE FACETI CU CEVA CARE ARDE!

Ma refer in particular la mama ta, handicapatule care sta pe Alexandru Obregia la blocul din dreptul statiei Aliorului, care acum jumate de ora a aruncat tigarea aia. Am ditamai gaura in ghiozdan momentan din cauza ta, fir-ai al dreq, si zic mersi ca nu a cazut tigarea prin gaura, ca aveam si un laptop acolo, si daca cadea pe laptop, sunt foarte sigura ca e cam ilegal ce ai facut, si da, sunam la politie, si te asigur ca te gaseau. Daca citesti postul asta, in orice caz, imi datorezi un ghiozdan nou!

Morala: copii, fumati, faceti ce vreti cu tigarile, dar aveti dreq grija sa nu dati foc la nimic!

marți, 13 octombrie 2009

Linux Kernel fun

Recent am dat de articolul asta, si am realizat ca kernelul de Linux este o sursa foarte buna de divertisment pentru cei care au timp de pierdut...

Deci, daca va plictisiti, downloadati codul sursa (daca nu il aveti deja :P ) si dati un egrep -ir "cuvant" * pe el, inlocuind desigur "cuvant" cu ceva creativ, and have fun :P

Cateva chestii dragalase pe care le-am gasit in 2.6.28:

arch/x86/kernel/visws_quirks.c :
*What lunatic came up with this shit?
arch/sparc/lib/checksum.S :
/* Sun, you just can't beat me, you just can't. Stop trying,
* give up. I'm serious, I am going to kick the living shit
* out of you, game over, lights out.
*/

drivers/video/sis/sis_main.c: #ifdef STUPID_ACCELF_TEXT_SHIT
net/ipv4/tcp_input.c: * all the algo is pure shit and should be replaced
sound/pci/ac97/ac97_patch.c: * shit may happen.

arch/mips/pci/ops-bridge.c:
oh_my_gawd:

/*
* IOC3 is fucked fucked beyond believe ... Don't even give the
* generic PCI code a chance to touch the wrong register.
*/


linux/lib/vsprintf.c

/* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */
/*
* Wirzenius wrote this portably, Torvalds fucked it up :-)
*/

Acum ma simt ceva mai bine pentru faptul ca am uitat la un moment dat un System.err.println("E null fmm!!!"); intr-un cod sursa pe care l-am trimis pentru la facultate (avea oricum 5000+ linii de cod, deci ma indoiesc ca a observat cineva, mai ales ca nu mai intra pe ramura aia, reparasem bugul...

Morala: good code has swear words in it :P

vineri, 11 septembrie 2009

Aion Open Beta - primele impresii

Am zis sa incerc si eu un Aion in stadiul de open beta, ca cica e gen Lineage 2, dar cu mai putin grinding... yeah right...

In primul rand, a fost a pain in the arse to get it to run... Pentru ca launcheru ala e setat, din motive dubioase, pe US, si pana te prinzi sa schimbi regiunea, dureaza ceva... Eu am stat o gramada sa editez config files n stuff inainte sa ma prind...

Mi-am crescut 2 caractere pana la lvl 11. Primele 10 nivele sunt pur si simplu grind. Da, o sa zica lumea ca nu sunt grind, ca faci questuri, da cand ai questuri gen du-te si omoara n mobi d-aia si inca 10 d-ailalti si dupa vorbeste cu nenea care e in coltul opus al hartii... asta numesc eu grind. Poate ca nu mai am eu rabdarea necesara, dar mi s-a parut booooooring.

Primul caracter era un Scout. L-am facut assassin. Am fost surprinsa sa vad ca nu pot sa intru in stealth in combat. So stealthu ma ajuta fix doar ca sa dau skillul cu lovitura din spate, si sa ma sneakui pe langa mobi la questuri de collect X stuff. Dar dual dagger wielding e pretty fun... De asemenea, am remarcat o imbunatatire fata de lineage in sensul ca desi si aici ai power shards, care sunt practic echivalentul SS-urilor din lineage, acolo era horror sa farmezi fara ele... aici merge si fara. Dar, e aceeasi chestie: trebuie sa stai jos o data la 2-3 mobi sa ti se regenereze hp-ul... potiunile si bandajele sunt prea scumpe. Si daca ai sorc e la fel, doar ca desi mobul nu ajunge la tine (daca te duce cat de cat capul sa folosesti croud control) dar ramai repede fara mana, dupa 3-4 mobi.

Al 2lea meu caracter a fost un Cleric. Healurile sunt pretty nice, si e interesant faptul ca de la lvl 10 folosesti chain armor, deci e mai dificila startegia cu "omoara intai healerii"... E marfa si ca faci destul dmg cat sa poti sa soloui, desi damageul e cam jumate din cel al unui sorc (aveam un amic care juca sorc, deci am putut sa compar).

Si faza cu zborul e pretty fun, dar... nu e asa spectaculos.

Alte chestii care mi-au placut:
- chain skills pe care ti le pui pe acelasi slot. Aka ai skill 1, si dupa ce il castezi, in locul lui apare un alt skill, si clipeste, sa stii sa il dai pe ala. Si dau uberdamage. Si in orice caz nu e ca in alte jocuri unde trebuie sa ai skilluri pe 1000 de bare.
- poti schimba canalul, aka ai 10 canale pentru fiecare regiune, si fiecare canal are harta lui, deci daca ai prea multi oameni care iti omoara mobii, te muti intr-unul mai gol, unde poti farma linistit. Desi, presimt ca 10 canale nu vor fi suficiente dupa ce jocul se lanseaza.

Chestii care nu mi-au placut:
- grind
- faptul ca trebuie sa te odihnesti o data la 2-3 mobi
- craftingul e interesant, dar e annoying... consuma tone de inventory space, nu poti crafta decat in oras la mese speciale, si iti ia secole!
- nu exista pvp pana la rank 25, si n-am avut rabdare sa ajung pana acolo.

In concluzie, e un joc bun pentru cei care au multa rabdare si mult timp de pierdut. Eu una prefer Warhammer, unde simti ca faci o diferenta chiar daca esti lvl 1 si in chiloti si sari direct la RvR.

joi, 3 septembrie 2009

Despre fumatul in public

Tot la poli am fost martora unui eveniment destul de frecvent in ziua de azi. Un student fuma si el o tigare pentru a se relaxa putin inainte de o restanta foarte grea, neputand sa iasa din cladire, ca daca venea profu si el intarzia, nu-l mai primea.

Si deodata, o "doamna" blonda obeza se apuca sa urle la el ca de ce fumeaza si o obliga pe ea sa "inhaleze mizeriile alea". Eram prea absorbita de relecturarea notitelor ca sa ma bag in conversatie, dar postez aici un mic articol pe care as vrea sa il citeasca toti nefumatorii care se simt ofensati cand cineva fumeaza intr-un loc public.

In primul rand, de ce fumam? Nu ne place nici gustul, nici mirosul. Desi motivele pentru care ne apucam sunt diferite, motivele pentru care continuam sunt aceleasi. In esenta, fumatul te relaxeaza. E un proces mai complex, dar da, functioneaza intr-o oarecare masura. Si noi, ca si tine, draga nefumatorule sau nefumatoareo, suntem stresati. Doar ca in loc sa ne apucam sa urlam la oameni pe strada, preferam sa ne consumam nervii pe proprii nostrii plamani, si nu vrei sa ne vezi fara tigari...

Tu urlii la mine ca de ce fumez, ca iti fac rau prin asta... dar tu? Tu, care conduci masina zilnic, deteriorand aerul pe care il respiram mult mai rapid decat o fac eu printr-o simpla tigare? Tu, care in fiecare seara te uiti la telenovele si talkshow-uri ieftine, nu consumi energie electrica prin asta, care se genereaza in principiu fie prin centrale nucleare care dauneaza mult mai mult decat o tigare, sau prin hidrocentrale care distrug destul de mult mediul? Gandeste-te cate lucruri faci tu zilnic care dauneaza altora mai mult decat o simpla tigare. Exista un cuvant pentru atitudinea ta: ipocrizie.

Nu, nu faptul ca treci pe langa mine in timp ce fumez te va omori. Faptul ca mananci atata fara pic de exercitiu fizic te va omori. Faptul ca traiesti intr-un oras mizerabil si incredibil de poluat te va omori. Faptul ca te stresezi atat pentru toate cacaturile te va omori. Si daca printr-un miracol eviti toate astea, ADN-ul incepe cu timpul sa aiba erori in urma diviziunii celulelor, ducand la imposibilitatea reproducerii lor si organele incep sa iti cedeze unul cate unul, si in final da, o sa mori! Faptul ca treci pe langa o tigare aprinsa nu va grabi si nici nu va incetini procesul.

Nu iti place ca fumez? Bun, mergi mai incolo! Nu urla la alti oameni doar ca vrei tu sa te descarci, sau vrei sa iti reintaresti convingerea ca tigarile sunt nashpa, doar pentru a ignora curiozitatea sau dorinta sa te (re) apuci de fumat...

My 0.02$...

miercuri, 2 septembrie 2009

Politehnica, desigur ca in Romania

Sa va mai povestesc un eveniment recent de la politehnica si cum se face organizarea (sau cum nu se face, mai bine zis)...

Anul acesta am avut de facut practica. Ni s-a zis ca trebuie sa aducem o adeverinta si atat. OK, mergem la o firma, lucram 1 luna, cerem adeverinta, plecam.

In mijlocul verii insa: surpriza! Apare pe siteul facultatii noastre de calculatoare un pdf cu o arhiva, care ne zice ca adeverinta aia trebuie intr-un anumit format...

Faptul ca acel format avea vreo 20 de pagini nu conteaza. Nici faptul ca la "vulnerabilitati", printre "persoane de etnie roma" si "persoane cu dizabilitati", este si "femeie"! Da, dragi studenti, a fi femeie este mai nou o vulnerabilitate care te impiedica sa programezi corespunzator!

Trecand peste sexism-ul si rasismul acestui formular, urmeaza intrebarea: noi pana la urma pe care trebuie sa il completam?

Pas 1: sefa seriei intreaba profesori (secretariatul era in concediu cred). Ni se zice ca trebuie sa completam formularul de pe net

Pas 2: sefa seriei intreaba secretariatul. Ni se zice ca habar n-au ce e pe net si trebuie doar o adeverinta.

Pas 3: intreb si eu la secretariat. Mi se confirma ca trebuie doar adeverinta, si mi se zice ca cine a pus alea pe net habar n-avea ce facea...

Concluzie: noi inca nu stim 100% sigur ce trebuie sa aducem, dar presupunem ca doar adeverinta e ok. Oricum, asa se intampla peste tot in romania, nu exista 2 persoane care sa iti zica acelasi lucru, in special cand e vorba de acte oficiale...

marți, 1 septembrie 2009

Poli: DE CE?

Ieri am dat pentru prima data in viata mea o restanta la politehnica. Ma asteptam, sincer, sa vad doar 2-3 oameni rataciti pe-acolo, dand o restanta, si in rest sa fie pustiu... dar, surpriza: era politehnica mai aglomerata decat in timpul anului si in sesiune!

Si in timp ce asteptam ore in sir sa primesc rezultatul (am trecut, desigur :) ) stateam sa ma intreb: De ce? De ce au atatia studenti restante la facultatea asta?

Sa fie pentru ca e o facultate grea, cum zic majoritatea?

Incep prin a ma intreba de ce am eu restante. In esenta, eu am trecut la toate materiile care mi-au placut si/sau au fost predate bine. Nu am picat la nici o materie de programare, pentru ca daca profesorul nu se facea inteles, puneam mana pe o carte si citeam. Dar nu pot sa fac asta la toate materiile. De ce? Pai in primul rand din lipsa de timp, in al doilea rand, daca stiu ca materia respectiva nu imi va folosi la nimic pe viitor, trebuie sa ma intreb: de ce m-as deranja sa invat mai mult decat e necesar?

Se zice ca politehnica e pe locul 14 in topul facultatilor din Europa... De ce? Pentru ca spre deosebire de facultatile unde te specializezi in ceva, aici te invata de toate. Ca noi suntem mai destepti decat unii care 4 ani invata doar sa programezi in java. Dar stau si ma gandesc, cand o sa ma angajez, ce o sa ma intrebe angajatorul? Cum se face o transformata Laplace? Care sunt formulele functionarii in regim dinamic al jonctiunii PN? Cum functiona procesorul unui comp din anii 60? Ma cam indoiesc... O sa ma puna in fata unui comp si o sa zica "programeaza asta!" "cum, nu stii? pai ce ai invatat la facultatea aia?!"

Sunt pentru cultura generala, zic unii. E bine sa stii si mate si fizica bine ca programator. Da, sunt de acord, dar as prefera sa pot sa aleg singura asta, sau sa citesc singura acasa daca chiar ma intereseaza.

Revenim la restante. De ce au studentii atatea?

Am avut ocazia sa vorbesc recent cu un student din Danemarca... ce se intampla acolo? Pai... In primul rand, examenele sunt date de stat, si ai un evaluator diferit de proful tau obisnuit. Si daca proful tau are prea multi restantieri, e dat afara. Deci ori face studentii interesati de materie si explica bine, ori he's out! Dar la noi? Ah pai daca are multi restantieri, primeste un bonus ca e materia grea...

marți, 11 august 2009

ACS fail vs ETTI

Continui sa fiu surprinsa cum, desi suntem la facultatea de CALCULATOARE, avem cred ca cel mai de kkt site din toata politehnica. Sigur, avem curs.cs pe care sunt puse cursurile si unde putem uploada teme... dar cam atat. Site-ul oficial al facultatii este de kkt. Nu gasesti cam nici o informatie utila pe el.

Un singur exemplu... Vin restantele. ETTI are pus pe site datele, ora, sala, etc. Noi? Pwla. Era desigur extrem de complicat sa ia .doc-u sau .pdf-ul ala pe care l-au editat, sa il uploadeze pe server si sa puna un link acolo. Rocket science, in special pentru o facultate de CALCULATOARE.

De ce ma deranjeaza asta? Da, mie nu mi-a fost atat de greu sa ma duc pana la facultate, sunt din Bucuresti. Dar cei din provincie? Dar cei care sunt plecati din Bucuresti? Trebuie sa se bazeze pe informatia primta de la colegi?

Si nu numai cu restantele... ci si cu datele examenelor in general, si stuff like that.

Da, imi imaginez ca site-ul este mentinut de alti studenti, si nu de profesori sau de profesionisti (ca deh, asa e la noi la facultate). Dragi admini, stiu ca aveti si voi problemele voastre si nu aveti timp, dar daca nu va pasioneaza sa faceti site-ul util, fuck off si gasiti alta metoda sa pupati in fund profesorii decat sa mentineti site-ul universitatii!

Warhammer Online - prima experienta, general review

Joc Warhammer Online de 3 luni aproape. Am multe de zis, atat de bine, cat si de rau. Voi imparti in mai multe posturi.

Incep prin a descrie primele mele experiente cu Warhammer. Mi-am luat un trial account cu cativa prieteni.

In primul rand, trebuie sa mentionez ca este un joc de PvP, sau mai exact RvR (Realm vs Realm). Da, sigur, poti face si PvE, dar partea asta e crap. Voi posta mai incolo de ce.

Mi-au sugerat sa incerc Warrior Priest. E o clasa foarte interesanta, trebuie sa dai damage close-range ca sa poti sa healui. Si... ma duc eu frumos intr-un scenariu (bg-urile din WoW)... dau vreo 2 healuri, ma bag sa ma bat cu careva, mor (deh, lvl 1...). OK planu B, ma duc in spate si healui, aruncand cu toporase ocazional in ei. Era annoying... nu poti sa healui suficient. Concluzie: do not like!

Am incercat un Bright Wizard... Ma asteptam sincer sa fie ceva gen magul din Lineage, cu un damage enorm de mare dar foarte squishie. Eh, nu e chiar asa... Nu dai dmg mare decat daca castezi multe spelluri repede, caz in care o sa incepi sa explodezi si tu... Si fara un healer bun, faci fix un kkt. Nu mi-a placut.

Dupa ce am mai incercat cateva clase, am dat de clasa mea preferata: Archmage. Un Archmage este practic un ranged healer. Teoretic poti da si damage, dar damage-ul este destul de mic, dar daca il dai, iti scade cast-time-ul la healuri. Desi ai un cast time mare, healurile sunt si ele foarte mari. Inca de la lvl 1, m-am simtit utila in scenarii. Stau in spate, spamez healuri pe ei, ii tin in viata! Aveam inca traume de la Requiem si Shaiya, unde e horror sa healui, e aproape imposibil sa tii pe cineva in viata! Si totusi, in War, un healer bun chiar face diferenta intre un scenariu castigat si unul pierdut. In acel moment m-am hotarat sa cumpar jocul.

Deci am crescut cu Archmage-ul pana la lvl 39 (40 fiind maximul, dupa crescandu-ti renown rank-ul, care este un fel de lvl separat pe care il faci doar din PvP). E o clasa foarte tare, singurul healer care are un spell de drain action points (aka "mana" din alte jocuri), deci daca il joci bine, poti healui continuu. Singura parte nashpa e ca daca sare ceva melee pe tine, iti va intrerupe cast-ul.

Jocul este impartit in 4 "tier"-uri in functie de level. Teoretic, sunt din 10 in 10 levele, si poti sta in tier-ul respectiv pana faci cu 2 lvle mai mult decat limita. Aka, stai in t1(lvl 1-10) pana la lvl 12, cand daca mai incerci sa intri, te transformi intr-o gaina cu foarte putin HP care nu poate face nimic.

Partea cea mai tare la jocul asta e ca are o zona speciala de RvR in fiecare tier. In t1, e destul de plictisitor, ai niste steaguri care daca sunt ale factiunii tale, vor fi inconjurate de niste NPC-uri friendly si trebuie sa le aperi, daca sunt ale inamicilor, trebuie sa omori NPC-urile lor si sa capturezi steagul. Personal, am facut mai mult scenarii aici. In t1 sunt cele mai bune si interesante scenarii din tot jocul, sau cel putin asta e opinia generala.

In t2, lucrurile devin interesante. Ai keep-uri! Fortarete mari si frumoase pe care trebuie sa le cuceresti sau sa le aperi! Aka darami usa cu un ram, organizezi un warband de 24 de oameni, sau uneori chiar mai multe warbanduri, in niste razboaie destul de serioase, si daca te-ai nimerit sa fii tu leader, trebuie sa ii organizezi, sa prevezi miscarile inamicilor, in asa fel incat sa iei atat keepurile cat si obiectivele, sa lock-ui zona. Cand am jucat cu Archmage-ul, a fost zona mea preferata. Imi placea ideea sa capturez un keep. Am prins repede care e strategia. Trebuie sa ai un tank care da in lord, un alt tank sau 2 care tin celelalte NPC-uri sa nu vina pe healeri, si clasele de DPS vor ataca intai pe cei care apara keepul, si apoi se vor concentra pe lord,in timp ce healerii healuie. E destul de simplu, dar cand esti nou in joc, habar n-ai ce sa faci. Ca leader, trebuie sa stai sa explici de fiecare data, altfel o sa moara tot warbandul aiurea. Pe atunci chiar aveam rabdarea necesara, si am condus multe warbanduri spre victorie, mai ales cand e vorba de o serie de nubi care sunt foarte entuziasmati dar nu stiu cu ce se mananca, si cum vad ca ai habar despre ce vorbesti, te vor asculta.

T3 este in mare parte la fel ca t2. Aceleasi keepuri, aceleasi obiective. Singura diferenta e ca oamenii deja au inteles (desi de multe ori gresit) despre ce e vorba, si toti vor face cam cum ii taie capul, nimeni nu mai asculta de leader. Ca healer, faptul ca ai group heal te ajuta destul de mult... stai intr-un loc sigur si spamezi, nici macar nu trebuie sa ai selectat sau sa vezi target-ul. Singura problema e sa nu dea nimic in tine, si daca sar NPC-uri sa folosesti detaunt.

T4 este in acelasi timp interesant cat si plictisitor. Keepurile sunt mai complexe, ai si un outer wall in jurul lor, si un guild poate captura un keep, fortificandu-l (cu npc-uri mai puternice, usi mai rezistente, etc). Ai mai multe regiuni in care avansezi pe masura ce cuceresti o regiune, scopul final fiind sa ajungi in capitala inamicilor. Partea mai neplacuta este ca nu mai ai doar cativa oameni, ci 2-3 warbanduri, si in general factiunea care intamplator are mai multi oameni online la ora respectiva castiga, de obicei. Oamenii sunt deja plictisiti, si daca nu castiga ceva imediat, nu vor avea rabdare sa stea sa lupte prea mult. Cu toate astea, e fun. Conteaza foarte mult cum stii sa joci. Nu mai ai 2 skilluri pe care sa le spamezi, ci va trebui sa folosesti mult mai multe, ca sa supravietuiesti si sa castigi. Conteaza foarte mult si cum joci, nu numai ce item-uri ai, fata de alte mmorpg-uri. Un singur party de jucatori buni care se coordoneaza pe teamspeak sau ceva de genul pot sa distruga un warband inamic, daca se chinuie destul.

Cam atat in mare. Voi reveni in zilele urmatoare cu PvE-ul din joc, si cu un rant despre RvR.

miercuri, 29 iulie 2009

Dupa o alta pauza lunga...

E bine sa fii in vacanta... timp liber, jocuri multe... Mai apuci sa mai lucrezi la alte proiecte de programare... dar inspiratie pentru blog = 0...

Totusi, acum am strans o serie de subiecte unele geeky, altele mai putin geeky, despre care voi posta in zilele urmatoare.

Chestii interesante pe care le-am observat: e nice cat trafic poate aduce google pe o pagina... chiar daca nu mai postezi nimic nou... am avut cel putin o vizita in fiecare zi... De asemenea, adsense nu ajuta. Oamenii deja au invatat ce sunt alea reclame, nu se mai da click pe ele, decat daca e ceva deosebit de interesant (3 clicks so far).

Anyway, back to posting! :)

luni, 29 iunie 2009

Hamachi + games, fixing a common issue

Ok vrem sa ne jucam impreuna un joc (sa zicem Age of Mythology, ca cu el m-am chinuit zilele astea), da? Vrem sa jucam prin LAN la distanta, deci vom folosi Hamachi. Problema e cand nu merge (aka pot sa dau ping din Hamachi, dar nu este vazut jocul creat, si nu ma pot conecta dupa IP, nici cel real nici cel de Hamachi), de ce nu merge? Inainte sa dai cu tastatura in monitor, read this :)

Well, problema este ca unele jocuri folosesc prin default IP-ul normal, si nu cel de Hamachi, si se conecteaza (si trimite date) deci la reteaua noastra, nu la cea virtuala facuta cu Hamachi. (Daca va pasioneaza, puteti citi mai multe aici.)

Si marea intrebare: cum il facem sa mearga? I'm the Linux chick, not the Windows geek, so eu am dezactivat pur si simplu placa de retea cu hamachi pornit, am deschis jocul, si dupa am reactivat placa de retea. Pentru o solutie mai eleganta, am gasit articolul asta. El zice ca toti cei care joaca trebuie sa faca asa:


Windows XP
1- Click Start and go to Control Panel
2- Go to Network Connections
3- In the menu at the top, click Advanced and then Advanced Settings.
4- You’ll see your Wireless or Local Area Connection in the list and Hamachi under “Connections.”
5- Click Hamachi and click the Green Up Arrow to move it to the top.
6- Click OK to close the dialog.

Windows Vista
1- Click Start and go to Control Panel
2- Click Network and Sharing Center
3- On the left side, click Manage Network Connections
4- Press the ‘Alt’ key and click Advanced then Advanced Settings at the top.
4- You’ll see your Wireless or Local Area Connection in the list and Hamachi under “Connections.”
5- Click Hamachi and click the Green Up Arrow to move it to the top.
6- Click OK to close the dialog.


Mai urmeaza si un alt blabla, dar nu este necesar sa faceti si bucata aia (experimental, AOM cel putin pare sa ignore parametrii din linia de comanda, si unei amice cu care jucam i-a mers si fara).

So have fun, si nu uitati sa va intrebati cu calm "de ce?" inainte sa dati pumni saracului calculator care face numai ce ii ziceti (si nu uitati ca e o diferenta mare intre ce ii ziceti sa faca si ce vreti sa faca ;) )

miercuri, 24 iunie 2009

FUCK YAHOO!!!

Cam radical titlul, but still, m-am saturat. De 2 zile trebuie sa vanez servere de yahoo care inca nu au trecut la noul protocol, neputandu-ma conecta de pe linux decat cu prostia de webmessenger.

Yahoo e evident just another money hungry company, de ce dreq toata lumea sta pe el? Care este scopul in a avea un protocol asa de special, cand s-a demonstrat in repetate randuri ca este mult mai vulnerabil decat protocoalele standard? Poate sa imi dea cineva alt motiv pentru asta si pentru faptul ca il schimba atat de des in afara de dorinta ca toata lumea sa foloseasca clientul oficial, sa poata sa afiseze reclamele alea idioate pe care oricum 99% din noi le ignora, si doar consuma resurse inutil? (yep, comments are welcomed, poate inteleg si eu).

Si, daca sunteti macar cat de cat de acord, intreb: de ce continuam sa folosim yahoo cand exista atatea alte servicii mai bune? Unele si mai sigure, si care consuma mai putine resurse...

Eu una propun google talk. Sincer acum, e protocol standard, it works! File transfer? WORKS! Si nu sunt probleme nici daca folositi alt sistem de operare in afara de windows. Voice chat? Calitate mult mai buna decat cu Yahoo. DE CE DREQ NU FOLOSIM GOOGLE TALK???!

Incep de acum treptat procesul de a renunta la toate serviciile oferite de yahoo. Partea trista este ca majoritatea lumii foloseste yahoo, deci va mai dura ceva pana sa pot sa fac schimbarea in totalitate, but it will happen!

Now free your mind and join me! Use open protocols!

vineri, 19 iunie 2009

yahoo au schimbat din nou protocolul de login

In caz ca va intrebati de ce uneori cand dati sa va conectati cu pidgin sau orice alt client de ymess (in afara de cel oficial), da eroare sau sta la connect, e din cauza schimbarii protocolului de login...

Partea misto e ca doar o parte din servere sunt updatate... Si adresa standard din majoritatea messurilor se conecteaza random la unul din acele servere... Poate aveti bulan si merge connectul, poate nu.

Oricum, o solutie temporara pana apare pidgin 2.6.0 (care suporta si noul protocol) este sa schimbati ip-ul serverului de yahoo in cs101.msg.mud.yahoo.com , care mie se pare ca imi merge.

E chiar annoying cum tot vor sa forteze utilizatorii sa foloseasca clientul lor oficial, care mananca mult prea multe resurse, doar cu scopul de a arata niste reclame idioate. Deh, money-hungry greedy bastards...

Si continui sa ma intreb... de ce este yahoo messenger asa de la moda in Romania? In alte tari, multi abia daca au auzit de yahoo. Sunt atatea alternative... gen Google Talk... protocolul jabber, open-source, merge cu n-spe mii de programe... De ce nu le folosim pe alea?


EDIT: Incepand cu Marti, 23 Iunie, nu mai merge nici ala. Try 66.163.181.189 , still works for me... si Pidgin, hurry up with teh release!

marți, 16 iunie 2009

Experiment cu google adsense

E interesant cum un blog proaspat inceput poate avea atatia vizitatori... aka daca nu scriu absolut nimic, google aduce cel putin 3-4 oameni pe zi... iar daca afisez ceva, eventual postez si linkul la status pe mess, am pana la 50 de vizitatori pe zi.

Ce ar fi daca as pune si niste reclame? Sunt puse intr-un spatiu care este oricum gol, deci nu va impiedica in nici un fel functionalitatea blogului, de asemenea e doar text, nu va distrage atentia de la lectura ... nu deranjeaza pe nimeni, si in plus ati putea gasi one day vreun link util pe-acolo...

So... oare cat se poate castiga din reclame in conditiile astea? Nu urmaresc neaparat profitul obtinut, ci mai exact sa imi satisfac o curiozitate. Daca sunteti curiosi, voi posta si rezultatele acestui mic experiment.

In alta ordine de idei, nu am mai avut timp sa postez toti algoritmii inainte de examen... desi am vazut ca au fost cititi si destul de cautati pe google... in special inainte de examen. Vor mai urma, dar probabil dupa sesiune... Acum am un alt examen urat... electronica...

sâmbătă, 13 iunie 2009

Greedy

Consideram urmatorul scenariu: esti cu prietenii si ati pus bani sa luati de baut. Va ajunge de o sticla de whiskey. Evident, o luati pe aia, desi probabil v-ati simti mai bine pentru mai mult timp cu o lada de bere si ceva chipsuri :P

Cam asta e treaba si cu algoritmul Greedy. El ofera solutia care, la pasul curent, pare cea mai buna, fara a se gandi la viitor (pasii urmatori). Pentru anumite categorii de probleme, ne ofera solutia optima intr-un timp foarte bun, pentru altele insa ne ofera o solutie mai putin optima.

Exemplul tipic este problema rucsacului. Avem un rucsac in care putem duce cel mult o masa mmax. Avem o serie de obiecte avand o masa masa[i] si o valoare val[i]. Pentru a lua doar obiectele cele mai importante, facem un raport valoare/masa, il sortam si luam pe rand obiectele cu raportul maxim.

Sunt doua tipuri de probleme: cea continua si cea discreta. La cea continua, putem lua si fragmente. Adica daca un obiect are masa 5kg, putem lua doar 2kg din obiectul respectiv. Asta merge cu greedy. Daca avem problema discreta, aka putem lua doar obiecte intregi, asta NU merge.

Sa vedem deci care e ideea de algoritm:
  1. sortam obiectele dupa raportul val/masa - O (n log n)
  2. parcurgem vectorul si cat timp nu s-a ajuns la o masa >mmax, mai adaugam un obiect (sau o parte dintr-un obiect) - O (n).
Complexitate: O(n log n).

Aveti aici o implementare mai simpla de greedy, care calculeaza la fiecare pas minimul dintre valorile ramase (complexitate O(n^2)) pentru a va face o idee generala cam cum merge.

vineri, 12 iunie 2009

Divide et impera

Incep cu un algoritm destul de simplu, care se face in liceu. Celebrul Divide et Impera... dezbina si cucereste. Think of it this way... esti la un party cu mult alcool. Daca combini toate bauturile si le dai pe gat, va fi foarte greu sa ramai treaz dupa, dar daca le imparti in paharele mici si le bei incet pe rand, atunci e mult mai usor si mai placut :)

Asa e si cu divide et impera... avem o problema grea, pe care o impartim in mai multe probleme mai mici, pana ajungem la o problema elementara care nu ne creeaza dificultati. Impartirea se face recursiv.

Sa luam ca exemplu MergeSort... un algoritm foarte dragalas de sortare a numerelor dintr-un vector... Care e ideea de baza? Pai tot impartim vectorul in jumate pana cand ajungem la 1 element.. care e sortat... dupa unim 2 jumatati de cate 1 element si le sortam, dupa unim 2 jumatati de 2 elemente etc.

Aici avem o implementare in C a algoritmului. Algoritmul standard este enuntat in carti ca incepand de la 1, noi il vom incepe aici de la 0.

Programul il puteti downloada si de aici.
#include <stdio.h>

#define MAXINT 32767;



void MERGE(int vector[],int start,int mijloc,int sfarsit)

{
int lungime1=mijloc-start;
int lungime2=sfarsit-mijloc;

int inceput_vector[lungime1+1];
int sfarsit_vector[lungime2+1];

int i,j,k;
for (i=0;i<lungime1;i++){

inceput_vector[i]=vector[start+i];
}

for (j=0;j<lungime2;j++){

sfarsit_vector[j]=vector[mijloc+j];
}

inceput_vector[lungime1]=MAXINT;
sfarsit_vector[lungime2]=MAXINT;

i=0;
j=0;
for (k=start;k<sfarsit;k++){

if(inceput_vector[i]<sfarsit_vector[j]){
vector[k]=inceput_vector[i];

i++;
}else{
vector[k]=sfarsit_vector[j];

j++;
}
}
}


void MERGEsort(int vector[],int start,int sfarsit)

{
int mijloc;
if (start<sfarsit-1) {

mijloc=(start+sfarsit)/2;
MERGEsort(vector,start,mijloc);

MERGEsort(vector,mijloc,sfarsit);
MERGE(vector,start,mijloc,sfarsit);

}
}

int main()
{
int vector[5]={2,5,1,4,3};

MERGEsort(vector,0,5);
int i;

for (i=0;i<5;i++)
printf("%i ",vector[i]);

return 0;
}



Programul asta va rula in mare parte conform imaginii urmatoare:


Deci, ideea de baza: impartim vectorul in bucati mai mici, iar apoi unim bucatile respective in ordine...

Urmeaza intrebarea: cat este complexitatea algoritmului? Pai O(n log n), mult mai bine decat bubblesort si sortarea cu 2 foruri, care au O(n^2).


Un alt algoritm foarte folosit este Binary Search-ul. Este un algoritm care cauta un element intr-un vector sortat, avand o complexitate O(log n). Cum ajunge la complexitatea asta? Pai face asa. Vede daca elementul este la mijloc. Daca nu e, atunci... daca e mai mic decat mijlocul, cauta in jumatatea inferioara, iar daca e mai mare, in jumatarea superioara.

Programul este cam asa (fisier txt) :
#include <stdio.h>

int BinarySearch(int vector[],int start,int sfarsit,int element)

{
if (start==sfarsit) return -1;//sau -start pentru a obtine pozitia pe care ar trebui sa se afle;

int mijloc = (start+sfarsit)/2;
if (vector[mijloc]==element) return mijloc;

if (vector[mijloc]<element) return BinarySearch(vector,start,mijloc,element);

if (vector[mijloc]>element) return BinarySearch(vector,mijloc+1,sfarsit,element);

}

int main()
{
int vector[5]={1,2,3,4,6};

printf("%i\n",BinarySearch(vector,0,5,3));

printf("%i\n",BinarySearch(vector,0,5,5));

return 0;
}
Evident, sunt mult mai multe aplicatii ale acestui algoritm, dar cam asta e conceptul de baza. Si tineti minte... Daca aveti mai multi amici care se cearta, intai ii separati, dupa discutati cu fiecare in parte, dupa ii readuceti la un loc si ii puneti sa discute intre ei. ;)

Back again...

A trecut o luna de cand nu am mai scris nimic... missed me? :P

Tocmai a trecut cel mai urat semestru din facultatea de calculatoare... s-au dus temele, mai e doar sesiunea...

Deja ma repet daca continui sa ma plang de numarul mult prea mare de teme pe care il avem, asa ca voi continua prin a anunta ca blogul va fi updatat mai des la vara, iar pentru acum, ca tot trebuie sa recapitulez algoritmi elementari la PA, si articolul despre backtracking a avut un succes neasteptat (daca ma iau dupa keyword-urile cu care a ajuns lumea de pe google aici), voi face un rezumat al principalilor algoritmi, s-ar putea sa ajute pe cineva :)

Dupa another friendly reminder de NU DATI LA POLITEHNICA!!!, going back to work, voi reveni in curand.

duminică, 10 mai 2009

Copy paste bug la Eclipse

Un lucru foarte interesant cu Eclipse 3.2.2 este bug-ul la Copy-Paste. Un program atat de complex care nu face bine o operatie atat de simpla...

Ce se intampla? Dai ctrl+C si te trezesti la ctrl+V ori ca ti-a copiat, ori ca ti-a copiat doar o parte ori - cel mai frecvent - ca nu ti-a copiat nimic. La fel si la cut, ceea ce e si mai enervant.

Ce se intampla mai exact? Nu stiu daca e de la versiunea asta de Eclipse, sau e de la KDE4, dar se pare ca nu se impaca acest Eclipse cu Klipper (programul care se ocupa de managementul copy-paste-ului in KDE).

Solutia cea mai simpla? Inchide Klipper. Yep, that's it! :)

sâmbătă, 9 mai 2009

Ce ascultam in timp ce invatam/programam?

Unii oameni zic ca muzica doar scade puterea de concentrare si iti distrage atentia. Insa, oare chiar asa este? Ce iti distrage mai mult atentia, un sunet placut venind din boxele tale, sau televizorul tatalui urland meciul din sufragerie, manelele vecinei de deasupra... Pana si zgomotul de pasi te poate distrage mai mult decat o melodie pe care o stii deja, prin urmare e doar pe fundal, mintea fiind concentrata pe ceea ce inveti/programezi.

La mine personal este o linie foarte fina. Trebuie sa fi ascultat de cateva ori melodiile respective, sa fiu sigura ca nu imi atrage atentia vreun vers sau vreun solo de chitara sau ceva, dar nu de prea multe ori, ca altfel intervine plictiseala. De asemenea, nu pot sa ascult viking metal sau ceva cu fantasy-based lyrics, pentru ca melodiile de genul au rolul sa iti distraga atentia de la viata de zi cu zi... si o poveste cu elfi si dwarfi si Odin nu prea se potrivesc cu structura interna a unui convertor analog-digital sau scrierea unui cod sursa. Melodiile de genul sunt bune pentru jocuri, sau citit carti (fantasy, nu SF).

Ce am remarcat ca functioneaza foarte bine? Children of Bodom, spre exemplu, au mers ok, dar am ascultat toate albumele de mult prea multe ori. Demons&Wizards m-au ajutat sa scriu o mare parte din chess engine (stiu ca au o tema mai fantasy, dar se potriveste oarecum). Disturbed sunt iarasi foarte buni in timp ce programez, ma ajuta sa mai evit commenturi gen "e null fmm" si dupa sa uit sa scot asta din codul sursa inainte sa trimit tema (woopsie...). Va recomand sa le incercati :)

Voi ce ascultati in timp ce invatati/programati? Astept commenturile voastre, poate mai descopar si eu ceva care sa functioneze bine :)

marți, 5 mai 2009

Review: Kubuntu 9.04

Pentru ca tot n-am apucat sa imi bag un Slackware ca geekul serios, am ramas cu Kubuntu. Recent am facut un distro upgrade la 9.04. Pentru cei care se gandesc daca merita sa-l incerce/sa faca update, sa va zic ce modificari am constatat.

  • Viteza
Surprinzator, pe bunatate de quad core cu 4gb de ram, Kubuntu anterior avea momente cand mergea incet. Foarte incet. Tentativele de optimizare mi-au esuat. Cel de acum insa pare sa mearga mult mai repede. Poate si pentru ca au bagat Qt 4.5, in care s-au ocupat mostly de optimizare.
  • KDE 4.2
Cam de asta se leaga defapt majoritatea modificarilor. Dupa ce la inceput KDE4 sucked, acum incepe incet incet sa revina pe calea cea buna.
  • Mai multe setari din clicka clikca
Yep, te mai scuteste de niste editat de fisiere de config. Multe sunt de la KDE4, dar sunt si cateva adaugate de Kubuntu.
  • Eye-candy
In primul rand, bara e acum albastra, nu mai e neagra. Si tot nu poti sa-i schimbi culoarea, din cate am vazut.

De asemenea, sunt mai multe efecte vizuale. KDE kicks ass la capitolul efecte vizuale. Si consuma si foarte putine resurse.
  • Amarok 2.0.2
Asta e o modificare care nu mi-a placut. Cu chestia asta teoretic ascult eu muzica. In versiunea anterioara avea o interfata mai dragalasha si mai usor de folosit (a se citi: mai eficient de folosit.. de exemplu aveai jos butoane sa repeti o melodie, sa dai shuffle, etc, acum trebuie sa mergi in meniu pentru asta).

Dar are si parti bune. I-au facut integrarea cu KDE4 deci se incarca mai repede pe KDE4, si i-a bagat o functie sa-ti afiseze versurile melodiei...
  • Mai multe widgeturi
Comunitatea a fost activa. Acum sunt mult mai multe chestii usefull. Chiar am gasit un widget sa-mi afiseze si mie cpu usage si temperatura (sta pe la 10% - 25% la compilari si rulari de programe mai ciudate d'ale mele... si 40 de grade... I love my baby! :D )
  • right click -> add to archive/extract here
Ahh I missed this feature... Pe orice distributie normala, poti sa dai click dreapta sa adaugi un fisier/folder intr-o arhiva sau sa extragi o arhiva. Pe Kubuntu anterior insa trebuia sa deschid arhiva cu Ark si sa ii dau de acolo... Multe clickuri in plus... Si in ciuda tentativelor mele de a il face sa faca asta, am esuat. Acum insa, it's back and I love it!



Sigur, este inca proaspat aparuta versiunea asta, deci mai are si cateva buguri din cate citesc pe forumuri, dar eu inca n-am avut probleme.

Morala: merita sa faci upgrade? I say YEP! :D

Puteti citi mai multe despre modificari sau sa luati Kubuntu 9.04 aici, sau daca vreti doar KDE4.2, despre el aici.

Back to writing dupa maraton de teme

Dupa o luna de nescris, din cauza excursiei la munte si maratonului de teme, revin la scris pe blog. Missed me? :P

Apropo de teme, e interesant ca am avut un poll pe aici... in legatura cu ce parere are lumea despre multe teme date elevilor. Rezultatul: 2 oameni au zis ca sunt utile. 2 oameni au zis ca sunt inutile ca le faci in graba oricum si nu inveti nimic din ele. 2 oameni au zis ca vor determina elevul sa urasca materia respectiva.

Ieri seara am avut de predat o tema la o materie numita Protocoale de Comunicatii... Un server si client de chat realizat ca pe vremea lu'strabunicu, useless in real life, cu scopul doar sa inveti. M-am luptat 3 zile si 3 nopti ca'n povesti cu SEGFAULT-urile in C. Am epuizat in timpul asta toate injuraturile cunoscute si am inventat si cateva noi. Intr-adevar am invatat cum sta treaba cu socketurile in C. M-am simtit bine cand am vazut ca clientii chiar isi pot trimite mesaje intre ei. Dar urasc C-ul. Efectul temei asupra colegilor: a fost 1 mai. 90% din ei au fost plecati. In spiritul politehnicii, tema se lasa pe ultimele zile (si daca o faci mai devreme, te trezesti ca scrie pe forum ca profu' s-a razgandit si vrea sa faci altfel, deci trebuie sa rescrii). Ieri s-au chinuit sa faca ceva. Mie mi-a luat 3 zile, in conditiile in care facusem network programming in python si java inainte. Lumea cauta fie de unde sa copieze, fie chiar incerca sa o faca cat mai in graba, frustrarea la maxim cand in loc de mesajul trimis de un client (evident o injuratura), apareau doar caractere ciudate. In final, mai nimeni nu a realizat ceva functional pana la deadline. Multi si-au introdus organele genitale zicand "asta e, frate, o pic!", si mai multi au trimis programele care nu fac decat conexiunea intre server si client si eventual autentificarea, si cam atat. Si astia sunt studenti foarte buni la programare in general, primii sau printre primii din liceul de la care au venit, dar care... guess what? Au ajuns sa urasca programarea.

Statistic vorbind, daca cineva vrea sa invete ceva, va invata fara sa il oblige vreun profesor. Daca nu vrea, nu vrea si punct. Dragi profesori, prin teme nu veti determina un elev care nu invata sa invete, ci invers, veti determina un elev care invata sa nu mai invete. Think about it!

joi, 2 aprilie 2009

Mic tutorial Backtracking - part 2: Bkt a la poli

Continuand tutorialul de aici, cu backtracking frumos si clar, it's time to fuck it up gandind mai complex si mai abstract si mai nepractic.

NOTA IMPORTANTA: asta e cam ce am inteles eu citind in graba laboratorul nostru de PA. Ofc I might be wrong. In plus, asta e doar ideea in mare, si nu doar gandire abstracta si pseudocod, ci si solutii de implementare practica. Daca aveti prea mult timp liber, exista carti intregi despre backtracking ;)

Ideea e ca acum nu mai vedem o lista de valori posibile pe care le permutam, ci avem un fel de graf astfel incat:

  • nodurile sunt liste cu valori posibile
  • un arc intre 2 noduri reprezinta o restrictie intre 2 noduri, spre exemplu avem 2 noduri n1 si n2 cu arcul <, adica trebuie ca n1 < n2
  • o solutie finala este o valoare data pentru noduri astfel incat toate restrictiile din arce sa fie respectate
Deci spre deosebire de bkt-u din postul anterior, vom avea o matrice cu valorile posibile pentru fiecare nod, o vom numi tot pos, unde pos[p] e practic o lista cu toate valorile ce pot fi puse in nodul p, iar n_pos este un vector cu numarul de valori pentru fiecare nod. Deci va arata ceva de genul:
void bkt(int p)

{
for (int i=0;i < n_pos[p];i++)

{
st[p]=pos[p][i];

if (verif(p)) //verificam la fiecare pas, nu la sfarsit

if (p==nr_cautat) //adica fiecare nod are o valoare
afiseaza(p)
else bkt(p+1);

}
}

Sa luam ca exemplu un sudoku. Cred ca toata lumea stie jocul, la cat pierdem timpul la cursuri cu el ;) (daca nu, cititi aici ). Vom reprezenta tabela de 9x9 ca o stiva de 81 de elemente, ce vor reprezenta practic nodurile alese de noi. In pos[p] vom baga toate numerele de la 1 la 9, iar nr_pos[i]=9 pt oricare i de la 1 la 81. Un bkt de genul asta va genera toate tabelele posibile. Ca sa rezolvam o tabela cu cateva valori predefinite, facem in asa fel incat pe pozitia p sa putem avea doar valoarea x data. Acum, ajungem in final la optimizari. Toate astea practic reduc din elementele din pos[p]. Practic inainte sa intram in backtracking, mai avem o functie care sa prelucreze matricea respectiva dupa niste reguli clare. Avem asa:
  • NC - node consistency
Elimina elementele din pos[p] care incalca regulile din arce. In exemplul nostru cu sudoku, daca avem in o casuta un 1, atunci scoatem din pos-urile nodurilor de pe linia si coloana respectiva elementul 1, ramanand sa mai poata lua doar valorile 2..9.
  • AC1 - arc consistency 1
Sa zicem ca avem un arc intre 2 noduri n1 si n2. Daca o valoare pusa in n1 face in asa fel incat sa nu mai mearga nici o valoare pusa in n2, atunci se elimina. Adica un fel de NC pe invers. Ca exemplu, sa zicem ca avem un alt joc, sa completam ceva cu cifre de la 1 la 9 intr-o relatie de ordine, si avem ceva gen n1 < n2 . Daca punem 9 in n1, atunci nu mai putem pune nimic in n2. Deci eliminam 9 din n1. Ah si chestia asta trebuie repetata de mai multe ori pentru fiecare nod in parte, terminandu-se cand nu se mai elimina nimic. De ce? Pai spre exemplu daca avem un n1 < n2 < n3 , atunci la primul loop elimina 9 din n1, si 9 din n2. La al 2lea loop elimina si 8 din n1.
  • AC3 - arc consistency 3
E in esenta ca AC1, doar ca tinem cont sa nu repetam asta pe arce pe care nu mai e nevoie. Adica avem o coada Q cu toate arcele, si scoatem un arc, vedem daca putem elimina ceva, daca da il punem la loc in coada impreuna cu toate arcele nodului respectiv care nu sunt deja acolo, daca nu il lasam afara.

Mai pe romaneste, avem un nod n1, care are arc catre n2 si n2 are arc catre n3 (adica exista restrictii pentru n2 in functie de cum alegem n1, si pentru n3 in functie de cum alegem n2). In coada Q avem initial (n1,n2) si (n2,n3). Cautam daca e ceva de eliminat in n1, si nu e. In Q ramane (n2,n3). Cautam sa vedem daca e ceva de eliminat in n2, si gasim. Prin urmare, readaugam in Q (n1,n2) si (n2,n3).


Cam atata in mare despre backtracking. O singura recomandare pentru voi, programatori dragi. Cititi, face-ti-va o idee cu ce se mananca, faceti temele cu restrictiile lor idioate impuse, then think outside the box! Be creative and never follow the rules, even when it comes to programming. Un programator bun stie toti algoritmii astia, cand sa-i foloseasca si cum. Un programator foarte bun intelege algoritmii astia, si si-i formeaza pe ai lui si stilul lui de programare.

Intrebari? M-am exprimat aiurea pe undeva? Postati un comment si va voi lamuri cat de bine pot.

luni, 30 martie 2009

Cursuri cu prezenta obligatorie

Nu am inteles niciodata care este scopul in a face prezenta la curs. Really now. Ce spera un profesor sa realizeze prin asta defapt?

Ideea este simpla, din punctul meu de vedere. Daca un student considera ca predati bine, si are ceva de invatat, va veni la curs. Daca nu, nu.

Ce se intampla daca totusi studentii sunt obligati sa vina din cauza unei foi de prezenta? Pai sa vedem... or sa vina cu laptopul sa se joace sau sa faca vreo tema, sau or sa doarma, sau sa copieze la alt curs, sau sa citeasca o carte, sau sa vorbeasca cu colegul de banca... you get the idea.

Nu, chiar nu ii motiveaza sa vina sa fie atenti. Si nu ii ajuta cu absolut nimic.

Care este solutia atunci, va intrebati, domnilor profesori? Simplu: incercati sa va dati seama ce nu le place, de ce nu vin. Puneti-va in locul lor. Sa stati sa ascultati un om 3h cum sta si citeste de pe o prezentare powerpoint si repeta de 10 ori acelasi lucru e f boring, mai ales daca ar lua 5 min sa citeasca prezentarea acasa si ar ramane cu aceeasi cantitate de informatii. In schimb, un curs interactiv, dupa care studentii chiar simt ca au invatat ceva nou si interesant, va avea o prezenta destul de buna. Intrebati profii de USO, spre exemplu. ;)

joi, 26 martie 2009

Mic tutorial Backtracking - part 1: Blind bkt

Backtracking cred ca este unul din algoritmii mei preferati. E like the father of all algorythms. He pwns everything. Greedy? Dinamica? Le face. Mai incet, dar le face (bine, mult mai incet, are complexitatea O(2^n)). Daca mi se permite aceasta metafora, e like ai 2 tipe, una vine la tine si zice ca stie sa iti dea un blowjob rapid, si alta care vine si zice ca stie si blowjobul si toate pozitiile din Kama Sutra si le face incet dar bine, pe care ai alege? (raspuns irelevant: the one with the bigger boobs :P )

Anyways inapoi la treaba serioasa. Backtracking. Care e ideea? Ai un vector de valori posibile, sa ii zicem pos[], si o stiva st[] in care bagam toate permutarile intre o parte din elementele din pos (sau toate, dupa caz) si verificam daca solutia este corecta.

Varianta recursiva e cea mai scurta si dragalasa:
void bkt(int p)

{
for (int i=0;i < n_pos;i++)

{
st[p]=pos[i];
if(p==nr_cautat)
if (verif(p)) afis(p);
else bkt(p+1);

}
}



THE END. Astea sunt cele 5 randuri pt care trebuie sa intelegeti principiul.
Ca exemplu de rulare, sa zicem ca avem pos[]={1,2,3} si nr_cautat =2. Practic adauga in stiva 1, si apeleaza bkt pentru a 2a pozitie din stiva. Va baga in stiva {1, 1} si verifica daca solutia este corecta. Dupa, vom avea in stiva {1, 2} si verifica. Dupa, {1,3}. {2, 1} etc. Functia verif() depinde de problema, evident. O idee ar fi sa salvam in st[] doar indicii pentru pos[], adica st[p]=i; ca sa verificam mai usor in verif(p) daca elementele sunt distincte. Alteori, e mai eficient sa facem verificarea imediat cum adaugam un element nou, si dupa sa vedem daca am ajuns la numarul de elemente cautat.

Asta este principiul de baza. In rest, conteaza creativitatea programatorului pentru a-l optimiza. Dar, desigur, ppl like telling you how to think, asa ca avem un fel de grade de optimizare, AC1, AC2, blabla. Voi scrie intr-un post urmator cu ce se mananca fiecare.

luni, 23 martie 2009

O saptamana in viata unui student la poli

Saptamana asta e o saptamana tare interesanta... Cei care vor sa dea la poli, sa stiti ce va asteapta.

Pana ieri seara, am avut de facut o tema la PA. Pana maine, trebuie sa facem tema la engleza. Pana miercuri trebuie sa terminam proiectul la CN. Pana joi trebuie sa facem calculele la labul de ED si un rezumat la labul urmator (btw, nici macar nu e pe site pus laboratorul, trebuie sa faci rost de el cum poti). Pana vineri trebuie sa citim cele over9000 chestii puse in "folder" de profu de la AD. Pana duminica trebuie sa pregatim documentatia la chess engine la PA, si cei care nu s-au apucat de proiect trebuie sa faca si primul release al engine-ului (lucky me eu am facut deja ce trebuie, mai e doar documentatia idioata). Pana lunea viitoare avem tema la PC. And you think this is over? Naaah, de bine ce am terminat tema la PA avem inca una pentru saptamana viitoare. Ah, si in tot timpul asta trebuie sa mergem si la facultate, ca avem laburi si cursuri cu prezenta obligatorie.

Si nu, saptamana asta nu e una speciala... cam asa e de obicei...

Timp liber? Viata sociala? Somn? Sanatate fizica si psihica? Pwla.
Welcome to poli! Have a nice day! :)

miercuri, 18 martie 2009

Poli review: de la WC

Se pare ca administratia politehnicii ne considera un fel de robotei care nu au nici un fel de nevoi... Stiu ca e un subiect cretin, dar tine de viata la politehnica. Sa va povestesc cateva mici experiente legate de WC-urile din poli...

Prima a fost la examenul de admitere. Merg si eu ca omul inainte la WC, si cand sa deschid cabina sa ies... surpriza... nu se mai deschide! Cel mai misto motiv sa ratezi examenul: am fost blocata la toaleta... Bine s-a deschis eventual dupa ce am tras mai tare, dar am facut un mental note sa nu mai intru ever in cabina din dreapta de la WC-u fetelor din rectorat.

Realilzand si ei ca the toilets suck, s-au gandit sa le renoveze... Au inceput cu toaleta baietilor. Asa ca practic am avut baie comuna timp de vreo luna pana le-au terminat-o (de parca nu era destula coada la baia fetelor in pauza... imi pare rau ca am intarziat la curs domnule profesor, dar am stat la coada la baie!). Dupa, au renovat baia fetelor. Au schimbat si usile alea de nu se mai deschideau :D . Dar, daca la baieti a luat relativ putin, la fete au stat in renovare mult si bine... Ca tot nu prea sunt fete la poli, nu? So... fetele aveau de ales... ori intra la baieti, si risca sa dea de vreun tip care nu se gandeste ca practic e baie comuna si ar trebui sa intre in cabina, ori sa mearga pan la mama dreq la alta baie de fete...

Oricum singura baie care are usi care se inchid este in rectorat la parter. Restul bailor...trebuie sa tii usa. Ah si nu va asteptati la chestii gen hartie (echipati-va cu multe servetele!), sapun, uscator/servetele, apa merge trasa doar in unele locuri, oglinzi nu exista... macar avem cosuri de gunoi... sort of... ca sunt defapt niste cutii de carton goale...

In automatica e si mai misto... In EC-uri e o singura baie... la subsol... unde sunt WC-uri "turcesti"... si ultima data cand am fost, au schimbat usile (au terminat treaba in cateva zile, e de bine, poate si pentru ca e singura baie din zona). Miros ingrozitor, era si apa pe jos (sau sper ca era apa...), vis, ce mai... In EG-uri teoretic e un WC la fiecare scara... practic majoritatea sunt incuiate (la fete cel putin, la baieti sunt mai multe deschise) si e o singura cabina, deci desigur stai la coada in fiecare pauza, mai gasesti si cate un gandacel sau paianjen sa iti tina companie in timp ce iti faci treaba... E chiar entertaining, erau la un moment dat un paianjen cu picioare lungi si unul mai mic si mai gras... se bateau... A castigat ala mic si gras, ca data urmatoare cand am fost, l-am revazut stand victorios pe panza, mancand o musca...

Well cam asta e cu baile fetelor, asteptam un baiat sa ne descrie experientele si pe la ei :P

Poli review: Engleza 1 si 2

  • Profesor
Yolanda Katelli (parca)
  • Materia
Engleza. Mai exact, engleza in a business environment. Aka cum sa scrii o scrisoare, un mail, un CV, etc.
  • Desfasurarea seminarului
Trebuia sa cumperi o carte. Daca veneai fara ea, crize si nu prea aveai ce cauta la seminar. (Da, era scrisa de profa cartea.) Lucram de pe carte cica. Exercitii boring, multe scrisori/mailuri/CV-uri...

Profa statea pe scaun, si tasta la comp in word, si ne punea proiectorul.

Exemplu de tema: CV-ul... L-am facut, l-am pus cu totii pe rand pe proiector. 99% dintre noi a trebuit sa il refacem pe motiv gen nu am pus un tab aici, nu e perfect aliniat textul, etc. Ora urmatoare gasea altceva care sa nu-i placa, si il refaceai yet again, asa ca nu trebuia sa te chinui prea mult.
  • Notare
Conta si prezenta la seminar, si activitatea cica, si un proiect de final.

La proiect a fost fun... profa in ora de dinainte: "Faceti o prezentare. Puteti veni cu o prezentare in powerpoint, si o punem cu proiectorul. Da, veniti cu ea pe stick, nu e nici o problema.". Stam noi, facem prezentarea frumos, pregatim si discursul de 5 minute, si la seminar: "Ce prezentare powerpoint? V-am zis eu de asa ceva? Ce discurs in fata clasei? Intrati pe rand in sala si vorbiti cu mine". Si ne pune in prima banca pe rand, ne apucam, vorbim max 1 minut, dupa ne invadeaza cu intrebari timp de inca 1 minut, n that's it (nu mai mentionez ca era ceva IT-related, si profa... in fine, nu comentam :P )



Gata cu materiile din anul 1, semestrul 1. More to come :)

Dragi tovarasi politehnisti care mai frecventeaza blogul ( I know ur out there :) )astept commenturi cu feedback, experientele voastre, etc. :)

Poli review: Logica

  • Profesor
G.G. Costandache
  • Materia
100 de moduri cum sa analizezi daca o propozitie e adevarata sau falsa... That's about it.

Mentionez ca asta era teoretic un optional. Practic a fost optional obligatoriu ales de catre politehnica pentru noi...
  • Desfasurarea cursului
Aceeasi minunata sala D100, dar.. spre deosebire de fizica unde chiar erau probleme cu locurile... aici era cam pustie sala...

Practic, cele 2 ore de curs constau intr-o dictare continua.
  • Desfasurarea seminarului
Ne scotea la tabla si ne punea sa analizam daca o propozitie e adevarata sau falsa.
  • Notare
In ultima ora de seminar a fost cam asa: "Iesi la tabla. Scrie un simbol logic".
if (ai stiut sa scrii macar 2 in plus fata de cei de dinainte)
fa analiza unei propozitii
if (corect) 10
else 9
else
4+ scrie un referat or smth

Poli review: Fizica

  • Profesor
A. Nenciu
  • Materia
Fizica... Optica, teoria relativitatii, chestii de cultura generala facute si in liceu, la care se mai adauga inca 1000 de formule si definitii.
  • Desfasurarea cursului
Desi cursul se desfasura in niste conditii nu tocmai placute, in D100, sala cu 100 de locuri, noi fiind vreo 150 in serie (da, stateam si pe scara si in picioare si care cum apuca), si cursul era in facultatea de electronica, dupa care trebuia sa facem jogging pana in automatica, macar profa era ok. Adica pe langa faptul ca explica destul de bine, si daca erai atent chiar intelegeai, se si implica destul de mult... fiind nubi la facultate, ne mai spunea si ce si cum mai trebuie sa facem, mai raspundea la intrebari legate de facultate in general, si chiar a organizat 1 data sau de 2 ori o iesire la... teatru era? (personal nu am fost, dar am apreciat intentia)
  • Desfasurarea laboratorului
Era easy mode in comparatie cu ce avem acum la laboratoare de genul... Profa de la lab venea pe la fiecare in parte si ne facea un rezumat la despre ce e vorba in lucrarea respectiva si cum se folosesc aparatele, si dupa da-i si masoara 20-30 de valori ca nebunul, adauga acasa inca 3 calcule si un grafic, si gata.
  • Notare
Cam toata lumea care a fost la examen a trecut...

luni, 9 martie 2009

Poli review: Programarea Calculatoarelor, Structuri de Date

Probabil va intrebati daca nu am facut si ceva de programare so far, ca banuiesc ca multi vor sa dea la facultatea de Calculatoare ca sa iasa programatori, nu? Well...

PC a fost pe semestrul 1 din anul 1, iar SD pe semestrul 2. Aceeasi profa, aceeasi asistenta la lab, totul in acelasi stil.
  • Profesor
E. Kalisz
  • Materia
Teoretic faceam C. Teoretic era o materie utila. Am inceput de la suma a 2 nr si am terminat cu lucrul cu pointerii in mare. Continuarea a fost la SD semestrul urmator, unde am facut liste, grafuri si algoritmi elementari pe baza lor. Cine a citit macar o data de curiozitate manualul din liceu nu avea probleme.
  • Desfasurarea cursului
Pot spune ca principala mea dorinta cand am venit la poli a fost sa se faca programarea cum trebuie. N-a fost sa fie.
Profa venea in sala, punea prezentarea cu proiectorul, si mostly ne citea de acolo. Am inteles ca dupa mult feedback negativ, la cursul din semestrul 2 nu mai citea de pe proiector, ci scria si pe tabla din cand in cand...
Personal, n-am rezistat. Am fost la 2 cursuri in semestrul 1, am vazut cat de boring e si cum pot invata de 1000 de ori mai mult cu o carte buna de C acasa in fata compului, si asta am si facut mostly. Si la SD nu am fost la absolut nici un curs. Si nu-mi pare rau.
  • Desfasurarea laboratorului
Asta a fost okish dupa parerea mea. Nu mai imi amintesc exact cum o chema pe asistenta (ceva cu I). Faceam niste probleme de proof-of-concept, practic implementarea teoriei, easy mode and kind of boring. La SD era mai stresant, simteai cum iti apare un fir de par alb in cap la fiecare Segmentation Fault pe care il vedeai... bloody pointers!.
Si tipa se vedea ca stie programare. Adica personal de fiecare data cand am chemat-o sa o intreb ceva (desi nu am avut nevoie de prea multe ori) s-a prins imediat ce am gresit. La rabdare statea cam prost insa, dar nu o condamn. Probabil eu as fi innebunit sa stau sa explic atata.
  • Notare
Examenul a fost un mare kkt. Cel mai stupid stil de examinare ever. In primul rand, nu se face examinarea la programare pe foaie, dar sa zicem ca era mai greu altfel, asta inteleg. Cum a fost? Ne dadea un subiect, 10 min sa-l rezolvam, dupa ne lua subiectul si rezolvarea, si ne dadea urmatorul subiect. Asta timp de vreo 3 ore. Ah si eram asezati in functie de notele de la lab (as if that made sense, personal in sem 2 am lipsit mult de la lab si am mers de multe ori moarta de somn si fara chef, si stateam relativ in fata, desi stiam mai bine decat jumate din sala). La primul examen am avut un soc... multi colegi se apucasera sa scrie pe ciorna, si cand a venit sa ia foile, nu au apucat sa transcrie... Multi picati... dezastru, ce mai...

Poli review: Matematica 2

  • Profesor
A. Nita
  • Materia
Algebra, in esenta. Matrici, ecuatii diferentiale (parca)... Nici nu mai imi amintesc exact ce s-a facut... My bad ca de multe ori la curs dormeam...
  • Desfasurarea cursului
Explica bine profa, desi se vedea ca are o dorinta *extraordinara* sa explice...
Daca mai ramanea timp, ne mai si scotea pe la tabla (da, la curs) sa facem probleme... Ceea ce e bine, intelegeai de la curs ce si cum, nu trebuia sa te chinui dupa 10 ani acasa sa iti dai seama cum se practica ce ti-a explicat in teorie.
Insa, datorita faptului ca cursul era fix dupa cursul lui Flondor (yep, 6 ore continue de matematica... oh joy), marturisesc ca nu reuseam sa imi mai tin ochiii deschisi de multe ori... La unul din cele 2 cursuri TREBUIA sa dorm... Tot respectul meu pentru cei care reuseau sa fie atenti.
  • Desfasurarea seminarului
Faceam cursul tot cu profa, si era f bine ca ne scotea la tabla sa facem noi problemele, ajutandu-ne daca nu stiam. Aka cum sunteti obisnuiti probabil de la liceu. Era bine. Daca incercai sa le rezolvi si tu in paralel cu ala la tabla pe foi, chiar intelegeai ceva (spre deosebire de mate1, unde trebuia sa recitesti seminarul acasa de vreo 3 ori sa intelegi).
  • Notare
A fost indulgenta la corectat, aka daca stiai cate ceva, nu iti scadea prea mult pentru prostii gen calcul si alte astea.
In schimb, la examen a prins pe cineva copiind si a dat-o afara. Do not try that (unless u have skillz ;) ).

vineri, 6 martie 2009

Mic tutorial SVN

Ca tot era vorba de SVN... Pentru cei care n-au mai lucrat cu svn, va scriu o lista cu cam tot ce aveti nevoie sa va jucati cu el dintr-o consola de Linux.

  • cd /directorul/de/lucru
(adica mergeti in directorul in care vreti sa copiati fisierele)
  • svn checkout http://adresa/la/care/e/hostat
(comanda asta o dati doar prima data, si va copia in fisierul respectiv fisierele care sunt pe server, cerandu-va parola daca serverul are parola. Va creea si un director .svn in folderul respectiv, care va contine setarile n stuff...)
  • svn update
(va lua fisierele care au fost modificate de pe server)

  • svn add ceva
(unde ceva poate fi fisier sau folder sau mai multe fisiere/foldere. Aceasta comanda ii spune ca va trebui sa adauge "ceva" pe server la urmatorul commit)
  • svn delete ceva
(ceva=fis,dir, mai multe fis/dir. Va sterge "ceva" la commit)
  • svn status
(arata tot ce va fi modificat la urmatorul commit. Outputul va fi sub forma:
?       scratch.c           # file is not under version control
A       stuff/loot/bloo.h   # file is scheduled for addition
C       stuff/loot/lump.c   # file has textual conflicts from an update
D       stuff/fish.c        # file is scheduled for deletion
M       bar.c               # the content in bar.c has local modifications

Pentru a vedea exact ce inseamna literele, vezi comanda urmatoare)

  • svn help numecomanda
(help is your best friend, intotdeauna :) )

  • svn revert ceva
(anuleaza modificarile facute asupra fisierului sau folderului ceva)

  • svn commit -m "Mesaj cu modificarile facute"
(va face pe server modificarile pe care i le-ati dat sa le faca.)


Pentru mai multe informatii, va recomand cartea asta , care va spune cam tot ce e de stiut in legatura cu svn, inclusiv sugestii despre cum ar trebui sa organizati folderele pentru proiecte mai mari, etc.

Daca nu va place consola, mai puteti instala si kdesvn, si mai sunt si alte programe de genul, cu o interfata grafica draguta, desi personal mi se pare mai rapid si mai usor cu o consola.

Review: SVN hosting

Cautand un free SVN host pentru un proiect la facultate, am dat de xp-dev.
Colegii, daca aveti nevoie de un loc sa va hostati Chess AI-ul, vi-l recomand ;)

Pros:
  • free
  • 1500MB spatiu
  • poti hosta un numar nelimitat de proiecte
  • chestii gen bug tracker, forum, project wiki, etc
Cons:
  • interfata putin mai ciudata
  • orice persoana care acceseaza svn-ul trebuie sa aiba cont pe site

miercuri, 4 martie 2009

Poli review: Matematica 1

  • Profesor
P. Flondor
  • Materia
In esenta, analiza matematica. Derivate partiale, integrale multiple, serii, chestii de genul. Chestii bune la cultura generala, dar nu 100% esentiale unui programator.

  • Desfasurarea cursului
Stiti povestile alea despre profesorii care cu dreapta scriu si cu stanga sterg? E unul din profesorii aia :P

In primul rand, tot respectul meu pentru domnul profesor Flondor. Se vede ca isi cunoaste bine materia, si daca erai atent la curs, intelegeai destul de bine.

Pe de alta parte, pot spune ca era si f strict. La fara 10, era deja in fata salii. La fix intra. Intarziai mai mult de 5 minute? "La pauza!". Nu miscai la curs. Nu vorbesti cu colegul. "Cum indraznesti sa dormi? Iesi afara!" (Daca poti dormi fara sa pui capul pe banca, nu zice nimic, spun asta din experienta ;) )

  • Desfasurarea seminarului
Ah, domnul profesor Ghiu... Daca esti la seminar, o sa faca misto de tine. PUNCT.

In rest, recapitulare pe scurt dar clara a teoriei, exemple cat sa intelegi (facute de el ca nu avea rabdare sa iasa un student la tabla si sa stea sa le faca). Daca faceai si exercitiile pe care ti le dadea ca tema acasa, chiar intelegeai si era usor sa treci. Dar cum desigur cam nimeni nu a facut asta...

  • Notare
In primul rand, la examen primeai un bonus daca aduceai un "caiet de probleme" care sa contina minim 80 de probleme parca. Puteai sa lucrezi ce vrei tu, atata timp cat lucrai. Si nota se rotunjea in favoarea elevului daca il aduceai, altfel nu.

Examenul... pe scurt, nu miscai la el. 5 probleme. Cam putin timp. Corectat foarte obiectiv (a se intelege fara "hai mai ca totusi a scris ceva, sa-l trecem"). Deci... relativ multi picati. Majoritatea au luat insa examenul toamna, asa ca nu va faceti probleme :)

Poli review: Utilizarea sistemelor de operare

Dupa cum am promis, voi scrie un review al tuturor materiilor avute la politehnica, sa isi faca si cei care vor sa dea la facultatea asta o parere.

Incep cu cea mai tare materie avuta pana acum in facultate (sa nu ziceti ca dau doar review-uri negative), si anume Utilizarea Sistemelor de Operare (USO).

  • Profesor
A. Herisanu

  • Materia
A fost un curs esential - zic eu - pentru orice student la o facultate de calculatoare. Desi multi stiau deja multe din subiectele tratate, este un curs bun si distractiv.

Ce am facut mai exact? Notiuni generale despre sisteme de operare, cu accent pe Linux, si notiuni elementare despre networking, securitate, etc.
  • Desfasurarea cursului
E uimitor cum de cursul, desi nu avea prezenta obligatorie si era pus urat rau de tot (de la 6 la 8 lunea, noi avand ore de la 8 dimineata, si 2 ore pauza fix inaintea cursului), totusi foarte multa lume era prezenta in sala. Alti profesori ar trebui sa invete multe de aici.

De ce era asa? Pai simplu: cursul era 1) interesant 2) interactiv. Adica... proful nu statea ca altii sa trancane 3 ore in fata noastra, ci vorbea cu noi. Teoretic avea o prezentare powerpoint pusa cu proiectorul. Practic, ne punea intrebari, ii puneam intrebari... Daca vedea ca suntem interesati de un subiect, punea mai mult accent pe el... Daca vedea ca in mare stim deja si nu prea ne mai intereseaza, trecea mai departe mai repede...

Pot spune ca este singurul curs de pana acum la care nu am adormit niciodata. :)
  • Desfasurarea laboratorului
Laboratorul iarasi era foarte interesant si fun. Era tinut de Andrei, student in anul 3.

Ce faceam la laborator? Lucram sub Ubuntu Linux. Aveam cateva taskuri de facut. Pentru cineva care foloseste Linux in fiecare zi, erau chiar foarte usoare. Cei care foloseau pentru prima data Linux, au avut multe de invatat, mai ales ca folosim Linux la multe alte materii, si nimeni nu sta sa iti explice acum cum sa dai un ls sau cum folosesti vim.

Ce fel de taskuri erau? Variau destul de mult, incepand cu instalarea unui Linux, parametrii lui ls si continuand cu editare de fisiere esentiale de configurare, la programare in C, scripting in bash... Taskul meu preferat (era de bonus) a fost unul in care trebuia sa facem un program care capteaza pachetele trimise de yahoo messenger (sau pidgin) cu tcpdump, si "extrage" de acolo conversatia :)

Cum era asistentul? Am apreciat faptul ca nu avea "aroganta" de profesor ca sa o numesc asa. Era student ca si noi, si se comporta ca atare. Desi dadeam teoretic un test la inceputul fiecarui laborator, era indulgent. Dar chiar incerca sa ne invete ceva, si ne punea - in a friendly way - la lucru :)

Am multe amintiri placute de la laboratorul asta. Filozofia asistentului? "Incercati orice, ca nu aveti ce strica. Important e sa ramaneti cu ceva dupa". Calculatoarele teoretic aveau un sistem care le restaura la starea de dinainte dupa un reboot, indiferent ce modificari ai facut. Asa ca... noi am experimentat :) Faze gen "hai sa dam un sudo rm -rf /" sau "hai sa rescriem MBR-ul sa vedem ce se intampla"...
  • Notare
Au trecut toti (care au fost pe la lab si la examenul final desigur). Enough said :)
  • Misc
Am avut si o tema la materia asta. S-a dat in vacanta de iarna. Multi studenti au criticat asta, pentru ca deh, sarbatori chestii... Dar nu era cine stie ce... Trebuia sa instalam un ubuntu modificat intr-o masina virtuala si sa il configuram. Mie mi-a luat cam 2 ore.

Overall pot spune ca a fost fun, keep up the good work :)

marți, 3 martie 2009

linux+vista+ntfs=bad idea

Background story: 2 sisteme de operare pe comp, windows vista si ubuntu linux. Imi trebuie o partitie de transfer intre cele 2. FAT32 nu merge, pentru ca imi trebuie fisiere mai mari de 4Gb.

Am incercat cu un NTFS. L-am creeat cu gparted sub linux. A mers perfect pe windows. Dupa, am intrat pe linux si am scris si acolo un fisier pe el. Intru iar in windows si surpriza: drive corupt! Dar pe linux inca merge... Morala: driveru ntfs-3g de sub linux nu merge decat la citire, nu si la scriere cu ntfs-ul de vista.

Solutie alternativa: drivere de ext2 de windows, care merg si pe vista si cu care poti folosi si un ext3. http://www.fs-driver.org/ .
Dezavantaje:
- nu se mentin permisiunile
- daca linux s-a crashuit, nu face jurnalizarea si se pot pierde datele
Il voi instala in viitorul apropiat si va urma un post cu tot ce stie sa faca si cum se descurca.

luni, 23 februarie 2009

Linux + placa de sunet incorporata Realtek ALC1200 8-Channel

Am avut mici probleme cu placa asta de sunet... M-am gandit sa va impartasesc solutia cea mai simpla.

Pe scurt: cu kernelul 2.6.27-11 merge, cu 2.6.27-7 nu merge.

Pe lung: mi-am luat o placa de baza noua, Asus M3N78-PRO si am bagat initial un Kubuntu 8.10 (ca el recunoaste cele mai multe drivere si da cea mai putina bataie de cap, se va schimba cat de curand in Slackware). Totul mergea ok, mai putin sunetul. Modului snd_hda_intel era teoretic incarcat, si cu asta trebuia sa mearga... Dar desi lspci si lsmod imi arata ca totul e ok, aplicatiile se comportau ca si cand nu exista nici o placa de sunet. Dupa mai multe incercari nereusite de a reincarca modulul de kernel, cautare de alte drivere, etc, Kubuntu s-a oferit frumos sa faca un update la kernel... si surpriza: merge :)

Amintiri de la politehnica - examen admitere

A trecut mai bine de un an de atunci... dar inca imi amintesc ziua aia de parca ar fi fost ieri...

Vorbesc desigur de ziua examenului de admitere la politehnica (Automatica si Calculatoare). Eram doar un copil pe atunci, cu iluzii de genul va fi foarte tare la politehnica, fac doar programare si ceva mate si fizica, vor fi doar profesori buni si voi invata lucruri fun... Siiigur ca da...

Inscriere: Inscrierea se facea pe site. Imi placea ideea. Facultate moderna, ar trebui sa mearga mult mai bine si mai repede asa, nu? Scoti formularul la imprimanta, depui dosarul, mege bine si frumos. Ce vise inocente... Dupa inscrierea pe site, trebuia sa te duci si sa depui dosarul. Te baga intr-o sala in care niste secretare plictisite iti rasfoiau foile, iar apoi studenti (voluntari?) iti verificau/faceau formularul pe site. Dupa o asteptare la o coada infernala, intru in sfarsit in sala. Ma asez frumos la calculator, si surpriza: pica serverul politehnicii. A durat aproape 1 ora sa il puna din nou pe picioare. Am profitat de ocazie sa mai interoghez studentul respectiv in legatura cu ce se intampla prin politehnica. Dupa ora aia, mi s-au evaporat cam jumatate din iluziile pe care mi le faceam in legatura cu facultatea. Da nu poate fi chiar atat de rau, nu? Plus ca nu exista o facultate mai buna de programare in Romania, nu?

Examen mate: Citisem pe site ca sunt repartizata in sala AN-numaistiucat. WTF is AN? De pe hartile de pe internet, ma lamurisem doar pe jumatate. Ajunsesem putin in intarziere din motive de trafic. Era aproape pustiu pe acolo. Stai si alearga jumatate de ora pana sa dau de sala... Hartiuta cu numele frumos pe masa, verifica buletinul, da foaia cu grila. Exercitii banal de usoare, dupa cum mai facusem inca 10000 in anul precedent cand am sacrificat orice alta activitate sa invat pentru bac si admitere. Desigur, daca greseai la un calcul ceva, se ducea dreq tot. Si la calcul NU stau bine. Sunt programator. Stiu algoritmul. Il implementez, si calculeaza calculatorul. In fine, desigur am gresit desi am verificat de 10000 de ori.Nota: 9.60

Examen fizica: Stiam deja sala. Am ajuns la timp. La fizica se zicea ca e mai usor decat la mate. Asa a si fost. Am luat - surprinzator - 10.

Desi notele sunt mari, la Calculatoare, unde ultima medie este in general peste 9, si acum se redusesera numarul de locuri, nu se stie niciodata. Am intrat, n-am intrat? Nu pot afla, pentru ca - desigur - e picat site-ul! Si a stat picat cateva ore bune.

In final, rezultatul. Media mea: 9.73. Eram pe la mijloc. Am intrat. Ultima medie: 9.60. Daca mai greseam un singur exercitiu, eram picata! Socul ideii asteia a reusit sa reprime cam orice bucurie aveam ca am intrat.

Prima zi de facultate: Agitatie mare. Ne pregateam pentru discursul de deschidere. Principala dilema a studentilor era lecturarea orarului. Este facut intr-un format atat de aiurea incat iti ia ceva sa iti dai seama defapt ce ore ai, unde si cand. A doua dilema era cu caminele. Majoritatea studentilor habar n-au unde se afla caminul in care trebuiau sa stea. Stateam si share-uiam fiecare ce a inteles din orar si hartile gasite pe net cu campusul politehnicii. Discursul m-a facut sa mai cred pentru cateva momente ca chiar e o facultate interesanta... ne vorbeau de proiecte la care sa ne implicam, concursuri chestii... (da de unde, nu ai timp de asa ceva decat daca iti sacrifici orice viata personala)... si ne-a zis de vreo 10 ori sa nu ne angajam, sa stam sa invatam (aici are dreptate, nu imi dau seama cum cineva ar mai avea timp si de altceva, la poli fiind).

Vor urma si niste scurte review-uri ale materiilor si profesorilor avuti.