<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Pythian Blog</title>
	<atom:link href="http://www.pythian.com/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pythian.com/news</link>
	<description>News and views from Pythian DBAs</description>
	<lastBuildDate>Fri, 12 Mar 2010 17:01:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Log Buffer #182, a Carnival of the Vanities for DBAs</title>
		<link>http://www.pythian.com/news/9417/log-buffer-182-a-carnival-of-the-vanities-for-dbas/</link>
		<comments>http://www.pythian.com/news/9417/log-buffer-182-a-carnival-of-the-vanities-for-dbas/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 17:01:59 +0000</pubDate>
		<dc:creator>Sheeri Cabral</dc:creator>
				<category><![CDATA[Log Buffer]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technical Blog]]></category>
		<category><![CDATA[alias]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[capacity planning]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[column]]></category>
		<category><![CDATA[column store]]></category>
		<category><![CDATA[column-oriented]]></category>
		<category><![CDATA[confoo]]></category>
		<category><![CDATA[convention]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[DB2]]></category>
		<category><![CDATA[drizzle]]></category>
		<category><![CDATA[dw]]></category>
		<category><![CDATA[e-book]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[etl]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[implicit commit]]></category>
		<category><![CDATA[infinidb]]></category>
		<category><![CDATA[internship]]></category>
		<category><![CDATA[IO]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[mainframes]]></category>
		<category><![CDATA[migrate]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[patching]]></category>
		<category><![CDATA[relational]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[scale]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[STATISTICS IO]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[survey]]></category>
		<category><![CDATA[table alias]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[TSQL]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[vertical]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9417</guid>
		<description><![CDATA[This is the 182nd edition of Log Buffer, the weekly review of database blogs.  Make sure to read the whole edition so you do not miss where to submit your SQL limerick!
This week started out with me posting about International Women&#8217;s Day, and has me personally attending Confoo (Montreal) which is an excellent conference [...]]]></description>
			<content:encoded><![CDATA[<p>This is the 182nd edition of Log Buffer, the weekly review of database blogs.  Make sure to read the whole edition so you do not miss where to submit your SQL limerick!</p>
<p>This week started out with <A HREF="http://www.pythian.com/news/author/sheeri/">me</A> posting about <A HREF="http://www.pythian.com/news/9207/international-womens-day/">International Women&#8217;s Day</A>, and has me personally attending <A HREF="http://www.confoo.ca">Confoo</A> (Montreal) which is an excellent conference I hope to return to next year.  I learned a lot from confoo, especially the <A HREF="http://www.pythian.com/news/9387/liveblogging-at-confoo-blending-nosql-and-sql/">blending nosql and sql</A> session I attended.</p>
<p>This week was also the <A HREF="http://www.hotsos.com/sym10.html">Hotsos Symposium</a>.  <A HREF="http://oracledoug.com/serendipity/index.php">Doug&#8217;s Oracle Blog</A> has a <A HREF="http://oracledoug.com/serendipity/index.php?/plugin/tag/hotsos+2010">series of posts about Hotsos</A>.  If all this talk about conferences has gotten you excited, <A HREF="http://www.commandprompt.com/blogs/joshua_drake/">Joshua Drake</a> notes that <A HREF="http://www.commandprompt.com/blogs/joshua_drake/2010/03/14_days_and_the_hotel_is_almost_full_for_postgresql_conference_east/">14 days and the hotel is almost full for postgresql conference east</a> which is <A HREF="http://www.postgresqlconference.org/">March 25th-28th in Philadelphia</a>.  And the <A HREF="http://blogs.oracle.com/databaseinsider/">Oracle database insider</a> notes that the <A HREF="http://blogs.oracle.com/databaseinsider/2010/03/oracle_openworld_2010_call_for.html">Oracle OpenWorld call for papers</a> is now open.</p>
<p>According to <A HREF="https://www.ibm.com/developerworks/mydeveloperworks/blogs/SusanVisser/">Susan Visser</A> this week (ending tomorrow) is also <A HREF="https://www.ibm.com/developerworks/mydeveloperworks/blogs/SusanVisser/entry/read_an_e_book_week_march_7_1312?lang=en">read an e-book week</a>.  So if you have not already done so, read an e-book!  She links a coupon for an e-book in the post.<br />
<span id="more-9417"></span></p>
<p><A HREF="http://db2portal.blogspot.com/">Craig Mullins</A> notes that the mainframe is a good career choice in <A HREF="http://db2portal.blogspot.com/2010/03/mainframes-safe-it-career-choice.html">Mainframes: The Safe IT Career Choice</A>.  He notes that the mainframe is still not dead:</p>
<blockquote><p>People having been predicting the death of the mainframe since the advent of client/server in the late 1980s. That is more than 20 years! Think of all the things that have died in that timespan while the mainframe keeps on chugging away: IBM&#8217;s PC business, Circuit City, Koogle peanut butter, public pay phones, Johnny Cash&#8230; the list is endless.</p></blockquote>
<p>In other career-related news, <A HREF="http://antoniocangiano.com/">Antonio Cangiano</A> is <A HREF="http://antoniocangiano.com/2010/03/05/heads-up-ibm-is-looking-for-top-notch-student-hackers/">looking for [2] top-notch student hackers</A> for a 16-month internship at IBM in Toronto starting in May.  All the details, including how to apply, are in Cangiano&#8217;s blog post.</p>
<p><A HREF="http://it.toolbox.com/blogs/db2zos/">Willie Favero</A> wants to know how you &#8220;solve the batch dilemma&#8221; for issues like &#8220;shrinking your batch window, designing your batch to play nicely with &#8230; OLTP&#8221; in <A HREF="http://it.toolbox.com/blogs/db2zos/hows-your-batch-workload-doing-37343">how&#8217;s your batch workload doing?</a>  Perhaps Favero should read the <A HREF="http://blogs.oracle.com/theshortenspot/2010/03/updated_batch_best_practices.html">updated batch best practices</a> posted by <A HREF="http://blogs.oracle.com/theshortenspot/">Anthony Shorten</A>.</p>
<p><A HREF="https://www.ibm.com/developerworks/mydeveloperworks/blogs/idm/">Bryan Smith</A> surveys a more personal question by asking if you <A HREF="http://www.urbandictionary.com/products.php?defid=1793756">go both ways</A> and &#8220;manage both DB2 for Linux, UNIX, and Windows and DB2 for z/OS&#8221; in <A HREF="https://www.ibm.com/developerworks/mydeveloperworks/blogs/idm/entry/don_t_ask_don_t_tell_bi_platform_dbas?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+ManagingTheDataLifecycle+%28Data+Studio+Team%29&#038;lang=en">don&#8217;t ask, don&#8217;t tell, bi-platform DBAs</A>.  This week&#8217;s Log Buffer editor admits to being a tri-platform DBA &#8212; she has tried many platforms, and in fact, many databases (MySQL, Oracle, DB2, SQL Server, Sybase, Postgres and Ingres)!</p>
<p><A HREF="http://blogs.oracle.com/gridautomation/">Hari Prasanna Srinivasan</a> promotes a patching survey in <A HREF="http://blogs.oracle.com/gridautomation/2010/03/oracle_really_wants_to_hear_fr.html">Oracle really wants to hear from you! Patching Survey</A>.</p>
<p><A HREF="http://blog.4loeser.net/">Henrik Loeser</A> explains what a deadlock and a hot spot are by using a real life analogy taken from a police report in <A HREF="http://blog.4loeser.net/2010/03/deadlock-and-hot-spot-in-real-life.html">deadlock and hot spot in real life</a>.</p>
<p><A HREF="http://sqlblog.com/blogs/jamie_thomson/">Jamie Thomson</A> asks <A HREF="http://sqlblog.com/blogs/jamie_thomson/archive/2010/03/08/why-do-you-abbreviate-schema-names.aspx">why do you abbreviate schema names?</a>.  <A HREF="http://code.openark.org/blog/">Shlomi Noach</A> tries to solve the issue that &#8220;there is no consistent convention as for how to write [about table aliases in] an SQL query&#8221; in <A HREF="http://code.openark.org/blog/mysql/proper-sql-table-alias-use-conventions">proper sql table alias use conventions</A>.  Noach also gives us a <A HREF="http://code.openark.org/blog/mysql/tip-faster-than-truncate">tip: faster than truncate</a>.</p>
<p><A HREF="http://lpetr.org/blog/archives/">Leons Petrazickis</A> reminds us that &#8220;rulesets are chains&#8221; and it is important to have your rulesets in the proper order in <A HREF="http://lpetr.org/blog/archives/iptables-firewall-pitfall">iptables firewall pitfall</a>.</p>
<p>Anyone interested in <A HREF="http://buytaert.net/the-history-of-mysql-ab">the history of MySQL AB</A> will be informed after reading <A HREF="http://buytaert.net/">Dries Buytaert</a>&#8217;s article.<br />
<A HREF="http://gtowey.blogspot.com/">Gavin Towey</A> shares his software that helps centrally manage 120 MySQL servers in <A HREF="http://gtowey.blogspot.com/2010/03/qshpl-distributed-query-tool.html">qsh.pl: distributed query tool</A>  For those who want to learn more about column-oriented databases, particularly in MySQL, <A HREF="http://infinidb.org/infinidb-blog/">Robin Schumacher of the InfiniDB blog</a> announces that there is a <A HREF="http://infinidb.org/infinidb-blog/mysql-university-session-recording-on-mysql-column-databases-now-available.html">MySQL University session recording on MySQL column databases now available</a>.  MySQL join-fu expert <A HREF="http://www.joinfu.com/">Jay Pipes</A> has moved his blog to <A HREF="http://www.joinfu.com">www.joinfu.com</A> and starts with <A HREF="http://www.joinfu.com/2010/03/a-sql-puzzle/">An SQL Puzzle</A> and of course <A HREF="http://www.joinfu.com/2010/03/a-follow-up-on-the-sql-puzzle/">a follow up on the sql puzzle</A>.</p>
<p><A HREF="http://izoratti.blogspot.com/">Ivan Zoratti</A> is happy that <A HREF="http://izoratti.blogspot.com/2010/03/finally-slides-posted-for-dw-breakfast.html">finally, slides posted for the MySQL DW breakfast</A>.  <A HREF="http://venublog.com/">Venu Anuganti</A> gives you tips on one of the most common MySQL frustrations:  optimizing subqueries in <A HREF="http://venublog.com/2010/03/06/how-to-improve-subqueries-derived-tables-performance/">how to improve subqueries derived tables performance</a>.  <A HREF="http://swanhart.livejournal.com/">Justin Swanhart</A> posts the way in which he <A HREF="http://swanhart.livejournal.com/131541.html">Gets Linux performance information from your MySQL database without shell access</a> and <A HREF="http://swanhart.livejournal.com/131788.html">emulates a &#8216;top&#8217; CPU summary using /proc/stat and MySQL</A> using the same method.</p>
<p>The <A HREF="http://www.oracleappsblog.com/index.php">Oracle Apps blog</a> has an <A HREF="http://www.oracleappsblog.com/index.php/weblog/introduction-to-oracle-user-productivity-kit-upk/">introduction to Oracle user productivity kit</a> (UPK).  Even though in this editor&#8217;s opinion the article is very sales-pitchy, it has valuable information, and does indeed live up to its promise:</p>
<blockquote><p>UPK is a software tool that can capture all the steps in a system process. It records every keystroke, every click of the mouse, each menu option chosen and each button pressed. All this is done in the UPK Recorder by going through the transaction and pressing “printscreen” after every user action. From this, without any further effort from the developer, UPK builds a number of valuable outputs.</p></blockquote>
<p><A HREF="http://sqlblog.com/blogs/allen_white/">Allen White</a> gives a great tip on how to optimize queries in <A HREF="http://sqlblog.com/blogs/allen_white/archive/2010/03/05/keep-your-data-clean.aspx">keep your data clean</a>.</p>
<p><A HREF="http://blogs.oracle.com/UPGRADE/">Mike Dietrich</A> reminds you to <A HREF="http://blogs.oracle.com/UPGRADE/2010/03/remove_old_parameters_and_even.html">remove &#8220;old&#8221; parameters and events from your init.ora</A> when upgrading, &#8220;as keeping them will definitely slow down the database performance in the new release.&#8221;  He shows evidence of slowness when this is not done.  Dietrich also shows how you can be <A HREF="http://blogs.oracle.com/UPGRADE/2010/03/gathering_workload_statistics.html">gathering workload statistics</A> &#8220;to give the optimizer some good knowledge about how powerful your IO-system might be&#8221;, especially &#8220;a few days after upgrading to the new release&#8230;while a real workload is running.&#8221;</p>
<p><A HREF="http://krow.livejournal.com/">Brian Aker</a> shows the exciting features coming soon in Drizzle in <A HREF="http://krow.livejournal.com/686178.html">Drizzle, Cherry, Roadmap for our Next Release</A>.</p>
<p>Maybe you are thinking of migrating, not upgrading&#8230;..<A HREF="http://radar.oreilly.com/">The O&#8217;Reilly Radar</A> shows how to asses an Oracle to MySQL migration in <A HREF="http://radar.oreilly.com/2010/03/oracle-to-mysql.html">MySQL migration and risk management</A>.  Actually, that article interviews <A HREF="http://ronaldbradford.com">Ronald Bradford</A> on the subject &#8212; Bradford has been prolific lately, updating <A HREF="http://ronaldbradford.com/blog/tag/my-cnf/">free my.cnf advice series</a> and <A HREF="http://ronaldbradford.com/blog/tag/mysql4oracledba/">&#8220;Don&#8217;t Assume&#8221;: MySQL for the Oracle DBA series</A>.  <A HREF="http://blogs.oracle.com/stevenChan/">Nick Quarmby</A> also talks about migrating Oracle, but not to a new database, just to a new platform, in his <A HREF="http://blogs.oracle.com/stevenChan/2010/03/migrating_oracle_applications_to_new_platforms.html">primer on migrating Oracle Applications to new platforms</A>.  And the big news comes from <A HREF="http://www.dataprix.com/en/blogs/carlos">Carlos of dataprix</a> that <A HREF="http://www.dataprix.com/en/blogs/carlos/twitter-will-migrate-mysql-cassandra-db">Twitter will migrate from MySQL to Cassandra DB</A>.</p>
<p><A HREF="http://www.sqlskills.com/BLOGS/PAUL/">Paul S. Randal</a> explains his way of <A HREF="http://www.sqlskills.com/BLOGS/PAUL/post/Benchmarking-1-TB-table-population-%28part-4-network-optimization%29.aspx">benchmarking: 1 Tb table population</a> on SQL Server.</p>
<p><A HREF="http://www.petefinnigan.com/weblog/entries/">Pete Finnigan</A> shares his slides from <A HREF="http://www.petefinnigan.com/weblog/archives/00001314.htm">a webinar on how to secure oracle</A>, and <A HREF="http://blogs.oracle.com/security/">Denis Pilipchuk</A> shares his <A HREF="http://blogs.oracle.com/security/2010/03/approaches_for_discovering_sec.html">approaches for discovering security vulnerabilities in software applications</A>.</p>
<p><A HREF="http://thoughts.j-davis.com/">Jeff Davis</A> shares his thoughts about <A HREF="http://thoughts.j-davis.com/2010/03/07/scalability-and-the-relational-model/">scalability and the relational model</A>.  <A HREF="http://www.xzilla.net/">Robert Treat</A> responds <A HREF="http://www.xzilla.net/blog/2010/Mar/Actually,-the-Relational-Model-doesnt-scale.html">actually, the relational model doesn&#8217;t scale</a> and <A HREF="http://www.xaprb.com/">Baron Schwartz</A> counters with <A HREF="http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/">NoSQL doesn&#8217;t mean non-relational</a>.</p>
<p><A HREF="http://sqlblog.com/blogs/buck_woody/">Buck Woody</A> explains &#8220;whenever you want to know something about SQL Server’s configuration, whether that’s the Instance itself or a database, you have a few options&#8221; &#8212; and of course what those options are &#8212; in <A HREF="http://sqlblog.com/blogs/buck_woody/archive/2010/03/11/system-variables-stored-procedures-or-functions-for-meta-data.aspx">system variables, stored procedures or functions for meta data</a>.</p>
<p>This week&#8217;s <A HREF="http://www.straightpathsql.com/archives/2010/03/invitation-for-t-sql-tuesday-004-io/">T-SQL Tuesday</A> topic was I/O.  There are many links to great blog posts in the comments; three random posts I chose to highlight: <A HREF="http://sqlblog.com/blogs/michael_zilberstein/">Michael Zilberstein</A> talks about <A HREF="http://sqlblog.com/blogs/michael_zilberstein/archive/2010/03/09/23065.aspx">IO capacity planning</A>, while <A HREF="http://sqlblog.com/blogs/kalen_delaney/">Kalen Delaney</a> talks about using STATISTICS IO in <A HREF="http://sqlblog.com/blogs/kalen_delaney/archive/2010/03/09/tsql-tuesday-4-io.aspx">I/O, you know</a>, and <A HREF="http://sqlblog.com/blogs/merrill_aldrich/">Merrill Aldrich</a> chimes in with information on <A HREF="http://sqlblog.com/blogs/merrill_aldrich/archive/2010/03/08/t-sql-tuesday-004-real-world-ssd-s.aspx">real world SSD&#8217;s</a>.  Aldrich also begs folks not to waste resources and make more work for developers and DBAs in <A HREF="http://sqlblog.com/blogs/merrill_aldrich/archive/2010/03/11/dear-isv-you-re-keeping-me-awake-nights-with-your-varchar-dates.aspx">dear ISV, you&#8217;re keeping me awake nights with your VARCHAR() dates</A>.</p>
<p>And we end with a bit of fin:  <A HREF="http://sqlblog.com/blogs/paul_nielsen/">Paul Nielsen</A> wants us all to have a bit of fun; he has posted an SQL limerick and asks readers to create there own in <A HREF="http://sqlblog.com/blogs/paul_nielsen/archive/2010/03/11/there-once-was-in-dublin-a-query.aspx">there once was in Dublin a query</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9417/log-buffer-182-a-carnival-of-the-vanities-for-dbas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liveblogging at Confoo: Blending NoSQL and SQL</title>
		<link>http://www.pythian.com/news/9387/liveblogging-at-confoo-blending-nosql-and-sql/</link>
		<comments>http://www.pythian.com/news/9387/liveblogging-at-confoo-blending-nosql-and-sql/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 16:11:53 +0000</pubDate>
		<dc:creator>Sheeri Cabral</dc:creator>
				<category><![CDATA[Group Blog Posts]]></category>
		<category><![CDATA[bigtable]]></category>
		<category><![CDATA[bson]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[column store]]></category>
		<category><![CDATA[column-oriented]]></category>
		<category><![CDATA[confoo]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[datamapper]]></category>
		<category><![CDATA[document database]]></category>
		<category><![CDATA[dynomite]]></category>
		<category><![CDATA[gloo]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[graph database]]></category>
		<category><![CDATA[gridfs]]></category>
		<category><![CDATA[hbase]]></category>
		<category><![CDATA[hypertable]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[key-value]]></category>
		<category><![CDATA[map reduce]]></category>
		<category><![CDATA[memcacheddb]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[neo4j]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Pythian]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[riak]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[tokyo cabinet]]></category>
		<category><![CDATA[voldemort]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9387</guid>
		<description><![CDATA[Persistence Smoothie:  Blending NoSQL and SQL &#8211; see user feedback and comments at http://joind.in/talk/view/1332.
Michael Bleigh from Intridea, high-end Ruby and Ruby on Rails consultants, build apps from start to finish, making it scalable.   He&#8217;s written a lot of stuff, available at http://github.com/intridea.  @mbleigh on twitter
NoSQL is a new way to think [...]]]></description>
			<content:encoded><![CDATA[<p>Persistence Smoothie:  Blending NoSQL and SQL &#8211; see user feedback and comments at <A HREF="http://joind.in/talk/view/1332">http://joind.in/talk/view/1332</A>.</p>
<p>Michael Bleigh from <A HREF="http://intridea.com/">Intridea</A>, high-end Ruby and Ruby on Rails consultants, build apps from start to finish, making it scalable.   He&#8217;s written a lot of stuff, available at <A HREF="http://github.com/intridea">http://github.com/intridea</A>.  @mbleigh on twitter</p>
<p>NoSQL is a new way to think about persistence.  Most NoSQL systems are not ACID compliant (Atomicity, Consistency, Isolation, Durability).</p>
<p>Generally, most NoSQL systems have:<br />
<span id="more-9387"></span><br />
<UL><LI>Denormalization<br />
</LI><LI>Eventual Consistency<br />
</LI><LI>Schema-Free<br />
</LI><LI>Horizontal Scale<br />
</LI></UL></p>
<p>NoSQL tries to scale (more) simply, it is starting to go mainstream &#8211; NY Times, BBC, SourceForge, Digg, Sony, ShopWiki, Meebo, and more.  But it&#8217;s not *entirely* mainstream, it&#8217;s still hard to sell due to compliance and other reasons.</p>
<p>NoSQL has gotten very popular, lots of blog posts about them, but they reach this hype peak and obviously it can&#8217;t do everything.</p>
<p>&#8220;NoSQL is a (growing) collection of tools, not a new way of life.&#8221;</p>
<p>What is NoSQL?  Can be several things:<br />
<UL><LI>Key-Value Stores<br />
</LI><LI>Document Databases<br />
</LI><LI>Column-oriented data stores<br />
</LI><LI>Graph Databases<br />
</LI></UL></p>
<p><H2>Key-Value Stores</H2><br />
<A HREF="http://www.memcached.org">memcached</a> is a &#8220;big hash in the sky&#8221; &#8211; it is a key value store.  Similarly, NoSQL key-value stores &#8220;add to that big hash in the sky&#8221; and store to disk.</p>
<p>Speaker&#8217;s favorite is <A HREF="http://code.google.com/p/redis/">Redis</a> because it&#8217;s similar to memcached.<br />
<UL><LI>key-value store + datatypes (list, sets, scored sets, soon hashes will be there)<br />
</LI><LI>cache-like functions (like expiration)<br />
</LI><LI>(Mostly) in-memory<br />
</LI></UL></p>
<p>Another interesting key-value store is <A HREF="http://riak.basho.com">Riak</A><br />
<UL><LI>Combination of key-value store and document database<br />
</LI><LI>heavy into HTTP REST<br />
</LI><LI>You can create links between documents, and do &#8220;link walking&#8221; that you don&#8217;t normally get out of a key-value store<br />
</LI><LI>built-in Map Reduce<br />
</LI></UL></p>
<p><H2>Map Reduce:</H2><br />
<UL><LI>Massively parallel way to process large datasets<br />
</LI><LI>First you scour data and &#8220;map&#8221; a new set of dataM<br />
</LI><LI>Then you &#8220;reduce&#8221; the data down to a salient result &#8212; for example, map reduce function to make a tag cloud:  map function makes an array with a tag name and a count of 1 for each instance of that tag, and the reduce tag goes through that array and counts them&#8230;<br />
</LI><LI><A HREF="http://en.wikipedia.org/wiki/MapReduce">http://en.wikipedia.org/wiki/MapReduce</A><br />
</LI></UL></p>
<p>Other key-value stores:<br />
<UL><LI><A HREF="http://1978th.net/tokyocabinet">Tokyo Cabinet</a><br />
</LI><LI><A HREF="http://github.com/cliffmoon/dynomite">Dynomite</a><br />
</LI><LI><A HREF="http://memcachedb.org">memcachedDB</A><br />
</LI><LI><A HREF="http://project-voldemort.com/">Voldemort</A><br />
</LI></UL></p>
<p><H2>Document Databases</H2><br />
Some say that it&#8217;s the &#8220;closest&#8221; thing to real SQL.<br />
<UL><LI><A HREF="http://www.mongodb.org">MongoDB</A> &#8211; Document store that speaks <A HREF="http://en.wikipedia.org/wiki/BSON">BSON</a> (Binary JSON, which is compact).  This is the speaker&#8217;s favorite because it has a rich query syntax that makes it close to SQL.  Can&#8217;t do joins, but can embed objects in other objects, so it&#8217;s a tradeoff</LI><br />
  <UL><LI>Also has <A HREF="http://www.mongodb.org/display/DOCS/GridFS">GridFS</A> that can store large files efficiently, can scale to petabytes of data<br />
  </LI><LI>does have MapReduce but it&#8217;s deliberate and you run it every so often.<br />
  </LI></UL></p>
<p><LI><A HREF="http://couchdb.apache.org">CouchDB</a><br />
<UL><LI>Pure <A HREF="http://www.json.org">JSON</a> Document Store &#8211; can query directly with nearly pure javascript (there are auth issues) but it&#8217;s an interesting paradigm to be able to run your app almost entirely through javascript.<br />
</LI><LI>HTTP REST interface<br />
</LI><LI>MapReduce only to see items in CouchDB.  Incremental MapReduce, every time you add or modify a document, it dynamically changes the functions you&#8217;ve written.  You can do really powerful queries as easy as you can do simple queries.  However, some things are really complex, ie, pagination is almost impossible to do.<br />
</LI><LI>Intelligent Replication &#8211; CouchDB is designed to work with offline integration.  Could be used instead of SQLite as the HTML5 data store, but you need CouchDB running locally to be doing offline stuff w/CouchDB<br />
</LI></UL><br />
</UL></p>
<p><H2>Column-oriented store</H2><br />
Columns are stored together (ie, names) instead of rows.  Lets you be schema-less because you don&#8217;t care about a row&#8217;s consistency, you can just add a column to a table very easily.</LI></p>
<p><UL><LI><A HREF="http://incubator.apache.org/cassandra/">Cassandra</A> &#8211; Built by Facebook, also used by Twitter<br />
</LI><LI><A HREF="http://en.wikipedia.org/wiki/BigTable">BigTable</a><br />
</LI><LI><A HREF="http://hypertable.org">Hypertable</A><br />
</LI><LI><A HREF="http://hadoop.apache.org/hbase/">HBase</A><br />
</LI></UL></p>
<p><H2>Graph Databases</H2><br />
speaker&#8217;s opinion &#8211; there aren&#8217;t enough of these.<br />
<A HREF="http://neo4j.org">Neo4J</a> &#8211; can handle modeling complex relationships &#8211; &#8220;friends of friends of cousins&#8221; but it requires a license.</p>
<p><H2>When should I use this stuff?</H2><br />
<TABLE><TR><TH>If you have:</TH><TH>Use</TH></TR><br />
<TR><TD>Complex, slow joins for an &#8220;activity stream&#8221;</TD><TD>Denormalize, use a key-value store.</TD></TR><br />
<TR><TD>Variable schema, vertical interaction</TD><TD>Document database or column store</TD></TR><br />
<TR><TD>Modeling multi-step relationships (linkedin, friends of friends, etc)</TD><TD>Graph</TD></TR></TABLE></p>
<p>Don&#8217;t look for a single tool that does every job.  Use more than one if it&#8217;s appropriate, weigh the tradeoffs (ie, don&#8217;t have 7 different data stores either!)</p>
<p>NoSQL solves real scalability and data design issues.  But financial transactions HAVE to be atomic, so don&#8217;t use NoSQL for those.</p>
<p>A good presentation is <A HREF="http://www.slideshare.net/bscofield/the-state-of-nosql">http://www.slideshare.net/bscofield/the-state-of-nosql</A>.</p>
<p><H2>Using SQL and NoSQL together</H2><br />
Why?  Well, your data is already in an SQL database (most likely).</p>
<p>You can blend by hand, but the easy way is <A HREF="http://datamapper.org">DataMapper</a>:<br />
Generic, relational ORM (adapters for many SQL dbs and many NoSQL stores)<br />
Implements Identity Map<br />
Module-based inclusion (instead of extending from a class, you just include into a class).</p>
<p>You can set up multiple data targets (default is MySQL, example sets up MongoDB too).<br />
DataMapper is:<br />
<UL><LI>Ultimate Polyglot ORM<br />
</LI><LI>simple r&#8217;ships btween persistence engines are easy<br />
</LI><LI>jack of all, master none<br />
</LI><LI>Sometimes perpetuates false assumptions &#8211;<br />
</LI><LI>If you&#8217;re in Ruby, your legacy stuff is in ActiveRecord, so you&#8217;re going to have to rewrite your code anyway.<br />
</LI></UL></p>
<p>Speaker&#8217;s idea to be less generic and better use of features of each data store &#8211; <A HREF="http://github.com/intridea/gloo">Gloo</A> &#8211; &#8220;Gloo glues together different ORMs by providing relationship proxies.&#8221;  this software is ALPHA ALPHA ALPHA.  </p>
<p>The goal is to be able to define relationships on the terms of any ORM from any class, ORM or not<br />
Right now &#8211; partially working activeRecord relationships<br />
Is he doing it wrong? Is it a crazy/stupid idea?  Maybe.</p>
<p>Example:<br />
<TABLE><TH>Need</TH><TH>Use</TH></TR><br />
<TR><TD>Assume you already have an auth system</TD><TD>it&#8217;s already in SQL, so leave it there.</TD></TR><br />
<TR><TD>Need users to be able to purchase items from the storefront &#8211; Can&#8217;t lose transactions, need full ACID compliance</TD><TD>use MySQL.</TD></TR><br />
<TR><TD>Social Graph &#8211; want to have activity streams and 1-way and 2-way relationships.  Need speed, but not consistency</TD><TD>use Redis</TD></TR><br />
<TR><TD>Product Listings &#8212; selling moves and books, both have different properties, products are pretty much non-relational</TD><TD>use MongoDB</TD></TR></TABLE></p>
<p>He wrote the example in about 3 hours, so integration of multiple data stores <strong>can</strong> be done quickly and work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9387/liveblogging-at-confoo-blending-nosql-and-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Liveblogging at Confoo:  [not just] PHP Performance by Rasmus Lerdorf</title>
		<link>http://www.pythian.com/news/9337/liveblogging-at-confoo-not-just-php-performance-by-rasmus-lerdorf/</link>
		<comments>http://www.pythian.com/news/9337/liveblogging-at-confoo-not-just-php-performance-by-rasmus-lerdorf/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 14:29:46 +0000</pubDate>
		<dc:creator>Sheeri Cabral</dc:creator>
				<category><![CDATA[Technical Blog]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[callgrind]]></category>
		<category><![CDATA[confoo]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[inclued]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[opcode cache]]></category>
		<category><![CDATA[pagespeed]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Pythian]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rasmus]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[siege]]></category>
		<category><![CDATA[strace]]></category>
		<category><![CDATA[twit]]></category>
		<category><![CDATA[valgrind]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xdebug]]></category>
		<category><![CDATA[yslow]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9337</guid>
		<description><![CDATA[Most of this stuff is not PHP specific, and Python or Ruby or Java or .NET developers can use the tools in this talk.
The session on joind.in, with user comments/feedback, is at http://joind.in/talk/view/1320.
Slides are at http://talks.php.net/show/confoo10
&#8220;My name is Rasmus, I&#8217;ve been around for a long time.  I&#8217;ve been doing this web stuff since 1992/1993.&#8221;
&#8220;Generally [...]]]></description>
			<content:encoded><![CDATA[<p>Most of this stuff is not PHP specific, and Python or Ruby or Java or .NET developers can use the tools in this talk.</p>
<p>The session on <A HREF="http://joind.in/">joind.in</a>, with user comments/feedback, is at <A HREF="http://joind.in/talk/view/1320">http://joind.in/talk/view/1320</A>.</p>
<p>Slides are at <A HREF="http://talks.php.net/show/confoo10">http://talks.php.net/show/confoo10</A></p>
<p>&#8220;My name is Rasmus, I&#8217;ve been around for a long time.  I&#8217;ve been doing this web stuff since 1992/1993.&#8221;</p>
<p>&#8220;Generally performance is not a PHP problem.&#8221;  Webservers not config&#8217;d, no expire headers on images, no favicon.  </p>
<p>Tools:  Firefox/Firebug extension called <A HREF="http://developer.yahoo.com/yslow/">YSlow</A> (developed by yahoo) gives you a grade on your site.<br />
<span id="more-9337"></span><br />
<A HREF="http://www.google.com">Google</a> has developed the Firefox/Firebug <A HREF="http://code.google.com/speed/page-speed/">pagespeed</a> tool.</p>
<p>Today Rasmus will pick on <A HREF="http://www.wordpress.com">wordpress</a>.  He checks out the code, then uses <A HREF="http://www.joedog.org/JoeDog/Siege">Siege</a> to do a baseline benchmark &#8212; see <A HREF="http://talks.php.net/show/confoo10/3">the slide</A> for the results.</p>
<p>Before you do anything else install an opcode cache like <A HREF="http://pecl.php.new/APC">APC</A>.  Wordpress really likes this type of caching, see <A HREF="http://talks.php.net/show/confoo10/4">this slide</A> for the results.  Set the timezone, to make sure conversions aren&#8217;t being done all the time.</p>
<p>Make sure you are cpu-bound, NOT I/O bound.  Otherwise, speed up the I/O.</p>
<p>Then strace your webserver processs.  There are <A HREF="http://talks.php.net/show/confoo10/5">common config issues</A> that you can spot in your strace code.  grep for ENOENT which shows you &#8220;No such file or directory&#8221; errors.  </p>
<p>AllowOverride None to turn off .htaccess for every directory, just read settings once from your config file&#8230;.(unless you&#8217;re an ISP).</p>
<p>Make sure DirectoryIndex is set appropriately, watch your include_path.  All this low-hanging fruit has examples on the <A HREF="http://talks.php.net/show/confoo10/5">common config issues</A> slide.</p>
<p><A HREF="http://talks.php.net/show/confoo10/6">Install pecl/inclued and generate a graph</A> &#8211; here is the <A HREF="http://talks.php.net/presentations/slides/intro/wp_inclued1.png">graph image</A> (I have linked it because you really want to zoom in to the graph&#8230;)</p>
<p>In strace output check the open() calls.  Conditional includes, function calls that include files, etc. need runtime context before knowing what to open.  In the example, every request checks to see if we have the config file, once we have config&#8217;d we can get rid of that stuff.  Get rid of all the conditionals and hard-code &#8220;include wp-config.php&#8221;.  Examples are on <A HREF="http://talks.php.net/show/confoo10/7">the slide</a>.</p>
<p>His tips to change:<br />
Conditional config include in wp-load.php (as just mentioned)<br />
Conditional did-header check in wp-blog-header.php<br />
Don&#8217;t call require_wp_db() from wp-settings.php<br />
Remove conditional require logic from wp_start_object_cache</p>
<p>Then check strace again, now all Rasmus sees is theming and translations, which he decided to keep, because that&#8217;s the good benefit of Wordpress &#8211; Performance is all about costs vs. flexibility.  You don&#8217;t want to get rid of all of your flexibility, but you want to be fast.</p>
<p>Set error_reporting(-1) in wp-settings.php to catch all warnings &#8212; warnings slow you down, so get rid of all errors.  PHP error handling is very slow, so getting rid of errors will make you faster.</p>
<p><A HREF="http://talks.php.net/show/confoo10/8">The slide of warnings that wordpress throws</a>.</p>
<p>Look at all C-level calls made, using <A HREF="http://valgrind.org/info/tools.html#callgrind">callgrind</A>, which sits under <A HREF="http://valgrind.org/">valgrind</A>, a CPU emulator used for debugging.  See the <A HREF="http://talks.php.net/presentations/slides/intro/wp_cg.png">image</A> of what callgrind shows.</p>
<p>Now dive into the PHP executor, by installing <A HREF="http://xdebug.org/">XDebug</a>.</p>
<p>Check <A HREF="http://developers.facebook.com/xhprof/">xhprof</A> &#8211; <A HREF="http://www.facebook.com">Facebook</a> open sourced this about a year ago, it&#8217;s a PECL extension.  The output is pretty cool, try it on your own site, Rasmus does <A HREF="http://talks.php.net/show/confoo10/11">show you how to use it</A>.  It shows you functions sorted by the most expensive to the least expensive.</p>
<p>For example, use $_SERVER[REQUEST_TIME] instead of time().  Use pconnect() if MySQL can handle the amount of webserver connections that will be persistent, etc.</p>
<p>After you have changed a lot of the stuff above, benchmark again with siege to see how much faster you are.  In this case there <A HREF="http://talks.php.net/show/confoo10/12">is not much gained so far</A>.</p>
<p>So keep going&#8230;.the blogroll is very slow &#8212; Rasmus gets rid of it by commenting out in the sidebar.php file.  I&#8217;d like to see something to make it &#8220;semi-dynamic&#8221; &#8212; that is, make it a static file that can be re-generated, since you might want the blogroll but links are not changed every second&#8230;..</p>
<p>At this point we&#8217;re out of low-hanging fruit.</p>
<p><A HREF="http://wiki.github.com/facebook/hiphop-php/">HipHop</a> is a PHP to C++ converter &#038; compiler, including a threaded, event-driven server that replaces apache.  Rasmus&#8217; slide says &#8220;Wordpress is well-suited for HipHop because it doesn&#8217;t have a lot of dynamic runtime code. This is using the standard Wordpress-svn checkout with a few tweaks.&#8221; </p>
<p>Then, of course, benchmark again.  </p>
<p>The first time you compile Wordpress with HipHop, you give it a list of files to add to the binary, it will complain about php code that generate file names, so you do have to fix that kind of stuff.  There&#8217;s a huge mess of errors the first time you run it (&#8221;pages and pages&#8221;), and Rasmus had to patch HipHop (and Wordpress) but the changes in HipHop have been put back into HipHop, so you should be good for the most part.</p>
<p>Check out the errors, lots of them show logical errors like $foo.&#8221;bar&#8221; instead of $foo.=&#8221;bar&#8221; and $foo=&#8221;bar&#8221; instead of $foo==&#8221;bar&#8221; in an if statement.  Which of course is nice for your own code, to find those logical errors.</p>
<p>(Wordpress takes in a $user_ID argument and immediately initializes a global $user_ID variable, which overwrites the argument passed in, so you can change the name of the argument passed in&#8230;.)</p>
<p>You can also get rid of some code, things that check for existence of the same thing more than once.  So it will take a bit of tweaking, but it&#8217;s worth it.</p>
<p>There are <A HREF="http://talks.php.net/show/confoo10/15">limitations to HipHop</A>, for example:<br />
<UL><LI>It doesn&#8217;t support any of the new PHP 5.3 language features<br />
</LI><LI>Private properties don&#8217;t really exist under HipHop. They are treated as if they are protected instead.<br />
</LI><LI>You can&#8217;t unset variables. unset will clear the variable, but it will still be in the symbol table.<br />
</LI><LI>eval and create_function are limited<br />
</LI><LI>Variable variables $$var are not supported<br />
</LI><LI>Dynamic defines won&#8217;t work: define($name,$value)<br />
</LI><LI>get_loaded_extensions(), get_extension_funcs(), phpinfo(), debug_backtrace() don&#8217;t work<br />
</LI><LI>Conditional and dynamically created include filenames don&#8217;t work as you might expect<br />
</LI><LI>Default unix-domain socket filename isn&#8217;t set for MySQL so connecting to localhost doesn&#8217;t work</LI></UL></p>
<p>and HipHop does not support all extensions &#8212; see the list Rasmus has of <A HREF="http://talks.php.net/show/confoo10/15">extensions HipHop supports</A>.</p>
<p>Then Rasmus showed <A HREF="http://talks.php.net/show/confoo10/16">an example using Twit</a> (which he wrote) including the <A HREF="http://talks.php.net/show/confoo10/17">benchmarks</A>.  He shows that you can see what&#8217;s going on, like <A HREF="http://talks.php.net/show/confoo10/18">5 MySQL calls on the home page and what happens when you don&#8217;t have a favicon.ico</A> (in yellow).</p>
<p>In summary, &#8220;performance is all about architecture&#8221;, &#8220;know your costs&#8221;.</p>
<p>Be careful, because some tools (like valgrind and xdebug) you don&#8217;t want to put it on production systems, you could capture production traffic and replay it on a dev/testing box, but &#8220;you just have to minimize the differences and do your best&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9337/liveblogging-at-confoo-not-just-php-performance-by-rasmus-lerdorf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liveblogging at confoo: Can Twitter make money?</title>
		<link>http://www.pythian.com/news/9303/liveblogging-at-confoo-can-twitter-make-money/</link>
		<comments>http://www.pythian.com/news/9303/liveblogging-at-confoo-can-twitter-make-money/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 21:45:38 +0000</pubDate>
		<dc:creator>Sheeri Cabral</dc:creator>
				<category><![CDATA[Technical Blog]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[internet radio]]></category>
		<category><![CDATA[internet tv]]></category>
		<category><![CDATA[jon hansen]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[monetizing]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9303</guid>
		<description><![CDATA[subtitle: Monetizing Social Media
Why is social media and social networking essential to you and your business?  (because it will drive sales, but there&#8217;s very few analytics for ROI on social networking and social media)
Relying on advertising is no longer working for print newspapers and television.  So why do we think it will work [...]]]></description>
			<content:encoded><![CDATA[<p>subtitle: Monetizing Social Media</p>
<p>Why is social media and social networking essential to you and your business?  (because it will drive sales, but there&#8217;s very few analytics for ROI on social networking and social media)</p>
<p>Relying on advertising is no longer working for print newspapers and television.  So why do we think it will work on internet media?<br />
<span id="more-9303"></span><br />
Blogging &#8212; you must post 2-4 quality blog posts every week to maintain readership.  This takes a lot of work!  Content is king.</p>
<p>No matter how cool the technology/product/service is, people still buy more often and more easily from people they know and trust.</p>
<p>Social media is a way to show people that you are an industry expert, and that is how you should use them (not to spam and only say &#8220;buy my product&#8221;).</p>
<p>If you do not love your job and try to sell it (say, on social networking), you are going to fail, because you are not passionate about it.</p>
<p>Start small, do not promise a lot, it is better to have more to say than to have dead air time (radio analogy).</p>
<p>Social media is all about building good relationships by having good content that people trust.</p>
<p>Lots of people spend a lot of money on their website, but the website is just a vector to show people your content, and the content is the most important thing.</p>
<p>Cross-pollination &#8211; I think he means forward on information you learn (like, say, liveblogging!)</p>
<p>Get expert guest bloggers &#8212; he did not explain that you can leverage the relationships you form by asking them to blog.  We do this with the <A HREF="http://www.pythian.com/news/category/log-buffer/">Log Buffers</A>&#8230;.</p>
<p>How to make money:<br />
sponsorships<br />
white paper composition<br />
paid articles<br />
consulting<br />
adjunct tie-ins to other related venues<br />
branded blogs</p>
<p>I am personally disappointed because I wanted to learn more, and I feel as though <A HREF="http://www.pythian.com">Pythian</A> already uses the knowledge presented &#8212; we have great exposure through our <A HREF="http://www.pythian.com/news/">blog</A>, and have started really using Twitter, Facebook and other social media sites, etc.</p>
<p>Hansen&#8217;s information was good, and absolutely 100% correct, but I felt that for me it was very basic.  I would like to know some more advanced topics, like:<br />
- How do you know when you have reached the tipping point?<br />
- How do you convert anonymous readers/followers to people you know, without turning them away because they feel they&#8217;re being watched, spammed or don&#8217;t want to give out their info to you?<br />
- When does copy/paste to send out your information start to bother people, how do you know how not to do too much?<br />
- How do you convert readers/followers (anon or not) to paid customers without making them feel like you&#8217;re all about $$, what about if you have some free content and some paid content, how do you know how much to have?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9303/liveblogging-at-confoo-can-twitter-make-money/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Liveblogging:  HTML5 &#8211; Confoo Keynote</title>
		<link>http://www.pythian.com/news/9237/liveblogging-html5-confoo-keynote/</link>
		<comments>http://www.pythian.com/news/9237/liveblogging-html5-confoo-keynote/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 15:17:01 +0000</pubDate>
		<dc:creator>Sheeri Cabral</dc:creator>
				<category><![CDATA[Technical Blog]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9237</guid>
		<description><![CDATA[What is confoo?  It is the sequel to the PHP Quebéc Conference (2003 &#8211; 2009).  This year PHP Quebec decided to team up with Montreal-Python, W3Quebéc and OWASP Montréal to produce confoo.
And now, on to Mark Pilgrim of Google speaking on HTML5.

Timeline
1991 &#8211; HTML 1
1994 &#8211; HTML 2
1995 &#8211; Netscape discovers web, ruins [...]]]></description>
			<content:encoded><![CDATA[<p>What is <A HREF="http://www.confoo.ca">confoo</A>?  It is the sequel to the PHP Quebéc Conference (2003 &#8211; 2009).  This year <A HREF="http://www.phpquebec.org">PHP Quebec</A> decided to team up with <A HREF="http://www.montrealpython.org">Montreal-Python</A>, <A HREF="http://www.w3qc.org">W3Quebéc</A> and <A HREF="http://www.owasp.org/index.php/Montréal">OWASP Montréal</A> to produce confoo.</p>
<p>And now, on to Mark Pilgrim of <A HREF="http://www.google.com">Google</A> speaking on HTML5.<br />
<span id="more-9237"></span><br />
<strong>Timeline</strong><br />
1991 &#8211; HTML 1<br />
1994 &#8211; HTML 2<br />
1995 &#8211; Netscape discovers web, ruins it<br />
1996 &#8211; CSS1 + JavaScript<br />
1996 &#8211; Microsoft discovers web, ruins it<br />
1997 &#8211; HTML4 + EMCAScript1<br />
1998 &#8211; CSS2 + EMCAScript2 + DOM1<br />
2000 &#8211; XHTML1 + EMCAScript3 + DOM2<br />
2001 &#8211; XHTML 1.1<br />
[long break!]<br />
2009 &#8211; HTML 5 + ECMA5 + CSS 2.1</p>
<p>HTML5 is not a spec, it&#8217;s a marketing term.  It&#8217;s really HTML5 + CSS3 + JavaScript.</p>
<p><A HREF="http://IsHTML5ReadyYet.com">IsHTML5ReadyYet.com</A> and <A HREF="http://IsHTML5Ready.com">IsHTML5Ready.com</a> are both real websites that give different answers to the question &#8220;is HTML 5 ready?&#8221;</p>
<p><strong>Semantics</strong><br />
HTML started as a semantic language (until Netscape came along).  </p>
<p>New elements (html tags) that do not do anything &#8211; they are for semantic use only:</p>
<pre class="brush: xml;">
&amp;lt;header&amp;gt; &amp;lt;footer&amp;gt;
&amp;lt;section&amp;gt;
&amp;lt;article&amp;gt;
&amp;lt;nav&amp;gt;
&amp;lt;aside&amp;gt; (pull quotes and such)
&amp;lt;time&amp;gt; (datetime markup)
&amp;lt;mark&amp;gt; (marking up runs of text)
&amp;lt;figure&amp;gt; &amp;lt;figcaption&amp;gt;
</pre>
<p>Instead of &#8220;div class=_____&#8221; use these tags&#8230;.for example:</p>
<pre class="brush: xml;">
&amp;lt;body&amp;gt;
  &amp;lt;header&amp;gt;
    &amp;lt;hgroup&amp;gt;
    &amp;lt;h2&amp;gt;page title&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;page subtitle&amp;lt;/h3&amp;gt;
    &amp;lt;/hgroup&amp;gt;
   &amp;lt;/header&amp;gt;

&amp;lt;nav&amp;gt;
  &amp;lt;ul&amp;gt; Navigation......
     .....
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;

&amp;lt;section&amp;gt;
  &amp;lt;article&amp;gt;
   &amp;lt;header&amp;gt;
    &amp;lt;h2&amp;gt;Title&amp;lt;/h2&amp;gt;
   &amp;lt;/header&amp;gt;
&amp;lt;/section&amp;gt;
</pre>
<p>Caveat:  This doesn&#8217;t work in IE but there is a workaround&#8230;..</p>
<p>This can help blind people navigate better&#8230;.and bots too!</p>
<p>&#8220;Google is just another blind web user with 7 million friends&#8221;</p>
<p><strong>Forms</strong><br />
Web forms 2.0<br />
To make a slider from 0-50:</p>
<pre class="brush: xml;">
&amp;lt;input type='range' mix='0' max='50' value='0'&amp;gt;&amp;lt;/input&amp;gt;
</pre>
<p>To use autofocus:</p>
<pre class="brush: xml;">
&amp;lt;input autofocus&amp;gt;
</pre>
<p>(works in 3 browsers)</p>
<p>Talking about blind users again:  &#8220;Focus tracking is VERY important if you can&#8217;t see.  You really need to know where on the page you are, if you start typing what will happen.&#8221;  </p>
<p>Placeholder text &#8212; in a text box, that light text that goes away when you click:</p>
<pre class="brush: xml;">
&amp;lt;input type='text' placeholder='click here and this will disappear'&amp;gt;
</pre>
<p>(works in 2 browsers)</p>
<p><strong>New input types</strong><br />
These are semantic types, do different things in different browsers</p>
<pre class="brush: xml;">
&amp;lt;input type='email'&amp;gt; (on the iphone you get a different keyboard, by default you just get a textfield, so these things degrade gracefully if the browser does not support the feature)
&amp;lt;input type='url'&amp;gt; (a browser like &amp;lt;A HREF=&amp;quot;http://www.opera.com&amp;quot;&amp;gt;Opera&amp;lt;/A&amp;gt; can validate a URL for you instead of you doing it yourself!)
&amp;lt;input type='datetime'&amp;gt; (and more...date pickers are tedious)
&amp;lt;input type='file' multiple&amp;gt; (multiple files without using flash!)
</pre>
<p>For all the inputs HTML5 supports and which browsers support them (<A HREF="http://www.opera.com">Opera</A> is leading the way) search for &#8220;HTML5 input support&#8221;</p>
<p><strong>Accessibility</strong><br />
ARIA = &#8220;accessible rich internet applications&#8221;.  Alt-text is technology that&#8217;s long behind.  ARIA does stuff like making tree views accessible.  For example, right now with a tree view you have to tab through each item, which is a pain.  With code like this:</p>
<pre class="brush: xml;">
&amp;lt;ul id='tree1' role='tree' tabindex='0' aria-labelledby='label_1'&amp;gt;
  &amp;lt;li role='treeitem' tabindex='-1' aria-expanded='true'&amp;gt;Fruits &amp;lt;/li&amp;gt;
    &amp;lt;li role='group'&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li role='treeitem' tabindex='-1'&amp;gt;Oranges&amp;lt;/li&amp;gt;
      &amp;lt;li role='treeitem' tabindex='-1'&amp;gt;Pineapples&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
   &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
</pre>
<p>&#8230;.keyboard users can tab to the treeview itself, then use arrow keys to navigate and spacebar to select.  This makes selecting an item at the end of a tree view much easier, and also makes it easy to move <strong>beyond</strong> the tree view without having to press Tab a million times.</p>
<p>Use your favorite search engine for &#8220;ARIA accessibility&#8221; to learn more.</p>
<p><strong>CSS</strong><br />
Mark threw this image up on the screen:</p>
<p><IMG SRC=http://rlv.zcache.com/css_is_awesome_mug-p1687164350719819282objs_210.jpg><br />
(image from <A HREF="http://www.zazzle.com/stevenfrank">http://www.zazzle.com/stevenfrank</A> &#8211; on that site you can buy this coffee mug or a T-shirt with the design)</p>
<p><strong>Web fonts</strong> finally work in CSS3 &#8211; you can use more than Times, Courier, Arial, and occasionally Helvetica.  This works EVERYWHERE &#8211; Chrome, IE, Firefox, Opera, Safari, etc.  Well, it&#8217;s true that they all use it, but they all have different fonts they support.  Read <A HREF="http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/">Bulletproof font face</A> for tips on how to get the font you want no matter what browser is used (yes, even IE).</p>
<p>Opacity is easy [author's note - it's just the "opacity" element, see examples at <A HREF=http://www.css3.info/preview/opacity/>http://www.css3.info/preview/opacity/</A>].</p>
<p>Rounded corners are EASY &#8211; Mark&#8217;s slide passed too fast for me, so I grabbed an example from <A HREF="http://24ways.org/2006/rounded-corner-boxes-the-css3-way">http://24ways.org/2006/rounded-corner-boxes-the-css3-way</A>:</p>
<pre class="brush: xml;">
.box {
  border-radius: 1.6em;
}
</pre>
<p>Gradients are easy [author's note -- looks like you need <A HREF="http://webkit.org/">webkit</A>, there's examples at <A HREF="http://gradients.glrzad.com/">http://gradients.glrzad.com/</A>]</p>
<p>To test CSS3 stuff, use <A HREF=http://www.css3please.com>www.css3please.com</a> &#8211; &#8220;This element will receive inline changes as you edit the CSS rules on the left.&#8221;</p>
<p>[Author's note -- while searching I found <A HREF="http://www.webappers.com/2009/08/10/70-must-have-css3-and-html5-tutorials-and-resources/">http://www.webappers.com/2009/08/10/70-must-have-css3-and-html5-tutorials-and-resources/</A> which is definitely a "must have".]</p>
<p><strong>Canvas</strong><br />
A canvas is a blank slate where you can draw whatever you want, use the canvas tag and id, width and height attributes, everything else is javascript.  Pretty awesome. [Author's note -- Mark had examples but I did not have time to capture them.  I did find a nice tutorial at <A HREF="https://developer.mozilla.org/en/Canvas_tutorial">https://developer.mozilla.org/en/Canvas_tutorial</A>.]</p>
<p><strong>Multimedia</strong><br />
Video with no flash!  <A HREF="http://www.youtube.com">YouTube</A> has HTML5 integration.  Here&#8217;s sample code of how to do movies in HTML5:</p>
<pre class="brush: xml;">
&amp;lt;video src='movie.ogv' controls&amp;gt;&amp;lt;/video&amp;gt;
&amp;lt;video src='movie.ogv' loop&amp;gt;&amp;lt;/video&amp;gt;
&amp;lt;video src='movie.ogv' preload='none'&amp;gt;&amp;lt;/video&amp;gt;  -- don't preload the movie
&amp;lt;video src='movie.ogv' preload='auto'&amp;gt;&amp;lt;/video&amp;gt;
&amp;lt;video src='movie.ogv' autoplay&amp;gt;&amp;lt;/video&amp;gt; -- if you don't have this you don't do evil autoplay....
</pre>
<p>Multimedia is in the DOM and responds to CSS effects, such as reflection:</p>
<pre class="brush: xml;">
&amp;lt;video src='movie.ogv' loop style='webkit-box-reflect: below 1px;'&amp;gt;&amp;lt;/video&amp;gt;
</pre>
<p>(this code might be wrong, the slide flipped fast)</p>
<p>Of course the problem &#8212; codecs.  Right now, .ogv and .mp4 (h264).</p>
<p>Audio inline too, same problem &#8212; only .oga and .mp3:</p>
<pre class="brush: xml;">
&amp;lt;audio src ='podcast.oga' controls&amp;gt;&amp;lt;/audio&amp;gt;
</pre>
<p><strong>Geolocation</strong><br />
<A HREF=http://IsGeolocationPartofHTML5.com>IsGeolocationPartofHTML5.com</a> is a real site, go to it to get the answer.<br />
Geolocation demos &#8212; very much the same, find your location and display it.  Simple but cool.</p>
<p><strong>Cache manifest</strong><br />
Get everything you need for offline usage&#8230;</p>
<pre class="brush: xml;">
&amp;lt;html manifest='another-sky.manifest'&amp;gt;

CACHE MANIFEST
/avatars/zoe.png
/avatars/tamara.png
/scripts/holoband.jpg
</pre>
<p>search for &#8220;google for mobile HTML5 series&#8221; &#8211; good series of articles on using this stuff.</p>
<p><strong>HTML 5 has much more</strong><br />
Local storage<br />
Web workers<br />
Web sockets (2way connections, like raw tcp/ip cxns over the web)<br />
3D canvas (webgl)<br />
Microdata (enhanced semantics)<br />
Desktop notifications<br />
Drag and Drop</p>
<p>Learn more:<br />
<A HREF="http://www.whatwg.org/html5">whatwg.org/html5</A><br />
<A HREF="http://www.diveintohtml5.org">diveintohtml5.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9237/liveblogging-html5-confoo-keynote/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hotsos Symposium 2010 &#8212; Battle Against Any Guess Is Won</title>
		<link>http://www.pythian.com/news/9219/hotsos-symposium-2010-battle-against-any-guess-is-won/</link>
		<comments>http://www.pythian.com/news/9219/hotsos-symposium-2010-battle-against-any-guess-is-won/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 20:16:51 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[baag]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[Hotsos]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9219</guid>
		<description><![CDATA[Video fragments of my session posted at the end &#8212; read on.
I arrived at Omni Mandalay Hotel on Sunday evening with Dan Norris. I was flying through Chicago and it turned out that Dan was on the same flight and only few rows behind me. Small world.
Preparations for the conference were very chaotic on my [...]]]></description>
			<content:encoded><![CDATA[<p><em>Video fragments of my session posted at the end &#8212; read on.</em></p>
<p>I arrived at <a href="http://www.omnihotels.com/FindAHotel/DallasMandalay.aspx">Omni Mandalay Hotel</a> on Sunday evening with <a href="http://www.dannorris.com/">Dan Norris</a>. I was flying through Chicago and it turned out that Dan was on the same flight and only few rows behind me. Small world.</p>
<p>Preparations for the conference were very chaotic on my part and, of course, I didn&#8217;t have either of my presentations ready. I was very stressed and getting sick as well &#8212; it looked like a complete disaster waiting to happen. I&#8217;d like to say that I was feeling like <a href="http://oracledoug.com/serendipity/">Doug Burns</a> as he often managed to get sick just before a conference. Of course, I worked on my slides for the last few days as well as on the flight and presentation was slowly getting there but boy was I tired!</p>
<p>I quickly said hello to the crowd in the bar on the way to my room and rushed away to do some more damage to my slides. And then I had a brilliant idea &#8212; I could still see one of my best mates and do something good about my presentation! I asked Doug if he was interested in the preview (he probably wasn&#8217;t interested but he couldn&#8217;t say it to me) especially that my session wasn&#8217;t on his <a href="http://oracledoug.com/serendipity/index.php?/archives/1574-Hotsos-2010-My-Agenda.html">original agenda</a>. Of course, that would mean that he had to leave a bunch of other good friends and spend some time tete-a-tete. Knowing Doug, this is some of the hardest thing to ask from him but it shows how good of a friend he is! <em>(Plus, everyone thinks that he is anti-social anyway. Shhhh!)</em><br />
<span id="more-9219"></span><br />
Doug has made my day &#8212; while he provided lots of ideas and feedback on few things that I was lucking, he generally approved the idea and confirmed that it wasn&#8217;t totally crazy. I guess that was all I needed back then and Doug knew how nervous I was about it. (Thanks mate!)</p>
<p>So I called Sunday a day very early and went to bed before midnight. I really needed some sleep. Woken up by the alarm at 5AM (I woke up few times during the night looking at the clock &#8212; making sure I didn&#8217;t sleep through) and slides were ready just before lunch. I even managed to do a test run and it took 65 minutes &#8212; a wee bit too long for one hour session. But it was good test and I knew I had to be just a bit more concise in few parts.</p>
<p>Mi morning was very productive. Unfortunately, I missed the opening keynote from Tom Kyte. Such a pity! If what Doug wrote is true, Tom was talking about <a href="http://oracledoug.com/serendipity/index.php?/archives/1578-Hotsos-2010-Day-2-The-conference-begins.html">the mistakes we make *because* of our experience and our assumptions</a>. This was exactly one of the points I was making in my Battle Against Any Guess &#8212; experience is danger. I wish I could see Tom&#8217;s example. Oh well, maybe another time.</p>
<p>I managed to attend half of the <a href="http://richardfoote.wordpress.com/">Richard Foote</a>&#8217;s session on indexes but my mind was far away &#8212; with my own slides. Though, I did manage to focus on bitmap indexes part and the <a href="http://richardfoote.wordpress.com/2010/03/03/1196/">myth of bitmap indexes</a> not working well for columns with high cardinality. Very interesting conclusions. I&#8217;m still wondering how much overhead updates will do to such bitmap index.</p>
<p>After lunch, it was my turn. I ordered few copies of the latest OakTable book &#8212; <a href="http://apress.com/book/view/1430226684">Expert Oracle Practices: Oracle Database Administration from the Oak Table</a> &#8212; that I co-authored with the bunch of other Oakies. I contributed chapter 1 in the book titled just like my presentation &#8212; Battle Against Any Guess. The plan was to give a copy away during the presentation and do a draw for another one at the end of the session. I was so nervous that I forgot about it until the end of the session so I just did a draw for two copies. The lucky winners were Lynn-Georgia Tesch and Surendra Anchula. Congratulations! For the rest of you who left the contact details &#8212; please stay tuned and we&#8217;ll organize few things online.</p>
<p>Now the main topic of this post &#8212; my presentation. What&#8217;s unusual about this session is that it&#8217;s not some technical stuff that I usually do but a more conceptual and motivational talk. Could I pull it off? Well, I think it went fairly well in general even though I did identify few rough places and my lack of English language mastering. Might need to work a little bit more on the flow of the presentation.</p>
<p>We had quite a few good laughs. Later, people in the next hall were asking about it and Dan was making the jokes on the stage so it must have been loud. Anyway, I think nobody fell asleep and I managed to get people thinking about the topic. I received many &#8220;thank you&#8221; notes yesterday and compliments on a good session so by the end of the day I was more and more pleased. Thanks everyone for attending and especially big thanks to those of you who brought to my attention examples from their own battles. If you have more to discuss &#8212; contact me by email (my last name) {at} pythian.com.</p>
<p>Thanks to <a href="http://www.liberidu.com/blog/">Marco Gralike</a> for recording some fragments and sharing them. I think he has more to come.</p>
<p>This is the introductory couple minutes. You can definitely notice how nervous I am starting on the stage:</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/DU-ElA41UMU&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DU-ElA41UMU&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p>Solving the wrong problem example:</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/gzV8UNpgYc8&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gzV8UNpgYc8&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p>That&#8217;s all for now. Stay tuned &#8212; more to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9219/hotsos-symposium-2010-battle-against-any-guess-is-won/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>International Women&#8217;s Day</title>
		<link>http://www.pythian.com/news/9207/international-womens-day/</link>
		<comments>http://www.pythian.com/news/9207/international-womens-day/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:52:16 +0000</pubDate>
		<dc:creator>Sheeri Cabral</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Non-Tech Articles]]></category>
		<category><![CDATA[Not on Homepage]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technical Blog]]></category>
		<category><![CDATA[women]]></category>
		<category><![CDATA[women in tech]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9207</guid>
		<description><![CDATA[If you do not know what International Women&#8217;s Day is:  http://www.internationalwomensday.com/
Start planning your blog posts for Ada Lovelace day now (March 24th, http://findingada.com/ Ada Lovelace Day is an international day of blogging (videologging, podcasting, comic drawing etc.!) to draw attention to the achievements of women in technology and science.)
To that end, I would like [...]]]></description>
			<content:encoded><![CDATA[<p>If you do not know what International Women&#8217;s Day is:  <A HREF="http://www.internationalwomensday.com/">http://www.internationalwomensday.com/</A></p>
<p>Start planning your blog posts for Ada Lovelace day now (March 24th, <A HREF="http://findingada.com/">http://findingada.com/</a> Ada Lovelace Day is an international day of blogging (videologging, podcasting, comic drawing etc.!) to draw attention to the achievements of women in technology and science.)</p>
<p>To that end, I would like to point out all the women currently in science and tech fields that I admire and think are doing great things.  I think it would be great if everyone, male or female, made a list like this:<br />
<span id="more-9207"></span><br />
The women that have taught me science/tech along the way:</p>
<p>High School:<br />
Mary Lou Ciavarra (Physics)<br />
Maria Petretti (Pre-Algebra, and Academic Decathlon)<br />
Reneé Fishman (Biology)<br />
Lisa Acquaire (Economics during Academic Decathlon)</p>
<p>College:<br />
<A HREF="http://www.bio.brandeis.edu/faculty/white.html">Professor Kalpana White (Biology), and in whose fruit fly lab I worked for 2 semesters.<br />
Professor Eve Marder (Introductory Neuroscience)</p>
<p>Though <A HREF="http://www.brandeis.edu">Brandeis</A> does have female faculty in the Computer Science department, I did not manage to have any classes with female Computer Science faculty members.</p>
<p>My current female DBA co-workers at Pythian:  <A HREF="http://ca.linkedin.com/pub/isabel-pinarci/7/2a6/2a2">Isabel Pinarci</A> (Oracle), <A HREF="http://www.pythian.com/news/author/mgutzait/">Michelle Gutzait</A> (SQL Server), <A HREF="http://www.pythian.com/news/author/chow/">Catherine Chow</A> (Oracle) and <A HREF="http://ca.linkedin.com/in/jasminewen">Jasmine Wen</A> (Oracle).</p>
<p>And to folks in the greater MySQL/tech community and tech co-workers past and present, especially those I have been inspired and helped by: <A HREF="http://www.linkedin.com/pub/tracy-gangwer/1/72a/14a">Tracy Gangwer</a>, <A HREF="http://www.hawthornlandings.org/>Leslie Hawthorn</A>, <A HREF="http://chesnok.com/">Selena Deckelmann</A> (Postgres), <A HREF="http://www.linkedin.com/in/amyrich">Amy Rich</A>, <A HREF="http://www.linkedin.com/in/annecross">Anne Cross</A>, and more (If I have forgotten you, I apologize!).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9207/international-womens-day/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Oracle 11gR2 Grid Infrastructure &#8212; Memory Footprint</title>
		<link>http://www.pythian.com/news/9179/oracle-11gr2-grid-infrastructure-memory-footprint/</link>
		<comments>http://www.pythian.com/news/9179/oracle-11gr2-grid-infrastructure-memory-footprint/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 20:02:50 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Technical Blog]]></category>
		<category><![CDATA[11gR2]]></category>
		<category><![CDATA[clusterware]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[Grid Infrastructure]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[RAC]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9179</guid>
		<description><![CDATA[Upgrading to 11g Release Grid Infrastructure? You probably want to read on&#8230;
Oracle 11g Release 2 Grid Infrastructure has been dramatically redesigned compare to 10g and 11gR1 Clusterware. Coming with impressive set of new features, Grid Infrastructure also uses much more memory. While RAM is rather inexpensive these days, it does pose an inconvenience in some [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pythian.com/news/wp-content/uploads/DIMMs.png" alt="DIMMs" title="DIMMs" width="162" height="241" align="LEFT"><em>Upgrading to 11g Release Grid Infrastructure? You probably want to read on&#8230;</em></p>
<p>Oracle 11g Release 2 Grid Infrastructure has been dramatically redesigned compare to 10g and 11gR1 Clusterware. Coming with impressive set of new features, Grid Infrastructure also uses much more memory. While RAM is rather inexpensive these days, it does pose an inconvenience in some scenarios. Particularly, for sand-box type installations that I use all the time for my own tests and demonstrations. For production upgrades, you need to be aware of and plan for increased memory usage.</p>
<p>I&#8217;ve been able to easily run a 2 node 10g RAC cluster on my MacBook with 4 GB of RAM allocating less than 1 GB of RAM  to each virtual machine. That was even enough for a mini database instance with a very small memory footprint. Oracle 11g Release 1 was pretty much the same except maybe the database instance itself required a bit more memory but one node could still fit within 1 GB of RAM.</p>
<p>In 11gR2, bare-bone Grid Infrastructure processes alone consume 10+ times more memory (11.2.0.1 on 32 bit Linux to be precise):<span id="more-9179"></span></p>
<pre class="brush: plain;">
[gorby@cheese1 ~]$ ps -eo pid,%mem,rss,user,cmd --sort=rsz --cols 100 | grep -e '^ *PID' -e grid -e ohasd | grep -v grep
  PID %MEM   RSS USER     CMD
 3614  0.0  1080 root     /bin/sh /etc/init.d/init.ohasd run
 4322  0.2  3368 oracle   /nfs/11.2.0/grid/opmn/bin/ons -d
 4323  0.4  5164 oracle   /nfs/11.2.0/grid/opmn/bin/ons -d
 4117  0.6  7860 root     /nfs/11.2.0/grid/bin/oclskd.bin
 3830  0.6  8788 oracle   /nfs/11.2.0/grid/bin/gipcd.bin
 5048  0.7  8992 oracle   /nfs/11.2.0/grid/bin/tnslsnr LISTENER -inherit
 4167  0.7 10052 oracle   /nfs/11.2.0/grid/bin/evmlogger.bin -o /nfs/11.2.0/grid/evm/log/evmlogger.i
 3969  0.9 12412 oracle   /nfs/11.2.0/grid/bin/diskmon.bin -d -f
 3860  0.9 12736 oracle   /nfs/11.2.0/grid/bin/mdnsd.bin
 4067  1.1 14648 root     /nfs/11.2.0/grid/bin/octssd.bin reboot
 5016  1.2 15860 root     /nfs/11.2.0/grid/bin/orarootagent.bin
 3956  1.3 16964 root     /nfs/11.2.0/grid/bin/orarootagent.bin
 4292  1.4 17984 oracle   /nfs/11.2.0/grid/bin/oraagent.bin
 3874  1.5 20112 oracle   /nfs/11.2.0/grid/bin/gpnpd.bin
 3817  1.5 20300 oracle   /nfs/11.2.0/grid/bin/oraagent.bin
 4083  1.8 23700 oracle   /nfs/11.2.0/grid/bin/evmd.bin
 4372  2.4 31548 oracle   /nfs/11.2.0/grid/jdk/jre//bin/java -Doracle.supercluster.cluster.server=eo
 3564  3.2 41532 root     /nfs/11.2.0/grid/bin/ohasd.bin reboot
 4081  3.5 44932 root     /nfs/11.2.0/grid/bin/crsd.bin reboot
 3906 18.6 239428 root    /nfs/11.2.0/grid/bin/cssdagent
 3887 18.6 239444 root    /nfs/11.2.0/grid/bin/cssdmonitor
 3924 20.1 258564 oracle  /nfs/11.2.0/grid/bin/ocssd.bin
</pre>
<p>The second column above gives you amount of resident memory in KB for processes related to Grid Infrastructure. As you can cleanly see, processes of CSS components consume well above 700MB! In total we can account for 1 GB. (those calculations are flawed &#8212; see below)</p>
<p>Compare that with 10g (10.2.0.3 on 32 bit Linux) &#8212; bare-bone Clusterware processes consume only 60MB: </p>
<pre class="brush: plain;">
[oracle@lh1 ~]$ ps -eo pid,%mem,rss,user,cmd --sort=rsz --cols 100 | grep -e '^ *PID' -e nfs -e crs -e css -e evm | grep -v grep
  PID %MEM  RSS USER     CMD
 6524  0.0  348 oracle   /nfs1/oracle/oracle/product/10.2.0/crs/opmn/bin/ons -d
 4892  0.1  992 oracle   /bin/sh -c cd /nfs1/oracle/oracle/product/10.2.0/crs/log/lh1/cssd/oclsomon;
 3262  0.1 1072 root     /bin/sh /etc/init.d/init.evmd run
 3506  0.1 1100 root     /bin/sh /etc/init.d/init.crsd run
 4575  0.1 1116 root     /bin/su -l oracle -c sh -c 'ulimit -c unlimited; cd /nfs1/oracle/oracle/pro
 4890  0.1 1120 root     /bin/su -l oracle -c /bin/sh -c 'cd /nfs1/oracle/oracle/product/10.2.0/crs/
 4664  0.1 1180 root     /bin/sh /etc/init.d/init.cssd oclsomon
 3263  0.1 1188 root     /bin/sh /etc/init.d/init.cssd fatal
 4677  0.1 1188 root     /bin/sh /etc/init.d/init.cssd daemon
 6525  0.5 4792 oracle   /nfs1/oracle/oracle/product/10.2.0/crs/opmn/bin/ons -d
 4922  0.6 5224 oracle   /nfs1/oracle/oracle/product/10.2.0/crs/bin/oclsomon.bin
 5915  0.7 6280 oracle   /nfs1/oracle/oracle/product/10.2.0/crs/bin/evmlogger.bin -o /nfs1/oracle/or
 4576  1.1 9312 oracle   /nfs1/oracle/oracle/product/10.2.0/crs/bin/evmd.bin
 5018  1.1 9428 oracle   /nfs1/oracle/oracle/product/10.2.0/crs/bin/ocssd.bin
 4606  2.0 16712 root    /nfs1/oracle/oracle/product/10.2.0/crs/bin/crsd.bin reboot
</pre>
<p>The memory usage above is a bit overstated. There are some shared memory accounted multiple times. I could use Smaps interface to get better per process statistics. For example, you could see that 3 of the &#8220;top offenders&#8221; (CSS binaries) have about 40MB of shared libraries each:</p>
<pre class="brush: plain;">
[root@cheese1 ~]# ./smaps.pl 3924 | head
VMSIZE:     258576 kb
RSS:       258564 kb total
            39164 kb shared
             5180 kb private clean
           214220 kb private dirty
PRIVATE MAPPINGS
     vmsize   rss clean   rss dirty  file
   15052 kb        0 kb    15052 kb
   12016 kb        0 kb    12016 kb
   11184 kb        0 kb    11184 kb
[root@cheese1 ~]# ./smaps.pl 3887 | head
VMSIZE:     239456 kb
RSS:       239444 kb total
            40096 kb shared
             6200 kb private clean
           193148 kb private dirty
PRIVATE MAPPINGS
     vmsize   rss clean   rss dirty  file
   14624 kb        0 kb    14624 kb
   10240 kb        0 kb    10240 kb
   10240 kb        0 kb    10240 kb
[root@cheese1 ~]# ./smaps.pl 3906 | head
VMSIZE:     239440 kb
RSS:       239428 kb total
            40096 kb shared
             6200 kb private clean
           193132 kb private dirty
PRIVATE MAPPINGS
     vmsize   rss clean   rss dirty  file
   14624 kb        0 kb    14624 kb
   10240 kb        0 kb    10240 kb
   10240 kb        0 kb    10240 kb
[root@cheese1 ~]#
</pre>
<p>One way to get a practical number is to check system memory usage with and without Grid Infrastructure running &#8212; the difference is about 750MB (see the &#8220;free&#8221; column of the second row).</p>
<pre class="brush: plain;">
[root@cheese1 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1283040    1131584     151456          0      18504     295668
-/+ buffers/cache:     817412     465628
Swap:       655328         76     655252
[root@cheese1 ~]# crsctl stop crs
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'cheese1'
...
...
CRS-4133: Oracle High Availability Services has been stopped.
[root@cheese1 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1283040     397144     885896          0      18640     316632
-/+ buffers/cache:      61872    1221168
Swap:       655328         76     655252
[root@cheese1 ~]# ps -eo pid,%mem,rss,user,cmd --sort=rsz --cols 100 | grep -e '^ *PID' -e grid -e ohasd | grep -v grep
  PID %MEM   RSS USER     CMD
 3614  0.0  1084 root     /bin/sh /etc/init.d/init.ohasd run
</pre>
<p>I don&#8217;t have 11gR1 test cluster handy so I can&#8217;t check 100% but  Oracle 11g Release 1 Clusterware is not much different from 10g so memory usage must be similar.</p>
<p>The lesson is that if you are upgrading your Oracle RAC Cluster to 11gR2 from 10g or 11gR1, then you have to account for additional 700MB memory for Grid Infrastructure alone on each node. Note that, this doesn&#8217;t take into account higher memory usage of the database instances themselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9179/oracle-11gr2-grid-infrastructure-memory-footprint/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Blogrotate #18: The Weekly Roundup of News for System Administrators</title>
		<link>http://www.pythian.com/news/9099/blogrotate-18-the-weekly-roundup-of-news-for-system-administrators/</link>
		<comments>http://www.pythian.com/news/9099/blogrotate-18-the-weekly-roundup-of-news-for-system-administrators/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 20:16:10 +0000</pubDate>
		<dc:creator>Brad Hudson</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Technical Blog]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Blogrotate]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[data center]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[linus torvalds]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[Pythian]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9099</guid>
		<description><![CDATA[Is it Friday already?  Where does the time go?  Lots of stuff going on this week&#8211;here&#8217;s a few of the things that I found interesting. 
Operating Systems
Russia Today-TV announced the existence of &#8220;Red Star&#8221;, the new OS developed in North Korea and based on Linux.  I found this by way of Slashdot [...]]]></description>
			<content:encoded><![CDATA[<p>Is it Friday already?  Where does the time go?  Lots of stuff going on this week&#8211;here&#8217;s a few of the things that I found interesting. </p>
<h3>Operating Systems</h3>
<p>Russia Today-TV announced the existence of &#8220;Red Star&#8221;, the new OS developed in North Korea and based on Linux.  I found this by way of <a href="http://www.slashdot.org">Slashdot</a> of course, citing the source as <a href="http://www.koreaherald.co.kr">The Korea herald</a>.  According to the article it looks very much like the Windows UI, and features a &#8220;My Country&#8221; icon that allows connection to Korea&#8217;s closed internet-like network and the Woori office application.  Slightly more information can be found there in the article <a href="http://www.koreaherald.co.kr/NEWKHSITE/data/html_dir/2010/03/04/201003040036.asp">N. Korea develops own OS</a>.</p>
<p>The upcoming <a href="http://www.ubuntu.com">Ubuntu</a> 10.04 (Lucid Lynx) has had the third alpha version released.<span id="more-9099"></span>  The alpha versions are not for the faint of heart, and I have had to put in several bug reports myself already.  It&#8217;s just part of the process though and will hopefully result in a rock solid release next month.  The full release announcement can be found on the mailing list: see <a href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-February/000682.html">Lucid Alpha 3 released</a>.  A rundown of some of the things you can expect is on <a href="http://www.h-online.com">The H Online</a> in <a href="http://www.h-online.com/open/news/item/Canonical-releases-Ubuntu-10-04-LTS-Alpha-3-941337.html">Canonical releases Ubuntu 10.04 LTS Alpha 3</a>.</p>
<p><a href="http://www.arstechnica.com">Ars Technica</a> has more on an item mentioned last week about the future of Open Solaris.  <a href="http://arstechnica.com/open-source/news/2010/03/opensolaris-not-dead-might-not-get-all-new-solaris-features.ars"> OpenSolaris not dead; might not get all new Solaris features</a> The exact details of which features may be excluded are not clear from the article but I did not get a chance to dig into some of the source material referenced so you may find more by clicking through them.</p>
<h3>Internet</h3>
<p>Opera 10.5 is out and <a href="http://www.arstechnica.com">Ars Technica</a> has a detailed review of the new features, performance improvements and UI changes.  There&#8217;s a lot of detail in the article, I suggest you read it for yourself.  <a href="http://arstechnica.com/software/reviews/2010/03/hands-on-opera-1050-makes-impressive-performance-gains.ars">Hands on: Opera 10.50 makes impressive performance gains</a> is the place to go.  I think I&#8217;ll give the new Opera a try myself.</p>
<p>Local company makes good!  I mentioned last week the takedown of the Waledac botnet, this week the Mariposa botnet suffered a similar fate.  Ottawa&#8217;s own <a href="http://www.defintel.com/">Defence Intelligence</a> detected this botnet in 2009 and started an investigation that ended with the dismantling of the botnet by Spanish authorities.  This is a much more important takedown than Waledac because Mariposa actually put sensitive and financial information at risk.  You can read more of this story in <a href="http://arstechnica.com/security/news/2010/03/spanish-arrests-mark-the-end-of-dangerous-botnet.ars">Spanish arrests mark the end of dangerous botnet</a>.  Ottawa, represent!</p>
<h3>Virtualization</h3>
<p>Microsoft has released new drivers to improve the performance of <a href="http://www.redhat.com">Red Hat</a> Enterprise Linux systems running under <a href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-main.aspx">Hyper-V</a>.  The new drivers include new network and storage drivers, but still only support a single virtual CPU.  These drivers are not officially included in, or supported by Red Hat, but they are fully support by Microsoft.  Read <a href="http://www.h-online.com/open/news/item/Microsoft-releases-Hyper-V-drivers-for-RHEL-947282.html">Microsoft releases Hyper-V drivers for RHEL</a> for more, and you can check out Microsoft&#8217;s side of the story on the technet blog in <a href="http://blogs.technet.com/virtualization/archive/2010/02/23/red-hat-enterprise-linux-and-hyper-v.aspx">Red Hat Enterprise Linux and Hyper-V</a>.</p>
<p><a href="http://www.datacenterknowledge.com/archives/2010/03/03/how-server-virtualization-impacts-storage">How Server Virtualization Impacts Storage</a>.  The title says it all.  Penned by Heidi Biggar from <a href="http://www.hitachigst.com/portal/site/en/">Hitachi</a> it has a good perspective on current industry trends and growth.  We all know that consolidation methods, like virtualization, add bottlenecks on resources like CPU, memory and storage because they are all shared by many instances.  Find out what Heidi has to say on the subject.</p>
<h3>Data Center</h3>
<p><a href="http://www.datacenterknowledge.com">Data Center Knowledge</a> is reporting that the demand for data centers has been growing continually and no change is in sight for 2010.  We&#8217;re certainly seeing the trend here with many companies making the push for full, real disaster recovery sites.  There seems to be a real shortage of data center space and new ones are popping up slowly, so if you have lots of cash this may be a good business to get into.  But I digress.  The full story is in <a href="http://www.datacenterknowledge.com/archives/2010/03/05/strong-data-center-demand-seen-for-2010">Strong Data Center Demand Seen for 2010</a>.</p>
<h3>Security</h3>
<p><a href="http://www.h-online.com">The H Online</a> has a good article about the US government&#8217;s new cyber security policy.  I haven&#8217;t had a chance to review the whole document as yet, but I have it bookmarked for later reading.  <a href="http://www.h-online.com/security/news/item/US-government-publishes-parts-of-its-cyber-security-directive-946695.html">US government publishes parts of its cyber security directive</a> is where to go, which also links the source document.</p>
<h3>Hardware</h3>
<p><a href="http://www.tomshardware.com/reviews/future-3d-graphics,2560.html">Tom&#8217;s Hardware</a> has an interesting Op-Ed piece on the past, present and future of  the 3D graphics industry.  See <a href="http://www.tomshardware.com/reviews/future-3d-graphics,2560.html">Opinion: AMD, Intel, And Nvidia In The Next Ten Years</a> for 10 pages of goodness.</p>
<p><a href="mailto:amalventano@pcper.com">Allyn Malventano</a> has a very detailed review of <a href="http://www.wdc.com/en/">Western Digital</a>&#8217;s first foray into the SSD market.  The new 256GB offering performed well through the tests but is still priced a bit too high for the market.  The full review is at <a href="http://www.pcper.com">PC Perspective</a>, see <a href="http://www.pcper.com/article.php?aid=878">Western Digital SiliconEdge Blue 256GB SSD Review &#8211; WD enters the SSD market</a>.  You can find the <a href="http://www.wdc.com/en/products/index.asp?cat=20">Western Digital product information page</a> on their site.</p>
<p>Well that about wraps it up for this edition.  Comments are always welcome.  Until next time, may your days be productive and the levels of <a href="http://www.lhup.edu/~dsimanek/administ.htm">administratium</a> be non-toxic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9099/blogrotate-18-the-weekly-roundup-of-news-for-system-administrators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Log Buffer #181: a Carnival of the Vanities for DBAs</title>
		<link>http://www.pythian.com/news/9107/log-buffer-181-a-carnival-of-the-vanities-for-dbas/</link>
		<comments>http://www.pythian.com/news/9107/log-buffer-181-a-carnival-of-the-vanities-for-dbas/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 17:22:47 +0000</pubDate>
		<dc:creator>David Edwards</dc:creator>
				<category><![CDATA[Log Buffer]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technical Blog]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=9107</guid>
		<description><![CDATA[The 181st edition of Log Buffer has been published by Gary Myers on his Sydney Oracle Lab.
Having recently moved his blog, Gary approached the Log Buffer coordinator to volunteer for an edition because he knows that, with LB being a popular and established destination in the database blogoshphere, it would help him broadcast his new [...]]]></description>
			<content:encoded><![CDATA[<p>The 181<sup>st</sup> edition of <a href="http://www.pythian.com/news/about-log-buffer"><em>Log Buffer</em></a> has been published by <strong>Gary Myers</strong> on his <a href="http://blog.sydoracle.com">Sydney Oracle Lab</a>.</p>
<p>Having recently moved his blog, Gary approached the <em>Log Buffer</em> coordinator to volunteer for an edition because he knows that, with <em>LB</em> being a popular and established destination in the database <em>blogoshphere</em>, it would help him broadcast his new blog and welcome readers to it.  You can do it too&#8211;simply <a href="mail&#116;o&#58;%&#54;C&#111;g%62&#37;7&#53;&#102;fe&#114;c%6Fo&#114;d&#105;n%&#54;1%7&#52;%6F&#114;&#64;&#37;70y%74h&#37;69an&#46;%&#54;3o%6D?Subject=Log%20Buffer">send an email to the <em>Log Buffer</em> coordinator</a>.</p>
<p>Here&#8217;s Gary&#8217;s <a href="http://blog.sydoracle.com/2010/03/log-buffer-181-carnival-of-vanities-for_06.html"><em>Log Buffer #181</em></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/9107/log-buffer-181-a-carnival-of-the-vanities-for-dbas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
