<?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>James' World &#187; i18n</title>
	<atom:link href="http://www.jebriggs.com/blog/category/i18n/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jebriggs.com/blog</link>
	<description>Observations by a Programmer of Silicon Valley and Beyond</description>
	<lastBuildDate>Thu, 09 Sep 2010 07:30:16 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTTP to HTTPS and CDN Transitions in Web Browsers and Email Clients</title>
		<link>http://www.jebriggs.com/blog/2010/09/http-to-https-transitions-in-web-browsers-and-email-clients/</link>
		<comments>http://www.jebriggs.com/blog/2010/09/http-to-https-transitions-in-web-browsers-and-email-clients/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 08:36:04 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2322</guid>
		<description><![CDATA[It&#8217;s easy for front-end designers and server-side engineers to create web sites that don&#8217;t play well when SSL and Content Delivery Networks (CDNs) are added to the site.
Fortunately it&#8217;s also easy to solve that by understanding how to design HTML and site structure in advance to support those.
One of the most helpful things that can [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s easy for front-end designers and server-side engineers to create web sites that don&#8217;t play well when SSL and Content Delivery Networks (CDNs) are added to the site.</p>
<p>Fortunately it&#8217;s also easy to solve that by understanding how to design HTML and site structure in advance to support those.</p>
<p>One of the most helpful things that can be done is to have well-defined URLs for HTML, images, CSS and JavaScript in the following scenarios:</p>
<ul>
<li>homepage content rooted under /, like ., images, css and js respectively
<li>admin site content rooted under /app, like ., images, css and js
<li>CDNs where you may store content in the future, such as a network-local proxy, Amazon, Akamai or Limelight. Generally a remote URL is overlaid onto the homepage or admin site structures listed above.
</ul>
<p>If you have localized content, each of the subdirectories above may be subdivided by ISO language code also.</p>
<p>Generally HTML and URLs intended for web browsers and email clients needs to be considered separately:</p>
<ul>
<li>web browsers handle relative URLs well
<li>email clients do not handle relative URLs as well as browsers, if at all. For example, not using an absolute URL or not specifying the scheme (ie. ://domain.tld) will cause problems in most email clients.
<li>in both cases, HTTP servers can use URL rewriting if necessary to make changes after the design is done.
</ul>
<p>Relative URLs not only help with HTTP to HTTPS transitions, but also in creating developer sandboxes, and test and QA servers.</p>
<p>Try to make as many links as possible relative in your HTML as possible if you&#8217;re planning on using SSL or test servers in the future. Fixing the links later can be expensive as it requires testing the entire site again for broken links.</p>
<p>By having reserved directory paths for images, css and html, it&#8217;s possible to set far-future expiry times to improve cacheability of those assets. However, the filename may not be reused, so new version of images need to receive a new filename or else caches will continue serving the old content.</p>
<p>And by having a URL available for items that could be served from a CDN, it&#8217;s possible to configure your CMS to be CDN-aware from Day One and avoid site changes and testing later. One of the first things I check when evaluating CMS programs these days is how I would easily be able to change serving images from a local web server to a remote CDN.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/09/http-to-https-transitions-in-web-browsers-and-email-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IMUG: How Google Built a Strong &amp; Robust I18N Organization in Four Years</title>
		<link>http://www.jebriggs.com/blog/2010/08/imug-how-google-built-a-strong-robust-i18n-organization-in-four-years/</link>
		<comments>http://www.jebriggs.com/blog/2010/08/imug-how-google-built-a-strong-robust-i18n-organization-in-four-years/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 09:00:16 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2281</guid>
		<description><![CDATA[At IMUG tonite Manish Bhargava from Google reprised his talk on &#8220;How Google Built a Strong &#038; Robust I18N Organization in Four Years&#8221;, previously presented at the WorldWare Conference. Manish is the product manager for Google&#8217;s 40 language initiative.
This was a fairly non-technical general talk on Google&#8217;s efforts to realize their mission statement.
What was most [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.imug.org/">IMUG</a> tonite Manish Bhargava from Google reprised his talk on &#8220;How Google Built a Strong &#038; Robust I18N Organization in Four Years&#8221;, <a href="http://www.worldwareconference.com/program2.php#P7">previously presented</a> at the <a href="http://www.worldwareconference.com/">WorldWare Conference.</a> Manish is the product manager for Google&#8217;s 40 language initiative.</p>
<p>This was a fairly non-technical general talk on Google&#8217;s efforts to realize their mission statement.</p>
<p>What was most notable about the talk is that no mention was made of where their i18n staff came from. Google largely gained their deep Internet i18n knowledge from hiring former Netscape and IBM ICU staff. Currently the group hires based on referrals of experienced people.</p>
<p>It was decided to pick the 40 most natural languages as they represented 99.7% of web traffic. (To get to 100% would require 120 more languages.) Google search itself is in 113 languages, and GMail in 54, soon to be 58. Eric Schmidt, Google&#8217;s CEO, is a strong supporter of this effort and quality of user experience is considered more important than cost of translation.</p>
<p>Lux-IQ: program to get feedback on international User experience and localization quality of various Google products from a network of in-market evaluators.</p>
<p>Example findings:</p>
<p>Issue type</p>
<p>Language/translation, interaction design, feature missing, feature bugs, visual design, data quality, other. Total.</p>
<p>Google translation toolkit used for ads. Machine translation. Some ad customers request translation into 50 languages for example.</p>
<p>Language Findits. 3 hour testing party for language-related products. Very successful.</p>
<p>Language console would help with finding already translated strings.</p>
<p>Globalization continuum</p>
<p>I18n prd, intl 1-stop, i18n checklist, country planningn legal, content, l10n checklist, translation, review and qa</p>
<p>I18n, planning, deployment</p>
<p>All is global, weekly pushes, 0.25 seconds for search query response</p>
<p>Quality is more important than cost.</p>
<p>High level advice alone &#8211; not effective<br />
Deliver concrete solutions, hands-on<br />
Adapt to product needs, constraints and priorities<br />
Earn credibility<br />
Success breeds success<br />
Be persistent</p>
<p>Metrics: intl revenue, top10 problems<br />
Graph of i18n api adoption</p>
<p>Challenges</p>
<p>Unicode redesign<br />
Bidi in webapps<br />
Broad range of environments<br />
I18n technologies<br />
Deep dives: android, chrome, gmail, youtube: to help critical area, new areas</p>
<p>40 language initiative</p>
<p>Take aways</p>
<p>I18n by design<br />
Educate, evangelize, communicate<br />
Design globally, implement locally<br />
Build credibility. Success breeds success.<br />
Retrofitting happens. C&#8217;ets la vie. Learn from it.<br />
&#8220;Make it easy to do right, and hard to do wrong.&#8221;</p>
<p>3 engineers for 7 months to fix gmail</p>
<p>Thanks to Google for hosting.</p>
<p><a href="http://twitter.com/i18n_mug">Twitter: IMUG</a></p>
<p>#    XIHA Connects Facebook and Twitter Friends with New Multilingual Translation http://tinyurl.com/2ankev2 #L10n     about 3 hours ago  via web</p>
<p># Zynga Launches First Localized Game In China: Texas Poker. http://tinyurl.com/2fxp9tm #L10n about 3 hours ago via web</p>
<p># @localization sorry didn&#8217;t see your Q (no hashtag) but their i18n team seems fairly centralized but serves all projects and offices. about 4 hours ago via web in reply to localization</p>
<p># And the event is over! Thank you Manish, and thank you Andrew Swerdow &#038; the Google i18n intergrouplet for hosting! #imug408 about 6 hours ago via web</p>
<p># Question: is there a process for self-localization of smaller language? Yes, for example Search recently translated into Hawaiian. #imug408 about 6 hours ago via web</p>
<p># Question: why 40 languages? Those 40 can reach 99.7% of all internet users. Actually 42 now. ~100 more needed for remaining 0.03%. #imug408 about 6 hours ago via web</p>
<p># Many questions from audience. One was how well-integrated is bug-management system? Manish summarized end-to-end process for that. #imug408 about 6 hours ago via web</p>
<p># @renatobeninatto approximately 60 attended tonight&#8217;s Google #i18n event. #imug408 about 6 hours ago via web in reply to renatobeninatto</p>
<p># Manish now summing up: #i18n by Design and other take-aways for any organization. #imug408 about 6 hours ago via web</p>
<p># Google #i18n API adoption has grown 173% since start of the 40 language initiative. #imug408 about 6 hours ago via web</p>
<p># Google has a team dedicated to #Unicode &#8220;Redesign&#8221;. #imug408 about 6 hours ago via web</p>
<p># First two points on successful #i18n: not high-level advice alone; deliver concrete solutions or even hands-on help. #imug408 about 6 hours ago via web</p>
<p># How can an #i18n team make an impact on projects from the outside? Manish offers 6 points. #imug408 about 6 hours ago via web</p>
<p># Amazing how much the Web challenges but also offers opportunities in #i18n. #imug408 about 6 hours ago via web</p>
<p># Interesting timeline now of Google&#8217;s Globalization process from i18n thru Planning to L10n. But I&#8217;m not going to give it away. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  #imug408 about 6 hours ago via web</p>
<p># Apparently this internal Language FindIt program results in far less mischief than other firms&#8217; community translation efforts. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  #imug408 about 6 hours ago via web</p>
<p># Manish now onto Language FindIts: Googlers identifying translation &#038; #L10n issues to improve Google products in own languages. #imug408 about 6 hours ago via web</p>
<p># Interesting discussion going on with audience about MT vs. transcreation. And rule-based vs. statistical translation. #imug408 about 6 hours ago via web</p>
<p># @renatobeninatto Yes they do use Google Translator Toolkit internally for example in automated ad translation. User can then edit. #imug408 about 6 hours ago via web in reply to renatobeninatto</p>
<p># @renatobeninatto I found Petra, she says Hi, but she is still making me ask your question. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  #imug408 about 6 hours ago via web in reply to renatobeninatto</p>
<p># @ken_lunde yes similar to Wordware but the entrance fee was far less! <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Very good presentation, great interaction with audience. #imug408 about 6 hours ago via web in reply to ken_lunde</p>
<p># Google has a program called Lux-IQ to get feedback from local market-savvy non-technical users in all 40 language markets. #imug408 about 6 hours ago via web</p>
<p># #i18n quality issues include not only basic encoding and locale issues, but also missing features important locally. #imug408 about 7 hours ago via web</p>
<p># The presentation is now turning to quality issues in #i18n. #imug408 about 7 hours ago via web</p>
<p># Manish is also presenting case studies, such as their experience with Google Video and Unicode (pre-YouTube). #imug408 about 7 hours ago via web</p>
<p># And by the way Google is hiring #i18n engineers! #imug408 #jobs about 7 hours ago via web</p>
<p># Manish has given us perspective on Google&#8217;s incredible global growth, and the start of Google&#8217;s 40-language initiative in 2007 #imug408 about 7 hours ago via web</p>
<p># Manish Bhargava, Google #i18n Product Manager, is presenting. #imug408 about 7 hours ago via web</p>
<p># Tonight&#8217;s IMUG event at Google kicked off 1/2 hour late, big crowd not enough badges. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  #imug408 about 7 hours ago via web</p>
<p># Going to tonight&#8217;s IMUG event @ Google? Maps, directions and more: http://www.imug.org/google/ #imug408 about 10 hours ago via web</p>
<p># Shirley_Rogers Twitter Unicode Hashtags &#8211; http://bit.ly/9ciNuu about 12 hours ago via web Retweeted by i18n_mug</p>
<p># 57 yes, 5 maybe RSVPs: 8 left for tonight&#8217;s 70 chairs. Will it be SRO? Google&#8217;s Manish Bhargava is an #i18n star! #imug408 about 12 hours ago via web</p>
<p># Localization Project Manager, Net-Translators, Sunnyvale, CA. Just posted to IMUG Jobs: http://www.imug.org/jobs/ #L10n #jobs about 13 hours ago via web</p>
<p># Maps and directions to tonight&#8217;s 7 PM Google #i18n event in Mountain View, CA: http://www.imug.org/google/ #imug408 about 14 hours ago via web</p>
<p># IMUG cannot do webcasts from Google yet. Hope to see you all there tonight! http://tinyurl.com/2f9esas Hashtag will be #imug408 about 14 hours ago via web</p>
<p># RT @ken_lunde Two font- and CJKV-related Tech Notes now live. http://tinyurl.com/23ffulg &#038; http://tinyurl.com/yzd3hjj <&#8211;Kazuraki font! about 16 hours ago via web</p>
<p># Kazuraki: Adobe&#8217;s Groundbreaking New Japanese Typeface http://tinyurl.com/2by46nn Next month&#8217;s IMUG event, @ Adobe #imug408 about 16 hours ago via web</p>
<p># TONIGHT 7 PM: The Google i18n Story http://tinyurl.com/2f9esas Hashtag for this IMUG event @ Google will be #imug408 about 16 hours ago via web</p>
<p># cathywissink RT @TalkStandards Nascent Web Open Font Format is getting boost thanks to W3C&#8217;s new initiatives http://bit.ly/biE85M #typography about 16 hours ago via web Retweeted by i18n_mug </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/08/imug-how-google-built-a-strong-robust-i18n-organization-in-four-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O&#8217;Reilly Open Source Conference 2010, Portland</title>
		<link>http://www.jebriggs.com/blog/2010/07/oscon-conference-2010-portland/</link>
		<comments>http://www.jebriggs.com/blog/2010/07/oscon-conference-2010-portland/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 23:22:51 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[User Groups]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2140</guid>
		<description><![CDATA[Once again, the O&#8217;Reilly Open Source Conference (OSCON) was held in Portland, Oregon.
It was a good conference, and we had beautiful weather all week long.
Executive Summary
The themes promoted by the conference organizers were Cloud Computing, NoSQL, Emerging Languages (Scala, Erlang, Parrot, Go) and Android phone development.
The @oscon twitter channel was heavily used to coordinate amongst [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, <a href="http://www.oscon.com/oscon2010">the O&#8217;Reilly Open Source Conference (OSCON)</a> was held in Portland, Oregon.</p>
<p>It was a good conference, and we had beautiful weather all week long.</p>
<p><strong>Executive Summary</strong></p>
<p>The themes promoted by the conference organizers were Cloud Computing, NoSQL, Emerging Languages (Scala, Erlang, Parrot, Go) and Android phone development.</p>
<p>The <a href="http://twitter.com/oscon">@oscon</a> twitter channel was heavily used to coordinate amongst organizers and attendees. I used the <a href="http://www.twixtreme.com/">TwiXtreme</a> twitter client program on my BlackBerry.</p>
<p>Plug Computers were very popular in the Expo area. They are 5 watt ARM-based computers running Debian Linux that fit into a power brick-sized case and cost $99 to $129 depending on features. The Marvell booth had a few models on display, from GlobalScale <a href="http://www.globalscaletechnologies.com/c-2-globalscale-technologies-products.aspx">(GuruPlug)</a> and <a href="http://www.ionics-ems.com/plugcomputer.html">Ionics.</a> High-end models have dual gigabit NICs, multiple USB ports, a WiFi access point and other expansion ports.</p>
<p>There was also continuing buzz regarding Facebook&#8217;s <a href="http://www.facebook.com/note.php?note_id=388112370932">Flashcache SSD module (GPL v2)</a> for linux, and also ZFS snapshots.</p>
<p><strong>Tutorials</strong></p>
<p>I went to the <a href="http://gearman.org/">Gearman</a> Cookbook tutorial, the first half of the <a href="http://opscode.com/chef/">Chef</a> tutorial and some of the Cloud Summit talks.</p>
<p>The <a href="http://gearman.org/">Gearman</a> Cookbook tutorial was excellent. After a detailed overview of the Gearman architecture and implementations in Perl and C, a number of use cases were explored in detail, including before and after code samples. The talk was both easy to listen to as an overall survey, as well as providing immediately useful info for those wanting to deploy it.</p>
<p>The <a href="http://opscode.com/chef/">Chef</a> tutorial was very detailed &#8211; too much so perhaps. I went to the first half only, since I am not planning to implement Chef soon (I use PXE and anaconda/kickstart with CentOS), and did not need that level of detail at this time. cfengine, puppet and chef are ops tools for configuring servers. Chef uses Ruby data structures for its configuration files, and has include files and other useful syntax. Basically, users can &#8220;code&#8221; server configuration, as if they were traditional apps.</p>
<p>I went to some of the <a href="http://www.oscon.com/oscon2010/public/schedule/detail/15295">Cloud Summit talks</a> and BOFs, but found that anybody who has done a simple project using EC2 knew as much or more than the speakers, some I would call blowhards.</p>
<p>Marten Mickos, president of Eucalyptus, is refreshing in that he is always clear about being in it for the money, while also promoting Open Source.</p>
<p><strong>Sessions</strong></p>
<p>Some of the most memorable sessions to me were:</p>
<p><strong>Introduction to MongoDB, Kristina Chodorow (MongoDB)</strong></p>
<p><a href="http://www.snailinaturtleneck.com/blog/">Kristina</a> is the maintainer of the Perl and PHP drivers for MongoDB. She gave an overview of MongoDB, a NoSQL document store, and its command-line interface, which uses JavaScript. </p>
<p>Some day she will release <a href="http://www.snailinaturtleneck.com/blog/2010/06/30/managing-your-mongo-horde-with-genghis-khan/">a sharding tool</a> for MongoDB.</p>
<p><strong>Scaling SourceForge with MongoDB, Nosh Petigara (10gen), Rick Copeland (SourceForge.net / GeekNet) </strong></p>
<p>Nosh and Rick gave an excellent review of incorporating MongoDB into the SourceForge site.</p>
<p>- SF query load is mostly read-only<br />
- ops team benchmarked a few NoSQL candidates, and MongoDB won on performance<br />
- original MySQL servers had 64 GB RAM. After migration to MongoDB, same server machines but only 8 GB RAM<br />
- backup dumps are verified to be bitwise the same as masters<br />
- have to be careful not to dump all documents in your database to the network or it will max out switches<br />
- SF relies on first-class data centers and replication slaves, less worried about MongoDB mmap (not crash-safe)<br />
- I personally looked at their performance numbers and site graphs (on an iPad), and the end result was impressive.</p>
<p><strong>Perl Lightning Talks</strong></p>
<p>As always, the Perl Lightning Talks are a highpoint of the conference.</p>
<p>The &#8220;cartoon&#8221; of <a href="http://www.math.u-bordeaux1.fr/~pit/">Vincent Pit&#8217;s</a> remarkable CPAN module<a href="http://search.cpan.org/~vpit/">(VPIT)</a> contributions was both informative and hilarious. Vincent is a French Ph.D. candidate in advanced geometry.</p>
<p><strong>Cloud BOF (3 Hours)</strong></p>
<p>The Cloud BOF was disorganized, starting 30 minutes late and for some reason was subdivided into 4 audience groups. Startups and vendors trying to make a cloud sales push led the BOF, including cloud and DNS service providers.</p>
<p>The Health Regulations subgroup came up with a couple ways to make the Cloud palatable to regulators by using encryption on all data due to the multi-tenancy issues with sharing public VMs.</p>
<p>I was in the NoSQL group, which discussed general issues and particular successes. <a href="http://www.memcached.org/">Memcached</a> was the clearest winner, while some people also had success with MongoDB and Redis.</p>
<p>My neighbor was an engineer at <a href="http://www.postrank.com/">Postrank.com</a>. He said that they were happy with HAProxy, but much less happy with the unpredictable IO available when running MySQL on EC2. He also said to carefully look at storage volumes available to your instance, as one is a useful tmpfs. They use <a href="http://www.authsmtp.com/">AuthSMTP</a> to get around EC2 being generally blacklisted for outbound email.</p>
<p><strong>Database BOFs</strong></p>
<p><strong>MySQL BOF</strong></p>
<p>The MySQL AB engineering staff has left Oracle. <a href="http://askmonty.org">Monty Program AB</a> (21 staff) has the core developers, and Percona Inc. (32 staff) has the consultants. Oracle still has some of the InnoDB programmers.</p>
<p>The business plan for Monty Program AB is 60% commercially-sponsored MySQL development, and 40% community-request development. Monty would like commercial users of MySQL to sponsor patches that would benefit them.</p>
<p>Mark mentioned that using Nehalem instructions for CRC were much faster, and that Facebook was using partitions for truncating tables instead of doing multi-record deletes. (See his blog for more details.)</p>
<p>One person mentioned using a commercial backup tool, <a href="http://www.r1soft.com/">R1Soft</a>, that inserts a linux kernel module to allow filesystem snapshots. He said to carefully test backup and restore in your environment, especially for filesystems greater than 1 TB which may exceed certain block counter limits. Peter said that some of his clients had used it with varying success.</p>
<p>It worked for him in his environment, and the file browser allows selective file restore (he uses it to restore by priority where a system runs multiple applications.) It starts at $299 for the Standard Edition, and also has MySQL Add-on and Enterprise Editions. </p>
<p><strong>PostgreSQL BOF</strong></p>
<p>The PostgreSQL BOF talked about 30 or so changes that went into version 9.</p>
<p>One of the most exciting new features is a native replication feature, called streaming replication (block-based.) The advantage over <a href="http://www.slony.info/">Slony-I</a> replication is that Slony-I is trigger-based, so has a variety of issues included inability to replicate DDL commands.</p>
<p>Some of the developers mimed replication events, which was rather amusing to watch. Yes, it was taped.</p>
<p>PostgreSQL is released under the <a href="http://www.opensource.org/licenses/postgresql">PostgreSQL Licence</a>, which is BSDish.</p>
<p>Peter Zaitsev, co-founder of <a href="http://www.percona.com/">Percona</a>, organized 3 BOFs, including XtraDB, XtraBackup, Maatkit, Percona Server, <a href="http://www.sphinxsearch.com/">Sphinx Search</a> and Running Databases on Flash Storage.</p>
<p><strong>Sphinx Search BOF</strong></p>
<p>Andrew Aksyonoff, the original programmer of Sphinx Search (GPL v2), couldn&#8217;t make it to OSCON (the good excuse was that he was busy coding), so Richard Kelm (Sphinx sales/customer support honcho) and Peter filled in (Percona is a business partner with Sphinx, and many of Percona&#8217;s clients use it.)</p>
<p>Some of the attendees were existing users, like myself, and some from HP and other companies were looking for a large-scale search solution or alternative to Lucene.</p>
<p>Monty mentioned that the latest MySQL 5.1 should be used, as there have been a number of performance and reliability improvements. Full-text search is supposed to be 10x faster than 5.0, and replication is nearly bug-free by now.</p>
<p>Sphinx Search now has <a href="http://www.sphinxsearch.com/docs/current.html#rt-indexes">real-time index updates</a> in version 1.1.0 beta. Another very nice feature is SQL+FS indexing.</p>
<p>Here is the full Sphinx 1.1.0 <a href="http://www.sphinxsearch.com/docs/current.html#rel110">changelog.</a></p>
<p><strong>Running Databases on Flash Storage BOF</strong></p>
<p>The Running Databases on Flash Storage BOF had a combination of MySQL and Postgres users who have tested or used most of the SSD products: FusionIO, violin, Intel, OCZ, etc. Everybody was happy with SSD IOPS performance, but less so with cost and metadata RAM requirements with the add-in boards (FusionIO may require 4 GB RAM for metadata.)</p>
<p>Peter said that 20% to 30% of his clients are already using SSD &#8211; across the spectrum of vendors and models. Some are also trying &#8220;massive RAM&#8221; solutions, like Cisco servers with 384 GB RAM.</p>
<p>Some users had 1+ TB Postgres databases with very thorny backup and mgmt. issues. One solution was to start a snapshot, but not do the copy operation.</p>
<p><strong>Expo Notes</strong></p>
<p>I had an enjoyable talk with Austin Hook, who has operated the OpenBSD Store for many years. He lives near Calgary, the center of OpenBSD/OpenSSH/PF development. He mentioned that some perennial financial contributors had stopped because of the recession, so here&#8217;s <a href="http://www.openbsd.org/donations.html">the donations link.</a></p>
<p>I also talked to some reps from a Brazilian outsourcing firm, <a href="http://www.actminds.com/">ActMinds.</a> They currently have 400 employees across Brazil and a sales office in Philadelphia. Brazil is only 2 hours ahead of EST. They said the minimum project size is 2 developers and developer turnover a low 5%/annum. Their pricing is $35 to $45/hour.</p>
<p>And I had fun handling the plug computers on display at the Marvell booth. The Ionics boards are amazingly densely populated.</p>
<p><strong>Discussions</strong></p>
<p>I had the opportunity to talk to a long-time Portland resident who works as a computer consultant. He said that the Portland economy is not doing great, and really hasn&#8217;t done well since old-growth logging was stopped after 90% of the forests were cleared. And although hundreds of miles of fiber optic has been laid downtown, it&#8217;s not available for residential use. However, the Beaverton area does have ubiquitous FTTH.</p>
<p>I also talked to somebody who attended the Emerging Languages talks. He&#8217;s working on his M.Sc. in Computer Science, so found those talks fascinating.</p>
<p><strong>Twitter Humor</strong></p>
<p>There were some humorous tweets:</p>
<p>- &#8220;my MongoDB and CouchDB mugs are fighting each other.&#8221;<br />
- &#8220;I got one MongoDB mug, but need two to safely store coffee.&#8221;</p>
<p><strong>Notes</strong></p>
<p>Note to self: skip the nightly parties unless you have a date. The bars are too loud to talk to anybody.</p>
<p>Note to the O&#8217;Reilly conference organizers: use meetup.com for the BOFs like ApacheCon does. The average audience was about 10 people, and with meetup it would  be 4x that.</p>
<p><a href="http://www.oscon.com/oscon2010/public/schedule/proceedings">OSCON 2010 Slides</a><br />
<a href="http://www.tbray.org/ongoing/When/201x/2010/07/21/DPH">Tim Bray: Desperate Perl Hacker</a><br />
<a href="http://www.youtube.com/results?search_query=oscon+2010&#038;aq=f">Youtube: OSCON 2010 videos</a><br />
<a href="http://blip.tv/?search=oscon2010;s=search">blip.tv: OSCON2010 videos</a><br />
<a href="http://en.wikipedia.org/wiki/Plug_computer">wikipedia: Plug Computer</a><br />
<a href="http://blog.zawodny.com/2010/05/22/mongodb-early-impressions/#comments">Jeremy Zawodny: MongoDB Early Impressions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/07/oscon-conference-2010-portland/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SMTP Maximum Body Line Lengths</title>
		<link>http://www.jebriggs.com/blog/2010/07/smtp-maximum-line-lengths/</link>
		<comments>http://www.jebriggs.com/blog/2010/07/smtp-maximum-line-lengths/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 02:27:08 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2130</guid>
		<description><![CDATA[Handy maximum email message body values to know when debugging email line-folding problems.
Generally if ! or !+ characters are inserted into long email lines, the solution is use shorter lines (insert newlines) or use quoted-printable encoding.


MTA
Maximum Octets


RFC821
1000 including CRLF


qmail
990


sendmail standard ESMTP
990


sendmail relay
2040


RFC 821: &#8220;The maximum total length of a text line including the &#60;CRLF&#62; is [...]]]></description>
			<content:encoded><![CDATA[<p>Handy maximum email message body values to know when debugging email line-folding problems.</p>
<p>Generally if ! or !+ characters are inserted into long email lines, the solution is use shorter lines (insert newlines) or use quoted-printable encoding.</p>
<table border="1">
<tr>
<td><strong>MTA</strong></td>
<td><strong>Maximum Octets</strong></td>
</tr>
<tr>
<td><a href="http://www.faqs.org/rfcs/rfc821.html">RFC821</a></td>
<td align="right">1000 including CRLF</td>
</tr>
<tr>
<td>qmail</td>
<td align="right">990</td>
</tr>
<tr>
<td>sendmail standard ESMTP</td>
<td align="right">990</td>
</tr>
<tr>
<td>sendmail relay</td>
<td align="right">2040</td>
</tr>
</table>
<p>RFC 821: &#8220;The maximum total length of a text line including the &lt;CRLF&gt; is 1000 characters (but not counting the leading dot duplicated for transparency).&#8221;</p>
<p><a href="http://www.phwinfo.com/forum/comp-mail-sendmail/325562-sendmail-maximum-line-length.html">Re: sendmail maximum line length</a><br />
<a href="http://mailformat.dan.info/body/linelength.html">Dan on Body: Line Length</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/07/smtp-maximum-line-lengths/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IMUG: Game Localization: Are We Having Fun Yet?</title>
		<link>http://www.jebriggs.com/blog/2010/06/imug-game-localization/</link>
		<comments>http://www.jebriggs.com/blog/2010/06/imug-game-localization/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 05:50:58 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Indonesia]]></category>
		<category><![CDATA[Japanese]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Psychology]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[User Groups]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2015</guid>
		<description><![CDATA[Tonite at the International Multilingual User Group (IMUG), Anthony Fitzgerald from SimulTrans gave a good talk, &#8220;Game Localization: Are We Having Fun Yet?&#8221;
Anthony has extensive experience in game localization, going back to Sierra On-Line&#8217;s Leisure Suit Larry franchise (challenging to localize because the user input was freeform text) and Valve Corporation&#8217;s Half-Life (requiring about 6 [...]]]></description>
			<content:encoded><![CDATA[<p>Tonite at the <a href="http://www.imug.org/">International Multilingual User Group (IMUG)</a>, Anthony Fitzgerald from SimulTrans gave a good talk, &#8220;Game Localization: Are We Having Fun Yet?&#8221;</p>
<p>Anthony has extensive experience in game localization, going back to Sierra On-Line&#8217;s <a href="http://en.wikipedia.org/wiki/Leisure_suit_larry">Leisure Suit Larry</a> franchise (challenging to localize because the user input was freeform text) and <a href="http://en.wikipedia.org/wiki/Valve_software">Valve Corporation&#8217;s</a> <a href="http://en.wikipedia.org/wiki/Half-Life_(video_game)">Half-Life</a> (requiring about 6 months to localize.)</p>
<p>Also many members of the game development community were there, including an Ubisoft localization project manager and SO-L&#8217;s fourth staff programmer.</p>
<p>Localization staff typically have to play the game for a week to understand how it works and what work needs to be done. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>There are various localization levels for games:</p>
<ol>
<li>Just localize the box art</li>
<li>Add subtitles</li>
<li>Localize everything</li>
</ol>
<p>For networked games, some additional issues are:</p>
<ul>
<li>localize just the client (user) program, or also the server too?</li>
<li>what if player messages to each other are in different languages?</li>
</ul>
<p>Cheats are very helpful to expedite testing when testing levels, features, etc.<br />
Testing on the lowest supported resolution is the fastest way to find font and string problems.</p>
<p>When testing PC games, particular graphics cards may be needed. Localizing console games is more involved though, requiring a developer console and software development licenses, possibly costing thousands of dollars per console.</p>
<p>Besides the usual challenges in localizing products, games have 2 additional steps:</p>
<ol>
<li>for console games, manufacturer (Sony, Nintendo, or Microsoft) acceptance testing is required. 10 to 15 days need to be scheduled for the initial test run, followed by 5-10 days per round of additional testing for rejected games. Additional test runs are billed by  the mfg.</li>
<li>government ratings boards, like <a href="http://www.esrb.org/">ESRB</a> in USA.</li>
</ol>
<p>Also, holiday deadlines for games are literally that: missing a holiday means that your audience has already spent their discretionary budget, so the release is fruitless.</p>
<p>Thanks to Google for hosting the meeting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/06/imug-game-localization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IMUG: Internationalizing Twitter</title>
		<link>http://www.jebriggs.com/blog/2010/05/internationalizing-twitter/</link>
		<comments>http://www.jebriggs.com/blog/2010/05/internationalizing-twitter/#comments</comments>
		<pubDate>Fri, 21 May 2010 05:22:07 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Indonesia]]></category>
		<category><![CDATA[Japanese]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Psychology]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[User Groups]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=1915</guid>
		<description><![CDATA[Mark Sanford did a comprehensive talk on i18n at Twitter.
He was on the Summize team that Twitter bought, so originally worked on search, then ended up being the i18n guy.
Twitter had a lot of things stacked against it i18n-wise:
- unilingual source tree
- no budget to do any real engineering initially
- Japanese tree translated by outside [...]]]></description>
			<content:encoded><![CDATA[<p>Mark Sanford did a comprehensive talk on i18n at <a href="http://twitter.com/">Twitter</a>.</p>
<p>He was on the <a href="http://search.twitter.com/">Summize</a> team that Twitter bought, so originally worked on search, then ended up being the i18n guy.</p>
<p>Twitter had a lot of things stacked against it i18n-wise:</p>
<p>- unilingual source tree<br />
- no budget to do any real engineering initially<br />
- Japanese tree translated by outside volunteer partner, Digital Garage<br />
- primitive Unicode support in MySQL and Ruby<br />
- now a legacy system full of data, hard to add metadata like lang/locale at this point.</p>
<p>Japanese cell phone support was challenging because:</p>
<p>- Shift_JIS, not Unicode<br />
- each of 3 carriers uses a different image format and different emoji codepoints, some overlapping<br />
- lack of l10n resources in house for Japanese-flavor design, including being cute, dense and also having an ad to demonstrate business seriousness<br />
- Japan uses cellular emails, not SMS like other places<br />
- mobile browsers don&#8217;t support cookies, so URL sessions needed unlike the regular Ruby web app<br />
- hard to tokenize short messages in Japanese.<br />
- need QR (Quick Response) code support (2D barcode)<br />
<center><br />
<img src="http://jebriggs.com/php/WikiQRCode.png" border="0" alt="QR Code" title="QR Code"><br />
<br />
QR Code<br />
</center><br />
Remarkably, Twitter was invited by a number of carriers to support their phones.</p>
<p>Crowdsourced translations using Google Groups, interns and app integrated with Twitter site. Now up to 3,700 strings and 2,600 translators. Hard to translate informal terms like tweet and follower though.</p>
<p>There was very good turnout, with 60 attendees live and 6 online.</p>
<p>Thanks to Adobe for hosting the venue. (Though I don&#8217;t understand why there is a 3-year NDA for attending a public meeting.)</p>
<p><a href="http://techcrunch.com/2010/06/04/twitter-size/">techcrunch.com: Twitter Has Basically Doubled In Staff In The Past 6 Months (June, 2010)</a><br />
<a href="http://blog.twitter.com/">Official Twitter Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/05/internationalizing-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApacheCon 2009 Oakland</title>
		<link>http://www.jebriggs.com/blog/2009/11/apachecon-2009-oakland/</link>
		<comments>http://www.jebriggs.com/blog/2009/11/apachecon-2009-oakland/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 21:52:43 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=1225</guid>
		<description><![CDATA[I went to ApacheCon 2009 in Oakland. Why Oakland? The ASF was founded here 10 years ago.
Executive Summary
Most of the attendees that I talked to were primarily interested in search technologies, or were Apache project comitters. The search users were already using either Lucene and Solr, or were using commercial software and evaluating Lucene and [...]]]></description>
			<content:encoded><![CDATA[<p>I went to <a href="http://us.apachecon.com/c/acus2009/">ApacheCon 2009</a> in Oakland. Why Oakland? The ASF was founded here 10 years ago.</p>
<p><strong>Executive Summary</strong></p>
<p>Most of the attendees that I talked to were primarily interested in search technologies, or were Apache project comitters. The search users were already using either Lucene and Solr, or were using commercial software and evaluating Lucene and Solr.</p>
<p>Also a lot of interest in Hadoop, Zookeeper and NoSQL projects.</p>
<p>I added a wikipedia <a href="http://en.wikipedia.org/wiki/Nosql#Implementations">NoSQL project features table</a> after the NoSQL BoF.</p>
<p>The conference was very well-organized, with tutorials, BoFs, a BarCamp, and sessions. Meetup.com was used to generate the highest BoF turnout that I&#8217;ve ever seen &#8211; close to 100 at the Lucene and Hadoop BoFs. (O&#8217;Reilly Conferences can learn from that.)</p>
<p>The Oakland Convention Center was a good venue for this conference, though the attached Oakland Marriott hotel is $$$$ and fond of surcharges, like $33/day for parking, $5 draught beer and $3.75 for a bottle of water in-room.</p>
<p>The keynotes and one track per day were recorded and are available for $99 at <a href="https://streaming.linux-magazin.de/en/registration.php">Linux Pro Magazine Streaming</a>.</p>
<p>StoneCircle Productions was the conference organizer.</p>
<p><strong>Conference Notes</strong></p>
<p><strong>Monday</strong></p>
<p>Although I live in San Jose, Oakland is far enough away that I&#8217;ve never been there. Oakland  has a compact downtown full of historical-era buildings, and Alameda is also nice, but things get less pretty at night.</p>
<p>I went to the Lucene tutorial on Monday.</p>
<p><strong>Lunch Conversations</strong></p>
<p>- awesome views of Bay Area past Golden Gate bridge from 21st floor<br />
- FAST pretty good indexing and search solution, but bought by Microsoft recently (going to continue linux support or not?)<br />
- FAST has FQL (users pronounce it fecal) query language <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
- 150 FAST servers replaced by 40 lucene servers by 1 company<br />
- FAST4 to FAST5 upgrade tough, similar to port to say lucene, forced upgrades for support<br />
- linguistics is 60% of value of Fast according to Monster, 13 languages supported<br />
- &#8220;bad stems&#8221; can be a nightmare<br />
- SOLR gives you 90% of what you would need to program in java, built on top of Lucene<br />
- Open Source search is not really about price, but about control and flexibility</p>
<p><strong>Monday Afternoon &#8211; Lucene Tutorial</strong></p>
<p>- user-assigned document id not mandatory, but great idea for many reasons, including after an index-rebuild<br />
- lucene-assigned id only valid for that snapshot (life of score doc)<br />
- parameter to keep or delete old index directory<br />
- StringBuilder is more efficient than strcat<br />
- populating title column is a good idea<br />
- results boosting handy for ecommerce, specials, etc.<br />
- LUKE &#8211;  handy tool for index statistics, etc.<br />
- Searcher class, snapshot in time, won&#8217;t see new merges<br />
- contrib/ has more analyzers<br />
- snowball stemmers<br />
- use 1 tokenizer and 0 or more token filters<br />
- precision-recall curve ??<br />
- n-grams and shingles (&#8221;the president&#8221;, &#8220;United states&#8221;)<br />
- pre-2.9 lucene, numbers and dates really strings<br />
- 2.9 NumericField builds tri structure, help optimize range queries<br />
- SOLR analysis tool apache-solr<br />
- relevance feedback with MoreLikeThis</p>
<p><strong>Monday BoFs</strong></p>
<p><strong>Couchdb</strong></p>
<p>- &#8220;ground computing&#8221;<br />
- &#8220;offline by default&#8221;<br />
- now an ubuntu service<br />
- mozilla raindrop to combine chat client msgs<br />
- lockless<br />
- append-only btree<br />
- rsyncable since append-only, also replication<br />
- checksums everywhere<br />
- windows not first class yet, mozilla improving it</p>
<p><strong>@mozilla</strong></p>
<p>- browsercouch<br />
- don&#8217;t like sql<br />
- brasstacks test tool storage<br />
- store now, index later<br />
- replicate to handle large indexing load<br />
- testbot ci</p>
<p><strong>Marklogic</strong></p>
<p>- commercial<br />
- xml-centric<br />
- great for articles, books<br />
- transactional<br />
- search-centric<br />
- structure-aware<br />
- schema-free<br />
- xquery-driven<br />
- extremely fast, largest 200 TB xml, 166 on hosts<br />
- clustered<br />
- database server<br />
- 180 clients, 150 employees<br />
- <a href="http://markmail.org/">markmail.org</a> demo contains 42 million email messages, very impressive performance with 5 views in almost realtime. Search is distributed across 160 nodes.</p>
<p><strong>JCR in 15 minutes</strong></p>
<p>- Bertrand Del<br />
- <a href="http://jackrabbit.apache.org/">JCR</a> is JackRabbit,<br />
a fully conforming implementation of the Content Repository for Java Technology API (JCR). A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more.<br />
- the ultimate content store<br />
- content repo, union of database and filesystem, best of both worlds<br />
- full-text search combined with structured search</p>
<p><strong>Solr Flair</strong></p>
<p>- information forage<br />
- &#8220;resume-driven design&#8221;</p>
<p><strong>Lucene Numerics</strong></p>
<p>- available in 1.4<br />
- tune by modifying precisionStep</p>
<p><strong>HBASE</strong></p>
<p>One bewildered attendee wished for a NoSQL product matrix, so I added that to the wikipedia <a href="http://en.wikipedia.org/wiki/Nosql">NoSQL</a> page.</p>
<p><strong>Wednesday Sessions</strong></p>
<p><strong>Becoming a Pig Developer, Alan Gates</strong></p>
<p>- Apache Pig is a sub-project of Apache Hadoop.<br />
- this talk was really how to use PIG as an end-user, not to become a Pig project developer</p>
<p><strong>Apache Hadoop in the Cloud, Tom White</strong></p>
<p>- general comments on using EC2 with Hadoop mostly</p>
<p><strong>Practical HBase, Michael Stack</strong></p>
<p>- Apache HBase is the Apache Hadoop database, similar to BigTable.<br />
- HBASE usage</p>
<p><strong>mod_jk / mod_proxy and others, Jean-Frederic Clere and 2 others</strong></p>
<p>- mod_jk, mod_proxy, mod_serf and mod_cluster original topics<br />
- mostly focused on mod_jk, mod_proxy and isapi_redirect<br />
- good talk by 3 long-term project contributors<br />
- jk is kind of Java-centric, with support for <a href="http://en.wikipedia.org/wiki/Apache_JServ_Protocol">Apache JServ Protocol (AJP)</a> only available in Java back-end servers for now, like Tomcat<br />
- isapi_redirect is primary way to do redirects on Windows IIS<br />
- survey of audience showed several mod_proxy users, maybe one intentional mod_jk user</p>
<p><strong>Thursday Sessions</strong></p>
<p>&#8220;Apache Lucene and Apache Solr Performance Tuning with Mark Miller&#8221; was packed, so moving along to a different room &#8230;</p>
<p><strong>Scalable Internet Architectures, Theo Schlossnagle</strong></p>
<p>- amazing and thought-provoking talk, also one of the most popular<br />
- think about performance from network packet level to application level<br />
- carp, vrrp, whackamole<br />
- alterdns, neustar<br />
- dynact<br />
- <a href="http://en.wikipedia.org/wiki/Anycast">anycast</a> (shared IP), geoip (but need actually accurate database)<br />
- activemq, rabbitmq instead of Spread<br />
- &#8220;memcached is the worst thing that ever happened to our industry &#8211; it solves a problem, just not the original problem&#8221;</p>
<p>- many apps today are so poorly designed that network issues never become scalability concerns &#8211; ie. RoR applications <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
- max out at 500 requests per second across 40 boxes &#8211; RoR<br />
- firebug and yslow have been fantastic at making front-end engineers aware of networking performance<br />
- 10 gb nics suck<br />
- instead of one big 20 Gbps loadbalancer, use anycast from core router to 5x 4 gpbs cheaper load balancers<br />
- spiky load or DDoS &#8211; announce a /32 to separate load balancer, use symmetric return path</p>
<p>- jms, aqmp, spread</p>
<p>durable message queues</p>
<p>- activemq (java)<br />
- openamq (c) &#8211; hard to use<br />
- rabbitmq (erlang) &#8211; nice except in durable mode because erlang disk io blows</p>
<p>- most common protocol <a href="http://stomp.codehaus.org/Protocol">Stomp</a> is awful and slow (hard to read 100k messages per second) and not binary, but lots of clients exist.</p>
<p>- activemq and stomp is a good start.<br />
- rabbitmq and native connectors are better, but no perl client.</p>
<p>- PCI compliance requires a stateful firewall. Hard to do 1.5 million packets per second traffic for most medium-sized data centers, need to use a CDN to distribute static requests and distribute the packets somewhere else<br />
- leaving trailing / off causes 302, doubles traffic<br />
- <a href="http://lethargy.org/~jesus/misc/Scalable-acus2009.pdf">Slides</a><br />
- read/write ratio is 1 &#8230; likely IM or email?<br />
- went over some networking details with Paul L. afterwards</p>
<p><strong>Recent Developments in SSL and Browsers, Rick Andrews, Thawte</strong></p>
<p>- 1.6 billion OCSP requests per day, need good infrastructure to support that<br />
- intermediate CA allows root CA to be offline &#8211; chained hierarchy &#8211; SSLCertificateChainFile,<br />
needs intermediate certificates before cross-certificates, some  clients need in proper order<br />
- EV hierarchy more complex. wanted new EV root, but older browsers don&#8217;t know about it.<br />
- browser ubiquity problem with any new feature, hash or crypto algorithm<br />
- logotypes &#8211; trademark and copyright issues with using other companies&#8217; logos in a product<br />
- Verisign does not have apache httpd committers, but should<br />
- 1 attendee wanted to sign JavaScript files, but what does it mean if most sites link to 10 advertising and tracking scripts? what do you tell the user if 1 JS is not signed?</p>
<p><strong>Subversion Meetup</strong></p>
<p>Organizers didn&#8217;t show up, so spent 10 minutes talking to a handful of end-users about subversion gripes and moved along to &#8230;</p>
<p><strong>Hadoop Meetup</strong></p>
<p><strong>Zookeeper</strong></p>
<p>- zk is persistent to disk<br />
- can run on one node, but 3 is minimum non-toy<br />
- zk is popular in academia now for some reason<br />
- avoid split-brain partitioning between 2 data centers &#8211; bad<br />
- very recent merge to fix -368, not ready for production yet<br />
- people using it for a message queue, perhaps more reliable than many other Open Source ones<br />
- need 1 zk node for testing, but 3 zk nodes for non-trivial implementation</p>
<p><strong>Scribe</strong></p>
<p>- github<br />
- 4x to 5x compression with lzo. similar disk bw improvement</p>
<p>A local owner of a gelato store handed out 6 free samples from a portable gelato freezer. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Friday Sessions</strong></p>
<p><strong>Building Intelligent Search Applications with the Lucene Ecosystem, Ted Dunnin</strong></p>
<p>- some matrix math<br />
- using his matrix math optimization, a perl program on 1 server was faster than Mahout running on a $250k  cluster <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
- tdunning.blogspot.com</p>
<p>- the original LLR in NLP paper<br />
&#8220;Accurate Methods for the Statistics of Surprise and Coincidence&#8221; check on citeseer<br />
- Mahout project<br />
tdunning [at] apache.org</p>
<p><strong>Realtime Search, Jason Rutherglen</strong></p>
<p>- many technical issues prevent Lucene from being able to do realtime search<br />
- lots of patches done, lots to do<br />
- audience member thanked author for great work so far</p>
<p><strong>Closing Plenary: Brian Behlendorf on Open Source and Charity</strong></p>
<p>Talked to <a href="http://www.jroller.com/akarasulu/">Alex Karasulu</a> a little after the final presentation. He&#8217;s a committer on the Apache Directory project. He suggested adding dbm to the <a href="http://en.wikipedia.org/wiki/Nosql">NoSQL</a> product matrix. Wants a MacBook Air with 8 GB RAM to run his Java apps. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.us.apachecon.com/c/acus2009/schedule/grid">Conference Schedule Grid</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2009/11/apachecon-2009-oakland/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend PHP Conference 2009</title>
		<link>http://www.jebriggs.com/blog/2009/10/zend-php-conference-2009/</link>
		<comments>http://www.jebriggs.com/blog/2009/10/zend-php-conference-2009/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 21:00:13 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[User Groups]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=1215</guid>
		<description><![CDATA[The Zend PHP Conference was downtown at the San Jose Convention Center, so I went to that this week.
It was a well-organized, fun-sized conference &#8211; just big enough to use half the convention center, which made it easy to get around without a lot of walking between session rooms.
There was also an official, parallel unconference [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.zendcon.com/">Zend PHP Conference</a> was downtown at the San Jose Convention Center, so I went to that this week.</p>
<p>It was a well-organized, fun-sized conference &#8211; just big enough to use half the convention center, which made it easy to get around without a lot of walking between session rooms.</p>
<p>There was also an official, parallel unconference in 2 rooms priced at $199 for non-conference attendees.</p>
<p>The talks were high-quality, the food was great, and wifi worked everywhere. What more could one ask for? Well, a few more power strips next time, perhaps.</p>
<p>I was impressed with the number of attendees from Europe, Australia &#8211; and Utah!</p>
<p>I went to Matthew Weier O&#8217;Phinney&#8217;s tutorials on Monday. He&#8217;s the Project Manger for the <a href="http://framework.zend.com/">Zend Framework</a>, including design and supervision of the framework programmers. He&#8217;s an excellent speaker and really knows his stuff. Both his Intro to Zend Framework, and Ajax with Zend Framework tutorials were excellent.</p>
<p>My favorite talk of the conference was Eric Farrar&#8217;s talk on Mobile Data Synchronization. His slides went through many of the pitfalls of data synchronization, then actually provided a solution: use Sybase&#8217;s mobilLink, which is free to use with MySQL and SQLAnywhere. He said a team of 24 has been working for 10 years on that, and it is deployed in millions of devices. He works on the <a href="http://www.sybase.com/ultraliteweb">ultraliteweb</a> project.</p>
<p>A Digg sysadmin did an interesting operations talk on the evolution of the Digg data center over the past few years. They&#8217;re up to 800 servers in 2 Equinix locations now, and use pre-cabled racks of servers from Penguin Computing. Software-wise, they like Cassandra key-value pair, clusto and puppet. They tried some commercial software in 2007, and didn&#8217;t enjoy the experience.</p>
<p>I had some great lunch break talks with other folks. One guy from Ohio was getting interesting SEO results by serving raw XML to clients, and having client-side JavaScript provide styling for human users.</p>
<p>I talked to a couple folks about their experiences using MySQL NDB Cluster in production. They both said it&#8217;s flaky, with one having already abandoned it for regular MySQL database with Innodb. He was also using RightScale and Amazon for document processing, and was happy with that combo.</p>
<p>There were about 20 exhibitors in 2 aisles, so easy to talk to all of them.</p>
<p>I got personal demos of <a href="http://www.rightscale.com/">RightScale</a>&#8217;s cloud admin app, <a href="http://shop.zend.com/en/zend-studio-for-eclipse.html">Zend Studio IDE</a>, and <a href="http://www.bcdsoftware.com/">BCDSoftware</a>&#8217;s <a href="http://www.bcdsoftware.com/systemiseriesas400/webappdevelopment/">WebSmart PHP</a> code generator.</p>
<p>WebSmart PHP is a $4600 code generator for ex-RPG and COBOL programmers. It provides a basic IDE, but the interesting part is that whatever you might want to do is either documented in hundreds of online technote examples, or available by contacting their unlimited support department.</p>
<p>Some of the unconference talks I went to included improving cookie security by embedding the SSL session id, and part of the continuous integration session (they talked about Hudson and CruiseControl, but not BuildBot).</p>
<p>The unconference talk on PHP and queues was quite good, with an overview of Amazon Simple Queues (good), Gearman (no persistence), beanstalkd (rave), and custom PHP and C queues (don&#8217;t roll your own unless you want long-term job security.)</p>
<p>The closing keynote was what I was mainly at the conference for &#8230; the PHP Frameworks Shoot-out with the framework project leaders.</p>
<p>Here&#8217;s my notes from my perspective as a listener. Please email me with any corrections.</p>
<p><a href="http://www.agavi.org/">Agavi</a><br />
- David<br />
- borrow from Symfony PHPunit code<br />
- would use Symfony as alternate<br />
- CI ORM is a pointless reimplementation, Rails programmers are morons shaped by pragmatism of Rails model<br />
- hates complexity of validation code, context from Majove too many interdependencies<br />
- 5.3 nice to have universal exception handling fw<br />
- believes 5.3 is a major new release not comparable to 5.1 or 5.2 that frameworks need to support<br />
- bigger the team and complexity, better agavi is because more structure</p>
<p><a href="http://cakephp.org/">CakePHP</a><br />
- Nate Abele<br />
- hates long class names<br />
- hates ACL system needs to be redocumented or cleaned up<br />
- PHP 4 at this point, next release on 5.3</p>
<p><a href="http://codeigniter.com/">CodeIgniter</a><br />
- Ed Finkel<br />
- Symfony generates too many files, brain hurts; input filtering in ZF overcomplicated<br />
- hates complex routing, unlike Limonade<br />
- CI is not recommended for complex systems</p>
<p><a href="http://www.symfony-project.org/">Symfony</a><br />
- Fabien Potencier<br />
- French<br />
- full stack<br />
- secure by default<br />
- would use Django and ZF<br />
- hates 1.1 form framework complexity that users painpoint<br />
- 5.3 is nice, but no plans to port to 5.3 because of large users update cycle time</p>
<p><a href="http://framework.zend.com/">Zend Framework</a><br />
- Matthew Weier O&#8217;Phinney<br />
- ZF routing from Rails, lots of stealing<br />
- would use CodeIgniter<br />
- hates heavy-weight dispatch cycle in ZF, to be rewritten in 2.0<br />
- 5.3 ZF already testing with it, backwards compatible to 5.2.</p>
<p>The sessions that had an audio recording will be released as podcasts, one per week, and hosted on <a href="http://devzone.zend.com">devzone.zend.com</a>.</p>
<p>Thanks to Zend for organizing a great conference.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2009/10/zend-php-conference-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sf.pm.org: Oops! I i18n&#8217;d your app</title>
		<link>http://www.jebriggs.com/blog/2009/08/sf-pm-org-oops-i-i18nd-your-app/</link>
		<comments>http://www.jebriggs.com/blog/2009/08/sf-pm-org-oops-i-i18nd-your-app/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 05:43:42 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Indonesia]]></category>
		<category><![CDATA[Japanese]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[User Groups]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=957</guid>
		<description><![CDATA[Jeff Goff (DrForr) gave a sf.pm.org talk on internationalizing web apps at Six Apart in San Francisco.
(It was a long trip from San Jose on the Caltrain. I knew that I had arrived in San Francisco when I could smell the stench of urine upon leaving the station.)
Jeff mentioned working on ticketmaster.com before, and used [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://jebriggs.com/php/perl.gif" alt="Perl Camel Logo" title="Perl Camel Logo" align="left" />Jeff Goff (DrForr) gave a <a href="http://sf.pm.org/">sf.pm.org</a> talk on internationalizing web apps at Six Apart in San Francisco.</p>
<p>(It was a long trip from San Jose on the Caltrain. I knew that I had arrived in San Francisco when I could smell the stench of urine upon leaving the station.)</p>
<p>Jeff mentioned working on <a href="http://www.ticketmaster.com/">ticketmaster.com</a> before, and used S5 slides to illustrate a variety of localization issues with languages like Chinese, Japanese and Malaysian.</p>
<p>Some of his tips for identifying and preventing translation string corruption were:</p>
<ul>
<li>check for double-encoding of UTF-8 strings, perhaps with <a href="http://search.cpan.org/~markf/Test-utf8-0.02/lib/Test/utf8.pm">Test::utf8::is_sane_utf8()</a></li>
<li>check complete toolchain for UTF-8 cleanliness</li>
<li>can use <a href="http://unicode.org/cldr/utility/properties.jsp">Unicode script and block properties</a> to identify language when possible, as documented in <a href="http://perldoc.perl.org/perlunicode.html#Unicode-Character-Properties">perldoc perlunicode</a></li>
<li>use RCS pre-commit hook feature to inspect checkins, though can be slow with large input files.</li>
<li>important to decide how much cleanup the translator is responsible for vs. internal.</li>
<li>JavaScript string localization will likely require careful escaping of quotes.</li>
</ul>
<p>Audience members also suggested:</p>
<ul>
<li>enable online web editing of translations as well as batch export</li>
<li>consider locking columns if translators use excel worksheets.</li>
</ul>
<p>As always, my comment is that it&#8217;s more important to focus on locale definition than charsets in i18n projects.</p>
<p>Several members were looking for perl jobs, so post your offers on the mailing list.</p>
<p>Thanks to <a href="http://www.sixapart.com/">Six Apart</a> for hosting the meeting.</p>
<p><a href="http://juerd.nl/site.plp/perluniadvice">Juerd&#8217;s Perl Unicode Advice</a><br />
<a href="http://www.unicode.org/">Unicode.org</a><br />
<a href="http://en.wikipedia.org/wiki/UTF-8">wikipedia: UTF-8</a><br />
<a href="http://search.cpan.org/~jgoff/">Jeff&#8217;s CPAN</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2009/08/sf-pm-org-oops-i-i18nd-your-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSCON 2009 &#8211; San Jose</title>
		<link>http://www.jebriggs.com/blog/2009/07/oscon-2009-san-jose/</link>
		<comments>http://www.jebriggs.com/blog/2009/07/oscon-2009-san-jose/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 06:08:24 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Psychology]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[User Groups]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=927</guid>
		<description><![CDATA[For the first time in a decade, the O&#8217;Reilly Perl and Open Source Conference (OSCON) was held San Jose again for 2009.
(I have heard that the City of San Jose Business Development office is very, very accommodating towards conferences these days.)
There was great attendance, and plenty to see with about 15 simultaneous tracks, lots of [...]]]></description>
			<content:encoded><![CDATA[<p>For the first time in a decade, <a href="http://en.oreilly.com/oscon2009">the O&#8217;Reilly Perl and Open Source Conference (OSCON)</a> was held San Jose again for 2009.</p>
<p>(I have heard that the City of San Jose Business Development office is very, very accommodating towards conferences these days.)</p>
<p>There was great attendance, and plenty to see with about <a href="http://en.oreilly.com/oscon2009/public/schedule/grid/2009-07-22">15 simultaneous tracks</a>, lots of BoFs, and an active exhibits area.</p>
<p>One of the changes this year was more OS talks, including some for linux and FreeBSD. This is a welcome change, though many kernel hackers won&#8217;t travel to the USA, for various legal issues.</p>
<p>My favorites were:</p>
<ul>
<li>talk &#8211; <a href="http://www.yaml.org/">YAML</a> by Ingy. YAML is a serialization standard for all programming languages and <a href="http://blog.ingy.net/2007/05/yaml-and-json.html">is a superset of JSON</a>, in that YAML supports types and references. The Perl module is <a href="http://search.cpan.org/~ingy/YAML-0.68/lib/YAML.pm">YAML.pm.</a> Although it is a &#8220;serialization standard&#8221;, best results are obtained when both sides of the exchange are controlled by the programmer (ie. different word sizes or floating point standards will likely cause issues.)
<li>Perl lightning talk &#8211; <a href="http://obsidianrook.com/devnotes/talks/esthetic_randomness/">Esthetic Randomness</a> by Joseph Brenner. Joseph likes to post-process random output before display to get a more desirable appearance. He&#8217;s kind of goth-looking, so the overall subject and delivery made it an interesting 5 minutes.
<li>BoF &#8211; MySQL social with Monty, Percona (now 25 employees!) and Mark C.
<li>exhibit &#8211; <a href="http://www.haiku-os.org/">Haiku OS</a> (the Open Source BeOS clone) demo. 2 developers, now at Google, reimplemented BFS from the textbook. Haiku can run with 64 MB RAM. Posix compatible, so the gcc toolchain works. The ARM port is a GSoC project. The video support comes from from ffmpeg, xiph, etc.
</ul>
<p>Regarding the MySQL BoFs, I think they can be summarized like this: the community is not going to wait for MySQL AB/Sun/Oracle to dick around any further.</p>
<p><a href="http://askmonty.org/">Monty Program AB</a>, <a href="http://www.percona.com/">Percona</a> and <a href="http://www.drizzle.org/">Drizzle</a> are going to have forks regardless of what Oracle does. Either the official MySQL documentation will be freed, or rewritten by Monty Program AB and Drizzle.</p>
<p>Typo3 CMS also had a community booth. They are the #1 European CMS with support for 38 languages.</p>
<p>I didn&#8217;t see much use for the &#8220;OSCamp&#8221; attendee-organized tracks personally. Whereas at the MySQL Conference the Percona Performance Conference was necessary to fix the broken speaker selection process that was weighed towards MySQL/Sun staff instead of productive community contributors, that wasn&#8217;t an issue this time around.</p>
<p>The talk on Perl and Unicode was pedantic (focusing on UTF-8 bit patterns, presumably for those needing to detect and fix corruption) but comprehensive, as <a href="http://en.wikipedia.org/wiki/Tom_Christiansen">Tom Christiansen</a> was in attendance to provide up-to-the-minute comments and tips. <a href="http://search.cpan.org/~nwclark/perl-5.8.9/pod/perluniintro.pod">perluniintro</a> is very helpful.</p>
<p>The PHP Best Practices talk was informative, as the 2 presenters have worked as PHP programming consultants and seen how projects go wrong. They tend to use whatever PHP framework the client is using, and have nothing glowing to say about any particular one.</p>
<p>I&#8217;d say that the world of PHP frameworks (dozens) is even more fragmented than Perl (Catalyst, Mason, embperl, CGI::Application are the major ones), which is indeed astonishing. And ironic &#8211; since PHP is itself a templating language.</p>
<p><a href="http://www.stonehenge.com/">Stonehenge Consulting</a> threw another of their famous drunkfests at a local bar for those wearing their neon yellow t-shirts. If you want to get hammered for free, this is always the spot. <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I talked to Randy Ray a little about what can be done with svlug.pm considering that the South Bay is suburban and thus less centralized than a dense city. Stay tuned.</p>
<p>Other Perl lightning talks included:</p>
<ul>
<li>Larry Wall&#8217;s son talking about black holes
<li>Scott Smith talking about Getopt::Complete, which can do svn command-line style nested args
<li>connie willis bellwether talked about Flocks and the hive mind as defined by 3 rules.
<li>Don&#8217;t Blame Perl &#8211; It’s the programmer’s problem if they don’t use modules, scoping, comments, brevity, objects.
<li>Cool Perl6 &#8211; hyperoperators (work on arrays) with a card game sample using extended-ASCII symbols.
<li>svn is not totally useless &#8211; it pointed the world towards git.
</ul>
<p>The closing talk on linux economics seemed to be an eye-opener for the audience. Most cell carriers and OEMs are at a severe disadvantage to Apple in the apps market, so they may need linux (or Haiku) to mount any kind of response that makes financial sense.</p>
<p>In the conference wrap-up segment, Allison Randal and an O&#8217;Reilly rep fielded questions from the audience and answered in &#8220;Twitter mode&#8221; &#8211; single sentences less than 140 characters in length.</p>
<p><a href="http://en.oreilly.com/oscon2009/public/schedule/proceedings">OSCON 2009 Speaker Presentation Files</a><br />
<a href="http://www.youtube.com/results?search_query=oscon+2009">youtube.com: oscon 2009 video clips</a><br />
<a href="http://en.wikipedia.org/wiki/Monty_Program_Ab">wikipedia: Monty Program AB</a><br />
<a href="http://mtocker.livejournal.com/50931.html">mtocker: Understanding the MySQL forks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2009/07/oscon-2009-san-jose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
