<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>beer planet</title>
	
	<link>http://beerpla.net</link>
	<description />
	<pubDate>Mon, 12 May 2008 17:04:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/BeerPlanet" type="application/rss+xml" /><item>
		<title>A Better diff Or What To Do When GNU diff Runs Out Of Memory ("diff: memory exhausted")</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/288774615/</link>
		<comments>http://beerpla.net/2008/05/12/a-better-diff-or-what-to-do-when-gnu-diff-runs-out-of-memory-diff-memory-exhausted/#comments</comments>
		<pubDate>Mon, 12 May 2008 15:57:01 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Databases]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[comparison]]></category>

		<category><![CDATA[delta]]></category>

		<category><![CDATA[diff]]></category>

		<category><![CDATA[memory exhausted]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[out of memory]]></category>

		<category><![CDATA[rdiff]]></category>

		<category><![CDATA[rsync]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/05/12/a-better-diff-or-what-to-do-when-gnu-diff-runs-out-of-memory-diff-memory-exhausted/</guid>
		<description><![CDATA[Recently I ran into major problems using GNU diff. It would crash with &#034;diff: memory exhausted&#034; after only a few minutes trying to process the differences between a couple 4.5GB files. Even a beefy box with 9GB of RAM would run out of it in minutes.
There is a different solution, however, that is not dependent [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I ran into major problems using GNU diff. It would crash with &#034;diff: memory exhausted&#034; after only a few minutes trying to process the differences between a couple 4.5GB files. Even a beefy box with 9GB of RAM would run out of it in minutes.
<p>There is a different solution, however, that is not dependent on file sizes. Enter <strong>rdiff</strong> - rsync&#039;s backbone. You can read about it here: <a href="http://en.wikipedia.org/wiki/Rsync" target="_blank" class="liexternal">http://en.wikipedia.org/wiki/Rsync</a> (search for rdiff).
<p><strong>The upsides of rdiff are:</strong>
<ul>
<li>with the same 4.5GB files, rdiff only ate about 66MB of RAM and scaled very well. It never crashed to date.
<li>it is also MUCH faster than diff.
<li>rdiff itself combines both diff and patch capabilities, so you can create deltas and apply them using the same program</li>
</ul>
<p><strong>The downsides of rdiff are:</strong>
<ul>
<li>it&#039;s not part of standard Linux/UNIX distribution - you have to install the librsync package.
<li>delta files rdiff produces have a slightly different format than diff&#039;s.
<li>delta files are slightly larger (but not significantly enough to care).
<li>a slightly different approach is used when generating a delta with rdiff, which is both good and bad - 2 steps are required. The first one produces a special signature file. In the second step, a delta is created using another rdiff call (all shown below). While the 2-step process may seem annoying, it has the benefits of providing faster deltas than when using diff. In fact, you can pipe the first step into the second one without any trouble if you want, which is what I ended up doing).</li>
</ul>
<p><strong>Usage:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre>$ rdiff signature ORIGINAL.txt SIGNATURE.sig
&nbsp;
$ l -h SIGNATURE.sig
-rw-r--r-- 1 archon810 users 25M 2008-04-23 22:32 SIGNATURE.sig
&nbsp;
$ rdiff delta SIGNATURE.sig MODIFIED.txt DELTA.rdiff
&nbsp;
$ l -h DELTA.rdiff
-rw-r--r-- 1 archon810 users 82M 2008-04-23 22:36 DELTA.rdiff</pre></td></tr></table></div>

<p>And here&#039;s what you would do to reassemble MODIFIED.txt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre>$ rdiff patch ORIGINAL.txt DELTA.rdiff MODIFIED_REASSEMBLED.txt
&nbsp;
$ l *.txt 
-rw-r--r-- 1 archon810 users 4,471,493,588 2008-04-23 20:24 MODIFIED.txt
-rw-r--r-- 1 archon810 users 4,471,493,588 2008-04-23 22:44 MODIFIED_REASSEMBLED.txt
-rw-r--r-- 1 archon810 users 4,403,302,981 2008-04-23 20:20 ORIGINAL.txt</pre></td></tr></table></div>

<p>Just as expected - everything matches.</p>
<p>Now, all of this could have been done in one go like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>rdiff signature ORIGINAL.txt | rdiff delta -- - MODIFIED.txt DELTA.rdiff</pre></td></tr></table></div>

<p><p>As far as my usage of such a useful diff program, I was doing CSV dumps of certain fields from a MySQL database, like so:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>SELECT * FROM table WHERE some_condition='1' ORDER BY id DESC INTO OUTFILE '/home/dump/dump.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '&quot;';</pre></td></tr></table></div>

<p>and then applying rdiff to get the [quite small] daily deltas. </p>
<p>That&#039;s all folks!</p>
Similar Posts:<ul><li><a href="http://beerpla.net/2006/07/15/converting-from-cvs-to-svn-developers-notes-and-why-svn-is-better/" rel="bookmark" title="July 15, 2006">Converting from CVS to SVN: Developer&#039;s Notes And Why SVN Is Better</a></li>

<li><a href="http://beerpla.net/2006/10/03/youtube-custom-rss-search-results/" rel="bookmark" title="October 3, 2006">Unpublished Way To Get  YouTube Search Results as Custom RSS Feeds</a></li>

<li><a href="http://beerpla.net/2007/08/04/watch-a-useful-linux-command-you-may-have-never-heard-of/" rel="bookmark" title="August 4, 2007">Watch - A Useful Linux Command You May Have Never Heard Of</a></li>

<li><a href="http://beerpla.net/2008/03/12/mass-renaming-directories-and-files-using-total-commander/" rel="bookmark" title="March 12, 2008">Mass Renaming Directories And Files Using Total Commander</a></li>

<li><a href="http://beerpla.net/2008/03/25/navicat-for-mysql-bugs-filed/" rel="bookmark" title="March 25, 2008">Navicat For MySQL Bugs Filed</a></li>
</ul><!-- Similar Posts took 9.744 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=MSVwvF"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=MSVwvF" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=ezVlWH"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=ezVlWH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=1Yr2Qh"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=1Yr2Qh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=eOKebH"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=eOKebH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=rHLr4h"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=rHLr4h" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=AjL4mh"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=AjL4mh" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/288774615" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/05/12/a-better-diff-or-what-to-do-when-gnu-diff-runs-out-of-memory-diff-memory-exhausted/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/05/12/a-better-diff-or-what-to-do-when-gnu-diff-runs-out-of-memory-diff-memory-exhausted/</feedburner:origLink></item>
		<item>
		<title>How To Install The Latest SOAP::Lite Using Perl CPAN</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/280942544/</link>
		<comments>http://beerpla.net/2008/04/30/how-to-install-the-latest-soaplite-using-perl-cpan/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 17:56:53 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[cpan]]></category>

		<category><![CDATA[install]]></category>

		<category><![CDATA[installation]]></category>

		<category><![CDATA[perl]]></category>

		<category><![CDATA[problem]]></category>

		<category><![CDATA[SOAP]]></category>

		<category><![CDATA[SOAP::Lite]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/30/how-to-install-the-latest-soaplite-using-perl-cpan/</guid>
		<description><![CDATA[Apparently it&#039;s not straightforward to install SOAP::Lite, even using CPAN.
Check this out.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cpan[1]&#62; install SOAP::Lite
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 29 Apr 2008 18:29:45 GMT
CPAN: YAML loaded ok (v0.66)
Going to read /root/.cpan/build/
............................................................................DONE
Found 149 old builds, restored the state of 109
Warning: Cannot install SOAP::Lite, don't know what it is.
Try [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently it&#039;s not straightforward to install SOAP::Lite, even using CPAN.</p>
<p>Check this out.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre>cpan[1]&gt; install SOAP::Lite
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 29 Apr 2008 18:29:45 GMT
CPAN: YAML loaded ok (v0.66)
Going to read /root/.cpan/build/
............................................................................DONE
Found 149 old builds, restored the state of 109
Warning: Cannot install SOAP::Lite, don't know what it is.
Try the command
&nbsp;
    i /SOAP::Lite/
&nbsp;
to find objects with matching identifiers.
CPAN: Time::HiRes loaded ok (v1.9713)</pre></td></tr></table></div>

<p>Huh? Okay&#8230;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre>cpan[2]&gt; i /SOAP::Lite/    
Module    ResourcePool::Command::SOAP::Lite::Call (MWS/ResourcePool-Resource-SOAP-Lite-1.0101.tar.gz)
Module    ResourcePool::Factory::SOAP::Lite (MWS/ResourcePool-Resource-SOAP-Lite-1.0101.tar.gz)
Module    ResourcePool::Resource::SOAP::Lite (MWS/ResourcePool-Resource-SOAP-Lite-1.0101.tar.gz)
Module    SOAP::Lite::Deserializer::XMLSchema1999 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module    SOAP::Lite::Deserializer::XMLSchema2001 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module    SOAP::Lite::Deserializer::XMLSchemaSOAP1_1 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module    SOAP::Lite::Deserializer::XMLSchemaSOAP1_2 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module    SOAP::Lite::InstanceExporter (SMEISNER/SOAP-Lite-InstanceExporter-0.02.tar.gz)
Module    SOAP::Lite::Packager   (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module    SOAP::Lite::Simple     (LLAP/SOAP-Lite-Simple-1.9.tar.gz)
Module    SOAP::Lite::Simple::DotNet (LLAP/SOAP-Lite-Simple-1.4.tar.gz)
Module    SOAP::Lite::Simple::Real (LLAP/SOAP-Lite-Simple-1.4.tar.gz)
Module    SOAP::Lite::Utility    (BRYCE/SOAP-Lite-Utility-0.01.tar.gz)
Module    SOAP::Lite::Utils      (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
14 items found</pre></td></tr></table></div>

<p>Wtf? Let&#039;s try something else.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre>cpan[8]&gt; i /SOAP.*Lite/                           
Distribution    BRYCE/SOAP-Lite-Utility-0.01.tar.gz
Distribution    BYRNE/SOAP/SOAP-Lite-0.60a.tar.gz
Distribution    DYACOB/SOAP-Lite-ActiveWorks-0.10.tar.gz
Distribution    DYACOB/SOAP-Lite-SmartProxy-0.11.tar.gz
Distribution    LLAP/SOAP-Lite-Simple-1.4.tar.gz
Distribution    LLAP/SOAP-Lite-Simple-1.9.tar.gz
Distribution    MKUTTER/SOAP-Lite-0.71.04.tar.gz
Distribution    MWS/ResourcePool-Resource-SOAP-Lite-1.0101.tar.gz
Distribution    SMEISNER/SOAP-Lite-InstanceExporter-0.02.tar.gz
Module    Catalyst::Action::SOAP::DocumentLiteral (DRUOSO/Catalyst-Controller-SOAP-0.8.tar.gz)
Module    Catalyst::Action::SOAP::DocumentLiteralWrapped (DRUOSO/Catalyst-Controller-SOAP-0.8.tar.gz)
Module    Catalyst::Action::SOAP::RPCLiteral (DRUOSO/Catalyst-Controller-SOAP-0.8.tar.gz)
Module    Catalyst::Controller::SOAP::DocumentLiteralWrapped (DRUOSO/Catalyst-Controller-SOAP-0.8.tar.gz)
Module    Net::DRI::Transport::HTTP::SOAPLite (PMEVZEK/Net-DRI-0.85.tar.gz)
Module    ResourcePool::Command::SOAP::Lite::Call (MWS/ResourcePool-Resource-SOAP-Lite-1.0101.tar.gz)
Module    ResourcePool::Factory::SOAP::Lite (MWS/ResourcePool-Resource-SOAP-Lite-1.0101.tar.gz)
Module    ResourcePool::Resource::SOAP::Lite (MWS/ResourcePool-Resource-SOAP-Lite-1.0101.tar.gz)
Module  = SOAP::Lite::Deserializer::XMLSchema1999 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module  = SOAP::Lite::Deserializer::XMLSchema2001 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module  = SOAP::Lite::Deserializer::XMLSchemaSOAP1_1 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module  = SOAP::Lite::Deserializer::XMLSchemaSOAP1_2 (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module    SOAP::Lite::InstanceExporter (SMEISNER/SOAP-Lite-InstanceExporter-0.02.tar.gz)
Module  = SOAP::Lite::Packager   (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
Module    SOAP::Lite::Simple     (LLAP/SOAP-Lite-Simple-1.9.tar.gz)
Module    SOAP::Lite::Simple::DotNet (LLAP/SOAP-Lite-Simple-1.4.tar.gz)
Module    SOAP::Lite::Simple::Real (LLAP/SOAP-Lite-Simple-1.4.tar.gz)
Module    SOAP::Lite::Utility    (BRYCE/SOAP-Lite-Utility-0.01.tar.gz)
Module  = SOAP::Lite::Utils      (MKUTTER/SOAP-Lite-0.71.04.tar.gz)
28 items found</pre></td></tr></table></div>

<p>Aha! It&#039;s hiding under a Distribution. Tricky, tricky.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre>cpan
install MKUTTER/SOAP-Lite-0.71.04.tar.gz</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
</pre></td><td class="code"><pre>  CPAN.pm: Going to build M/MK/MKUTTER/SOAP-Lite-0.71.04.tar.gz
&nbsp;
We are about to install SOAP::Lite and for your convenience will provide
you with list of modules and prerequisites, so you'll be able to choose
only modules you need for your configuration.
&nbsp;
XMLRPC::Lite, UDDI::Lite, and XML::Parser::Lite are included by default.
Installed transports can be used for both SOAP::Lite and XMLRPC::Lite.
&nbsp;
Press  to see the detailed list.  
&nbsp;
Feature                       Prerequisites                Install?
----------------------------- ---------------------------- --------
Core Package                  [*] Scalar::Util             always  
                              [*] Test::More                       
                              [*] URI                              
                              [*] MIME::Base64                     
                              [*] version                          
                              [*] XML::Parser (v2.23)              
Client HTTP support           [*] LWP::UserAgent           always  
Client HTTPS support          [*] Crypt::SSLeay            [ yes ] 
Client SMTP/sendmail support  [ ] MIME::Lite               [ no ]  
Client FTP support            [*] IO::File                 [ yes ] 
                              [*] Net::FTP                         
Standalone HTTP server        [*] HTTP::Daemon             [ yes ] 
Apache/mod_perl server        [ ] Apache                   [ no ]  
FastCGI server                [ ] FCGI                     [ no ]  
POP3 server                   [*] MIME::Parser             [ yes ] 
                              [*] Net::POP3                        
IO server                     [*] IO::File                 [ yes ] 
MQ transport support          [ ] MQSeries                 [ no ]  
JABBER transport support      [ ] Net::Jabber              [ no ]  
MIME messages                 [*] MIME::Parser             [ yes ] 
DIME messages                 [*] IO::Scalar (v2.105)      [ no ]  
                              [ ] DIME::Tools (v0.03)              
                              [ ] Data::UUID (v0.11)               
SSL Support for TCP Transport [ ] IO::Socket::SSL          [ no ]  
Compression support for HTTP  [*] Compress::Zlib           [ yes ] 
MIME interoperability w/ Axis [ ] MIME::Parser (v6.106)    [ no ]  
--- An asterix '[*]' indicates if the module is currently installed.
&nbsp;
Do you want to proceed with this configuration? [yes] 
Checking if your kit is complete...
Looks good
Writing Makefile for SOAP::Lite
cp lib/SOAP/Packager.pm blib/lib/SOAP/Packager.pm
cp lib/XML/Parser/Lite.pm blib/lib/XML/Parser/Lite.pm
...
Writing /usr/lib/perl5/site_perl/5.10.0/i686-linux/auto/SOAP/Lite/.packlist
Appending installation info to /usr/lib/perl5/5.10.0/i686-linux/perllocal.pod
  MKUTTER/SOAP-Lite-0.71.04.tar.gz
  /usr/bin/make install  -- OK</pre></td></tr></table></div>

<p>The latest version of SOAP::Lite is installed, time to pat yourself on the back and write some code to actually use it.</p>
Similar Posts:<ul><li><a href="http://beerpla.net/2007/07/09/the-repositories-for-apt-get-in-suse-102/" rel="bookmark" title="July 9, 2007">The Repositories For apt-get In SUSE 10.2</a></li>

<li><a href="http://beerpla.net/2007/10/12/cpan-the-perl-module-manager/" rel="bookmark" title="October 12, 2007">cpan - The Perl Module Manager</a></li>

<li><a href="http://beerpla.net/2008/03/27/parsing-json-in-perl-by-example-southparkstudioscom-south-park-episodes/" rel="bookmark" title="March 27, 2008">Parsing JSON In Perl By Example - SouthParkStudios.com South Park Episodes</a></li>

<li><a href="http://beerpla.net/2008/04/22/do-not-use-this-perl-module-passwdunix/" rel="bookmark" title="April 22, 2008">Do NOT Use This Perl Module: Passwd::Unix</a></li>

<li><a href="http://beerpla.net/2008/04/30/how-to-install-the-latest-soaplite-using-perl-cpan/" rel="bookmark" title="April 30, 2008">How To Install The Latest SOAP::Lite Using Perl CPAN</a></li>
</ul><!-- Similar Posts took 10.593 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=U7ecvp"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=U7ecvp" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=HCveXG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=HCveXG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=0AHpFg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=0AHpFg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=aY6JnG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=aY6JnG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=G5hLkg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=G5hLkg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=34V7Jg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=34V7Jg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/280942544" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/30/how-to-install-the-latest-soaplite-using-perl-cpan/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/30/how-to-install-the-latest-soaplite-using-perl-cpan/</feedburner:origLink></item>
		<item>
		<title>Interesting Uses For Google Streetview (Video By Google)</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/280560501/</link>
		<comments>http://beerpla.net/2008/04/29/interesting-uses-for-google-streetview-video-by-google/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 05:16:01 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Awesomeness]]></category>

		<category><![CDATA[My Favorites]]></category>

		<category><![CDATA[bridge toll]]></category>

		<category><![CDATA[creative]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[map]]></category>

		<category><![CDATA[parking]]></category>

		<category><![CDATA[street cleaning]]></category>

		<category><![CDATA[street view]]></category>

		<category><![CDATA[zefrank]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/29/interesting-uses-for-google-streetview-video-by-google/</guid>
		<description><![CDATA[By now I think most everyone has used Google maps and seen the street view feature. Lately the maps team has been doing an amazing job covering the bay area, so now you can literally walk the streets for hours.
 
Virtual walking aside, there are some really creative uses of this feature posted in this [...]]]></description>
			<content:encoded><![CDATA[<p>By now I think most everyone has used <a href="http://maps.google.com" target="_blank" class="liexternal">Google maps</a> and seen the street view feature. Lately the maps team has been doing an amazing job covering the <a href="http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;q=San+Francisco,+CA&#038;ie=UTF8&#038;ll=37.374523,-121.934509&#038;spn=1.414353,3.669434&#038;z=9&#038;layer=c" target="_blank" class="liexternal">bay area</a>, so now you can literally walk the streets for hours.</p>
<p align="center"><a href="http://beerpla.net/wp-content/uploads/436091f457a5_1365E/image.png" ><img height="480" alt="image" src="http://beerpla.net/wp-content/uploads/436091f457a5_1365E/image_thumb.png" width="410"></a> </p>
<p>Virtual walking aside, there are some really creative uses of this feature posted in this video by the Google team today. I never myself thought to check my own street for street cleaning signs - saves a trip downstairs! Or look at the toll road prices (like the Bay bridge toll). Or at least <a href="http://gawker.com/383288/embarrassing-moment-captured-for-the-internet-to-see" target="_blank" class="liexternal">watch people falling off their bikes</a>. Anyway, just watch the video (<a href="http://www.zefrank.com/zesblog/archives/2008/04/street_view_dir.html" target="_blank" class="liexternal">thanks to zefrank</a> for posting it).</p>
<p align="center"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/dgJSXrkwshg&#038;hl=en&#038;color1=0x2b405b&#038;color2=0x6b8ab6"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/dgJSXrkwshg&#038;hl=en&#038;color1=0x2b405b&#038;color2=0x6b8ab6" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
Similar Posts:<ul><li><a href="http://beerpla.net/2006/06/30/cambridge-uk-week-1/" rel="bookmark" title="June 30, 2006">Cambridge, UK, Week 1</a></li>

<li><a href="http://beerpla.net/2006/07/02/cambridge-uk-week-2/" rel="bookmark" title="July 2, 2006">Cambridge, UK, Week 2</a></li>

<li><a href="http://beerpla.net/2007/04/30/the-magic-hd-dvd-key-09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0/" rel="bookmark" title="April 30, 2007">The Magic HD-DVD Key 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0</a></li>

<li><a href="http://beerpla.net/2007/06/29/google-maps-new-feature-visual-route-dragging/" rel="bookmark" title="June 29, 2007">Google Maps New Feature: Visual Route Dragging</a></li>

<li><a href="http://beerpla.net/2008/04/29/interesting-uses-for-google-streetview-video-by-google/" rel="bookmark" title="April 29, 2008">Interesting Uses For Google Streetview (Video By Google)</a></li>
</ul><!-- Similar Posts took 9.303 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=8URY2Q"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=8URY2Q" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=YkYbEG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=YkYbEG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=LJ6GYg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=LJ6GYg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=T84LTG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=T84LTG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=2OvJmg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=2OvJmg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=qNdySg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=qNdySg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/280560501" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/29/interesting-uses-for-google-streetview-video-by-google/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/29/interesting-uses-for-google-streetview-video-by-google/</feedburner:origLink></item>
		<item>
		<title>How Do I Get Both The Return Value And Text In Perl? Backticks vs. System() (Perl 5.10)</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/280461851/</link>
		<comments>http://beerpla.net/2008/04/29/how-do-i-get-both-the-return-value-and-text-in-perl-backticks-vs-system-perl-510/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 01:52:28 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[annoying]]></category>

		<category><![CDATA[backtick]]></category>

		<category><![CDATA[child]]></category>

		<category><![CDATA[error code]]></category>

		<category><![CDATA[perl]]></category>

		<category><![CDATA[perl 5.10]]></category>

		<category><![CDATA[perldelta]]></category>

		<category><![CDATA[perlrun]]></category>

		<category><![CDATA[problem]]></category>

		<category><![CDATA[return value]]></category>

		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/29/how-do-i-get-both-the-return-value-and-text-in-perl-backticks-vs-system-perl-510/</guid>
		<description><![CDATA[I&#039;m sure most Perl coders have to face this annoying problem at one point or another: how do you consistently get the return value out of a system call, be at executed via backticks or system()? Backticks return the output of the program with no error code in sight, while system() returns the error code [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;m sure most Perl coders have to face this annoying problem at one point or another: how do you consistently get the return value out of a system call, be at executed via backticks or system()? Backticks return the output of the program with no error code in sight, while system() returns the error code but prints the output instead of putting it into a variable.</p>
<p>The best solution I could find to this problem to date was posted at <a href="http://www.perlmonks.org/?node_id=19119" title="http://www.perlmonks.org/?node_id=19119" target="_blank" class="liexternal">http://www.perlmonks.org/?node_id=19119</a> and involved opening a piped filehandle. It worked quite well but always felt like a hack (which it was). Having used the new <a href="http://dev.perl.org/perl5/news/2007/perl-5.10.0.html" target="_blank" class="liexternal">Perl 5.10</a> for a few months, I was shocked today to find this new variable that I&#039;ve been dreaming about for years: </p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>${^CHILD_ERROR_NATIVE}</pre></td></tr></table></div>

<p>This variable gives the native status returned by the last pipe close, <strong>backtick command</strong>, successful call to wait() or waitpid(), or from the <strong>system()</strong> operator. See perlrun for details. (Contributed by Gisle Aas.) </p>
<p><a href="http://search.cpan.org/dist/perl-5.10.0/pod/perl5100delta.pod#New_internal_variables" target="_blank" class="liexternal">http://search.cpan.org/dist/perl-5.10.0/pod/perl5100delta.pod#New_internal_variables</a></p>
<p>I&#039;ve just tested it and it works as described. Finally!.. what else can I say?</p>
Similar Posts:<ul><li><a href="http://beerpla.net/2007/08/04/watch-a-useful-linux-command-you-may-have-never-heard-of/" rel="bookmark" title="August 4, 2007">Watch - A Useful Linux Command You May Have Never Heard Of</a></li>

<li><a href="http://beerpla.net/2007/10/28/ftprush-cleanup-script/" rel="bookmark" title="October 28, 2007">FTPRush Cleanup Script</a></li>

<li><a href="http://beerpla.net/2008/03/21/quick-snippet-finding-if-a-file-has-a-media-extension-using-regex/" rel="bookmark" title="March 21, 2008">Quick Perl Snippet: Finding If A File Has A Media Extension Using Regex</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-monitoring-tools-wednesday-515pm/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: Monitoring Tools (Wednesday 5:15PM)</a></li>

<li><a href="http://beerpla.net/2008/04/29/how-do-i-get-both-the-return-value-and-text-in-perl-backticks-vs-system-perl-510/" rel="bookmark" title="April 29, 2008">How Do I Get Both The Return Value And Text In Perl? Backticks vs. System() (Perl 5.10)</a></li>
</ul><!-- Similar Posts took 9.711 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=2zmP1Q"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=2zmP1Q" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=pVtlvG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=pVtlvG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=B1QMkg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=B1QMkg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=Mg4s7G"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=Mg4s7G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=DNbapg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=DNbapg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=ityp5g"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=ityp5g" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/280461851" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/29/how-do-i-get-both-the-return-value-and-text-in-perl-backticks-vs-system-perl-510/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/29/how-do-i-get-both-the-return-value-and-text-in-perl-backticks-vs-system-perl-510/</feedburner:origLink></item>
		<item>
		<title>How To List Files Within tgz (tar.gz) Archives</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/278415843/</link>
		<comments>http://beerpla.net/2008/04/26/how-to-list-files-within-tgz-targz-archives/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 19:08:37 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[archive]]></category>

		<category><![CDATA[bzip]]></category>

		<category><![CDATA[file]]></category>

		<category><![CDATA[gunzip]]></category>

		<category><![CDATA[gz]]></category>

		<category><![CDATA[gzip]]></category>

		<category><![CDATA[list]]></category>

		<category><![CDATA[tar]]></category>

		<category><![CDATA[untar]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/26/how-to-list-files-within-tgz-targz-archives/</guid>
		<description><![CDATA[This may not be very obvious but this is the command line to list files within a tar.gz archive on the fly:

1
tar -tzf file.tar.gz

-t: lists files-f: instructs tar to deal with the following filename (file.tar.gz)-z: informs tar that the it&#039;s dealing with a gzip file (-j if it&#039;s bzip2)
Similar Posts:Mass Renaming Directories And Files Using [...]]]></description>
			<content:encoded><![CDATA[<p>This may not be very obvious but this is the command line to list files within a tar.gz archive on the fly:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>tar -tzf file.tar.gz</pre></td></tr></table></div>

<p>-t: lists files<br />-f: instructs tar to deal with the following filename (file.tar.gz)<br />-z: informs tar that the it&#039;s dealing with a gzip file (-j if it&#039;s bzip2)</p>
Similar Posts:<ul><li><a href="http://beerpla.net/2008/03/12/mass-renaming-directories-and-files-using-total-commander/" rel="bookmark" title="March 12, 2008">Mass Renaming Directories And Files Using Total Commander</a></li>

<li><a href="http://beerpla.net/2008/03/21/quick-snippet-finding-if-a-file-has-a-media-extension-using-regex/" rel="bookmark" title="March 21, 2008">Quick Perl Snippet: Finding If A File Has A Media Extension Using Regex</a></li>

<li><a href="http://beerpla.net/2008/03/23/how-to-delete-all-messages-from-a-folder-in-pine/" rel="bookmark" title="March 23, 2008">How To Delete All Messages From A Folder In Pine</a></li>

<li><a href="http://beerpla.net/2008/04/09/some-useful-vim-commands-my-vim-cheatsheet/" rel="bookmark" title="April 9, 2008">Some Useful vim Commands - My vim Cheatsheet</a></li>

<li><a href="http://beerpla.net/2008/04/26/how-to-list-files-within-tgz-targz-archives/" rel="bookmark" title="April 26, 2008">How To List Files Within tgz (tar.gz) Archives</a></li>
</ul><!-- Similar Posts took 9.466 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=whcScY"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=whcScY" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=fFI6UKG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=fFI6UKG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=8EAOzWg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=8EAOzWg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=LcZfv6G"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=LcZfv6G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=dvIeaXg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=dvIeaXg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=Np1mSPg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=Np1mSPg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/278415843" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/26/how-to-list-files-within-tgz-targz-archives/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/26/how-to-list-files-within-tgz-targz-archives/</feedburner:origLink></item>
		<item>
		<title>Do NOT Use This Perl Module: Passwd::Unix</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/275851101/</link>
		<comments>http://beerpla.net/2008/04/22/do-not-use-this-perl-module-passwdunix/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 03:05:29 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[module]]></category>

		<category><![CDATA[passwd]]></category>

		<category><![CDATA[perl]]></category>

		<category><![CDATA[shadow]]></category>

		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/22/do-not-use-this-perl-module-passwdunix/</guid>
		<description><![CDATA[Update: The author of the module contacted me the same day and promised to fix it in the next version. Version 0.40 was indeed on cpan as promised, but I haven&#039;t tested it yet.
Passwd::Unix will corrupt your /etc/shadow file and rearrange login names and their corresponding password hashes.
The current version of Passwd::Unix corrupted my /etc/shadow [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> The author of the module contacted me the same day and promised to fix it in the next version. Version 0.40 was indeed on cpan as promised, but I haven&#039;t tested it yet.</p>
<p><a href="http://search.cpan.org/~strzelec/Passwd-Unix-0.33/Unix.pm" target="_blank" class="liexternal">Passwd::Unix</a> will corrupt your /etc/shadow file and rearrange login names and their corresponding password hashes.</p>
<p>The current version of Passwd::Unix corrupted my /etc/shadow upon only<br />
calling the passwd() function. Immediately users started to report not<br />
being able to login.</p>
<p>After examining the situation, I found that Passwd::Unix rearranges all<br />
users in /etc/shadow in some way, but it only does it to the<br />
usernames, and not the password hashes. Thus, you will get corrupted accounts. Moreover,<br />
users are now able to login to one OTHER account, not their own,<br />
depending on how the usernames got shuffled.</p>
<p>Thankfully, I had a recent backup but I definitely don’t want anyone<br />
else to suffer.</p>
<p>I’m using perl 5.10, SUSE 10.3. If it’s incompatible with SUSE, it needs<br />
to say so and exit.</p>
<p>I&#039;ve filed the bug here: <a href="http://rt.cpan.org/Public/Bug/Display.html?id=35323" title="http://rt.cpan.org/Public/Bug/Display.html?id=35323" target="_blank" class="liexternal">http://rt.cpan.org/Public/Bug/Display.html?id=35323</a>.</p>
<p>You have been warned.</p>
Similar Posts:<ul><li><a href="http://beerpla.net/2007/10/12/cpan-the-perl-module-manager/" rel="bookmark" title="October 12, 2007">cpan - The Perl Module Manager</a></li>

<li><a href="http://beerpla.net/2007/10/28/ftprush-cleanup-script/" rel="bookmark" title="October 28, 2007">FTPRush Cleanup Script</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-mysql-performance-under-a-microscope-the-tobias-and-jay-show-wednesday-200pm/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: MySQL Performance Under A Microscope: The Tobias And Jay Show (Wednesday 2:00PM)</a></li>

<li><a href="http://beerpla.net/2008/04/22/do-not-use-this-perl-module-passwdunix/" rel="bookmark" title="April 22, 2008">Do NOT Use This Perl Module: Passwd::Unix</a></li>

<li><a href="http://beerpla.net/2008/04/30/how-to-install-the-latest-soaplite-using-perl-cpan/" rel="bookmark" title="April 30, 2008">How To Install The Latest SOAP::Lite Using Perl CPAN</a></li>
</ul><!-- Similar Posts took 9.774 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=YAbcF2"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=YAbcF2" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=JBlzxhG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=JBlzxhG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=ShCjXKg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=ShCjXKg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=2X0suwG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=2X0suwG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=oyG3q8g"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=oyG3q8g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=1P6Wqkg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=1P6Wqkg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/275851101" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/22/do-not-use-this-perl-module-passwdunix/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/22/do-not-use-this-perl-module-passwdunix/</feedburner:origLink></item>
		<item>
		<title>Sun Definitely Developing A Phone This Year</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/275090157/</link>
		<comments>http://beerpla.net/2008/04/21/sun-definitely-developing-a-phone/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 02:30:06 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Beer Planet]]></category>

		<category><![CDATA[Databases]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[mobile]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[phone]]></category>

		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/21/sun-definitely-developing-a-phone/</guid>
		<description><![CDATA[ One thing that still springs to mind when I think of the MySQL User Conference last week is Sun&#039;s opening keynote. While talking about Sun&#039;s market penetration with open source software, Jonathan Schwartz, Sun&#039;s CEO, slipped in a short mention of the mobile market saying something along the lines of &#034;Sun is going to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/SUNDefinitelyDevelopingAPhone_A984/JavaFX_Mobile.png" ><img style="margin: 0px 10px 10px 0px" src="http://beerpla.net/wp-content/uploads/SUNDefinitelyDevelopingAPhone_A984/JavaFX_Mobile_thumb.png" alt="JavaFX_Mobile" width="142" height="240" align="left" /></a> One thing that still springs to mind when I think of the <a href="http://beerpla.net/?s=mysql+conference" class="liinternal">MySQL User Conference</a> last week is Sun&#039;s opening keynote. While talking about Sun&#039;s market penetration with open source software, <a href="http://blogs.sun.com/jonathan/" target="_blank" class="liexternal">Jonathan Schwartz</a>, Sun&#039;s CEO, slipped in a short mention of the mobile market saying something along the lines of &#034;Sun is going to be entering the mobile market later on this year&#034;. He didn&#039;t spend more than 5 seconds talking about it, moving on to <a href="http://beerpla.net/2008/01/16/sun-buys-mysql/" class="liinternal">the acquisition of MySQL</a>.</p>
<p>Last year, Sun already made an announcement of <a href="http://www.engadget.com/2007/05/10/sun-shows-iphone-like-java-mobile-fx-platform/" target="_blank" class="liexternal">JavaFX</a>, a Java-based mobile platform but didn&#039;t provide any concrete timelines, so I was excited to hear the more on the subject. With Apple iPhone&#039;s advent last year and Google entering the same space later on this year with <a href="http://www.openhandsetalliance.com/android_overview.html" target="_blank" class="liexternal">Android</a>, Sun&#039;s addition to the game definitely won&#039;t hurt consumers. After all, competition usually leads to better products.</p>
<p>So when is the phone coming, Jonathan? My guess is you&#039;re going to try as hard as possible to compete with Google&#039;s <a href="http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html" target="_blank" class="liexternal">second half of 2008 timeline</a> but are you going to manage to beat it? And will it blow us away? I guess time will show.</p>
Similar Posts:<ul><li><a href="http://beerpla.net/2007/07/17/the-most-accurate-apple-iphone-review-to-date-from-maddox/" rel="bookmark" title="July 17, 2007">The Most Accurate Apple iPhone Review To Date From Maddox</a></li>

<li><a href="http://beerpla.net/2007/12/19/google-helps-break-d/" rel="bookmark" title="December 19, 2007">Google Helps Break Down The Language Barrier (In A Brilliant Way)</a></li>

<li><a href="http://beerpla.net/2008/01/16/sun-buys-mysql/" rel="bookmark" title="January 16, 2008">Sun buys MySQL for $1bln!</a></li>

<li><a href="http://beerpla.net/2008/03/26/getting-the-most-out-of-the-mysql-conference/" rel="bookmark" title="March 26, 2008">Getting The Most Out Of The MySQL Conference</a></li>

<li><a href="http://beerpla.net/2008/04/21/sun-definitely-developing-a-phone/" rel="bookmark" title="April 21, 2008">Sun Definitely Developing A Phone This Year</a></li>
</ul><!-- Similar Posts took 9.644 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=8IWdG9"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=8IWdG9" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=Fx9LgdG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=Fx9LgdG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=XWnw40g"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=XWnw40g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=ABdbWrG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=ABdbWrG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=b4hRaXg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=b4hRaXg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=R8W06sg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=R8W06sg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/275090157" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/21/sun-definitely-developing-a-phone/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/21/sun-definitely-developing-a-phone/</feedburner:origLink></item>
		<item>
		<title>MySQL Conference Liveblogging: Optimizing MySQL For High Volume Data Logging Applications (Thursday 2:50PM)</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/272457627/</link>
		<comments>http://beerpla.net/2008/04/17/mysql-conference-liveblogging-optimizing-mysql-for-high-volume-data-logging-applications-thursday-250pm/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 21:56:06 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Databases]]></category>

		<category><![CDATA[application]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[high volume]]></category>

		<category><![CDATA[logging]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[optimize]]></category>

		<category><![CDATA[scale]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/17/mysql-conference-liveblogging-optimizing-mysql-for-high-volume-data-logging-applications-thursday-250pm/</guid>
		<description><![CDATA[
http://en.oreilly.com/mysql2008/public/schedule/detail/874
presented by Charles Lee of Hyperic
Hyperic has the best performance with MySQL out of MySQL, Oracle, and Postgres in their application
I suddenly remember hyperic was highly recommended above nagios in MySQL Conference Liveblogging: Monitoring Tools (Wednesday 5:15PM)
performance bottleneck

the database

CPU
memory

IO

disk latency
network latency

slow queries

media size deployment example

300 platforms (300 remote agents collecting data)
2,100 servers
21,000 services (10 services [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://en.oreilly.com/mysql2008/public/schedule/detail/874" title="http://en.oreilly.com/mysql2008/public/schedule/detail/874" target="_blank" class="liexternal">http://en.oreilly.com/mysql2008/public/schedule/detail/874</a></li>
<li>presented by <a href="http://en.oreilly.com/mysql2008/public/schedule/speaker/1287" target="_blank" class="liexternal">Charles Lee</a> of <a href="http://hyperic.com/" target="_blank" class="liexternal">Hyperic</a></li>
<li>Hyperic has the best performance with MySQL out of MySQL, Oracle, and Postgres in their application</li>
<li><em>I suddenly remember hyperic was highly recommended above nagios in </em><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-monitoring-tools-wednesday-515pm/" class="liinternal"><em>MySQL Conference Liveblogging: Monitoring Tools (Wednesday 5:15PM)</em></a></li>
<li>performance bottleneck</li>
<ul>
<li>the database</li>
<ul>
<li>CPU</li>
<li>memory</li>
</ul>
<li>IO</li>
<ul>
<li>disk latency</li>
<li>network latency</li>
</ul>
<li>slow queries</li>
</ul>
<li>media size deployment example</li>
<ul>
<li>300 platforms (300 remote agents collecting data)</li>
<li>2,100 servers</li>
<li>21,000 services (10 services per server), <em>sounds feasible</em></li>
<li>468,000 metrics (20 metrics per service)</li>
<li>28,800,000 metric data rows per day</li>
<li>larger deployments have a lot more of these (<em>sounds crazy</em>)</li>
</ul>
<li>data</li>
<ul>
<li>measurement_id</li>
<li>timestamp</li>
<li>value</li>
<li>primary key (timestamp, measurement_id)</li>
</ul>
<li>data flow</li>
<ul>
<li>agent collects data and sends reports to server with multiple data points</li>
<li>server batch inserts metric data points</li>
<li>if network connection fails, agent continues to collect but server &#034;backfills&#034; unavailable</li>
<li>when agent reconnects, spooled data overwrite backfilled data points (<em>why not use REPLACE for all inserts?</em>)</li>
</ul>
<li><em>things are very basic so far</em></li>
<li>batch insert</li>
<ul>
<li>INSERT INTO TABLE (a,b,c) VALUES (0,0,0), (1,1,1),&#8230;</li>
<li>using MySQL batch insert statements vs prepared statements with multiple queries in other databases seems to improve overall performance by 30%</li>
<li>batch inserts are limited by &#039;max_allowed_packet&#039;</li>
</ul>
<li>other options for increasing insert speed</li>
<ul>
<li>set unique_checks=0, insert, set unique_checks=1 (<em>definitely need to make sure data is valid first</em>)</li>
<li>set foreign_key_checks=0, insert, set foreign_key_checks=1 (<em>same concerns as above</em>)</li>
<li>Hyperic doesn&#039;t use the 2 above</li>
</ul>
<li>INSERT &#8230; ON DUPLICATE KEY UPDATE</li>
<ul>
<li>when regular INSERT fails, retry batch with INSERT ON DUPLICATE KEY syntax</li>
<li>it&#039;s much slower but it allows</li>
</ul>
<li><em>this is all basic, where are the performance tweaks?!</em></li>
<li>batch aggregate inserter</li>
<ul>
<li>queue metric data from separate agent reports</li>
<ul>
<li>minimize number of inserts, connections, CPU load</li>
<li>maximize workload efficiency</li>
</ul>
<li>optimal configuration for 700 agents</li>
<ul>
<li>3 workers</li>
<li>2000 batch size seems to work best</li>
<li>queue size of 4,000,000</li>
</ul>
<li>this seems to peak at 2.2mil metric data inserts per minute</li>
</ul>
<li>data consolidation</li>
<ul>
<li>inspired by rrdtool</li>
<li>lower resolution tables track min, avg, and max</li>
<li>data compression runs hourly</li>
<li>size limit 2 days</li>
<li>every hour, data is rolled up into another table that holds hourly aggregated values with size limit 14 days, then that one gets rolled up into a monthly table, etc</li>
<li><em>this is is a good approach if you don&#039;t care about each data point</em></li>
</ul>
<li><em>I&#039;m overwhelmed by the amount of &#034;you know&#034;s from the speaker. Parasite words, ahh! Sorry Charles <img src='http://beerpla.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></li>
<li>software partitioning</li>
<ul>
<li>measurement data split into 18 tables, representing 9 days (2 per day)</li>
<li>they didn&#039;t want to do more than 2 SELECTs to get data per day, hence such sharding</li>
<li><em>oddly, Charles didn&#039;t actually use the word &#039;shard&#039; once</em></li>
<li>tables truncated, rather than deleting rows =&gt; huge performance boost</li>
<li>truncation vs deletion</li>
<ul>
<li>deletion causes contention on rows </li>
<li>truncation doesn&#039;t produce fragmentation</li>
<li>truncation just drops and recreates the table - single DDL operation</li>
</ul>
</ul>
<li>indexes</li>
<ul>
<li>every <strong>InnoDB</strong> table has a special index called the <strong>clustered index</strong> (based on primary key) where the physical data for the rows is stored</li>
<li>advantages</li>
<ul>
<li>selects faster - row data is on the same page where the index search leads</li>
<li>inserts in (timestamp) order - avoid page splits and fragmentation</li>
</ul>
<li>shows comparison between non-clustered index and clustered index (see slides)</li>
</ul>
<li><em>still no mention of configuration tweaks</em></li>
<li>UNION ALL works better than inner SELECTS because the optimizer didn&#039;t optimize them enough (at least in the version these guys are using, not sure which)</li>
<li><em>recommended server options are on the very last slide, I was waiting for those the most! I guess I&#039;ll look up the slides after</em></li>
</ul>
Similar Posts:<ul><li><a href="http://beerpla.net/2008/04/15/mysql-conference-liveblogging-explain-demystified-tuesday-200p/" rel="bookmark" title="April 15, 2008">MySQL Conference Liveblogging: EXPLAIN Demystified (Tuesday 2:00PM)</a></li>

<li><a href="http://beerpla.net/2008/04/15/mysql-conference-liveblogging-performance-guide-for-mysql-cluster-tuesday-1050am/" rel="bookmark" title="April 15, 2008">MySQL Conference Liveblogging: Performance Guide For MySQL Cluster (Tuesday 10:50AM)</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-applied-partitioning-and-scaling-your-oltp-database-system-wednesday-1155am/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: Applied Partitioning And Scaling your (OLTP) Database System (Wednesday 11:55AM)</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-introduction-to-the-blob-streaming-project-wednesday-300pm/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: Introduction To The BLOB Streaming Project (Wednesday 3:00PM)</a></li>

<li><a href="http://beerpla.net/2008/04/17/mysql-conference-liveblogging-optimizing-mysql-for-high-volume-data-logging-applications-thursday-250pm/" rel="bookmark" title="April 17, 2008">MySQL Conference Liveblogging: Optimizing MySQL For High Volume Data Logging Applications (Thursday 2:50PM)</a></li>
</ul><!-- Similar Posts took 10.715 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=pvf9Mi"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=pvf9Mi" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=iq8K21G"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=iq8K21G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=hg8h76g"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=hg8h76g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=1Du8vcG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=1Du8vcG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=MK2uoag"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=MK2uoag" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=peNkAdg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=peNkAdg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/272457627" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/17/mysql-conference-liveblogging-optimizing-mysql-for-high-volume-data-logging-applications-thursday-250pm/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/17/mysql-conference-liveblogging-optimizing-mysql-for-high-volume-data-logging-applications-thursday-250pm/</feedburner:origLink></item>
		<item>
		<title>MySQL Conference Liveblogging: MySQL Hidden Treasures (Thursday 11:55PM)</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/272366296/</link>
		<comments>http://beerpla.net/2008/04/17/mysql-conference-liveblogging-mysql-hidden-treasures-thursday-1155pm/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 19:01:14 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Databases]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[hidden]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[treasures]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/17/mysql-conference-liveblogging-mysql-hidden-treasures-thursday-1155pm/</guid>
		<description><![CDATA[
Damien Seguy of Nexen Services presents
easiest session of all (phew, that&#039;s a relief)
clever SQL recipes
tweaking SQL queries
shows an example where SELECT is ORDERED by a column that is actually an enum.

an enum is both a string and a number
sorted by number
displayed as string
can be sorted by string if it&#039;s cast as string

compact column

compacts storage
faster to [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://en.oreilly.com/mysql2008/public/schedule/speaker/1218" target="_blank" class="liexternal">Damien Seguy</a> of Nexen Services presents</li>
<li>easiest session of all (phew, that&#039;s a relief)</li>
<li>clever SQL recipes</li>
<li>tweaking SQL queries</li>
<li>shows an example where SELECT is ORDERED by a column that is actually an enum.</li>
<ul>
<li>an enum is both a string and a number</li>
<li>sorted by number</li>
<li>displayed as string</li>
<li>can be sorted by string if it&#039;s cast as string</li>
</ul>
<li>compact column</li>
<ul>
<li>compacts storage</li>
<li>faster to search</li>
<li>if (var)char is turned into enum, some space can be saved, shows example</li>
</ul>
<li>random order</li>
<ul>
<li>order by rand(1) - obviously</li>
<li>the integer parameter is actually a seed</li>
<li>really slow, also obviously, especially for larger tables because it has to order first, then apply rand() to the list</li>
<li>another solution is to add an extra column, put random values into it, and add index, then </li>
<ul>
<li>UPDATE tbl SET chaos=RAND();</li>
</ul>
<li>random extraction</li>
<ul>
<li>SELECT id, col FROM tbl JOIN <br />&nbsp; (SELECT CEIL(RAND() *<br />&nbsp;&nbsp;&nbsp; (SELECT MAX(id) FROM tbl)) AS r)<br />AS r2 ON id=r;</li>
</ul>
<li><strong>for multiple rows, Damien offers a solution involving an integer table (see his own slides). This solution is supposed to be really fast.</strong></li>
</ul>
<li>integer table</li>
<ul>
<li>generate a table with only 10 integers</li>
<li>do cross joins to get 100, 10,000, etc integers</li>
<li>10mil rows takes only 13 seconds (on his laptop), then either store it in another table or just use the result set</li>
<li>yet again, code is shows, so see slides</li>
</ul>
<li>generating alphabet</li>
<ul>
<li>shows a handy query</li>
</ul>
<li>generating text</li>
<ul>
<li>offers a long query that uses ELT(), CONCAT(), and RAND() (see slides)</li>
<li>a SELECT that builds words uses GROUP_CONCAT()</li>
<li>looks pretty useful</li>
</ul>
<li>ASCII art</li>
<ul>
<li>SELECT version, REPEAT(&#039;*', percentage * 2) AS bars FROM php_versions;</li>
<li>shows a nifty result set with stars as fillers in percentage bars</li>
<li>shows another result set, similar to the one above, with spaces as fillers and stars at the end</li>
<li>shows another example that looks like some sort of a spaceship, from mysql forge</li>
</ul>
<li>GROUP_CONCAT (can I get a woot? I love this function)</li>
<ul>
<li>CONCAT() and CONCAT_WS() now for groups</li>
<li>ORDER BY</li>
<li>SEPARATOR</li>
<li>limited to 1kb by default, change group_concat_max_len</li>
<li>shows example (see slides)</li>
</ul>
<li>how to get a second to last value?</li>
<ul>
<li>uses GROUP_CONCAT, looks horribly long and inefficient, there has to be a better way</li>
<li>somebody suggests using ORDER BY with LIMIT</li>
</ul>
<li>rankings</li>
<ul>
<li>uses MySQL vars</li>
<li>not as many people as I thought seem to know about it, judging by the low amount of raised hands</li>
<li>SET @var:=3</li>
<li>SELECT @var;</li>
<li>variables are not shared between connections, destroyed at the end of the connection</li>
<li>uses LEAST()</li>
<li>see slides</li>
</ul>
<li>agile loading</li>
<ul>
<li>SET @i:=0</li>
<li>LOAD DATA INFILE &#039;/tmp/stats.txt&#039;<br />INTO TABLE statPHPload<br />&nbsp; (@date, @php, @country, @continent)<br />SET<br />&nbsp; id = 0,<br />&nbsp; period = date(STR_TO_DATE(@date, &#039;%d-%b-%y&#039;)),<br />&nbsp; rank = (@i := @i + 1),<br />&nbsp; php = CAST(REPLACE(@php, &#039;,&#039;, &#039;.&#039;) AS DECIMAL),<br />&nbsp; country = @country;</li>
</ul>
</ul>
Similar Posts:<ul><li><a href="http://beerpla.net/2008/04/15/mysql-conference-liveblogging-explain-demystified-tuesday-200p/" rel="bookmark" title="April 15, 2008">MySQL Conference Liveblogging: EXPLAIN Demystified (Tuesday 2:00PM)</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-applied-partitioning-and-scaling-your-oltp-database-system-wednesday-1155am/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: Applied Partitioning And Scaling your (OLTP) Database System (Wednesday 11:55AM)</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-mysql-performance-under-a-microscope-the-tobias-and-jay-show-wednesday-200pm/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: MySQL Performance Under A Microscope: The Tobias And Jay Show (Wednesday 2:00PM)</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-portable-scale-out-benchmarks-for-mysql-wednesday-1050am/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: Portable Scale-out Benchmarks For MySQL (Wednesday 10:50AM)</a></li>

<li><a href="http://beerpla.net/2008/04/17/mysql-conference-liveblogging-mysql-hidden-treasures-thursday-1155pm/" rel="bookmark" title="April 17, 2008">MySQL Conference Liveblogging: MySQL Hidden Treasures (Thursday 11:55PM)</a></li>
</ul><!-- Similar Posts took 10.411 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=s8F3G5"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=s8F3G5" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=s5qYHhG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=s5qYHhG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=qOVLJ8g"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=qOVLJ8g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=FQPOrGG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=FQPOrGG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=io7QS0g"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=io7QS0g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=agD78Tg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=agD78Tg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/272366296" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/17/mysql-conference-liveblogging-mysql-hidden-treasures-thursday-1155pm/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/17/mysql-conference-liveblogging-mysql-hidden-treasures-thursday-1155pm/</feedburner:origLink></item>
		<item>
		<title>MySQL Conference Liveblogging: Monitoring Tools (Wednesday 5:15PM)</title>
		<link>http://feeds.feedburner.com/~r/BeerPlanet/~3/271793704/</link>
		<comments>http://beerpla.net/2008/04/16/mysql-conference-liveblogging-monitoring-tools-wednesday-515pm/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 00:20:57 +0000</pubDate>
		<dc:creator>Artem Russakovskii</dc:creator>
		
		<category><![CDATA[Databases]]></category>

		<category><![CDATA[cacti]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[fiveruns]]></category>

		<category><![CDATA[heartbeat]]></category>

		<category><![CDATA[hyperic]]></category>

		<category><![CDATA[innotop]]></category>

		<category><![CDATA[mon]]></category>

		<category><![CDATA[monitoring]]></category>

		<category><![CDATA[monyog]]></category>

		<category><![CDATA[moodss]]></category>

		<category><![CDATA[mtstat]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[mysqladmin]]></category>

		<category><![CDATA[mytop]]></category>

		<category><![CDATA[nagios]]></category>

		<category><![CDATA[nagiosql]]></category>

		<category><![CDATA[sqlyog]]></category>

		<category><![CDATA[tool]]></category>

		<category><![CDATA[webyog]]></category>

		<category><![CDATA[zabbix]]></category>

		<category><![CDATA[zenoss]]></category>

		<guid isPermaLink="false">http://beerpla.net/2008/04/16/mysql-conference-liveblogging-monitoring-tools-wednesday-515pm/</guid>
		<description><![CDATA[
Tom Hanlon of MySQL presents
monitoring tool basics

SHOW FULL PROCESSLIST
SHOW GLOBAL STATUS
SHOW GLOBAL VARIABLES


basic tools

mysqladmin is provided with the server

mysqladmin -i 10 extended status: will repeat the same command every 10 seconds. Pipe through grep &#034;and smoke it&#034; (bad pun, hah hah)
-r: show only changed values


MySQL Administrator


cacti

rrdtool based network graphing tool
uses snmp
PHP apache and MySQL based [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Tom Hanlon of MySQL presents</li>
<li>monitoring tool basics
<ul>
<li>SHOW FULL PROCESSLIST</li>
<li>SHOW GLOBAL STATUS</li>
<li>SHOW GLOBAL VARIABLES</li>
</ul>
</li>
<li>basic tools
<ul>
<li>mysqladmin is provided with the server
<ul>
<li>mysqladmin -i 10 extended status: will repeat the same command every 10 seconds. Pipe through grep &#034;and smoke it&#034; (<em>bad pun, hah hah</em>)</li>
<li>-r: show only changed values</li>
</ul>
</li>
<li>MySQL Administrator</li>
</ul>
</li>
<li>cacti
<ul>
<li>rrdtool based network graphing tool</li>
<li>uses snmp</li>
<li>PHP apache and MySQL based solution</li>
<li>MySQL plugins, download and install</li>
<li>&#034;poller&#034; gathers data and populates the graphs</li>
<li>someone offers <a href="http://munin.projects.linpro.no/" target="_blank" class="liexternal">munin</a> as an alternative
<ul>
<li>not snmp based, its own agent is used</li>
</ul>
</li>
<li>pros
<ul>
<li>cacti is fairly easy to configure</li>
</ul>
</li>
<li>cons
<ul>
<li>could be CPU intensive with lots of machines (<em>Perl polling seems to be the problem</em>)</li>
</ul>
</li>
</ul>
</li>
<li>zenoss
<ul>
<li>complete network monitoring tool</li>
<li>AJAX, integrated with Google Maps (<em>if you don&#039;t know where the servers are, everyone laughs at this comment)</em></li>
</ul>
</li>
<li>innotop
<ul>
<li>monitoring innodb, complex output</li>
<li>developed by Baron Schwartz</li>
</ul>
</li>
<li><a href="http://jeremy.zawodny.com/mysql/mytop/" target="_blank" class="liexternal">mytop</a>
<ul>
<li>similar to Linux&#039;s top</li>
<li>filter connections on database/host being used</li>
<li>queries per sec</li>
</ul>
</li>
<li><a href="https://launchpad.net/mtstat" target="_blank" class="liexternal">mtstat-mysql</a>
<ul>
<li>plugin for the system monitoring tool <a href="https://launchpad.net/mtstat" target="_blank" class="liexternal">mtstat</a></li>
<li><a href="https://launchpad.net/mtstat" target="_blank" class="liexternal">mtstat</a> provides functionality of vmstat and iostat tools to monitor system activity</li>
</ul>
</li>
<li><a href="http://www.nagios.org/" target="_blank" class="liexternal">nagios</a>
<ul>
<li>nagios is more of a notification tool, although it can do graphs</li>
<li>pain to set up, text config files, but still the most widely used tool, should be better in upcoming versions</li>
<li><a href="http://www.nagiosql.org/" title="http://www.nagiosql.org/" target="_blank" class="liexternal">NagiosQL</a> is a front end tool for nagios administration (<em>somebody from the audience pointed this out, that&#039;s completely new to me!</em>)</li>
<li><em>I offer <a href="http://www.zabbix.com/" target="_blank" class="liexternal">zabbix</a> as an alternative</em></li>
<li><em><a href="http://www.hyperic.com/" target="_blank" class="liexternal"><strong>hyperic</strong></a><strong> is another, apparently very easy to set up, with service autodiscovery</strong></em></li>
</ul>
</li>
<li><a href="http://www.mysql.com/products/enterprise/monitor.html" target="_blank" class="liexternal">MySQL Enterprise Monitor</a> (not free)
<ul>
<li>graphs, monitoring, GUI</li>
<li>built by MySQL folks themselves</li>
<li>agent based</li>
<li>well organized</li>
</ul>
</li>
<li><em><a href="http://www.webyog.com/" target="_blank" class="liexternal">webyog</a>, <a href="http://www.webyog.com/" target="_blank" class="liexternal">sqlyog</a>, <a href="http://www.webyog.com/" target="_blank" class="liexternal">monyog</a>, <a href="http://mon.wiki.kernel.org/index.php/Main_Page" target="_blank" class="liexternal">mon</a>, <a href="http://www.linux-ha.org/Heartbeat" target="_blank" class="liexternal">heartbeat</a>, <a href="http://moodss.sourceforge.net/" target="_blank" class="liexternal">moodss</a>, <a href="http://www.fiveruns.com/products" target="_blank" class="liexternal">fiveruns</a> are added by the audience members</em></li>
</ul>
Similar Posts:<ul><li><a href="http://beerpla.net/2008/03/24/mysql-conference-2008/" rel="bookmark" title="March 24, 2008">MySQL Conference 2008</a></li>

<li><a href="http://beerpla.net/2008/03/25/navicat-for-mysql-bugs-filed/" rel="bookmark" title="March 25, 2008">Navicat For MySQL Bugs Filed</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-benchmarking-tools-wednesday-425pm/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: Benchmarking Tools (Wednesday 4:25PM)</a></li>

<li><a href="http://beerpla.net/2008/04/16/mysql-conference-liveblogging-monitoring-tools-wednesday-515pm/" rel="bookmark" title="April 16, 2008">MySQL Conference Liveblogging: Monitoring Tools (Wednesday 5:15PM)</a></li>

<li><a href="http://beerpla.net/2008/04/17/mysql-conference-liveblogging-optimizing-mysql-for-high-volume-data-logging-applications-thursday-250pm/" rel="bookmark" title="April 17, 2008">MySQL Conference Liveblogging: Optimizing MySQL For High Volume Data Logging Applications (Thursday 2:50PM)</a></li>
</ul><!-- Similar Posts took 10.047 ms -->
<p><a href="http://feeds.feedburner.com/~a/BeerPlanet?a=ZJgBDC"><img src="http://feeds.feedburner.com/~a/BeerPlanet?i=ZJgBDC" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeerPlanet?a=LcklRwG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=LcklRwG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=l7UPvmg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=l7UPvmg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=fG9aIjG"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=fG9aIjG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=7jbtDag"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=7jbtDag" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeerPlanet?a=65mn7Mg"><img src="http://feeds.feedburner.com/~f/BeerPlanet?i=65mn7Mg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeerPlanet/~4/271793704" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beerpla.net/2008/04/16/mysql-conference-liveblogging-monitoring-tools-wednesday-515pm/feed/</wfw:commentRss>
		<feedburner:origLink>http://beerpla.net/2008/04/16/mysql-conference-liveblogging-monitoring-tools-wednesday-515pm/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 1.604 seconds --><!-- Cached page served by WP-Cache --><!-- Compression = gzip -->
