<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>be present now &#187; tip</title>
	<atom:link href="http://durdn.com/blog/category/tip/feed/" rel="self" type="application/rss+xml" />
	<link>http://durdn.com/blog</link>
	<description>modern alchemy for joyful living.</description>
	<lastBuildDate>Sat, 23 Jul 2011 16:12:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Using Git with Subversion: Tips that will make your life easier</title>
		<link>http://durdn.com/blog/2011/07/06/using-git-with-subversion-tips-that-will-make-your-life-easier/</link>
		<comments>http://durdn.com/blog/2011/07/06/using-git-with-subversion-tips-that-will-make-your-life-easier/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 17:36:02 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[dvcs]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://durdn.com/blog/?p=129</guid>
		<description><![CDATA[&#160; In the last couple of years I&#8217;ve been working on various projects that &#8211; unfortunately &#8211; still use Subversion as their version control system. I moved to git already a few years ago and I wanted to keep using it as much as possible. Luckily git-svn is an incredibly complete tool to interact with [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>In the last couple of years I&#8217;ve been working on various projects that &#8211; unfortunately &#8211; still use Subversion as their version control system. I moved to git already a few years ago and I wanted to keep using it as much as possible. Luckily <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">git-svn</a> is an incredibly complete tool to interact with a Subversion repository without leaving the comfort of the git power toolset. But there are gotchas.</p>
<p>This post assumes you are already a little bit aquainted with git-svn and you know how to interact with a subversion repository using it. In case you are not or you want a refresher, please have a look at this <a href="http://www.jukie.net/~bart/blog/svn-branches-in-git">post from Bart</a> or google it.</p>
<p>The list below is a list of all the tips I had to research and integrate in my workflow to keep using git joyfully in conjunction with Subversion. Enjoy!</p>
<p>&nbsp;</p>
<h2>Setting up the files to ignore</h2>
<p>You should make sure that git ignores the same files svn does. The simpler trick is to append the list of svn:ignore files to the default git exclude file:</p>
<pre>git svn show-ignore &gt;&gt; .git/info/exclude</pre>
<p>An alternative method is the magical <strong>update-index  &#8211;assume-unchanged</strong>:</p>
<pre>git update-index --assume-unchanged files to ignore</pre>
<p>This is quite a fine trick I&#8217;ve consistently used in the past year. If you need more information, have a look at this <a href="http://stackoverflow.com/questions/655243/ignore-modified-but-not-committed-files-in-git">post on Stackoverflow</a>.</p>
<p>If you use the latter method, how do you find out later that a file has been ignored in git? You can use this:</p>
<pre>git ls-files -v | grep ^[a-z] | sed -e 's/^h\ //'</pre>
<div>
<h2>Shallow clone big repositories</h2>
<p>I&#8217;ve worked with codebases that are above 1.5Gb for a full Subversion checkout. I am not kidding. Checking out the entire history commit by commit &#8211; the way git-svn does &#8211; would be impossible. The repository is simply to big.</p>
<p>The way around it is to create a shallow clone of the repository, instead of copying the entire history of the project you just copy the last n commits and proceed from there. For example:</p>
<pre>git svn clone -s -r604:HEAD <a href="http://nick@svn.xxxxxx.com/repos/">http://nick@svn.xxxxxx.com/repos/</a> -T trunk -b branches -t tags</pre>
<p>Mandatory <a href="http://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository">Stackoverflow reference</a>.</p>
<h2></h2>
<h2>If you added the .svn folders by mistake in git</h2>
<p>Sooner or later you&#8217;ll run into a few snags. For example one time I didn&#8217;t use git-svn right from the start, I just checked out a project from subversion and I wanted to do my own tracking using git. At that time I mistakenly added the .svn folders to the index (staging area) in git.  How to keep those important files but remove them from the index?  Tricky!</p>
<p>Here&#8217;s how to untrack files without deleting them in git:</p>
<pre>git st | grep .svn | awk {'print $3'} | xargs git rm --cached</pre>
<p>Very clearly explained in this <a href="http://progit.org/book/ch2-2.html">chapter on progit</a>.</p>
<h2></h2>
<h2>What to do when a Subversion repository moves</h2>
<p>When a Subversion repository moves (or when you have to access it via VPN and do some smart tunneling that will change its address) you have to follow the correct procedure to avoid a full checkout.</p>
<p>The first method listed at the <a href="https://git.wiki.kernel.org/index.php/GitSvnSwitch">git wiki</a> is the one with which I had consistent success. Directly from the wiki here is the important part:</p>
<div>
<ul>
<li>Edit the svn-remote url URL in .git/config to point to the new domain name</li>
<li>Run <code>git svn fetch</code> - <em>This needs to fetch at least one new revision from svn!</em></li>
<li>Change svn-remote url back to the original url</li>
<li>Run <code>git svn rebase -l</code> to do a local rebase (with the changes that came in with the last fetch operation)</li>
<li>Change svn-remote url back to the new url</li>
<li>Run <code>git svn rebase</code> should now work again!</li>
</ul>
<p>This will only work, if the <code>git svn fetch</code> step actually fetches anything!</p>
<h2></h2>
<h2>Conclusion</h2>
<p>Working with git is a joy for me. You have total freedom and total control. You can commit endlessly, reformat your commits, squash them into clean ones, branch like crazy. You can bring the same joy with you even if you have to interact with Subversion. I&#8217;ve done it for the past 2 years. And it works beautifully.</p>
<p><div class="woo-sc-twitter left"><a href="http://twitter.com/share" class="twitter-share-button" data-via="durdn" data-count="vertical">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div> 
<div class="woo-fblike none">
<iframe src="http://www.facebook.com/plugins/like.php?href=http://durdn.com/blog/2011/07/06/using-git-with-subversion-tips-that-will-make-your-life-easier/&amp;layout=box_count&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;font=arial" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:60px"></iframe>
</div>
	</p>
<p>&nbsp;</p>
</div>
</div>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fdurdn.com%2Fblog%2F2011%2F07%2F06%2Fusing-git-with-subversion-tips-that-will-make-your-life-easier%2F';
  addthis_title  = 'Using+Git+with+Subversion%3A+Tips+that+will+make+your+life+easier';
  addthis_pub    = 'durdn';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://durdn.com/blog/2011/07/06/using-git-with-subversion-tips-that-will-make-your-life-easier/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>vim mind share soaring: roundup of 10 vim articles, recent and older gems</title>
		<link>http://durdn.com/blog/2008/11/26/vim-mind-share-soaring-roundup-of-10-vim-articles-recent-and-older-gems/</link>
		<comments>http://durdn.com/blog/2008/11/26/vim-mind-share-soaring-roundup-of-10-vim-articles-recent-and-older-gems/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 19:29:30 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[editors]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[guides]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[roundup]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://durdn.com/blog/?p=40</guid>
		<description><![CDATA[Am I the only one to notice that there is a lot of vim love in the airwaves recently? I saw the trend very clearly, spanning from reddit to news.yc and let me say that the material that came up recently is very good; those neat posts prompted me to improve my vimrc dramatically and [...]]]></description>
			<content:encoded><![CDATA[<p>Am I the only one to notice that there is a lot of <a href="http://www.vim.org/">vim</a> love in the airwaves recently?</p>
<p>I saw the trend very clearly, spanning from <a href="http://www.reddit.com/r/programming/search?q=vim">reddit</a> to <a href="http://news.ycombinator.com">news.yc</a> and let me say that the material that came up recently is very good; those neat posts prompted me to improve my vimrc dramatically and I really like what I learned.</p>
<p>In this installment, instead than annotating my vimrc (another one? not that interesting, I&#8217;ll refrain) , I want to compile a roundup of the best vim articles I saw recently.</p>
<p>I&#8217;ll also add a few classics that changed me from a hater to a vim lover and will conclude with some minor tips out of my bag.</p>
<p>So here we go with the roundup.</p>
<h3>Recent Vim Articles Roundup</h3>
<p>Jamis Buck</p>
<p style="padding-left: 30px;"><a href="http://weblog.jamisbuck.org/2008/11/17/vim-follow-up">Vim Follow Up</a></p>
<p style="padding-left: 30px;"><a href="http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim">Coming Home To Vim</a></p>
<p style="padding-left: 30px;">Jamis Buck switches back to vim from a period using <a href="http://macromates.com/">TextMate</a> and talks about his experience and his configuration. Many useful tips in there.</p>
<p>Stephen Bach</p>
<p style="padding-left: 30px;"><a href="http://items.sjbach.com/319/configuring-vim-right">Configuring Vim Right</a></p>
<p style="padding-left: 30px;">Sensible defaults for your vimrc, recommended.</p>
<p>Learnr dev blog</p>
<h1></h1>
<p style="padding-left: 30px;"><a href="http://blog.learnr.org/post/59098925/configuring-vim-some-more">Configuring Vim Some More</a></p>
<p style="padding-left: 30px;">Some additional configuration options that totally make sense and I incorporated in my config too.</p>
<p>Swaroop C H</p>
<p style="padding-left: 30px;"><a href="http://www.swaroopch.com/notes/Vim">A byte of vim</a></p>
<p style="padding-left: 30px;">A new free e-book on vim, worth reading. Covers also advanced topics like writing your own plug-ins.</p>
<p style="padding-left: 30px;"><a href="http://www.swaroopch.com/blog/effective-vim/">Effective Vim</a></p>
<p>This ends the recent vim trend spotting. But there are some older links that are worth sharing in my opinion.</p>
<h3>Older Vim Gems</h3>
<p>Jonathan McPherson</p>
<p style="padding-left: 30px;"><a href="http://jmcpherson.org/editing.html">Efficient Editing With Vim</a></p>
<p style="padding-left: 30px;">This is a true gem, an intermediate level tutorial that will convert you from a beginner vim user to a way more proficient one.<a href="http://jmcpherson.org/editing.html"><br />
</a></p>
<p>Jerry Wang</p>
<p style="padding-left: 30px;"><a href="http://www.jerrywang.net/vi/vitutor1.html">vi for smarties</a></p>
<p style="padding-left: 30px;">Very good beginners guide to vim.<a href="http://www.jerrywang.net/vi/vitutor1.html"><br />
</a></p>
<p><span style="font-family: arial;">David Rayner</span></p>
<p style="padding-left: 30px;"><a href="http://www.rayninfo.co.uk/vimtips.html?dupe=with_honor">best of vim tips</a></p>
<p style="padding-left: 30px;">Raw tips from a very long time vi/vim user</p>
<h3>Vim is also great for Python development, 3 ideas&#8230;</h3>
<p style="padding-left: 30px;"><a href="http://blogs.warwick.ac.uk/dwatkins/entry/vim_omnicomplete_awesomeness/">vim omnicomplete awesomeness</a></p>
<p style="padding-left: 30px;"><a href="http://blog.sontek.net/2008/05/11/python-with-a-modular-ide-vim/">How to make vim a modular Python IDE</a></p>
<p style="padding-left: 30px;"><a href="http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/">How to replicate SLIME in vim</a></p>
<h3><strong>Finally a few tips from myself</strong></h3>
<p><strong>vimperator</strong>: If you&#8217;re a heavy vim user you might want to checkout the great Firefox extension <a href="http://vimperator.org/trac/wiki/Vimperator">vimperator</a>. You&#8217;ll find yourself browsing mouse-less with familiar vim keystrokes in a matter of minutes. I love it.</p>
<p><strong>viPlugin for Eclipse</strong>: If you&#8217;re a Java developer (been there, done that) and you&#8217;re stuck with <a href="http://www.eclipse.org/">Eclipse</a>, you definitely want to have <a href="http://www.satokar.com/viplugin/">viPlugin</a>. It makes the Eclipse experience something much more pleasurable for one who has vi keystrokes embedded in the fingers.</p>
<p><strong>cool color scheme</strong>: If you&#8217;ve seen &#8220;<a href="http://media.rubyonrails.org/video/rails_take2_with_sound.mov">some</a>&#8221; screen-casts and you have just a subterranean <a href="http://macromates.com/">TextMate</a> envy and you can&#8217;t stop thinking at that cool color-scheme, well think no more, you can use <a href="http://www.vim.org/scripts/script.php?script_id=1794">this one</a> or my <a href="http://durdn.com/vibrantink-durdn.vim">humbly tweaked version</a>.</p>
<p>For <a href="http://delicious.com">delicious</a> users <a href="http://delicious.com/durdn/vim?setcount=50">here is the page</a> of my bookmarks that made me notice the trend.</p>
<h3>Ending note</h3>
<p>For full disclosure I have to say that I have been &#8211; and still am sometimes &#8211; an <a href="http://www.gnu.org/software/emacs/">Emacs</a> user. One of the rebel ones daring enough to use <a href="http://www.delorie.com/gnu/docs/emacs/viper.html">Viper</a> mode. So now you know.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fdurdn.com%2Fblog%2F2008%2F11%2F26%2Fvim-mind-share-soaring-roundup-of-10-vim-articles-recent-and-older-gems%2F';
  addthis_title  = 'vim+mind+share+soaring%3A+roundup+of+10+vim+articles%2C+recent+and+older+gems';
  addthis_pub    = 'durdn';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://durdn.com/blog/2008/11/26/vim-mind-share-soaring-roundup-of-10-vim-articles-recent-and-older-gems/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
<enclosure url="http://media.rubyonrails.org/video/rails_take2_with_sound.mov" length="54364199" type="video/quicktime" />
		</item>
		<item>
		<title>a webapp in 1 week (part 2): the source of data</title>
		<link>http://durdn.com/blog/2008/11/18/a-webapp-in-1-week-part-2-the-source-of-data/</link>
		<comments>http://durdn.com/blog/2008/11/18/a-webapp-in-1-week-part-2-the-source-of-data/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 16:20:25 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[freebase]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://durdn.com/blog/?p=36</guid>
		<description><![CDATA[In the first installment of this series I&#8217;ve spoken about a set of technologies that can speed up the time to market quite a bit. Read about it here if you missed it. This time I want to talk about where to get the content for your niche web app &#8211; if you need a [...]]]></description>
			<content:encoded><![CDATA[<p>In the first installment of this series I&#8217;ve spoken about a set of technologies that can speed up the time to market quite a bit. Read about it <a href="http://durdn.com/blog/2008/11/09/tools-for-rapid-prototyping-a-webapp-in-1-week/">here</a> if you missed it.</p>
<p>This time I want to talk about where to get the content for your niche web app &#8211; if you need a source of content, that is.</p>
<p><strong>Leverage the Semantic Web</strong></p>
<p>I apologize if you all know it and I am late to the news. But really, the semantic web is alive and here and I think one of its most promising incarnations is <a href="http://freebase.com">Freebase</a>.</p>
<p>What is Freebase?</p>
<p>Take the whole of Wikipedia, in it&#8217;s unstructured &#8211; well I should say semi-structured &#8211; mass of data, structure it properly creating schemas on schemas of semantic relations amongst articles, and expose a <a href="http://www.freebase.com/make">clean API</a> on top of it. Keep the openness part, allow anyone to create new domains (called <a href="http://www.freebase.com/view/guid/9202a8c04000641f8000000004f382c7">bases</a>) and to contribute structured content by hand or programmatically. That is freebase as I understand it.  <strong>Beautiful</strong>.</p>
<p><strong>How did I use it</strong></p>
<p>So the secret is out, that&#8217;s exactly what I used to present cool thumbnails and basic movie data for my tiny <a href="http://tuttivisti.com"></a><a href="http://tuttivisti.com">tuttivisti</a> &#8211; now at the second week of life (check it out by the way, the new release is out).</p>
<p>Let me go into deeper depth here because I realize the audience requires it.</p>
<p>The Freebase folks have <a href="http://www.freebase.com/make">extensive documentation</a> on how to interact with their service. In addition to that they publish two very nice <a href="http://www.python.org">Python</a> libraries, <a href="http://code.google.com/p/freebase-suggest/">freebase-suggest</a> and <a href="http://code.google.com/p/freebase-python/">freebase-python</a>. The first to add a cool, jquery based autocompletion dropdown to your forms, the second to query Freebase programmatically from a Python program.</p>
<p><strong>freebase-suggest example</strong></p>
<p>Using the freebase-suggest library is very easy. To achieve this:</p>
<p><a href="http://durdn.com/blog/wp-content/uploads/2008/11/autocompletion.png"><img class="alignnone size-full wp-image-37" title="tuttivisti autocompletion" src="http://durdn.com/blog/wp-content/uploads/2008/11/autocompletion.png" alt="" width="500" height="183" /></a></p>
<p>I just had to add this jquery snippet to the bottom of the page:<br />
<code><br />
&lt;script type="text/javascript"&gt;<br />
var options = {<br />
soft: false,<br />
ac_param: {<br />
type: '/film/film',<br />
category: 'instance',<br />
disamb: '1',<br />
limit: '10'<br />
}<br />
};<br />
</code></p>
<p><code> $('#searchbox')<br />
.freebaseSuggest(options)<br />
.bind('fb-select', function(e, data) {<br />
$('#searchbox').val(data.name);<br />
$('#freebase_id').val(data.id);<br />
$('#freebase_image_id').val(data.image.id);<br />
$('#search_movie_form').submit();<br />
return false;<br />
});<br />
&lt;/script&gt;<br />
</code></p>
<p>And mark the text input of the search with id=&#8221;searchbox&#8221;.</p>
<p>The freebase-python library is also very easy to use and I encourage you to take a look at the documentation, here.</p>
<p>So in conclusion, before your app gains traction and your content is produced by your users, leverage the Semantic Web if you can, use freebase!</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fdurdn.com%2Fblog%2F2008%2F11%2F18%2Fa-webapp-in-1-week-part-2-the-source-of-data%2F';
  addthis_title  = 'a+webapp+in+1+week+%28part+2%29%3A+the+source+of+data';
  addthis_pub    = 'durdn';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://durdn.com/blog/2008/11/18/a-webapp-in-1-week-part-2-the-source-of-data/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>linux one liner to extract email addresses from a django log file</title>
		<link>http://durdn.com/blog/2008/11/12/linux-one-liner-to-extract-email-addresses-from-a-django-log-file/</link>
		<comments>http://durdn.com/blog/2008/11/12/linux-one-liner-to-extract-email-addresses-from-a-django-log-file/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 12:01:29 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[awk xargs linux uniq]]></category>

		<guid isPermaLink="false">http://durdn.com/blog/?p=35</guid>
		<description><![CDATA[Say something bad happened and your application sent emails that it shouldn&#8217;t have (ahem who? not me&#8230;) and you want to collect the emails to apologise. So you just copied the output of a log file in a text file (wrong.txt) like the following: sending message 'Confirm email address for example.com' to email1@test1.com sending message [...]]]></description>
			<content:encoded><![CDATA[<p>Say something bad happened and your application sent emails that it shouldn&#8217;t have (ahem who? not me&#8230;) and you want to collect the emails to apologise. So you just copied the output of a log file in a text file (wrong.txt) like the following:</p>
<p><code><br />
sending message 'Confirm email address for example.com' to email1@test1.com<br />
sending message 'Confirm email address for example.com' to email2@test2.com<br />
[...]<br />
sending message 'Confirm email address for example.com' to email3@test3.com<br />
</code></p>
<p>Unix command line tools can make the job of extracting those emails and make them ready to be used in a To (or BCC) field a one liner:</p>
<p><code>cat wrong.txt | awk {'print $9'} | uniq | xargs -I{} echo -n "{},"</code></p>
<p>The result is:</p>
<p><code>email1@test1.com, email2@test2.com, [...], email3@test3.com</code></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fdurdn.com%2Fblog%2F2008%2F11%2F12%2Flinux-one-liner-to-extract-email-addresses-from-a-django-log-file%2F';
  addthis_title  = 'linux+one+liner+to+extract+email+addresses+from+a+django+log+file';
  addthis_pub    = 'durdn';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://durdn.com/blog/2008/11/12/linux-one-liner-to-extract-email-addresses-from-a-django-log-file/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>One-liner to list Ubuntu packages you installed recently</title>
		<link>http://durdn.com/blog/2008/11/09/one-liner-to-list-ubuntu-packages-you-installed-recently/</link>
		<comments>http://durdn.com/blog/2008/11/09/one-liner-to-list-ubuntu-packages-you-installed-recently/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 15:25:54 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[ubuntu xargs dpkg awk]]></category>

		<guid isPermaLink="false">http://durdn.com/blog/?p=34</guid>
		<description><![CDATA[Quick one liner to list the ubuntu packages you recently installed on a machine. I needed this to copy the configuration of one of my production boxes onto a dev environment: sudo cat /var/log/dpkg.log &#124; grep \ installed &#124; awk {'print $5'} &#124; xargs mysql-client-5.0 mysql-server-5.0 ... apache2]]></description>
			<content:encoded><![CDATA[<p>Quick one liner to list the ubuntu packages you recently installed on a machine. I needed this to copy the configuration of one of my production boxes onto a dev environment:</p>
<p><code>sudo cat /var/log/dpkg.log | grep \ installed | awk {'print $5'} | xargs</code></p>
<p><code>mysql-client-5.0 mysql-server-5.0 ... apache2</code></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fdurdn.com%2Fblog%2F2008%2F11%2F09%2Fone-liner-to-list-ubuntu-packages-you-installed-recently%2F';
  addthis_title  = 'One-liner+to+list+Ubuntu+packages+you+installed+recently';
  addthis_pub    = 'durdn';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://durdn.com/blog/2008/11/09/one-liner-to-list-ubuntu-packages-you-installed-recently/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using gmail for outbound smtp on Mac OS X Leopard</title>
		<link>http://durdn.com/blog/2008/10/08/using-gmail-for-outbound-smtp-on-mac-os-x-leopard/</link>
		<comments>http://durdn.com/blog/2008/10/08/using-gmail-for-outbound-smtp-on-mac-os-x-leopard/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 23:18:27 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[leopart]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://durdn.com/blog/?p=28</guid>
		<description><![CDATA[I had problems setting up postfix to run properly on my macbook pro. Then I found this very clear, step by step how to. And now everything works like a charm. The only drawback is that I can now basically only send email from my gmail account. Well that will do it for now.]]></description>
			<content:encoded><![CDATA[<p>I had problems setting up postfix to run properly on my macbook pro.</p>
<p>Then I found <a href="http://www.installationexperiences.com/?p=87">this</a> very clear, step by step how to. And now everything works like a charm.</p>
<p>The only drawback is that I can now basically only send email from my gmail account. Well that will do it for now.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fdurdn.com%2Fblog%2F2008%2F10%2F08%2Fusing-gmail-for-outbound-smtp-on-mac-os-x-leopard%2F';
  addthis_title  = 'Using+gmail+for+outbound+smtp+on+Mac+OS+X+Leopard';
  addthis_pub    = 'durdn';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://durdn.com/blog/2008/10/08/using-gmail-for-outbound-smtp-on-mac-os-x-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>one line search and replace in a folder [OSX]</title>
		<link>http://durdn.com/blog/2008/10/01/one-line-search-and-replace-in-a-folder-osx/</link>
		<comments>http://durdn.com/blog/2008/10/01/one-line-search-and-replace-in-a-folder-osx/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 11:10:30 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://durdn.com/blog/?p=27</guid>
		<description><![CDATA[Beautiful tip to search and replace all occurrences of a string in a given folder.  I had to change it slightly to make it work under OSX so here it is for future reference:   find . -type f -exec sed -i -e &#8216;s/Old/New/g&#8217; {} \;]]></description>
			<content:encoded><![CDATA[<p>Beautiful <a href="http://www.teachmejoomla.net/code/misc/sed-find-and-replace-in-folder.html">tip</a> to search and replace all occurrences of a string in a given folder. </p>
<p>I had to change it slightly to make it work under OSX so here it is for future reference:</p>
<p>  find . -type f -exec sed -i -e &#8216;s/Old/New/g&#8217; {} \;</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fdurdn.com%2Fblog%2F2008%2F10%2F01%2Fone-line-search-and-replace-in-a-folder-osx%2F';
  addthis_title  = 'one+line+search+and+replace+in+a+folder+%5BOSX%5D';
  addthis_pub    = 'durdn';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://durdn.com/blog/2008/10/01/one-line-search-and-replace-in-a-folder-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.649 seconds -->

