Pontul zilei

Nu exista comentarii

Task-urile complexe necesita o logica simpla.

Task-urile simple nu conteaza ce logica au.

Pagini web

Nu exista comentarii

Am inteles acum mult timp necesitatea ca ziare si alte chestii scrise pe hartie sa contina scris negru pe o pagina alba.

De ce e nevoie ca majoritatea paginilor de pe web sa contina fond alb si scris negru?

Intrebare: cum credeti ca e mai bine? alb pe fundal negru sau negru pe fundal alb, si de ce?

Dogma – Programatori

Nu exista comentarii

Exista o dogma in lumea programatorilor care este inteleasa mai bine printr-o mica povestire (tradusa de mine):

Demult, tare demult, intr-o tara foarte indepartata, directorul de dezvotare se duce la Maestrul Fu si ii spune ca are un proiect foarte important, il detaliaza si isi doreste sa stie cat timp ii va lua unui programator sa faca tot ce este necesar.

“Sase luni de zile”, raspunde Maestrul Fu.

“Dar este mult prea mult. Si daca folosesc doi programatori?”

“Un an de zile” vine raspunsul.

“Sa zicem ca pot obtine fonduri si angajez douazeci de programatori pentru asta, cat va dura?”

“Programul tau nu va fi niciodat gata.”

Nu am cunoscut pana azi nici un programator care sa semene cu altul in gandire. Aceste diferente de mentalitate fac ca doi programatori sa nu poata sa functioneze optim in conditiile in care se ocupa de acelasi proiect.

Legile … programarii, daca vreti

Nu exista comentarii

The Laws of Computing.....

First law	- The Computer is always right.
Lemma one	- Programmers are occasionally right.

Second law	- The amount of time needed to debug a program is
		  inversely proprotional to the time allotted for
		  debugging.
Corollary	- Programs never work the first time unless there is
		  virtually unlimited time to complete the program.

Third law	- Any programmer can find 90% of his bugs simply by
		  explaining his program to an uninterested observer.
Corollary	- The uninterested observer may be sleeping, dead,
		  nonhuman, or, in extreme cases, nonexistant.

Fourth law	- The most difficult or nearly impossible programming
		  problems appear obvious or extremely simple to anyone
		  with little or no knowledge of programming.
Corollary	- Those problems most easily solved by a programmer
		  appear to be overwhelmingly complicated and marvelous to
		  the layman.

Fifth law	- Computers are never more intelligent than their
		  programmers.
Corollary	- Most computers are incredibly stupid.

Sixth law	- The rarest bugs in any operating system or major
		  programming effort will always show up in a demonstration
		  of its use to prospective users or customers.
Corollary	- These bugs usually cannot be reproduced and therfore
		  cannot be located.
Lemma one	- Customers will never purchase programs which appear to
		  be riddled with bugs as verified by demonstration.
Paradox		- Most programs are unfit for sale.

Functie PHP: levenshtein

Nu exista comentarii

Manual: http://www.php.net/manual/en/function.levenshtein.php

Este o functie descoperita de curand, de mine cel putin, care ofera posibilitatea de a aproxima asemanarea intre doua string-uri de maxim 255 de caractere prin returnarea unei valori intre 0 si 255 in functie de algoritmul levenshtein.

Aparent, mi se pare o super idee folosirea acestei functii pentru a returna valori de genul “Did you mean: ….” in stilul Google.

Un exemplu de cod sursa care implica folosirea acestei functii:

<?php

function runlevenshtein($dictionary_arr, $word)
{
$best_match = $dictionary_arr[0];
$match_value = levenshtein($dictionary_arr[0], $word);

foreach($dictionary_arr as $w) {
$value = levenshtein($word, $w);
if( $value < $match_value )
{
$best_match = $w;
$match_value = $value;
}
}
return($best_match);
}

$dictionary = array(
“php”, “javascript”, “css”
);
$word = “japhp”;

$best_match = runlevenshtein($dictionary,$word);
echo “Did you mean the ‘$best_match’ category?”;

?>