Top Page | Lists | User Login
201,897
Cine mai explică acum că dacă nu egalau ecuadorienii, "olandejii" conduceau in c... |
|||
posted on “dacă nu egalau englezii, danezii ar fi condus în continuare” |
Nişte angajaţi ai Urban Serv sunt foarte mândri de ei şi în ziua de astăzi pentr... |
|||
posted on mud |
există şi nişte bonus pack-uri în joc, dacă faci nişte achievementuri primeşti u... |
|||
posted on mai rapid ca rapidu |
regula de cinci secunde a devenit mult mai periculoasă de când cu pandemia... nu... |
|||
posted on curcubeie pe asfalt |
şi ca fun fact, nici măcar nu este primul chirurg din echipa Rapidului... am avu... |
|||
posted on te apără de goluri şi cardiace |
eu merg aproape sigur pe varianta b. pentru că e destul de uşor să verifici că a... |
|||
Am văzut şi eu trailerul mai demult. Chiar mă întrebam dacă au plătit redevenţă ... |
|||
posted on mai rapid ca rapidu |
Toate ca toate, dar eu fără cartofi prăjiţi nu-mi fac transplant! |
|||
posted on 1+1 gratuit: Organe |
Eh, când cei mai tineri fani ai Rapidului se apropie de 40 de ani, or fi zis şi ... |
|||
posted on te apără de goluri şi cardiace |
Sunt două variante aici: a. Ei nici nu s-au gândit dacă o să meargă maşina aia ... |
|||
Oare regula de cinci secunde se aplică şi la compresor? |
|||
posted on curcubeie pe asfalt |
pare că nu... |
|||
posted on de la student la senior staff engineer |
La multi ani? Mai primeşti ceva anul ăsta? |
|||
posted on de la student la senior staff engineer |
Măcar nu au fost 18... |
|||
posted on i-a luminat farul |
Scrie chiar de două ori! Oare a uitat că a scris prima oară, sau chiar l-a mai c... |
|||
posted on certitudinea marilor împliniri |
"Burn Bucharest, Burn You Fucking Maniacs" [Lake Of Tears, 11 Martie 2006]
ieri am trecut din nou la ora de iarnă... cu ocazia asta, am descoperit un bug în codul blogului... era legat de modul în care determinam dacă un post sau comentariu a fost scris cât timp era ora de vară sau ora normală...
mi-am adus aminte (nu cu plăcere) de ziua (de acum doi ani şi un pic) în care am scris codul care să returneze exact ce-am zis mai sus...
iată ce mizerie aveam în cod, scris cu mânuţele mele astea două:
<?php
if ($year == ‘2012’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 25)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 27)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
if ($year == ‘2011’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 27)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 29)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
if ($year == ‘2010’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 28)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 30)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
if ($year == ‘2009’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 29)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 24)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
if ($year == ‘2008’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 30)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 25)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
if ($year == ‘2007’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 25)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 27)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
if ($year == ‘2006’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 26)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 28)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
if ($year == ‘2005’)
switch($month)
{
case ‘January’:
case ‘February’:
case ‘November’:
case ‘December’:
$time_zone = ‘EET’;
break;
case ‘March’:
if ($day < 27)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
case ‘October’:
if ($day > 30)
$time_zone = ‘EET’;
else
$time_zone = ‘EEST’;
break;
default: $time_zone = ‘EEST’;
}
?>
deci da, 186 linii de cod, care ieri au fost înlocuite cu mai elegantul cod de jos:
<?php
$epoch = get_the_time(‘U’);
$local = localtime($epoch, true);
if ($local[tm_isdst])
$time_zone = ‘EEST’;
else
$time_zone = ‘EET’;
?>
nu ştiam eu pe atunci ce e aia unix epoch time, cu ce se mănâncă şi dacă nu există vreo funcţie directă care să-ţi calculeze dacă era dst sau nu...
—
acum, bineînţeles că o să vă întrebaţi, bah ce pana mea ne arată ăsta aici doo’ste de linii de cod, explicându-ne cât de ţicnit e...
partea cea mai tare dragi prieteni este că mă chinuisem la tot acel cod doar pentru a afişa după ora postului EET sau EEST... atât, acea informaţie nu e folosită în afişarea orei, doar a acelui indicator... este fabulos cât de obsedat pot să fiu...
—
nota 1: este absolut genial ca un post cu titlul “small code optimization” să aibă id-ul 8051... asta e doar pentru cunoscători...
nota 2: EET = Eastern European Time, EEST = Eastern European Summer Time
Monday October 31, 2011 - 23:58pm (EET)
Comments
(27 total) Post a Commentce tare e aia cu 8051 :D
şi eu am făcut la şcoală unix epoch time :D
Tuesday November 1, 2011 - 00:01am (EET) Comment Link
dude, that is wrong on so many levels :p
Tuesday November 1, 2011 - 10:26am (EET) Comment Link
date('I'); /* ? */
Tuesday November 1, 2011 - 21:18pm (EET) Comment Link
Your post is wearing blue...
Tuesday November 1, 2011 - 22:01pm (EET) Comment Link
haha, Sorin... that would have been too easy :D
Tuesday November 1, 2011 - 22:25pm (EET) Comment Link
ha, de fapt, se pare că există şi varianta date('T') care returnează direct „Timezone abbreviation”... super tare :D
Tuesday November 1, 2011 - 22:27pm (EET) Comment Link
Eu apreciez că eşti obsedat, dar este so wrong să scrii 186 de linii pentru get time :D
Tuesday November 1, 2011 - 22:31pm (EET) Comment Link
de aia îmi place mie PHP-ul. există o soluţie pentru orice prostie. şi dacă totuşi nu există, pot să-i dau cu system() :D.
Tuesday November 1, 2011 - 22:31pm (EET) Comment Link
(186 având în vedere că făcuseşi doar până în 2012, ia să vedem pe 10 ani) :))
Tuesday November 1, 2011 - 22:34pm (EET) Comment Link
da da da... păi de aia mă apucasem să-l refac, că ştiam că de la anul n-o să mai ştie ce să afişeze...
pe de altă parte, vârsta mea din căsuţa aia din stânga sus este calculată automat :D
Tuesday November 1, 2011 - 22:35pm (EET) Comment Link
nu se pune, nu a fost de la început, s-a ocupat Y! de asta :D
Tuesday November 1, 2011 - 22:36pm (EET) Comment Link
dacă ai fi fost fată şi ar fi fost vârsta calculată automat, după o anumită vârstă ai fi învăţat PHP doar ca să nu mai fie calculată automat. (şi le-ai zice vizitatorilor că e o eroare de programare)
Tuesday November 1, 2011 - 22:38pm (EET) Comment Link
:( Sorin read my mind
Tuesday November 1, 2011 - 22:39pm (EET) Comment Link
stai, cum adică nu se pune că s-a ocupat Y! de asta ?
Tuesday November 1, 2011 - 22:43pm (EET) Comment Link
eh, păi nu a fost automat făcut de tine de la început :D
Tuesday November 1, 2011 - 22:44pm (EET) Comment Link
ca la edison şi tesla :D
Tuesday November 1, 2011 - 22:45pm (EET) Comment Link
ba da măi, de la Yahoo nu am putut copia decât clasele CSS, adică aspectul vizual pentru că niciodată nu poţi vedea codul php al unui site...
deci tot ce e php (automat sau nu) e scris de mine în aşa fel încât să semene perfect cu ce avea şi Yahoo-ul, dar nu e direct copiat de la ei...
Tuesday November 1, 2011 - 22:46pm (EET) Comment Link
poţi să vezi codul dacă nu au short_tags = On şi le folosesc, sau dacă cineva a luat codul php şi l-a pus într-un comentariu html. sau dacă a făcut echo file_get_contents(); crezând că asta e un fel de require :D. (toate sunt întâlnite de mine)
Tuesday November 1, 2011 - 22:51pm (EET) Comment Link
funny...
Tuesday November 1, 2011 - 22:52pm (EET) Comment Link
aoleu, iar te bat :)) ştiu că nu poţi vedea codul php şi că tu ai luat doar css şi că ai scris alt cod. dar nu a fost aşa de la început, nu e ideea ta, asta zic
Tuesday November 1, 2011 - 22:52pm (EET) Comment Link
ah, la idee te referi... da, să ştii că nu m-am dus cu ea la biroul de patente :D
Tuesday November 1, 2011 - 22:53pm (EET) Comment Link
nu a fost ideea lui să se calculeze vârsta automat pe un site? probabil nici a celor de la yahoo nu a fost ..
Tuesday November 1, 2011 - 22:55pm (EET) Comment Link
aoleu aoleu change the topic
Tuesday November 1, 2011 - 22:56pm (EET) Comment Link
voi nu sunteţi în aceeaşi cameră cu laptopurile şi vorbiţi între voi prin commenturi pe blogul meu nu ? că ar fi prea autistic...
Tuesday November 1, 2011 - 22:56pm (EET) Comment Link
eu sunt în pat cu pisica, sorin nu ştiu ce face. probabil el e cu două :D
Tuesday November 1, 2011 - 22:57pm (EET) Comment Link
două pisici şi-un porc :D (pentru cunoscători)
Tuesday November 1, 2011 - 22:59pm (EET) Comment Link
Deci ca sa inteleg... If year > 2012 then halt?
stii la ce ma refer :)
Wednesday November 2, 2011 - 11:14am (EET) Comment Link