<?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>theplant blog</title>
	<atom:link href="http:///en/feed/" rel="self" type="application/rss+xml" />
	<link>/en</link>
	<description>The Plant, Build web applications</description>
	<lastBuildDate>Tue, 28 Jun 2011 05:13:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Best CMS</title>
		<link>/en/2009/11/the-best-cms/</link>
		<comments>/en/2009/11/the-best-cms/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 14:24:13 +0000</pubDate>
		<dc:creator>anatole</dc:creator>
				<category><![CDATA[news]]></category>

		<guid isPermaLink="false">/en/?p=1256</guid>
		<description><![CDATA[So what's the best CMS? WordPress, Drupal, ExpressionEngine? A question I'm often asked and to which I can only answer...]]></description>
			<content:encoded><![CDATA[<p>So what&#8217;s the best CMS? WordPress, Drupal, ExpressionEngine, another? A question I&#8217;m often asked and to which I can only answer: it depends. It depends both on who you are and what you are trying to do.</p>
<h3>When to use a packaged solution</h3>
<p>Packaged CMSs give a lot of functionality for free and people who take the time to learn them, love them. I think this is especially true for  designers and content publishers as it allows them to do things that they weren&#8217;t capable of before. As they work with the platform more and more they see with a little plugin here, a little tweak there, they can solve many of their problems. </p>
<p>However, I would recommend these rough guidelines for when and what to use to avoid the &#8220;when all you got is a hammer everything looks like a nail&#8221; syndrome:</p>
<ul>
<li>Most packages are good in what they are trying to do; often bad when forcing them to do something else.</li>
<li>WordPress, Drupal, and ExpressionEngine seem best suited for one-man teams.</li>
<li>If you stray far from the built-in features, consider building by hand.</li>
</ul>
<h3>Use a CMS when what you are coding is primarily a CMS</h3>
<p>Don&#8217;t try to build a picture sharing site using WordPress, or a multi-lingual e-commerce solution using ExpressionEngine. I&#8217;m sure it can be done, but the more that you try to stuff a square peg in a round hole, the more inefficiencies and frustrations await you.</p>
<h3>The right peg</h3>
<ul>
<li>Use WordPress if you are primarily making a blog or publishing articles, a one-man team will be implementing the product, and/or do not have the internal technical resources to roll your own.</li>
<li>EE for more complex sites with multiple data models, are a one-man team, and the site is primarily manipulating content blocks.</li>
<li>Drupal I have much less experience with, but seems to also have its die-hard fans. My understanding is that it would be in the same realm as EE.</li>
</ul>
<p>I am curious where others feel about this broadsword evaluation and how they would evaluate other packaged CMS products. Please add your comments below :)</p>
<h3>The one-man team</h3>
<p>Most of the above-mentioned CMSs use the database to store configuration,  data models, and, in some cases, display templates. This is probably fine if you are working on it by yourself, but makes it difficult to use Git, Subversion, or other version control tools that allow multiple developers to code simultaneously (I also find it very annoying to be forced to write any code in a browser and find that it makes developing on local and deploying to production a pain).</p>
<h3>Packaged CMS for companies with limited technical resources</h3>
<p>I say this in partly in retrospect from what we did with the site you are looking at: theplant.jp. We built this on WordPress. </p>
<p>With a site that is primarily static contents and extremely simple functionality we should have rolled our own simple CMS for updating the only contents that changes frequently: the blog and comments. We could have pumped that out in just a few hours. The static contents are, well, static. All of us here could more easily edit a text file and deploy it to the server and not have to worry about:</p>
<ul>
<li>Learning the WordPress-specific library of functions</li>
<li>Trying to force it to be a multi-lingual company CMS when it was not made to be one.</li>
<li>Wading through the admin. The development of all platforms with additional features both gives and takes. We actually only need one feature: add/edit/delete and article. However, each time we login, we are always faced with an admin full of tools to administer features and contents that we don&#8217;t need.</li>
<li>Being attacked by WP-targeting spam and attacks and associated hassle of continually updating the software for security fixes.</li>
<li>Speed issues for creating dynamic contents when, in fact, they don&#8217;t need to be dynamic. Cacheing and other strategies will help this, but they are really a kludge when the contents are primarily static in nature.</li>
</ul>
<p>This is no fault of WordPress per say, it does what it does extremely well: enables people to publish blogs/articles, it was just a bad choice for us as we were not lacking technical resources to solve our problem more elegantly.</p>
<h3>What we are doing from now on: QorCMS</h3>
<p>We are using are experience over the years from developing custom solutions for MTV Japan, ASICS, OnitsukaTiger, and CMS solutions for many others and have developed a beta version that we will soon release of what we are calling internally QorCMS.</p>
<p>If Rails is like a piece of cloth which can be customized into all kinds of clothes, QorCMS is a well tailored business suit for the business man. QorCMS is still a framework for developers instead of a final product, but it enables us to rapidly develop custom solutions.</p>
<p>QorCMS includes lots of common modules that a CMS needs (auth, upload, file serve), a flexible content model map and other enhancements to Rails (it’s based on Rails, but has many utilities and fancy helpers). QorCMS code is backed by a battery of coded test cases so that we can depend on the features. Again, the goal of QorCMS is a basic framework, not an instant fantastic CMS. Our clients will get this after some configuration and coding to match their specific needs.</p>
<h4>It may seem like this is just another CMS, and in some ways it is, <em>but we wrote it and that makes all the difference because we:</em></h4>
<ul>
<li>Are driving the bus and don&#8217;t need to be tied to an external development team&#8217;s roadmap for feature enhancement or having to hack our own features that may break in the next update.</li>
<li>Can extend it extremely easily.</li>
<li>Administer the features through code, not through a GUI which we find to be much more efficient.</li>
<li>Keep data models, templates, and configurations in the code, not in the database, so it is very easy for several developers to work on the same project at the same time.</li>
<li>Integrate with the 3rd party services we like best, like GoogleDocs, GoogleMaps, Amazon Webservices, and Mailchimp</li>
<li>Make our code safer, with (hopefully) less flaws than we have seen in other solutions.</li>
</ul>
<p>The downside for our clients is that it is our code, so they may perceive themselves as being more tightly bound to a single developer. However, unless it is a vanilla install of a CMS with no alteration, they will be probably end up being just as tied to another vendor and, hey, we are not a bad company to be in cahoots with anyway.</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/11/the-best-cms/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Postfix でローカルマシンにメールを送信しないための設定</title>
		<link>/en/2009/10/postfix-%e3%81%a7%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%83%9e%e3%82%b7%e3%83%b3%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e4%bf%a1%e3%81%97%e3%81%aa%e3%81%84%e3%81%9f%e3%82%81%e3%81%ae/</link>
		<comments>/en/2009/10/postfix-%e3%81%a7%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%83%9e%e3%82%b7%e3%83%b3%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e4%bf%a1%e3%81%97%e3%81%aa%e3%81%84%e3%81%9f%e3%82%81%e3%81%ae/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 11:14:06 +0000</pubDate>
		<dc:creator>makoto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">/en/?p=1240</guid>
		<description><![CDATA[We want to config the server can only send emails, can NOT receive emails from local or remote. Because our domain is pointed to this server, But our email server is on Google Enterprise. So before If we want to send email from the server, It first looks up locally, and send to local directly, [...]]]></description>
			<content:encoded><![CDATA[<p>We want to config the server can only send emails, can NOT receive emails from local or remote. Because our domain is pointed to this server, But our email server is on Google Enterprise. So before If we want to send email from the server, It first looks up locally, and send to local directly, So emails never get reach to Google.</p>
<p>I tried: http://www.postfix.org/faq.html#null_client But I seems not work.</p>
<p>After check out the postfix log:</p>
<p><script src="http://gist.github.com/146697.js"></script></p>
<p>Even you set</p>
<p>local_transport = error:local delivery is disabled<br />
 But when you have aliasmaps, aliasdatabase, virtualaliasmaps. Postfix will still try to find the alias name in local. So it fails when it can not find it.</p>
<p>main.cf</p>
<p>master.cf</p>
<p>And Another thing, make sure your hostname is NOT your domain. because It will check hostname first and mx record? I guess.</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/10/postfix-%e3%81%a7%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%83%9e%e3%82%b7%e3%83%b3%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e4%bf%a1%e3%81%97%e3%81%aa%e3%81%84%e3%81%9f%e3%82%81%e3%81%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unpack Ruby Pack</title>
		<link>/en/2009/10/unpack-ruby-pack/</link>
		<comments>/en/2009/10/unpack-ruby-pack/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 09:56:04 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">/en/?p=1219</guid>
		<description><![CDATA[Today someone asked me an interesting question: how can I print a string in hexadecimal in ruby?]]></description>
			<content:encoded><![CDATA[<p>Today someone asked me an interesting question: how can I print a string in hexadecimal in ruby?</p>
<p>The solution that immediately jumped into my mind was something like &#8220;abc&#8221;.map {&#8230;}. The first problem here is #map is based on #each, and String#each will iterate on lines instead of characters. So &#8220;abc&#8221;.map {&#8230;} will have only 1 iteration, which give you access to &#8220;abc&#8221; as a whole inside the iteration.</p>
<p>It&#8217;s natural that I then went to String#each_byte for help. &#8220;abc&#8221;.each_byte {&#8230;} will iterate on characters. The problem with each_byte is its return value is the string itself, instead of the result after processing like map. We can&#8217;t get a one-line solution with each_byte:</p>
<pre class="code">res = []

"abc".each_byte {|i| res &lt;&lt; i}

res.map {|i| i.to_s(16)}</pre>
<p>3 lines for a simple problem! Ugly, right?</p>
<p>Then I remembered the swissarmy knife of ruby: String#unpack. String#unpack takes a string as directives and applies those directives on its caller. Its caller, a string, is used as a (binary) data stream in this process. For example:</p>
<pre class="code">"a".unpack('c') # =&gt; [97]</pre>
<p>&#8216;c&#8217; is a directive which will extract a character as an integer. You can apply many directives at the same time, like:</p>
<pre class="code">"abc".unpack('cH') # =&gt; [97, "6"]</pre>
<p>which will execute &#8216;c&#8217; on the first character, and &#8216;H&#8217; on the second. You can append a number or &#8216;*&#8217; to a directive so it will be executed many times:</p>
<pre class="code">"abc".unpack('c2') # =&gt; [97, 98]

"abc".unpack('c*') # =&gt; [97, 98, 99]</pre>
<p>And String#unpack provides us a directive to extract characters into a hex digit! Here&#8217;s the solution using unpack to my friend&#8217;s question:</p>
<pre class="code">"abc".unpack('H*')</pre>
<p>There are many directives you can use in unpack. Whenever you want to transform a string into another common format, like ascii, base64, please give <a href="http://www.ruby-doc.org/core/classes/String.html#M000760">String#unpack</a> a glance, it may resolve your problem instantly.</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/10/unpack-ruby-pack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A helper method to create a lot of Hash objects</title>
		<link>/en/2009/10/a-helper-method-to-create-a-lot-of-hash-objects/</link>
		<comments>/en/2009/10/a-helper-method-to-create-a-lot-of-hash-objects/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 07:50:25 +0000</pubDate>
		<dc:creator>makoto</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">/en/?p=1209</guid>
		<description><![CDATA[There are some situations in which you need to create a lot of Hash objects, such as creating dummy data for a test or benchmark.
]]></description>
			<content:encoded><![CDATA[<p>There are some situations in which you need to create a lot of Hash objects, such as creating dummy data for a test or benchmark.</p>
<p>For example:</p>
<pre class="code">testdata = [
  { :name =&gt; "Haruhi", :gender =&gt; "F", :role =&gt; "Brigade Leader" },
  { :name =&gt; "Mikuru", :gender =&gt; "F", :role =&gt; "Time Traveler" },
  { :name =&gt; "Yuki",   :gender =&gt; "F", :role =&gt; "Humanoid Interface" },
  { :name =&gt; "Haruhi", :gender =&gt; "M", :role =&gt; "ESPer" },
  { :name =&gt; "Kyon",   :gender =&gt; "M", :role =&gt; "Normal" },
]</pre>
<p>But you may draw a sigh or be tired because you must type same keys many times.</p>
<p>In this case, the following helper method will help you.</p>
<pre class="code">class Hash
  def self.create_with(*keys)
    rows = yield()
    return rows.collect {|row|
      hash = self.new
      keys.zip(row) {|k, v| hash[k] = v }
      hash
    }
  end
end</pre>
<p>Using this helper method, you have to type keys only once.</p>
<pre class="code">testdata = Hash.create_with(:name, :gender, :role) {[
  [ "Haruhi", "F", "Brigade Leader"     ],
  [ "Mikuru", "F", "Time Traveler"      ],
  [ "Yuki",   "F", "Humanoid Interface" ],
  [ "Haruhi", "M", "ESPer"              ],
  [ "Kyon",   "M", "Normal"             ],
]}

p testdata[0]  #=&gt; {:gender=&gt;"F", :role=&gt;"Brigade Leader", :name=&gt;"Haruhi"}</pre>
<p>It is a good idea to use YAML format instead of array of arrays.</p>
<pre class="code">require 'yaml'
arrays = YAML.load &lt;&lt;END
- [ Haruhi, F, Brigade Leader     ]
- [ Mikuru, F, Time Traveler      ]
- [ Yuki,   F, Humanoid Interface ]
- [ Haruhi, M, ESPer              ]
- [ Kyon,   M, Normal             ]
END
testdata = Hash.create_with(:name, :gender, :role) { arrays }

p testdata[0]  #=&gt; {:gender=&gt;"F", :role=&gt;"Brigade Leader", :name=&gt;"Haruhi"}</pre>
<p>I hope this helps your Ruby life.</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/10/a-helper-method-to-create-a-lot-of-hash-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>China Browser Wars: Maxthon now #2</title>
		<link>/en/2009/10/china-browser-wars-maxthon-now-2/</link>
		<comments>/en/2009/10/china-browser-wars-maxthon-now-2/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 13:58:46 +0000</pubDate>
		<dc:creator>sunfmin</dc:creator>
				<category><![CDATA[East meets West]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">/en/?p=1196</guid>
		<description><![CDATA[Introducing our new blog category East Meets West where our techies tell about things that they find interesting happening in the IT world in Asia. Starting it off, Felix sheds some light on the browser wars in China.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.maxthon.com">Maxthon</a>, a China-based freeware web browser for Windows, has taken a 22% market share of the Chinese browser market and has been downloaded by 275 million people, according to data from Net Applications. This places Maxthon ahead of Firefox and is 2nd only after Internet Explorer in the Chinese market.</p>
<p><strong>Maxthon Logo</strong><br />
<a href="http://www.maxthon.com"><br />
<img class="size-full wp-image-1197" title="Maxthonlogo" src="/en/wp-content/uploads/2009/10/Maxthonlogo.png" alt="Maxthonlogo" width="256" height="256" /><br />
</a></p>
<p>According to Jeff Chen, one of the developers of Maxthon, the new version Maxthon 3 will use be a dual core browser using both the <a href="http://en.wikipedia.org/wiki/Trident_(layout_engine)">Trident</a> and <a href="http://en.wikipedia.org/wiki/WebKit">WebKit</a> layout engines.</p>
<p>It was reported that Google had invested at least US$1 million in Maxthon, but this was denied the following day by Chen.</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/10/china-browser-wars-maxthon-now-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internet meets Suica</title>
		<link>/en/2009/09/internet-meets-suica/</link>
		<comments>/en/2009/09/internet-meets-suica/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 01:32:00 +0000</pubDate>
		<dc:creator>anatole</dc:creator>
				<category><![CDATA[East meets West]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">/en/?p=1054</guid>
		<description><![CDATA[I have a good friend in the news business and he is often talking about how or the inability of newspapers to monetize their contents. Here are my ramblings on how I think this could be done.]]></description>
			<content:encoded><![CDATA[<h2>Thoughts on how to monetize online content</h2>
<p>I have a good friend in the news business and he is often talking about how or the inability of newspapers to monetize their contents. Here are my ramblings on how I think this could be done.</p>
<h3>Meet the Suica Card</h3>
<p><a href="/en/wp-content/uploads/2009/09/suica_card_480.jpg"><img class="size-full wp-image-1056" src="/en/wp-content/uploads/2009/09/suica_card_480.jpg" alt="Suica Card" width="320" height="240" /></a></p>
<p>Tokyo transit is made of a mishmash of private companies providing train, subway, bus, trolley and a bunch of other services. When taking a subway from one destination to another you will most likely use more than 1 company to get there. Prior to the Suica it was a real hassle to pay: you had to plan your route in advance, have cash with you and wait in lines to purchase tickets.</p>
<p>Suica changed all this with a common payment platform. It&#8217;s a prepaid card that you touch at the entrance and exit of any transit system and it automatically calculates which company gets what and deducts the price from your card. You can jump on any combination of train, bus, bullet train, taxi, or trolley and it always works. I never wait in a line, never worry about having change in my pocket, and don&#8217;t really even think about how much it costs. I just know I need to fill it up when it gets a bit low which I can do at easily at numerous locations. I use Tokyo transit more.</p>
<p><a href="/en/wp-content/uploads/2009/09/mobile_suica.jpg"><img class="aligncenter size-full wp-image-1057" src="/en/wp-content/uploads/2009/09/mobile_suica.jpg" alt="mobile_suica" width="359" height="269" /></a></p>
<p>Suica is also available in different digital formats. In the picture above, it has been integrated into digital phones so you don&#8217;t even need a card.</p>
<h3>How this could be introduced to the Internet</h3>
<p>Probably doesn&#8217;t need much imagination to see how to implement this on the Internet, but I&#8217;ll jot down how I could imagine this going&#8230;</p>
<h3>Start with a few big guys</h3>
<p>You set up a payment platform and get a few big guys to join, say the NY Times, the Washington Post and a few other nice big media outlets: you&#8217;ll need some critical mass and visibility in the beginning. I&#8217;m not a lawyer, but I couldn&#8217;t imagine any legal issues with this related to any anti-trust laws:  the price is not fixed, just a payment platform is provided.</p>
<p>A great deal of customization should be provided over how their customers pay. Weekly, by page, after customers have viewed x pages/day or week, and so on. Media outlets could make their contents freely available except to the heaviest users or could lock it up tight. They could charge a little or a lot. It&#8217;s up to them. In general, though, it should probably feel nominal and under the financial radar of most users.</p>
<h3>Then open it up to all content/application providers as a alternative to ad-based contents</h3>
<p>Allow anyone that wants to join, join. You think your blog is valuable? You got an amazing web application that people use but you don&#8217;t have an good way to monetize? You would now have an easy way to charge readers $.01 per page view or whatever you think it&#8217;s worth.</p>
<h3>How to pay</h3>
<p>There should be a common platform open to all content providers that would make it easy for users to get on and off paid websites with no hassle for paying. Prepaid or postpaid would both work: credit card, added to your phone bill, a prepaid card you buy at the convenience store, etc. Apple already does this to some extent with iTunes, offering credit card accounts, prepaid cards, and gift certificates.</p>
<h3>Suica beats subscription</h3>
<p>The Internet is a mishmash of millions of content providers. Subscription doesn&#8217;t really make sense in this environment. Just like I don&#8217;t want to subscribe to just the JR and Kintetsu subway line when I don&#8217;t know which of the many different transportation vendors I will use each month, I don&#8217;t want to pick just a few websites to subscribe to, when I don&#8217;t know in advance what routes I want to travel on the net.</p>
<h3>Implementation</h3>
<p>For vendors, It will probably be something as easy as adding meta tag in your code and configuring preferences with the payment platform provider(s). For clients, I imagine the best solution would be something built into the browser that is visible but unobtrusive to show you if a site is free, you are using a free trial, but it is a paid site, or you are being charged. Settings should probably allow you to not require confirmation for sites that cost &lt; $X. I believe most people don&#8217;t mind paying for quality contents, they just don&#8217;t want to be bothered much by the inconvenience of the payment process itself.</p>
<h3>It is a brighter, not darker world</h3>
<p>Like everyone else, I like quality contents. I want more people and organizations to write more great stuff, produce amazing applications and get paid for their ideas and contributions. Just like payment platform of iTunes App Store spurs the production of quality iPhone apps, a payment platform for content providers will spur the development of quality contents.</p>
<h3>A corollary: make payment Marxist</h3>
<p>Why charge someone from Belize the same as someone from Berkley? Cost of distributing contents is basically free so it should be accessible as much as possible and adjusted to ability to pay. For example, the content provider could say their contents are free for public institutions such as libraries and schools and for countries under a certain threshold. If possible, even adjust the price on an individual level on the ability to pay, much like riding the train costs less for passengers with lower incomes. It&#8217;s fairer and will make more money for the content provider in the end as well. However, like everything I&#8217;m suggesting here, it should be up to the content provider to make these decisions.</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/09/internet-meets-suica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Demaecan</title>
		<link>/en/2009/07/damaecan/</link>
		<comments>/en/2009/07/damaecan/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 01:15:57 +0000</pubDate>
		<dc:creator>joseph</dc:creator>
				<category><![CDATA[news]]></category>

		<guid isPermaLink="false">/en/?p=72</guid>
		<description><![CDATA[So-called Web 2.0 services are supposed to be stylish and cool. They certainly are not supposed to have anything to do with delivering food lest they end up in the annals of history. So Demaekan is not 2.0, but it is.]]></description>
			<content:encoded><![CDATA[<p>So-called Web 2.0 services are supposed to be stylish and cool.  They are supposed to harness the wisdom of crowds, the long tail, freakanomics, social bookmarks, tags, widgets, AJAX, open APIs, missing vowels, and wacky names.  And they certainly aren&#8217;t supposed to have anything to do with delivering food lest they end up in the annals of <a href="http://en.wikipedia.org/wiki/Webvan">history</a>. So Demae-can is not 2.0.</p>
<p><img class="alignnone size-full wp-image-683" title="demaecan" src="/en/wp-content/uploads/2009/06/demaecan.gif" alt="demaecan" width="210" height="74" /></p>
<p>Demaecan (&#8221;Delivery House&#8221;) is a delivery service aggregator which provides a standard pc and mobile front end for browsing and ordering.  You sign up, set your address, see the services in your area, and order.  Thirty minutes later, you are enjoying a delicious omelet curry and a can of beer.  From my apartment in West Tokyo I can order from: two bento shops, four pizza places, four sushi chains, one chinese restaurant, two western restaurants, two curry places, a liquor store, a supermarket, a flower store, seven plumbers, five locksmiths, three window repairmen, two mechanics, two maid services, three computer repair services, and a massage service (not <em>that</em> kind!). Demae-can currently has nearly 1 million registered members, yearly sales over 649,000,000 Yen (5.74 Million USD), and 90%+ marketshare in Japan&#8217;s online food delivery market.  But why are they so successful?</p>
<p><img class="alignnone size-full wp-image-684" title="demaecanmenu" src="/en/wp-content/uploads/2009/06/demaecanmenu.jpg" alt="demaecanmenu" width="265" height="386" /></p>
<p>I think it&#8217;s because they did not set out to build an Amazon-esque delivery infrastructure or co-ordinate their own system of meta-delivery drivers like WebVan.  They simply function as the middleman.  Demae-can takes the order from the customer, passes it to the company (sometimes by fax), and provides customer service on either end of the transaction.  Restaurants receive increased revenue in exchange for flat monthly plus per transaction fees. It&#8217;s also taken years of sales, partnerships, and outside investment to get where they are today.  Demae-can can now be found on many of Japan&#8217;s major restaurant-related free publications and websites. Yahoo Japan has heavily invested in the site to the point that it now owns over 40% of Demae-can&#8217;s parent company.</p>
<p>Demae-can currently faces no major competitors and is firmly entrenched in the market. I&#8217;ll be watching to see if anyone challenges them in the near future, but at this point I&#8217;m doubtful. And if anyone does, I bet they&#8217;ll be armed with a bunch of salesmen and no more than a drop of AJAX.</p>
<p>Yoroshiku!</p>
<p>Joseph</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/07/damaecan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git-svn: Can&#8217;t locate SVN/Core.pm</title>
		<link>/en/2009/07/git-svn-cant-locate-svncore-pm/</link>
		<comments>/en/2009/07/git-svn-cant-locate-svncore-pm/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 04:03:22 +0000</pubDate>
		<dc:creator>sunfmin</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">/en/?p=856</guid>
		<description><![CDATA[To import subversion repository to git, I get the following problem

Installing of the perl subversion binding solved this problem.

]]></description>
			<content:encoded><![CDATA[<p>To import subversion repository to git, I get the following problem</p>
<p><script src="http://gist.github.com/146704.js"></script></p>
<p>Installing of the perl subversion binding solved this problem.</p>
<p><script src="http://gist.github.com/146706.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/07/git-svn-cant-locate-svncore-pm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install your own ssl certificate</title>
		<link>/en/2009/07/install-your-own-ssl-certificate/</link>
		<comments>/en/2009/07/install-your-own-ssl-certificate/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 03:57:09 +0000</pubDate>
		<dc:creator>sunfmin</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">/en/?p=853</guid>
		<description><![CDATA[First you must create your ssl certificate

You setup your certificate in apache config file

]]></description>
			<content:encoded><![CDATA[<p>First you must create your ssl certificate</p>
<p><script src="http://gist.github.com/146701.js"></script></p>
<p>You setup your certificate in apache config file</p>
<p><script src="http://gist.github.com/146702.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/07/install-your-own-ssl-certificate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tell postfix not to send email to local</title>
		<link>/en/2009/07/tell-postfix-not-to-send-email-to-local/</link>
		<comments>/en/2009/07/tell-postfix-not-to-send-email-to-local/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 03:49:00 +0000</pubDate>
		<dc:creator>sunfmin</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">/en/?p=850</guid>
		<description><![CDATA[We want to config the server can only send emails, can NOT receive emails from local or remote. Because our domain is pointed to this server, But our email server is on Google Enterprise. So before If we want to send email from the server, It first looks up locally, and send to local directly, [...]]]></description>
			<content:encoded><![CDATA[<p>We want to config the server can only send emails, can NOT receive emails from local or remote. Because our domain is pointed to this server, But our email server is on Google Enterprise. So before If we want to send email from the server, It first looks up locally, and send to local directly, So emails never get reach to Google.</p>
<p>I tried: http://www.postfix.org/faq.html#null_client But I seems not work.</p>
<p>After check out the postfix log:</p>
<p><script src="http://gist.github.com/146697.js"></script></p>
<p>Even you set</p>
<p>local_transport = error:local delivery is disabled<br />
 But when you have aliasmaps, aliasdatabase, virtualaliasmaps. Postfix will still try to find the alias name in local. So it fails when it can not find it.</p>
<p>main.cf</p>
<p><script src="http://gist.github.com/146699.js"></script></p>
<p>master.cf</p>
<p><script src="http://gist.github.com/146700.js"></script></p>
<p>And Another thing, make sure your hostname is NOT your domain. because It will check hostname first and mx record? I guess.</p>
]]></content:encoded>
			<wfw:commentRss>/en/2009/07/tell-postfix-not-to-send-email-to-local/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

