<?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-32920939</id><updated>2011-07-29T11:11:54.984+08:00</updated><category term='technology'/><category term='nokia'/><category term='shell'/><category term='loops'/><category term='Linux'/><category term='grep'/><category term='perl'/><category term='search'/><category term='recursive'/><category term='explorer'/><category term='vim'/><category term='Ubuntu'/><category term='VNC'/><category term='productivity'/><category term='command'/><category term='file'/><category term='help'/><category term='phone'/><category term='utilities'/><category term='slurp'/><title type='text'>Upgrade</title><subtitle type='html'>A collection of my 'note to self' posts.  ...technology, programming, science, semiconductors...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Evill</name><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>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32920939.post-1833765999977608801</id><published>2010-01-27T09:08:00.003+08:00</published><updated>2010-01-27T09:27:34.711+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>IPOD Touch 3G</title><content type='html'>I got an IPOD Touch (32G) for my birthday and so far I am really enjoying it.  Apple really do value their customer's user experience.  It was very responsive, syncing with Itunes was very easy, the quality of the materials used was topnotch, acceptable battery life, nice headphones (though it doesn't have noise cancelling but it feels like it.  I bought it in a store in Trinoma, (for got the name of the store), for 2k less than what others are selling them for.  The applications currently installed are all free from the app store (US).  How I got the account is another story.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am currently looking for ways on how to develop apps for it.  I would post anything I found useful.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-1833765999977608801?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/1833765999977608801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=1833765999977608801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/1833765999977608801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/1833765999977608801'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2010/01/ipod-touch-3g.html' title='IPOD Touch 3G'/><author><name>Evill</name><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-32920939.post-7335854531312173393</id><published>2009-07-29T18:41:00.000+08:00</published><updated>2009-07-29T18:41:12.519+08:00</updated><title type='text'>Making PCBs</title><content type='html'>&lt;a href="http://www.electricstuff.co.uk/pcbs.html"&gt;Making PCBs&lt;/a&gt;: "How to make really really good homemade PCBs"&lt;br /&gt;&lt;br /&gt;Very informative article on PCB making.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-7335854531312173393?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.electricstuff.co.uk/pcbs.html' title='Making PCBs'/><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/7335854531312173393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=7335854531312173393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/7335854531312173393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/7335854531312173393'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2009/07/making-pcbs.html' title='Making PCBs'/><author><name>Evill</name><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-32920939.post-3080309846783997380</id><published>2009-07-09T09:08:00.002+08:00</published><updated>2009-07-09T09:23:13.935+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='phone'/><title type='text'>My Nokia E75</title><content type='html'>Just bought a Nokia E75 phone replacing my 6120.  It has a slide out QWERTY keayboard which I find very useful when writing long SMS and emails.  The email feature was very easy to configure, I have a wireless access point at home, so I used it instead of my mobile phone provider's 3G.  The phone was well built, the keyboard slides in and out with a very nice snap to it which I like. Here is a news article about the phone with good images  at &lt;a href="http://news.softpedia.com/news/Nokia-E75-Review-110130.shtml"&gt;Softpedia.com&lt;/a&gt;. The PC suite, which was very easy to install, has improved a lot from the last time I used it on a previous phone.  I had the phone's bluetooth enabled and paired with my laptop, thus I do my messaging through my laptop.  Battery life was okay.  There's a lot of positives on the phone which made me to not mind the negatives :) The negatives would probably be the alpha-numeric keypad isn't illuminated properly, another would be the numbers on the slide out keyboard.  To be able to type in numbers you would have to press the shift key every time.  It would have been nice if there was a 'shift lock' key.&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/Users/Erick/AppData/Local/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;img src="file:///C:/Users/Erick/AppData/Local/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-3080309846783997380?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/3080309846783997380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=3080309846783997380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/3080309846783997380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/3080309846783997380'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2009/07/my-nokia-e75.html' title='My Nokia E75'/><author><name>Evill</name><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-32920939.post-1907779230246884686</id><published>2009-07-08T07:20:00.000+08:00</published><updated>2009-07-08T07:20:23.822+08:00</updated><title type='text'>Phase Change Data-Sheets Elusive (Mannerisms)</title><content type='html'>&lt;a href="http://www.electronicsweekly.com/blogs/david-manners-semiconductor-blog/2009/02/is-phase-change-a-techno-ponzi.html"&gt;Phase Change Data-Sheets Elusive (Mannerisms)&lt;/a&gt;: "So is phase change a kind of 'techno-Ponzi' scheme whereby techies  keep getting money out of  investors for promising to deliver a technology tomorrow which, of course, never comes?"&lt;br /&gt;&lt;br /&gt;Numonyx got mentioned in the blog post, of course they got mentioned since they are the only company claiming they have a product.  Come to think of it, the author have a point.  A technology 40 years in the making and haven't productized yet smells fishy to me.  Intel itself as mentioned by Mike Mayberry &lt;span class="infuse"&gt;vice president of the Technology and Manufacturing Group in the recent annual Research@Intel Day&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.edn.com/blog/1690000169/post/1970045797.html?nid=3080"&gt;&lt;/a&gt;&lt;a style="font-style: italic;" href="http://www.edn.com/blog/1690000169/post/1970045797.html?nid=3080"&gt;Intel's Mayberry sketches in the roadmap for Intel process evolution - Practical Chip Design - Blog on EDN - 1690000169&lt;/a&gt;&lt;span style="font-style: italic;"&gt;: "And of course there is memory. Mayberry said that Intel is working on three novel memory technologies in parallel: floating-body memory, phase-change memory, and seek-and scan probe memory. These are listed in approximate order of difficulty and density—with floating-body being fairly near-term and seek-and-scan pretty researchy. Asked about density, Mayberry estimated that a floating-body cell would be about 0.01 µm2, while a phase-change memory cell could in principle be even smaller: about 4 minimum feature lengths on a side. Intel has created seek-and-scan memory arrays in which the individual bit cells are about 9 nm on a side, he said. As of today, Intel has delivered some engineering devices of the phase-change memory to prospective customers, purely to get their feedback on what characteristics they would like to see in such a device. There appears to be no productization plan for any of the three any time soon."&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-1907779230246884686?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.electronicsweekly.com/blogs/david-manners-semiconductor-blog/2009/02/is-phase-change-a-techno-ponzi.html' title='Phase Change Data-Sheets Elusive (Mannerisms)'/><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/1907779230246884686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=1907779230246884686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/1907779230246884686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/1907779230246884686'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2009/07/phase-change-data-sheets-elusive.html' title='Phase Change Data-Sheets Elusive (Mannerisms)'/><author><name>Evill</name><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-32920939.post-5487800270416999372</id><published>2009-07-07T11:25:00.005+08:00</published><updated>2009-07-08T07:21:52.576+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu server on a Dell D800 Latitude</title><content type='html'>I have a spare Dell D800 Latitute PC which I had installed with Ubuntu 9 Server.  So far I don't have any problem with it.  I also installed TightVNC on it and launched a vnc server which I access remotely using a Lenovo Y430 (Vista).  Right now I only access the vnc server session within my home network, I haven't tried accessing it outside.  Will let you know once I have tried it.&lt;br /&gt;&lt;br /&gt;The whole process was hit and miss :) this was the first time I have tried installing Linux, but it was good experience.  I tried using Ubuntu Desktop first but I can make VNC work in it (if any body knows why please let me know).&lt;br /&gt;&lt;br /&gt;Next thing I would try would be to have multiple users on the same box.  I am not an IT guy (ASIC design and verification engineer) so please bear with me as I go through this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-5487800270416999372?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/5487800270416999372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=5487800270416999372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/5487800270416999372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/5487800270416999372'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2009/07/ubuntu-server-on-dell-d800-latitude.html' title='Ubuntu server on a Dell D800 Latitude'/><author><name>Evill</name><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-32920939.post-1111281766202629462</id><published>2007-07-03T15:41:00.000+08:00</published><updated>2007-07-09T09:42:15.269+08:00</updated><title type='text'>Chapter�5.�Textuality</title><content type='html'>&lt;a href="http://catb.org/esr/writings/taoup/html/textualitychapter.html"&gt;Chapter�5.�Textuality&lt;/a&gt;: "It's a well-known fact that computing devices such as the abacus were invented thousands of years ago. But it's not well known that the first use of a common computer protocol occurred in the Old Testament. This, of course, was when Moses aborted the Egyptians' process with a control-sea.&lt;br /&gt;-- Tom Galloway rec.arts.comics, February 1992 "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-1111281766202629462?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/1111281766202629462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=1111281766202629462' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/1111281766202629462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/1111281766202629462'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/07/chapter5textuality.html' title='Chapter�5.�Textuality'/><author><name>Evill</name><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-32920939.post-4193088346119749235</id><published>2007-07-03T10:15:00.000+08:00</published><updated>2007-07-05T10:55:49.371+08:00</updated><title type='text'>Compactness and Orthogonality</title><content type='html'>&lt;a href="http://catb.org/esr/writings/taoup/html/ch04s02.html"&gt;Compactness and Orthogonality&lt;/a&gt;: "The purpose of emphasizing compactness as a virtue is not to condition you to treat compactness as an absolute requirement, but to teach you to do what Unix programmers do: value compactness properly, design for it whenever possible, and not throw it away casually."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-4193088346119749235?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/4193088346119749235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=4193088346119749235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/4193088346119749235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/4193088346119749235'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/07/compactness-and-orthogonality_03.html' title='Compactness and Orthogonality'/><author><name>Evill</name><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-32920939.post-5659390901919124319</id><published>2007-07-03T10:12:00.000+08:00</published><updated>2007-07-04T07:59:57.596+08:00</updated><title type='text'>Compactness and Orthogonality</title><content type='html'>&lt;a href="http://catb.org/esr/writings/taoup/html/ch04s02.html"&gt;Compactness and Orthogonality&lt;/a&gt;: "The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information [Miller] is one of the foundation papers in cognitive psychology (and, incidentally, the specific reason that U.S. local telephone numbers have seven digits). It showed that the number of discrete items of information human beings can hold in short-term memory is seven, plus or minus two. This gives us a good rule of thumb for evaluating the compactness of APIs: Does a programmer have to remember more than seven entry points? Anything larger than this is unlikely to be strictly compact."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-5659390901919124319?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/5659390901919124319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=5659390901919124319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/5659390901919124319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/5659390901919124319'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/07/compactness-and-orthogonality.html' title='Compactness and Orthogonality'/><author><name>Evill</name><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-32920939.post-6585982939324693836</id><published>2007-07-03T10:08:00.000+08:00</published><updated>2007-07-03T10:08:53.272+08:00</updated><title type='text'>Encapsulation and Optimal Module Size</title><content type='html'>&lt;a href="http://catb.org/esr/writings/taoup/html/ch04s01.html"&gt;Encapsulation and Optimal Module Size&lt;/a&gt;: "Brooks's Law predicts that adding programmers to a late project makes it later. More generally, it predicts that costs and error rates rise as the square of the number of programmers on a project."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-6585982939324693836?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://catb.org/esr/writings/taoup/html/ch04s01.html' title='Encapsulation and Optimal Module Size'/><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/6585982939324693836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=6585982939324693836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/6585982939324693836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/6585982939324693836'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/07/encapsulation-and-optimal-module-size.html' title='Encapsulation and Optimal Module Size'/><author><name>Evill</name><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-32920939.post-7700616400333292482</id><published>2007-06-28T12:53:00.000+08:00</published><updated>2007-06-28T12:53:09.474+08:00</updated><title type='text'>Origins and History of the Hackers, 1961-1995</title><content type='html'>&lt;a href="http://catb.org/esr/writings/taoup/html/hackers.html"&gt;Origins and History of the Hackers, 1961-1995&lt;/a&gt;: "“Given a sufficiently large number of eyeballs, all bugs are shallow”."&lt;br /&gt;&lt;br /&gt;I think this also applies to hardware design.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-7700616400333292482?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://catb.org/esr/writings/taoup/html/hackers.html' title='Origins and History of the Hackers, 1961-1995'/><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/7700616400333292482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=7700616400333292482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/7700616400333292482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/7700616400333292482'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/06/origins-and-history-of-hackers-1961.html' title='Origins and History of the Hackers, 1961-1995'/><author><name>Evill</name><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-32920939.post-3430883944132756505</id><published>2007-06-26T10:40:00.000+08:00</published><updated>2007-06-26T16:30:13.385+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='loops'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Perl Basics: For Loops</title><content type='html'>&lt;strong&gt;for&lt;/strong&gt; (starting assignment; test condition; increment)&lt;br /&gt;{&lt;br /&gt;code to repeat&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;for ($count=1; $count&lt;11; $count++)&lt;br /&gt;{&lt;br /&gt;print 'cool\n';&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-3430883944132756505?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/3430883944132756505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=3430883944132756505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/3430883944132756505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/3430883944132756505'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/06/perl-basics-for-loops.html' title='Perl Basics: For Loops'/><author><name>Evill</name><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-32920939.post-4127732737316334123</id><published>2007-06-25T15:12:00.000+08:00</published><updated>2007-06-26T15:41:46.229+08:00</updated><title type='text'>Redbeard's Thoughts</title><content type='html'>&lt;a href="http://my.opera.com/pitredbeard/xml/rss/blog/"&gt;Redbeard's Thoughts&lt;/a&gt;: "Here's a simple tip for using xargs to replace for loops on the commandline.&lt;br /&gt;&lt;br /&gt;The other day I needed to rename a set of files to a set of names that didn't necessarily work well programatically. While there are tools to do this (vidir comes to mind) I didn't have any available. So I created a simple file to math things up:&lt;br /&gt;sourcefile1 destfile-a&lt;br /&gt;sourcefile3 destfile-b&lt;br /&gt;sourcefile2 destfile-c&lt;br /&gt;Then I ran this command:&lt;br /&gt;cat movelist  xargs -n 2 mv"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-4127732737316334123?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/4127732737316334123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=4127732737316334123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/4127732737316334123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/4127732737316334123'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/06/redbeards-thoughts.html' title='Redbeard&apos;s Thoughts'/><author><name>Evill</name><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-32920939.post-4999437922206696954</id><published>2007-06-25T14:30:00.000+08:00</published><updated>2007-06-25T16:02:31.272+08:00</updated><title type='text'>cheatsheet</title><content type='html'>&lt;a href="http://www.plambeck.org/oldhtml/cheatsheet/index.htm"&gt;cheatsheet&lt;/a&gt;: "Using awk, uniq, and grep to filter files&lt;br /&gt;&lt;br /&gt;For example for a file web.log with entries that look like&lt;br /&gt;216.103.110.18 - - [27/Mar/2002:03:59:14 -0500] 'GET /people/index.htm HTTP/1.1'&lt;br /&gt;304 - 'http://www.plambeck.org.com/index.htm' 'Mozilla/4.0 (compatible; MSIE 6.0; Win&lt;br /&gt;dows 98; Q312461)'&lt;br /&gt;&lt;br /&gt;Use the command&lt;br /&gt;cat web.log  awk -F- '{print $1}'&lt;br /&gt;&lt;br /&gt;to display the first word on each line that comes before the - sign (ie, the IP address in the example above).&lt;br /&gt;&lt;br /&gt;Then use some combination of use 'uniq' and 'sort' to achieve your goal; for example&lt;br /&gt;cat web.log  awk -F- '{print $1}'  sort   uniq -c&lt;br /&gt;&lt;br /&gt;to print out number of log entries per IP number.&lt;br /&gt;&lt;br /&gt;To get grep to print out lines that don't match a pattern, use the -v option:&lt;br /&gt;cat web.log  grep -v 216 "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-4999437922206696954?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/4999437922206696954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=4999437922206696954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/4999437922206696954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/4999437922206696954'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/06/cheatsheet.html' title='cheatsheet'/><author><name>Evill</name><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-32920939.post-6557580154488066545</id><published>2007-06-14T13:50:00.000+08:00</published><updated>2007-06-15T10:15:19.626+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='slurp'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Slurping Text</title><content type='html'>&lt;a href="http://www.perl.com/pub/a/2003/11/21/slurp.html?page=1"&gt;perl.com: Perl Slurp-Eaze&lt;/a&gt;: "Perl Slurp-Eaze&lt;br /&gt;by Uri Guttman"&lt;br /&gt;&lt;br /&gt;Very useful article on slurping text. The implementation at the end of the article allows easy access to a file and its content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-6557580154488066545?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/6557580154488066545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=6557580154488066545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/6557580154488066545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/6557580154488066545'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2007/06/slurping-text.html' title='Slurping Text'/><author><name>Evill</name><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-32920939.post-115697890572973881</id><published>2006-08-31T07:01:00.000+08:00</published><updated>2007-06-15T10:16:54.491+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='command'/><title type='text'>[Vim] Sex or Ex</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Ooooh racy title eh? Sex is a vim command that stands for Split Explorer. What it does is split your gvim screen and displays a file explorer in the new window. You can then double click on the file you wish to open and it will be opened on the same window. Ex (take note of the uppercase E) is merely an explorer. It displays the explorer in the same window. You can then select the file you want to open. The file you are editing prior to the Ex command would be in a different buffer. Type :buffers if you want to see the buffer number it went to.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115697890572973881?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115697890572973881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115697890572973881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115697890572973881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115697890572973881'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/vim-sex-or-ex.html' title='[Vim] Sex or Ex'/><author><name>Evill</name><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-32920939.post-115640808299070517</id><published>2006-08-24T16:28:00.000+08:00</published><updated>2007-06-15T10:17:33.253+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recursive'/><category scheme='http://www.blogger.com/atom/ns#' term='grep'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>[Shell.Utils] Recursively grep for a pattern down a directory tree.</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;I often find myself changing directories using cd or using relative paths and wildcards to grep for a pattern down a directory tree. This could be done in one command line sequence using the &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;find&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; utility. &lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;find /work –print xargs grep ‘[Ee]rror’&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;The command listing above uses find to print all the files under the /work directory. The output of the find utility was piped to the xargs utility. Quoting from Linux in a Nutshell 3&lt;sup&gt;rd&lt;/sup&gt; Edition&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;i&gt;&lt;span style="font-family:Times New Roman;font-size:100%;color:black;"&gt;&lt;span style="font-size:12;color:black;"&gt;xargs [options] [command]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a name="INDEX-1192"&gt;&lt;/a&gt;&lt;a name="INDEX-1191"&gt;&lt;/a&gt;&lt;em&gt;&lt;i&gt;&lt;span style="font-family:Times New Roman;font-size:100%;color:black;"&gt;&lt;span style="font-size:12;color:black;"&gt;Execute command (with any initial arguments), but read remaining arguments from standard input instead of specifying them directly. xargs passes these arguments in several bundles to command, allowing command to process more arguments than it could normally handle at once. The arguments are typically a long list of filenames (generated by ls or find, for example) that get passed to xargs via a pipe.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Xargs enables grep to find the pattern ‘[Er]rror’ in the files piped from the find command.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Another example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-INDENT: 0.5in"&gt;&lt;b&gt;&lt;span style="font-family:Arial;font-size:85%;color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Arial;font-size:10;color:red;"   &gt;find /work –type f –name ‘*.txt’ –print xargs grep –l ‘[Ee]rror’&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-INDENT: 0.5in"&gt;&lt;b&gt;&lt;span style="font-family:Arial;font-size:85%;color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Arial;font-size:10;color:red;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;in this example we are looking for the word Error or error in the files with extension .txt under the work directory. The –l switch used for grep just prints out the filenames where the pattern was found. The –type f switch for find limits our search to files. The –name switch limits our search to just files with .txt extension.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115640808299070517?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115640808299070517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115640808299070517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115640808299070517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115640808299070517'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/shellutils-recursively-grep-for.html' title='[Shell.Utils] Recursively grep for a pattern down a directory tree.'/><author><name>Evill</name><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-32920939.post-115638811899189643</id><published>2006-08-24T10:55:00.000+08:00</published><updated>2006-08-24T10:57:37.780+08:00</updated><title type='text'>[AoN] Speaking UNIX</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Found two articles with lots of useful tidbits of info about using UNIX.  The articles shows the beauty of the new shell ‘zsh’.  Hope to learn more of this new shell in the future. Here is a link to the two articles:&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;a href="http://www-128.ibm.com/developerworks/eserver/library/es-unix-commandline/index.html"&gt;Speaking UNIX: Command the power of the command line&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;a href="http://www-128.ibm.com/developerworks/aix/library/au-speakingunix2.html"&gt;Speaking UNIX, Part2: Working Smarter, not harder.&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115638811899189643?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115638811899189643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115638811899189643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115638811899189643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115638811899189643'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/aon-speaking-unix.html' title='[AoN] Speaking UNIX'/><author><name>Evill</name><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-32920939.post-115638794401288031</id><published>2006-08-24T10:52:00.000+08:00</published><updated>2006-08-24T10:57:20.983+08:00</updated><title type='text'>New category! [AON]</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;I am adding a new category [AoN] to the blog.  Stands for Article of Note.  Isn’t that nice!&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115638794401288031?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115638794401288031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115638794401288031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115638794401288031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115638794401288031'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/new-category-aon.html' title='New category! [AON]'/><author><name>Evill</name><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-32920939.post-115632314567421527</id><published>2006-08-23T16:52:00.000+08:00</published><updated>2007-06-15T10:17:57.027+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='file'/><title type='text'>[Vim] gf 'get file'</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Ever had the moment where in you have a file with complete path in the text file your are editing that you want to view/edit with out using your mouse to highlight it and pasting it in the vim command line? Well gvim have a very nifty shortcut for it. Place your cursor on the file you want to see and type &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;gf&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;. I don’t know what gf stands for. I assume ‘get file’ &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Wingdings;font-size:85%;"&gt;&lt;span style="font-family:Wingdings;font-size:10;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;. Anyway that sure is a time saver.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115632314567421527?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115632314567421527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115632314567421527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115632314567421527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115632314567421527'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/vim-gf-get-file.html' title='[Vim] gf &apos;get file&apos;'/><author><name>Evill</name><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-32920939.post-115588164742748477</id><published>2006-08-18T14:14:00.000+08:00</published><updated>2007-06-15T10:19:02.137+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><title type='text'>[Vim] Adding your own helpfile in Vim</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;If you want to add your own help file to vim so that you can invoke the file when you type :help (for example a collection of your gvim commands) then do this:&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style="MARGIN-TOP: 0in" type="1"&gt;&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Create your_help.txt file and place it in your &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;$HOME/.vim/doc directory&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Issue the &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;`:helptags ~/.vim/doc`&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; command in vim. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;To view your help file just type &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;:help &amp;lt;your_helpfile&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;TAB completion works too just type :help &amp;lt;your_&amp;lt;TAB&amp;gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;That’s all there is to it!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115588164742748477?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115588164742748477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115588164742748477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115588164742748477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115588164742748477'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/vim-adding-your-own-helpfile-in-vim.html' title='[Vim] Adding your own helpfile in Vim'/><author><name>Evill</name><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-32920939.post-115586476047740050</id><published>2006-08-18T09:32:00.000+08:00</published><updated>2007-06-15T10:19:26.911+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='grep'/><title type='text'>[Vim] grep in vim</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Often times you would want to search for all occurrences of a particular word or pattern in a file. Using ‘*’ would be too tedious. So Here comes grep. Basically you use it this way&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;:grep &amp;lt;pattern&amp;gt; &amp;lt;file you want to grep&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Now after you do that, vim will show you all the lines matching. By typing &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style="FONT-WEIGHT: bold;color:red;" &gt;:cope&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; the vim window will be split. The bottom window would show all the matching lines, hyperlinked to the document you grepped.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115586476047740050?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115586476047740050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115586476047740050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115586476047740050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115586476047740050'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/vim-grep-in-vim.html' title='[Vim] grep in vim'/><author><name>Evill</name><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-32920939.post-115586334419984315</id><published>2006-08-18T09:09:00.000+08:00</published><updated>2007-06-15T10:19:55.217+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><title type='text'>[Vim] The power of '*'!</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family:Arial;font-size:10;"&gt;Use * to search the word where the cursor is.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32920939-115586334419984315?l=upgrade-evill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://upgrade-evill.blogspot.com/feeds/115586334419984315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32920939&amp;postID=115586334419984315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115586334419984315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32920939/posts/default/115586334419984315'/><link rel='alternate' type='text/html' href='http://upgrade-evill.blogspot.com/2006/08/vim-power-of.html' title='[Vim] The power of &apos;*&apos;!'/><author><name>Evill</name><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>
