ublo
bogdan's (micro)blog

bogdanel » valoarea informației

01:13 am on Nov 26, 2012 | #more | tags:

un mic exemplu despre valoarea informației. avem jocul de mai jos. poți apăsa pe oricare dintre imaginile roșii din stânga pentru a alege unul dintre semne: piatră, hârtie sau foarfece. în același timp, calculatorul alege la întâmplare unul dintre semne, afișându-l în dreapta. regulile jocului sunt foarte simple: piatra pierde în fața hartiei dar câștigă în fața foarfecelor și hărtia pierde în fața foarfecelor. în cazul în care alegi același semn cu al calculatorului este remiză și nimeni nu câștigă niciun punct.

până aici totul este clar. poți să îl joci de test de câteva ori. indiferent ce strategie alegi, ținând cont că în acest moment ai doar informația de mai sus, ai șanse egale de căștig în fața calculatorului. mai mult, fiecare dintre voi, după un număr mare de runde, veți fi câștigat aproximativ 33.33% din numărul de jocuri.

dacă ai studia jocul calculatorului, ai observa că în 36% din cazuri calculatorul alege foarfece, în 32% din cazuri piatră și în 32% din cazuri hârtie, informație suficientă pentru a înclina balanța în favoarea ta. strategia cea mai bună în această situație e să joci întotdeauna piatră. pentru că în acel moment, proabilitatea de a câștiga o rundă devine:

100% * 36% + 0% * 32% + 0% * 32% = 36% față de
33.33% * 36% + 33.33% * 32% + 33.33% * 32% = 33.33% în cazul perfect aleator.

poți testa aceste observații folosind joculețul de mai jos. pentru teste relevante va trebui sa joci un număr destul de mare de runde.

tu:

adversar:

runde jucate:

bogdanel » noi muncim!

02:10 pm on Nov 25, 2012 | #more | tags:

în primele 9 luni ale anului, 16 481 de firme au intrat în insolvență. dacă nu pare alarmant, sunt cu 7.59% mai multe decât în 2011 și cu 17.17% mai multe decât în 2010 (de-aici). acum e? experiența ultimilor ani mi-a scos în evidență doi factori care prevestesc declinul.

lipsesc rezultatele

cu rădăcini adânci în ideologia marxist-leninistă a României socialiste, generații întregi au muncit pentru că trebuia. fast-forward în uniunea europeană, unde ajutați de programele pre- și post-aderare am dobândit cunoștințe suficiente despre managementul unui proiect: cu scopul, obiectivele, activitățile, monitorizarea, evaluarea și sustenabilitatea lui. din nefericire, asemeni unui copil care învață o poezie, primele elemente ale ciclului de viață al unui proiect sunt stăpânite mai bine decât cele din urmă. și asta ne costă. pentru că ancorați în construirea obiectivelor perfecte și a procedurilor prin care activitățile sunt implementate și monitorizate, pierdem din vedere esențialul: măsura în care ne atingem scopul.

am văzut de nenumărate ori eforturi impresionante investite în campanii de marketing și p.r. care s-au tradus în vânzări modeste, reorganizări și restructurări care au ucis afaceri, investiții în produse geniale care atunci când au fost gata nu au fost valorificate corespunzător, sau - cu tentă electorală - focusul pe campanii online când nicușor dan ne-a arătat că un individ curat, cu o campanie de p.r. perfectă poate obține maximum 10%. exemple sunt multe pentru fiecare categorie.

soluția? adu-ți aminte care a fost scopul inițial și scrie-l pe o hârtie în fiecare dimineață. poate sună aiurea, însă având scopul în minte în fiecare zi, acesta îți va influența fiecare decizie.

lipsa educației

odată cu democrația, am importat din vest și modelele de succes. tocilari care au strâns averi impresionante renunțând la facultate și făcând ceea ce le place în garajul părinților. din păcate am importat doar jumătatea frumoasă a poveștii, pentru că în spatele fiecărui personaj se află echipe întregi de management care îi oferă acestuia - sau oricărui alt om aflat la conducere - materia primă pentru deciziile bune: informațiile.

explozia de oameni bogați din anii '90 a avut ca promotor informațiile culese, procesate și scurse din fosta securitate. întreruperea acestui flux providențial trimițându-i pe majoritatea în praful din care s-au ridicat. din fericire, educația oferă o soluție agreată de convenția de la geneva pentru a obține informații folositoare. cei care și-au păstrat averea, fie și-au construit echipe de consilieri competenți, fie s-au extins atât de mult în prima fază încât declinul lor a fost întârziat (dinu patriciu).

soluția? învață. dezvoltă-te. cumpără inteligență.

sursă foto: andertoons.com

bogdanel » loterie

10:58 pm on Nov 4, 2012 | #more | tags:

ana* s-a hotărât să joace la loterie în fiecare săptămână. ea crede că la un moment dat șansa îi va surâde. tradițional, la noi jocul constă în extragerea a șase bile dintr-o urnă care conține 49 de posibilități. probabilitatea de a fi norocosul câștigător, jucând o singură variantă simplă (cost? 4 lei) este de 1 la 10,068,347,520. să presupunem că ana are 30 de ani și o speranță de viață de 78 de ani (src), putând astfel să joace de 2,496 de ori. pentru a-și maximiza șansele, ana va juca întotdeauna aceeași variantă. astfel, probabilitatea pentru a câștiga o dată în tot acest timp este:

2,496 x (1 / 10,068,347,520) x (10,068,347,519 / 10,068,347,520)2,495 = 2.497 x 10-7

adică, o șansă din patru milioane. conform statisticilor uniunii europene, este de 946 de ori mai probabil să moară într-un accident de mașină (src) și de 112,134 mai probabil să dezvolte cancer la sân (src). singurul eveniment mai improbabil este să îi i-a locul monicăi tatoiu. mai exact, de 1.922 ori mai improbabil! =)

* am folosit un nume generic, pentru simplitate.

bogdanel » pic32-pinguino-otg enc28j60 example

11:10 pm on Nov 1, 2012 | #more | tags:

for a week or so i'm searching the internet for a simple example (that can be easily expanded) on how to use the pic32-pinguino-otg with a UEXT connected enc28j60 module (both from olimex). and of course i didn't wanted to use the "universal" microchip tcp/ip stack that requires MPlab. after digging quite a lot trough the pinguino repositories, i managed to compile a set of working header files (which you can find here) and a small program from which you can ping your boards. for the library to work, copy it under %pinguino/p32/include/pinguino/libraries/ethernet, where %pinguino is the path to your pinguino installation folder. i used pinguino X.3 and it compiled fine.

/*----------------------------------------------------- 
Author:  --<>
Date: 28/Oct/2012
Description:

-----------------------------------------------------*/
#include <ethernet/ip_arp_udp.h>
#define BUFFER_MAX    224

static u8 buf[BUFFER_MAX+1]; // the received message
u16 len; // the length of the received messages

void setup() {
	// put your setup code here, to run once:
	// this is the enc28j60 ip address
	u8 myip[4] = { 192, 168, 2, 2 };
	// this is the enc28j60 mac address
	u8 mymac[6] = { 0x02, 0x04, 0x08, 0x10, 0x12, 0x14 };
	init_ip_arp_udp (mymac, myip);
	enc28j60Init (mymac);
	}

void loop() {
	len = enc28j60PacketReceive(BUFFER_MAX, buf);
	CDC.printf("received! len: %d\n", len);
    
	if (len == 0) {
		return;
		}
	if(eth_type_is_arp_and_my_ip(buf, len)) {
		make_arp_answer_from_request(buf, len);
		return;
		}
	if(eth_type_is_ip_and_my_ip(buf, len)==0) {
                return;
                }

	if(buf[IP_PROTO_P]==IP_PROTO_ICMP_V && buf[ICMP_TYPE_P]==ICMP_TYPE_ECHOREQUEST_V) {
		// the ping reply
		make_echo_reply_from_request(buf, len);
		return;
		}
	}

bogdanel » motivațional

10:56 pm on Oct 30, 2012 | #more | tags:

mi-aduc aminte cu plăcere de starea pe care am avut-o la conferința leadership 530°. deși obosit și stresat am reușit să surprind puțin din scânteia pe care participanții au primit-o de la cei trei vorbitori: marian, mircea și bruno. exercițiul pe care vi-l propun - derivat din ceea ce-am prins - este următorul: în fiecare dimineață, imediat după ce te trezești, fixează-ți în minte imaginea celei mai recente realizări încercând să explorezi prin amintiri senzațiile. în același timp ascultă una dintre melodiile de mai jos și strânge cu putere pumnul drept. atunci când vei rămâne fără soluții și moralul nu va depăși nivelul podelei strânge cu putere pumnul și fredonează melodia. efectul e garantat =)

tina turner - simply the best, queen - we are the champions, vangelis - chariots of fire, ennio morricone - ecstasy of gold, survivor - eye of the tiger, bon jovi - it's my life, turisas - stand up and fight, hans zimmer - arrival to earth, michael jackson - beat it, van halen - jump

bogdanel » vreau să-l fac! pot să-l fac! îl fac!

11:45 pm on Oct 26, 2012 | #more | tags:

nu mă încântă trainingurile sau conferințele motivaționale. deși am furat câteva idei de la prietenii mei traineri, consider că majoritatea cursurilor oferă «easy answers» pe care unii oameni au nevoie să le audă de la cineva cu autoritate.

cu tot scepticismul meu, ieri mi-am schimbat părerea și am văzut ce înseamnă cu adevărat un seminar motivațional.

am dat o mână de ajutor la leadership530° al lui marian și cum sunetul a încăput (ca aproape de fiecare dat?) pe mâna mea, am avut norocul să urmăresc întregul eveniment cu atenție și teamă că ceva nu va merge. energizați de marian, pregătiți de mircea, descompuși și reasamblați de bruno, strigând mantra din titlu, aproape 240 de oameni au trecut cu tălpile goale prin cărbuni proaspăt scoși din foc.

mi-e greu să exprim în cuvinte energia unei mulțimi cu un singur scop: să-și cucerească teama. și nu e nicio «șopârlă» la mijloc: focul e real, arde și e la fel de periculos că orice foc. și totuși, prin spectacolul realizat, participanșii au prins curaj și au trecut peste jar.

sub îndrumarea unui italian nebun, care a știut să facă spectacol de unul singur - folosindu-se de muzică, dansând, combinând stand-up-ul cu discursul motivațional, amestecând hipnoza cu joculețe antrenante - am văzut cum unul câte unul, indiferent de vârstă, au avut curajul să-și învingă teama.

abia acum înțeleg entuziasmul lui cristi popa când îmi povestea cum a trecut prin foc. sincer, experiența merită și sper ca data viitoare să fiu un simplu participant.

[youtube=http://www.youtube.com/watch?v=GC5E8ie2pdM]

bogdanel » 5 sfaturi despre cum să-ți asamblezi singur mobila

05:01 pm on Oct 14, 2012 | #more | tags:

sărind peste context, mi-am luat mobilă pentru dormitor. sursa? www.targuldemobila.ro. nu insist pe detalii, ci pe faptul că a trebuit să-mi asamblez singur un pat, două noptiere, un șifoner cu patru uși și o comodă tv. mai jos 5 sfaturi referitoare la proces:

1. deși în manual scrie că o persoană poate asambla oricare dintre obiectele de mai sus cu o șurubelniță în cruce, un inbus (inclus) și un ciocan, nu recomand pornirea la drum fără o șurubelniță electrică cu doi biți (unul în cruce și un inbus potrivit) și un burghiu de 1.6 sau 2mm.
2. deși în manual scrie că pentru unele bucăți ar trebui să folosiși ținte (sunt incluse), recomand achiziționarea unor șuruburi suplimentare pentru a prinde în special spatele șifonerului. în timp țintele tind să alunece și să scape. am avut noroc și în pachetele pe care le-am primit am găsit o mulțime de șuruburi suplimentare.
3. deși în manual nu scrie, acolo unde nu sunt semne pentru ?urub (ex. balamalele ușilor, rotișe pentru deplasare) folosește burghiul de mai sus pentru a crea un canal de ghidaj: previi spargerea materialului iar șurubul va intra mult mai repede la locul lui.
4. deși în manual nu scrie, nu strânge toate șuruburile ”din prima”. mai bine prinde-le pe toate și când obiectul este asamblat, finisează-l prin strângerea tuturor șuruburilor.
5. deși în manual nu scrie, ar fi bine să ștergi toate părțile componente cu solușie pentru mobil? (ex. pronto) înainte de a le asambla.

Alte chestii care-mi vin în minte:

1. pentru protejarea parchetului în timpul deplasării unui corp mai voluminos, folosește un covoraș inserat între acesta și parchet. e mai ușor de deplasat și nu vei zgâria parchetul.
2. încearcă să construiești aproape de locul unde va fi așezat respectivul obiect.
3. ar fi bine să mai fie cineva care să-ți dea o mână de ajutor. nu mă înțelege greșit, poși să le asamblezi singur, însă ar fi puțin mai ușor.
4. pentru rezistență sporită, unele îmbinări ar putea fi unse cu adeziv (aracet). spre exemplu interiorul patului.
5. nu te zgârci la ținte sau șuruburi. dacă nu ai suficiente, cumpără.
6. din balamale poți regla modul în care se închid ușile. au câte două șuruburi. folosește-le.

bogdanel » ideas for the modern computer

08:12 am on Oct 1, 2012 | #more | tags:

modern computer has its roots in scientific computing service ltd, a british company incorporated by leslie comrie in 1937. the company owned thousand of parallel computers scatter across the country, the "processors" being women working in teams and performing steps from complex algorithms, helped by rudimentary mechanical calculators. this model served as inspiration for alan turing's ideas.

reference: nature 486, 12 june 2012, pg. 321
photo source: bbc history

bogdanel » modern spies don’t use microphones

10:44 pm on Sep 28, 2012 | #more | tags:

an article for all my paranoid friends and acquaintances.

i love spy movies. i really do. with little to no exception most of them depict the use of "bugs" to spy on a conversation. more, due to our communist legacy, we (romanians) are proficient at spying. romanian "bugs" were generously (re)covered by our media: here, here and here. unfortunately most of these stories are focused on pretty old, flawed technology.

the "bug", no matter how small and miniaturized, has a built in weakness: it has to send the information collected to the listener and the preferred medium is modulating an electromagnetic field and actively transport it. needless to say that power sources are involved requiring maintenance.

a better, safer and passive way of spying on other people should start from the definition of a microphone:

microphone: an instrument capable of transforming sound waves into changes in electric currents or voltage, used in recording or transmitting sound.

first, capturing sound is quite easy: the pressure waves travel through an elastic medium bouncing of various surfaces, including windows. the glass is a relatively elastic medium and forced by the sound waves inside - vibrates, transporting inside information to the outside world.

but is there a device capable of measuring the tiny vibration of windows, from a relatively safe distance, in order to recover the leaked information? of course, and it's around from 1897 when michelson and morley laid the foundation of special theory of relativity: the michelson-morley interferometer. a tool used to measure tiny length variations made by current technologies cheap and suited for spying.

the above picture shows a sketch of the apparatus. any vibration of the movable mirror M1 - actually the spied window - is translated in a variation of the interference pattern, simple enough to be analyzed in real time and converted into sound. using infrared laser diodes (extremely cheap and easy to process with a webcam) you get an invisible, passive, hard to detect "bug". there are some technical difficulties but any student with basic understanding of the interference process is able to solve them.

my security advice: along with searching for hidden microphones one should be careful talking in a room with outside windows. and no, thermopane® windows are not immune but a thick curtain can greatly improve your privacy.

photo source: here.

bogdanel » cheap low power PIR sensor

09:12 pm on Sep 23, 2012 | #more | tags:

recently i had a problem. i needed to build a wireless PIR sensor that could be powered by a LiPo 1400mAh battery. seems like a lot of juice, but thinking that the wixel draws usually almost 30mA and a mangled PIR sensor 8mA, the sensor would have to be recharged every 1.5 days. not a practical approach. through some neat hack i managed to send the wixel in sleep mode, making it draw less than 100uA, but still had the power hungry PIR sensor.

today i managed to solve this problem also. using a cheap (~$15) PIR sensor with a nice housing and a few components i managed to bring the PIR sensor as low as 1.6mA (measured), making the battery last for 34 days. here's how:

first remove the PIR element. it's quite big component, encased in metal and with a window for sensing IR radiation. be careful when removing it as it is quite a sensitive component! then gather the components and build this schematic:

components list:
IS1 is the PIR element. this component was on my Eagle library and matched the dimensions of the one i recovered.
R1, R3 = 47K
R2 = 18K
R4, R8 = 1M
R5 = 1K
R6, R7, R9 = 100K
R10 = 330K
C1, C7 = 10uF (there is no mistake! C7 is 10uF but can be polarized. i used tantalum capacitors)
C2, C3 = 4.7uF
C4, C5, C6 = 10nF
IC1A, IC1B = TL082
JP1 = a 3 pin connector in which 1 = +3V3, 2 = signal (connect to wixel P1_0), 3 = GND
JP2, JP3, JP4 = 2 pin connectors as there's always a good idea to serve power to other devices

notes:
the R9, R10, C7 group sets the sensitivity of the PIR sensor. this setup worked for what i wanted but trust me, it took about 3 hours of testing to get to those values and configuration. the interrupt on P1_0 of the wixel should be configured for raising edge, not falling. R10 is needed to lower the IC1B output potential below the interrupt threshold. an IR event sends the IC1B output close to 3.3V followed by a drop to almost 0V then back to almost 1.65V (this is the value you should have when idle). with R9/R10 the idle voltage is close to 1.26V making the interrupts stable. setting R10 higher, moves this point close to 1.65V when the interrupts are unstable. making it lower decreases the sensitivity. i don't recommend getting under 56K (standard value) as the interrupts cannot be triggered anymore.

bibliography:
i drew inspiration from Micropik's D203B PIR element datasheet.