<?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-1921983280578537182</id><updated>2011-07-07T19:07:06.464-07:00</updated><category term='linux'/><category term='journeyer'/><category term='tech'/><category term='Unconference'/><category term='Gadget'/><category term='SLES'/><category term='Technology preview'/><category term='security'/><category term='SLE11'/><category term='cifs'/><category term='Hackweek'/><category term='HackWeek IV'/><category term='blog editor'/><category term='overflow'/><category term='Fun'/><category term='vimrc'/><category term='follow-up'/><category term='Talks'/><category term='LWN'/><category term='tip'/><category term='Y410'/><category term='editor'/><category term='Hackweek V'/><category term='blogger'/><category term='Blog publisher'/><category term='python'/><category term='fscache'/><category term='openSUSE Conference'/><category term='Travel'/><category term='kernel'/><category term='swap'/><category term='Lenovo'/><category term='gnome-blog'/><category term='BlogPost'/><category term='network'/><category term='nfs'/><category term='Laptop'/><category term='VIM'/><category term='PyGtk'/><category term='caching'/><category term='openSUSE'/><category term='update'/><category term='character map'/><category term='utility'/><category term='backup'/><title type='text'>Journeyer Inside</title><subtitle type='html'>Technical stuff that interests me, inspires me, excites me or baffles me...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-2176512447685194180</id><published>2010-08-04T22:02:00.000-07:00</published><updated>2010-08-04T22:51:43.089-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caching'/><category scheme='http://www.blogger.com/atom/ns#' term='cifs'/><category scheme='http://www.blogger.com/atom/ns#' term='Hackweek V'/><category scheme='http://www.blogger.com/atom/ns#' term='fscache'/><category scheme='http://www.blogger.com/atom/ns#' term='follow-up'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Hackweek'/><title type='text'>Local caching for CIFS network file system - followup</title><content type='html'>&lt;pre style="font-family: verdana; font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;Here's a follow-up to my previous post on&lt;br /&gt;&lt;a href="http://journeyerinside.blogspot.com/2010/06/hackweek-v-local-caching-for-cifs.html"&gt;Local caching for CIFS network file system&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since the previous post, I worked on improving the patches that add&lt;br /&gt;local caching, fixed a few bugs, addressed review comments from the&lt;br /&gt;community and re-posted the patches. I also gave  a talk about it at&lt;br /&gt;the SUSE Labs Conference 2010 happened at Prague. The slides can be&lt;br /&gt;found here: &lt;a href="http://www.suse.com/%7Esjayaraman/talks/cifs-fsc-labsconf-2010.pdf"&gt;FS-Cache aware CIFS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This patchset was merged in the upstream Linux kernel yesterday (Yay!)&lt;br /&gt;which means this feature would be available starting from kernel&lt;br /&gt;version 2.6.35-rc1.&lt;br /&gt;&lt;br /&gt;The primary aim of caching data on the client side is to reduce the&lt;br /&gt;network calls to the CIFS Server whenever possible, thereby reducing&lt;br /&gt;the server load as well the network load. This will indirectly improve&lt;br /&gt;the performance and the scalability of the CIFS Server and will&lt;br /&gt;increase the number of clients per Server ratio. This feature could be&lt;br /&gt;useful in a number of scenarios:&lt;br /&gt;&lt;br /&gt; - Render farms in Entertainment industry - used to distribute&lt;br /&gt;   textures to individual rendering units&lt;br /&gt; - Read only multimedia workloads&lt;br /&gt; - Accelerate distributed web-servers&lt;br /&gt; - Web server cluster nodes serve content from the cache&lt;br /&gt; - /usr distributed by a network file system - to avoid spamming&lt;br /&gt;   Servers when there is a power outage&lt;br /&gt; - Caching Server with SSDs reexporting netfs data&lt;br /&gt; - where a persistent cache remains across reboots is useful&lt;br /&gt;&lt;br /&gt;However, be warned that local caching may not suitable for all&lt;br /&gt;workloads and a few workloads could suffer a slight performance hit&lt;br /&gt;(for e.g. read-once type workloads).&lt;br /&gt;&lt;br /&gt;When I reposted this patchset, I got asked whether I have done any&lt;br /&gt;benchmarking and could share the performance numbers. Here are the&lt;br /&gt;results from a 100Mb/s network:&lt;br /&gt;&lt;br /&gt;Environment&lt;br /&gt;------------&lt;br /&gt;&lt;br /&gt;I'm using my T60p laptop as the CIFS server (running Samba) and one of&lt;br /&gt;my test machines as CIFS client, connected over an ethernet of reported&lt;br /&gt;speed 1000 Mb/s. ethtool was used to throttle the speed to 100 Mb/s. The&lt;br /&gt;TCP bandwidth as seen by a pair of netcats between the client and the&lt;br /&gt;server is about 89.555 Mb/s.&lt;br /&gt;&lt;br /&gt;Client has a 2.8 GHz Pentium D CPU with 2GB RAM&lt;br /&gt;Server has a 2.33GHz Core2 CPU (T7600) with 2GB RAM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test&lt;br /&gt;-----&lt;br /&gt;The benchmark involves pulling a 200 MB file over CIFS to the client&lt;br /&gt;using cat to /dev/zero under `time'. The wall clock time reported was&lt;br /&gt;recorded.&lt;br /&gt;&lt;br /&gt;First, the test was run on the server twice and the second result was&lt;br /&gt;recorded (noted as Server below i.e. time taken by the Server when file&lt;br /&gt;is loaded on the RAM).&lt;br /&gt;&lt;br /&gt;Secondly, the client was rebooted and the test was run with caching&lt;br /&gt;disabled (noted as None below).&lt;br /&gt;&lt;br /&gt;Next, the client was rebooted, the cache contents (if any) were erased&lt;br /&gt;with mkfs.ext3 and test was run again with cachefilesd running (noted&lt;br /&gt;as COLD)&lt;br /&gt;&lt;br /&gt;Next the client was rebooted, tests were run with caching enabled this&lt;br /&gt;time with a populated disk cache (noted as HOT).&lt;br /&gt;&lt;br /&gt;Finally, the test was run again without unmounting or rebooting to&lt;br /&gt;ensure pagecache remains valid (noted as PGCACHE).&lt;br /&gt;&lt;br /&gt;The benchmark was repeated twice:&lt;br /&gt;&lt;br /&gt;Cache (state) Run #1  Run#2&lt;br /&gt;=============  =======  =======&lt;br /&gt;Server   0.104 s  0.107 s&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;None  26.042 s 26.576 s&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;COLD  26.703 s        26.787 s&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;HOT   5.115 s  5.147 s&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;PGCACHE   0.091 s  0.092 s&lt;br /&gt;&lt;br /&gt;As it can be seen when the cache is hot, the performance is roughly 5X&lt;br /&gt;times than reading over the network. And, it has to be noted that the&lt;br /&gt;Scalability improvement due to reduced network traffic cannot be seen&lt;br /&gt;as the test involves only a single client and the Server. The read&lt;br /&gt;performance with more number of clients would be more interesting as&lt;br /&gt;the cache can positively impact the scalability.&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-2176512447685194180?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/2176512447685194180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=2176512447685194180' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2176512447685194180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2176512447685194180'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2010/08/local-caching-for-cifs-network-file.html' title='Local caching for CIFS network file system - followup'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-7149343947130828378</id><published>2010-06-14T02:20:00.000-07:00</published><updated>2010-06-14T05:25:07.208-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caching'/><category scheme='http://www.blogger.com/atom/ns#' term='cifs'/><category scheme='http://www.blogger.com/atom/ns#' term='Hackweek V'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Hackweek'/><title type='text'>Hackweek V: Local caching for CIFS network file system</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Hackweek&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's that time of the year when SUSE/Novell developers use their Innovation Time-off to do a project of their interest/wish - called as &lt;a href="https://features.opensuse.org/hackweek"&gt;Hackweek&lt;/a&gt;. Last week was Hackweek V. I worked on making the Common Internet File System (CIFS) cache aware, i.e. local caching for CIFS Network File System.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Linux FS-Cache&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Caching can result in performance improvements in network filesystems where access to network and media is slow. The cache can  indirectly improve performance of the network  and the server by reduced network calls. Caching can be also viewed as a preparatory work for making disconnected operation (Offline) work with network filesystems.&lt;br /&gt;&lt;br /&gt;The Linux Kernel recently added a generic caching facility (FS-Cache) that any network filesystem like NFS or CIFS or other service can use to cache data locally.  FS-Cache supports a variety of cache backends i.e. different types of cache that have different trade-offs (like CacheFiles, CacheFS etc.) FS-Cache mediates between cache backends and the network filesystems. Some of the network filesystems such as NFS and AFS are already integrated with FS-Cache.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Making CIFS FS-Cache capable&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To make any network filesystem FS-Cache aware, there are a few things to consider. Let's consider them step by step (though not in detail):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First, we need to define the network filesystem and it should be able to register/unregister with the FS-Cache interface.&lt;/li&gt;&lt;li&gt;The network filesystem has to define the index hierarchy which could be used to locate a file object or discard a certain subset of all the files cached.&lt;/li&gt;&lt;li&gt;We need to define the objects and the methods associated.&lt;/li&gt;&lt;li&gt;All the indices in the index hierarchy and the data file need to be registered. This could be done by requesting a cookie for each index or data file. Upon successful registration, a corresponding cookie is returned.&lt;/li&gt;&lt;li&gt;Functions to store and retrieve pages in the cache.&lt;/li&gt;&lt;li&gt;Way to identify whether the cache for a file is valid or not.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Function to release any in-memory representation for the network filesystem page.&lt;/li&gt;&lt;li&gt;Way to invalidate a data file or index subtree and relinquish cookies.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Implementation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I wanted to get the prototype working within a week. So the way I have implemented it is  rudimentary and has lot of room for improvement.&lt;br /&gt;&lt;br /&gt;The index hierarchy is not very deep. It has three levels - Server, Share and Inode. The only way that I know of identifying files with CIFS is by 'UniqueId' which is supposed to be unique. However, some server do not ensure that the 'UniqueId' is always unique (for example when there is more than one filesystem in the exported share). The cache coherency is currently ensured by verifying the 'LastWriteTime' and size of the file.  This is not a reliable way of detecting changes as some CIFS servers will not update the time until the filehandle is closed.&lt;br /&gt;&lt;br /&gt;The rudimentary implementation is ready and the cumulative patch can be found here:&lt;br /&gt;&lt;br /&gt;   &lt;a href="http://www.kernel.org/pub/linux/kernel/people/jays/patches/"&gt;http://www.kernel.org/pub/linux/kernel/people/jays/patches/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[WARNING: The patch is lightly tested and of prototype quality.]&lt;br /&gt;&lt;br /&gt;Here are some initial performance numbers with the patch:&lt;br /&gt;&lt;br /&gt;Copying one big file of size ~150 MB.&lt;br /&gt;&lt;br /&gt;  $time cp /mnt/cifs/amuse.zip .&lt;br /&gt;  (Cache initialized)&lt;br /&gt;&lt;br /&gt;  real    1m18.603s&lt;br /&gt;  user   0m0.016s&lt;br /&gt;  sys     0m8.569s&lt;br /&gt;&lt;br /&gt; $time cp /mnt/cifs/amuse.zip /&lt;br /&gt; (Read from Cache)&lt;br /&gt;&lt;br /&gt;   real    0m28.055s&lt;br /&gt;   user   0m0.008s&lt;br /&gt;   sys     0m1.140s&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-7149343947130828378?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/7149343947130828378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=7149343947130828378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/7149343947130828378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/7149343947130828378'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2010/06/hackweek-v-local-caching-for-cifs.html' title='Hackweek V: Local caching for CIFS network file system'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-997567681535148761</id><published>2009-10-21T22:11:00.000-07:00</published><updated>2009-10-21T22:13:27.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Talks'/><category scheme='http://www.blogger.com/atom/ns#' term='Technology preview'/><title type='text'>Notes from openSUSE Conference 09 session - "Making Technology Previews succeed"</title><content type='html'>&lt;a href="http://lizards.opensuse.org/2009/10/09/making-technology-previews-succeed-osc-09-unconference-session-notes/"&gt;http://lizards.opensuse.org/2009/10/09/making-technology-previews-succeed-osc-09-unconference-session-notes/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-997567681535148761?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/997567681535148761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=997567681535148761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/997567681535148761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/997567681535148761'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/10/notes-from-opensuse-conference-09.html' title='Notes from openSUSE Conference 09 session - &quot;Making Technology Previews succeed&quot;'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-1031629093445657447</id><published>2009-09-15T00:41:00.000-07:00</published><updated>2009-09-15T01:51:39.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Talks'/><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><category scheme='http://www.blogger.com/atom/ns#' term='Unconference'/><title type='text'>openSUSE Conference 2009</title><content type='html'>&lt;p&gt;I'm heading over to Nuremberg on Wednesday (16 Sep)  for a few days to participate in &lt;a style="font-weight: bold;" target="_blank" href="http://conference.opensuse.org/" title="openSUSE's conference site"&gt;openSUSE Conference&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;!&lt;/span&gt; This is the first-ever openSUSE Conference, an opportunity for openSUSE contributors to do/attend talks, workshops, Birds of a Feather sessions, and collaborate together face to face. The conference will be held from September 17 - September 20 in &lt;a href="http://conference.opensuse.org/getting-there/"&gt;Nuermberg, Germany&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The interactive event aims to bring the openSUSE contributor community together to share ideas, experience, learn, hack and help to guide the direction of the project. The different tracks include Desktop Development, System and Toolchain (openSUSE Build Service, YaST, Kernel, Packaging), Community, Quality and Appliances (Moblin, SUSE Studio). There will be a lot of Fun in the form of Birds of a Feather (BoF) sessions, roundtable discussions, Unconferences and hackfests apart from scheduled talks. &lt;/p&gt;&lt;p&gt;I will be doing an Unconference session. The topic is &lt;span style="font-weight: bold;"&gt;"Roads Less Travelled - Making Technology Previews succeed"&lt;/span&gt;. &lt;/p&gt;&lt;p&gt;Check out the full schedule &lt;a target="_blank" href="http://conference.opensuse.org/schedule/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-1031629093445657447?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/1031629093445657447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=1031629093445657447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/1031629093445657447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/1031629093445657447'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/09/opensuse-conference-2009.html' title='openSUSE Conference 2009'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-2414966560875185781</id><published>2009-09-02T02:11:00.001-07:00</published><updated>2009-09-02T02:11:45.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='vimrc'/><category scheme='http://www.blogger.com/atom/ns#' term='VIM'/><title type='text'>VIM tip of the day!</title><content type='html'>Ever wondered how to avoid VIM creating those &lt;b&gt;annoying&lt;/b&gt; backup files like foo~ ?&lt;br /&gt;&lt;br /&gt;Add the following to your vimrc:&lt;br /&gt;&lt;br /&gt;" Don't backup files like foo~&lt;br /&gt;set nobackup&lt;br /&gt;set nowritebackup&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/1921983280578537182-2414966560875185781?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/2414966560875185781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=2414966560875185781' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2414966560875185781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2414966560875185781'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/09/vim-tip-of-day.html' title='VIM tip of the day!'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-5644856246653960296</id><published>2009-09-01T07:06:00.001-07:00</published><updated>2009-09-01T21:07:44.497-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cifs'/><category scheme='http://www.blogger.com/atom/ns#' term='LWN'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='overflow'/><title type='text'>LWN.net quotes me</title><content type='html'>LWN.net a leading online magazine which covers quite a bit of Linux Kernel development had quoted my name in the Security advisory on CIFS multiple vulnerabilities.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;To quote LWN:&lt;br /&gt;&lt;br /&gt;kernel: multiple vulnerabilities&lt;br /&gt;Package(s): linux-2.6  CVE #(s): CVE-2009-1630 CVE-2009-1633 CVE-2009-1758&lt;br /&gt;Created: June 2, 2009  Updated: August 20, 2009&lt;br /&gt;Description:  From the Debian advisory:&lt;br /&gt;&lt;br /&gt;Frank Filz discovered that local users may be able to execute files without execute permission when accessed via an nfs4 mount. CVE-2009-1630&lt;br /&gt;&lt;br /&gt;Jeff Layton and &lt;b&gt;Suresh Jayaraman&lt;/b&gt; fixed several buffer overflows in the CIFS filesystem which allow remote servers to cause memory corruption. CVE-2009-1633&lt;br /&gt;&lt;br /&gt;Jan Beulich discovered an issue in Xen where local guest users may cause a denial of service (oops). CVE-2009-1758&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Forgot to stick the url: http://lwn.net/Articles/335751/&lt;br /&gt;(Thanks Nikanth)&lt;br /&gt;&lt;br /&gt;Wondering how did I miss this.. Pleasantly surprised.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-5644856246653960296?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/5644856246653960296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=5644856246653960296' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/5644856246653960296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/5644856246653960296'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/09/lwnnet-quotes-me.html' title='LWN.net quotes me'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-5466815771975621911</id><published>2009-08-02T22:46:00.000-07:00</published><updated>2009-08-03T00:48:21.183-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogPost'/><category scheme='http://www.blogger.com/atom/ns#' term='HackWeek IV'/><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog publisher'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='PyGtk'/><title type='text'>HackWeek IV: Fun with BlogPost (a blog publisher)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Mpts0Q6-gqw/SnaSCv6FzXI/AAAAAAAADYw/jfh0k0yEcr4/s1600-h/Screenshot-BlogPost.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 314px;" src="http://4.bp.blogspot.com/_Mpts0Q6-gqw/SnaSCv6FzXI/AAAAAAAADYw/jfh0k0yEcr4/s320/Screenshot-BlogPost.png" alt="" id="BLOGGER_PHOTO_ID_5365636581976034674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As part of Novell's &lt;/span&gt;&lt;a style="font-style: italic;" href="http://news.opensuse.org/2009/07/08/hack-week-iv-approaches/"&gt;HackWeek IV&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, I decided to learn and develop a GUI application that allows me to post blog entries quickly, without much effort (without using a browser).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Why I wrote this?&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;I wanted to make myself capable of developing desktop applications (as a Kernel developer I have spent very little time/no time on GUI development). Learning new stuff is always a lot of Fun!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I have always found using browsers for writing blogs is time consuming and takes little more effort for me.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;None of the existing applications convinced me.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;What it is , what it is not?&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;BlogPost is a simple, easy to use blog that is aiming to make blogging experience better. It&lt;br /&gt;currently support blogger.com only.&lt;/li&gt;&lt;li&gt;It's a alpha software and tested to limited extent only so it will have rough edges (use it with care :-)).&lt;/li&gt;&lt;li&gt;I wrote this application for Fun and Learning (actually I learnt GTK/PyGTK and Python when I developed it). So don't expect it to be bug-free or quite solid.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It's a GPLv2 Software.&lt;/li&gt;&lt;li&gt;It's not a feature-rich a.k.a bloated application that is intended to replace web blogging.&lt;/li&gt;&lt;li&gt;It's aimed at developers/users not for professional bloggers who might need more features.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;List of Features&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;support posts to blogger.com&lt;/li&gt;&lt;li&gt;Offline blogging (save drafts locally and send later)&lt;/li&gt;&lt;li&gt;Basic formatting&lt;/li&gt;&lt;li&gt;Select blog names to post&lt;/li&gt;&lt;li&gt;Labels/Tags support&lt;/li&gt;&lt;/ul&gt;Screenshot&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Want to try BlogPost?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Prerequisites:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;python-gdata (gdata api's) package&lt;/li&gt;&lt;li&gt;python-base and python-devel if not installed already (which usually are present in the default installation of openSUSE).&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;Once you have the prerequisites installed, grab the BlogPost rpm from here:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(Currenly x86_64 and i386 rpms available)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-style: italic;" href="http://download.opensuse.org/repositories/home://sjayaraman/openSUSE_11.1/x86_64/blogpost-0.1-12.1.x86_64.rpm"&gt;BlogPost x86-64 RPM&lt;/a&gt;&lt;br /&gt;&lt;a style="font-style: italic;" href="http://download.opensuse.org/repositories/home://sjayaraman/openSUSE_11.1/i586/blogpost-0.1-12.1.i586.rpm"&gt;BlogPost i386 RPM&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Install the rpm the usual way:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    $rpm -ivh &lt;path&gt;&lt;/path&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The tar ball can be found here:&lt;/span&gt;&lt;br /&gt;&lt;a style="font-style: italic;" href="https://api.opensuse.org/source/home:sjayaraman/blogpost/blogpost-0.1.tar.bz2"&gt;BlogPost tar ball&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;To install from source tar ball&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;Extract the source:  tar -xvjf blogpost-0.1.tar.bz2&lt;/li&gt;&lt;li&gt;cd blogpost-0.1 and run ./setup.py install&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run `blogpost' to launch the application after install&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;I had Fun; Hope you'll like it! &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Feel free to leave your comments, feedback!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-5466815771975621911?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/5466815771975621911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=5466815771975621911' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/5466815771975621911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/5466815771975621911'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/08/hackweek-iv-fun-with-blogpost-blog.html' title='HackWeek IV: Fun with BlogPost (a blog publisher)'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Mpts0Q6-gqw/SnaSCv6FzXI/AAAAAAAADYw/jfh0k0yEcr4/s72-c/Screenshot-BlogPost.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-3813735750365159266</id><published>2009-07-29T07:22:00.000-07:00</published><updated>2009-07-29T07:35:27.641-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogPost'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='Hackweek'/><title type='text'>BlogPost: an update</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Mpts0Q6-gqw/SnBdgf27ZQI/AAAAAAAADX4/ufoZCG_P_yo/s1600-h/Screenshot1-BlogPost.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 290px;" src="http://3.bp.blogspot.com/_Mpts0Q6-gqw/SnBdgf27ZQI/AAAAAAAADX4/ufoZCG_P_yo/s320/Screenshot1-BlogPost.png" alt="" id="BLOGGER_PHOTO_ID_5363889969087341826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Some more work done on BlogPost.. (but yet to package, sorry)&lt;br /&gt;&lt;br /&gt;Changes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Changed GUI a bit to faciliate easy of use..&lt;/li&gt;&lt;li&gt;Basic Formatting is now supported (not fully though, see screenshots)&lt;/li&gt;&lt;li&gt;Ability to include links (pictures not yet supported)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Label/tags are supported&lt;/li&gt;&lt;li&gt;Offline blogging (saving drafts locally and editing later)&lt;/li&gt;&lt;li&gt;Ability to remember login information&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Note:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;If you are a  frequent blogger, let me know which of the features you would use the most and if that is missing (ofcourse difficult to figure out from the screenshot and limited information).&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Remember, the goal is to provide a simple, easy to use  client that allows to blog quickly .&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-3813735750365159266?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/3813735750365159266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=3813735750365159266' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/3813735750365159266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/3813735750365159266'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/07/blogpost-update.html' title='BlogPost: an update'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Mpts0Q6-gqw/SnBdgf27ZQI/AAAAAAAADX4/ufoZCG_P_yo/s72-c/Screenshot1-BlogPost.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-3625733384348321483</id><published>2009-07-24T06:50:00.000-07:00</published><updated>2009-07-24T06:55:48.790-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlogPost'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='blog editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Hackweek'/><category scheme='http://www.blogger.com/atom/ns#' term='PyGtk'/><title type='text'>BlogPost - Initial screen shots</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Mpts0Q6-gqw/Smm863xK3mI/AAAAAAAADXk/kzo4F7csmf0/s1600-h/BlogPost-Layout.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 290px;" src="http://1.bp.blogspot.com/_Mpts0Q6-gqw/Smm863xK3mI/AAAAAAAADXk/kzo4F7csmf0/s320/BlogPost-Layout.png" alt="" id="BLOGGER_PHOTO_ID_5362024550949903970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Mpts0Q6-gqw/Smm86tZsoMI/AAAAAAAADXc/Lavf-PrfDL4/s1600-h/BlogPost-Setup.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 149px;" src="http://2.bp.blogspot.com/_Mpts0Q6-gqw/Smm86tZsoMI/AAAAAAAADXc/Lavf-PrfDL4/s320/BlogPost-Setup.png" alt="" id="BLOGGER_PHOTO_ID_5362024548167098562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here are some initial screen shots which perhaps are subjected to Change..&lt;br /&gt;It's still heavily under development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-3625733384348321483?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/3625733384348321483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=3625733384348321483' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/3625733384348321483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/3625733384348321483'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/07/blogpost-initial-screen-shots.html' title='BlogPost - Initial screen shots'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Mpts0Q6-gqw/Smm863xK3mI/AAAAAAAADXk/kzo4F7csmf0/s72-c/BlogPost-Layout.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-8409449564480124051</id><published>2009-07-24T06:41:00.001-07:00</published><updated>2009-07-24T06:41:22.314-07:00</updated><title type='text'>BlogPost - a Blogging client</title><content type='html'>I'm writing a blog publisher got GNOME desktop using PyGTK, initially for blogger and planning to extend later. This is my first post using BlogPost.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-8409449564480124051?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/8409449564480124051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=8409449564480124051' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/8409449564480124051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/8409449564480124051'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/07/blogpost-blogging-client.html' title='BlogPost - a Blogging client'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-4308245440936421892</id><published>2009-07-18T01:25:00.000-07:00</published><updated>2009-07-18T01:32:34.836-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog editor'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome-blog'/><title type='text'>Gnome Blog - Blogging made easier!</title><content type='html'>&lt;p&gt;I was thinking of using an application that allows me to post blog entries from my Linux desktop (that runs openSUSE 11.1) without having to use a browser. I think for me, web is some sort of a distraction. Whenever I wanted to blog, I  try to do that when I'm not so busy (which is very rare) and so the frequency of posting blog drops. I also wanted blogging to be done quickly without much effort say for e.g. it should be able to allow me to convert my notes quickly to a blog. I'm trying out Gnome Blog, which going by the documentation is exactly what I wanted - simple interface with just what is required. I hope it would allow me to post more frequently. Let's see..&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-4308245440936421892?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/4308245440936421892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=4308245440936421892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/4308245440936421892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/4308245440936421892'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2009/07/gnome-blog-blogging-made-easier-i-was.html' title='Gnome Blog - Blogging made easier!'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-3457268557911493083</id><published>2008-10-16T07:28:00.001-07:00</published><updated>2008-10-16T07:39:59.771-07:00</updated><title type='text'>Google reader</title><content type='html'>&lt;span style="font-style: italic;"&gt;I was using google reader for sometime now, but yesterday I decided to explore and make full use of it.  The latest version is polished and provides a much better experience of reading blogs, articles etc. &lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sharing with friends also made easy now.&lt;br /&gt;&lt;br /&gt;Now I have one application to follow all the blogs I want to read, all articles I would normally like to read ranging from Tamil poems to Linux kernel. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;However, currently I'm unable to read the comments present in the blog. I think it should also be possible. Also, some website provide a gist and then provides a link to the complete article. I'm unable to find a link to the article when I use google reader.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nevertheless, &lt;span style="font-style: italic;"&gt;this Google app too  leaves a wow feeling!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-3457268557911493083?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/3457268557911493083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=3457268557911493083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/3457268557911493083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/3457268557911493083'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2008/10/google-reader.html' title='Google reader'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-1463844250195492560</id><published>2008-09-28T23:08:00.000-07:00</published><updated>2008-09-29T21:39:19.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='journeyer'/><title type='text'>ls -1</title><content type='html'>During my day job, I wanted to list files (filenames alone) in a directory, one per line. I tried multiple options,&lt;br /&gt;   $ls&lt;br /&gt;   $ls -l&lt;br /&gt;   $ls -C&lt;br /&gt;   $ls -x&lt;br /&gt;None of them worked. I thought it will be simple enough for someone like me who has spent years with linux/unix.&lt;br /&gt;&lt;br /&gt;Though the journeyer[1] inside me, instructed me to RTFM, the lazy, lethargic, egoistic developer inside me said - Ok, just try the options you know, it'll work or use `ls' with `cut'.&lt;br /&gt;&lt;br /&gt;Wait, I thought for a moment, there should be definitely a simpler way. Suddenly, I decided to ignore the lazy developer and follow the journeyer[1].. It's when I figured out there is&lt;br /&gt;   $ls -1&lt;br /&gt;that allows you to list one file per line.&lt;br /&gt;&lt;br /&gt;So, extrapolating this, I think if you follow the journeyer, you will explore better, easier ways which will eventually let you do more in less time. This also reminds me that reviewing the tasks we do and see is there is a better, efficient, elegant way to do them is important and it makes us do our job better whatever the job it may be..&lt;br /&gt;&lt;br /&gt;[1] - Journeyer  - one who has the zest in a tech trip, who explores..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-1463844250195492560?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/1463844250195492560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=1463844250195492560' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/1463844250195492560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/1463844250195492560'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2008/09/ls-1.html' title='ls -1'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-9154459805651377329</id><published>2008-03-12T22:52:00.000-07:00</published><updated>2009-07-21T21:22:31.185-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='SLES'/><category scheme='http://www.blogger.com/atom/ns#' term='SLE11'/><category scheme='http://www.blogger.com/atom/ns#' term='nfs'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='swap'/><title type='text'>Swap over NFS on SLE11</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1. Some Introduction&lt;br /&gt;&lt;br /&gt;1a. Swap space&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;em class="firstterm-docmaker"&gt;&lt;/em&gt;We all know swap space is an area on disk that temporarily holds memory images of processes. When physical memory demand is sufficiently low, process memory images are brought back into physical memory from the swap area on disk. Having sufficient swap space enables the system to keep some physical memory free at all times. We always have had a need to run applications that might require more memory than available physical memory.&lt;br /&gt;&lt;/p&gt;    Linux supports two forms of swap space:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Swap partition - an independent partition of the hard disk dedicated for swapping.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Swap file - a special file in the file system that resides amongst your system and data files. The advantage of swap files is that you don't need to find an empty partition or repartition a disk to add additional swap space.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  1b. Swap over NFS&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Swap over NFS allows you to have your swap on a remote NFS filesystem.  Swap over NFS is very useful in the case of thin-client workstations where primary or secondary storage is a cost issue and may or may not be available. It's also useful in case of disk-less clusters and also in virtualization, where dumping the storage on a networked storage unit makes for trivial migration.&lt;br /&gt;&lt;br /&gt;Once you are no longer restricted to local      storage for swap space, you can cut costs dramatically. You can use less expensive diskless servers, and simplify administration thereby reducing  implementation, administration, and management costs. By using swap      over NFS, you can also protect your systems against application restarts and expensive downtimes.&lt;br /&gt;&lt;br /&gt;Swap over NFS is a feature-in-demand that is currently not supported by Linux kernel. Though had been good amount of review, discussions followed by the latest patchset posted by Peter Zijlstra,  it has not been merged upstream, yet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Swap over NFS on SLE11&lt;/span&gt;&lt;br /&gt;&lt;p&gt;SUSE Linux Enterprise Server recently added support for Swap over NFS On SLE11.&lt;i&gt; &lt;/i&gt;This allows you to use network file system (NFS)      over Internet protocols (IP) to use remote storage for local server swap needs. To my knowledge, SLE 11/openSUSE 11.1 is the only distro that supports Swap over NFS.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;  2a. Swap over NFS in action&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you don't have a diskless workstation and if you to get a feel of how it would be to have your swap on NFS on your desktop, you could try the following simple steps to see Swap over NFS in action on SLE11.&lt;br /&gt;&lt;br /&gt;* Append mem=256M to the kernel command line during booting. This restricts your physical memory usage to 256M and ensures that swap gets used even in case you don't run big applications.&lt;br /&gt;* Disable all devices marked as swap by doing&lt;br /&gt;  swapoff -a&lt;br /&gt;* On the NFS server, create a swap file on the NFS export&lt;br /&gt;  dd if=/dev/zero of=swapfile.swp count=1048576 bs=1024&lt;br /&gt;  mkswap swapfile.swp&lt;br /&gt;* From the client enable swapping on the swapfile we created&lt;br /&gt;  swapon /mnt/nfs/swapfile.swp&lt;br /&gt;&lt;br /&gt;* Run multiple applications (memory-intensive) and see swap getting exercised using the `free' command&lt;br /&gt;&lt;br /&gt;And of course you would have noticed that slowness and it's expected since Swap over NFS is slow in general except faster network cards. "Network swapping" as it is usually called is  obviously much slower than having a much faster and more capable secondary storage device for doing virtual memory swapping. Swap over NFS allows any thin-client workstation to supplement its built in RAM with virtual memory. Usually virtual memory is supplied by a secondary storage device (i.e., a hard drive, flash memory, etc.) and the thin-client has no facility for secondary storage devices for this purpose (in a true thin-client sense), the network is the only alternative. You can get away with having around as little as 32MB of memory on the thin-client workstation. There could be momentarily slowness if the RAM is much lesser. The faster the network speed and available bandwidth, the less often these slowness will be experienced. It would be optimal to have nothing less than a 100 Mb/s, switched network.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Linux Implementation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Traditionally,  swapping out is performed directly to block devices. Block devices are written to pre-allocate any memory that might be needed during write-out, and to block when the  pre-allocated memory is exhausted and no extra memory is available.  They can be sure not to block forever as the pre-allocated memory will be returned as soon as the data it is being used for has been written out.    Mempools (Memory Pools) are used to help out in such situations here a memory allocation must succeed, but sleeping is not an option. Mempools pre-allocate a pool of memory and reserve it until it is needed.  Mempools make life easier in some situations, but they should be used with caution as each mempool takes a chunk of kernel memory out increases the minimum amount of memory the kernel needs to run effectively.&lt;br /&gt;&lt;br /&gt;The above approach does not work for writing anonymous pages (i.e. swapping) over a network, using e.g NFS or Network Block Device (NBD). The main reason that it does not work is that when data from an anonymous page is written to the network, we must wait for a reply to confirm the data is safe.  Receiving that reply will consume memory and, significantly, we need to allocate memory to an incoming packet before we can tell if it is the reply we are waiting for or not. Another reason is that much of the network subsytem code is not written to use mempools or fixed sized allocations (but uses kmalloc() ) and in most cases does not need to use them.  Changing all allocations in the networking layer to use mempools would be quite intrusive, and would waste memory, and probably cause a slow-down in the common case of not swapping over the network.&lt;br /&gt;&lt;br /&gt;These problems are addressed in the patchset in different parts.&lt;br /&gt;&lt;br /&gt;* The first part provides a generic memory reserve framework and use it on the slow paths - when we're low on memory.  Currently, it supports SLAB/SLUB and not SLOB.&lt;br /&gt;&lt;br /&gt;* The second part provides some generic network infrastructure needed.&lt;br /&gt;&lt;br /&gt;* The third part makes use of the generic memory reserve system on the network stack. Note that unlike BIO layer we need memory allocations in both the send and the receive path. So we reserve a little pool to act as a receive buffer. This way, we can filter out those packets that ensure write-back completion and disregard the others packets.&lt;br /&gt;&lt;br /&gt;* The fourth part provides generic VM infrastructure to handle swapping to a file system instead of a block device.&lt;br /&gt;&lt;br /&gt;* The final part converts NFS to make use of the new network and VM infrastructure to provide swap over NFS.&lt;br /&gt;&lt;br /&gt;There are much more deeper details which I'm not going to delve in here as it can get more complex and verbose.&lt;br /&gt;&lt;br /&gt;Despite a few drawbacks like slowness, suboptimal memory usage etc. , Swap over NFS is a feature that does fit quite well in certain scenarios like diskless clusters. With the current level of stability and the reviews that have already happened,  I would think it would make it to upstream kernel soon.&lt;br /&gt;&lt;br /&gt;Acknowledgements/Credits: To Peter Zijlstra (Implementation) and Neil Brown (nice documentation).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-9154459805651377329?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/9154459805651377329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=9154459805651377329' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/9154459805651377329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/9154459805651377329'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2008/03/swap-over-nfs-on-sle11.html' title='Swap over NFS on SLE11'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-2502420176311695797</id><published>2008-03-05T19:45:00.000-08:00</published><updated>2008-03-05T20:03:01.806-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='character map'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='utility'/><title type='text'>Character mapping in Linux</title><content type='html'>Ever wondered how do you use high ASCII characters such as £, ¢, ¥,. ° (degree) on your document or presentation. I wanted to use those special characters in one of my presentations. In Windows, I've used Character map utility. Strangely, on Linux I have never encountered a situation where I need to use these characters (IOW, I might have been too lazy and had used just words).&lt;br /&gt;&lt;br /&gt;gnome-character-map utility allows you to copy those characters. Fire up your gnome-character-map utility, select the character you want to use, double click the character so that it appears on the "Text to Copy" text box, Copy and paste it where you wanted. It's so simple!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-2502420176311695797?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/2502420176311695797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=2502420176311695797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2502420176311695797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2502420176311695797'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2008/03/character-mapping-in-linux.html' title='Character mapping in Linux'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1921983280578537182.post-2904806275348294007</id><published>2008-03-02T09:42:00.000-08:00</published><updated>2008-03-02T10:24:50.522-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lenovo'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='Laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='Y410'/><title type='text'>Hogwarts - My new Lenovo 3000 series Y 410 laptop</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;I recently (actually not so recently, ~40 days ago) bought a Lenovo 3000 series Y 410 laptop for $778. Y 410 comes with a Core 2 duo processor (1.66GHz), 2GB RAM, 160 GB SATA HDD, integrated 1.3 MP webcam, face recognition technology and so on. So far my experience has been very good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;These are some of the pros and cons that I figured out.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Pros:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Decent battery life (~ 3hrs on OpenSUSE 10.3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Light-weight (2.25 kg)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Value for money&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Cons:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;keyboard layout&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Integrated subwoofer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I named it "Hogwarts".  As Harry-potter fan,  I thought, the laptop which is going to make me a Computer Wizard and named it as "Hogwarts".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I could install OpenSUSE 10.3 without much issues. However, I couldn't get the desktop effects working. Looks like my graphics card is not supported. Surprisingly my Chicony integrated webcam worked out-of-the-box on OpenSUSE 10.3 .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Thanks to my laptop, my PC time[1] has increased, hopefully it's all good :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;[1] PC time - Time spent with Computer&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1921983280578537182-2904806275348294007?l=journeyerinside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://journeyerinside.blogspot.com/feeds/2904806275348294007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1921983280578537182&amp;postID=2904806275348294007' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2904806275348294007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1921983280578537182/posts/default/2904806275348294007'/><link rel='alternate' type='text/html' href='http://journeyerinside.blogspot.com/2008/03/hogwarts-my-new-lenovo-3000-series-y.html' title='Hogwarts - My new Lenovo 3000 series Y 410 laptop'/><author><name>Suresh</name><uri>http://www.blogger.com/profile/09134769313567896332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://1.bp.blogspot.com/_Mpts0Q6-gqw/SQ_wUD2jP8I/AAAAAAAACwM/4Tf2NZsH1_4/S220/face1.jpg'/></author><thr:total>2</thr:total></entry></feed>
