<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5076587299313286403</id><updated>2024-09-06T14:43:41.135-07:00</updated><title type='text'>Psst</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-5113670060496335394</id><published>2017-02-11T18:01:00.003-08:00</published><updated>2017-02-11T18:16:46.626-08:00</updated><title type='text'>Comparing renting versus buying</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you are happy renting a place for $2000 a month, does it make financial sense buying that $1,000,000 home down the street? &amp;nbsp;Let&#39;s compare the two scenarios.&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Scenario 1: renting for 30 years&lt;/h2&gt;
Assuming:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Rent is $2000 a month now, growing at 5% a year.&lt;/li&gt;
&lt;li&gt;The stock market is growing at 10% year.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Renting for 30 years costs roughly: sum(24000 * 1.05**i * 1.1**(30-i) for i in range(30)) =&amp;gt; $7M.&lt;/div&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Scenario 2: buying a place and living in it for 30 years&lt;/h2&gt;
&lt;div&gt;
Assuming:&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Buying a place for $1M&amp;nbsp;leaves annual payment of&amp;nbsp;5,368.22 * 12 =&amp;nbsp;64,418.64.&lt;/li&gt;
&lt;li&gt;Mortgage interest of 5%.&lt;/li&gt;
&lt;li&gt;House is appreciating at 5%.&lt;/li&gt;
&lt;li&gt;Taxes are 1% and going up by 2% a year.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Over time:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Cost of the house comes out to:&amp;nbsp;sum(64418.64 * 1.1**i for i in range(30)) =&amp;gt; $10.6M.&lt;/li&gt;
&lt;li&gt;The house is now worth&amp;nbsp;1000000*1.05**30 =&amp;gt; $4.3M.&lt;/li&gt;
&lt;li&gt;Taxes:&amp;nbsp;sum(10000 * 1.02**i * 1.1**(30-i) for i in range(30)) =&amp;gt; $2.1M&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}
span.s1 {font-variant-ligatures: no-common-ligatures}
&lt;/style&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/5113670060496335394/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/5113670060496335394' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/5113670060496335394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/5113670060496335394'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2017/02/comparing-renting-versus-buying.html' title='Comparing renting versus buying'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-6770112416339375688</id><published>2009-09-07T17:47:00.000-07:00</published><updated>2009-09-07T19:49:53.211-07:00</updated><title type='text'>Cloud computing vs. traditional hosting</title><content type='html'>Over the course of the last year, I&#39;ve had a few conversations with people about the difference between cloud computing and traditional hosting.  I&#39;ve come to realize that cloud computing can really be thought of as a natural evolution of the hosting industry, where traditional hosting was the first step.  A cloud computing provider usually supports a much wider variety of services on top of traditional hosting.  &lt;a href=&quot;http://www.cloudhosting.co.uk/content/differences-between-hosting-and-cloud-hosting&quot;&gt;This article&lt;/a&gt; does a good job explaining some of the differences.  Perhaps the following analogy is appropriate: buying the services of a traditional hosting provider is like renting a set of electricity generators, whereas a cloud computing provider provides an electric power grid.  The idea is that a cloud computing provider makes it extra easy to treat computing resources like a pay-as-you-go utility service.&lt;br /&gt;&lt;br /&gt;What then are the extra services that takes cloud computing one step beyond traditional hosting?  Here are a few:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Load balancing&lt;/b&gt;: a flexible set of computing resources can all be transparently load-balanced behind a virtual router.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Content Delivery&lt;/b&gt;: the work done by a &lt;a href=&quot;http://en.wikipedia.org/wiki/Content_delivery_network&quot;&gt;content delivery network&lt;/a&gt; can all be done transparently by a cloud computing provider, such as &lt;a href=&quot;http://aws.amazon.com/cloudfront/&quot;&gt;Amazon CloudFront&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Failover&lt;/b&gt;: if your data is load-balanced between multiple data centers, and one data center goes offline, a cloud computing provider should be able to failover the traffic from one to the others.  (If they can&#39;t now, they should provide this service. :))&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Scalability&lt;/b&gt;: the number of compute resources used should automatically scale up or down based on demand.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Tooling&lt;/b&gt;: with the advent of mainstream cloud computing providers, the tooling has improved tremendously.  For example, Windows Azure tools allow developers to test everything out locally and easily deploy to the cloud, and thus enabling people to easily build scalable services.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Last, but not least, everything above is geared towards businesses.  What about cloud-computing for consumers?  In that space, it&#39;s the applications that drive a platform--applications such as Microsoft&#39;s &lt;a href=&quot;http://www.mesh.com&quot;&gt;Live Mesh&lt;/a&gt;, &lt;a href=&quot;https://ubuntuone.com/&quot;&gt;ubuntu one&lt;/a&gt;, etc.</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/6770112416339375688/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/6770112416339375688' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/6770112416339375688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/6770112416339375688'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2009/09/cloud-computing-vs-traditional-hosting.html' title='Cloud computing vs. traditional hosting'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-6814293739296441754</id><published>2008-05-19T14:06:00.000-07:00</published><updated>2008-05-19T14:12:37.420-07:00</updated><title type='text'>Response to smithj´s post regarding update schemes</title><content type='html'>&lt;a href=&quot;http://blog.freethemallocs.com/&quot;&gt;smithj&lt;/a&gt; &lt;a href=&quot;http://blog.freethemallocs.com/wordpress/2008/05/19/9/&quot;&gt;stated&lt;/a&gt; that my appliance update proposal rests on the assumption that configuration data can be easily separated from the operating system.  This is true and I believe it is doable.&lt;br /&gt;&lt;br /&gt;First, let me define what I mean by configuration.  We do not have to treat all files in &lt;span style=&quot;font-style: italic;&quot;&gt;/etc&lt;/span&gt; as configuration data.  For example, if my appliance ships with samba functionality, but it does not allow configuration of samba by the end user, then for all intents and purposes, from my appliance´s perspective, &lt;span style=&quot;font-style: italic;&quot;&gt;/etc/samba/smb.conf&lt;/span&gt; is not a configuration file.  Configuration data corresponds only to settings that the ISV allows the end user to change.  (This should be a very limited set by the way.  If I had a hundred dials on my microwave oven, I´d never figure out how to use it.  The same goes for TiVO--the limited number of user-configurable options works.)&lt;br /&gt;&lt;br /&gt;The only configuration that an end user should be performing on an appliance is through the appliance web interface.  Since the ISV has full control over all configuration data, it can choose to put it all in a database on a separate partition, which achieves the separation of configuration from the operating system.&lt;br /&gt;&lt;br /&gt;smithj´s example of the end user needing to write a cron script is not realistic because most appliance users should not need to know what cron is.  However, suppose that the ISV implemented scheduling capability based on cron and needed to configure cron dynamically.  Then the ISV-provided program will need to store this configuration in its database for easy queryability, and then write a file out to &lt;span style=&quot;font-style: italic;&quot;&gt;/etc/cron.d/&lt;/span&gt;.  These are things the program should do regardless.  The only extra step that needs to be taken in the Amazon EC2 world is to redo the write out to &lt;span style=&quot;font-style: italic;&quot;&gt;/etc/cron.d/&lt;/span&gt; on every reboot, which isn´t very hard.  (Note that Amazon EC2´s root file system is not read-only, but you can think of it as a read-only operating system partition with a read-write tmpfs partition layered on top with UnionFS.)&lt;br /&gt;&lt;br /&gt;In this world where the ISV manages all configurable data, why not maintain it in a separate location from the operating system and make upgrades as easy as swapping the OS image?&lt;br /&gt;&lt;br /&gt;Two additional points to smithj:&lt;br /&gt;- merges are nice in theory but bad in practice because in the event of a merge failure neither the end user nor the ISV has a tool to rectify it.&lt;br /&gt;- you are not the target audience of an ISV. ;)</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/6814293739296441754/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/6814293739296441754' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/6814293739296441754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/6814293739296441754'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/response-to-smithjs-post-regarding.html' title='Response to smithj´s post regarding update schemes'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-3453408833277214261</id><published>2008-05-19T11:00:00.000-07:00</published><updated>2008-12-12T21:57:27.883-08:00</updated><title type='text'>Microformats</title><content type='html'>&lt;a href=&quot;http://microformats.org/&quot;&gt;Microformats&lt;/a&gt; are an easy way to integrate semantic meaning into web pages.  It´s already being adopted by popular websites.  Firefox has an add-on called &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4106&quot;&gt;Operator&lt;/a&gt; that can parse it automatically.&lt;br /&gt;&lt;br /&gt;For example, here is the Digg profile page for &lt;a href=&quot;http://digg.com/users/jon1012&quot;&gt;jon1012&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXV6JcUtHakFg3Ozw7eBMO4f1lyogGW9RiQMMoGA6bwMRS53L0K_6h7u8KywHI0CBbBEfR8wPpyfisMHJ6hCqPPD4ZLmGD1ymj3-36AeJY_zV-2lItg2G3S9xhSvaaWccntHZnd7eHWLfY/s1600-h/2506273664_0978c1b2be_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXV6JcUtHakFg3Ozw7eBMO4f1lyogGW9RiQMMoGA6bwMRS53L0K_6h7u8KywHI0CBbBEfR8wPpyfisMHJ6hCqPPD4ZLmGD1ymj3-36AeJY_zV-2lItg2G3S9xhSvaaWccntHZnd7eHWLfY/s320/2506273664_0978c1b2be_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206396766838787490&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Operator parsed the embedded &lt;a href=&quot;http://en.wikipedia.org/wiki/HCard&quot;&gt;hCard&lt;/a&gt; automatically and gave me the opportunity to export his contact information as a vCard.&lt;br /&gt;&lt;br /&gt;The snippet of HTML looks like&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;div class=&quot;vcard&quot;&amp;gt;&lt;br /&gt;&amp;lt;div class=&quot;vcard-side&quot;&amp;gt;&lt;br /&gt;&amp;lt;img class=&quot;photo&quot; src=&quot;/users/jon1012/h.png&quot;&lt;br /&gt; alt=&quot;jon1012&quot; width=&quot;120&quot; height=&quot;120&quot; alt=&quot;&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;h2&amp;gt;&amp;lt;span class=&quot;fn&quot;&amp;gt;jon1012&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;div class=&quot;profile-location&quot;&amp;gt;A  person from&lt;br /&gt;&amp;lt;span class=&quot;adr&quot;&amp;gt;&amp;lt;span class=&quot;locality&quot;&amp;gt;Paris, France&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;  who joined Digg on December 7th, 2005&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here´s an example with Google Maps.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgodBHbxC-NiGOqJZ0unNZ2HXYiNYi_fqrYPrqhsU4vSgmAh9t6uS-oR3ok7wgQ7QGWn13FIL2JO6dc6qxDADcErD1xo7SUVh-hJq1feP5PQS5Ds4xpFOqRiRSsfMRaGVeUkCJZX6ZScB2Y/s1600-h/2506374422_251ff41e71_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgodBHbxC-NiGOqJZ0unNZ2HXYiNYi_fqrYPrqhsU4vSgmAh9t6uS-oR3ok7wgQ7QGWn13FIL2JO6dc6qxDADcErD1xo7SUVh-hJq1feP5PQS5Ds4xpFOqRiRSsfMRaGVeUkCJZX6ZScB2Y/s320/2506374422_251ff41e71_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206397200630484402&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and wikipedia&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQPg2HK4qjCL4UQSAQsPj8Zb_0v6H2GW017JGyJ5CBdXfVTl-oXuS8a0yoNAewBV8ku5sfHHBvD6Go9OmpPlEzuFhF-iytys9krojW43YH-wpdICS3ieqpfS8hW99vGQnDbBN0OSnuHZ5T/s1600-h/2505574129_5b3507276b_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQPg2HK4qjCL4UQSAQsPj8Zb_0v6H2GW017JGyJ5CBdXfVTl-oXuS8a0yoNAewBV8ku5sfHHBvD6Go9OmpPlEzuFhF-iytys9krojW43YH-wpdICS3ieqpfS8hW99vGQnDbBN0OSnuHZ5T/s320/2505574129_5b3507276b_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206397552817802690&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/pikkewyn/2505574129/&quot; title=&quot;Microformats on Wikipedia&quot;&gt;&lt;br /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/3453408833277214261/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/3453408833277214261' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/3453408833277214261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/3453408833277214261'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/microformats.html' title='Microformats'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXV6JcUtHakFg3Ozw7eBMO4f1lyogGW9RiQMMoGA6bwMRS53L0K_6h7u8KywHI0CBbBEfR8wPpyfisMHJ6hCqPPD4ZLmGD1ymj3-36AeJY_zV-2lItg2G3S9xhSvaaWccntHZnd7eHWLfY/s72-c/2506273664_0978c1b2be_o.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-4849946394198350843</id><published>2008-05-18T23:00:00.000-07:00</published><updated>2008-12-12T21:57:29.209-08:00</updated><title type='text'>Using Windows CardSpace</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd273FlMXqTaY2lX6EgYFO9s1QJBoOCnU9HVzdAWa97Aqt3OPvLPqshmwESiUZBHLual4GzwnMEFLB6hCLiWKcXptYoVplX6NhEWIr0E2BLQ5Xxy1MGcRktt-x19h-VgH9UHe4KX62aUx/s1600-h/2503958981_69c9202ec7_o.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd273FlMXqTaY2lX6EgYFO9s1QJBoOCnU9HVzdAWa97Aqt3OPvLPqshmwESiUZBHLual4GzwnMEFLB6hCLiWKcXptYoVplX6NhEWIr0E2BLQ5Xxy1MGcRktt-x19h-VgH9UHe4KX62aUx/s320/2503958981_69c9202ec7_o.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206402552159735410&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Windows CardSpace is a feature of the  .NET framework that manages &lt;a href=&quot;http://en.wikipedia.org/wiki/Information_Card&quot;&gt;information cards&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One use-case is to associate a card with an online account so you can use this to log onto the site in the future.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-f_D-VgorEQMPFbphBQWSSGC_sZ328-iGn_n10bRSKt0Yv9ATdfV1u9ln4TuSA4jLYOz15S0qzmPawn5yFV3iVOtespLLZhIoVJAfdo3_CpipcG0kj_WAjCPFXPiYSoePbsTtu7HbgBkK/s1600-h/2504854982_3c09c7d3dc_o.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-f_D-VgorEQMPFbphBQWSSGC_sZ328-iGn_n10bRSKt0Yv9ATdfV1u9ln4TuSA4jLYOz15S0qzmPawn5yFV3iVOtespLLZhIoVJAfdo3_CpipcG0kj_WAjCPFXPiYSoePbsTtu7HbgBkK/s320/2504854982_3c09c7d3dc_o.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206402874282282626&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When the website requests a card, CardSpace will first display information about the site.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSmlYJhCZZ4XQ0ybHS-FJeJTUYZhVcr2_68FdC_GqB36VTpy83f8JXP9DjJyloTor8xJRCcWjcXy5boEJliDcH2FpbblNRwaXQM_I9Pu7eX8cPvtniQ02jSBPXKTMFTwUSP_yTf5KfXCzk/s1600-h/2504854986_8ccb407404_o.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSmlYJhCZZ4XQ0ybHS-FJeJTUYZhVcr2_68FdC_GqB36VTpy83f8JXP9DjJyloTor8xJRCcWjcXy5boEJliDcH2FpbblNRwaXQM_I9Pu7eX8cPvtniQ02jSBPXKTMFTwUSP_yTf5KfXCzk/s320/2504854986_8ccb407404_o.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206403028901105298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the first time through, you have no cards.  You may create a &lt;span style=&quot;font-weight: bold;&quot;&gt;personal card&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTUISw6MslPu7GE_KvQZV1pNoKjUePhdCgD-wjiOa2i7hSG5pFoGiSW_It8v50HIeq3GX9WPWBQzJbr3msvDprP4GVp4K3m8rqW9PCLRWYjf5FoayhgXzZWQO9fLw5Bf3cfltEkGBH_8w6/s1600-h/2504854990_eaf0b15032_o.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTUISw6MslPu7GE_KvQZV1pNoKjUePhdCgD-wjiOa2i7hSG5pFoGiSW_It8v50HIeq3GX9WPWBQzJbr3msvDprP4GVp4K3m8rqW9PCLRWYjf5FoayhgXzZWQO9fLw5Bf3cfltEkGBH_8w6/s320/2504854990_eaf0b15032_o.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206403222174633634&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiDB9QVE6AhZL4g6buLouHq0QBBMFNzaKph6f3S3RS1z5zZn1wfL9UOx9IS2o0DiFdqDbBNbDFakCbkk4u9_fW64m8fWH9RMQBUKSeExGv9_Z9nEza06ZTxpoYBAY1QB8FDhMo5ak3y1DG/s1600-h/2504854994_e468fc8e37_o.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiDB9QVE6AhZL4g6buLouHq0QBBMFNzaKph6f3S3RS1z5zZn1wfL9UOx9IS2o0DiFdqDbBNbDFakCbkk4u9_fW64m8fWH9RMQBUKSeExGv9_Z9nEza06ZTxpoYBAY1QB8FDhMo5ak3y1DG/s320/2504854994_e468fc8e37_o.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206403385383390898&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When done, send it to the relying party.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMKN9Df09Hq3N0hLjI1074qjjE3sp-VzF6UGcSwDqdoM7IC8Ufmf1P_pHfhiRQVUtK5WvYctivZO8vMrq5h3zCNa4q1LmT0P8xJT4fCiZM40McfIYZ5HK7HH7uzfBOqJnYeK09C0HxWDNv/s1600-h/2504854996_ce087b877d_o.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMKN9Df09Hq3N0hLjI1074qjjE3sp-VzF6UGcSwDqdoM7IC8Ufmf1P_pHfhiRQVUtK5WvYctivZO8vMrq5h3zCNa4q1LmT0P8xJT4fCiZM40McfIYZ5HK7HH7uzfBOqJnYeK09C0HxWDNv/s320/2504854996_ce087b877d_o.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206403527117311682&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unlike the personal card created above, &lt;span style=&quot;font-weight: bold;&quot;&gt;Managed cards&lt;/span&gt; are issued by a separate identity provider.  In that case, import the card.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLO68c6Wa5zYmr1SZf8kugf9mgOEuagyZD-Fnb4FoNBKSY-Q4excErO1XHhXPVFW2tES8gH2mS_nWeIcITC3kYiPz0VyCrdtOxnBnBuAM6N_5AQ-Ze95VWt2wGgUoDSaGmJFpBzOHe4iu/s1600-h/2504854998_23fb594b10_o.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLO68c6Wa5zYmr1SZf8kugf9mgOEuagyZD-Fnb4FoNBKSY-Q4excErO1XHhXPVFW2tES8gH2mS_nWeIcITC3kYiPz0VyCrdtOxnBnBuAM6N_5AQ-Ze95VWt2wGgUoDSaGmJFpBzOHe4iu/s320/2504854998_23fb594b10_o.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206403634491494098&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When a relying party requests a managed card, your computer will in turn request validation from the identity provider.  A resulting token with the blessing of the identity provider is sent to the relying party.  This is a mechanism by which authentication and authorization can be off-loaded to a third-party.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW60npRWYRhN2YeDwYEXn7Bwj4fVFG8EmHS-TzV7vnLSivgTjTlpxeD-Ja48OgrEoqJOl-5Dnv_wk2xaCOqawRzb7qaWFnE_vkNxEGeqUBxoblqs9-uWUcasxW1DyajWQTR0pjklWlsplO/s1600-h/2504915772_37929bd19d_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW60npRWYRhN2YeDwYEXn7Bwj4fVFG8EmHS-TzV7vnLSivgTjTlpxeD-Ja48OgrEoqJOl-5Dnv_wk2xaCOqawRzb7qaWFnE_vkNxEGeqUBxoblqs9-uWUcasxW1DyajWQTR0pjklWlsplO/s320/2504915772_37929bd19d_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206403746160643810&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/pikkewyn/2504915772/&quot; title=&quot;CardSpace: managed card&quot;&gt;&lt;br /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/4849946394198350843/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/4849946394198350843' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/4849946394198350843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/4849946394198350843'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/using-windows-cardspace.html' title='Using Windows CardSpace'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd273FlMXqTaY2lX6EgYFO9s1QJBoOCnU9HVzdAWa97Aqt3OPvLPqshmwESiUZBHLual4GzwnMEFLB6hCLiWKcXptYoVplX6NhEWIr0E2BLQ5Xxy1MGcRktt-x19h-VgH9UHe4KX62aUx/s72-c/2503958981_69c9202ec7_o.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-8387780732562079948</id><published>2008-05-17T21:35:00.000-07:00</published><updated>2008-05-17T21:36:09.315-07:00</updated><title type='text'>Amazon EC2 makes traditional updates obsolete for appliances</title><content type='html'>Linux distributions are obsessed with updates, and rightly so, given the frequent nature of security fixes that must be published.  When Linux-based software appliances became popular in the last couple of years, the update paradigm was brought along for the ride.  Package manager or system manager software runs on the appliance, and either automatically or at the user´s request updates the entire appliance to a version published by an ISV.&lt;br /&gt;&lt;br /&gt;Package managers are big and complex beasts with not a small chance of failing in the middle of an update.  Though unlikely, there is also a non-zero chance of such kind of failure being disasterous, rendering the appliance unbootable.  Instead of dealing with the downtime and uncertainty associated with updates, the unique nature of the appliance model combined with the power of cloud computing offered by Amazon EC2 renders traditional updates via package managers obsolete.&lt;br /&gt;&lt;br /&gt;Before delving into the future of appliance updates, consider how a typical home appliance such as a router or the TiV does updates.  These hardware appliances contain special flash ROM that holds firmware.  User configuration data is stored in a different location.  When a manufacturer releases a firmware update, users download the entire firmware and replace it in one piece.  This update mechanism is dead simple and fairly failsafe.&lt;br /&gt;&lt;br /&gt;Applying this paradigm to the virtual appliance world, the firmware is the operating system.  When deployed on Amazon EC2, the ISV may simply publish all of their appliance versions as templates.  Their users associate their own data partition with the common operating system template such that the operating system (firmware) is read-only and all user-specific data is placed in the data partition.  When the time comes to update it, the user may simply associate a newer operating system template with the same data partition.  If a database schema needs to be migrated to work with the newer OS version, take a backup snapshot of the data partition and run an ISV-supplied migration script first.  That was easy, wasn´t it?&lt;br /&gt;&lt;br /&gt;R.I.P. traditional package managers.  Virtualization ushers in a new way of updating appliances that offers shorter downtime and is less error-prone.</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/8387780732562079948/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/8387780732562079948' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/8387780732562079948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/8387780732562079948'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/amazon-ec2-makes-traditional-updates.html' title='Amazon EC2 makes traditional updates obsolete for appliances'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-8392225091907329246</id><published>2008-05-17T19:12:00.000-07:00</published><updated>2008-12-12T21:57:29.579-08:00</updated><title type='text'>Ubuntu Live from HD</title><content type='html'>I followed the instruction at &lt;a href=&quot;https://help.ubuntu.com/community/Installation/FromLinux&quot;&gt;https://help.ubuntu.com/community/Installation/FromLinux&lt;/a&gt; to install from hard drive using the contents of a LiveCD image.  Everything worked flawlessly.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Ej8WQ3oPCFPGQUI22YwcIIlumq9hB7GW5kRLUGdTOvcbioIx_-vir1esF2cUapw2CDnPlEaeALky3yJPBLfiK58XhCGKOGW13DhesqKcKJQpJ13_OA16sPirFjjbea1qaaKaAAMlX8U4/s1600-h/2500392558_d0be241ee7_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Ej8WQ3oPCFPGQUI22YwcIIlumq9hB7GW5kRLUGdTOvcbioIx_-vir1esF2cUapw2CDnPlEaeALky3yJPBLfiK58XhCGKOGW13DhesqKcKJQpJ13_OA16sPirFjjbea1qaaKaAAMlX8U4/s320/2500392558_d0be241ee7_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206401194950069826&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCz7-pEA9ZyHDY6AjSaklAu4kfw-6BGScYTrs3x84wDEfTNqebWohgt7MDe50a3kFEdMERQnTCp2lTm7cCBxuqTrzjnVYhmePhaueCMEBRbHqs-M31fpr0fVxvTBzOcreNkO1LsqD006XF/s1600-h/2500392566_bc835f9d28_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCz7-pEA9ZyHDY6AjSaklAu4kfw-6BGScYTrs3x84wDEfTNqebWohgt7MDe50a3kFEdMERQnTCp2lTm7cCBxuqTrzjnVYhmePhaueCMEBRbHqs-M31fpr0fVxvTBzOcreNkO1LsqD006XF/s320/2500392566_bc835f9d28_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206401250784644690&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0lRaNV42i6400ZsX8Cg6NzeErNM1JahI3BV7Vrce4W1-Gg2INvinZoGzPwKivuKffO9BuJ_mcvUbO3ppQFT7TJErGr0HS2fGM05cJIE6IbnV5l2LnmN3p0yalnYfWd6dJ6SXFicaBJVnm/s1600-h/2500396482_355687549d_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0lRaNV42i6400ZsX8Cg6NzeErNM1JahI3BV7Vrce4W1-Gg2INvinZoGzPwKivuKffO9BuJ_mcvUbO3ppQFT7TJErGr0HS2fGM05cJIE6IbnV5l2LnmN3p0yalnYfWd6dJ6SXFicaBJVnm/s320/2500396482_355687549d_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206401340978957922&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/pikkewyn/2500396482/&quot; title=&quot;Installing by pikkewyn&quot;&gt;&lt;br /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/8392225091907329246/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/8392225091907329246' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/8392225091907329246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/8392225091907329246'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/ubuntu-live-from-hd.html' title='Ubuntu Live from HD'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Ej8WQ3oPCFPGQUI22YwcIIlumq9hB7GW5kRLUGdTOvcbioIx_-vir1esF2cUapw2CDnPlEaeALky3yJPBLfiK58XhCGKOGW13DhesqKcKJQpJ13_OA16sPirFjjbea1qaaKaAAMlX8U4/s72-c/2500392558_d0be241ee7_o.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-185514997497395655</id><published>2008-05-16T22:41:00.000-07:00</published><updated>2008-12-12T21:57:30.115-08:00</updated><title type='text'>The future of desktop virtualization?</title><content type='html'>The newest VMware Workstation beta (6.5) contains a nice new feature called &lt;a href=&quot;http://www.vmware.com/products/beta/ws/releasenotes_ws65_beta.html&quot;&gt;Unity&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It allows graphical applications from the host and the guest systems to run more seamlessly side-by-side.&lt;br /&gt;&lt;br /&gt;To use it, make sure it is enabled in the virtual machine settings.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdD44lji8n9JQRb6oJ-V8Ibs08WoaSy2qaedceY2C1BV1e9bwDwztlFPi3hnTHKLv_A6fLKUc8r0ll1MkTb0BCUFjPrj6L8WO46rs4ZGhfJuwyZ_KZCA0cef-WsMB5Brzf7l-b8Ai-vySx/s1600-h/2498832658_3b51c60140_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdD44lji8n9JQRb6oJ-V8Ibs08WoaSy2qaedceY2C1BV1e9bwDwztlFPi3hnTHKLv_A6fLKUc8r0ll1MkTb0BCUFjPrj6L8WO46rs4ZGhfJuwyZ_KZCA0cef-WsMB5Brzf7l-b8Ai-vySx/s320/2498832658_3b51c60140_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206400301596872226&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then enable it in the &lt;span style=&quot;font-style: italic;&quot;&gt;view&lt;/span&gt; menu.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSv1mKieUR2uxofPVXNMkv0ib6EeRAyX4ZeooTl_caAsNE2Ykjf7ZIwhLEmpe3U8HgDJn6AC03P_TLmit5PEdMF2Ho3YunPpX7nkY-rO157nXhZWzIt6h4Ep14w-E7_fLpq2-PREKckyis/s1600-h/2498011383_5ea63fb5f0_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSv1mKieUR2uxofPVXNMkv0ib6EeRAyX4ZeooTl_caAsNE2Ykjf7ZIwhLEmpe3U8HgDJn6AC03P_TLmit5PEdMF2Ho3YunPpX7nkY-rO157nXhZWzIt6h4Ep14w-E7_fLpq2-PREKckyis/s320/2498011383_5ea63fb5f0_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206400241467330066&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is a screenshot of it running.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgjI2g3j3a4AuCgZ1c5JWOYrNpVCj0xifW5zwgZpyw91RSQii9oUT5nemkZnz1G4qnNNjZc6BXbmH8k8BUwj5VaEa19yqIS5CE__FTC9JLRwinXmmQn3F1veVmBM_0LGhkMrTMap9-JE3o/s1600-h/2498832666_56509c9246_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgjI2g3j3a4AuCgZ1c5JWOYrNpVCj0xifW5zwgZpyw91RSQii9oUT5nemkZnz1G4qnNNjZc6BXbmH8k8BUwj5VaEa19yqIS5CE__FTC9JLRwinXmmQn3F1veVmBM_0LGhkMrTMap9-JE3o/s320/2498832666_56509c9246_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206400391791185458&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With this technology, multiple desktops no longer need to be tolerated simply to run applications belonging to different operating systems.</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/185514997497395655/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/185514997497395655' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/185514997497395655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/185514997497395655'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/future-of-desktop-virtualization.html' title='The future of desktop virtualization?'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdD44lji8n9JQRb6oJ-V8Ibs08WoaSy2qaedceY2C1BV1e9bwDwztlFPi3hnTHKLv_A6fLKUc8r0ll1MkTb0BCUFjPrj6L8WO46rs4ZGhfJuwyZ_KZCA0cef-WsMB5Brzf7l-b8Ai-vySx/s72-c/2498832658_3b51c60140_o.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-265311320689133276</id><published>2008-05-16T21:16:00.000-07:00</published><updated>2008-05-16T21:38:14.525-07:00</updated><title type='text'>Cloud computing: EC2 and App Engine</title><content type='html'>The cloud computing will be big; there are no doubts about that.  Why deploy your own distributed and scalable infrastructure when someone else can do it for you for minimal cost?  Cloud computing based on virtualization means that people can potentially have full control over the deployed machines without worrying about physical hardware maintenance.&lt;br /&gt;&lt;br /&gt;There are currently two paradigms surrounding how to provide cloud computing capabilities, one championed by Amazon´s Electric Computing Cloud (EC2) and the other by Google´s still-in-beta App Engine.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://aws.amazon.com/ec2&quot;&gt;EC2&lt;/a&gt; was created around the concept of virtual appliances.  Independent Software Vendors (ISVs) create XEN-based appliances that can be deployed to EC2.  Virtual machines can be started and stopped on-demand, making this the first commercial service that offers computing resources as a utility where users pay for exactly what they use.  EC2 is powerful--virtually any Linux-based application can be ported to this platform.&lt;br /&gt;&lt;br /&gt;The appliance model is picking up a lot of steam.  Almost all the major Linux vendors are already onboard.  Red Hat has its upcoming &lt;a href=&quot;http://www.redhat.com/solutions/aos/&quot;&gt;Appliance Operating System&lt;/a&gt;;  Novell has its own &lt;a href=&quot;http://www.novell.com/linux2/appliance/&quot;&gt;SUSE Appliance Program&lt;/a&gt;;  Ubuntu has a special &lt;a href=&quot;http://www.ubuntu.com/products/whatisubuntu/serveredition/jeos&quot;&gt;Server Edition JeOS&lt;/a&gt;; and not to forget little &lt;a href=&quot;http://www.rpath.com/&quot;&gt;rPath&lt;/a&gt;, which has been pioneering the appliance model since 2006.  All of these products will or already do produce virtual appliances to run on EC2.  A lot of new applications will be deployed on EC2.  We are only seeing the very beginning of this massive trend.&lt;br /&gt;&lt;br /&gt;Google´s &lt;a href=&quot;http://code.google.com/appengine/&quot;&gt;App Engine&lt;/a&gt;´s model works on a level above that of appliances.  Instead of offering users the flexibility of running virtually anything they want through creation of custom appliances, App Engine gives users a fixed environment, where they can run Python applications.  For convenience of creating web-based applications, the Django web application framework is also provided.  The documentation also notes that other ¨programming languages and runtime environment configurations are being considered for future releases.¨&lt;br /&gt;&lt;br /&gt;App Engine are making a bet here that most future applications will have fairly homogenous runtime requirements.  Gone are the days where most applications need to care about the exact kernel version they run on top of and the precise version of the system libraries.  One fixed set of these will do for the vast majority of new applications.  The use of scripting languages (Python, Ruby) and ones with intermediate runtimes (Java, C#) are on the rise.  Different versions of these interpreters and runtimes can also be installed side-by-side.&lt;br /&gt;&lt;br /&gt;Taking this idea a bit further, imagine App Engine as a giant repository of software indexed by vendor name.  Python versions could be placed in &lt;span style=&quot;font-style: italic;&quot;&gt;/app/python&lt;/span&gt;, and C# in &lt;span style=&quot;font-style: italic;&quot;&gt;/app/csharp&lt;/span&gt;.  These directories would be further subdivided into &lt;span style=&quot;font-style: italic;&quot;&gt;/app/python/prod/2.5/&lt;/span&gt; and &lt;span style=&quot;font-style: italic;&quot;&gt;/app/python/dev/4.0/&lt;/span&gt; etc.  I sign up as a vendor too and place all my software in &lt;span style=&quot;font-style: italic;&quot;&gt;/app/xiaowen/&lt;/span&gt;.  I can customize my the runtime environment for my applications to use a certain version of python by pointing at the path exported by the Python development team in &lt;span style=&quot;font-style: italic;&quot;&gt;/app/python&lt;/span&gt;.  The power of this architecture comes from the fact that everybody can share their applications for everybody else to use.  No more deployment worries here because there is nothing to deploy.  Simply point at a provider´s directory and go (though of course, some local configuration may still need to be done). &lt;span style=&quot;font-weight: bold;&quot;&gt; Imagine one giant computer containing a mesh of interdependent software that the entire world collaborates on!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/265311320689133276/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/265311320689133276' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/265311320689133276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/265311320689133276'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/cloud-computing-ec2-and-app-engine.html' title='Cloud computing: EC2 and App Engine'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5076587299313286403.post-9079927366472550032</id><published>2008-05-16T15:12:00.000-07:00</published><updated>2008-12-12T21:57:30.770-08:00</updated><title type='text'>SLE JeOS</title><content type='html'>I downloaded &lt;a href=&quot;http://www.novell.com/linux2/appliance/&quot; title=&quot;SLE JeOS&quot;&gt;SLE JeOS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ7KTYLOpXzOMnT7sze8KbzBcIgyoirhXGUBOK7w8JCMM4bEQoxgduBXwmyYoylD5h8YkKTMvPXyu5XaulBirQfUk-Uj0tzzHiz04wYyXJPRrEz3OJ7Rr_eyL3niIsqgBTQQT7tNogFzsL/s1600-h/2497744628_bbe4bf5aca_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ7KTYLOpXzOMnT7sze8KbzBcIgyoirhXGUBOK7w8JCMM4bEQoxgduBXwmyYoylD5h8YkKTMvPXyu5XaulBirQfUk-Uj0tzzHiz04wYyXJPRrEz3OJ7Rr_eyL3niIsqgBTQQT7tNogFzsL/s320/2497744628_bbe4bf5aca_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206398927207337426&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and booted it in VMware&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYM5gNMAEWSs0bHALPt_ie0pMi-_J7_ulxcD9R_NsWRbipAfeS6RyZv8I_Qob1A4vSmey4XdJO0BZjSHGwCtNa_mlVODDX2iDgVWKkx93O1PiIxHmapgeXItimbqayDREFhsc7qXDhWpG2/s1600-h/2497744632_ba744bfd72_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYM5gNMAEWSs0bHALPt_ie0pMi-_J7_ulxcD9R_NsWRbipAfeS6RyZv8I_Qob1A4vSmey4XdJO0BZjSHGwCtNa_mlVODDX2iDgVWKkx93O1PiIxHmapgeXItimbqayDREFhsc7qXDhWpG2/s320/2497744632_ba744bfd72_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206399017401650658&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I registered it with Novell&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMCS3jjo5vrfd7Xhf6fpRDFkNltWGZSvht5Hy77BE0YdiRtO33_lcglwi6AGyoEUl38f979gcg6A0QqL3P9t4igFjPbP4ntWRTx-00UN7RSrcBDmXM4KH00SCgAAlwCdaM6LXvHUeo2arY/s1600-h/2497744638_ed500c7476_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMCS3jjo5vrfd7Xhf6fpRDFkNltWGZSvht5Hy77BE0YdiRtO33_lcglwi6AGyoEUl38f979gcg6A0QqL3P9t4igFjPbP4ntWRTx-00UN7RSrcBDmXM4KH00SCgAAlwCdaM6LXvHUeo2arY/s320/2497744638_ed500c7476_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206399094711062002&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and installed an example package (apache)&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj54pZCeMAQUOPs7lxVYleN2RXnGq1CAHqbxilXeSc-UTGr99OYu376U46PsUrSmUHgM4e9CWRYcpOYD5Vnovc1rIUeUFKjonvr1wKwqn17E97bU9FyhCNdRM2rjjsMYqu6PhZJZo1djxXU/s1600-h/2497744644_97ce46f530_o.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj54pZCeMAQUOPs7lxVYleN2RXnGq1CAHqbxilXeSc-UTGr99OYu376U46PsUrSmUHgM4e9CWRYcpOYD5Vnovc1rIUeUFKjonvr1wKwqn17E97bU9FyhCNdRM2rjjsMYqu6PhZJZo1djxXU/s320/2497744644_97ce46f530_o.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5206399167725506050&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What is next?  The SUSE documentation leaves me here.  If I were an ISV, am I meant to snapshot this and distribute it as is?</content><link rel='replies' type='application/atom+xml' href='http://xiaowenx.blogspot.com/feeds/9079927366472550032/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5076587299313286403/9079927366472550032' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/9079927366472550032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5076587299313286403/posts/default/9079927366472550032'/><link rel='alternate' type='text/html' href='http://xiaowenx.blogspot.com/2008/05/sle-jeos.html' title='SLE JeOS'/><author><name>xiaowenx</name><uri>http://www.blogger.com/profile/11306907269300888207</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ7KTYLOpXzOMnT7sze8KbzBcIgyoirhXGUBOK7w8JCMM4bEQoxgduBXwmyYoylD5h8YkKTMvPXyu5XaulBirQfUk-Uj0tzzHiz04wYyXJPRrEz3OJ7Rr_eyL3niIsqgBTQQT7tNogFzsL/s72-c/2497744628_bbe4bf5aca_o.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>