<?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/'><id>tag:blogger.com,1999:blog-8601579266012455634.post6456835795845527645..comments</id><updated>2011-03-21T21:14:56.893-07:00</updated><category term='flash'/><category term='icons'/><category term='pojo'/><category term='hosting'/><category term='scaling'/><category term='algorithms'/><category term='rubyonrails'/><category term='owl'/><category term='audio'/><category term='activewarehouse'/><category term='sudoku'/><category term='sqlserver'/><category term='git'/><category term='javapolis'/><category term='rails'/><category term='video'/><category term='email'/><category term='combinations'/><category term='xhtml'/><category term='mashup'/><category term='work'/><category term='googleio'/><category term='scripting'/><category term='thespringexperience'/><category term='facebook'/><category term='fixtures'/><category term='i18n'/><category term='aop'/><category term='information'/><category term='swoop'/><category term='aspectj'/><category term='tune'/><category term='networking'/><category term='crud'/><category term='rest'/><category term='io2011'/><category term='mvc'/><category term='controller'/><category term='interview'/><category term='qotd'/><category term='springwebflow'/><category term='Web Architecture'/><category term='dns'/><category term='groovy'/><category term='flickr'/><category term='view'/><category term='delicious'/><category term='rocketboom'/><category term='mac'/><category term='railsconf'/><category term='mp3'/><category term='framework'/><category term='j2ee'/><category term='owl1.1'/><category term='json'/><category term='subversion'/><category term='google'/><category term='pig'/><category term='Python'/><category term='activerecord'/><category term='alohaonrails'/><category term='messaging'/><category term='opendns'/><category term='song'/><category term='documentary'/><category term='osx'/><category term='consensus'/><category term='dhtml'/><category term='protege'/><category term='bigtable'/><category term='sparql'/><category term='tdd'/><category term='dataweb'/><category term='Crypto'/><category term='Social Networking'/><category term='Agile Programming'/><category term='springframework'/><category term='foaf'/><category term='math'/><category term='charts'/><category term='startup'/><category term='deployment'/><category term='arpanet'/><category term='music'/><category term='xslt'/><category term='cube'/><category term='bookmarks'/><category term='tivo'/><category term='netbeans'/><category term='inference'/><category term='railsconf07'/><category term='switchtower'/><category term='javascript extjs'/><category term='Ruby'/><category term='drools'/><category term='hioug'/><category term='health'/><category term='gmail'/><category term='html5 ruby rails'/><category term='openid'/><category term='magazine'/><category term='html5'/><category term='erlang'/><category term='web'/><category term='coucdb'/><category term='annotations'/><category term='deliciouslinks'/><category term='storage'/><category term='puzzle'/><category term='box2d'/><category term='ontology'/><category term='mapreduce'/><category term='hadoop'/><category term='presentation'/><category term='HTTP'/><category term='reasoner'/><category term='applications'/><category term='css'/><category term='folksonomy'/><category term='spring'/><category term='coordination'/><category term='migrations'/><category term='performance'/><category term='jess'/><category term='eclipse'/><category term='errorlytics'/><category term='chrome web store'/><category term='http://dmoz.org/Computers/Internet/On_the_Web/Weblogs/'/><category term='xp'/><category term='blogs'/><category term='grddl'/><category term='humor'/><category term='vanity'/><category term='contest'/><category term='acegi'/><category term='buttons'/><category term='business'/><category term='scala'/><category term='mysql'/><category term='soundboard'/><category term='semantic web'/><category term='esb'/><category term='XML'/><category term='algorithm'/><category term='cloud'/><category term='olap'/><category term='oracle'/><category term='microformats'/><category term='movie'/><category term='rspec'/><category term='dartlang'/><category term='expertspringmvc'/><category term='filesystem'/><category term='software'/><category term='#io2011'/><category term='html'/><category term='distributedsystems'/><category term='trendline'/><category term='newgame'/><category term='hjug'/><category term='jms'/><category term='xmlschema'/><category term='thespringframework'/><category term='w3c'/><category term='uri'/><category term='web design'/><category term='uh'/><category term='couchdb'/><category term='rules'/><category term='trust'/><category term='javascript'/><category term='fuse'/><category term='mule'/><category term='jena'/><category term='im'/><category term='postfix'/><category term='graphs'/><category term='conference'/><category term='graph'/><category term='Ontologies'/><category term='Programming'/><category term='browsers'/><category term='dart'/><category term='rdf'/><category term='transactions'/><category term='General'/><category term='browser'/><category term='forms'/><category term='aspects'/><category term='windows'/><category term='science'/><category term='database'/><category term='linux'/><category term='hibernate'/><category term='unittests'/><category term='php'/><category term='supermariobrothers'/><category term='ajax'/><category term='patterns'/><category term='tutorial'/><category term='timbl'/><category term='games'/><category term='oop'/><category term='petstore'/><category term='Java'/><category term='blog'/><category term='book'/><category term='springmvc'/><category term='nas'/><category term='regressionline'/><category term='Blogging'/><category term='pagination'/><category term='activeresource'/><category term='hawaii'/><category term='tags'/><category term='tests'/><category term='appengine'/><category term='radrails'/><category term='web2.0'/><category term='food'/><category term='search'/><category term='softwareengineering'/><category term='tagging'/><category term='model'/><category term='HTML amp; CSS'/><category term='spring.net'/><category term='capistrano'/><category term='data'/><category term='metadata'/><category term='pellet'/><title type='text'>Comments on Seth Ladd's Blog: I Second That Emotion</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.sethladd.com/feeds/6456835795845527645/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8601579266012455634/6456835795845527645/comments/default'/><link rel='alternate' type='text/html' href='http://blog.sethladd.com/2007/09/i-second-that-emotion.html'/><author><name>Seth Ladd</name><uri>https://profiles.google.com/118397406534237711570</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-_3znrz32MsU/AAAAAAAAAAI/AAAAAAAAI_M/fidbIxEQoH8/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8601579266012455634.post-35039408740148982</id><published>2011-03-21T21:14:57.326-07:00</published><updated>2011-03-21T21:14:57.326-07:00</updated><title type='text'>Reading the comments on Tim Bray&amp;#39;s post it see...</title><content type='html'>Reading the comments on Tim Bray&amp;#39;s post it seems the difference is in the buffering.&lt;br&gt;&lt;br&gt;Igwan advocates buffering the whole file before processing it and claims faster times, also Java&amp;#39;s buffered reader implements (who&amp;#39;d have thought it) a reasonable sized buffer (ISTR its 8kb) by default. This means each disk read for Erlang is 1 or 2 bytes and it repeats the process to identify lines, but Java hoovers up a few Kb each time and works out where the lines are afterwards.&lt;br&gt;&lt;br&gt;With this in mind, the stats you posted are no great surprise - Erlang will be working the IO subsystem pretty hard and that will slow down the whole thing.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8601579266012455634/6456835795845527645/comments/default/35039408740148982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8601579266012455634/6456835795845527645/comments/default/35039408740148982'/><link rel='alternate' type='text/html' href='http://blog.sethladd.com/2007/09/i-second-that-emotion.html?showComment=1300767297326#c35039408740148982' title=''/><author><name>Simon Gibbs</name><uri>http://thefourthplace.net/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sethladd.com/2007/09/i-second-that-emotion.html' ref='tag:blogger.com,1999:blog-8601579266012455634.post-6456835795845527645' source='http://www.blogger.com/feeds/8601579266012455634/posts/default/6456835795845527645' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-652145844'/></entry><entry><id>tag:blogger.com,1999:blog-8601579266012455634.post-3803743704656755458</id><published>2007-09-25T23:07:38.000-07:00</published><updated>2007-09-25T23:07:38.000-07:00</updated><title type='text'>The real question seems to be; why is there no buf...</title><content type='html'>The real question seems to be; why is there no buffered implementation in io:get_line(File). Did Tim not find it, does the standard Erlang library not provide one or should one use a 3rd party lib?&lt;br&gt;&lt;br&gt;Igwans comment is not really a solution. Sometimes reading files into memory works, sometimes it doesn&amp;#39;t. Sometimes your files are just do big to read into memory.&lt;br&gt;&lt;br&gt;When comparing the in memory solution to a Java/Scala solution, one should implement the Scala solution with NIO which just uses memory mapped files and OS memory managment. This is much faster than reading files to a buffer by hand (I did use NIO to parse large log files for analysis).&lt;br&gt;&lt;br&gt;And if one is supposed to develop a buffered implementation or a memory mapped one then my main concern with all languages beside Java comes into play: With Java you usually do not develop applications but assemble them. There are so many great open source libraries around (lucene, svnkit, spring, seam, camel, ...) that most of the time you only write plumbing code.&lt;br&gt;&lt;br&gt;Peace&lt;br&gt;-stephan&lt;br&gt;&lt;br&gt;--&lt;br&gt;Stephan Schmidt :: stephan@reposita.org&lt;br&gt;Reposita Open Source - Monitor your software development&lt;br&gt;http://www.reposita.org&lt;br&gt;Blog at http://stephan.reposita.org - No signal. No noise.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8601579266012455634/6456835795845527645/comments/default/3803743704656755458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8601579266012455634/6456835795845527645/comments/default/3803743704656755458'/><link rel='alternate' type='text/html' href='http://blog.sethladd.com/2007/09/i-second-that-emotion.html?showComment=1190786858000#c3803743704656755458' title=''/><author><name>Stephan Schmidt</name><uri>http://stephan.reposita.org</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sethladd.com/2007/09/i-second-that-emotion.html' ref='tag:blogger.com,1999:blog-8601579266012455634.post-6456835795845527645' source='http://www.blogger.com/feeds/8601579266012455634/posts/default/6456835795845527645' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1514779454'/></entry><entry><id>tag:blogger.com,1999:blog-8601579266012455634.post-4620389178358163058</id><published>2007-09-24T21:11:31.000-07:00</published><updated>2007-09-24T21:11:31.000-07:00</updated><title type='text'>Reading the comments on Tim Bray&amp;#39;s post it see...</title><content type='html'>Reading the comments on Tim Bray&amp;#39;s post it seems the difference is in the buffering.&lt;br&gt;&lt;br&gt;Igwan advocates buffering the whole file before processing it and claims faster times, also Java&amp;#39;s buffered reader implements (who&amp;#39;d have thought it) a reasonable sized buffer (ISTR its 8kb) by default. This means each disk read for Erlang is 1 or 2 bytes and it repeats the process to identify lines, but Java hoovers up a few Kb each time and works out where the lines are afterwards.&lt;br&gt;&lt;br&gt;With this in mind, the stats you posted are no great surprise - Erlang will be working the IO subsystem pretty hard and that will slow down the whole thing.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8601579266012455634/6456835795845527645/comments/default/4620389178358163058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8601579266012455634/6456835795845527645/comments/default/4620389178358163058'/><link rel='alternate' type='text/html' href='http://blog.sethladd.com/2007/09/i-second-that-emotion.html?showComment=1190693491000#c4620389178358163058' title=''/><author><name>Simon Gibbs</name><uri>http://thefourthplace.net/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sethladd.com/2007/09/i-second-that-emotion.html' ref='tag:blogger.com,1999:blog-8601579266012455634.post-6456835795845527645' source='http://www.blogger.com/feeds/8601579266012455634/posts/default/6456835795845527645' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1514779454'/></entry></feed>
