<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0EBQXc6fyp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-18434712</id><updated>2011-11-28T09:54:10.917+09:00</updated><category term="PHP" /><category term="AOP" /><category term="Reading" /><category term="App Server" /><category term="Web 2.0" /><category term="DSL" /><category term="twitter" /><category term="Concurrency" /><category term="Web Services" /><title>W8: Watching What Weaves Wildly-Wagging WWW - Michiaki Tatsubori</title><subtitle type="html">I would like to leave my memos related to my "kung-fu" for some technology insights.  Kung-fu doesn't only mean a battle style, but means hacking one's own life.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://tatsubori.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MichiakiTatsuborisTechnicalNewsWatch" /><feedburner:info uri="michiakitatsuboristechnicalnewswatch" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry gd:etag="W/&quot;CUMFQXwyeip7ImA9WxBaEEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-6795653496498802571</id><published>2010-03-20T00:42:00.001+09:00</published><updated>2010-03-20T00:43:30.292+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-20T00:43:30.292+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><title>PHP compilers shootout</title><content type="html">Here is a fairly nice summary of recent PHP compilation technolgoies.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html"&gt;PHP compilers shootout&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-6795653496498802571?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/Ci-FyBOJg6s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/6795653496498802571/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=6795653496498802571" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6795653496498802571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6795653496498802571?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/Ci-FyBOJg6s/php-compilers-shootout.html" title="PHP compilers shootout" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2010/03/php-compilers-shootout.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ERnczcCp7ImA9WxBUEUo.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-5201700127245051121</id><published>2010-02-26T17:32:00.003+09:00</published><updated>2010-02-26T17:43:27.988+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-26T17:43:27.988+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><category scheme="http://www.blogger.com/atom/ns#" term="AOP" /><title>Today's Paper: Multiple Dispatch Study</title><content type="html">A paper in OOPSLA 2008, "Multiple Dispatch in Practice" has a very good introductory on multiple-dispatching, method implementation selection based on the runtime types of not only the first argument (this) but all the arguments.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Muschevich, et al., Multiple Dispatch in Practice, OOPSLA 2008 [&lt;a href="http://doi.acm.org/10.1145/1449764.1449808"&gt;EE&lt;/a&gt;]&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In addition to an empirical study of the use of multiple dispatch in practice, the paper starts from a brief history and overview of multiple dispatch, which is brilliant.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-5201700127245051121?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/hAq23qCHsCw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/5201700127245051121/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=5201700127245051121" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5201700127245051121?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5201700127245051121?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/hAq23qCHsCw/todays-paper-multiple-dispatch-study.html" title="Today's Paper: Multiple Dispatch Study" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2010/02/todays-paper-multiple-dispatch-study.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QHRHs6fSp7ImA9WxVQGEU.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-3691342798238822811</id><published>2009-01-06T11:51:00.001+09:00</published><updated>2009-02-06T12:02:15.515+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-06T12:02:15.515+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Concurrency" /><title>Today's Book: The Art of Multiprocessor Programming</title><content type="html">The Art of Multiprocessor Programming is a new FIRST-READ book for concurrency study.&lt;br /&gt;&lt;br /&gt;This book comprehensively presents the principles and tools available for programming multiprocessor machines.  It is of immediate use to programmers working with the new architectures.   The authors are the leaders in this research community.   Sample programs are written in Java.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=tatsuborine02-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0123705916&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&amp;amp;nou=1" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-3691342798238822811?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/173VtCh9QWA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/3691342798238822811/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=3691342798238822811" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/3691342798238822811?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/3691342798238822811?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/173VtCh9QWA/todays-book-art-of-multiprocessor.html" title="Today's Book: The Art of Multiprocessor Programming" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2009/01/todays-book-art-of-multiprocessor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAFQn05eCp7ImA9WxRWGU4.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-8065497368229930423</id><published>2008-10-29T10:15:00.005+09:00</published><updated>2008-11-06T09:18:33.320+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-06T09:18:33.320+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><category scheme="http://www.blogger.com/atom/ns#" term="Web 2.0" /><title>XHR Caching Test Catch-up</title><content type="html">I examined recent Web Browser implementation with XMLHttpRequest Caching Test, which was posted by mnot, 2 years ago.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mnot.net/javascript/xmlhttprequest/cache.html"&gt;XMLHttpRequest Caching Test&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The set of browsers I examined includes the latest stable Windows versions of Mozilla Firefox, Microsoft Internet Explorer, Opera, Apple Safari, and Google Chrome.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FhkDQYaHE4g/SRI3vkGRrSI/AAAAAAAAAMI/r5Key90TqUU/s1600-h/browsercaches.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 209px;" src="http://4.bp.blogspot.com/_FhkDQYaHE4g/SRI3vkGRrSI/AAAAAAAAAMI/r5Key90TqUU/s400/browsercaches.png" alt="" id="BLOGGER_PHOTO_ID_5265332204632911138" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-8065497368229930423?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/566wuG7nRuE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/8065497368229930423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=8065497368229930423" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/8065497368229930423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/8065497368229930423?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/566wuG7nRuE/xhr-caching-test-catch-up.html" title="XHR Caching Test Catch-up" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_FhkDQYaHE4g/SRI3vkGRrSI/AAAAAAAAAMI/r5Key90TqUU/s72-c/browsercaches.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/10/xhr-caching-test-catch-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04MRHY5eSp7ImA9WxRWEU8.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-6027341316354438835</id><published>2008-10-28T00:33:00.000+09:00</published><updated>2008-10-28T00:39:45.821+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-28T00:39:45.821+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><category scheme="http://www.blogger.com/atom/ns#" term="Web 2.0" /><title>Today's Paper: MapJAX: Data Structure Abstractions for Ajax (USENIX 2007)</title><content type="html">A model paper for discussing based on Ajax-like technologies.  I have just found a PDF file of this paper in many icons on my desktop...&lt;br /&gt;&lt;br /&gt;Title:&lt;br /&gt;MapJAX: Data Structure Abstractions for Asynchronous Web Applications&lt;br /&gt;&lt;br /&gt;Authors:&lt;br /&gt;Daniel S. Myers, Jennifer N. Carlisle, James A. Cowling, and Barbara H. Liskov, MIT CSAIL&lt;br /&gt;&lt;br /&gt;EE:&lt;br /&gt;http://www.usenix.org/events/usenix07/tech/myers.html&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;&lt;br /&gt;The current approach to developing rich, interactive web applications relies on asynchronous RPCs (Remote Procedure Calls) to fetch new data to be displayed by the client. We argue that for the majority of web applications, this RPC-based model is not the correct abstraction: it forces programmers to use an awkward continuation-passing style of programming and to expend too much effort manually transferring data. We propose a new programming model, MapJAX, to remedy these problems. MapJAX provides the abstraction of data structures shared between the browser and the server, based on the familiar primitives of objects, locks, and threads. MapJAX also provides additional features (parallel for loops and prefetching) that help developers minimize response times in their applications. MapJAX thus allows developers to focus on what they do best-writing compelling applications-rather than worrying about systems issues of data transfer and callback management.&lt;br /&gt;&lt;br /&gt;We describe the design and implementation of the MapJAX framework and show its use in three prototypical web applications: a mapping application, an email client, and a search-autocomplete application. We evaluate the performance of these applications under realistic Internet latency and bandwidth constraints and find that the unoptimized MapJAX versions perform comparably to the standard AJAX versions, while MapJAX performance optimizations can dramatically improve performance, by close to a factor of 2 relative to non-MapJAX code in some cases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-6027341316354438835?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/rkDYcRpg-9o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/6027341316354438835/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=6027341316354438835" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6027341316354438835?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6027341316354438835?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/rkDYcRpg-9o/todays-paper-mapjax-data-structure.html" title="Today's Paper: MapJAX: Data Structure Abstractions for Ajax (USENIX 2007)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/10/todays-paper-mapjax-data-structure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUDQXg_eyp7ImA9WxRXGEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-3954843376559056596</id><published>2008-10-13T22:21:00.001+09:00</published><updated>2008-10-24T10:37:50.643+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T10:37:50.643+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Person: Mr. Software Rejuvenation Never Aging</title><content type="html">&lt;span class="Apple-style-span" style=";font-family:Verdana;font-size:100%;"  &gt;Software rejuvenation is a proactive fault management technique for preventing the occurrence of severe crash failures in the future by cleaning up the state of a system.  As bug-zero software is almost impossible, it is a practical solution to provide a robust system.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:Verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:Verdana;font-size:100%;"  &gt;Prof. Kishor Trivedi and his group has contributed a lot to this area. Their webpage presents very useful information for studying the cutting-edge of this research, including &lt;a href="http://srejuv.ee.duke.edu/shaman02_keynote_trivedi_web.htm"&gt;Prof. Trivedi's keynote speeches&lt;/a&gt;, &lt;a href="http://srejuv.ee.duke.edu/papers.htm"&gt;many conference/journal papers&lt;/a&gt;, and &lt;a href="http://srejuv.ee.duke.edu/articles.htm"&gt;whitepapers&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:Verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:Verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-3954843376559056596?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/SqNNDpZHTI0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/3954843376559056596/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=3954843376559056596" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/3954843376559056596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/3954843376559056596?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/SqNNDpZHTI0/todays-person-mr-software-rejuvenation.html" title="Today's Person: Mr. Software Rejuvenation Never Aging" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/10/todays-person-mr-software-rejuvenation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AGR3Y-eip7ImA9WxRXGEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-5687719078414831656</id><published>2008-09-12T23:32:00.001+09:00</published><updated>2008-10-24T10:28:46.852+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T10:28:46.852+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><title>The Best Introduction to InvokeDynamic (JSR 292)</title><content type="html">Charles Nutter, the JRuby development lead, posted an extensive introductory article on the road towards JSR 292 Supporting Dynamically Typed Languages on the Java Platform (a.k.a. invokedynamic).  According to his experience with prototyping of JRoby using InvokeDynamic, he has explained how we can leverage the coming feature of JVM.  He also mentions things that are not covered in the current draft of the specification (EDR), such as AnonymousClassLoader, which are critical to support dynamic languages on top of the Java platform.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Charles Nutter, First taste of InvokeDynamic:&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.headius.com/2008/09/first-taste-of-invokedynamic.html"&gt;http://blog.headius.com/2008/09/first-taste-of-invokedynamic.html&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-5687719078414831656?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/z9O07yzrRmU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/5687719078414831656/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=5687719078414831656" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5687719078414831656?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5687719078414831656?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/z9O07yzrRmU/best-introduction-to-invokedynamic-jsr.html" title="The Best Introduction to InvokeDynamic (JSR 292)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/09/best-introduction-to-invokedynamic-jsr.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EEQXo9fCp7ImA9WxRXGEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-5695745578097843450</id><published>2008-09-02T10:15:00.000+09:00</published><updated>2008-10-24T10:26:40.464+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T10:26:40.464+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web 2.0" /><title>Google Chrome Explained in a Comic Book</title><content type="html">The brilliant design of Google Chrome Web browser is explained in a comic style, including its per-tab process, hidden-class optimization in the V8 JavaScript engine, user interfaces, and so far.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.agglom.com/webslideshow/1876/Google_Chrome_The_Comic_Book"&gt;Google Chrome the Comic Book&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;It is a model technology show case displaying fairly deep technologies in attractive words of brevity and clarity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-5695745578097843450?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/cgm8ob-_PfQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/5695745578097843450/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=5695745578097843450" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5695745578097843450?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5695745578097843450?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/cgm8ob-_PfQ/google-chrome-explained-in-comic-book.html" title="Google Chrome Explained in a Comic Book" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/09/google-chrome-explained-in-comic-book.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcDSHw8cSp7ImA9WxRXGEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-6502219345973262818</id><published>2008-07-19T16:23:00.000+09:00</published><updated>2008-10-24T11:07:59.279+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T11:07:59.279+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Paper: Follow-ups for Google's MapReduce</title><content type="html">Ralf Lämmel: Google's MapReduce programming model - Revisited. Sci. Comput. Program. 70(1): 1-30 (2008)&lt;br /&gt;http://dx.doi.org/10.1016/j.scico.2007.07.001&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Google’s MapReduce programming model serves for processing large data sets in a massively parallel manner. We deliver the first rigorous description of the model including its advancement as Google’s domain-specific language Sawzall. To this end, we reverse-engineer the seminal papers on MapReduce and Sawzall, and we capture our findings as an executable specification. We also identify and resolve some obscurities in the informal presentation given in the seminal papers. We use typed functional programming (specifically Haskell) as a tool for design recovery and executable specification. Our development comprises three components: (i) the basic program skeleton that underlies MapReduce computations; (ii) the opportunities for parallelism in executing MapReduce computations; (iii) the fundamental characteristics of Sawzall’s aggregators as an advancement of the MapReduce approach. Our development does not formalize the more implementational aspects of an actual, distributed execution of MapReduce computations.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jeffrey's MapReduce papers and Talk:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Jeffrey Dean, Sanjay Ghemawat: MapReduce: simplified data processing on large clusters. Commun. ACM 51(1): 107-113 (2008)&lt;br /&gt;http://doi.acm.org/10.1145/1327452.1327492&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Jeffrey Dean: MapReduce and Other Building Blocks for Large-Scale Distributed Systems at Google. Invited Talk at USENIX Annual Technical Conference 2007&lt;br /&gt;http://www.usenix.org/media/events/usenix07/tech/mp3/dean.mp3&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/18434712-6502219345973262818?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/g0T8MZjHFuY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/6502219345973262818/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=6502219345973262818" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6502219345973262818?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6502219345973262818?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/g0T8MZjHFuY/todays-paper-follow-ups-for-googles.html" title="Today's Paper: Follow-ups for Google's MapReduce" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/07/todays-paper-follow-ups-for-googles.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YHQno_fSp7ImA9WxRWFEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-2765710655619991947</id><published>2008-05-30T08:50:00.000+09:00</published><updated>2008-10-31T08:58:53.445+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-31T08:58:53.445+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><title>Today's Paper: Groovy O/R Mapping in ACM Queue</title><content type="html">Chris Richardson has an ACM Queue article on O/R Mapping frameworks for dynamic languages, referring GORM (Groovy O/R Mapping).  He successfully introduces GORM by highlighting its difference from Java's solution, Hybernate.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://doi.acm.org/10.1145/1394127.1394140"&gt;ORM in Dynamic Languages&lt;br /&gt;&lt;br /&gt;Volume 6 ,  Issue 3  (May/June 2008)&lt;br /&gt;Object-Relational Mapping&lt;br /&gt;FEATURE: Q focus: Object-Relational Mapping&lt;br /&gt;Pages 28-37 &lt;br /&gt;Year of Publication: 2008&lt;br /&gt;ISSN:1542-7730&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Author:&lt;br /&gt;Chris Richardson&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;A major component of most enterprise applications is the code that transfers objects in and out of a relational database. The easiest solution is often to use an ORM (object-relational mapping) framework, which allows the developer to declaratively define the mapping between the object model and database schema and express database-access operations in terms of objects. This high-level approach significantly reduces the amount of database-access code that needs to be written and boosts developer productivity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-2765710655619991947?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/RI3lC4i2RWU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/2765710655619991947/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=2765710655619991947" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/2765710655619991947?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/2765710655619991947?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/RI3lC4i2RWU/todays-paper-groovy-or-mapping-in-acm.html" title="Today's Paper: Groovy O/R Mapping in ACM Queue" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/05/todays-paper-groovy-or-mapping-in-acm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAHRHYzfSp7ImA9WxFWGUw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-7085522114727291299</id><published>2008-05-13T21:22:00.000+09:00</published><updated>2010-06-07T21:28:55.885+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-07T21:28:55.885+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="twitter" /><category scheme="http://www.blogger.com/atom/ns#" term="Web 2.0" /><title>Best Twitter Architecture Introductory</title><content type="html">Alex Iskold posted an excellent article on the architecture of the Twitter platform.  It clearly explains what are problems and how they are solved in terms of relational DB and Computing Clouds.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.readwriteweb.com/archives/making_twitter_scale.php"&gt;Twitter and the Architectural Challenges of Life Streaming Applications&lt;/a&gt;, Alex Iskold (May 12, 2008)&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/18434712-7085522114727291299?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/FGKS637QYPg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/7085522114727291299/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=7085522114727291299" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/7085522114727291299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/7085522114727291299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/FGKS637QYPg/best-twitter-architecture-introductory.html" title="Best Twitter Architecture Introductory" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/05/best-twitter-architecture-introductory.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBSHs9eCp7ImA9WxRXGEs.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-8799559805451258615</id><published>2008-04-22T23:59:00.001+09:00</published><updated>2008-10-25T00:15:59.560+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-25T00:15:59.560+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><category scheme="http://www.blogger.com/atom/ns#" term="Web 2.0" /><title>Today's Paper: Internet Monetization Papers in WWW 2008</title><content type="html">This year's &lt;a href="http://www2008.org/papers/Proceedings.html"&gt;WWW conference&lt;/a&gt; accepted a lot of papers related to business method issues in world-wide web and had 3 sessions named "monetization".  :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Internet Monetization: Online advertising&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arpita Ghosh, Mohammad Mahdian: Externalities in online advertising. pp.161-168&lt;/li&gt;&lt;li&gt;Uriel Feige, Nicole Immorlica, Vahab S. Mirrokni, Hamid Nazerzadeh: &lt;span style="font-style: italic;"&gt;A combinatorial allocation mechanism with penalties for banner advertising&lt;/span&gt;. pp.169-178&lt;/li&gt;&lt;li&gt;Hamid Nazerzadeh, Amin Saberi, Rakesh Vohra: &lt;span style="font-style: italic;"&gt;Dynamic cost-per-action mechanisms and applications to online advertising&lt;/span&gt;. pp.179-188&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Internet Monetization: &lt;/span&gt;&lt;span style="font-size:130%;"&gt;Recommendation and security&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Jason D. Hartline, Vahab S. Mirrokni, Mukund Sundararajan: &lt;span style="font-style: italic;"&gt;Optimal marketing strategies over social networks&lt;/span&gt;. pp.189-198&lt;/li&gt;&lt;li&gt;Reid Andersen, Christian Borgs, Jennifer T. Chayes, Uriel Feige, Abraham D. Flaxman, Adam Kalai, Vahab S. Mirrokni, Moshe Tennenholtz: &lt;span style="font-style: italic;"&gt;Trust-based recommendation systems: an axiomatic approach&lt;/span&gt;. pp.199-208&lt;/li&gt;&lt;li&gt;Jens Grossklags, Nicolas Christin, John Chuang: &lt;span style="font-style: italic;"&gt;Secure or insure?: a game-theoretic analysis of information security games&lt;/span&gt;. pp.209-218&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Internet Monetization: &lt;/span&gt;&lt;span style="font-size:130%;"&gt;Sponsored Search&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Anindya Ghose, Sha Yang: &lt;span style="font-style: italic;"&gt;Analyzing search engine advertising: firm behavior and cross-selling in electronic markets&lt;/span&gt;. pp.219-226&lt;/li&gt;&lt;li&gt;Massimiliano Ciaramita, Vanessa Murdock, Vassilis Plachouras: &lt;span style="font-style: italic;"&gt;Online learning from click data for sponsored search&lt;/span&gt;. pp227-236&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/18434712-8799559805451258615?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/GDHsQlbPiF4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/8799559805451258615/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=8799559805451258615" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/8799559805451258615?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/8799559805451258615?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/GDHsQlbPiF4/todays-paper-internet-monetization.html" title="Today's Paper: Internet Monetization Papers in WWW 2008" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/04/todays-paper-internet-monetization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHQ3g_eSp7ImA9WxRRF0k.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-6066186989707947730</id><published>2008-04-08T20:56:00.002+09:00</published><updated>2008-09-30T11:27:12.641+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-30T11:27:12.641+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><category scheme="http://www.blogger.com/atom/ns#" term="App Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Web 2.0" /><title>Google App Engine</title><content type="html">Google announced Google App at Campfire One.&lt;br /&gt;You can see their presentation at YouTube:&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=3Ztr-HhWX1c"&gt;http://www.youtube.com/watch?v=3Ztr-HhWX1c&lt;/a&gt;&lt;br /&gt;The movie is kindly prepared and easy to follow.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt; is a SaaS style Web application platform for developing and running Web applications. (Currently it is a 'preview release' and only available to the limited number of developers.) &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; is the language for programming on the platform and  the platform comes with APIs  (and  library implementation) for  Datastore, Users, URL Fetch,  and Mail, in addition to those which are already available with stock Python.&lt;br /&gt;&lt;br /&gt;This is the ultimate style of agile web development with "zero" start-up cost as &lt;span style="font-style: italic;"&gt;hosting service&lt;/span&gt; itself is also included in the platform.  While lots of other companies are trying to do the similar thing, you know, it is Google, which is worth keeping our watch on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-6066186989707947730?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/h1I693hvSxQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/6066186989707947730/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=6066186989707947730" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6066186989707947730?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/6066186989707947730?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/h1I693hvSxQ/google-app-engine.html" title="Google App Engine" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/04/google-app-engine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08FQnczfyp7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-931758088095637485</id><published>2007-08-02T06:22:00.000+09:00</published><updated>2008-10-26T06:56:53.987+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T06:56:53.987+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Concurrency" /><title>A Literary Gem on How to Lock in Multi-Threaded Programs</title><content type="html">Thread-safe programming, especially when we want to make our application optimized and scalable, is very hard.  Michael Suess, in his blog named "Thinking Parallel",&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.thinkingparallel.com/2007/07/31/10-ways-to-reduce-lock-contention-in-threaded-programs/"&gt;10 Ways to Reduce Lock Contentions in Threaded Programs&lt;/a&gt;, Michael Suess, Blog "Thinking Parallel", July 31, 2007&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;He refers to the book "Java Concurrency in Practice" for some of these tips, but basically the list is his original.&lt;br /&gt;&lt;br /&gt;One feasible and well-known solution is to never write them by ourselves but to let libraries handle it.  Doug Lea's book on design patterns in Java thread programming covers most of important techniques for the problem domain and they are now available as the standard java.util.concurrent package in Java.&lt;br /&gt;&lt;br /&gt;However, as you know, it may not solve all you need.  Then let's get back to the principals Michael has just extracted for us.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=michiakitatsu-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0321349601&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&amp;amp;nou=1" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=michiakitatsu-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0201310090&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&amp;amp;nou=1" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-931758088095637485?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/hILM3GOD6t0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/931758088095637485/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=931758088095637485" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/931758088095637485?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/931758088095637485?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/hILM3GOD6t0/literary-gem-on-how-to-lock-in-multi.html" title="A Literary Gem on How to Lock in Multi-Threaded Programs" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2007/08/literary-gem-on-how-to-lock-in-multi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EESX4_cCp7ImA9WxRRF0k.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-5180394428485758927</id><published>2007-02-06T23:05:00.001+09:00</published><updated>2008-09-30T11:26:48.048+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-30T11:26:48.048+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><title>Axis2 Execution Framework</title><content type="html">At developer.com, Deepal Jayasinghe explains the execution framework of Apache Axis2.&lt;br /&gt;The handler architecture with phases, phase rules and module engagement is well explained in the article.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.developer.com/java/web/article.php/3529321"&gt;Axis2 Execution Framework&lt;/a&gt;, developer.com, by Deepal Jayasinghe&lt;/li&gt;&lt;/ul&gt;This article is worth checking out in addition to the official documentation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ws.apache.org/axis2/1_1/Axis2ArchitectureGuide.html"&gt;Axis2 Architecture Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ws.apache.org/axis2/1_1/modules.html"&gt;Writing Your Own Axis2 Module&lt;/a&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/18434712-5180394428485758927?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/zWMX1wmOI8k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/5180394428485758927/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=5180394428485758927" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5180394428485758927?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5180394428485758927?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/zWMX1wmOI8k/axis2-exection-framework.html" title="Axis2 Execution Framework" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2007/02/axis2-exection-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYBQ30-eSp7ImA9WxRXGEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-1439939287824955364</id><published>2007-01-19T17:27:00.000+09:00</published><updated>2008-10-24T11:09:12.351+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T11:09:12.351+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Paper: Compiler Optimizations for Nondeferred Reference-Counting Garbage Collection (ISMM 2006)</title><content type="html">Compiler Optimizations for Nondeferred Reference-Counting Garbage Collection&lt;br /&gt;&lt;br /&gt;Author:&lt;br /&gt;Pramod G. Joisha&lt;br /&gt;&lt;br /&gt;ISMM'06&lt;br /&gt;Proceedings of the 5th International Symposium on Memory Management, ISMM 2006, Ottawa, Ontario, Canada, June 10-11, 2006, pp.150-161&lt;br /&gt;&lt;br /&gt;http://doi.acm.org/10.1145/1133956.1133976&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-1439939287824955364?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/oLFbsR4uWpM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/1439939287824955364/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=1439939287824955364" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/1439939287824955364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/1439939287824955364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/oLFbsR4uWpM/todays-paper-compiler-optimizations-for.html" title="Today's Paper: Compiler Optimizations for Nondeferred Reference-Counting Garbage Collection (ISMM 2006)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2007/01/todays-paper-compiler-optimizations-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ICRncyeyp7ImA9WxRRF0k.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-116834170566425730</id><published>2007-01-09T20:04:00.000+09:00</published><updated>2008-09-30T11:26:07.993+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-30T11:26:07.993+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="App Server" /><title>Apache Tomcat Performance</title><content type="html">Frank Ziglar reports on the peformance of Tomcat, one of the most used Sevlet engines in the world (Some statistics can be found &lt;a href="http://news.netcraft.com/archives/2003/04/10/java_servlet_engines.html"&gt;here&lt;/a&gt;), on Window and Linux platforms.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://linux.sys-con.com/read/209239.htm"&gt;Comparing Apache Tomcat Performance Across Platforms&lt;/a&gt;, Sys-Con LiNUX, By Frank Ziglar, Apr 28, 2006&lt;br /&gt;— They have measured performance information to distinguish the differences between the Windows and Linux platforms. Given comparable hardware we found the performance differences almost trivial.&lt;/li&gt;&lt;/ul&gt;The original (full version?) report, devided into two parts, is available at the website of Web performance, Inc.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.webperformanceinc.com/library/reports/windows_vs_linux_part1/index.html"&gt;Part 1: Performance and Distinct Error Handling under Memory Load&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webperformanceinc.com/library/reports/windows_vs_linux_part2/index.html"&gt;Part 2: Performance and Distinct Error Handling under Computational Load&lt;/a&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/18434712-116834170566425730?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/uoHPpyavobk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/116834170566425730/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=116834170566425730" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/116834170566425730?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/116834170566425730?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/uoHPpyavobk/apache-tomcat-performance.html" title="Apache Tomcat Performance" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2007/01/apache-tomcat-performance.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUAQnYzeSp7ImA9WxRXGEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-1083300361939674051</id><published>2007-01-04T15:37:00.000+09:00</published><updated>2008-10-24T11:10:43.881+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T11:10:43.881+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Paper: A Smart Hill-Climbing Algorithm for Application Server Configuration (WWW 2004)</title><content type="html">A smart hill-climbing algorithm for application server configuration&lt;br /&gt;&lt;br /&gt;Authors:&lt;br /&gt;              Bowei Xi, Zhen Liu, Mukund Raghavachari, Cathy H. Xia, Li Zhang                                                 &lt;br /&gt;&lt;br /&gt;WWW 2004&lt;br /&gt;pp.287-296&lt;br /&gt;&lt;br /&gt;http://portal.acm.org/citation.cfm?doid=988672.988711&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-1083300361939674051?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/wFQYHVHFgpA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/1083300361939674051/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=1083300361939674051" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/1083300361939674051?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/1083300361939674051?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/wFQYHVHFgpA/todays-paper-smart-hill-climbing.html" title="Today's Paper: A Smart Hill-Climbing Algorithm for Application Server Configuration (WWW 2004)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2007/01/todays-paper-smart-hill-climbing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUDQXg_eyp7ImA9WxRXGEw.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-4965382712357843421</id><published>2006-12-07T14:11:00.000+09:00</published><updated>2008-10-24T10:37:50.643+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T10:37:50.643+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><title>Today's Book: Groovy for Java Programmers</title><content type="html">&lt;div&gt;&lt;span class="Apple-style-span"  style="  white-space: pre-wrap; font-family:-webkit-monospace;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Groovy Programming: An Introduction for Java Developers by Kenneth Barclay and John Savage&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  white-space: pre-wrap;font-family:-webkit-monospace;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  white-space: pre-wrap;font-family:-webkit-monospace;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I regard Groovy is the scriting language for Java programmers, at least for now.  So, this book is for you, Java programmers, to get started with Groovy.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=michiakitatsu-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0123725070&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=tatsuborine02-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0123725070&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-4965382712357843421?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/lp_s-bzHW8s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/4965382712357843421/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=4965382712357843421" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/4965382712357843421?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/4965382712357843421?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/lp_s-bzHW8s/todays-book-groovy-for-java-programmers.html" title="Today's Book: Groovy for Java Programmers" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2008/09/todays-book-groovy-for-java-programmers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIGRnk-fip7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-5774131485837593626</id><published>2006-12-04T15:52:00.000+09:00</published><updated>2008-10-26T07:25:27.756+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T07:25:27.756+09:00</app:edited><title>Today's Paper: Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model (ECOOP 2005)</title><content type="html">Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model&lt;br /&gt;&lt;br /&gt;Authors:&lt;br /&gt;Lee Salzman, Jonathan Aldrich&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;Two object-oriented programming language paradigms—dynamic, prototype-based languages and multi-method languages—provide orthogonal benefits to software engineers. These two paradigms appear to be in conflict, however, preventing engineers from realizing the benefits of both technologies in one system. This paper introduces a novel object model, prototypes with multiple dispatch (PMD), which seamlessly unifies these two approaches. We give formal semantics for PMD, and discuss implementation and experience with PMD in the dynamically typed programming language Slate.&lt;br /&gt;&lt;br /&gt;ECOOP 2005&lt;br /&gt;pp.312-336&lt;br /&gt;&lt;br /&gt;http://www.springerlink.com/content/540huj0bnh8ktctv/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-5774131485837593626?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/dVkPxYF3AK8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/5774131485837593626/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=5774131485837593626" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5774131485837593626?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/5774131485837593626?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/dVkPxYF3AK8/todays-paper-prototypes-with-multiple.html" title="Today's Paper: Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model (ECOOP 2005)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2006/12/todays-paper-prototypes-with-multiple.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBSHs7fCp7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-78735234293261343</id><published>2006-12-04T15:45:00.000+09:00</published><updated>2008-10-26T07:24:19.504+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T07:24:19.504+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Paper: Predicate Classes (ECOOP'93)</title><content type="html">Predicate Classes&lt;br /&gt;&lt;br /&gt;Author:&lt;br /&gt;Craig Chamber&lt;br /&gt;&lt;br /&gt;ECOOP '93&lt;br /&gt;pp.268-296&lt;br /&gt;&lt;br /&gt;http://www.springerlink.com/content/v74k8ltwjcg4wh89/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-78735234293261343?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/f4kMgj9jVi0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/78735234293261343/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=78735234293261343" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/78735234293261343?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/78735234293261343?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/f4kMgj9jVi0/todays-paper-predicate-classes-ecoop93.html" title="Today's Paper: Predicate Classes (ECOOP'93)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2006/12/todays-paper-predicate-classes-ecoop93.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQNQH46fyp7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-1400250666749976003</id><published>2006-11-08T15:57:00.000+09:00</published><updated>2008-10-26T07:23:11.017+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T07:23:11.017+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Paper: Traits: A mechanism for fine-grained reuse</title><content type="html">Traits: A mechanism for fine-grained reuse&lt;br /&gt;&lt;br /&gt;Authors:&lt;br /&gt;Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Roel Wuyts, Andrew P. Black&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;Inheritance is well-known and accepted as a mechanism for reuse in object-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an application into an optimal class hierarchy that maximizes software reuse. Existing schemes based on single inheritance, multiple inheritance, or mixins, all pose numerous problems for reuse. To overcome these problems we propose traits, pure units of reuse consisting only of methods. We develop a formal model of traits that establishes how traits can be composed, either to form other traits, or to form classes. We also outline an experimental validation in which we apply traits to refactor a nontrivial application into composable units.&lt;br /&gt;&lt;br /&gt;ACM Transactions on Programming Languages and Systems (TOPLAS)&lt;br /&gt;                               Volume 28 ,  Issue 2  (March 2006)&lt;br /&gt;Pages: 331 - 388&lt;br /&gt;Year of Publication: 2006    &lt;br /&gt;&lt;br /&gt;http://portal.acm.org/citation.cfm?doid=1119479.1119483&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-1400250666749976003?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/KTmGI28YZ9E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/1400250666749976003/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=1400250666749976003" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/1400250666749976003?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/1400250666749976003?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/KTmGI28YZ9E/todays-paper-traits-mechanism-for-fine.html" title="Today's Paper: Traits: A mechanism for fine-grained reuse" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2006/11/todays-paper-traits-mechanism-for-fine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8BR38yfyp7ImA9WxRRF0k.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-116244426868045708</id><published>2006-11-02T13:44:00.001+09:00</published><updated>2008-09-30T11:14:16.197+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-30T11:14:16.197+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DSL" /><title>J2EE-PHP Interop</title><content type="html">In an FTPOnline article, Andi Gutmans, et al.  discuss two technologies for interoperating between WebSphere and PHP.&lt;br /&gt;&lt;span class="FeatureDek"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="AboutAuthor"&gt;&lt;em&gt;&lt;a href="http://www.ftponline.com/channels/java/2006_11/agutsman/"&gt;Achieve J2EE-PHP Interoperability by Andi Gutmans, Stew Nickolas, and Zeev Suraski, FTPOnline, Nov 1, 2006&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;Two most popular technologies, SOAP and PHP/Java Bridge, are coverd.&lt;span class="AboutAuthor"&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;a href="http://www.ftponline.com/channels/java/2006_11/agutsman/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-116244426868045708?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/G95OWcb-hiA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/116244426868045708/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=116244426868045708" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/116244426868045708?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/116244426868045708?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/G95OWcb-hiA/j2ee-php-interop.html" title="J2EE-PHP Interop" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2006/11/j2ee-php-interop.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUMR3s9fyp7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-4363733146086857010</id><published>2006-09-11T15:33:00.000+09:00</published><updated>2008-10-26T07:21:26.567+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T07:21:26.567+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Paper: Finding Probably Better System Configurations Quickly (SIGMETRICS/Performance 2006)</title><content type="html">Finding Probably Better System Configurations Quickly&lt;br /&gt;&lt;br /&gt;Authors:&lt;br /&gt;Takayuki Osogami, Toshinari Itoko:&lt;br /&gt;&lt;br /&gt;SIGMETRICS/Performance 2006&lt;br /&gt;pp.264-275&lt;br /&gt;&lt;br /&gt;http://portal.acm.org/citation.cfm?doid=1140277.1140308&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-4363733146086857010?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/k1kpeM2gnbM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/4363733146086857010/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=4363733146086857010" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/4363733146086857010?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/4363733146086857010?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/k1kpeM2gnbM/todays-paper-finding-probably-better.html" title="Today's Paper: Finding Probably Better System Configurations Quickly (SIGMETRICS/Performance 2006)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2006/09/todays-paper-finding-probably-better.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYNRHg4fCp7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-18434712.post-8071738727687049147</id><published>2006-09-05T14:41:00.000+09:00</published><updated>2008-10-26T07:19:55.634+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T07:19:55.634+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reading" /><title>Today's Paper: A Reference Architecture for Overlay Networks (P2P2005)</title><content type="html">The Essence of P2P: A Reference Architecture for Overlay Networks&lt;br /&gt;&lt;br /&gt;Authors:&lt;br /&gt;Karl Aberer, Luc Onana Alima, Ali Ghodsi, Sarunas Girdzijauskas, Seif Haridi, Manfred Hauswirth&lt;br /&gt;&lt;br /&gt;Peer-to-Peer Computing 2005&lt;br /&gt;pp.11-20&lt;br /&gt;&lt;br /&gt;http://doi.ieeecomputersociety.org/10.1109/P2P.2005.38&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18434712-8071738727687049147?l=tatsubori.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~4/Hz9835CYdrM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tatsubori.blogspot.com/feeds/8071738727687049147/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=18434712&amp;postID=8071738727687049147" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/8071738727687049147?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/18434712/posts/default/8071738727687049147?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MichiakiTatsuborisTechnicalNewsWatch/~3/Hz9835CYdrM/todays-paper-reference-architecture-for.html" title="Today's Paper: A Reference Architecture for Overlay Networks (P2P2005)" /><author><name>Mich</name><uri>http://www.blogger.com/profile/08362807755687655354</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp1.blogger.com/_FhkDQYaHE4g/R6pKQXSU9QI/AAAAAAAAAFE/fsLwAFXQLH4/S220/Mtatsubori.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tatsubori.blogspot.com/2006/09/todays-paper-reference-architecture-for.html</feedburner:origLink></entry></feed>

