<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://daylessday.org/feeds/atom.xml" rel="self" title="Dayless Day" type="application/atom+xml" />
    <link href="http://daylessday.org/"                        rel="alternate"    title="Dayless Day" type="text/html" />
    <link href="http://daylessday.org/rss.php?version=2.0"     rel="alternate"    title="Dayless Day" type="application/rss+xml" />
    <title type="html">Dayless Day</title>
    <subtitle type="html"></subtitle>
    <icon>http://daylessday.org/templates/default/img/s9y_banner_small.png</icon>
    <id>http://daylessday.org/</id>
    <updated>2009-05-04T13:05:20Z</updated>
    <generator uri="http://www.s9y.org/" version="1.1.2">Serendipity 1.1.2 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://daylessday.org/archives/30-locating-bottlenecks-in-PHP-code-with-Pinba.html" rel="alternate" title="locating bottlenecks in PHP code with Pinba" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-05-04T13:05:20Z</published>
        <updated>2009-05-04T13:05:20Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=30</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=30</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://daylessday.org/archives/30-guid.html</id>
        <title type="html">locating bottlenecks in PHP code with Pinba</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Good news everyone! &#169;<br />
<br />
I'm proud to announce <a href="http://pinba.org">Pinba</a> - a statistics server for PHP.<br /><br />
<b>What is it?</b><br />
<br />
It's a daemon gathering <a href="http://pinba.org/wiki/Manual:Basics#Data">information</a> sent by PHP processes by UDP. In the same time Pinba acts as a read-only storage engine for MySQL, so you can use good ol' SQL to access the data.<br />
<br />
<b>What is it useful for?</b><br />
<br />
We at <a href="http://badoo.com">Badoo.com</a> have a lot of web-servers running PHP and want to know where are the most problematic places in our PHP code and which services are loaded the most. There is no need to store that information for further analysis, therefore Pinba doesn't actually store the data - it keeps it only for <a href="http://pinba.org/wiki/Manual:Configuration#pinba_stats_history">15 minutes</a> (you can change that, of course), which is more than enough to update graphs (we use RRDTool for that part) and to check things like "what's the slowest operation in script.php at server #5" or "which memcache server is the slowest" and alike. Complex queries can be also handled using <a href="http://pinba.org/wiki/Manual:Raw_data_tables">raw data tables</a>, which provide direct access to each request data, but in most cases <a href="http://pinba.org/wiki/Manual:Reports">reports</a> do the job.<br />
<br />
More details you can find on the website: <a href="http://pinba.org">pinba.org</a><br />
<br />
I'd love to get some feedback, so don't hesitate to join <a href="http://groups.google.com/group/pinba-engine/">Pinba development mailing list</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/29-HDDs-die-when-you-expect-it-the-least.html" rel="alternate" title="HDDs die when you expect it the least" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-03-12T18:08:42Z</published>
        <updated>2009-03-12T21:46:37Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=29</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=29</wfw:commentRss>
    
    
        <id>http://daylessday.org/archives/29-guid.html</id>
        <title type="html">HDDs die when you expect it the least</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Sorry for such a long downtime - the hard drive with root partition has crashed and I had to replace it =/<br />
Good thing is that no data seems to be lost, I've managed to save it all from the failing drive.<br />
Well, rest in peace, my good ol' Barracuda, you've served me well. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/28-locating-memory-hungry-code-with-memtrack.html" rel="alternate" title="locating memory hungry code with memtrack" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-01-23T14:10:20Z</published>
        <updated>2009-01-30T12:59:27Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=28</wfw:comment>
    
        <slash:comments>18</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=28</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://daylessday.org/archives/28-guid.html</id>
        <title type="html">locating memory hungry code with memtrack</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                We needed to locate where most of the memory is allocated in our scripts (as some of them became too memory hungry), so I've created <a href="http://pecl.php.net/memtrack">memtrack</a> extension.<br />
This extension helps us to see unusually big memory allocations in production code.<br />
<br />
Of course we use error logging, so memtrack just produces warnings like this one:<br />
<i>Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/1.php on line 7 allocated 4194304 bytes</i><br />
<br />
<i><b>[memtrack]</b></i> is a prefix for all warnings produced by the extension, so that one could find them in the logs.<br />
<i><b>[pid 26177]</b></i> is, well, a PID, so that one could follow a certain process (if needed).<br />
<i><b>user function</b></i> means it's a user defined function; the ones provided by PHP or one of its extension are reported as <b>internal function</b>s. <br />
<br />
Memtrack supports the following INI options at the moment:<br />
<ul><br />
<li><i>memtrack.enabled</i> - Boolean flag, which enables or disabled the extension. Default value is 0, i.e. disabled.<br />
<li><i>memtrack.soft_limit</i> - "Soft" memory limit. It means that a certain function cannot increase memory usage by more than X bytes and a warning is produced when the limit is exceeded, if the function is not ignored. Default value is 0.<br />
<li><i>memtrack.hard_limit</i> - "Hard" memory limit. A warning is produced when the limit is exceeded, whether or not the function is listed in memtrack.ignore_functions. Default value is 0.<br />
<li><i>memtrack.ignore_functions</i> - A comma- or whitespace-separated list of functions, which are to be ignored. The values are case-insensitive, for class methods use Class::method syntax. Empty by default.<br />
<li><i>memtrack.vm_limit</i> - Virtual memory size limit (set on a process), measured on shutdown only, might be helpful if you suspect a process is "leaking" memory. A warning is produced when the limit is reached. This option is currently available only on Linux (if you know how to get virtual memory size of the current process on any other system - please let me know). Default value is 0.<br />
</ul><br />
The extension checks memory usage changes per op_array, which in most cases means a function call or an included file with flat code, so you should not notice any performance loss.<br />
<br />
memtrack is still BETA, so let me know if you find any problems there, or if you have any suggestions on how to improve it.<br />
<a href="http://blog.thepimp.net">Pierre</a> is working on Win32 build just as I write this, so Win32 dlls should be available soon, stay tuned. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/27-Happy-new-everything!.html" rel="alternate" title="Happy new everything!" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-01-03T17:53:11Z</published>
        <updated>2009-01-07T22:02:57Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=27</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/3-Photo" label="Photo" term="Photo" />
    
        <id>http://daylessday.org/archives/27-guid.html</id>
        <title type="html">Happy new everything!</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Sorry for such a long downtime, folks. I've had problems with my server and had to do clean re-install of the system.<br />
Bringing everything up has taken quite some time, especially because it all has happened in a very unusual moment - <em>I have become a daddy!</em><br />
<a href="http://daylessday.org/img/lisa_1.jpg">Little Lisa</a> was born December 25 at 11:45 pm and she's taking most of my time at the moment =) 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/26-PECLsphinx-fast-fulltext-search-made-easy.html" rel="alternate" title="PECL/sphinx - fast fulltext search made easy" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2008-07-31T12:36:08Z</published>
        <updated>2008-08-06T11:28:46Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=26</wfw:comment>
    
        <slash:comments>31</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=26</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://daylessday.org/archives/26-guid.html</id>
        <title type="html">PECL/sphinx - fast fulltext search made easy</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                As some of you might have noticed, I've been a bit busy lately creating new PECL extension - <a href="http://pecl.php.net/sphinx">sphinx</a>.<br/>
The extension provides an interface to a feature-rich fulltext search engine <a href="http://sphinxsearch.com">Sphinx</a> written by Andrew Aksyonoff.<br/>
We (Andrew and me) made our best to keep the extension as compatible to the pure-PHP API (shipped with Sphinx) as possible in order to make the transition easier, so if you're already using PHP API, you only need to remove (or comment out) the <code>include "sphinxapi.php";</code> line and enable the extension in your php.ini. <br/>
Yes, it's <i>that</i> easy.<br/>
<br/>
I also added a documentation for it to the PHP manual - <a href="http://php.net/sphinx">http://php.net/sphinx</a>, it covers all the functions, but lacks code examples at the moment (contact me if you want to contribute some, it's very much appreciated).<br/>
<br/>
To install the extension you need libsphinxclient (it's shipped with Sphinx since v0.9.8), here is a short installation guide:<br/>
<pre>
# tar -xzvf sphinx-0.9.8.tar.gz
# cd sphinx-0.9.8/api/libsphinxclient/
# ./buildconf.sh
# ./configure &&amp; make install
</pre>
After that PECL will do all the work for you:
<pre>
# pecl install sphinx-beta
</pre>
<br/>
I've got no complaints so far, so I suppose I can call it stable in a month or so.<br/>
Until then I'll continue to gather feedback (please use <a href="http://pecl.php.net/bugs/report.php?package=sphinx">PECL bug-tracker</a> if you encounter any problems, thanks!). 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/25-PHP-test-coverage-exceeded-55%.html" rel="alternate" title="PHP test coverage exceeded 55%" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2008-05-21T09:17:02Z</published>
        <updated>2008-05-21T09:17:02Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=25</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://daylessday.org/archives/25-guid.html</id>
        <title type="html">PHP test coverage exceeded 55%</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                According to <a href="http://gcov.php.net/PHP_5_3/lcov_html/">GCOV reports</a>, PHP test coverage has recently exceeded 55%, which is really good number, but still not enough. It took us about <i>2 years</i> to get the last 5% and I believe most of the kudos should go to IBM people, who continue to contribute lots of new tests.<br />
I hope that <a href="http://qa.php.net/testfest.php">the Testfest</a> will help us to speed up this process. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/24-libHaru.org-the-new-home-of-free-open-source-PDF-generation-lib.html" rel="alternate" title="libHaru.org - the new home of free &amp; open source PDF generation lib" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2008-02-28T09:26:10Z</published>
        <updated>2008-03-02T11:35:57Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=24</wfw:comment>
    
        <slash:comments>16</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=24</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/6-OSS" label="OSS" term="OSS" />
            <category scheme="http://daylessday.org/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://daylessday.org/archives/24-guid.html</id>
        <title type="html">libHaru.org - the new home of free &amp; open source PDF generation lib</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                It took quite some time for me to <a href="http://daylessday.org/archives/15-Quick-poll-regarding-PDF-generation-library.html">think it over</a> and prepare new libHaru site - <a href="http://libharu.org">libHaru.org</a>.<br />
Nevertheless, it's finally online and I'm going to continue maintaining the library, new bugfix release is on its way.<br />
<br />
Though I don't think I can do all the maintenance job on my own - some help is required with Windows builds and other things like the documentation, which needs some cleanup (even though it's in a good shape at the moment), so volunteers are <i><b>very</b></i> welcome.<br />
<br />
Anyway, if you need to produce PDF files, libHaru is the answer.<br />
If it doesn't satisfy your needs or even lacks something crucial - <a href="http://libharu.org/wiki/Support">let me know</a>, I'll see what I can do. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/23-Gpasman-for-Maemo.html" rel="alternate" title="Gpasman for Maemo" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2008-02-27T09:38:51Z</published>
        <updated>2008-02-28T08:19:17Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=23</wfw:comment>
    
        <slash:comments>6</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=23</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/2-Linux" label="Linux" term="Linux" />
            <category scheme="http://daylessday.org/categories/5-Maemo" label="Maemo" term="Maemo" />
    
        <id>http://daylessday.org/archives/23-guid.html</id>
        <title type="html">Gpasman for Maemo</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I've been using <a href="http://gpasman.sf.net">Gpasman</a> to store my numerous passwords for about 5 years now, so no wonder my first thought when I bought my Nokia N800 was to port it to Maemo. And that's what I did =)<br />
<br />
Gpasman is now available in <a href="http://garage.maemo.org/projects/gpasman/">Maemo Garage</a> and <a href="http://maemo.org/downloads/product/OS2008/gpasman/">Maemo Downloads</a>. <br />
You can see a couple of screenshots <a href="https://garage.maemo.org/plugins/wiki/index.php?Screenshots&id=599&type=g">here</a>.<br />
<br />
If you have more than two passwords and are afraid to forget them one day - give it a try, it's really handy.<br />
I also have <a href="http://daylessday.org/files/rpms/suse/">Gpasman RPMs for SuSE</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/22-Were-open,-dont-try-to-change-us.html" rel="alternate" title="We're open, don't try to change us" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2008-02-01T23:27:47Z</published>
        <updated>2008-02-02T01:49:46Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=22</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=22</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://daylessday.org/archives/22-guid.html</id>
        <title type="html">We're open, don't try to change us</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Just so that you know what I think about <a href="http://daylessday.org/archives/21-We-dont-need-no-new-PDO.html">that CLA thing</a>:<br />
<br />
<br />
<center><font size="+2"><a href="http://open-php.net">Make It Open Or Go Away</a></font></center><br />
<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://daylessday.org/archives/21-We-dont-need-no-new-PDO.html" rel="alternate" title="We don't need no new PDO" />
        <author>
            <name>Antony Dovgal</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2008-01-24T21:25:59Z</published>
        <updated>2008-01-25T14:48:56Z</updated>
        <wfw:comment>http://daylessday.org/wfwcomment.php?cid=21</wfw:comment>
    
        <slash:comments>10</slash:comments>
        <wfw:commentRss>http://daylessday.org/rss.php?version=atom1.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    
            <category scheme="http://daylessday.org/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://daylessday.org/archives/21-guid.html</id>
        <title type="html">We don't need no new PDO</title>
        <content type="xhtml" xml:base="http://daylessday.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                PDOv1 was initially a small project created and maintained mostly by 1-2 persons.<br />
Even though it was quite small, it turned out to be a kind of monster which nobody really likes or understands.<br />
Oh.. and did I mention that it never actually worked?<br />
<br />
And now we're being forced to have PDOv2, which is of course very much different from PDOv1: it's being developed by a secret group of people (which includes some mysterious "vendors") aand.. <i>it requires signing a legal paper it you want to participate or even read its spec</i>.<br />
<br />
<b>PDO does not need a CLA, PDO needs *CARE*.</b><br />
<br />
Doesn't matter how much "vendors" participate in PDO, it's going to be a total failure as long as nobody cares about it.<br />
That was the biggest flaw of PDOv1 and CLA won't magically fix it. 
            </div>
        </content>
        
    </entry>

</feed>