<?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: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-17607636</id><updated>2012-01-22T20:54:21.995-08:00</updated><category term='dart'/><category term='olpc laptop 100 dollar laptop'/><category term='web'/><title type='text'>Milan Zimmermann's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17607636.post-6732338592672320642</id><published>2012-01-22T20:54:00.000-08:00</published><updated>2012-01-22T20:54:22.005-08:00</updated><title type='text'>SOPA and PIPA</title><content type='html'>My friends, this is worth the 5 minutes&lt;br /&gt;&lt;br /&gt;http://www.ted.com/talks/defend_our_freedom_to_share_or_why_sopa_is_a_bad_idea.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-6732338592672320642?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/6732338592672320642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=6732338592672320642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/6732338592672320642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/6732338592672320642'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2012/01/sopa-and-pipa.html' title='SOPA and PIPA'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-7873898347854440686</id><published>2011-12-12T04:00:00.000-08:00</published><updated>2011-12-12T04:00:42.124-08:00</updated><title type='text'>The Higgs Discovery Near?</title><content type='html'>I love Europe. This would not be possible without their investment in Physics and LHC. (The RIM guys did good here in Canada as well)&lt;br /&gt;&lt;br /&gt;And whether it is finally found or not, we can be sure it will be either "proved" or "disproved" in the next short while (short - relatively.. months or a few years max).&lt;br /&gt;&lt;br /&gt;Exciting either way.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bbc.co.uk/news/science-environment-16116230"&gt;http://www.bbc.co.uk/news/science-environment-16116230&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-7873898347854440686?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/7873898347854440686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=7873898347854440686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7873898347854440686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7873898347854440686'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2011/12/higgs-discovery-near.html' title='The Higgs Discovery Near?'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-7827195161378388844</id><published>2011-12-11T18:40:00.001-08:00</published><updated>2011-12-11T18:43:49.408-08:00</updated><title type='text'>(Almost) fixed back pain, and how it relates to 2 years off from open/free source tinkering hopefully over</title><content type='html'>&lt;br /&gt;&lt;br /&gt;Since I was a teenager I had issues with my back. Perhaps not so surprisingly, they always got worse not by doing "something" (physical like sports) but rather doing "nothing" (such as sitting at a desk, thinking, and/or coding uninterrupted for weeks of 16 hours a day if not more). Playing hockey once a week did not really help much. Over the years I did more and more of it, not only doing paid work or things that would initiate it, but also did large amount of tinkering and playing with open source stuff.&lt;br /&gt;&lt;br /&gt;Finally, over two years ago, I had an extensive busy period at work, while starting software for a shutdown planning prospective business, and also playing and involved with Etoys, Squeak and other software that interests me.&lt;br /&gt;&lt;br /&gt;Unfortunately the load also resulted in an extended period of back trouble to the point it was hard to even do my work. So about two years ago or so, I decided to quit everything but software I need to do for living to save the sanity of my back. I still did follow things like Etoys, but spent way less time. Also I started doing things to fix things - gym, five minute breaks, better posture, and general "being aware" when things go bad.&lt;br /&gt;&lt;br /&gt;All that waiting seems to be working so I plan get back to do more things for fun. I started to investigate Google's Native Client as a way from the prison of "web architecture", ran into some early issues on Opensuse but that got &lt;a href="http://thread.gmane.org/gmane.comp.security.nativeclient.general/3007"&gt;resolved&lt;/a&gt;. I plan to look at Yoshiki Ohshima's Squeak port to Nacl and see if Etoys can run that way instead of in a plugin. Not quite a "commitment" but a plan.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-7827195161378388844?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/7827195161378388844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=7827195161378388844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7827195161378388844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7827195161378388844'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2011/12/almost-fixed-back-pain-and-how-it.html' title='(Almost) fixed back pain, and how it relates to 2 years off from open/free source tinkering hopefully over'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-8195913709451749786</id><published>2011-12-07T20:11:00.001-08:00</published><updated>2011-12-07T20:49:25.602-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dart'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Exponential Growth of Interest in Dart</title><content type='html'>&lt;b style="background-color: cyan;"&gt;Exponential Growth of Interest in Dart&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So, &amp;nbsp;&lt;a href="http://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming"&gt;the GOTO in Aarhus&lt;/a&gt; is long in the past. &lt;a href="http://www.dartlang.org/"&gt;Dart&lt;/a&gt; was introduced. It's features are good as one would expect from people who &lt;a href="http://gotocon.com/aarhus-2011/speaker/Gilad+Bracha"&gt;know&lt;/a&gt; what they are doing. I would prefer a Smalltalkish-Newspeakish syntax but did not really hope for it too much - the world does move slowly after all.&lt;br /&gt;&lt;br /&gt;I kept an interesting statistics the first few days after Dart was announced. I keep my links on delicious and every day I checked number of delicious bookmarks marked as dart for&amp;nbsp;&lt;span style="color: #999999; font-family: helvetica, arial, clean, sans-serif; font-size: 14px; text-align: left;"&gt;http://www.dartlang.org/&lt;/span&gt;. It was surely non exact, the count was taken at different times of the day, rounded them, some days I forgot, but it went like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-10 : 712 saves&lt;/span&gt;&lt;br style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;" /&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-11 1924 saves&lt;/span&gt;&lt;br style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;" /&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-12 3800 saves&lt;/span&gt;&lt;br style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;" /&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-13 6700 saves&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-14 ??? saves&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-15 12585 saves&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-16 ??? saves&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-17 ???? saves&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-18 24000 saves&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="color: #333333; font-family: helvetica, arial, clean, sans-serif; font-size: 12px; text-align: left;"&gt;2011-oct-19 28500 saves&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="text-align: -webkit-auto;"&gt;Now, the count is at 42121 saves. Count multiplied by 2 every day the first several days looks like an exponential growth of interest in Dart.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="text-align: -webkit-auto;"&gt;The Dart mailing list goes steady around 25 messages a day and it looks like a vibrant community being &amp;nbsp;created.&amp;nbsp;&lt;/span&gt;&lt;span style="text-align: -webkit-auto;"&gt;Dart is evolving, good and needed platform. Perhaps we are getting a safer, faster, concurrency friendly language and platform that will make programming for the web a better place.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-8195913709451749786?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/8195913709451749786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=8195913709451749786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/8195913709451749786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/8195913709451749786'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2011/12/exponential-growth-of-interest-in-dart.html' title='Exponential Growth of Interest in Dart'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-7212919013873855795</id><published>2011-10-04T17:20:00.000-07:00</published><updated>2011-10-04T17:20:22.422-07:00</updated><title type='text'>Gilad Bracha / Lars Bak / Google - Dart: Progress the web</title><content type='html'>&lt;br /&gt;&lt;br /&gt;&lt;b style="background-color: cyan;"&gt;Gilad Bracha / Lars Bak / Google - Dart: Progress the Web&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Three weeks ago or so, I came back from a Toronto Smalltalk Users Group meeting, to a nice surprise: a bit of a &amp;nbsp;late night (here in TO) flurry of articles about Dart - or Dash(?) - "a new programming language from Google". I think Dart will be more than a "language" - rather a vm/environment that will run inside the browser (and also outside surely).&lt;br /&gt;&lt;br /&gt;This is extremely exciting news, for a few reasons:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: cyan;"&gt;First, the people and the architecture&lt;/span&gt;: Gilad Bracha (&lt;a href="http://www.strongtalk.org/"&gt;Strongtalk&lt;/a&gt;, Java, &lt;a href="http://newspeaklanguage.org/"&gt;Newspeak&lt;/a&gt;) and Lars Bak (Also Strongtalk, Javascript V8). I am sure they will do a great work; if this goes the right way and Dart becomes accepted, it may be a huge step towards secure, performing web architecture and applications, and finally, after 20 years, may progress "the web" beyond it's primitive stage (web, unlike "the internet" is a crappy construct developed from a simple sharing system of scientific articles, still bears all the architectural chains and shortsightedness of it's beginning).&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: cyan;"&gt;Second reason for excitement, Smalltalk&lt;/span&gt;. Just to be brief here: 30-40 years later, depending where you start counting, Smalltalk is still more elegant, clean, and beautiful than all mainstream (or non mainstream) languages. Just one thing, would you rather createRectangle(10,20, 30, 40) (what is 10, 20, 30, 40 .. even with better naming the order is unclear), or createRectangleAtX: 10 y:20 width: 30 height: 40? I am guessing Dart syntax will borrow from Smalltalk, but that is just technicality, although a welcome one.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: cyan;"&gt;Third reason for excitement, security and performance&lt;/span&gt; above what Javascript can offer.&lt;br /&gt;&lt;br /&gt;Some relevant links:&lt;br /&gt;&lt;br /&gt;The leaked motivation (which is a great read by Mark Miller): &lt;a href="http://pastebin.com/NUMTTrKj"&gt;http://pastebin.com/NUMTTrKj&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Probably the best balanced read on the Dart subject I could find: &lt;a href="http://css.dzone.com/news/google-dart-%E2%80%9Cultimately"&gt;http://css.dzone.com/news/google-dart-“ultimately&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A few more Dart speculation links:&lt;br /&gt;&lt;a href="http://www.extremetech.com/computing/95417-google-announces-dart-programming-language"&gt;http://www.extremetech.com/computing/95417-google-announces-dart-programming-language&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pcmag.com/article2/0,2817,2392791,00.asp#fbid=rl8OouL9eVJ"&gt;http://www.pcmag.com/article2/0,2817,2392791,00.asp#fbid=rl8OouL9eVJ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;October 10, 2011, I will be looking forward to &lt;a href="http://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming"&gt;read news from Arhus!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS: I am no fan of one company taking over my world (had my shares of passive/active resistence to Microsoft ...and happy to say gradually proven right), but the combination of open sourced, and developed in the open, of &lt;b&gt;&lt;a href="http://code.google.com/games/technology-nacl.html"&gt;Nacl&lt;/a&gt;&lt;/b&gt; and &lt;b&gt;Dart&lt;/b&gt; may be the sanity rescue of the web. The alternative is the "as we went", shortest path, ugliest solution web we watched "develop" the last 20 years. We will see in 5-15 years!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-7212919013873855795?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/7212919013873855795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=7212919013873855795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7212919013873855795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7212919013873855795'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2011/10/gilad-bracha-lars-bak-google-dart.html' title='Gilad Bracha / Lars Bak / Google - Dart: Progress the web'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-8690655961961628886</id><published>2011-04-18T00:23:00.000-07:00</published><updated>2011-06-11T21:03:16.184-07:00</updated><title type='text'>Freedesktop / Linux MimeTypes, File Extensions, MimeType-Application Associations</title><content type='html'>&lt;b&gt;This is a capture of Linux KDE/Gnome/Freedesktop files that define how MIME types such as "html"are managed by the system, and used by Applications such as Firefox. This includes File Associations and Default actions.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="background-color: cyan;"&gt;1. Related Links:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#mime-types"&gt;http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#mime-types&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freedesktop.org/wiki/Specifications/mime-actions-spec"&gt;http://www.freedesktop.org/wiki/Specifications/mime-actions-spec&lt;/a&gt;&lt;br /&gt;&lt;a href="http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-0.18.html"&gt;http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-0.18.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec"&gt;http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="background-color: cyan;"&gt;2. Overview of What is involved:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-NivzeAE0cVE/TauHamInhEI/AAAAAAAAACw/YpoyAh4LpgM/s1600/files-mime-types-applications.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://3.bp.blogspot.com/-NivzeAE0cVE/TauHamInhEI/AAAAAAAAACw/YpoyAh4LpgM/s320/files-mime-types-applications.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="background-color: cyan;"&gt;3. Directories and Files Managing MIME (database) and Application (Database)&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="background-color: cyan;"&gt;3.1 Shared MIME-Info Database&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Is a file-based database of all known MIME types. The database's files are located in the following directories (further down overrides)&amp;nbsp;&lt;code class="filename"&gt;/usr/share/mime/*/*.xml&lt;/code&gt;,&amp;nbsp;&lt;code class="filename"&gt;/usr/local/share/mime/*/*.xml&lt;/code&gt;, and&lt;code class="filename"&gt;~/.local/share/mime/*/*.xml&lt;/code&gt;&amp;nbsp;(if they exist, and in this order).&lt;br /&gt;Each has maintains an application which manipulates this database - for example, in KDE, Configure Desktop -&amp;gt; File Association&lt;br /&gt;&lt;br /&gt;The database starts in directory named "mime" -&lt;b&gt; for example&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;b&gt;/usr/share/mime&lt;/b&gt; - which has following files&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;all&lt;br /&gt;application&lt;br /&gt;audio&lt;br /&gt;...&lt;br /&gt;packages&lt;br /&gt;...&lt;br /&gt;text&lt;br /&gt;(etc)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;As an example,&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;b&gt;/usr/share/mime/text&lt;/b&gt; directory has following files:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;css.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;html.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;plain.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;richtext.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;sgml.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;vnd.graphviz.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;x-cobol.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;x-erlang.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;x-fortran.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(etc)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;As an example, html.xml defines MIME type "html", this way:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-cIe7Ie7lS2U/TavmpZBZ4nI/AAAAAAAAAC0/8pkm1Lwkuq8/s1600/html.xml..png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://3.bp.blogspot.com/-cIe7Ie7lS2U/TavmpZBZ4nI/AAAAAAAAAC0/8pkm1Lwkuq8/s320/html.xml..png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;So html.xml defines:&lt;/div&gt;&lt;div&gt;The MIME type name (html)&lt;/div&gt;&lt;div&gt;The MIME Parent Type (text/plain)&lt;/div&gt;&lt;div&gt;Description (in all languages)&lt;/div&gt;&lt;div&gt;List of File Extensions which will assume this MIME Type&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Application section of the the Shared MIME-Info database&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;this is in the mime/packages directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="line862"&gt;&amp;nbsp;&lt;span class="anchor" id="line-18"&gt;&lt;/span&gt;For example, doing&amp;nbsp;&lt;strong&gt;./configure &amp;amp;&amp;amp; make install&lt;/strong&gt;&amp;nbsp;with Firefox should create&amp;nbsp;&lt;strong&gt;/usr/share/mime/packages/firefox.xml (but it does NOT)&lt;/strong&gt;.&lt;span class="anchor" id="line-19"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-20"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line874"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line874"&gt;&lt;b style="background-color: cyan;"&gt;3.2 Desktop Entries for Applications&amp;nbsp;&lt;a href="http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#mime-types"&gt;http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#mime-types&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="line874"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line874"&gt;&amp;nbsp;KDE and GNOME desktop environments have adopted a similar format for "desktop entries", or configuration files describing how a particular program is to be launched, how it appears in menus, etc. These files end with extension &lt;b&gt;.desktop&lt;/b&gt;.&amp;nbsp;&lt;b&gt;&lt;u&gt;The suffix "desktop" seems a misnomer - it seems .desktop files simply describe Applications&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="line874"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line874"&gt;&lt;b style="background-color: cyan;"&gt;Desktop Entries Database (=Application Definitions Database) (NOT Part of MIME-Info Database, but uses it)&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code class="filename"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;This database is located in &lt;/span&gt;&lt;i&gt;/usr/share/applications/*&lt;/i&gt;&lt;/code&gt;,&amp;nbsp;&lt;code class="filename"&gt;&lt;i&gt;/usr/local/share/&lt;/i&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;i&gt;applications/*&lt;/i&gt;&lt;/span&gt;, and&amp;nbsp;&lt;code class="filename"&gt;&lt;i&gt;~/.local/share/&lt;/i&gt;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;i&gt;applications/*&lt;/i&gt;&lt;/span&gt;&amp;nbsp;(if they exist, and in this order). Further, if desktop=KDE, &lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;~.kde4/share/apps/*&lt;/span&gt;&lt;/i&gt; is also part of the database.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;/usr/share/applications&lt;/span&gt;&amp;nbsp;directory has following files&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;kde4&lt;/div&gt;&lt;div&gt;YaST2&lt;/div&gt;&lt;div&gt;google-chrome.desktop&lt;/div&gt;&lt;div&gt;firefox.desktop&lt;/div&gt;&lt;div&gt;gimp.desktop&lt;/div&gt;&lt;div&gt;emacs.desktop&lt;/div&gt;&lt;div&gt;....etc&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;for example,&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;/usr/share/applications/&lt;/span&gt;&lt;/b&gt;&lt;b&gt;firefox.desktop contains&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;[Desktop Entry]&lt;/div&gt;&lt;div&gt;X-SuSE-translate=true&lt;/div&gt;&lt;div&gt;Categories=Network;WebBrowser;GTK;&lt;/div&gt;&lt;div&gt;Encoding=UTF-8&lt;/div&gt;&lt;div&gt;Name=Firefox&lt;/div&gt;&lt;div&gt;GenericName=Web Browser&lt;/div&gt;&lt;div&gt;Comment=Web Browser&lt;/div&gt;&lt;div&gt;TryExec=firefox&lt;/div&gt;&lt;div&gt;Exec=firefox %u&lt;/div&gt;&lt;div&gt;Icon=firefox&lt;/div&gt;&lt;div&gt;Terminal=false&lt;/div&gt;&lt;div&gt;StartupNotify=true&lt;/div&gt;&lt;div&gt;MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;application/x-xpinstall;x-scheme-handler/http;x-scheme-handler/https;&lt;/div&gt;&lt;div&gt;Type=Application&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Note&lt;/b&gt;: The MIME Type list above can be expanded to list of file extensions. This is displayed in "File Association" settings.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Ytx91B_zm3c/Tat_-hbn72I/AAAAAAAAACs/X29aE_a7MSw/s1600/file-associations.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://2.bp.blogspot.com/-Ytx91B_zm3c/Tat_-hbn72I/AAAAAAAAACs/X29aE_a7MSw/s320/file-associations.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Clearly some component scrounges through the applications/*.desktop, and if the *.desktop lists the MIME under MimeType, it will add the application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note&lt;/b&gt;: To add a new application, such as &lt;b&gt;emacs-client&lt;/b&gt;, that appears in popups of right click open-with, simply &lt;br /&gt;&lt;ul&gt;&lt;li&gt;create /usr/share/applications/emacs-client.desktop&lt;/li&gt;&lt;li&gt;copy contents from emacs.desktop&lt;/li&gt;&lt;li&gt;modify Exec=run-emacs-client.sh&lt;/li&gt;&lt;li&gt;modify Name=Emacs Client&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;3.3 ~/.local/share/applications/mimeapp.list - user defined order of application preference when open&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;maintains&amp;nbsp;ORDER of Applications Which Understand a certain MimeType&lt;/li&gt;&lt;li&gt;Format&lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-color: #fff8ed; border-bottom-color: rgb(203, 203, 203); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(203, 203, 203); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(203, 203, 203); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(203, 203, 203); border-top-style: solid; border-top-width: 1px; color: black; padding-bottom: 0.5em; padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.5em; white-space: pre-wrap;"&gt;[Added Associations]&lt;br /&gt;mimetype1=foo1.desktop;foo2.desktop;foo3.desktop;&lt;br /&gt;mimetype2=foo4.desktop;&lt;br /&gt;[Removed Associations]&lt;br /&gt;mimetype1=foo5.desktop;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Sample:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;[Added Associations]&lt;br /&gt;application/x-shellscript=run-emacs-client.sh.desktop;&lt;br /&gt;text/x-emacs-lisp=run-emacs-client.sh.desktop;&lt;br /&gt;&lt;br /&gt;[Added KDE Service Associations]&lt;br /&gt;application/xhtml+xml=kwebkitpart.desktop;khtml.desktop;&lt;br /&gt;application/xml=kwebkitpart.desktop;khtml.desktop;&lt;br /&gt;text/html=kwebkitpart.desktop;khtml.desktop;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-8690655961961628886?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/8690655961961628886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=8690655961961628886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/8690655961961628886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/8690655961961628886'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2011/04/freedesktop-linux-mimetypes-file.html' title='Freedesktop / Linux MimeTypes, File Extensions, MimeType-Application Associations'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-NivzeAE0cVE/TauHamInhEI/AAAAAAAAACw/YpoyAh4LpgM/s72-c/files-mime-types-applications.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-6073770964356303566</id><published>2010-04-25T21:55:00.000-07:00</published><updated>2010-05-16T09:51:23.847-07:00</updated><title type='text'>Webcam Stream over the Internet on Linux, with VLC and VLC-QT</title><content type='html'>I am playing with streaming Linux webcam output over the internet. Apparently one package for streaming is VLC (it is it seems the most featured video handling package overall). &lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: cyan;"&gt;Eventually I got webcam VLC streaming working on Linux (Opensuse 11.3)&amp;nbsp; in multiple ways. This was not straighforward (what with video is on Linux :) ) - so I took take some notes below, sort of a step by step process. Now, I am succesfully streaming webcam over the internet, using bandwith-saving multicast and dynamic IP for my domain milanzimmermann.com. (Next: to connect the webcam inside a bluebird' nesthouse.)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: cyan; color: black;"&gt;&lt;b&gt;Step A: Stream an AVI file from one instance of VLC-QT, capturing and playing on other instance of VLC, without transcoding as H.264.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;This is a first step to create a localhost client server setup. The bricks that need to be connected for a working simple configuration are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;1. Source of the stream:&lt;/span&gt; an AVI file, downloaded from a multimedia test site:&amp;nbsp; Electric_Guitar_Scrape_And_Pound_DivX.avi&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;2. VLC setup as a streaming server.&lt;/span&gt; VLC reads the AVI file, and outputs it "straight" (without transcoding) as UDP, without transcoding as H.264. To achieve this, do the following:&lt;br /&gt;&lt;br /&gt;on command line, run VLC:&lt;br /&gt;&lt;b style="background-color: white;"&gt;Server prompt $:&lt;/b&gt;&lt;span style="background-color: white; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;i&gt; vlc&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="background-color: white; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; #&lt;/span&gt; &lt;/i&gt;the VLC gui starts&lt;br /&gt;click media-&amp;gt;streaming, dialog opens. following describes clicking through the VLC wizard (each line represents a click on a UI item):&lt;br /&gt;&lt;br /&gt;file&lt;br /&gt;add - browser to the Electric_Guitar_Scrape_And_Pound_DivX.avi&lt;br /&gt;stream&lt;br /&gt;next&lt;br /&gt;new destination: udp&lt;br /&gt;check "display locally" - this will allow viewing on this streaming VLC server&lt;br /&gt;add&lt;br /&gt;address = localhost&lt;br /&gt;port=1234&lt;br /&gt;check "activate transcoding" OFF !!&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;having done the above, the screen now shows the parameters VLC generated from our steps:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;"  &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px; text-indent: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;:sout=#duplicate{dst=std{access=udp,mux=ts,dst=localhost:1234},dst=display}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;From now on, we can simply start the server as follows:&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-color: white;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="background-color: white;"&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: yellow; font-family: inherit;"&gt;server prompt $:&lt;/span&gt; vlc -vvv /home/mzimmermann/Documents/Electric_Guitar_Scrape_And_Pound_DivX.avi --sout '#duplicate{dst=std{access=udp,mux=ts,dst=localhost:1234},dst=display}'&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: white;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This streams to 2 destinations: the display, so we can see what the file contains, and to a UDP output on localhost, port 1234.&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white;"&gt;3. Server Output Stream: &lt;/span&gt;The above set of steps will start streaming the AVI file into UDP on localhost, port  1234, and also the VLC "streaming server" display., and at the same time, as the client input stream, processed in the "client VLC" - see step 4.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: white;"&gt;4. VLC client, setup as UDP client&lt;/div&gt;&lt;br /&gt;on the client system (which in out case is same system as the server), run the client VLC as follows:&lt;br /&gt;&lt;br /&gt;&lt;b style="background-color: yellow;"&gt;Client prompt $:&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; vlc udp://@:1234&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: yellow; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; # Note no localhost is specified on the client uvc (This is because any-source multicast does figure out the source of the stream on the network!!)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you run the above, you will see the webcam displayed on the client VLC.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: cyan;"&gt;5. Summary - run it all:&lt;/div&gt;&lt;br /&gt;Now, find the streaming server VLC GUI, and click the play sign. This will start playing the AVI file in the "streaming server GUI" started in Step A, item 2, and also streaming it to UDP localhost port 1234. The UDP stream is&amp;nbsp; automatically showing the video in&amp;nbsp; the "streaming client GUI" started in Step A, item 4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: cyan; color: black;"&gt;&lt;b&gt;Step B: Stream from AVI file (same as in  Step A) from one instance of VLC-QT, capturing and  playing on other instance of VLC as RTP, without transcoding as H.264. (difference from step A, we use RTP instead of UDP)&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Server  prompt $:&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; vlc -vvv  /home/mzimmermann/Documents/Electric_Guitar_Scrape_And_Pound_DivX.avi  --sout '#duplicate{dst=rtp{dst=localhost,port=5004,mux=ts},dst=display}'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Client  prompt $:&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; vlc rtp://@:5004&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that the WEIRD difference between the UDP and RTP specification for --sout !!!!!! - but it makes a  difference for playing . I have no idea why this is so messed up... (the  port number does not matter as long as client/server is same)&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: cyan; color: black;"&gt;&lt;b&gt;Step  C: Stream from Webcam as source &lt;/b&gt;&lt;b&gt;(instead of an AVI file in Step B)&lt;/b&gt;&lt;b&gt; over Real Time Transport (RTP)&amp;nbsp; from one &lt;br /&gt;instance  of VLC-QT, capturing and &lt;br /&gt;playing on other instance of VLC, without  transcoding as H.264.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Server prompt $: &lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc -vvv v4l2:// --sout&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;'#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:rtp{mux=ts,dst=localhost,sdp=sap,name="TestStream"}'&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc  rtp://@:5004&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Client Prompt $&lt;/b&gt;: &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc rtp://@:5004&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This shows webcam in client (really?? - not sure this worked for me)&lt;br /&gt;&lt;br /&gt;Note: vlc comes with it's own HTTP server, start it like: &lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc -I http --http-host localhost:8083&lt;/div&gt;&lt;br /&gt;&lt;div style="background-color: cyan;"&gt;&lt;b&gt;Step D: Multicast UDP Streaming (probably works same for RTP). This works, BUT client can only access localhost as "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc udp://@:1234&lt;/span&gt;" I have NO IDEA why I can specify Multicast on server (something in range 239.255), but on client , no IP can be specified, otherwise the stream does not show in the client... &amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;See also&amp;nbsp; http://www.videolan.org/doc/videolan-howto/en/ch08.html &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Server&lt;/b&gt; prompt $:&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt; vlc -vvv v4l2:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256,vt=800000,keyint=80,deinterlace}:std{access=udp,mux=ts,url=&lt;/span&gt;239.255.12.13&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;}' --ttl 12&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;The URL can be almost anything, e.g. 239.255.12.13@milanzimmermann.com and client still works&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;The ttl 12 specifies time to live - how many routes UDP can pass. It is 1 by default. For clients outside of the local host, override the default (we use 12 here)&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Client prompt $:&lt;/b&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc udp://@:1234&lt;/span&gt; # &lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: black;"&gt;But the client CANNOT USE ANY IP, like &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;vlc udp://@&lt;/span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: black;"&gt;239.255.12.13&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;:1234&lt;/span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: black;"&gt; - thiis does not work why?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: cyan;"&gt;&lt;b&gt;Step E: VLC server controlled via telnet: &lt;/b&gt;&lt;b&gt;  Serves stream as UDP-Multicast on mulitcast IP=239.255.12.13 and  also HTTP-Singlecast. Cients can view the stream  via HTTP or UDP.&lt;/b&gt;&lt;b&gt;&amp;nbsp; This can be setup in 2 command prompts (client/server telnet). We also need a command prompt for testing http access- see also http://www.ringoy.org/?p=40.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Prerequisits:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1.In router, enabled multicast (Linksys Advanced-&amp;gt;Advanced network settings), enable multicast streams&lt;br /&gt;2.In router, enabled port 1234 (for both UDP and TCP, although UDP likely not needed) (Linksys Advanced, add open port)&lt;br /&gt;3. V4L2 is installed, and Webcam works .&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Start Shell Prompt 1 (Server) and type in:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc -I telnet # Start VLC server and open port 4212 for telnet.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Start Shell Prompt 2 (Client) and type in:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;telnet localhost 4212&lt;/span&gt;&amp;nbsp; # Starts VLC client - here we use localhost, as we run from the same system as &lt;server&gt; telnet. But it can be run from anywhere with telnet access to the system that started server in shell prompt 1. Would have to reaspecify some-ip instead of localhost. some-in is IP of the system wistarting server in step 1.&lt;/server&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Trying 127.0.0.1...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Connected to localhost.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Escape character is '^]'.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Password: &lt;/span&gt;admin&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Welcome, Master&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt; new cam broadcast enabled&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt; setup cam input "v4l2://"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt; setup cam output "#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256,vt=800000,keyint=80}:duplicate{dst=standard{mux=ts,dst=239.255.12.13,access=udp,sap,name="CAM_UDP"},dst=standard{mux=ts,dst=:1234,access=http}}"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt; setup cam enabled&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt; control cam play&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Start Shell Prompt 3 (Accesses the system where Client telnet from prompt 2 is running): &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/span&gt;&lt;/b&gt;vlc http://milanzimmermann.com:1234&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(This will display the webcam stream)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: cyan;"&gt;Enable support for viewing webcam stream via HTTP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;a) in the HTTP server, create a file similar to the contents this:( credit http://videolan)&lt;br /&gt;&lt;br /&gt;http://milanzimmermann.com/test-vlc.html&lt;br /&gt;&lt;br /&gt;b) From anywhere on the internet, browse to:&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: yellow;"&gt;http://milanzimmermann.com/test-vlc.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and see the video&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: cyan; font-family: inherit;"&gt;&lt;b&gt;Step F: FINAL "SOLUTION":  Serves stream as UDP-Multicast on any-source mulitcast IP=239.255.12.13 and also HTTP-Singlecast. Clients can view the stream  via HTTP or UDP.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Prerequisits for the steps below to work:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Your kernel has multicast enabled (if you want to use multicast, which is a must for multiple simultaneous clients). &lt;/li&gt;&lt;li&gt;V4L2 is installed, and Webcam works . &lt;/li&gt;&lt;li&gt;In your router, enable multicast  (Linksys Advanced-&amp;gt;Advanced network settings), enable multicast  streams&lt;/li&gt;&lt;li&gt;In your router firewall, allow port 1234&amp;nbsp; (TCP if you use http, UDP for udp - we use both here) (Linksys Advanced, add open port)&lt;/li&gt;&lt;li&gt;If you are using Masquerading (at home most likely you are), you also need to forward port 1234 to the server - in our example, to 192.168.0.199 &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b style="color: black;"&gt;Server Prompt (running on system with Intranet IP=192.168.0.199, Internet IP milanzimmermann.com) $:&lt;/b&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc $HOME/Documents/Electric_Guitar_Scrape_And_Pound_DivX.avi --loop --sout "#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256,vt=800000,keyint=80}:duplicate{dst=standard{mux=ts,dst=239.255.12.13:1234,access=udp,sap,name="CAM_UDP"},dst=standard{mux=ts,dst=:1234,access=http},dst=display}" --ttl 12&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;Notes:&lt;/div&gt;&lt;ol style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;239.255.12.13 is the IP of the UDP multicast group. Clients must specify this group to access the multicast. More precisely, clients must use source_system_ip@239.255.12.13 - see below for sample client use.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;To stream from a &lt;b&gt;webcam&lt;/b&gt; rather then the AVI file above, replace the path to the AVI file "$HOME/Documents/Electric_Guitar_Scrape_And_Pound_DivX.avi" with &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;"&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;v4l2://&lt;/span&gt;&lt;/span&gt;", and remove the "&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;--loop&lt;/span&gt;&lt;/span&gt;" option.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;To prevent the stream from showing in the VLC window  on the server (does it save anything?), remove the "&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;,dst=display&lt;/span&gt;&lt;/span&gt;" above.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Note that we use port 1234 both for http:// (uses TCP) and udp:// (uses UDP)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;To remove streaming across http, remove the "&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;,dst=standard{mux=ts,dst=:1234,access=http}&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;" above. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: inherit; font-size: x-small;"&gt;The ttl 12 specifies time to live - how many routers UDP  can pass. It is 1 by default. Non-default value (default 1) is needed for UDP clients to work outside the local host (we use 12 here)&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;The "--loop" option will play the file over and over - good for testing the client.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Trying to use "&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dst=milanzimmermann.com:1234,access=http&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;" instead of "&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dst=:1234,access=http&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;" does not work. No idea why.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul style="font-family: inherit;"&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;vlc as udp client from prompt any host on localnet $:&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc udp://@239.255.12.13:1234 # This works. Alos 1234 is default for udp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;Notes:&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;The @239.255.12.13 is ANY-SOURCE-MULTICAST&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;/ul&gt;&lt;b&gt;vlc as udp client from prompt any host on localnet $:&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc  udp://192.168.0.199@239.255.12.13:1234 # This works.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;Notes:&lt;/span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;I think this only works because of &lt;span style="font-size: small;"&gt;&lt;b style="font-family: Arial,Helvetica,sans-serif;"&gt;coincidence. &lt;/b&gt;&lt;/span&gt;I think host only provides ANY-SOURCE MULTICAST, NOT &lt;/span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: x-small;"&gt;SINGLE_SOURCE_MULTICAST_ IP@239.255.12.13&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: x-small;"&gt;IP for &lt;/span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: x-small;"&gt;SINGLE_SOURCE_MULTICAST_ IP must start with 232 (not 239) but I do NOT think VLC works for SINGLE-SOURCE&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;192.168.0.199 is the source IP =  IP of the system where multicast sender creates the multicast source. &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;@239.255.12.13  is multicast IP served by the VLC server.(see the server vlc command)&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;192.168.0.199 can NOT  be replaced with 127.0.0.1 even when running from same system as  server.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;If  the client n the &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;same system as  server, you can  omit 192.168.0.199 use &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;vlc  udp://@239.255.12.13&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;vlc as udp client prompt from any host on internet $:&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc  udp://milanzimmermann.com@239.255.12.13:1234 &lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;This does NOT work - because UDP port  not open in firewall??&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;No, I think this is because &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;milanzimmermann.com@239.255.12.13 indicates SOURCE-SPECIFIC-MULTICAST, but the server only provides ANY-SOURCE-MULTICAST&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;vlc as http client &lt;/b&gt;&lt;b&gt;prompt from any host on&lt;/b&gt;&lt;b&gt; localnet $:&lt;/b&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc http://192.168.0.199:1234 # This works if port 1234 is open on server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;vlc as http client prompt &lt;/b&gt;&lt;b&gt;from any host on&lt;/b&gt;&lt;b&gt; internet or localnet:&lt;/b&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vlc http://milanzimmermann.com:1234 # This works, if port 1234 is open on the server.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;http browser client &lt;/b&gt;&lt;b&gt;from any host &lt;/b&gt;&lt;b&gt;on&lt;/b&gt;&lt;b&gt; internet or localnet&lt;/b&gt;&lt;b&gt;:&lt;/b&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;type address http://milanzimmermann.com:1234 into the browser # This does NOT work as browser is not VLC client (but it can be if stream served via embed tag on html, see below) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;vlc plugin in http browser with VLC PluginFrom anywhere on the internet:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;to try this, browse to:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: yellow;"&gt;http://milanzimmermann.com/test-vlc.html&amp;nbsp; # This works, as long as the page is written correctly with the embed tag, and VLC plugin installed in the browser. See the source of the above page&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This concludes it alll.... (but test step F on source=V4l2 instead of AVI file.... and attach to the multicast via internet ... what ports does it go through?)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: yellow;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-6073770964356303566?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/6073770964356303566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=6073770964356303566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/6073770964356303566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/6073770964356303566'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2010/04/streaming-webcam-over-internet-on-linux.html' title='Webcam Stream over the Internet on Linux, with VLC and VLC-QT'/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-6453032602798367936</id><published>2009-05-06T20:48:00.000-07:00</published><updated>2009-05-09T23:46:28.539-07:00</updated><title type='text'></title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;SeasideXUL = Seaside + XUL&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;A Brief talk and links about Seaside XUL = a remotely served rich client powered by Firefox XUL and Seaside&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;What is Seaside? &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Most Smalltalk developers are familiar with Seaside: "Seaside provides a layered set of abstractions over HTTP and HTML that let us build highly interactive web applications &lt;b&gt;quickly&lt;/b&gt;, &lt;b&gt;reusably&lt;/b&gt; and &lt;b&gt;maintainably&lt;/b&gt;. "&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Main link: &lt;/span&gt;&lt;/span&gt;&lt;a href="http://seaside.st/"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://seaside.st/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Succesfully deployed applications&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Seaside tutorial &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.swa.hpi.uni-potsdam.de/seaside/tutorial"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://www.swa.hpi.uni-potsdam.de/seaside/tutorial&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Seaside links on Delicious &lt;/span&gt;&lt;/span&gt;&lt;a href="http://delicious.com/mzimmerm/seaside"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://delicious.com/mzimmerm/seaside&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Firefox&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;No introduction required&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;What is Gecko?&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Part of Firefox. Firefox rendering Engine, which renders XUL into a User Interface.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;br /&gt;&lt;li value="1"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;What is XUL?&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XUL &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;(XML User Interface Language) is Mozilla's &lt;/span&gt;&lt;/span&gt;&lt;a href="https://developer.mozilla.org/en/XML"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XML&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;-based language that lets you build feature-rich cross platform applications that can run connected or disconnected from the Internet. These applications are easily customized with alternative text, graphics and layout so they can be readily branded or localized for various markets. See &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.hevanet.com/acorbin/xul/top.xul" target="_blank"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XUL Periodic Table&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt; in Firefox or another &lt;/span&gt;&lt;/span&gt;&lt;a href="https://developer.mozilla.org/en/Gecko"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Gecko&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;-based  browser to see some XUL demos. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Also see &lt;/span&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/XUL" target="_top"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://en.wikipedia.org/wiki/XUL&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;To Run XUL, Firefox or at least Gecko must be installed locally.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XUL allows to write a web application that also run as "local native applications" - but there are some limitations such as opening local resources. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XUL Applications use"Firefox native widgets" that is, they look on every platform as Firefox, but can be skinned as any web applicatiuon can.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt; Main Link: &lt;/span&gt;&lt;/span&gt;&lt;a href="https://developer.mozilla.org/en/XUL"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;https://developer.mozilla.org/en/XUL&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XUL Tutorial: &lt;/span&gt;&lt;/span&gt;&lt;a href="https://developer.mozilla.org/en/XUL_Tutorial"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;https://developer.mozilla.org/en/XUL_Tutorial&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;my XUL links on  &lt;/span&gt;&lt;/span&gt;&lt;a href="http://delicious.com/mzimmerm/xul"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://delicious.com/mzimmerm/xul&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;How does XUL code Look? (abbreviated)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&amp;lt;?xml &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;version="1.0"?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="margin-left: 0.03cm; text-indent: 2.04cm;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;?xml-stylesheet href="chrome://global/skin" type="text/css"?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;window title="XUL Nested Trees"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;xmlns:html="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;description&amp;gt;&amp;lt;html:h1&amp;gt;XUL Nested Trees&amp;lt;/html:h1&amp;gt;&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;hbox flex="1"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;groupbox flex="2"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;tree id="tree1" flex="1" &amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecols&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecol id="sex1"   flex="1" label="Name" primary="true" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecol id="color1" flex="1" label="Color" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecol id="attr1"  flex="1" label="Attribute" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/treecols&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treechildren&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treeitem  container="true" open="true"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treerow&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;          &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecell label="Female" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/treerow&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treechildren&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;          &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treeitem&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treerow&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecell label="Pearl" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecell label="Gray" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;treecell label="Frumpy" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/treerow&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;          &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/treeitem&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;  ....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/treechildren&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;  ....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/tree&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/groupbox&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt; .......&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/hbox&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;/window&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; page-break-before: always;"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;How&lt;br /&gt;does the result of above XUL code look?&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_aE_Xchx-EIQ/SgJcDF0BpBI/AAAAAAAAAAM/Jf9vERKNM7g/s1600-h/Seaside+XUL+Brief+Presentation_html_m2997438.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 226px;" src="http://2.bp.blogspot.com/_aE_Xchx-EIQ/SgJcDF0BpBI/AAAAAAAAAAM/Jf9vERKNM7g/s320/Seaside+XUL+Brief+Presentation_html_m2997438.png" alt="" id="BLOGGER_PHOTO_ID_5332926116929840146" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;What is SeasideXUL?&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a name="Introduction"&gt;&lt;/a&gt;&lt;a name="Introduction1"&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;SeasideXUL is a web framework that enables to create thin-client desktop applications with standard look&amp;amp;feel based on remote XUL in Smalltalk. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;It is an additional layer on top of Seaside web framework. (from &lt;/span&gt;&lt;/span&gt;&lt;a href="http://code.google.com/p/seasidexul/wiki/SeasideXUL?tm=6"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://code.google.com/p/seasidexul/wiki/SeasideXUL?tm=6&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Author: Pavel Krivanek.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;PavelKrivanek's original announcement (April 2008):&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://permalink.gmane.org/gmane.comp.lang.smalltalk.squeak.seaside/15269"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://permalink.gmane.org/gmane.comp.lang.smalltalk.squeak.seaside/15269&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XULSeaside Home on Google code:&lt;/span&gt;&lt;/span&gt;&lt;a href="http://code.google.com/p/seasidexul/"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://code.google.com/p/seasidexul/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;XULSeaside packages: &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.squeaksource.com/@9coDcgoU1Gaeu7is/CORBMYCV"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://www.squeaksource.com/@9coDcgoU1Gaeu7is/CORBMYCV&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;To use XULSeaside, download and install to Squeak:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Seaside&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.squeaksource.com/@9coDcgoU1Gaeu7is/8cW7BNsz?85"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;SeasideXUL-pk.79.mcz&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;  from &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.squeaksource.com/"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://www.squeaksource.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.squeaksource.com/@9coDcgoU1Gaeu7is/CORBMYCV"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;(containsSeaside XUL core. A must to run SeasideXUL)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.squeaksource.com/@9coDcgoU1Gaeu7is/8cW7BNsz?22"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;OB-SeasideXUL-pk.20.mcz&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;   and &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.squeaksource.com/@9coDcgoU1Gaeu7is/8cW7BNsz?82"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;OB-Standard-pk.337.mcz&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;   from &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.squeaksource.com/"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://www.squeaksource.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;(Contains ability run Omnibrowser completely remotely via SeasideXUL. Can serve as a source of good examples!)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;When SeasideXUL is installed in Squeak, it runs a &lt;i&gt;Sample Seaside XUL  application&lt;/i&gt; which duplicates the XUL Periodic table.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;When OB-SeasideXUL is installed, it duplicates OB run remotely&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;Another SeasideXUL introduction:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://vst.ensm-douai.fr/Esug2008Media/uploads/1/seasidexul-EsugAwards2008.pdf"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://vst.ensm-douai.fr/Esug2008Media/uploads/1/seasidexul-EsugAwards2008.pdf&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;My Seaside XUL links: &lt;/span&gt;&lt;/span&gt;&lt;a href="http://delicious.com/mzimmerm/seaside_xul"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;http://delicious.com/mzimmerm/seaside_xul&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;A brief demo of a SeasideXUL application (visual presentation - not in this document)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-6453032602798367936?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/6453032602798367936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=6453032602798367936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/6453032602798367936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/6453032602798367936'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2009/05/seasidexul-seaside-xul-brief-talk-and.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aE_Xchx-EIQ/SgJcDF0BpBI/AAAAAAAAAAM/Jf9vERKNM7g/s72-c/Seaside+XUL+Brief+Presentation_html_m2997438.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-7471966416509677040</id><published>2009-04-26T12:58:00.000-07:00</published><updated>2009-04-26T14:10:35.657-07:00</updated><title type='text'></title><content type='html'>&lt;div style="text-align: center; font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Sugar OS Neighbourhood (F1 key):&lt;br /&gt;&lt;span style="font-size:100%;"&gt;2 VirtualBoxes running Sugar on the Same Network appear as one to jabber.sugarlabs.org&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;As I plan to plan to play with Squeak interface to &lt;a href="http://wiki.laptop.org/go/Low-level_Activity_API"&gt;Sugar / OLPC Low Level Activity API&lt;/a&gt; , which includes things like Journal interface (Datastor API), Security, and Sharing (Presence API), I wanted to first test how it works with existing Sugar Activities.&lt;br /&gt;&lt;br /&gt;I should have really started with the Journal Datastore stuff, as it does not require sharing to be setup. But sharing is the more exciting part, that I have been avoiding since I only have one OLPC, and failed to setup sharing under virtualization in the past. But now, with &lt;a href="http://wiki.sugarlabs.org/go/Sugar_on_a_Stick"&gt;Sugar on a Stick&lt;/a&gt; and mainly &lt;a href="http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/VirtualBox"&gt;Sugar in VirtualBox&lt;/a&gt;, it is easy to have two or more virtual OLPC's at home, at setup sharing. I did setup  &lt;a href="http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/VirtualBox"&gt;Sugar in VirtualBox&lt;/a&gt; ,  and was finally able to play with Presence and Activity sharing between my OLPC and a &lt;a href="http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/VirtualBox#Install_VirtualBox"&gt;virtual OLPC running Sugar on Linux (same for Windows or OS X)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Well the long story above brings me to one problem I am having. Running one instance of Sugar on OLPC, and another one in VirtualBox on another system at the same network works fine. What that means is that, on either system, I can go to the Sugar "network neighborhood" (many dots button, or F1), and the systems see each other as they are announced both through jabber.sugarlabs.org . But when I create 2 Virtualboxes on my home network, each running Sugar, only one of them has the neighborhood showing other users at a time. They clearly fight with each other - they must appear as one system to the jabber.sugarlabs.org. If one of the virtual boxes asks for it's neighborhood, it "steals" it from the other which is wiped out. I tried all possibilities VirtualBox 2.2 offers: "NAT Network", "Bridge Network", "Intenal Network", "Host only Network". (Really the only reasonable alternative for what I am doing, is the "NAT Network" or "Bridge Network"). But in all cases both VirtualBox'ed Sugar OSs appear as one to jabber - even on "Bridge Network" where both VirtualBod'ed machines ifconfig shows different IPs.&lt;br /&gt;&lt;br /&gt;I know the above is not enough info to figure out the reason, but wanted to document this in case others have the same problem and/or figured it out.&lt;br /&gt;&lt;br /&gt;I did not try netstat or other network tools to figure it out as that is usually a recipe for a lost weekend :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-7471966416509677040?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/7471966416509677040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=7471966416509677040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7471966416509677040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/7471966416509677040'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2009/04/sugar-os-neighbourhood-f1-key-2.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-2249359000980921141</id><published>2009-04-11T22:54:00.000-07:00</published><updated>2009-04-12T00:08:56.628-07:00</updated><title type='text'></title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Script which Creates Live USB from ISO  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;For OLPC XO or any system&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="font-size:100%;"&gt;(Fedora script ported to SuSE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; 11.1)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I wanted to run the Sugarlab's latest Sugar-on-Stick Soas2 on the OLPC using Live USB (Actually SD). There is a utility which uses syslinux to convert ISO to a live USB or SD or CR (or hard disk I guess), and  is here: &lt;a href="https://fedorahosted.org/liveusb-creator/"&gt;https://fedorahosted.org/liveusb-creator/&lt;/a&gt; , but underlying is really one shell script, writen originally by Jeremy Katz from Red Hat &lt;a href="http://people.sugarlabs.org/sdz/livecd-iso-to-disk.sh"&gt;http://people.sugarlabs.org/sdz/livecd-iso-to-disk.sh&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;My goal was to convert the script &lt;span style="font-weight: bold;"&gt;livecd-iso-to-disk.sh&lt;/span&gt; to SuSE and it was succesful with a few changes. (Although I ended up with many more changes of cosmetic and refactoring nature).&lt;br /&gt;&lt;br /&gt;There were some things that did not work on SuSE, a few I remember -  there was a harcoded path to "parted", a hardcoded partition id=1 which did not work for my SD on SuSE (partition id=p1 e.g. /dev/mmcblk0p1). Also I neede later version of syslinux then SuSE version of syslinux, which was missing gptmbr.bin for the Extensible Firmware Interface option.&lt;br /&gt;&lt;br /&gt;Also I added lots of comments on top. This script is amazing, it does the whole process of creating Live USB and has tons of options, including format, ability to create "home image" on the USB which is not overwritten with an update, contains the OLPC boot Forth script etc etc. Thanks Red Hat.&lt;br /&gt;&lt;br /&gt;The script now runs on SuSE and it is on the below. I would be interested to know if it still runs on Fedora (it should) and other distros (I do not know).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://squeakers.ca/livecd-iso-to-disk.sh"&gt;Here is the version with my changes&lt;/a&gt;. The most significant "functional" difference is the added last parameter, partition name (which could be "1" for the USB, "p1" for SD but it will depend on the distro).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-2249359000980921141?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/2249359000980921141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=2249359000980921141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/2249359000980921141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/2249359000980921141'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2009/04/script-which-creates-live-usb-from-iso.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-2703338382856923218</id><published>2008-10-18T22:05:00.000-07:00</published><updated>2008-10-19T07:20:55.464-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='olpc laptop 100 dollar laptop'/><title type='text'></title><content type='html'>&lt;h1&gt;New OLPC Laptop Give 1 Get 1 Program&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;OLPC renewed the G1G1 program, available at&lt;br /&gt;&lt;br /&gt;   http://amazon.com/xo &lt;br /&gt;&lt;br /&gt; as of November 17, 2008&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-2703338382856923218?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/2703338382856923218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=2703338382856923218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/2703338382856923218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/2703338382856923218'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2008/10/new-olpc-laptop-give-1-get-1-program.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-116391982133332375</id><published>2006-11-18T22:56:00.000-08:00</published><updated>2006-11-18T23:08:05.243-08:00</updated><title type='text'></title><content type='html'>&lt;h1&gt;OLPC Close to Mass Production and Java Free Source&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;Two important events happened this week, the first is closer to my heart. The One Laptop Per Child hardware had &lt;a href="http://www.desktoplinux.com/news/NS9910170884.html"&gt;first few hundreds laptops assembled &lt;/a&gt; by Quanta. The hardware and software contains some real innovation, it costs a third and uses a tenth of power compared to what the biggest companies can muster. Sure sign of a good thing when Microsoft and Intel complain about it. It also has Squeak and &lt;a href="http://www.squeakland.org"&gt;eToys&lt;/a&gt; installed! I love it.&lt;br /&gt;&lt;br /&gt;Java went free source, and it was very wise from Sun to use GPL. I think that is the only way to prevent fragmentation. Also a good sign that IBM has already complained about  Sun's use of licence!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-116391982133332375?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/116391982133332375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=116391982133332375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/116391982133332375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/116391982133332375'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/11/olpc-close-to-mass-production-and-java.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-115924921565815042</id><published>2006-09-25T22:34:00.000-07:00</published><updated>2009-05-29T07:55:08.627-07:00</updated><title type='text'></title><content type='html'>&lt;h2&gt;&lt;b&gt;Electrical Battery (sounds more like a Capacitor) for tomorrow.&lt;/b&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;If this turns out realistic....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://money.cnn.com/2006/09/15/technology/disruptors_eestor.biz2/index.htm"&gt;http://money.cnn.com/2006/09/15/technology/disruptors_eestor.biz2/index.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But, we need to make sure to feed the power grids with non-CO2 ways to produce electricity, mostly nuclear or eventually fusion!&lt;br /&gt;&lt;br /&gt;Update: May 2009 - does not seem like they got very far in almost 3 years...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-115924921565815042?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/115924921565815042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=115924921565815042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115924921565815042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115924921565815042'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/09/electrical-battery-sounds-more-like.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-115699850368485451</id><published>2006-08-30T21:15:00.000-07:00</published><updated>2006-08-30T21:28:23.723-07:00</updated><title type='text'></title><content type='html'>&lt;h2&gt;Swarm of Artificial Flying and Cooperating Robotic Insects&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Looks like The Guardian has a few peaceful usages I asked about for the artificial insects from my &lt;a href="http://mzimmerm.blogspot.com/2006/07/swarm-of-artificial-flying-and.html"&gt;blog a few months back&lt;/a&gt;. This &lt;a href="http://www.guardian.co.uk/science/story/0,,1860825,00.html?gusrc=rss&amp;amp;feed=18"&gt;link  here&lt;/a&gt; talks about autopilot airplanes, but the use can be similar: Monitor the environment, find shoals of fish (does not sound "environmental" to me), "aid the police in controlling crowds and traffic" (crowds, excuse me?) - well I will stop there, read it, it all sounds a bit lame, but they are trying. The article talks about such drones needing flight clearance etc. I wonder if insect-size drone would still need a flight clearance ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-115699850368485451?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/115699850368485451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=115699850368485451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115699850368485451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115699850368485451'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/08/swarm-of-artificial-flying-and.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-115241805436367652</id><published>2006-07-08T21:00:00.000-07:00</published><updated>2006-07-08T21:07:34.376-07:00</updated><title type='text'></title><content type='html'>&lt;h2&gt;&lt;b&gt;Short Roots of Human Tree&lt;/b&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Once at it, there is another article related to another interest of mine: Whoever you are reading this, you and I share an ancestor who may have lived as late as 2 thousand years ago! &lt;br /&gt;&lt;br /&gt;So if you consider to make a not-so-nice comment to this blog, beware: you are my dear relative!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://news.yahoo.com/s/ap/20060701/ap_on_sc/brotherhood_of_man"&gt;Roots of human family tree are shallow&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-115241805436367652?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/115241805436367652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=115241805436367652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115241805436367652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115241805436367652'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/07/short-roots-of-human-tree-once-at-it.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-115241759032216855</id><published>2006-07-08T20:15:00.000-07:00</published><updated>2006-07-08T20:59:50.353-07:00</updated><title type='text'></title><content type='html'>&lt;h2&gt;&lt;b&gt;Swarm of Artificial Flying and Cooperating Robot Insect&lt;/b&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;This week I came across something that renewed my old dream to build, one day, a swarm of robotic flying, cooperating, self-sustaining insects. A dream as close as old-fashion cellulose. Apparently, cellulose is piezo-electric, and the pictures they show have a bonus - the insect is my favorite dragonfly (ok, perhaps dragonflies are not insects but they are super-cool)&lt;br /&gt;&lt;br /&gt;The article describing it is &lt;a href="http://sciencenow.sciencemag.org/cgi/content/full/2006/629/1"&gt;here&lt;/a&gt;, the dragonflies are &lt;a href="http://blogs.zdnet.com/emergingtech/?p=282"&gt;in a blog here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What is boring about all these is everyone get immediately excited about a military use of those things. Can nobody think of a peaceful use? Protecting crops from insects? Monitoring wheather? Hey, swarm, get me some water , each a drop, into my glass :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-115241759032216855?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/115241759032216855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=115241759032216855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115241759032216855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115241759032216855'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/07/swarm-of-artificial-flying-and.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-115059598845353484</id><published>2006-06-17T18:30:00.000-07:00</published><updated>2006-07-08T20:14:56.010-07:00</updated><title type='text'></title><content type='html'>&lt;b&gt;Making a Website with  &lt;a href="http://seaside.st"&gt;Seaside&lt;/a&gt; on &lt;a href="http://squeak.org"&gt;Squeak&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Last month, the hockey team I play hockey with in a (low key) league, asked me to setup a website where players could register and mark themselves as "Available", or 'Not Available', so we can keep track how many players can make it for the next game, and someone does not have to spend time counting email responses before calling substitutes if too few players can make it.&lt;br /&gt;&lt;br /&gt;While the user interface for such website is simple, websites that maintain persistent data are not completely trivial, for the simple fact of having to introduce persistence.&lt;br /&gt;&lt;br /&gt;I decided to use  &lt;a href="http://seaside.st"&gt;Seaside&lt;/a&gt; for the job and I have to say, it was a super-pleasant experience from the start to the end!&lt;br /&gt;&lt;br /&gt;I have not looked at much Seaside code before, and it took two late nights (about 15 hours), much of which was to learn seaside basics and then figure out how to force KomHttpServer load images. The result is a decent looking functional site with persistance, that already served the team well and helped us not to miss any games short of players.&lt;br /&gt;&lt;br /&gt;To get the a few things out of the way, the code is not a pinnacle of software engineering, but is was not intended to be. The main thing I do not like the entanglement of "application code" and user interface I end up with in my HockeyWebsiteWAComponent&gt;&gt;renderContentOn:. But the business code amount to a few lines of code and I just wanted something simple, so I am excusing myself, and next will be architecturally sounder.&lt;br /&gt;&lt;br /&gt;Apart from that, everything was very simple. While working on it, &lt;br /&gt;&lt;br /&gt;&lt;nl&gt;&lt;br /&gt;&lt;li&gt;I had these sites opened in browser at all times:&lt;br /&gt;&lt;br /&gt; David Shaffer's Seaside Tutorial &lt;a href="http://www.shaffer-consulting.com/david/Seaside/"&gt;here.&lt;/a&gt;&lt;br /&gt; &lt;a href="http://www.seaside.st"&gt; The Seaside main site.&lt;/a&gt;&lt;br /&gt; &lt;a href="http://beta4.com/seaside2/tutorial.html"&gt;The tutorial linked from the above site.&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt; I kept hese classes in Squeak browser to find how to generate html tags:&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;WAAbstractHtmlBuilder&lt;br /&gt; WAHtmlRenderer&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; From the tutorial, I figured the best way to build a simple site is to subclass WAComponent and override it's WAComponent&gt;&gt;renderContentOn: method. From there, it was just to work out the details of writing the html tags and adding the (simple) application code in blocks. I was surprised how "easy going and natural" (at least to my brain) it was to work it out in Seaside.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;For persistence, I simply store the image every 60 minutes (can be made more frequent). This is just one of many great things that Smalltalk having an image is so cool for - I think that for 90% of applications this is perfectly sufficient, and developer has persistence virtually for free. The code is borrowed from an older Goran Krampe's email on squeak-dev (See HockeyUtilities.st)&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;For data structures, I simply populate a singleton (for example, HockeyPlayers class&gt;&gt;getInstance, GameDates class&gt;&gt;getInstance serve as "players table" and "gameDates table".&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/nl&gt;&lt;br /&gt;&lt;br /&gt;A few comments at the end:&lt;br /&gt;==========================&lt;br /&gt;&lt;br /&gt; a) I used Seaside 2.5, and when writing the html the HTML code kept going a bit mure cluttered then I liked, yet on Google I kept coming up with results that showed more elegant API that would not clutter. I think this is Seaside 2.6, so  anyone reading this about to learn Seaside I think it makes sense to start with Seaside 2.6 http://www.seaside.st/Download/Images/&lt;br /&gt;&lt;br /&gt; b) It would be good to have a (x)html to Seaside converter. One reason is that some companies designers use html/css to for initial design, expecting the resulting page will use the html code they created.&lt;br /&gt;&lt;br /&gt; c) You can look at the site (with removed players personal info) is &lt;a href="http://squeakers.ca:9091/seaside/hockey"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; d) &lt;a href="http://squeakers.ca:9091/how-to-run-application.txt"&gt;Notes on how to create and run the application&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; e) The classes can be downloaded here:&lt;br /&gt;&lt;br /&gt;  &lt;a href="http://squeakers.ca:9091/MzHockeyWebsiteWAComponent.st"&gt;HockeyWebsiteWAComponent&lt;/a&gt;&lt;br /&gt;  &lt;a href="http://squeakers.ca:9091/HockeyPlayers.st"&gt;HockeyPlayers&lt;/a&gt;&lt;br /&gt;  &lt;a href="http://squeakers.ca:9091/HockeyUtilities.st"&gt;Utilities (persistence)&lt;/a&gt;&lt;br /&gt;  &lt;a href="http://squeakers.ca:9091/HockeyPlayer.st"&gt;HockeyPlayer&lt;/a&gt;&lt;br /&gt;  &lt;a href="http://squeakers.ca:9091/GameDates.st"&gt;GameDates&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps .. and I had to share how good &lt;a href="http://seaside.st"&gt;Seaside&lt;/a&gt; on &lt;a href="http://squeak.org"&gt;Squeak&lt;/a&gt; is :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-115059598845353484?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/115059598845353484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=115059598845353484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115059598845353484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/115059598845353484'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/06/making-website-with-seaside-on-squeak.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-114351803826414892</id><published>2006-03-27T19:41:00.000-08:00</published><updated>2006-03-27T19:53:58.280-08:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Software Industry / Computer Science Forgetting it's History. (Albert Einstein and Alan Kay)&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;It is now about 35 years since the term Object Oriented was coined, and first implementations of an Object Oriented system started to be built in the Xerox-PARC research group. It is amazing what this group achieved in the 10 years between 1970 and 1980:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;- For all practical purposes, invented personal computing, including what later became "the laptop".&lt;/li&gt;&lt;br /&gt; &lt;li&gt;- Built implementations of Smalltalk, first Object system, Late-bound, using a Virtual Machine, Collection library etc (stuff that Java took and brought to the masses).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;- Overlapping windows, method to put graphics on the screen was invented and implemented.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;- First Laser printer was built.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;This research did rest on shoulders of other giants, underlying reseach and ideas were developed in the 1960s in Lisp, Simula and other languages, people like Sutherland, Engelbart, and others, but most of these things have one name on it:&lt;br /&gt;&lt;p&gt;&lt;br /&gt; &lt;b&gt;Alan Kay&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;What is interesting to me, is a comparison of general awareness of how much Alan Kay ment for "Computer Science" with what people like Einstein, Pauli, Heisenberg and others ment to physics at the beginning of the 20th century. &lt;br /&gt;&lt;p&gt;&lt;br /&gt;35 years after special theory of relativity was about 1940, 35 years after beginnings of Quantum Theory was roughly 1955-1960. I am sure in 1940 any physics university student knew who Einstein was, and I am sure in 1955 any physics student knew the names of Pauli and Heisenberg and their contribution to physics. In fact, I would bet many high school students those years knew these names and had some idea what these people did.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Yet, 35 years after these ideas were gelled, I am yet to find a workplace, with computer development professionals using "Object Oriented Technologies" who would not wonder "Alan Kay who?". At the best people have some idea Smalltalk existed (and mostly think it's dead). All people know is Bill Gates and Steve Jobs, who both just borrowed his stuff... Engelbart, at best is remembered as "inventor of the mouse" yet he did so much more.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I do not know what this ignorance means, perhaps just that the mainstream computing is not much of a science but more or less a glorified fashion industry (well, not even glorified)!&lt;br /&gt;&lt;p&gt;&lt;br /&gt;PS: Also amusing is that in 2006 that I am manually entering &amp;lt; p &amp;gt; &amp;lt;b&amp;gt; and other symbols (as at-ld-semicolon if I want to show them) right into the blog text to format it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-114351803826414892?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/114351803826414892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=114351803826414892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/114351803826414892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/114351803826414892'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/03/software-industry-computer-science.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-114351709624250462</id><published>2006-03-27T19:36:00.000-08:00</published><updated>2006-03-27T19:38:16.253-08:00</updated><title type='text'></title><content type='html'>A few of my friends were following my blog when I started but I let them down by not writing :( so I will try to post more often.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-114351709624250462?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/114351709624250462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=114351709624250462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/114351709624250462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/114351709624250462'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2006/03/few-of-my-friends-were-following-my.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-113486610367001618</id><published>2005-12-17T16:14:00.000-08:00</published><updated>2005-12-17T16:35:25.543-08:00</updated><title type='text'></title><content type='html'>&lt;h2&gt;Stem Cell Research - Mankind must be still in the Stone Age of this Research&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Reading the article &lt;a href="http://www.informit.com/articles/article.asp?p=424446"&gt;Stem Cells and the Experiment That Shook the World&lt;/a&gt;, I am thinking we must still be in the flint-shaping age of this, given how crude the tools are. The article describes how James Thomson started his ground-breaking experiment: "With a microscope, a steady hand, and a very thin, hollow glass needle, Thomson removed the clump of cells from inside the sphere and placed them in a laboratory culture dish". Then later, to show the stem cells can be converted into any type of tissue: "...the human cells from the culture dishes and injected them into experimental mice. These mice are engineered to lack an immune system so they do not reject the human cells. Once in the mice, the human cells divided rapidly and formed tumor-like structures made up of all the major human tissue types, including skin, muscle, and bone. "&lt;br /&gt;&lt;br /&gt;Excuse me? "steady hand, and hollow needle" and later "inject them into experimental mice" are what it takes to be able to be healing diabetes, spine injuries and who knows what else? Compare those primitive tools with electronic microscopes, particle accelerators and other tools physics uses (or any other branch of science). We are still at the alchymist level here - "pour them together and see what happens". It seems we need a much deeper understanding of these processes and much better tools to take to the next stage. This is just a beginning of a long process!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-113486610367001618?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/113486610367001618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=113486610367001618' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/113486610367001618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/113486610367001618'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2005/12/stem-cell-research-mankind-must-be.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-113229075863394512</id><published>2005-11-17T20:44:00.000-08:00</published><updated>2005-11-17T21:12:38.643-08:00</updated><title type='text'></title><content type='html'>Microsoft Monopoly, Schools, and Family Feuds.&lt;br /&gt;&lt;br /&gt;My twin daughters are first year high school this year, they are taking a business course which teaches basics of internet, word processing, spreadsheet and so on. A pretty good course, well designed and taught. The problem is that it only uses (and assumes the kids have at home) Microsoft operating system, and Microsoft office, as there is always some stuff to be finished at home, mailed back and forth to work on it some more at school next day. &lt;br /&gt;&lt;br /&gt;The Microsoft-centric approach of the course is a problem at our home, because I was banning installing Microsoft products at any home computer. The girls have learned (ok, forced to learn)  to work in OpenOffice, but over certain complexity of the document, saving stuff in OpenOffice as doc and opening it in school next day in MS-word only brings sweat and tears. It is simply impossible, after  several evenings of shouts "I hate this Linux thing" I broke down and installed an old version of Windows at home. Of course it is too old, and cannot open the new formats they work in school with, so the girls outsmarted me, and simply stay longer at school to finish their projects there in the cozy Microsoft-only environment. Family friendly.&lt;br /&gt;&lt;br /&gt;What is interesting in all this, is the Ontario School System purchased Sun's StarOffice with province-wide license. But no one is using it, and no one at all is teaching using it. So that is an interesting conundrum, why did Ontario spent my and other's tax-dollars for it? The problem is likely the generic herd behaviour, if the teachers were teaching it using non-Microsoft products, I can hear the parents shouting "why do you teach something my kids will not be able to use at future work" etc.&lt;br /&gt;&lt;br /&gt;So all this contributes to the fact that weaning off the Microsoft stuff will take much longer than I thought. But it will happen. I will take either a generation (start counting in 1990, so by 2015 we should be there :) ), or (more likely) a paradigm shift, invalidation of this "computer = office suite + IE" view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-113229075863394512?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/113229075863394512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=113229075863394512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/113229075863394512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/113229075863394512'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2005/11/microsoft-monopoly-schools-and-family.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-113021762332688529</id><published>2005-10-24T22:19:00.000-07:00</published><updated>2005-10-24T22:20:23.440-07:00</updated><title type='text'></title><content type='html'>From an interview with Open Office contributor Louis Suarez-Potts&lt;br /&gt;(oct 25, 2005)&lt;br /&gt;&lt;br /&gt;http://madpenguin.org/cms/index.php/?m=show&amp;id=5370&amp;page=2&lt;br /&gt;&lt;br /&gt;We support over 50 language projects. And every major Linux distributor is involved in the project, with companies like Novell, Red Hat, Mandriva, Propylon; organizations like Debian, and so on participating in building the code. I'm not even counting the hundreds of independent groups and individuals localizing and porting the source. And now, governments are getting into the act. I feel immensely proud and optimistic when governments like those of Brazil, Massachusetts, Vienna, and parts of the French administrations adopt Openoffice.org, even though I personally have had little to do in making the code. Being part of the community has never felt so good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-113021762332688529?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/113021762332688529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=113021762332688529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/113021762332688529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/113021762332688529'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2005/10/from-interview-with-open-office.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17607636.post-112983764256630038</id><published>2005-10-20T12:25:00.000-07:00</published><updated>2005-10-20T13:16:13.213-07:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;CSS and the Monopoly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Last weekend, I have played with CSS after a while. Testing some advanced features, in SeaMonkey and Firefox, I found several things that work there, but do not work in Internet explorer. Expected. So I started to Google around for how to fix that. I have done that for a few things, spend half of my weekend googling, and suddenly it hit me: At least one of the things I had clearly not working in IE was CSS1. 1996 stuff. Here we are in 2005, and the world is spending incredible amount of energy, resources and time that could be used creatively, to bypass errors that, under normal competitive situation, would have been fixed years and years ago. Of course they rely on the fact that developers will finally only ever develop and test on Internet Explorer, because it is impossible to write code that adheres to standards, and works on Microsoft stuff, and it is twice the time to write stuff that does both. Another facet of how monopoly is bad for us all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17607636-112983764256630038?l=mzimmerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mzimmerm.blogspot.com/feeds/112983764256630038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17607636&amp;postID=112983764256630038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/112983764256630038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17607636/posts/default/112983764256630038'/><link rel='alternate' type='text/html' href='http://mzimmerm.blogspot.com/2005/10/css-and-monopoly.html' title=''/><author><name>Milan Zimmermann</name><uri>http://www.blogger.com/profile/06130529253933897179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
