logical

Top Page  |  Lists  |  User Login

logical
  • Andrei Gheorghe, 35
  • Bucureşti, România
  • Work: Infineon Technologies
  • School: Fac. de Electronică şi Telecomunicaţii

 

Total Page Views

128,071

RECENT COMMENTS

July 1, 2021 - 14:36

Specter

Au mutat j-ul de la coadă mai pe la mijloc că atârna şi le era frică să nu li se...

posted on euro 2020, în 2021


June 30, 2021 - 14:39

logical

a fost chiar palpitantă treaba că curierul care trebuia să vină cu primul televi...

posted on (cel) mai varză (e mag)nat – partea 2


June 30, 2021 - 14:16

Adi

Pai şi au venit cei de la Altex pentru retur? :P

posted on (cel) mai varză (e mag)nat – partea 2


April 25, 2021 - 23:03

logical

update după 3 zile... no problems, as expected... doar am fost mult mai adormit ...

posted on eu îţi scriu atât de des…


April 3, 2021 - 16:36

logical

aş vrea să fie aşa, dar...

posted on de la student la senior staff engineer


April 3, 2021 - 13:00

Specter

Felicitări bre. Presupun că firele albe din barbă sunt glumă de 1 aprilie şi de...

posted on de la student la senior staff engineer


February 27, 2021 - 21:37

Specter

Îmi place recursivitatea feţei de masă cu cina cea de taină; poţi sărbători Paşt...

posted on atenţie – cad bibelouri


February 20, 2021 - 19:43

Specter

Păi şi la noi toţi tinerii erau împotriva pomenilor de la stat date de PSD şi ac...

posted on fani bipolari


February 4, 2021 - 01:03

logical

comentariile sunt chiar mai bune la postul cu rusoaica...

posted on maletă afish, caramel


February 3, 2021 - 14:29

Specter

Rusoaica a fost subiectul unui post legendar de pe la începuturile blogului, pe ...

posted on maletă afish, caramel


February 2, 2021 - 22:30

inexpri...

@Specter Care rusoaica? @logica l Da, nu prea comentez, desi am vrut sa zic c...

posted on maletă afish, caramel


January 22, 2021 - 22:11

logical

îl pun pe listă, acum am început Vikings

posted on chess, drugs and gibson cocktails


January 22, 2021 - 21:35

Specter

Am văzut şi eu trailerul mai demult şi mi s-a părut interesant, deşi poate un pi...

posted on chess, drugs and gibson cocktails


December 30, 2020 - 13:33

Specter

Câteva observaţii: - Ce ai cu bietele familii? E vina lor că-s unii retardaţi...

posted on arde petarde retarde


December 14, 2020 - 23:23

Specter

Lumea nu vrea să fie dezamăgită. Cum ar fi să-i apuce simptomele, să se panichez...

posted on fluimucil

   "Burn Bucharest, Burn You Fucking Maniacs" [Lake Of Tears, 11 Martie 2006]

small code optimization
small code optimization

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

Tags: , ,

Monday October 31, 2011 - 23:58pm (EET)

Comments

(27 total) Post a Comment

ce 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

anca

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

Specter

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

Compose a comment for this post

Limit 65535 characters.No HTML, please.

Notify me of followup comments via e-mail

SEARCH
ARCHIVE

Valid HTML 4.01 Transitional