<?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-5063599</id><updated>2011-04-21T11:26:35.847-07:00</updated><title type='text'>Programming</title><subtitle type='html'>Tricks/tips learned in daily programming work</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5063599.post-2219569059132057747</id><published>2009-05-24T04:59:00.000-07:00</published><updated>2009-05-24T05:24:23.543-07:00</updated><title type='text'>unAPI format and Semantic Web</title><content type='html'>Ross Singer's recent post about &lt;a href="http://serials.infomotions.com/code4lib/archive/2009/200904/0778.html"&gt;"One Data Format Identifier (and Registry) to Rule Them All"&lt;/a&gt; caused some interesting discussions. I didn't read all of them, and don't have much to add, but I do have a chance of reflecting how unAPI format wiki was created at the first place.&lt;br /&gt;&lt;br /&gt;It turned out that I always have trouble of understanding why Semantic Web is so obsessed with URI and Ontology. I am not Semantic Web expert, but to me the strict URI approach seems to directly conflict with other "convention over configuration" approaches like tagging, wiki, twitter. And it doesn't seem everyone will have the time to learn each other's ontology anyhow. As a result, any sufficiently large RDF file always make my head spin because of all these long URIs, and I am not sure how much bandwidth were used to carry them on the Internet. &lt;br /&gt;&lt;br /&gt;So why don't just use a word as the identifier, and let everyone pickup a dictionary and find out its semantic. I guess Oxford dictionary is a better agreed-upon ontology. In retrospect, perhaps this is how unAPI format differs from SRU/OpenURL, we can choose a name and hopefully it will work. Does it work? I don't know.&lt;br /&gt;&lt;br /&gt;Since multiple copies keep stuff safe, I also paste here the unAPI format retrieved from Internet Archive.&lt;br /&gt;&lt;br /&gt;name   type   example   desc   doc&lt;br /&gt;amazon  application/xml  opa  a convention used by OPA&lt;br /&gt;asn1  text/plain  opa  Abstract Syntax Notation One  asn.1&lt;br /&gt;bibtex  text/plain  hubmed  bibtex  bibtex&lt;br /&gt;dc  text/plain  opa  unqualified Dublin Core&lt;br /&gt;didl  application/xml  TODO  MPEG-21 DIDL  didl&lt;br /&gt;endnote  text/plain  refbase  endnote  endnote&lt;br /&gt;latex  application/x-latex  refbase  latex  latex&lt;br /&gt;marcxml  application/xml  Technosophia  MAchine Readable Cataloging in XML  marcxml&lt;br /&gt;markdown  text/plain  refbase  markdown  markdown&lt;br /&gt;mods  application/xml  Technosophia  Metadata Object Description Schema  mods&lt;br /&gt;html  text/html  refbase  HTML  HTML&lt;br /&gt;oai_citeseer  application/xml  opa&lt;br /&gt;oai_dc  application/xml  Technosophia  unqualified OAI Dublin Core  oai_dc&lt;br /&gt;pdf  application/pdf  refbase  Portable Document Format  PDF&lt;br /&gt;pubmed  application/xml  opa  pubmed article  pubmed&lt;br /&gt;rdf/xml  application/rdf+xml  hubmed  Resource Description Framework  RDF&lt;br /&gt;ris  text/plain  hubmed  ris  ris&lt;br /&gt;rss  application/xml  Technosophia  Really Simple Syndication  RSS&lt;br /&gt;rtf  application/rtf  refbase  Rich Text Format  RTF&lt;br /&gt;srw_dc  application/xml  Technosophia  unqualified SRW Dublin Core&lt;br /&gt;srw_mods  application/xml  refbase  unqualified SRW MODS&lt;br /&gt;text  text/plain  opa&lt;br /&gt;wrap  application/x-javascript  opa  unalog json format&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-2219569059132057747?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/2219569059132057747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=2219569059132057747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/2219569059132057747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/2219569059132057747'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2009/05/unapi-format-and-semantic-web.html' title='unAPI format and Semantic Web'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-7772274844757441670</id><published>2009-02-27T07:04:00.000-08:00</published><updated>2009-02-27T07:22:43.054-08:00</updated><title type='text'>cannonical URLs in &lt;link&gt; tag</title><content type='html'>Having observed a few canonical  URL solutions in Digital Library world, such as Handle, PURL, DOI, it is really nice to see the&lt;a href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html"&gt; cannonical URLs from Google&lt;/a&gt;.  Google partially solves the problem by simply adding a &amp;lt;link rel="canonical" href=""&amp;gt; to specify your preferred version.&lt;br /&gt;&lt;br /&gt;It always surprises me how elegant and simple a solution can be, and how long it takes to find these simple solutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-7772274844757441670?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/7772274844757441670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=7772274844757441670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/7772274844757441670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/7772274844757441670'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2009/02/cannonical-urls-in-tag.html' title='cannonical URLs in &amp;lt;link&amp;gt; tag'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-7797651182458073059</id><published>2007-05-22T20:14:00.000-07:00</published><updated>2007-05-22T20:33:19.448-07:00</updated><title type='text'>canonical URL</title><content type='html'>Just came across these URLs&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/search?hl=en&amp;q=link%3Ahttp%3A%2F%2Fworldcatlibraries.org%2Foclc%2F65187392&amp;amp;btnG=Search"&gt;http://www.google.com/search?hl=en&amp;q=link%3Ahttp%3A%2F%2Fworldcatlibraries.org%2Foclc%2F65187392&amp;amp;btnG=Search&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/search?hl=en&amp;q=link%3Ahttp%3A%2F%2Fworldcat.org%2Foclc%2F65187392&amp;amp;btnG=Search"&gt;http://www.google.com/search?hl=en&amp;q=link%3Ahttp%3A%2F%2Fworldcat.org%2Foclc%2F65187392&amp;amp;btnG=Search&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was trying to compare same Worldcat pages with different URLs, by google backward link search features (&lt;a href="http://www.google.com/advanced_search"&gt;http://www.google.com/advanced_search&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;So &lt;a href="http://worldcat.org/oclc/65187392"&gt;http://worldcat.org/oclc/65187392&lt;/a&gt; and&lt;br /&gt; &lt;a href="http://worldcatlibraries.org/oclc/65187392"&gt;http://worldcatlibraries.org/oclc/65187392&lt;/a&gt;&lt;br /&gt; are same page, however due to variants of these URLs, Google treats them as different URLs, and this certainly doesn't help moving up these pages up in Google search results, if we consider the inbound link factor in PageRank.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-7797651182458073059?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/7797651182458073059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=7797651182458073059' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/7797651182458073059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/7797651182458073059'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2007/05/canonical-url.html' title='canonical URL'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-117289136678059271</id><published>2007-03-02T18:58:00.000-08:00</published><updated>2007-03-02T19:09:26.983-08:00</updated><title type='text'>new xISBN API - beta</title><content type='html'>I have been working on a new xISBN service in last few months, and I had a chance of sharing latest progress in excellent &lt;a href="http://code4lib.org/"&gt;code4lib&lt;/a&gt; conference held in Athens, Ga. Thanks for all your valuable comments, folks!&lt;br /&gt;&lt;br /&gt;The new &lt;a href="http://xid-info.worldcat.org/t/xisbn/v2/api.html"&gt;service&lt;/a&gt; is now running as a beta version. We add more features/metadata, at the same time try to keep the API simple and clean.&lt;br /&gt;&lt;br /&gt; &lt;a href="http://listserv.oclc.org/scripts/wa.exe?A0=XIDENTIFIER-L"&gt;x-identifier list&lt;/a&gt; is a venue for comments/suggestions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-117289136678059271?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://xid-info.worldcat.org/t/xisbn/v2/api.html' title='new xISBN API - beta'/><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/117289136678059271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=117289136678059271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/117289136678059271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/117289136678059271'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2007/03/new-xisbn-api-beta.html' title='new xISBN API - beta'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-117263686533298240</id><published>2007-02-27T20:25:00.000-08:00</published><updated>2007-02-27T20:30:01.283-08:00</updated><title type='text'>things learned from SOLR api</title><content type='html'>things learned from SOLR api&lt;br /&gt;&lt;br /&gt;I am fortunte to attend Erik Hatcher's one day Lucene/Solr tutorial, what's really attracting me is elegance of SOLR's REST API, which is at the same time concise and consistent. To start with:&lt;br /&gt;&lt;br /&gt;-- add/query/delete/commit are all simple REST API.&lt;br /&gt;&lt;br /&gt;as an example, delete a record is a simple HTTP POST "&amp;lt;delete&amp;gt;&amp;lt;id&amp;gt;SP2514N&amp;lt;/id&amp;gt;&amp;lt;/delete&amp;gt;", do I need to say more?&lt;br /&gt;&lt;br /&gt;-- allows different format (but equavalent infoset)&lt;br /&gt;"select?q=ipod&amp;wt=xml" -- returns an xml format&lt;br /&gt;"select?q=ipod&amp;wt=python"&lt;br /&gt;"select?q=ipod&amp;wt=ruby"&lt;br /&gt;"select?q=ipod&amp;&amp;wt=json"&lt;br /&gt;&lt;br /&gt;They all return same infoset.&lt;br /&gt;&lt;br /&gt;-- the way of controlling returned fields by query&lt;br /&gt;&lt;br /&gt;q=video&amp;fl=name,id (return only name and id fields)&lt;br /&gt;q=video&amp;fl=name,id,score (return relevancy score as well)&lt;br /&gt;q=video&amp;fl=*,score (return all stored fields, as well as relevancy score) &lt;br /&gt;&lt;br /&gt;So user has control of which fields to return.&lt;br /&gt;&lt;br /&gt;-- no xml namespace at all&lt;br /&gt;&lt;br /&gt;This is subject to argue, but I tend to think in RPC-oriented application XML namespace doesn't really matter, and in Document-oriented applications XML namespace are important.&lt;br /&gt;&lt;br /&gt;-- the way of organizing schema and result.&lt;br /&gt;&lt;br /&gt;Basically everything is a field, a field has a datatype, name and value. Such as following result:&lt;br /&gt;&lt;br /&gt;&amp;lt;str name="id"&amp;gt;IW-02&amp;lt;/str&amp;gt;&lt;br /&gt;&amp;lt;bool name="inStock"&amp;gt;false&amp;lt;/bool&amp;gt;&lt;br /&gt;&amp;lt;str name="manu"&amp;gt;Belkin&amp;lt;/str&amp;gt;&lt;br /&gt;&lt;br /&gt;This bascially allows any fields without XML namespace/schemas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-117263686533298240?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://code4lib.org/node/139' title='things learned from SOLR api'/><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/117263686533298240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=117263686533298240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/117263686533298240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/117263686533298240'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2007/02/things-learned-from-solr-api.html' title='things learned from SOLR api'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-117021808472878630</id><published>2007-01-30T20:34:00.000-08:00</published><updated>2007-01-30T20:34:45.413-08:00</updated><title type='text'>google's moon shot</title><content type='html'>New Yorker magazine runs an article "&lt;a href="http://www.newyorker.com/fact/content/articles/070205fa_fact_toobin"&gt;google's moon shot&lt;/a&gt;" about &lt;a href="http://books.google.com/"&gt;google book project&lt;/a&gt;. It mentioned Google aims to scan at least as many as worldcat records (32M) in 10 years.    And it also mentioned the hate/love relationship between publishers and Google, and seems optimistic that the copyright issue can be resolved this way or other. There are also interesting thoughts of networking books, similar to the way of how web pages are linked together by hyperlink.&lt;br /&gt;&lt;br /&gt;Ebook has been here a while and we are still trying to figure out the right way, maybe Google, Open Content Alliance, and other's work can make a big difference, we will see  how this evolves in next few years&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-117021808472878630?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.newyorker.com/fact/content/articles/070205fa_fact_toobin' title='google&apos;s moon shot'/><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/117021808472878630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=117021808472878630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/117021808472878630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/117021808472878630'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2007/01/googles-moon-shot.html' title='google&apos;s moon shot'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-116930919834275451</id><published>2007-01-20T07:52:00.000-08:00</published><updated>2007-01-20T08:06:38.456-08:00</updated><title type='text'>microsoft live book search with fulltext download</title><content type='html'>I just have a chance of looking at Microsoft &lt;a href="http://books.live.com"&gt;live book &lt;/a&gt;search demo , it's still a small collection, so search results can be confusing. However an entire book can be downloaded from archive.org as a PDF file, such as this one:&lt;br /&gt;&lt;br /&gt; http://www.archive.org/download/writingsofcharle01dickuoft/writingsofcharle01dickuoft.pdf&lt;br /&gt;&lt;br /&gt;I guess this is part of deal of Open Contents Alliance. Google Print doesn't really allow download of a full book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-116930919834275451?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://search.live.com/results.aspx?q=&amp;scope=books' title='microsoft live book search with fulltext download'/><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/116930919834275451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=116930919834275451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116930919834275451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116930919834275451'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2007/01/microsoft-live-book-search-with.html' title='microsoft live book search with fulltext download'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-116293936453124365</id><published>2006-11-07T14:33:00.000-08:00</published><updated>2007-01-24T19:52:33.983-08:00</updated><title type='text'>convert between 13 digits and 10 digits xisbn</title><content type='html'>self note.&lt;br /&gt;(a) from 10 digit to 13 digits&lt;br /&gt;&lt;br /&gt;if 10 digits takes the format ABCDEFGHIJ, 13 digits is going to be: 978ABCDEFGHI(?), and last digit (checksum) can be calcualted by:&lt;br /&gt;&lt;br /&gt;(10-((9*1)+(7*3)+(8*1)+(A*3)+(B*1)+(C*3)+(D*1)...+(I*3)) modulo 10) modulo 10&lt;br /&gt;&lt;br /&gt;(b) from 13 digits to 10 digits&lt;br /&gt;if the first three digits is not "978", it cannot be converted to 10 digits.&lt;br /&gt;&lt;br /&gt;if the first three digits is "978", takes remaining 9 digits: ABCDEFGHI, and calcuate checksum for 10 digits ISBN:&lt;br /&gt;(11-((A*10)+(B*9)+ .... +(I*2) modulo 11)) modulo 11&lt;br /&gt;&lt;br /&gt;10 will be replaced by X&lt;br /&gt;&lt;br /&gt;reference:&lt;br /&gt;[1] http://wiki.tcl.tk/12638&lt;br /&gt;[2] http://www.isbn.org/standards/home/isbn/transition.asp&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-116293936453124365?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/116293936453124365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=116293936453124365' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116293936453124365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116293936453124365'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/11/convert-between-13-digits-and-10.html' title='convert between 13 digits and 10 digits xisbn'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-116157917940110702</id><published>2006-10-22T21:34:00.000-07:00</published><updated>2006-10-22T21:52:59.666-07:00</updated><title type='text'>googlemap api and craigslist</title><content type='html'>It's the right season to find an apartment again ;-) this time I am mainly using craigslist to look for apartment. Fortunately, most rentals have a google map link, but after a while, it becomes really difficult to keep track an interest list.&lt;br /&gt;&lt;br /&gt;For a while I want to try the goolgemap API and this is the right time to do so, it turns out the API is really handy. I need to &lt;a href="http://www.google.com/apis/maps/signup.html"&gt;register&lt;/a&gt; a googlemap API account, after I just need follow&lt;a href="http://www.google.com/apis/maps/documentation/"&gt; some javascript code examples&lt;/a&gt; in googlemap homepage, in less than 2 hours I can conveniently compare interesting apartments through the nice google map interface.&lt;br /&gt;&lt;br /&gt;I still need manually populate craigslist information into my small application -- it would be great if craigslist have a built-in function to create a "my bookshelf" kind of service.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/lxming/276992815/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/93/276992815_1d87b24b40.jpg" width="401" height="328" alt="googlemap" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-116157917940110702?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/116157917940110702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=116157917940110702' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116157917940110702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116157917940110702'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/10/googlemap-api-and-craigslist.html' title='googlemap api and craigslist'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-116096839158781311</id><published>2006-10-15T20:12:00.000-07:00</published><updated>2006-10-15T20:13:11.863-07:00</updated><title type='text'>oaiarc new release</title><content type='html'>&lt;pre&gt;oaiarc-1.0 is just released, this release includes following changes:&lt;br /&gt;&lt;br /&gt;--internationalization support (with English, Spansih, French built-in)&lt;br /&gt;--strict XHTML compliant&lt;br /&gt;--UTF-8 support&lt;br /&gt;--remove oai 1.x support&lt;br /&gt;--various bug fixes&lt;br /&gt;&lt;br /&gt;Juan Corrales from Universidad Rey Juan Carlos de Madrid contributes&lt;br /&gt;most improvements in this release.&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-116096839158781311?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://oaiarc.sourceforge.net' title='oaiarc new release'/><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/116096839158781311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=116096839158781311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116096839158781311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116096839158781311'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/10/oaiarc-new-release.html' title='oaiarc new release'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-116077454419849279</id><published>2006-10-13T14:22:00.000-07:00</published><updated>2006-10-13T14:22:24.330-07:00</updated><title type='text'>pathways paper</title><content type='html'>The last two years pathways research result are published:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dlib.org/dlib/october06/vandesompel/10vandesompel.html"&gt;An Interoperable Fabric for Scholarly Value Chains&lt;/a&gt; - D-Lib, October 2006 (link will be active early next week)&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://arxiv.org/abs/cs.DL/0610031"&gt;Pathways: Augmenting interoperability across scholarly repositories&lt;/a&gt; - International Journal of Digital Libraries&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-116077454419849279?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/116077454419849279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=116077454419849279' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116077454419849279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116077454419849279'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/10/pathways-paper.html' title='pathways paper'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-116077426561650887</id><published>2006-10-13T14:14:00.000-07:00</published><updated>2006-10-13T14:17:49.003-07:00</updated><title type='text'>dump a web page and its links by wget</title><content type='html'>self-note:&lt;br /&gt;&lt;br /&gt;Every few weeks I need to read wget manpage to find parameters to cache a single webpage and all its links, so perhaps better write it down here to save 5 minutes:&lt;br /&gt;&lt;br /&gt;wget -r -H  -l1  -k -P $targetdir --exclude-domains ${comma-seperated domain name} --user=xxx --password=xxx $url&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-116077426561650887?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/116077426561650887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=116077426561650887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116077426561650887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/116077426561650887'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/10/dump-web-page-and-its-links-by-wget.html' title='dump a web page and its links by wget'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-115760110228492606</id><published>2006-09-06T20:51:00.000-07:00</published><updated>2006-09-06T20:51:46.200-07:00</updated><title type='text'>Poincaré conjecture and Shing-Tung Yau</title><content type='html'>it was sad to read recent &lt;a href="http://www.newyorker.com/fact/content/articles/060828fa_fact2"&gt;New Yorker story of  Poincaré conjecture and Shing-Tung Yau&lt;/a&gt;. Yau won Fields award and has greatly contributed to mathmatics study, his opinion (in general) is very well respected and cited in China.&lt;br /&gt;&lt;br /&gt;I believe this article must have exaggerated some information, as evidenced by clarifaction from some mathematicians recently, still, it is really difficult to know when to stop, even as brilliant as Yau. So this is really a sad and disappointed story.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-115760110228492606?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.newyorker.com/fact/content/articles/060828fa_fact2' title='Poincaré conjecture and Shing-Tung Yau'/><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/115760110228492606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=115760110228492606' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115760110228492606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115760110228492606'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/09/poincar-conjecture-and-shing-tung-yau.html' title='Poincaré conjecture and Shing-Tung Yau'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-115129729661259027</id><published>2006-06-25T21:46:00.000-07:00</published><updated>2006-06-25T21:48:16.836-07:00</updated><title type='text'>notes in Fedora User Conference 2006</title><content type='html'>I took some notes in the Fedora user conference 2006. Disclaimer: I am not a Fedora user; and the conference doesn't have proceedings and presentation is not online -- so read with caution.&lt;br /&gt;&lt;br /&gt;The conference is nice but somehow difficult to summarize because many presentations are project-oriented. So I will try to summarize them in several perspective: (a) core functionalities (b) interesting project (c) some observations and thinkings.&lt;br /&gt;&lt;br /&gt;(a) core functionalities&lt;br /&gt;&lt;br /&gt;RDF triple store: A very interesting part of Fedora is its usage of RDF and triple store, as I have always been interesting in the  scalability of RDF triple store. Dean B. Krafft of Cornell gave some interesting numbers about NSDL 2.0 usage of Fedora. NSDL 2.0 handles some ~2M digital objects, with 70 RDF tuples for each object, overall Kowari triple store has 163 Million triples. &lt;br /&gt;&lt;br /&gt;Content model: The ongoing development of Fedora Core includes "content  model", such as structure/ontology for thesis, article, etc, and dynamic dissemination associating with "content model". The question is how to reach agreement on common ontology.&lt;br /&gt;&lt;br /&gt;Dissemination/behaviour: This seems like a pretty active area, it's about given a digital object, how can you associate services with this object. DLF Aquifer project has an interesting concept of "&lt;a href="http://rama.grainger.uiuc.edu/assetActions/"&gt;AssetActions&lt;/a&gt;", which defines an XML schema of associating behaviors with object, initial experiment based on Fedora.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(b) projects&lt;br /&gt;&lt;br /&gt;This is perhaps the most interesting part of the conference, there are several ambitious, national project using Fedora as core service, including &lt;a href="http://www.nsdl.org"&gt;NSDL&lt;/a&gt;, German's &lt;a href="http://www.escidoc-project.de/homepage.html"&gt;eSciDoc&lt;/a&gt;, Aussie's &lt;a href="http://arrow.edu.au/"&gt;ARROW&lt;/a&gt;, and &lt;a href="http://dart.edu.au/"&gt;DART&lt;/a&gt;, and some works by Harris Group.  These projects have a theme of building workflow system for scholarly communication in a large scale.  Although information can be overwhelming in some cases, it's really a good headstart to take a further look at these initiatives.&lt;br /&gt;&lt;br /&gt;(c) thoughts&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RDF store or RDBMS?&lt;/li&gt;&lt;/ul&gt;        an old question, but still relevant and interesting&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What's essential functionalities of a repository? &lt;/li&gt;&lt;/ul&gt;        Is it &lt;a href="http://www.okiproject.org/"&gt;OKI&lt;/a&gt;, JSR170, Fedora core API ?&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A nice graph of describing repository:&lt;/li&gt;&lt;/ul&gt;        Repository-&gt;services-&gt;applications-&gt;interfaces&lt;br /&gt;        ---------------------------------------&lt;br /&gt;       when moving left to right, the changes are more likely, repository is expected to be stable.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New scholarly communication system&lt;/li&gt;&lt;/ul&gt;        I think we definitely need some models and researches in this area, such as &lt;a href="http://www.dlib.org/dlib/september04/vandesompel/09vandesompel.html"&gt;this&lt;/a&gt; and &lt;a href="http://msc.mellon.org/Meetings/Interop/"&gt;this&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-115129729661259027?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/115129729661259027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=115129729661259027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115129729661259027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115129729661259027'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/06/notes-in-fedora-user-conference-2006.html' title='notes in Fedora User Conference 2006'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-115129125692953374</id><published>2006-06-25T20:06:00.000-07:00</published><updated>2006-06-26T08:16:31.863-07:00</updated><title type='text'>Liveclipboard copy beyond microformats -- unapi 1.0 released</title><content type='html'>Dan Chudnov recently released &lt;a href="http://unapi.info"&gt;unAPI&lt;/a&gt; version 1.  Here I particularly want to compare unAPI with &lt;a href="http://www.microformats.org"&gt;microformats&lt;/a&gt; in liveclipboard implementation.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/liveclipsample/clipboardexample.html"&gt;MS liveclipboard&lt;/a&gt; demo is based on microformats, essentially, the demo uses some smart javascripts to copy XHTML page between different web pages. In principle, the technology can be used to copy &lt;em&gt;any&lt;/em&gt; XML fragment, or even binary files if you consider base64 encoding.&lt;br /&gt;&lt;br /&gt;Microformats is well suited for this purpose because its XHTML fragments are well-formatted XML. However, there are many applications/domains are not covered by microformats: (a) not all contents can be described by XHTML, such as tremendous XML standard/contents in the web, or many non-HTML content in the web. (b) even a content can be described by XHTML, it may never reach the radar of microformats.org, or never have enough incentives to make them standard.&lt;br /&gt;&lt;br /&gt;So here I think unapi can fill a gap, because it allows copy of any content, far beyond the scope of microformats.org, from initial implementation of unapi we saw &lt;a href="http://unapi.stikipad.com/unapi/show/existing+formats"&gt;mods, dc, json, pubmed, rdf, text&lt;/a&gt;, and we can expect more diversified formats in the future. All these formats may eventually become payload of liveclipboard, and the application is up to your imagination.&lt;br /&gt;&lt;br /&gt;On the other side, the approach of unAPI is more complex than microformats. In microformats you can simply markup an XHTML page and it's all done. In unAPI one have to markup an XHTML page and implement a simple API. And the little tradeoff can be worthwhile if we want to take full advantage of liveclipboard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-115129125692953374?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://unapi.info/news/archives/16' title='Liveclipboard copy beyond microformats -- unapi 1.0 released'/><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/115129125692953374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=115129125692953374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115129125692953374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115129125692953374'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/06/liveclipboard-copy-beyond-microformats.html' title='Liveclipboard copy beyond microformats -- unapi 1.0 released'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-115032657546514835</id><published>2006-06-14T16:07:00.000-07:00</published><updated>2006-06-14T16:09:39.876-07:00</updated><title type='text'>Stuff I like in JCDL 2006</title><content type='html'>some interesting readings in JCDL:&lt;br /&gt;&lt;br /&gt;"Also By The Same Author: AKTiveAuthor, A Citation Graph Approach To Name Disambiguation. " Duncan M. McRae-Spencer, Nigel R. Shadbolt&lt;br /&gt;&lt;br /&gt;This paper describes how to use author's self-citation (for good or bad, anyhow another topic) to implement name disambiguation. For example, if a paper has an author "X. Liu", and again I cite a paper with author "X.Liu", it's quite likely that the two "X.Liu" are same person. By taking advantage of this social context, the paper got starling precision/recall in name disambiguation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Bibliometric Impact Measures Leveraging Topic Analysis", Gideon Mann, David Mimno and Andrew McCallum. &lt;br /&gt;&lt;br /&gt;Andrew McCallum wrote the popular bow/rainbow text classification package. This is the first time I saw his paper in JCDL. The paper is based on a new cluster method TNG, which can label clusters by phase, instead of individual words, e.g. "text classification" can be used to label a cluster, instead of "text" and "classification". This is extremely powerful in labeling cluster.  After that the paper proposes several impact measures of topic, particularly life cycle of how a subject/topic emerges, develops, and influences other topics. Pretty interesting reading and solid work. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Building a Research Library for the History of the Web", William Y. Arms, Selcuk Aya, Pavel Dmitriev, Blazej J. Kot, Ruth Mitchell, Lucia Walle&lt;br /&gt;&lt;br /&gt;I blogged this work before, the project tries to mirror and mine whole Internet Archive. Anything dealing with that level of scalability is worth checking out.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Metadata aggregation and automated digital libraries: A Retrospective on the NSDL experience", Carl Lagoze, Tim Cornwell, Naomi Dushay, Dean Ecktrom, Dean Krafft&lt;br /&gt;&lt;br /&gt;Some remarkable lessons of OAI-PMH in a very distributed system. It also wins best paper award.  Loosely distributed system is always a hard question, especially you are targeting transaction-level quality, no matter distributed search or harvesting. &lt;br /&gt;&lt;br /&gt;"EcoPod: A Mobile Tool for Community Based Biodiversity Collection Building" YuanYuan Yu, Jeannie A. Stamberger, Aswath Manoharan, Andreas Paepcke&lt;br /&gt;&lt;br /&gt;A PDA-based application for biology species observations, it is not complex or abstract, and it focuses on a simple task and solve it well. Maybe that's how the research should be done in many DL projects: do one thing and do it well.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"An architecture for the aggregation and analysis of scholarly usage data." Johan Bollen and Herbert Van de Sompel&lt;br /&gt;&lt;br /&gt;It describes using OAI-PMH to harvest usage data, which is embedded in OpenURL ContextObject. There are also interesting result of mining these usage data. I think the choice of OAI-PMH/OpenURL are very much appropriate here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-115032657546514835?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/115032657546514835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=115032657546514835' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115032657546514835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/115032657546514835'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/06/stuff-i-like-in-jcdl-2006.html' title='Stuff I like in JCDL 2006'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-114827132591824615</id><published>2006-05-21T21:08:00.000-07:00</published><updated>2006-05-21T21:16:51.780-07:00</updated><title type='text'>unapi scripts, and a wiki page</title><content type='html'>I updated several thing regrading unapi:&lt;br /&gt;&lt;br /&gt;-- fix a bug in &lt;a href="http://lxming.blogspot.com/2006/02/unapilink-script-to-add-unapi-links.html"&gt;unapi userscript&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-- update a &lt;a href="http://lxming.blogspot.com/2006/03/unapi-proxy-power-of-uri-there-has.html"&gt;proxy demonstration&lt;/a&gt; to unapi revision 3.   &lt;br /&gt;&lt;br /&gt;-- I started a wiki page in &lt;a href="http://unapi.stikipad.com/"&gt;http://unapi.stikipad.com/&lt;/a&gt;, although a personal opinion, I think it is a good idea to document commonly used format in unapi, largely motivated by a similar microformats &lt;a href="http://microformats.org/wiki/existing-classes"&gt;list&lt;/a&gt;. Feel free to update the wiki page if you have comments/ideas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114827132591824615?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114827132591824615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114827132591824615' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114827132591824615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114827132591824615'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/05/unapi-scripts-and-wiki-page.html' title='unapi scripts, and a wiki page'/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-114807121440457641</id><published>2006-05-19T13:32:00.000-07:00</published><updated>2006-05-19T13:40:15.366-07:00</updated><title type='text'></title><content type='html'>unapi greasymonkey scripts updates to &lt;a href="http://unapi.info/specs/"&gt;revision 3&lt;/a&gt;, the URLs are same so you may follow previous instructions at: &lt;a href="http://lxming.blogspot.com/2006/02/unapilink-script-to-add-unapi-links.html"&gt;unapilink&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://lxming.blogspot.com/2006/02/pubmed-and-citeseer-also-unapi-enabled.html"&gt;citeseer and pubmed&lt;/a&gt;, and &lt;a href="http://lxming.blogspot.com/2006/02/unapi-enabled-amazon.html"&gt;amazon&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114807121440457641?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114807121440457641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114807121440457641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114807121440457641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114807121440457641'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/05/unapi-greasymonkey-scripts-updates-to.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114799095924972347</id><published>2006-05-18T15:17:00.000-07:00</published><updated>2006-05-18T15:27:39.823-07:00</updated><title type='text'></title><content type='html'>DIDLTools package online&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The DIDL Tools is just released &lt;a href="http://african.lanl.gov/aDORe/projects/DIDLTools/"&gt;http://african.lanl.gov/aDORe/projects/DIDLTools/&lt;/a&gt;, as posted in release page:&lt;br /&gt;&lt;br /&gt;"The aDORe DIDLTools is a Java toolkit for the construction, validation, serialization and de-serialization of the MPEG-21 DID data model. DID, the MPEG-21 Digital Item Declaration, provides an abstract model for the representation of digital items, whereas DIDL, the MPEG-21 Digital Item Declaration Language specifies how to serialize the model in XML. The API provided by the aDORe DIDLTools allows for the construction of customized DIDL XML documents, as well as provides flexible and extensible serialization methods."&lt;br /&gt;&lt;br /&gt;There was some good thinking of allowing &lt;em&gt;any&lt;/em&gt; metadata in the model, have a look and ask questions in &lt;a href="http://lists.lib.ugent.be/mailman/listinfo/didwriter-dev"&gt;http://lists.lib.ugent.be/mailman/listinfo/didwriter-dev&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114799095924972347?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114799095924972347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114799095924972347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114799095924972347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114799095924972347'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/05/didltools-package-online-didl-tools-is.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114781569769775848</id><published>2006-05-16T14:26:00.000-07:00</published><updated>2006-05-16T14:41:41.833-07:00</updated><title type='text'></title><content type='html'>slides of AISTI Mini-Conference&lt;br /&gt;&lt;br /&gt;The AISTI Mini-Conference has its &lt;a href="http://www.aisti.org/events/Mini06/presentations.php"&gt;slides&lt;/a&gt; online, I was in the conference and there were several pretty good presentations.&lt;br /&gt;&lt;br /&gt;Douglas Fils made a presentation about Chronos project, titled &lt;a href="http://www.aisti.org/events/Mini06presentations/filsaisti.pdf"&gt;Services Architecture and Semantic Practices Using the CHRONOS Cyber-Infrastructure Effort&lt;/a&gt;, the project combines some cool web2.0 technology to build Chronos environment.&lt;br /&gt;&lt;br /&gt;Alex Szalay presented &lt;a href="http://www.aisti.org/events/Mini06presentations/WWT.ppt"&gt;Science in an Exponential World&lt;/a&gt;, which overlaps library world with data curating. I pretty much like his remarks that data must be close to analysis tool and we need journal for data. His work is also assocated with microsoft  &lt;a href="http://research.microsoft.com/towards2020science/background_overview.htm"&gt;2020 science&lt;/a&gt; initiative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114781569769775848?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114781569769775848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114781569769775848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114781569769775848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114781569769775848'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/05/slides-of-aisti-mini-conference-aisti.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114732321977298281</id><published>2006-05-10T21:32:00.000-07:00</published><updated>2006-05-10T21:53:39.916-07:00</updated><title type='text'></title><content type='html'>arxiv and trackback&lt;br /&gt;&lt;br /&gt;I recently listened Paul Ginsparg's &lt;a href="http://connect.educause.edu/podcasts/paul_ginsparg_cni_2006"&gt;interview&lt;/a&gt; by CNI, it touches history and ongoing development of arXiv.&lt;br /&gt;&lt;br /&gt;This is the first time that I heard arXiv has &lt;a href="http://www.lifewiki.net/attachments/view/101/2.2"&gt;trackback&lt;/a&gt; feature, see &lt;a href="http://arxiv.org/help/trackback"&gt;http://arxiv.org/help/trackback&lt;/a&gt;, as always, arXiv does everything differently (no kidding, I am a regular arxiv user), and seems there was a hot &lt;a href="http://www.neverendingbooks.org/index.php/arxiv-trackback-wars/"&gt;debate&lt;/a&gt; about its policy a while ago in physics blogsphere.&lt;br /&gt;&lt;br /&gt;I then quickly checked &lt;a href="http://www.hubmed.org/"&gt;hubmed&lt;/a&gt; and &lt;a href="http://www.plymouth.edu/library/opac/"&gt;WPopac&lt;/a&gt;, two blog-style library service, it's no suprise that both support trackback.&lt;br /&gt;&lt;br /&gt;However, arXiv is unusual, because its interface/functions is stable for quite some years,  it shows what's quality and good design. Now it has a trackback, the fact shows quite nicely how new techologies can be integrated with established library service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114732321977298281?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114732321977298281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114732321977298281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114732321977298281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114732321977298281'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/05/arxiv-and-trackback-i-recently.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114696608483265274</id><published>2006-05-06T18:16:00.000-07:00</published><updated>2006-05-06T18:41:25.413-07:00</updated><title type='text'></title><content type='html'>WebCite&lt;br /&gt;&lt;br /&gt;Just read &lt;a href="http://www.webcitation.org/"&gt;WebCite&lt;/a&gt; from Lorcan Dempsey's blog.&lt;br /&gt;&lt;br /&gt;WebCite is an archiving system for webreferences (cited webpages and websites). It works in a way of &lt;a href="http://www.tinyurl.com"&gt;tinyurl&lt;/a&gt;, by submitting a URL you  get a new URL back, e.g. I submit "http://www.yahoo.com" on May 6th, 2006, webcite gives me back a new URL &lt;a href="http://www.webcitation.org/5Fgu0Xf5x"&gt;http://www.webcitation.org/5Fgu0Xf5x&lt;/a&gt;, and yahoo page on May 6th, 2006 is archived in http://www.webcitation.org/5Fgu0Xf5x.&lt;br /&gt;&lt;br /&gt;So this is actually a combination of archive.org and tinyurl.com, and may look extremely simple. However, as I worked on persistent URL and web archiving issues previously, I can testify simple is not easy.&lt;br /&gt;&lt;br /&gt;Persistent URLs issues have been studied by Steve Lawrence (citeseer, now google) in (Persistence of Web References in Scientific Research. IEEE Computer, 34(2):26--31, 2001), Thomas A. Phelps and Robert Wilensky in (&lt;a href="http://www.dlib.org/dlib/july00/wilensky/07wilensky.html"&gt;Robust Hyperlinks and Locations &lt;/a&gt;), Frank McCown and Michael L. Nelson's "The Availability and Persistence of Web References in D-Lib Magazine". &lt;br /&gt;&lt;br /&gt;In particular Thomas Phelps has proposed that most web pages can be uniquely identified by 5 keywords, so you should referene the web page by the five keywords, and issue the 5 keywords to web search engine to find the web page (in case it's relocated).&lt;br /&gt;&lt;br /&gt;Web archiving is best addressed archive.org for now, in a rather typical web crawling way, and still an active research area. And now we have a on-demand web archiving system such as webcitation.org.&lt;br /&gt;&lt;br /&gt;I don't know how webcitation.org scales, or how it protects the data, and it certainly doesn't solve all web archiving issues (we may only realize a web page should be preserved after the right time is long gone), but still, it's really simple, neat, and targetted two problems (persistent URL and web archiving) so nicely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114696608483265274?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114696608483265274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114696608483265274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114696608483265274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114696608483265274'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/05/webcite-just-read-webcite-from-lorcan.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114658129606480377</id><published>2006-05-01T15:55:00.000-07:00</published><updated>2006-05-02T07:48:16.266-07:00</updated><title type='text'></title><content type='html'>learn tricks in java jar file&lt;br /&gt;&lt;br /&gt;I used java jar files for some years but didn't realize several interesting mechanisms inside of jar file. Now I have a chance of reading &lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html"&gt;jar specification&lt;/a&gt; and found several very handy features:&lt;br /&gt;&lt;br /&gt;-- specify class-path in MANIFEST.MF&lt;br /&gt;&lt;br /&gt;-- create index files (INDEX.LIST) for all packages.&lt;br /&gt;&lt;br /&gt;-- META-INF/services directory to associate an implementation with its definition (e.g. class to interface)&lt;br /&gt;&lt;br /&gt;These all come handy for easy distribution of a package&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114658129606480377?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114658129606480377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114658129606480377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114658129606480377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114658129606480377'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/05/learn-tricks-in-java-jar-file-i-used_01.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114309085009558281</id><published>2006-03-22T20:57:00.000-08:00</published><updated>2006-03-22T21:14:10.273-08:00</updated><title type='text'></title><content type='html'>Programmable Web and protocol&lt;br /&gt;&lt;br /&gt;Some common web API design patterns are discussed by &lt;a href="http://cipolo.med.yale.edu/pipermail/gcs-pcs-list/2006-March/000608.html"&gt;Raymond&lt;/a&gt; and &lt;a href="http://cipolo.med.yale.edu/pipermail/gcs-pcs-list/2006-March/000591.html"&gt;Leigh&lt;/a&gt;. Following my previous blog, I am thinking there are different requirements in designing service and protocol. When writing a service, one has control of all resources and has the luxury of making everything clean and right, including all kinds of error processing, so no ambiguity here. While working on a protocol, perhaps it's ok to get minimal correct because one don't have control of all resources.&lt;br /&gt;&lt;br /&gt;So perhaps this may help explain the difference between &lt;a href="http://www.programmableweb.com/apis"&gt;programmable web&lt;/a&gt; and &lt;a href="http://www.ietf.org/html.charters/atompub-charter.html"&gt;Atom publishing protocol&lt;/a&gt;, and why Atom dropped detailed status code between &lt;a href="http://bitworking.org/projects/atom/draft-ietf-atompub-protocol-02.html"&gt;0.2&lt;/a&gt;  &lt;br /&gt;and &lt;a href="http://bitworking.org/projects/atom/draft-ietf-atompub-protocol-04.html"&gt;0.4&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114309085009558281?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114309085009558281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114309085009558281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114309085009558281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114309085009558281'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/programmable-web-and-protocol-some.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114304324034983420</id><published>2006-03-22T07:42:00.000-08:00</published><updated>2006-03-22T08:00:40.593-08:00</updated><title type='text'></title><content type='html'>Producer and Consumer, the economy of unAPI&lt;br /&gt;&lt;br /&gt;While I am riding the bus to Los Alamos, I ponder a problem which annoys me for a while in unAPI design and was debating still now: what's simple, and not too simple in unAPI?&lt;br /&gt;&lt;br /&gt;I think I got something and eager to write down, again this is an economy issue. There are two parties in most web applications: producers and consumers; when producers are potentially quite outnumber consumer, you want to make producer as simple as possible, and leave most complexity to consumer,  because consumer benefits more ($$$) from this cycle and therefore is willing to afford the complexity.&lt;br /&gt;&lt;br /&gt;Maybe this is too abstract, but it may make sense if we think about several examples. (a) In the web, there are so many nasty HTML pages, but we are all happily living with it, because the consumer (browser, search engine, etc) takes extra efforts of making sense of these pages. (b) In the RSS/Atom world, there are several standards and many more nasty pages but news aggregators happily support them all. &lt;br /&gt;&lt;br /&gt;So maybe I have the answer now. In unAPI we want to make the producer as simple as possible, we don't want to burden them for heavy error processing or schema validation -- so we can claim they are wrong here and there, no! it must be extremely easier and nasty errors are tolerated (such as HTML or RSS), content is king here; it's up to the consumer to make order from chaos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114304324034983420?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114304324034983420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114304324034983420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114304324034983420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114304324034983420'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/producer-and-consumer-economy-of-unapi.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114219904955825263</id><published>2006-03-12T13:27:00.000-08:00</published><updated>2006-03-12T13:39:09.026-08:00</updated><title type='text'></title><content type='html'>unAPI proxy: power of URI&lt;br /&gt;&lt;br /&gt;There has been a lot of debates the nature of "identifier" in unAPI. To demonstrate the power of URI, I put together an unAPI proxy &lt;a href="http://dp9.cs.odu.edu/unapi/js/uproxy.html"&gt;http://dp9.cs.odu.edu/unapi/js/uproxy.html&lt;/a&gt;, which modified Alf's &lt;a href="http://hublog.hubmed.org/archives/001324.html"&gt;copy/paste&lt;/a&gt; example to demonstrate that URI indeed helps. In this demo, the javascript extracts responses from both Opa and Hubmed: multiple views of same resource. It's possible because both servers support info:pmid URI. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/lxming/111544234/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/47/111544234_fddbf9e2f2.jpg" width="403" height="135" alt="proxy" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114219904955825263?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114219904955825263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114219904955825263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114219904955825263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114219904955825263'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/unapi-proxy-power-of-uri-there-has.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114192429496533934</id><published>2006-03-09T09:10:00.000-08:00</published><updated>2006-03-09T09:11:35.146-08:00</updated><title type='text'></title><content type='html'>How well do search engines index the OA repositories?&lt;br /&gt;&lt;br /&gt;Frank McCown, Xiaoming Liu, Michael L. Nelson, Mohammad&lt;br /&gt;    Zubair (2006) Search Engine Coverage of the OAI-PMH&lt;br /&gt;    Corpus, IEEE Internet Computing, March/April 2006.&lt;br /&gt;    &lt;a href="http://library.lanl.gov/cgi-bin/getfile?LA-UR-05-9158.pdf"&gt;http://library.lanl.gov/cgi-bin/getfile?LA-UR-05-9158.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;    Abstract: The major search engines are competing to index as much&lt;br /&gt;    of the Web as possible. Having indexed much of the surface Web,&lt;br /&gt;    search engines are now using a variety of approaches to index the&lt;br /&gt;    deep Web. At the same time, institutional repositories and digital&lt;br /&gt;    libraries are adopting the Open Archives Initiative Protocol for&lt;br /&gt;    Metadata Harvesting (OAI-PMH) to expose their holdings, some of&lt;br /&gt;    which are indexed by search engines and some of which are not. To&lt;br /&gt;    determine how much of the current OAI-PMH corpus search engines&lt;br /&gt;    index, we harvested nearly 10M records from 776 OAI-PMH repositories.&lt;br /&gt;    From these records we extracted 3.3M unique resource identifiers&lt;br /&gt;    and then conducted searches on samples from this collection. Of this&lt;br /&gt;    OAI-PMH corpus, Yahoo indexed 65%, followed by Google (44%) and MSN&lt;br /&gt;    (7%). Twenty-one percent of the resources were not indexed by any&lt;br /&gt;    of the three search engines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114192429496533934?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114192429496533934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114192429496533934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114192429496533934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114192429496533934'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/how-well-do-search-engines-index-oa.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114188268276128093</id><published>2006-03-08T21:30:00.000-08:00</published><updated>2006-03-08T21:40:18.486-08:00</updated><title type='text'></title><content type='html'>unapi and live Clipboard&lt;br /&gt;&lt;br /&gt;This is a copy of email to gcs-pcs list, following Alf's &lt;a href="http://hublog.hubmed.org/archives/001324.html"&gt;copy/paste example&lt;/a&gt;, and &lt;a href="http://tinyurl.com/mabsy"&gt;live clipboard&lt;/a&gt;, it live &lt;a href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/liveclipsample/clipboardexample.html"&gt;demo&lt;/a&gt;, and &lt;a href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/screencast/liveclipdemo.html"&gt;screencast&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am not sure how much I got live Clipboard, but looking at their demos really helps a lot, see &lt;a href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/screencast/liveclipdemo.html"&gt;screencam&lt;/a&gt;, so perhaps helpful to others too.&lt;br /&gt;&lt;br /&gt;The last three examples are more advanced than microcontent copy, they are about copying RSS feeds URL, and in the pasted  site these RSS feeds are dynamically loaded. Put it another way, the data is "live" in pasted site.&lt;br /&gt;&lt;br /&gt;Well, I think this is associated with our discussion of unAPI here. It seems like we can use Clipboard to copy URI+unAPI baseURL, and, the data is also "live" in pasted site in two senses: (a) the pasted site can decide which formats to use (b) the pasted site can decide to use other unAPI baseURL.&lt;br /&gt;&lt;br /&gt;I guess the question is about how to plug URI+unAPI into live clipboard, like the hcalendar or RSS feed. Not sure if there is going to be an API or have to read the source code, lots to learn here. But my initial impression is that they are compensative technologies, similar to the relationsahip between RSS and Clipboard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114188268276128093?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114188268276128093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114188268276128093' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114188268276128093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114188268276128093'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/unapi-and-live-clipboard-this-is-copy.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-114178788380030375</id><published>2006-03-07T19:16:00.000-08:00</published><updated>2006-03-07T19:18:03.856-08:00</updated><title type='text'></title><content type='html'>Canary Database unapi compliant&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/lxming/109482953/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/50/109482953_9a8a36d506.jpg" width="500" height="268" alt="canary" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It also includes a self-export page:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/lxming/109484093/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/34/109484093_73b21e3edc.jpg" width="500" height="359" alt="canaryexport" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114178788380030375?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114178788380030375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114178788380030375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114178788380030375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114178788380030375'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/canary-database-unapi-compliant-it.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114152799907811405</id><published>2006-03-04T19:01:00.000-08:00</published><updated>2006-03-04T19:06:39.150-08:00</updated><title type='text'></title><content type='html'>Technosophia unapi support&lt;br /&gt;&lt;br /&gt;Technosophia by Michael J. Giarlo is also unapi compliant, see his &lt;a href="http://staff.washington.edu/leftwing/wordpress/2006/03/02/joining-the-21st-century-one-hack-at-a-time/"&gt;post&lt;/a&gt;, and a screenshot below:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/lxming/107891050/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/48/107891050_1cf7bac9ef.jpg" width="500" height="332" alt="technosophia" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114152799907811405?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114152799907811405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114152799907811405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114152799907811405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114152799907811405'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/technosophia-unapi-support.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114144850701414581</id><published>2006-03-03T20:53:00.000-08:00</published><updated>2006-03-08T21:51:08.850-08:00</updated><title type='text'></title><content type='html'>keep list of unapi server (and lanudry list ;-)&lt;br /&gt;&lt;br /&gt;&lt;ins&gt;Any serious validation should use Ed Summers's excellent &lt;a href="http://cipolo.med.yale.edu/pipermail/gcs-pcs-list/2006-March/000548.html"&gt;validator&lt;/a&gt; , although I may still update information in this page (2006-03-08) &lt;/ins&gt;&lt;br /&gt;&lt;br /&gt;while playing with unapi_link script, I notice some unapi site are not 100% unapi compliant, and actually reveal some interesting questions about unapi itself. Before edsu has a test tool running, I need keep a record and to repeat Alan Kent's philosphy "Nothing like airing dirty laundry to get people to clean up their act! :-)". I will try to keep the list up-to-date. A common pitfall list is also created below. &lt;br /&gt;&lt;br /&gt;Notice I am doing manual testing, so I apologize for any fault at my side.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) &lt;a href="http://www.wallandbinkley.com/quaedam/"&gt;quaedam&lt;/a&gt; &lt;br /&gt;pass&lt;br /&gt;&lt;br /&gt;2)&lt;a href="http://rsinger.library.gatech.edu/unapi/sru.php??uri=gil.gatech.edu%3AVoyager/752588&amp;format=dc"&gt;http://rsinger.library.gatech.edu/unapi/sru.php&lt;/a&gt; &lt;br /&gt;  a) a trailing "?" in unapi link. (notice the spec said no trailing ?)&lt;br /&gt;  b) request to a dissemination doesn't return right value&lt;br /&gt;&lt;br /&gt;3) &lt;a href="http://staff.washington.edu/leftwing/wordpress/2006/03/02/joining-the-21st-century-one-hack-at-a-time/"&gt;http://staff.washington.edu/leftwing&lt;/a&gt;&lt;br /&gt;pass&lt;br /&gt;&lt;br /&gt;4) &lt;a href="http://alcme.oclc.org/wikid/CollectionGsafd"&gt;wikid&lt;/a&gt;&lt;br /&gt;client-side xslt render is required. not sure how to handle this, because we cannot expect all client has an xslt rendering ability, I would like to say unapi server must explicitly support HTML page.&lt;br /&gt;&lt;br /&gt;4) &lt;a href="http://onebiglibrary.net/project/opa/opa-0.2-release-with-json-wrapper"&gt;opa&lt;/a&gt;&lt;br /&gt;4.1) doesn't return json in formats request.&lt;br /&gt;4.2) no site formats list, I think unapi should clarify relationship between site and individual formats list. The wording of OAI-PMH is more precise: "If this argument (identifier) is omitted, then the response includes all metadata formats supported by this repository." In this case I think an empty list is correct. In particular, I think unapi can be cleaner by following how to deal with ListMetadataFormats in OAI-PMH.&lt;br /&gt;&lt;br /&gt;5) unapi_link&lt;br /&gt;need handle relative path in unapi link. &lt;br /&gt;&lt;br /&gt;6)&lt;a href="http://canarydatabase.org/record/403?view=canary"&gt;canarydatabase&lt;/a&gt;&lt;br /&gt;pass&lt;br /&gt;Notice is also has a page explicitly exposing unAPI links.&lt;br /&gt;&lt;a href="http://canarydatabase.org/record/403?view=export"&gt;canarydatabase export&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7) &lt;a href="http://dev.gapines.org/opac/en-US/skin/default/xml/rdetail.xml?r=216030&amp;m=385949&amp;t=apple&amp;tp=keyword&amp;hc=721"&gt;evergreen&lt;/a&gt;&lt;br /&gt;it doesn't work with unapi_link, still looking for the reason.&lt;br /&gt;&lt;br /&gt;Common pitfalls&lt;br /&gt;&lt;br /&gt;1) use href instead of xhref in UNAPI link&lt;br /&gt;2) The trailing "?" is explicitly forbidden in unAPI spec.&lt;br /&gt;&lt;br /&gt;Please leave a comment or send me an email if any question&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114144850701414581?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114144850701414581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114144850701414581' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114144850701414581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114144850701414581'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/keep-list-of-unapi-server-and-lanudry.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-114131764672378377</id><published>2006-03-02T08:26:00.000-08:00</published><updated>2006-03-02T09:15:46.126-08:00</updated><title type='text'></title><content type='html'>UTF-8 character &amp;rdquo;RIGHT DOUBLE QUOTATION MARK, or &amp;amp;#x201d; or &amp;amp;rdquo; or UTF-8 e2809d.&lt;br /&gt;&lt;br /&gt;This takes me a while staring at the screen and figure out the problem.&lt;br /&gt;&lt;br /&gt;In one web page I am testing, the RIGHT DOUBLE QUOTATION MARK (unicode 0x201d); character is used to quote attributes, instead of plain quote (unicode 0x22). the problem is that these character looks terribly similar, and usually in debug tool you don't realize the differences. &lt;br /&gt;&lt;br /&gt;Anyhow it takes me hour to figure out the problem, so perhaps better record the steps here.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;1) use "od -ax" find utf-8 value of this character e2809d.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;2) get the unicode 0x201d by following formula in   [http://en.wikipedia.org/wiki/UTF-8] to get its unicode value.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;3) search the unicode either in "Character Map" of redhat, or search it in the web [http://www.fileformat.info/search/search.htm]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114131764672378377?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114131764672378377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114131764672378377' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114131764672378377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114131764672378377'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/03/utf-8-character-character-is-used-to.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-114119690194349263</id><published>2006-02-28T22:52:00.000-08:00</published><updated>2006-04-28T08:50:48.173-07:00</updated><title type='text'></title><content type='html'>pubmed and citeseer also unapi-enabled by opa&lt;br /&gt;&lt;br /&gt;It's hard to catch Dan's speed of adding more unapi-enabled sites [&lt;a href="http://onebiglibrary.net/project/opa/opa-0.2-release-with-json-wrapper"&gt;http://onebiglibrary.net/project/opa/opa-0.2-release-with-json-wrapper&lt;/a&gt;]. I am talking about all these OAI-PMH repositories -- perhaps I can turn nearly obsolete DP9 to unapi-compliant, which will be easier than writing several hundreds greasymonkey script.&lt;br /&gt;&lt;br /&gt;Anyhow, I have added citeseer and pubmed, these are very similar to previous &lt;a href="http://lxming.blogspot.com/2006/02/unapi-enabled-amazon.html"&gt; amazon script&lt;/a&gt;. Citeseer has some trick with their identifiers (e.g. http://citeseer.ist.psu.edu/brin98anatomy.html and http://citeseer.ist.psu.edu/285516 refers same article), but it seems to be working now.&lt;br /&gt;&lt;br /&gt;See a screenshot for pubmed below:&lt;br /&gt;&lt;img src="http://static.flickr.com/41/106190380_330de758c3.jpg"&gt;&lt;br /&gt;&lt;br /&gt;and citeseer&lt;br /&gt;&lt;img src="http://static.flickr.com/53/106190379_0792f2e56e.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To try it out for citeseer:&lt;br /&gt;&lt;br /&gt;1. Install greasemonkey, restart firefox, come back here, etc&lt;br /&gt;2. Install &lt;a href="http://dp9.cs.odu.edu/unapi/greasemonkey/citeseer_opa.user.js"&gt;citeseer_opa.user.js&lt;/a&gt;&lt;br /&gt;3. Install &lt;a href="http://dp9.cs.odu.edu/unapi/greasemonkey/unapi_link.user.js"&gt;unapi_link.user.js&lt;/a&gt;&lt;br /&gt;4. Visit a citeseer page, such as&lt;br /&gt;&lt;a href="http://citeseer.ist.psu.edu/285516"&gt;http://citeseer.ist.psu.edu/285516&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Notice the sequence of operation is important.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To try it out for pubmed:&lt;br /&gt;&lt;br /&gt;1. Install greasemonkey, restart firefox, come back here, etc&lt;br /&gt;2. Install &lt;a href="http://dp9.cs.odu.edu/unapi/greasemonkey/pubmed_opa.user.js"&gt;pubmed_opa.user.js&lt;/a&gt;&lt;br /&gt;3. Install &lt;a href="http://dp9.cs.odu.edu/unapi/greasemonkey/unapi_link.user.js"&gt;unapi_link.user.js&lt;/a&gt;&lt;br /&gt;4. Visit a pubmed page, such as&lt;br /&gt;&lt;a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=pubmed&amp;dopt=Abstract&amp;list_uids=12345678&amp;query_hl=1&amp;itool=pubmed_docsum"&gt;http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=pubmed&amp;dopt=Abstract&amp;list_uids=12345678&amp;query_hl=1&amp;itool=pubmed_docsum&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Notice the sequence of operation is important.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114119690194349263?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114119690194349263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114119690194349263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114119690194349263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114119690194349263'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/pubmed-and-citeseer-also-unapi-enabled.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114101196357119664</id><published>2006-02-26T19:24:00.000-08:00</published><updated>2006-04-28T08:51:44.626-07:00</updated><title type='text'></title><content type='html'>unapi-enabled amazon.com with OPA proxy.&lt;br /&gt;&lt;br /&gt;I put together an unapi-enabled amazon page, it uses Dan's OPA-0.1 server as proxy [&lt;a href="http://onebiglibrary.net/story/opa-release-0.1"&gt;http://onebiglibrary.net/story/opa-release-0.1&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;Again I am following Dan's previous Amazonmixer script [&lt;a href="http://curtis.med.yale.edu/dchud/log/project/rogue/amazon-coinspmh-enabled"&gt;http://curtis.med.yale.edu/dchud/log/project/rogue/amazon-coinspmh-enabled&lt;/a&gt;, &lt;br /&gt;&lt;br /&gt;See a screenshot below:&lt;br /&gt;&lt;img src="http://static.flickr.com/19/105037854_6f3ef1e81d_d.jpg"/&gt;&lt;br /&gt;&lt;br /&gt; To try it out:&lt;br /&gt;&lt;br /&gt;   1. Install greasemonkey, restart firefox, come back here, etc&lt;br /&gt;   2. Install &lt;a href="http://dp9.cs.odu.edu/unapi/greasemonkey/amazon_opa.user.js"&gt;amazon_opa.user.js&lt;/a&gt;&lt;br /&gt;   3. Install &lt;a href="http://dp9.cs.odu.edu/unapi/greasemonkey/unapi_link.user.js"&gt;unapi_link.user.js&lt;/a&gt;&lt;br /&gt;   4. Visit an amazon book page, such as &lt;a href="http://www.amazon.com/gp/product/0131103628/104-2542103-6763135"&gt;http://www.amazon.com/gp/product/0131103628/104-2542103-6763135&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; Notice the sequence of operation is important.&lt;br /&gt;&lt;br /&gt;so I did nothing new but to demonstrate the system can work ;-) There is a small problem with list of metadata formats supported at a site, since OPA 0.1 returns an empty list for the site. In this version I use listformats response from first available URI. I think we still need a little clarification between listformats for a site and an identifier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114101196357119664?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114101196357119664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114101196357119664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114101196357119664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114101196357119664'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/unapi-enabled-amazon.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114091649494788406</id><published>2006-02-25T16:59:00.000-08:00</published><updated>2006-02-25T17:14:55.156-08:00</updated><title type='text'></title><content type='html'>Make a case for URI microformat&lt;br /&gt;&lt;br /&gt;The URI microformat, as suggested in &lt;a href="http://www.code4lib.org/files/unapi_revision_1-14.html"&gt;unapi&lt;/a&gt; specification by Dan Chud, will be very interesting to library application. Actually it takes advantage of OpenURL and existing link resolver solution.&lt;br /&gt;&lt;br /&gt;URI microformat defines a convention of plugging URI metadata in HTML page. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;span class=”unapi-uri” title=”info:pmid/12345678”&amp;gt;PMID 12345678&amp;lt;/span&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If URI microformat is adopted and widely used, say in major online bookstore, or in faculty/researcher's homepage, now a microformat-aware application (be a greasemonkey script, or a web service) can grab the identifier and point to your local OpenURL resolver, you immediately get the copy from local library.&lt;br /&gt;&lt;br /&gt;In this sense, the URI microformat is very similar to COINS, but it's much simpler and cleaner, anyone can understand and use it, and its aplication can be beyond traditional research library. e.g. in a public library, you can use amazon as catalog and immediately check if it's available in local collection.&lt;br /&gt;&lt;br /&gt;Maybe the rosy picture is too opmistic, but I think this thing is something really valuable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114091649494788406?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114091649494788406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114091649494788406' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114091649494788406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114091649494788406'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/make-case-for-uri-microformat-uri.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-114081775038379948</id><published>2006-02-24T13:48:00.000-08:00</published><updated>2006-02-25T13:28:01.850-08:00</updated><title type='text'></title><content type='html'>Thinking about identifier and unAPI&lt;br /&gt;&lt;br /&gt;This topic is brought up again in gcs-pcs list, the question is whether to use unapi&amp;id=xxx or unapi&amp;amp;uri=xxx. So many smart people have spent quite some time on the topic of identifier, I won't pretend I know what I am talking about ;-) but just some personal thought.&lt;br /&gt;&lt;br /&gt;First I think whether an identifier is persistent: horizontal (time) or vertical (across different applications) is really an economic issue. There are really three categories: precious, normal, or free one.&lt;br /&gt;&lt;br /&gt;Sometimes the "thing" is so precious, so people takes extra care, such as DOI, ISBN, handle, PURL, or info URI, another example is the w3c's tech reports always reside in same place. All these needs central control and special care ($$$) are taken.&lt;br /&gt;&lt;br /&gt;In second category, we do care but it doesn't worth the extra effort, good examples are such as tag URI, Permanent Link of blog, or various unregistered URIs, people is using them everyday and it works.&lt;br /&gt;&lt;br /&gt;The third category is most common URLs, we put it there just because it's resolvable at certain time. There is no guarantee that it will be ever be available tomorrow, and we all live well with this.&lt;br /&gt;&lt;br /&gt;My point is that all these identifiers have good reason to exist, and which one to choose is essentially an economic model. And we cannot predict which one will fly and market will tell us.&lt;br /&gt;&lt;br /&gt;Now come back to unAPI, I think URI is essentially important because it's cornerstone of the Web, the whole RDF thing is based on URI, we just cannot easily discard it. Second, perhaps weak argument is that using URI will make people think twice before putting something there, therefore help persistence and re-use.&lt;br /&gt;&lt;br /&gt;The beauty of URI perhaps can be demonstrated by following example: in blog world people uses "Permanent Link", we can easily plug unapi to blogspace by doing:&lt;br /&gt;&lt;br /&gt;unapi?uri=http://www.inkdroid.org/journal/2006/02/24/hit-sh/&amp;format=dc&lt;br /&gt;&lt;br /&gt;unapi?uri=http://www.inkdroid.org/journal/2006/02/24/hit-sh/&amp;amp;format=html&lt;br /&gt;&lt;br /&gt;This is really cool because we suddenly have access to rich metadata for all web information. Perhaps people will argue that "http://www.inkdroid.org/journal/2006/02/24/hit-sh/" is not permanent -- again, this is an economic issue, and it perhaps is more persistent than handle ;-)&lt;br /&gt;&lt;br /&gt;The last thing is about what copy/paste means in unAPI. One camp said we are copying unapi/?uri, andother camp said that we are copying uri.&lt;br /&gt;&lt;br /&gt;Although initially perhaps unapi/?uri is feasible, I think the final goal is to be able to copy/paste uri. I guess this is perhaps Dan's original vision: there are really two parts in unapi, a microformat to specify URI; and a mechanism of accessing them. I seriously think the first part is very important and independent.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now about second part, it's really building a way of specifying possible services to an URI, and responses format of these services. This excites me a lot. We all know REST model, however REST model only specifies request, it doesn't say anything about&lt;br /&gt;response. However, if unAPI is really successful, it actually adds another aspect to REST. So if I am not mistaken, I saw a huge potential of integrating library with the web.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114081775038379948?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114081775038379948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114081775038379948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114081775038379948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114081775038379948'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/thinking-about-identifier-and-unapi.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114079874086518136</id><published>2006-02-24T08:07:00.000-08:00</published><updated>2006-04-28T08:52:39.966-07:00</updated><title type='text'></title><content type='html'>unapi_link script to add unapi links&lt;br /&gt;&lt;br /&gt;Inspired in #code4lib, I  am getting interested in Greasemonkey, I started by reading "Dive into Greasemonkey" and studying Dan Chud's COINS-PMH code.  Here is a little script of adding unapi links to unapi-compatible page, it adds links right next to unapi  span.&lt;br /&gt;&lt;p&gt; To try it out: &lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Install greasemonkey, restart firefox, come back here, etc&lt;/li&gt;&lt;li&gt;Install &lt;a href="http://dp9.cs.odu.edu/unapi/greasemonkey/unapi_link.user.js"&gt;unapi_link.user.js&lt;/a&gt; right-click (ctrl-click on mac)&lt;/li&gt;&lt;li&gt;Visit   a unapi compatible page, such as &lt;a href="http://www.wallandbinkley.com/quaedam/"&gt;quaedam&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;Notice unapi apis links will appear, but I agree it's difficult to find the tiny link ;-),  to make the point, I  also put a screen  caputure  here.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/lxming/103829441/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/36/103829441_effebc34d4_o.png" alt="quaedam" height="106" width="485" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114079874086518136?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114079874086518136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114079874086518136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114079874086518136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114079874086518136'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/unapilink-script-to-add-unapi-links.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114053741411762153</id><published>2006-02-21T07:56:00.000-08:00</published><updated>2006-02-21T07:56:54.356-08:00</updated><title type='text'></title><content type='html'>&lt;b&gt;Cornell web library&lt;/b&gt; We heard the new before, but recently William Arms have two publications about Cornell's work of web library -- transfer, storage, and access of whole Internet Archive Collection (tens of billions pages with 600+TB data, still counting ;-). &lt;p&gt;The project is ambitious and they only start doing real testing in January, so results are initial. Nevertheless this is very related to aDORe work for its immense scalability problem. It is very interesting to see their design choices and arguments, such as transfer rate of the data, pre-ingest, one big SQL server, and one big machine to do everything.&lt;/p&gt; &lt;p&gt;  &lt;a href="http://www.dlib.org/dlib/february06/arms/02arms.html"&gt;http://www.dlib.org/dlib/february06/arms/02arms.html&lt;/a&gt;  &lt;/p&gt;  &lt;a href="http://www.infosci.cornell.edu/SIN/WebLib/papers/Arms2006a.doc"&gt;http://www.infosci.cornell.edu/SIN/WebLib/papers/Arms2006a.doc&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114053741411762153?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114053741411762153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114053741411762153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114053741411762153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114053741411762153'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/cornell-web-library-we-heard-new.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114041291410144680</id><published>2006-02-19T21:19:00.000-08:00</published><updated>2006-02-19T21:22:18.713-08:00</updated><title type='text'></title><content type='html'>switch esc to alt key for emacs in macOS.&lt;br /&gt;&lt;br /&gt;I was trying to make emacs work as I am comfortable in linux. One issue is to use "alt" key intead of "esc" key for "meta" character.&lt;br /&gt;&lt;br /&gt;This is done by "defaults write com.apple.x11 swap_alt_meta -boolean true" in shell script&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114041291410144680?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114041291410144680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114041291410144680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114041291410144680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114041291410144680'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/switch-esc-to-alt-key-for-emacs-in.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-114041134028229371</id><published>2006-02-19T20:49:00.000-08:00</published><updated>2006-02-19T20:58:23.260-08:00</updated><title type='text'></title><content type='html'>replace ^M (\n\r) with \n in emacs&lt;br /&gt;&lt;br /&gt;While I am copying firefox text to an emacs buffer, I sometimes get the annoying "^M". This seems solvable by : "M-x replace-string ^q^m RET ^q^j",&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-114041134028229371?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/114041134028229371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=114041134028229371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114041134028229371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/114041134028229371'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2006/02/replace-m-nr-with-n-in-emacs-while-i.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-109958465715227205</id><published>2004-11-04T08:09:00.000-08:00</published><updated>2004-11-04T08:10:57.153-08:00</updated><title type='text'></title><content type='html'>count speed in log filesI by  simply average over the last 10 minutes&lt;br /&gt;&lt;br /&gt;# echo `tail -35000 netricsd.log| grep -c 03/Nov/2004-18:4` 5k 600 / p | dc&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/5063599-109958465715227205?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/109958465715227205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=109958465715227205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109958465715227205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109958465715227205'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/11/count-speed-in-log-filesi-by-simply.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-109958456186437216</id><published>2004-11-04T08:08:00.000-08:00</published><updated>2004-11-04T08:09:21.866-08:00</updated><title type='text'></title><content type='html'>bc and dc&lt;br /&gt;&lt;br /&gt;http://www.computerhope.com/unix/udc.htm&lt;br /&gt;http://www.computerhope.com/unix/ubc.htm&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-109958456186437216?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/109958456186437216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=109958456186437216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109958456186437216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109958456186437216'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/11/bc-and-dc-httpwww.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-109475092739567830</id><published>2004-09-09T10:13:00.000-07:00</published><updated>2004-09-09T10:28:47.396-07:00</updated><title type='text'></title><content type='html'>slope/cofficient of power  law distribution&lt;br /&gt;&lt;br /&gt; coef(lm (log10(vouty) ~ log10(voutx)))?  This the &lt;br /&gt; slope / coefficient of log10(voutx) should be an estimate of the power.&lt;br /&gt;&lt;br /&gt;http://maths.newcastle.edu.au/~rking/R/help/03a/7022.html&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-109475092739567830?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/109475092739567830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=109475092739567830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109475092739567830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109475092739567830'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/09/slopecofficient-of-power-law.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-109466400179209439</id><published>2004-09-08T10:16:00.000-07:00</published><updated>2004-09-08T10:20:01.793-07:00</updated><title type='text'></title><content type='html'>Pernbeger's (2004) finding that download counts (what we call "usage&lt;br /&gt;impact") of British Medical Journal articles predict citation&lt;br /&gt;counts ("citation impact") for those articles in subsequent&lt;br /&gt;years confirms what Tim Brody's online usage/citation correlator&lt;br /&gt;http://citebase.eprints.org/analysis/correlation.php has been&lt;br /&gt;demonstrating for several years now across a number of areas in physics&lt;br /&gt;and mathematics (Brody &amp; Harnad 2004, in prep.): There is a significant&lt;br /&gt;correlation between downloads today and citations two years later.&lt;br /&gt;&lt;br /&gt;This correlation has two immediate implications:&lt;br /&gt;&lt;br /&gt;    (1) Download counts can be used as early performance indicators for&lt;br /&gt;papers and authors, even before their impact is reflected in citation&lt;br /&gt;counts: http://citebase.eprints.org/ ( Hitchcock et al. 2003).&lt;br /&gt;&lt;br /&gt;    (2) Enhancing usage impact is yet another reason for authors to&lt;br /&gt;provide open access to their articles by self-archiving them.&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;&lt;br /&gt;Brody, T. &amp; Harnad, S. (2004, in prep.) Using Web Statistics as a&lt;br /&gt;predictor of Citation Impact.&lt;br /&gt;http://www.ecs.soton.ac.uk/~harnad/Temp/timcorr.doc&lt;br /&gt;&lt;br /&gt;Harnad, S. &amp;amp; Brody, T. (2004) Comparing the Impact of Open Access (OA)&lt;br /&gt;vs. Non-OA Articles in the Same Journals, D-Lib Magazine 10 (6) June&lt;br /&gt;http://www.dlib.org/dlib/june04/harnad/06harnad.html&lt;br /&gt;&lt;br /&gt;Hitchcock, Steve; Woukeu, Arouna; Brody, Tim; Carr, Les; Hall, Wendy and&lt;br /&gt;Harnad, Stevan. (2003) Evaluating Citebase, an open access Web-based&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/5063599-109466400179209439?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/109466400179209439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=109466400179209439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109466400179209439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109466400179209439'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/09/pernbegers-2004-finding-that-download.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-109086077663667970</id><published>2004-07-26T09:49:00.000-07:00</published><updated>2004-07-26T09:52:56.636-07:00</updated><title type='text'></title><content type='html'>Python, Zope, and Plone&lt;br /&gt; http://www.plone.org/&lt;br /&gt; http://www.zope.org&lt;br /&gt; &lt;br /&gt; Zope is an application server and Plone is a content management tool over Zope.&lt;br /&gt; &lt;br /&gt; Sounds interesting and gets a lot of attention.&lt;br /&gt; &lt;br /&gt; &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/5063599-109086077663667970?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/109086077663667970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=109086077663667970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109086077663667970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/109086077663667970'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/07/python-zope-and-plone-httpwww.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-108975291291002760</id><published>2004-07-13T14:06:00.000-07:00</published><updated>2004-07-13T14:08:32.910-07:00</updated><title type='text'></title><content type='html'>Tomcat 5 with arc package &lt;br /&gt;&lt;br /&gt;in tomcat 5.0.25, it appeared that tomcat 5 disable the invoker servlet&lt;br /&gt;by default. You may read the details from&lt;br /&gt;http://www.coreservlets.com/Apache-Tomcat-Tutorial/#Enable-Invoker&lt;br /&gt;&lt;br /&gt;The quick solution is to uncomment the corresponding servlet element at&lt;br /&gt;the top of install_dir/conf/web.xml, as below:&lt;br /&gt;&lt;br /&gt;    &lt;servlet&gt;&lt;br /&gt;        &lt;servlet-name&gt;invoker&lt;/servlet-name&gt;&lt;br /&gt;        &lt;servlet-class&gt;&lt;br /&gt;          org.apache.catalina.servlets.InvokerServlet&lt;br /&gt;        &lt;/servlet-class&gt;&lt;br /&gt;        ...&lt;br /&gt;    &lt;/servlet&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-108975291291002760?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/108975291291002760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=108975291291002760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/108975291291002760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/108975291291002760'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/07/tomcat-5-with-arc-package-in-tomcat-5.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-108975265243642904</id><published>2004-07-13T14:01:00.000-07:00</published><updated>2004-07-13T14:04:12.436-07:00</updated><title type='text'></title><content type='html'>Static and Dynamic table in mysql&lt;br /&gt;&lt;br /&gt;http://dev.mysql.com/doc/mysql/en/Static_format.html&lt;br /&gt;http://dev.mysql.com/doc/mysql/en/Dynamic_format.html&lt;br /&gt;&lt;br /&gt;Static format is the default for MyISAM tables. It is used when the table contains no variable-length columns (VARCHAR, BLOB, or TEXT). Each row is stored using a fixed number of bytes. &lt;br /&gt;&lt;br /&gt;Dynamic storage format is used if a MyISAM table contains any variable-length columns (VARCHAR, BLOB, or TEXT), or if the table was created with the ROW_FORMAT=DYNAMIC option.&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/5063599-108975265243642904?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/108975265243642904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=108975265243642904' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/108975265243642904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/108975265243642904'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/07/static-and-dynamic-table-in-mysql.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063599.post-108975243069964590</id><published>2004-07-13T13:57:00.000-07:00</published><updated>2004-07-13T14:00:30.700-07:00</updated><title type='text'></title><content type='html'>TigerHash&lt;br /&gt;&lt;br /&gt;Tiger is a fast new hash function, designed to be very fast on modern computers, and in particular on the state-of-the-art 64-bit computers (like DEC-Alpha), while it is still not slower than other suggested hash functions on 32-bit machines.&lt;br /&gt;&lt;br /&gt;http://www.cs.technion.ac.il/~biham/Reports/Tiger/&lt;br /&gt;&lt;br /&gt;The hash length 192 bits. Accordingly, the hash length of MD5 is 128 bits, and SHA-1 is 190 bits.&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/5063599-108975243069964590?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/108975243069964590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=108975243069964590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/108975243069964590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/108975243069964590'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2004/07/tigerhash-tiger-is-fast-new-hash.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-106087808725163229</id><published>2003-08-14T09:21:00.000-07:00</published><updated>2003-08-14T09:26:01.513-07:00</updated><title type='text'></title><content type='html'>Improve performance of tomcat/cocoon&lt;br /&gt;overwrite doGet in servlet&lt;br /&gt;&lt;br /&gt;doHead{&lt;br /&gt;&lt;br /&gt;protected void doHead(HttpServletRequest req,&lt;br /&gt;                      HttpServletResponse resp)&lt;br /&gt;               throws ServletException,&lt;br /&gt;                      java.io.IOException&lt;br /&gt;&lt;br /&gt;    Receives an HTTP HEAD request from the protected service method and handles the request. The client sends a HEAD request when it wants to see only the headers of a response, such as Content-Type or Content-Length. The HTTP HEAD method counts the output bytes in the response to set the Content-Length header accurately.&lt;br /&gt;&lt;br /&gt;    If you override this method, you can avoid computing the response body and just set the response headers directly to improve performance. Make sure that the doHead method you write is both safe and idempotent (that is, protects itself from being called multiple times for one HTTP HEAD request).&lt;br /&gt;&lt;br /&gt;If the HTTP HEAD request is incorrectly formatted, doHead returns an HTTP "Bad Request" message. &lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-106087808725163229?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/106087808725163229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=106087808725163229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106087808725163229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106087808725163229'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/08/improve-performance-of-tomcatcocoon.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-106072079298267805</id><published>2003-08-12T13:39:00.000-07:00</published><updated>2003-08-12T13:39:52.880-07:00</updated><title type='text'></title><content type='html'>Compression and de-compression with Java:&lt;br /&gt;&lt;br /&gt;http://developer.java.sun.com/developer/technicalArticles/Programming/compression/&lt;br /&gt;&lt;br /&gt;Testing code available at project directory. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-106072079298267805?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/106072079298267805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=106072079298267805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106072079298267805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106072079298267805'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/08/compression-and-de-compression-with.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-106071973735805335</id><published>2003-08-12T13:22:00.000-07:00</published><updated>2003-08-12T13:22:17.320-07:00</updated><title type='text'></title><content type='html'>Googlesets:&lt;br /&gt;&lt;br /&gt;http://labs.google.com/sets&lt;br /&gt;&lt;br /&gt;Is this an application of spreading activation?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-106071973735805335?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/106071973735805335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=106071973735805335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106071973735805335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106071973735805335'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/08/googlesets-httplabs.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-106071969559312059</id><published>2003-08-12T13:21:00.000-07:00</published><updated>2003-08-12T13:21:35.563-07:00</updated><title type='text'></title><content type='html'>Cocoon/Tomcat&lt;br /&gt;&lt;br /&gt;Cocoon/Tomcat silently discards concurrent requests if the request queue is full. This can solved by changing server.xml&lt;br /&gt; &lt;Connector className="org.apache.catalina.connector.http.HttpConnector"&lt;br /&gt;               port="8080" minProcessors="5" maxProcessors="75"&lt;br /&gt;               enableLookups="true" redirectPort="8443"&lt;br /&gt;               acceptCount="10" debug="0" connectionTimeout="60000"/&gt;&lt;br /&gt;&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/5063599-106071969559312059?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/106071969559312059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=106071969559312059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106071969559312059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/106071969559312059'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/08/cocoontomcat-cocoontomcat-silently.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-105908328525617656</id><published>2003-07-24T14:48:00.000-07:00</published><updated>2003-07-24T14:48:05.113-07:00</updated><title type='text'></title><content type='html'>Other Useful packages recently discovered.&lt;br /&gt;octave&lt;br /&gt;http://www.octave.org/&lt;br /&gt;Open Source Matlab&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gnuplot&lt;br /&gt;great drawing tool&lt;br /&gt;http://www.gnuplot.info/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Boost, previous Generic Graph Component Library (GGCL), looks like a powerful c++ graph package&lt;br /&gt;&lt;br /&gt;PathView&lt;br /&gt;&lt;br /&gt;Great 3-D visulization, if we want to build a real cool galaxy of citation network ;-)&lt;br /&gt;http://www.haydenplanetarium.org/hp/vo/partiview/&lt;br /&gt;&lt;br /&gt;R&lt;br /&gt;http://www.r-project.org/&lt;br /&gt;statistics package with a good social network analysis module&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/5063599-105908328525617656?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/105908328525617656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=105908328525617656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/105908328525617656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/105908328525617656'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/07/other-useful-packages-recently.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-105908296641206254</id><published>2003-07-24T14:42:00.000-07:00</published><updated>2003-07-24T14:42:46.300-07:00</updated><title type='text'></title><content type='html'>install webdot/graphviz/tomcat/apache at intrepid:/home/liu_x/tool&lt;br /&gt;Explore Java matrix/Graph packages&lt;br /&gt;&lt;br /&gt;General Java matrix/math packages:&lt;br /&gt;http://math.nist.gov/javanumerics/&lt;br /&gt;&lt;br /&gt;It has many useful links to other java math projects.&lt;br /&gt;&lt;br /&gt;Colt package:&lt;br /&gt;It looks powerful but I did not find a graph theory API&lt;br /&gt;http://hoschek.home.cern.ch/hoschek/colt/index.htm&lt;br /&gt;&lt;br /&gt;JDSL:&lt;br /&gt;http://www.cs.brown.edu/cgc/jdsl/doc.html&lt;br /&gt;It has limited graph algo implementation, including DFS, DijkstraPath. It's more like a teaching tool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Graph Foundation Class for Java&lt;br /&gt;http://www.alphaworks.ibm.com/tech/gfc&lt;br /&gt;It has a more powerful Graph API, however the latest version is released 07/31/2000. There is no much activity going on there. And the interface is rather odd. It supports breath-first search though.&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/5063599-105908296641206254?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/105908296641206254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=105908296641206254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/105908296641206254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/105908296641206254'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/07/install-webdotgraphviztomcatapache-at.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-105908178872696341</id><published>2003-07-24T14:23:00.000-07:00</published><updated>2003-07-24T14:23:08.690-07:00</updated><title type='text'></title><content type='html'>Install Tomcat 4.1.24/Apache 2.0/jk2/GraphViz, many documents are incomplete or not work at all&lt;br /&gt;&lt;br /&gt;Here are two useful links&lt;br /&gt;http://www.greenfieldresearch.ca/technical/jk2_config.html&lt;br /&gt;http://www.pixelfreak.net/howto/apache2_jk2_tomcat/socket.html&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;--Compile Apache with so enabled&lt;br /&gt;./configure --prefix=/usr/local/apache2 --enable-ssl --enable-module=so&lt;br /&gt;&lt;br /&gt;--Install Tomcat&lt;br /&gt;Downlod jk2 and compile&lt;br /&gt;cd to /usr/local/src/jk2/jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2 and run configure with the following options...&lt;br /&gt;    ./configure --with-apxs2=&lt;apache-root-directory&gt;/bin/apxs --with-tomcat41=&lt;tomcat-root-directory&gt; --with-java-home=&lt;java-root-directory&gt; --with-jni --with-pcre&lt;br /&gt;&lt;br /&gt;--copy .so files to apache modules directory&lt;br /&gt;&lt;br /&gt;--Config httpd.conf &lt;br /&gt;LoadModule jk2_module modules/mod_jk2.so&lt;br /&gt;&lt;br /&gt;--create workers.properties at $apache/conf&lt;br /&gt; Define the communication channel&lt;br /&gt;[shm]&lt;br /&gt;file=/home/liu_x/tool/apache2/logs/jk2.shm&lt;br /&gt;[channel.socket:localhost:8009]&lt;br /&gt;info=Ajp13 forwarding over socket&lt;br /&gt;tomcatId=localhost:8009&lt;br /&gt;&lt;br /&gt;[ajp13:localhost:8009]&lt;br /&gt;channel=channel.socket:localhost:8009&lt;br /&gt;&lt;br /&gt;# Map the Tomcat examples webapp to the Web server uri space&lt;br /&gt;[uri:/examples/*]&lt;br /&gt;worker=ajp13:localhost:8009&lt;br /&gt;&lt;br /&gt;--create jk2.properties at $tomcat/conf&lt;br /&gt;&lt;br /&gt;shm.file=/home/liu_x/tool/apache2/logs/jk2.shm&lt;br /&gt;&lt;br /&gt;-- Start tomcat first, and then start Apache.&lt;br /&gt;&lt;br /&gt;&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/5063599-105908178872696341?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/105908178872696341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=105908178872696341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/105908178872696341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/105908178872696341'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/07/install-tomcat-4.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-89279447</id><published>2003-02-17T19:13:00.000-08:00</published><updated>2003-02-17T19:13:30.833-08:00</updated><title type='text'></title><content type='html'>good day&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-89279447?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/89279447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=89279447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/89279447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/89279447'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/02/good-day.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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-5063599.post-89279241</id><published>2003-02-17T19:10:00.000-08:00</published><updated>2003-02-17T19:10:18.046-08:00</updated><title type='text'></title><content type='html'>Today I took cs772 courses&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5063599-89279241?l=lxming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lxming.blogspot.com/feeds/89279241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5063599&amp;postID=89279241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/89279241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063599/posts/default/89279241'/><link rel='alternate' type='text/html' href='http://lxming.blogspot.com/2003/02/today-i-took-cs772-courses.html' title=''/><author><name>xiaoming</name><uri>http://www.blogger.com/profile/17870052684461762879</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>
