A legeslegújabb kisföldlakó.

Kovács Noémi Fruzsina
Született: 2013.03.25 ~14:10
Súly: 3835g
Hossz: 56cm

Mindenki jól van.

2013-03-25 14.13.532013-03-25 14.14.112013-03-25 14.21.342013-03-25 14.21.412013-03-25 14.29.392013-03-25 14.29.48

Kategória: Uncategorized | 2 hozzászólás

nosztalgia

9. uzenet. Felado: Hoagie, Temakor: Hmm.
Nincs halal medalom, nem vagyok sarkany es nem hordok mithral pancelt.
A vilag egyik legregebbi es leg elborultabb jatekat jatszom, es rajtam
kivul meg nagyon sokan ertik, hogy mire gondolok, amikor azt mondom: Krowlw
berruu omenvfol!
Csaladnevem nem letezik, es nem orulok, amikor az uj jatekosok osszekeverik
Vipunent a jatszassal.
Buszken gondolok Greersonra az igazsagosra. Az elso barbar olesemre,
Rodolfora az arusra.
Szeretem Unityt, a zold botot, a fenyvert tekercset es a bugos italokat!
Itt elek egy tavoli szerveren.
Triggerelesben mi vagyunk a csaszarok! Es igenis nalunk elnek a vilag
legkockabb emberei!

Elveszett vilag! En igy szeretlek!

Kategória: Uncategorized | Szóljon hozzá most!

error suppression improvements with php 5.4

As I mentioned in my recent talk, the upcoming php 5.4 version brings a bunch of really nice and long awaited features and a lot bugfixes and improvements.

One of the those is: “Improved performance of @ (silence) operator“, which I’ve just blogged recently.

Let’s see how things changed with 5.4:

Executing baseline.php

real    0m0.664s
user    0m0.660s
sys     0m0.004s
Executing baseline+error.php

real    0m4.895s
user    0m4.884s
sys     0m0.000s
Executing baseline+error_handler.php

real    0m0.644s
user    0m0.644s
sys     0m0.000s
Executing baseline+suppression.php

real    0m1.025s
user    0m1.012s
sys     0m0.012s
Executing baseline+error+error_handler.php

real    0m13.003s
user    0m12.973s
sys     0m0.004s
Executing baseline+error_handler+suppression.php

real    0m1.036s
user    0m1.036s
sys     0m0.000s
Executing baseline+error+suppression.php

real    0m5.634s
user    0m5.624s
sys     0m0.000s
Executing baseline+error+error_handler+suppression.php

real    0m13.357s
user    0m13.329s
sys     0m0.000s

For comparison, here is the same test with my debian(dotdeb) 5.3 results for the same test on the same virtual machine:

Executing baseline.php

real    0m3.252s
user    0m3.212s
sys     0m0.036s
Executing baseline+error.php

real    0m9.094s
user    0m9.069s
sys     0m0.008s
Executing baseline+error_handler.php

real    0m3.137s
user    0m3.112s
sys     0m0.016s
Executing baseline+suppression.php

real    0m4.116s
user    0m4.104s
sys     0m0.004s
Executing baseline+error+error_handler.php

real    0m27.172s
user    0m27.102s
sys     0m0.012s
Executing baseline+error_handler+suppression.php

real    0m4.057s
user    0m4.048s
sys     0m0.004s
Executing baseline+error+suppression.php

real    0m10.298s
user    0m10.261s
sys     0m0.016s
Executing baseline+error+error_handler+suppression.php

real    0m28.695s
user    0m28.626s
sys     0m0.012s

As you can see, there is a general performance improvement(5x speedup in the baseline, 2x for baseline+error), but the differences between each case seems to be similar in percentage than it was before, so using the suppression operator still negligible, but having an error generated or your custom error handler called still noticeably slower.

Kategória: Uncategorized | Szóljon hozzá most!

tyrael@php.net reloaded

I was asked by Flavius Aspra to write a blogpost in english about my recent experiences about being a newcomer in the php crew.

To summarize my previous post, I mentioned that I’m following the php internals mailing list for a while now, and some of the devs pushed me to contribute more, so I fixed some tests when Rasmus posted his CTA.

Things went “downhill” from here: I got my svn account accepted in about 2 hours, Pierre got me an “Visual Studio Ultimate with MSDN Download All NFR” from Microsoft to be able to build php on more platforms, and I ended up being the maintainer of the peclweb codebase(you wouldn’t belive the bugs that I found there…).

So this the short story of me ending up as a php contributor.

My experiences are mostly positive, there are a lots of stuff to fix/improve and usually the people on irc and the mailing lists are really nice (except those few trolls lurking around there), and there are some old grudge between a few people, so sometimes there are arguments beyond reason.

I usually try to follow Vash on his path, but sometimes I just fail:

love and peace

ps: maybe I should get some sleep…

Kategória: Uncategorized | 1 hozzászólás

performance of error handling in php

We had a little bit of a discussion on twitter about the performance implications of errors in php.

I won’t surprise you as it is (should be) well-known that the error generation and the error suppression is slow. See this blogpost from Derick Rethans: http://derickrethans.nl/five-reasons-why-the-shutop-operator-should-be-avoided.html

So basically @$foo = bar; is slow because:

  • an error will be generated and formatted regardless the error_reporting level or the existence of a custom error handler, because you can access the last error through error_get_last and $php_errormsg
  • the @ operator only wraps the statement between two ini call: setting the error_reporting to 0, and restoring it to the original value. this is 2 more call to be executed and as you would guess, this means if you have a custom error handler, where you didn’t set the second $error_types parameter in your set_error_handler call, your custom error handler will be executed on the suppressed errors.
  • as Derick pointed out, the Zend Engine will generate slower code to the suppressed statements.

I’ve just wrote a little benchmark on the issue, available on github

Basically it executes an assigment in a for loop, either using the string ‘foo’ or the non-existent constant foo, which will fallback to ‘foo’ and trigger a notice (I know, it is not a perfect test, because the constant lookup also has some overhead, but still better and more close to the real life issues than trigger_error()).

I mixed this with using the suppress operator and a custom error handler, here are the results:

tyrael@thor:~/checkouts/php-microbenchmarks$ ./src/testError/test.sh
Executing baseline.php

real    0m1.280s
user    0m1.257s
sys     0m0.023s

Executing baseline+error.php

real    0m7.299s
user    0m7.276s
sys     0m0.022s

Executing baseline+error_handler.php

real    0m1.284s
user    0m1.255s
sys     0m0.029s

Executing baseline+suppression.php

real    0m2.035s
user    0m2.011s
sys     0m0.021s

Executing baseline+error+error_handler.php

real    0m20.405s
user    0m20.377s
sys     0m0.021s

Executing baseline+error_handler+suppression.php

real    0m2.000s
user    0m1.973s
sys     0m0.027s

Executing baseline+error+suppression.php

real    0m8.293s
user    0m8.271s
sys     0m0.021s

Executing baseline+error+error_handler+suppression.php

real    0m20.869s
user    0m20.842s
sys     0m0.020s
  • As you can see the overhead of having a custom error handler is almost negligible if it isn’t called.
  • The suppression operator adds a small overhead without errors. (~1.6X)
  • Having an error without @ or  custom error handler still slow (~5.7X).
  • if you have an error and a custom error handler which gets executed, that yields for a ~10X performance loss, regardless of using the suppression operator or not.

So my advices:

  • if you see errors in your log, fix them, thats also a performance gain.
  • if you use custom error handler, don’t forget to set the $error_types, you can use bitmask like for error_reporting(in our case E_ALL &~ E_NOTICE), or you can pass the error_reporting() to set your handler to the same level as your error_reporting.
  • don’t overuse the @ operator, and if you do, always handle the return values of your suppressed statements, or you will suck big time when you have to debug your application (check out the scream pecl extension or xdebug.scream)
Kategória: Uncategorized | Címke: , | 1 hozzászólás

tyrael@php.net

Üdv.

Az elmúlt 1 hétben történt 1-2 dolog, amit úgy gondoltam hogy érdemes lehet megosztanom.

Aki ismer, az tudja, hogy már jóideje olvasója, illetve időnként hozzászólója vagyok a php-internals levlistának.

Nem olyan régen ismét előkerült a téma, hogy el kellene kezdeni a következő php verzió kiadását szervezni, az eddig szándékosan kerülgetett verziónév is tisztázódott, mostmár biztos (bár végülis a php6-os fiaskó után semmi sem biztos. :P) hogy az 5.4 lesz a következő verzió.

Ez már önmagában is hírértékű, és terveztem is egy blogbejegyzést hogy jelen állás szerint milyen változásokat hoz ez az új verzió, de lépjünk ezen most túl.

A kiadás körüli beszélgetés során Rasmus bedobta hogy nagyon nagy szükség lenne rá, hogy a hibás tesztek javításra kerüljenek, segítve ezzel a fejlesztők munkáját, hogy nekik már csak a hibátlan tesztek által jelzett bugok javításával kelljen foglalkozni.

Mivel már régóta heccelt vele egy bizonyos core fejlesztő, hogy mindíg csak a szám jár, de nem küldök patchet, ezért úgy döntöttem, hogy ez lesz a nekem való feladat, és a hétvégémből néhány órát rászánva javitottam néhány tesztet, majd bekültem a levlistára a patchet meg a jelentkezésemet.

Másnap reggel örömmel és nem kis meglepetéssel konstatáltam, hogy mindenféle cécó nélkül elfogadásra került, ami azt jelenti hogy lett csillivilli @php.net -es email címem(tyrael userrel természetesen), illetve tudok commitolni az svn repóba (egyelőre a test könyvtárakra van karmám).

A másik kellemes meglepetés ezután ért, ugyanis a már korábban említett php core fejlesztő, név szerint Pierre Joye feldobta, hogy ha már úgyis szoktam windows alól is php-t forgatni, biztos hasznomra válna, ha nem (csak) a Visual Studio Express-szel tudnék dolgozni, őt pedig egészen véletlenül a munkaadója révén (Microsoft) tudna nekem intézni MSDN előfizetést.

Tegnap reggel meg is kaptam az értesítő emailt, hogy aktiváljam a “Visual Studio Ultimate with MSDN Download All NFR” előfizetésemet, ami többek között azt jelenti, hogy 1 évig nem üzleti célra gyakorlatilag minden valaha kiadott MS terméket használhatok legálisan.

Ez egy picit sziven ütött, hiszen ha jók az értesüléseim, akkor ez a legfullosabb ilyen csomag, ~$20k-s előfizetési díjjal.

Röviden ezek voltak az elmúlt hét történései, stay tuned!

Kategória: Uncategorized | 2 hozzászólás

Biztonságos webalkalmazások fejlesztése

Tavaly év végén ebben a témában adtam elő a Docler Akadémia keretein belül, ez gyakorlatilag egy olyan kezdeményezés, hogy a cégen belüli előadássorozatot a nagyközönség számára is nyitottá tegyük.

A részvétel teljesen nyitott és ingyenes, szóval ha szeretnél érdekes előadásokon nézőként, vagy akár előadóként részt venni, akkor ne gondolkozz túl sokat.



Letölthető slideshare-ről, vagy innen közvetlenül pdf-ben itt

Kategória: Uncategorized | Szóljon hozzá most!

Buék 2011

Az év eleji nagy hajtásban elmaradt ez a bejegyzés, megtörve ezzel a hagyományt.

Január 15.-én megszületett a kisfiam, Kovács Árpád Ferenc, 3400 gramm és 55 centiméter paraméterekkel. \o/

Ebből kifolyólag még kevesebb szabadidőm maradt az egyéb elfoglaltságaimra, de egyelőre nem bánom. :)

DSCF3287DSCF3288DSCF3292DSCF3293DSCF3294DSCF3295DSCF3579DSCF3565DSCF3564DSCF3561DSCF3543DSCF3542DSCF3541DSCF3540DSCF3571DSCF3566DSCF3481DSCF3480DSCF3424DSCF3417DSCF3414DSCF3408DSCF3364

Kategória: Uncategorized | Szóljon hozzá most!

What is a good developer?

I’ve just read Kevin Schroeder’s post:
and I wanted to post my reply about the definition of the “good developer”, but it seems that you can’t post to his blog a comment longer than 2048 character, so I had to create this blogpost, sorry for the grammar and such.
Kategória: Uncategorized @en | 6 hozzászólás

Webalkalmazások teljesítményoptimalizálása

A fent nevezett témakörben tartottam a cégnél előadást, ebből az apropóból gondoltam, hogy itt is megosztom a diákat.



Letölthető slideshare-ről, vagy innen közvetlenül pdf-ben itt

Kategória: Uncategorized | 2 hozzászólás