<?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-14609956</id><updated>2011-12-15T03:40:21.525+01:00</updated><title type='text'>Programming</title><subtitle type='html'>More fun per ounce</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14609956.post-116232639145490471</id><published>2006-10-31T21:24:00.000+01:00</published><updated>2006-10-31T21:26:31.470+01:00</updated><title type='text'>Internet tablet weblog</title><content type='html'>Ik heb een nieuwe webog gestart. Het is een weblog over &lt;b&gt;internet tablets&lt;/b&gt;. Een &lt;a href="http://www.internettablet.nl"&gt;Internet tablet&lt;/a&gt; is een klein apparaatje waarme je makkelijk kunt surfen op het internet op plaatsen waar je normaal geen computer mee kunt nemen (zoals in de bus of in de winkelstraat).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-116232639145490471?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/116232639145490471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=116232639145490471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/116232639145490471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/116232639145490471'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2006/10/internet-tablet-weblog.html' title='Internet tablet weblog'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-113993084187249701</id><published>2006-02-14T16:26:00.000+01:00</published><updated>2006-02-14T16:27:21.896+01:00</updated><title type='text'>My new website: www.peterstuifzand.nl</title><content type='html'>Hello all,

my new website is at &lt;a href="http://www.peterstuifzand.nl"&gt;www.peterstuifzand.nl&lt;/a&gt;. All my new entries and articles will be posted there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-113993084187249701?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/113993084187249701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=113993084187249701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/113993084187249701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/113993084187249701'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2006/02/my-new-website-wwwpeterstuifzandnl.html' title='My new website: www.peterstuifzand.nl'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112962847501853494</id><published>2005-10-18T11:35:00.000+02:00</published><updated>2005-10-18T11:41:15.023+02:00</updated><title type='text'>My latest podcast listening tool</title><content type='html'>Downloading podcasts is a problem for some people, therefore I wrote a simple tool to download them.

&lt;pre&gt;&lt;code&gt;
#!/bin/sh
cd ~/podcasts/new
wget $1
&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112962847501853494?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112962847501853494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112962847501853494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112962847501853494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112962847501853494'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/10/my-latest-podcast-listening-tool.html' title='My latest podcast listening tool'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112636652094002260</id><published>2005-09-10T17:23:00.000+02:00</published><updated>2005-09-10T17:35:20.946+02:00</updated><title type='text'>Monopod crashes on startup</title><content type='html'>&lt;p&gt;I liked to try &lt;a href="http://usefulinc.com/edd/blog/contents/2005/07/31-monopod/read"&gt;Monopod&lt;/a&gt;, a mono podcasting client, written by Edd Dumbill, but it crashed on my computer when I started it.&lt;/p&gt;

&lt;p&gt;My system is a amd64 with a Debian distribution, and it looks like there's a problem with trayicon support somewhere.&lt;/p&gt;

&lt;p&gt;The error is something like: &lt;code&gt;X window system error&lt;/code&gt; (can't find the real error right now). I created a patch around the problem. With this patch you can use monopod, but it won't show the trayicon. So maybe there is stuff missing, that I still can't see. But at least you can now try the program.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.stuifzand.com/peter/monopod.patch"&gt;The patch&lt;/a&gt;, no warranty, it works with monopod-0.4.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112636652094002260?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112636652094002260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112636652094002260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112636652094002260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112636652094002260'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/09/monopod-crashes-on-startup.html' title='Monopod crashes on startup'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112611816943670989</id><published>2005-09-07T20:34:00.000+02:00</published><updated>2005-09-07T20:36:09.440+02:00</updated><title type='text'>I won a perl book on perlcast.com</title><content type='html'>I &lt;a href="http://perlcast.com/2005/09/05/perl-testing-contest-winners/"&gt;won the Perl Testing Developer Notebook&lt;/a&gt; on &lt;a href="http://www.perlcast.com"&gt;Perlcast.com&lt;/a&gt;. This book is written by Ian Langworth and chromatic. I'm very happy and curious about when it will arrive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112611816943670989?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112611816943670989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112611816943670989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112611816943670989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112611816943670989'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/09/i-won-perl-book-on-perlcastcom.html' title='I won a perl book on perlcast.com'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112583693231421575</id><published>2005-09-04T14:19:00.000+02:00</published><updated>2005-09-04T14:53:55.106+02:00</updated><title type='text'>My website is working again.</title><content type='html'>&lt;p&gt;A few weeks ago, I lost my harddisk because of a crash. On this harddisk was the software with which I generate my website. Until last saturday I haven't had time to set it all up again.&lt;/p&gt;

&lt;p&gt;I wrote the software for creating the website myself. It generates pages using a few templates and a directory of posts and articles. The website is at &lt;a href="http://www.stuifzand.com/peter"&gt;www.stuifzand.com/peter&lt;/a&gt;. It also contains a part that can create a blog.&lt;/p&gt;

&lt;p&gt;The blog now has monthly archive pages, tags/categories, permalinks and of course the software that comes with it. So at least I can add features where I think it's necessary. That is a great feature for programmers.&lt;/p&gt;

&lt;p&gt;The only thing that I still need are &lt;em&gt;comments&lt;/em&gt;. Users can't post comments on the weblog. It's one the things that weblogs really need. I'm not yet sure, how to create commnents in a way that's easy and useful.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112583693231421575?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112583693231421575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112583693231421575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112583693231421575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112583693231421575'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/09/my-website-is-working-again.html' title='My website is working again.'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112531986386034751</id><published>2005-08-29T14:37:00.000+02:00</published><updated>2005-08-29T14:51:03.866+02:00</updated><title type='text'>Using screen: splitting screens</title><content type='html'>&lt;p&gt;It's been a long time since I wrote about screen, but here is
another one&lt;/p&gt;

&lt;p&gt;It sometimes is useful to show two screen next to each other. In
screen you can split the screen with &lt;kbd&gt;C-a S&lt;/kbd&gt;. You're terminal
will be split in two parts, one above the other.&lt;/p&gt;

&lt;p&gt;The screen you were using is shown in the top part. The other part
will be empty. To move to the other part press &lt;kbd&gt;C-a
TAB&lt;/kbd&gt;. You'll notice that this screen is empty. To make this
screen useful you can switch to another screen by pressing one of &lt;a href="http://stuifzand.blogspot.com/2005/08/using-screen-part-3.html"&gt;the
screen switch keys&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;kbd&gt;C-a TAB&lt;/kbd&gt; should also be used for switching back. The only
thing that's left to say here is when you've created to many splits,
you can type &lt;kbd&gt;C-a Q&lt;/kbd&gt; to reset the screen to have only one
screen visible.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112531986386034751?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112531986386034751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112531986386034751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112531986386034751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112531986386034751'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen-splitting-screens.html' title='Using screen: splitting screens'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112517170900037694</id><published>2005-08-27T21:18:00.000+02:00</published><updated>2005-08-27T21:49:47.206+02:00</updated><title type='text'>How to get better at something?</title><content type='html'>&lt;p&gt;In my &lt;a href="http://stuifzand.blogspot.com/2005/08/personal-development-for-programmers.html"&gt;previous post&lt;/a&gt; I wrote about personal development. Probably the best way to get better at something is &lt;strong&gt;to do it&lt;/strong&gt; (or more often, if you already do it).&lt;/p&gt;

&lt;p&gt;I would like to be a better writer. Because of that I started to write this blog and &lt;a href="http://www.stuifzand.com/peter/articles.html"&gt;articles&lt;/a&gt; about stuff I know. Other ways to get better are to read, practice and reflect. But the &lt;strong&gt;do it part&lt;/strong&gt; is probably the most important.&lt;/p&gt;

&lt;p&gt;Another important idea about learning, that it isn't a problem to fail at something, just stand up and try again, until it works.&lt;/p&gt;

&lt;p&gt;Research even shows that you can &lt;a href="http://headrush.typepad.com/creating_passionate_users/2005/01/you_20.html"&gt;learn new things&lt;/a&gt;, even if your not that young anymore. It's all about doing and wanting to learn.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112517170900037694?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112517170900037694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112517170900037694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112517170900037694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112517170900037694'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/how-to-get-better-at-something.html' title='How to get better at something?'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112506505221781690</id><published>2005-08-26T15:55:00.000+02:00</published><updated>2005-08-26T16:22:04.710+02:00</updated><title type='text'>Personal development for programmers</title><content type='html'>&lt;p&gt;This is all about you keeping your programming job.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.pragmaticprogrammer.com/talks/HowToKeepYourJob/HTKYJ.html"&gt;How To Keep Your Job presentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://pragmaticprogrammer.com/titles/mjwti/"&gt;My Job Went To India&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.nytimes.com/2005/08/23/technology/23geeks.html"&gt;A Techie, Absolutely and more&lt;/a&gt; (NYTimes registration)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://samizdat.mines.edu/howto/HowToBeAProgrammer.html"&gt;How To Be a Programmer FAQ&lt;/a&gt; &amp;#150; A FAQ about how to  be a programmer.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pragmaticprogrammer.com/ppbook/index.shtml"&gt;The Pragmatic Programmer&lt;/a&gt; &amp;#150; Must read for everyone that respects his programming skills.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What it all comes down to is this. What can you do to be more than just a coding monkey?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112506505221781690?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112506505221781690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112506505221781690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112506505221781690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112506505221781690'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/personal-development-for-programmers.html' title='Personal development for programmers'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112462321872562988</id><published>2005-08-21T13:04:00.000+02:00</published><updated>2005-08-21T13:20:18.730+02:00</updated><title type='text'>Problems with online concert information</title><content type='html'>&lt;p&gt;In a &lt;a href="http://stuifzand.blogspot.com/2005/08/online-concert-info.html"&gt;previous post&lt;/a&gt; I wrote about a way to create better concert information by using up-to-date information from concert websites. Today I write about the problems.&lt;/p&gt;

&lt;p&gt;The biggest problem is that it may be a long time before the system will be used by websites. There are some costs involved to set it up. The websites have to create a to generate the files, and the best way to do this is to use an automatic system.&lt;/p&gt;

&lt;p&gt;The other way around, other websites may create other equivalent system that are just a little bit different. This way there will be multiple systems for specifying this information, and probably the only way to solve it, is support all different ways, as feed based systems, like &lt;a href="http://www.feedburner.com/"&gt;FeedBurner&lt;/a&gt; do today.&lt;/p&gt;

&lt;p&gt;Another problem that can comes is probably the content of the file. Questions like, what can be in there? and which url shall I use to identify the artist? A good way to solve this is to create good documentation, and good software to support this system.&lt;/p&gt;

&lt;p&gt;I don't think that I've exposed all problems here, but it's a start and it will be a little bit easier for me to start the creation of the format. On of the things that I will have to do before I start with it is to search for equivalent systems, so I won't have to create it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112462321872562988?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112462321872562988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112462321872562988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112462321872562988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112462321872562988'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/problems-with-online-concert.html' title='Problems with online concert information'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112446357124746594</id><published>2005-08-19T16:47:00.000+02:00</published><updated>2005-08-19T16:59:31.256+02:00</updated><title type='text'>Online concert info</title><content type='html'>&lt;p&gt;For some time I have been working on a system for &lt;a href="http://www.wijvervelenons.nl"&gt;searching, browsing and adding concert information&lt;/a&gt;. Using this system is not very efficient, because every concert has to be added to the database, the biggest part of the problem is de searching, and typing of the items.&lt;/p&gt;

&lt;p&gt;Because I'm not very happy with this I have been thinking about a system that uses the internet. For this to work, concert organizers and artists could put a file on their webserver. This file will contain inforamtion about concert in some format. Every week or month, a bot will download that file and integrate it into the database.&lt;/p&gt;

&lt;p&gt;The nice thing about this approach is that the files can be automatically generated from the concert information on the websites of the places and artists using their concert information system or content management system.&lt;/p&gt;

&lt;p&gt;Also being human, not everyone will write the name of an artist the some way. There could be problems, when there are artists with the same name or if artists use 'The' in front their name, but  not everywhere, or maybe not by everyone.&lt;/p&gt;

&lt;p&gt;This last problem could of course be solved by using the url of the band's homepage in the file, because that is unique.&lt;/p&gt;

&lt;p&gt;By creating something like this, we are already a step closer to the semantic web.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112446357124746594?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112446357124746594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112446357124746594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112446357124746594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112446357124746594'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/online-concert-info.html' title='Online concert info'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112444732812146073</id><published>2005-08-19T12:17:00.000+02:00</published><updated>2005-08-19T12:28:48.126+02:00</updated><title type='text'>Addressbook online</title><content type='html'>&lt;p&gt;I'd like to have a way to have updated contact information of peopl I know. This could be done by putting a &lt;strong&gt;file on a webserver&lt;/strong&gt;, containing this &lt;em&gt;address information&lt;/em&gt;. This file should be updated when you move, etc. Your friends and bussiness associates could then, using a PIM program like Evolution, import this file, or actually the link.&lt;/p&gt;

&lt;p&gt;One problem would be that everyone can find your address info, and I'm not comfortable with that. But it wouldn't be a problem for my friends to have this info.&lt;/p&gt;

&lt;p&gt;This means that it should be possible to restrict access to parts of the file. In practice this could mean that you create a second file, containing &lt;strong&gt;not all information&lt;/strong&gt;, like only name and e-mail address. The first file should then be protected, but how can that be done.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112444732812146073?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112444732812146073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112444732812146073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112444732812146073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112444732812146073'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/addressbook-online.html' title='Addressbook online'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112438686999056324</id><published>2005-08-18T19:39:00.000+02:00</published><updated>2005-08-18T19:41:09.990+02:00</updated><title type='text'>Flag questionable Blogger websites</title><content type='html'>&lt;p&gt;I'm not sure when it was the first I could flag a blogger website as questionable, but it problably is a good way to get rid of all the spam blogs that are on Blogger.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112438686999056324?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112438686999056324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112438686999056324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112438686999056324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112438686999056324'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/flag-questionable-blogger-websites.html' title='Flag questionable Blogger websites'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112438649107295844</id><published>2005-08-18T19:32:00.000+02:00</published><updated>2005-08-18T19:34:51.076+02:00</updated><title type='text'>Stupid information posts</title><content type='html'>&lt;p&gt;OK, so the previous two post were a little crappy. But while they were used to get the ideas out there, it problably helped me to get the stuff a little better organized in my head, or something.&lt;/p&gt;

&lt;p&gt;I still am very interested in people who write an application like this.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112438649107295844?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112438649107295844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112438649107295844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112438649107295844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112438649107295844'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/stupid-information-posts.html' title='Stupid information posts'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112437470133029579</id><published>2005-08-18T16:10:00.000+02:00</published><updated>2005-08-18T16:19:10.293+02:00</updated><title type='text'>Information and stuff</title><content type='html'>&lt;p&gt;When you use subversion to update, for example the addressbook, you can send a ping (like in rss services) to the gui application, that's used to manage this stuff, with some inter process communication system.&lt;/p&gt;

&lt;p&gt;When using Linux and Gnome, &lt;a href="http://www.freedesktop.org/Software/dbus"&gt;dbus&lt;/a&gt; comes to mind. It would be easy to let subversion send the ping by using a &lt;a href="http://stuifzand.blogspot.com/2005/08/ruby-script-for-subversion-backups.html"&gt;post-commit script&lt;/a&gt; when the repository is changed.&lt;/p&gt;

&lt;p&gt;The only problem that is left, how can this be integrated into other applications like Evolution.&lt;/p&gt;

&lt;h3&gt;What information?&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;E-mails&lt;/li&gt;
&lt;li&gt;Addressbook&lt;/li&gt;
&lt;li&gt;Todo-lists&lt;/li&gt;
&lt;li&gt;And much more, of course...&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Why subversion?&lt;/h3&gt;

&lt;p&gt;It's distributed, and can be secured, using ssh or something. And it's open source. So it solves a big part of the problem.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112437470133029579?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112437470133029579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112437470133029579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112437470133029579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112437470133029579'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/information-and-stuff.html' title='Information and stuff'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112437236420895814</id><published>2005-08-18T15:28:00.000+02:00</published><updated>2005-08-18T15:39:24.216+02:00</updated><title type='text'>Productivity/Information Tool support</title><content type='html'>&lt;p&gt;About a year and a half ago I heard about a product called &lt;a href="http://www.near-time.com/PRODUCTS/flow.htm"&gt;Near-Time Flow&lt;/a&gt;. It's a publishing and collaboration tool, that can be used for researching, gathering information, searching, organizing and more. The problem for me is that it's a  OSX program. And I don't use that.&lt;/p&gt;

&lt;p&gt;But now the question. What programs are there for linux that can do this, or part of it?&lt;/p&gt;

&lt;p&gt;One thing that comes to mind is the &lt;a href="http://amb.vis.ne.jp/mozilla/scrapbook/"&gt;scrapbook extension for Firefox&lt;/a&gt;. This can be used to research webpages. But Flow does a lot more, some of which is really useful like version control and collaboration. Here I think of &lt;a href="http://subversion.tigris.org/"&gt;subversion&lt;/a&gt;, which can help with that.&lt;/p&gt;

&lt;p&gt;Are there other programs that help to organize information? Maybe evolution, but that's very specific for PIM stuff. Maybe some kind of wiki, can be used, but then you will miss the special functionality that's so useful.&lt;/p&gt;

&lt;p&gt;I'm not really sure where this is going. These are just ideas and stuff.&lt;/p&gt;

&lt;p&gt;Another link with ideas about this is on 43folders: &lt;a href="http://www.43folders.com/2005/01/i_want_a_pony_s.html"&gt;I want a pony&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112437236420895814?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112437236420895814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112437236420895814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112437236420895814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112437236420895814'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/productivityinformation-tool-support.html' title='Productivity/Information Tool support'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112410816492070472</id><published>2005-08-15T14:09:00.000+02:00</published><updated>2005-08-15T14:16:04.926+02:00</updated><title type='text'>Boost 1.33.0</title><content type='html'>&lt;p&gt;The fine folks at &lt;a href="http://www.boost.org/"&gt;Boost&lt;/a&gt; have created a new release of their fine C++ libraries. Boost is an opensource library that can be used to extend C++.&lt;/p&gt;

&lt;p&gt;This new release includes all kinds of new features on top of the things it could already do. It includes a parser, portable threads, math classes and functions, program_options, smart pointers, different containers, string formatting and &amp;lt;function&amp;gt; stuff that C++ is missing. Just take a look at the library, and probably somethings is that you could use.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112410816492070472?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112410816492070472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112410816492070472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112410816492070472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112410816492070472'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/boost-1330.html' title='Boost 1.33.0'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112406039088166384</id><published>2005-08-15T00:55:00.000+02:00</published><updated>2005-08-15T00:59:50.886+02:00</updated><title type='text'>Mini icons</title><content type='html'>&lt;p&gt;We all know these little icons for &lt;em&gt;new&lt;/em&gt;, &lt;em&gt;updated&lt;/em&gt; to show changes in the content of a website. These items are like small (31x14 px) to show some a changed condition a the page.&lt;/p&gt;

&lt;p&gt;Just some time ago, I noticed these little icons, that are used by amazon.com to show some extra information about a review, like &lt;em&gt;realname&lt;/em&gt;. Today I saw a little &lt;em&gt;sale&lt;/em&gt; icon.&lt;/p&gt;

&lt;p&gt;Is this a new &lt;em&gt;pattern&lt;/em&gt;? And how can it be used on websites?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112406039088166384?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112406039088166384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112406039088166384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112406039088166384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112406039088166384'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/mini-icons.html' title='Mini icons'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112404884430728309</id><published>2005-08-14T21:42:00.000+02:00</published><updated>2005-08-14T21:47:24.313+02:00</updated><title type='text'>Useful Tools: wget</title><content type='html'>&lt;p&gt;&lt;a href="http://www.gnu.org/software/wget/"&gt;wget&lt;/a&gt; is one of those tools that I use almost every week at least five times. It's not that I can't life without it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wget&lt;/code&gt; downloads files from websites or ftp servers. Most of the time I use it for downloading screencasts or podcasts from websites when I'm using the terminal (which is like always), when it's to big to get it streamed.&lt;/p&gt;

&lt;p&gt;What tools do you use all the time?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112404884430728309?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112404884430728309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112404884430728309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112404884430728309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112404884430728309'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/useful-tools-wget.html' title='Useful Tools: wget'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112393246497958205</id><published>2005-08-13T13:27:00.000+02:00</published><updated>2005-08-13T13:27:44.986+02:00</updated><title type='text'>Using screen: Key combinations</title><content type='html'>&lt;p&gt;In the last few days I wrote about screen. And this is probably not
the end yet. I'm not yet sure, about what else to write about
screen.&lt;/p&gt;

&lt;p&gt;I will write this summary post and we'll see about the stuff that's
later to come out.&lt;/p&gt;

&lt;h3&gt;Key combinations&lt;/h3&gt;

&lt;table&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a c&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;create a window&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a C-a&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;switch to previous open window&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a n&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;switch to next window&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a p&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;switch to previous window (numerically)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a N&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;where N = 0-9, switch to screen N&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a d&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;detach screen&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a _&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;monitor silence&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;kbd&gt;C-a M&lt;/kbd&gt;&lt;/td&gt;&lt;td&gt;monitor activity&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;h3&gt;Screen invocation&lt;/h3&gt;

&lt;table&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;screen -q&lt;/code&gt;&lt;/td&gt;&lt;td&gt;start screen without warranty screen&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;screen -r&lt;/code&gt;&lt;/td&gt;&lt;td&gt;reattach screen or exit if not available&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;screen -R&lt;/code&gt;&lt;/td&gt;&lt;td&gt;reattach screen or start one if not available&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;p&gt;These are  the screen commands I use most frequently.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112393246497958205?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112393246497958205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112393246497958205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112393246497958205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112393246497958205'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen-key-combinations.html' title='Using screen: Key combinations'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112386623348903772</id><published>2005-08-12T19:03:00.000+02:00</published><updated>2005-08-12T19:03:53.496+02:00</updated><title type='text'>Emacs Keyboard Macros</title><content type='html'>&lt;p&gt;Keyboard macros are one the most useful tools in Emacs. I will
start with a simple example.&lt;/p&gt;

&lt;p&gt;Let's assume you have a website, and on one of the pages you have
lists of fruit. The typing of these lists is becoming a lot of work,
but you don't have database and programming skills.&lt;/p&gt;

&lt;p&gt;Let's see how to create these lists with emacs. First type the list
of items you would like in the lists. This is still needed because, it
is the changing part in the lists.&lt;/p&gt;

&lt;pre&gt;
apple
banana
pear
&lt;/pre&gt;

&lt;p&gt;Something like that. Now to create the list items &lt;code&gt;li&lt;/code&gt;,
you have to type only one of those.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Move point (the cursor) to the first item in the list, &lt;code&gt;apple&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Type &lt;kbd&gt;C-x (&lt;/kbd&gt; &lt;em&gt;(start macro)&lt;/em&gt;. All the keystrokes after this will be recorded.&lt;/li&gt;
  &lt;li&gt;Type the begin tag, &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Go to the end of the line with &lt;kbd&gt;C-e&lt;/kbd&gt;.&lt;/li&gt;
  &lt;li&gt;Type &lt;code&gt;&amp;lt;/li&amp;gt;&lt;/code&gt; here.&lt;/li&gt;
  &lt;li&gt;To make the macro even more useful, move to beginning of the next line with &lt;kbd&gt;C-n&lt;/kbd&gt; &lt;kbd&gt;C-a&lt;/kbd&gt;.&lt;/li&gt;
  &lt;li&gt;Now type &lt;kbd&gt;C-x )&lt;/kbd&gt; &lt;em&gt;(stop macro)&lt;/em&gt; to stop the recording of the macro.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With &lt;kbd&gt;C-x e&lt;/kbd&gt; you can now execute the macro again. Do this
until you are at the end of the list. That was all. Now you have a
list that looks like this.&lt;/p&gt;

&lt;pre&gt;
&amp;lt;li&amp;gt;apple&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;banana&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;pear&amp;lt;/li&amp;gt;
&lt;/pre&gt;

&lt;p&gt;As you may have noticed, the pattern is create a list of the text
that is different on every row. Then create a macro for one line and
move to the next line. Apply the macro on all the lines.&lt;/p&gt;

&lt;p&gt;Of course there is still a lot more to learn about emacs keyboard
macros, but I will save that for another time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112386623348903772?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112386623348903772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112386623348903772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112386623348903772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112386623348903772'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/emacs-keyboard-macros.html' title='Emacs Keyboard Macros'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112384245058313647</id><published>2005-08-12T12:27:00.000+02:00</published><updated>2005-08-12T12:27:30.586+02:00</updated><title type='text'>Using screen: Monitoring</title><content type='html'>&lt;p&gt;For some programs it's not needed that you stay to watch every line
of text it shows. On unix, most programs don't even show text until
something happens.&lt;/p&gt;

&lt;p&gt;To take advantage of this fact, &lt;em&gt;screen&lt;/em&gt; has two
functions. The first is monitoring for inactivity.&lt;/p&gt;

&lt;p&gt;Inactivity is when a program doesn't do anything for a certain
amount of time. It can be used to show when a compile is ready, but
you don't want to wait or check. Monitoring for silence can be started
or stopped by pressing &lt;kbd&gt;C-a _&lt;/kbd&gt;.&lt;/p&gt;

&lt;p&gt;The other function is monitoring for activity. This is problably
useful for tail-ing log messages. With the key combination &lt;kbd&gt;C-a
M&lt;/kbd&gt;, you can start or stop the monitoring. Whenever there is
activity on the window, it will be shown in the status line when
you're on another window.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112384245058313647?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112384245058313647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112384245058313647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112384245058313647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112384245058313647'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen-monitoring.html' title='Using screen: Monitoring'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112376128956471763</id><published>2005-08-11T13:52:00.000+02:00</published><updated>2005-08-12T19:14:08.946+02:00</updated><title type='text'>Emacs tips</title><content type='html'>&lt;p&gt;For me &lt;a href="http://www.gnu.org/software/emacs/"&gt;emacs&lt;/a&gt; is
about doing less. Doing less is something computer programmers like,
because most of the time it's duplication that we're removing and it's
always easy to have a editor that helps us with that.&lt;/p&gt;

&lt;p&gt;I will make a little list of the features that I think are
useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;just-one-space&lt;/strong&gt;: removes all but one space from the
text. If you have code that looks like:&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;&lt;code&gt;int i =       0;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Calling &lt;code&gt;just-one-space&lt;/code&gt; when the cursor is on the
whitespace between the &lt;code&gt;=&lt;/code&gt; and the &lt;code&gt;0&lt;/code&gt;, will
make it &lt;code&gt;int i = 0;&lt;/code&gt;. It removes all but one space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;keyboard macros&lt;/strong&gt;: If you like to convert some data,
but don't want to create a script in Perl or Ruby, you can use
keyboard macros.&lt;/p&gt;

&lt;p&gt;To start recording a marco use &lt;kbd&gt;C-x (&lt;/kbd&gt;. Now type some
commands. Type &lt;kbd&gt;C-x )&lt;/kbd&gt; to stop the recording. With &lt;kbd&gt;C-x
e&lt;/kbd&gt; you can rerun the macro. Macros are really usefull, so I will
probably write about &lt;a href="http://stuifzand.blogspot.com/2005/08/emacs-keyboard-macros.html"&gt;keyboard macros&lt;/a&gt; some more later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;html-helper-mode&lt;/strong&gt;: This major mode contains a lot
of nice key combinations for inserting html code. It uses tempo, so
you could take a look at the code for the creating of the
templates. To get syntax highlighting use the &lt;code&gt;html-font&lt;/code&gt;
module.&lt;/p&gt;

&lt;p&gt;This is all for now. Maybe someone knows some nice stuff or links
to good tips or useful modules. Please share!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112376128956471763?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112376128956471763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112376128956471763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112376128956471763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112376128956471763'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/emacs-tips.html' title='Emacs tips'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112375179184492863</id><published>2005-08-11T11:15:00.000+02:00</published><updated>2005-08-11T11:16:31.850+02:00</updated><title type='text'>Using screen: part 5</title><content type='html'>&lt;p&gt;Screen is like a little, big tool, that can do all these nice
things. But still there are some things about it, that aren't that
nice. Every time the screen program is started a warranty message is
shown. This is not really useful.&lt;/p&gt;

&lt;p&gt;So I will show two ways to stop this behaviour. The first is to use
the &lt;code&gt;-q&lt;/code&gt; option when you start the program.&lt;/p&gt;

&lt;p&gt;The second way is to use the &lt;code&gt;startup_message off&lt;/code&gt;
command in your &lt;code&gt;.screenrc&lt;/code&gt; file. Just create a file
called &lt;code&gt;.screenrc&lt;/code&gt; and put the line in it. The next time
you start screen you won't see the message.&lt;/p&gt;

&lt;p&gt;There are many other options, which you can set in
the &lt;code&gt;.screenrc&lt;/code&gt; file. All these are documented in
the &lt;strong&gt;info file&lt;/strong&gt; that is included with your screen
distribution.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112375179184492863?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112375179184492863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112375179184492863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112375179184492863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112375179184492863'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen-part-5.html' title='Using screen: part 5'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112369517396024363</id><published>2005-08-10T19:31:00.000+02:00</published><updated>2005-08-10T19:40:38.240+02:00</updated><title type='text'>Great Perl Modules: part 1</title><content type='html'>&lt;p&gt;In this series I will try to list perl modules, that are useful or
nice.&lt;/p&gt;

&lt;p&gt;I use &lt;code&gt;CGI::Untaint&lt;/code&gt; for one of my website, and it is
really useful. It helps untaint cgi parameters. Part of the usefulness
of this module comes from the fact that you can extend the kinds of
input it will untaint.&lt;/p&gt;

&lt;p&gt;First I will show a little example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;pre&gt;use CGI;
use CGI::Untaint;

my $cgi = CGI-&gt;new;
my $params = CGI::Untaint-&gt;new($q-&gt;Vars);

# now you can extract variables.
my $number = $params-&gt;extract(-as_integer =&gt; 'id');
&lt;/pre&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If a parameter can't be extracted by the extractor
&lt;code&gt;undef&lt;/code&gt; will be returned.&lt;/p&gt;

&lt;p&gt;Without extensions this module can extract three types:
&lt;code&gt;printable&lt;/code&gt;, &lt;code&gt;hex&lt;/code&gt; and &lt;code&gt;integer&lt;/code&gt;. But
on &lt;a href="http://www.cpan.org/"&gt;CPAN&lt;/a&gt; there are many more modules
in CGI::Untaint namespace, that can extract URLs, dates, hostnames,
isbn and postal codes.&lt;/p&gt;

&lt;p&gt;If you need another extractor, you can always write one
yourself.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112369517396024363?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112369517396024363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112369517396024363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112369517396024363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112369517396024363'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/great-perl-modules-part-1.html' title='Great Perl Modules: part 1'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112366735630537585</id><published>2005-08-10T11:49:00.000+02:00</published><updated>2005-08-10T11:49:16.306+02:00</updated><title type='text'>Using screen: part 4</title><content type='html'>&lt;p&gt;In this fourth part
of &lt;a
href="http://stuifzand.blogspot.com/2005/08/using-screen.html"&gt;using
screen&lt;/a&gt;, we'll look at the stuff that makes screen better, than
just using multiple terminals in a windowmanager.&lt;/p&gt;

&lt;p&gt;The thing is that when you're working with screen and have to log
out, you don't have to close the current screen process. You can just
detach the screen from the terminal and it won't stop, but will go on
in the background.&lt;/p&gt;

&lt;p&gt;When you later login again, the same screen process will still be
running. You can then reattach to that process. To use this behaviour
you only need te know two commands.&lt;/p&gt;

&lt;p&gt;The first command you need to know is &lt;kbd&gt;C-a d&lt;/kbd&gt;
(mnemonic: &lt;strong&gt;d&lt;/strong&gt;etach). It will close screen, but will
keep the applications inside it running.&lt;/p&gt;

&lt;p&gt;The second command you need to know is &lt;tt&gt;screen -r&lt;/tt&gt;
(mnemonic: &lt;strong&gt;r&lt;/strong&gt;e-attach). It will reopen the screen you
have started before, with all the applications still running inside
it.&lt;/p&gt;

&lt;p&gt;This can be used with &lt;tt&gt;irssi&lt;/tt&gt;, or &lt;tt&gt;tail&lt;/tt&gt; or any other
program you can think of.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112366735630537585?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112366735630537585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112366735630537585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112366735630537585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112366735630537585'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen-part-4.html' title='Using screen: part 4'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112366728413807240</id><published>2005-08-10T11:47:00.000+02:00</published><updated>2005-08-10T11:48:04.143+02:00</updated><title type='text'>Programmer's Fonts</title><content type='html'>&lt;p&gt;Programming fonts, as much an art as it is a science, probably. In
the past I was always pretty satisfied with the 10x20 font that's
usable trough emacs. But since some time I like to use the same font
for my terminal and my editor.&lt;/p&gt;

&lt;p&gt;At first this font was the &lt;em&gt;Vera Monospace&lt;/em&gt; font, that is
usable for programming, but I couldn't use it in emacs. Now I use the
codingtobifont that can be found at
the &lt;a
href="http://www.proggyfonts.com/index.php?menu=download"&gt;Proggy
Programming Fonts&lt;/a&gt; website. Probably I tried all the fonts that are
available on that website.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112366728413807240?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112366728413807240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112366728413807240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112366728413807240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112366728413807240'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/programmers-fonts.html' title='Programmer&apos;s Fonts'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112362614705148164</id><published>2005-08-10T00:21:00.000+02:00</published><updated>2005-08-10T00:38:24.926+02:00</updated><title type='text'>Emacs and templates</title><content type='html'>&lt;p&gt;We all know &lt;a href="http://www.gnu.org/software/emacs/"&gt;GNU
Emacs&lt;/a&gt; is a powerful editor. But when I see the editor used
in &lt;a href="http://www.rubyonrails.com"&gt;the rails movie&lt;/a&gt; I really
think that there are missing some things (or maybe they're there and
I'm not aware of it). The editor that is used
is &lt;a href="http://www.macromates.com"&gt;TextMate&lt;/a&gt; and it does things
that I would like to do more often with Emacs.&lt;/p&gt;

&lt;p&gt;The most obvious missing thing in the movie is the template based
code insertion. Sometimes only the method name or a class name is
typed. And with a push of a button the rest of the code is inserted. I
think it is easy to do this with emacs.&lt;/p&gt;

&lt;p&gt;With some research I found two template system that enable me to
create a similar piece of functionality. The first
is &lt;em&gt;skeleton&lt;/em&gt; and the other is &lt;em&gt;tempo&lt;/em&gt;. Both libraries
do the same thing: create a function that asks questions and inserts
text.&lt;/p&gt;

&lt;p&gt;I will show how to create a template that inserts a method
definition for ruby. The inserted code should look like this:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;def method_name|
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The cursor should be where the &lt;code&gt;|&lt;/code&gt; is, because you may want
to insert arguments instead of just a body and no arguments.&lt;/p&gt;

&lt;p&gt;The code for the &lt;em&gt;skeleton&lt;/em&gt; library is:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;(define-skeleton ruby-insert-def-method
  "Inserts a ruby function"
  "Method Name: "
  "def " str _ \n
  "end" \n \n)&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;When you call the function, it will ask you for a method name. Then
it will insert the text using you answer for &lt;code&gt;str&lt;/code&gt; and
putting point at the place of &lt;code&gt;_&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The tempo version of this same template looks like this:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;(tempo-define-template "ruby-def-method"
   '("def " (p "Method Name: ") ~ n "end" n))
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;But the name of this function will
be &lt;code&gt;tempo-template-ruby-def-method&lt;/code&gt;. A problem with this
code is that the &lt;code&gt;~&lt;/code&gt; won't work in the standard
version. You should take a look
at &lt;a href="http://www.emacswiki.org/cgi-bin/wiki/TempoMode"&gt;EmacsWiki
TempoMode page&lt;/a&gt; for a solution to this problem. Also be sure
to &lt;code&gt;require&lt;/code&gt; the &lt;em&gt;tempo&lt;/em&gt; library before you try to
use this code.&lt;/p&gt;

&lt;p&gt;There are probably more templates that would be useful. Maybe I
will show some more later.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112362614705148164?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112362614705148164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112362614705148164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112362614705148164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112362614705148164'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/emacs-and-templates.html' title='Emacs and templates'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112360802579202357</id><published>2005-08-09T19:18:00.000+02:00</published><updated>2005-08-09T19:20:25.796+02:00</updated><title type='text'>Using screen: part 3</title><content type='html'>&lt;p&gt;There are some ways to switch between screen windows. First you can
switch to a window with a number. When we used &lt;code&gt;C-a w&lt;/code&gt;
last time, it showed some numbers in the window list. These numbers
are the window numbers of the windows.&lt;/p&gt;

&lt;p&gt;If you want to switch to window &lt;code&gt;1&lt;/code&gt;, you should
type &lt;kbd&gt;C-a 1&lt;/kbd&gt;. To switch to the first windows type &lt;kbd&gt;C-a
0&lt;/kbd&gt;. You can switch to every screen from 0 to 9 this way.&lt;/p&gt;

&lt;p&gt;The next way to switch to another window is by using the next and
previous window key combination. These are &lt;kbd&gt;C-a n&lt;/kbd&gt; for next
and &lt;kbd&gt;C-a p&lt;/kbd&gt; for the previous window. On the screen info page
there are more ways shown to switch the window.&lt;/p&gt;

&lt;p&gt;The last way to switch a screen is by using &lt;kbd&gt;C-a C-a&lt;/kbd&gt; which
will switch to the previous screen that was shown.&lt;/p&gt;

&lt;p&gt;Next time I will show even more things you can do
with &lt;em&gt;screen&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112360802579202357?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112360802579202357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112360802579202357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112360802579202357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112360802579202357'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen-part-3.html' title='Using screen: part 3'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112358961649276666</id><published>2005-08-09T14:08:00.000+02:00</published><updated>2005-08-09T14:13:36.496+02:00</updated><title type='text'>Using screen: part 2</title><content type='html'>&lt;p&gt;First you will need your copy of the screen program. On debian you'll need the &lt;em&gt;screen&lt;/em&gt; package. For other system I'm not sure how to get it, but you take a look at the &lt;a href="http://www.gnu.org/software/screen/"&gt;screen website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To use screen start your favorite terminal program. Like &lt;em&gt;rxvt&lt;/em&gt;, &lt;em&gt;gnome-terminal&lt;/em&gt; or &lt;em&gt;xterm&lt;/em&gt;. Then type on the command line:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;# screen&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;It will now show some warranty blurb (which it won't show if you use the &lt;code&gt;-q&lt;/code&gt; option).&lt;/p&gt;

&lt;p&gt;You're now in a screen session. You can do everything you could do in a normal terminal, like typing commands, or using direction keys. Let's try that by typing some commands.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;# ls
bin doc src
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Ok, so it shows some directory like we expect. Type &lt;code&gt;C-a c&lt;/code&gt; to create a new screen. That's &lt;code&gt;control&lt;/code&gt; and &lt;code&gt;a&lt;/code&gt;, followed by a &lt;code&gt;c&lt;/code&gt;. Again we see an
empty screen. Something like:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;#&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;In this screen we can also type some commands. Type &lt;code&gt;C-a w&lt;/code&gt; to get a list of all the screens that are currently open. The list at the bottom of the screen looks like this:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;0-$ bash  1*$bash&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;This line shows the screen that are open at this time. The number is the screen number that is open. The &lt;code&gt;-&lt;/code&gt; shows a screen that's not visible and the &lt;code&gt;*&lt;/code&gt; shows the currently visible screen. The &lt;code&gt;bash&lt;/code&gt; is the title of the screen.&lt;/p&gt;


&lt;p&gt;Next time I will show some more tips on using &lt;em&gt;screen&lt;/em&gt;, like switching between screens.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112358961649276666?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112358961649276666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112358961649276666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112358961649276666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112358961649276666'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen-part-2.html' title='Using screen: part 2'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112358834854621290</id><published>2005-08-09T13:51:00.000+02:00</published><updated>2005-08-13T15:00:17.803+02:00</updated><title type='text'>Using screen</title><content type='html'>&lt;p&gt;&lt;a href="http://www.gnu.org/software/screen/"&gt;Screen&lt;/a&gt; is a
program that let's you keep multiple programs running in one
terminal. But it's not all this small program does. According to the
website:&lt;/p&gt;

&lt;blockquote&gt;Screen is a full-screen window manager that multiplexes a
physical terminal between several processes, typically interactive
shells.&lt;/blockquote&gt;

&lt;p&gt;It may not yet be clear to you, how much power this program has, but it has, a lot.&lt;/p&gt;

&lt;p&gt;In the next time, I will show some examples of using &lt;em&gt;screen&lt;/em&gt;. This
will include keybindings, but also examples of how and when to use screen.&lt;/p&gt;

&lt;h3&gt;Table of contents&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Introduction&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://stuifzand.blogspot.com/2005/08/using-screen-part-2.html"&gt;Starting screen and creating windows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://stuifzand.blogspot.com/2005/08/using-screen-part-3.html"&gt;Switching windows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://stuifzand.blogspot.com/2005/08/using-screen-part-4.html"&gt;Detach and Re-Attach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://stuifzand.blogspot.com/2005/08/using-screen-part-5.html"&gt;Options and Configuration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://stuifzand.blogspot.com/2005/08/using-screen-monitoring.html"&gt;Monitoring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://stuifzand.blogspot.com/2005/08/using-screen-key-combinations.html"&gt;Key combinations summary&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112358834854621290?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112358834854621290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112358834854621290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112358834854621290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112358834854621290'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/using-screen.html' title='Using screen'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112315615889651752</id><published>2005-08-04T13:41:00.000+02:00</published><updated>2005-08-04T13:49:18.896+02:00</updated><title type='text'>All this backup stuff has a reason</title><content type='html'>&lt;p&gt;Everybody likes backups. But not everybody makes them. Still its a good idea to create backups. It happend to me and I didn't like it. It happened more times than I'd like to remember, but it shouldn't. So create backups, test them, and have a nice day.&lt;/p&gt;

Mark W. Shead has a &lt;a href="http://blog.markwshead.com/archives/2005/07/19/nightmare-programming-project.html"&gt;horrorstory&lt;/a&gt; that we all should think about, especially if your a programmer. Also his tips at the end, are something to think about and implement.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112315615889651752?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112315615889651752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112315615889651752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112315615889651752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112315615889651752'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/all-this-backup-stuff-has-reason.html' title='All this backup stuff has a reason'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112315474509948898</id><published>2005-08-04T13:24:00.000+02:00</published><updated>2005-08-04T13:30:27.476+02:00</updated><title type='text'>Ruby script for subversion backups</title><content type='html'>&lt;p&gt;My subversion backups are automatically created after a commit. I use the post-commit script to do this. In the hooks directory of your repository there is a file called &lt;code&gt;post-commit.templ&lt;/code&gt; that explains how the &lt;strong&gt;post-commit&lt;/strong&gt; script works. Take a look at it for more information about this.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;post-commit&lt;/code&gt; script is called with two arguments, &lt;code&gt;repository&lt;/code&gt; and &lt;code&gt;revision&lt;/code&gt;. These two arguments contains information you may want to use.&lt;/p&gt;

&lt;p&gt;My backup script looks like this.&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;&lt;code&gt;#!/usr/bin/ruby
# post commit script for backing up the source repository

repository = ARGV[0]
revision   = ARGV[1]

# create dump file
date = Time.new.strftime("%Y-%m-%d")
filename = "/home/peter/subversion-#{date}-r#{revision}.dump"
system("svnadmin dump /var/lib/svn &gt; #{filename}")

# upload file
remote = "peter@allerhande:/home/peter/backup/subversion"
ssh = "ssh -i /home/peter/.ssh/rsync-key"
system("rsync -e '#{ssh}' #{filename} #{remote}")
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;It should be obvious that this is one of those script that is called &lt;a href="http://simon-cozens.org/programmer/secret-software.html"&gt;secret software&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To create a backup, I first create a filename with the current date and the revision number. Then I use &lt;code&gt;svnadmin&lt;/code&gt; to create a dumpfile with that filename. Then I use &lt;code&gt;rsync&lt;/code&gt; to upload it to another computer.&lt;/p&gt;

&lt;p&gt;More information about rsync can be found in my &lt;a href="use-rsync-to-create-backups-on-other.html"&gt;previous post&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112315474509948898?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112315474509948898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112315474509948898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112315474509948898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112315474509948898'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/ruby-script-for-subversion-backups.html' title='Ruby script for subversion backups'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112308995091384139</id><published>2005-08-03T19:06:00.000+02:00</published><updated>2005-08-03T20:31:51.613+02:00</updated><title type='text'>Subversion Backups</title><content type='html'>&lt;p&gt;In my &lt;a href="http://stuifzand.blogspot.com/2005/08/use-rsync-to-create-backups-on-other.html"&gt;previous post&lt;/a&gt; I wrote about making backups of subversion repositories. Only there is a problem. If you create a copy of the files in the repository directory, there is the possibility that the backup is incomplete or unusable. The solution is to create a dumpfile.&lt;/p&gt;

&lt;p&gt;A dumpfile contains all the files in the repository. A dump file can be created with the command &lt;code&gt;svnadmin dump /var/lib/svn &gt; dumpfile&lt;/code&gt;. It uses &lt;code&gt;svnadmin&lt;/code&gt; to create a &lt;em&gt;dump file&lt;/em&gt; of the repository in &lt;code&gt;/var/lib/svn&lt;/code&gt; and writes it to &lt;code&gt;dumpfile&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I used a ruby program to create a dumpfile. The filename of the dumpfile that I created is based on the date and the revision: &lt;code&gt;subversion-backup-&amp;lt;year&amp;gt;-&amp;lt;month&amp;gt;-&amp;lt;day&amp;gt;-r&amp;lt;revision&amp;gt;.dump&lt;/code&gt;. By using this filename, all files are sorted by date and contain the revision, which is also useful, when you have more than one revision a day (which you probable have).&lt;/p&gt;

&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://svnbook.red-bean.com/"&gt;More information about subversion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.blendedtechnologies.com/daily-backup-of-subversion/21"&gt;Daily backup on Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ansiktdesign.no/ole/business/?p=12"&gt;Writing a Thesis and using Subversion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112308995091384139?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112308995091384139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112308995091384139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112308995091384139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112308995091384139'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/subversion-backups.html' title='Subversion Backups'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112307855842901254</id><published>2005-08-03T16:07:00.000+02:00</published><updated>2005-08-03T16:15:58.436+02:00</updated><title type='text'>Use rsync to create backups on other computers</title><content type='html'>&lt;p&gt;It's a good idea to create backups of your source code. Today I've created some simple scripts that create a &lt;em&gt;subversion dump file&lt;/em&gt; and upload it to one of my other computers. The scripts use ssh and rsync.&lt;/p&gt;

&lt;p&gt;The tutorial I used is &lt;a href="http://www.jdmz.net/ssh/"&gt;Using Rsync and SSH&lt;/a&gt; it explains how you can transport automatically and save/secret.&lt;/p&gt;

&lt;p&gt;Each time I commit the source code to the repository, a &lt;b&gt;post-commit hook&lt;/b&gt; is executed. This post-commit script creates a dump file of the repository and then uses rsync+ssh to upload it to the other computer.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112307855842901254?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112307855842901254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112307855842901254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112307855842901254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112307855842901254'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/08/use-rsync-to-create-backups-on-other.html' title='Use rsync to create backups on other computers'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112221680261915349</id><published>2005-07-24T16:50:00.000+02:00</published><updated>2005-07-24T16:55:25.510+02:00</updated><title type='text'>Creating a nicer Java GUI using Swing and RiverLayout</title><content type='html'>&lt;p&gt;&lt;a href="http://www.stuifzand.com/peter/java-gui1.html"&gt;Nice Java GUI with RiverLayout&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some time ago I wrote an article about RiverLayout. RiverLayout is a LayoutManager for Java and is much nicer than all the other stuff, that is included in the J2SE.&lt;/p&gt;

&lt;p&gt;It's good to see that some people do their best to create nice abstractions. Less code, nicer gui.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112221680261915349?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112221680261915349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112221680261915349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112221680261915349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112221680261915349'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/07/creating-nicer-java-gui-using-swing.html' title='Creating a nicer Java GUI using Swing and RiverLayout'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112207172303380103</id><published>2005-07-23T00:29:00.000+02:00</published><updated>2005-07-23T00:38:26.586+02:00</updated><title type='text'>Writing a game engine</title><content type='html'>&lt;p&gt;&lt;a href="http://www.ronkes.nl/blog/?2005-07-21-gameengine"&gt;Writing a basic game engine&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is really strange. The idea of this article is about the same as an article I would like to write. The second I would like to write would be about the game loop of games. But I haven't yet finished it. And now it looks like I don't have to.&lt;/p&gt;

&lt;p&gt;Perhaps I would have done some things a little different. I don't think I would use a singleton pattern for anything. Most of the time it's not useful. Singletons are difficult to use with destructors, especially if you need a special order in which the objects destruct themselves.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112207172303380103?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112207172303380103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112207172303380103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112207172303380103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112207172303380103'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/07/writing-game-engine.html' title='Writing a game engine'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112205998810429586</id><published>2005-07-22T21:16:00.000+02:00</published><updated>2005-07-22T21:19:48.106+02:00</updated><title type='text'>Two game programming articles</title><content type='html'>&lt;p&gt;Not so long ago I wrote two articles about gameprogramming that I published on my website. These could be of some importance to starting game programmers. This stuff is pretty obvious to me now, but when I started I didn't know about it.&lt;/p&gt;

&lt;p&gt;The first is about using a &lt;a href="http://www.stuifzand.com/peter/gameprog_1.html"&gt;camera object to control scrolling in a game&lt;/a&gt;. The other is about &lt;a href="http://www.stuifzand.com/peter/gameprog_3.html"&gt;time based movement&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112205998810429586?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112205998810429586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112205998810429586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112205998810429586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112205998810429586'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/07/two-game-programming-articles.html' title='Two game programming articles'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112173576797033652</id><published>2005-07-19T03:12:00.000+02:00</published><updated>2005-07-22T21:20:42.653+02:00</updated><title type='text'>Essential development practices</title><content type='html'>&lt;p&gt;&lt;a href="http://www.perl.com/pub/a/2005/07/14/bestpractices.html"&gt;Ten Essential Development Practices&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are all pretty obvious practices, but not everyone including me, will even practice five of them. There is a lot to be done to become a better programmer and these are only one step in the right direction.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112173576797033652?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112173576797033652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112173576797033652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112173576797033652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112173576797033652'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/07/essential-development-practices.html' title='Essential development practices'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14609956.post-112173539885509028</id><published>2005-07-19T03:05:00.000+02:00</published><updated>2005-07-22T21:21:07.700+02:00</updated><title type='text'>My new weblog</title><content type='html'>&lt;p&gt;On this weblog I will post about programming perl, ruby, websites and games. Or something like that.&lt;/p&gt;

&lt;p&gt;The first thing to notice is that I already have a few other blogs, these are all dutch. And are mainly about my social concert calender &lt;a href="http://www.wijvervelenons.nl"&gt;wij vervelen ons&lt;/a&gt;. translated 'we are bored'. It contains concerts in The Netherlands.&lt;/p&gt;

&lt;p&gt;I wrote a few texts about &lt;a href="http://www.stuifzand.com/peter/articles.html"&gt;game programming&lt;/a&gt;. Maybe these are interesting to some people.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14609956-112173539885509028?l=stuifzand.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stuifzand.blogspot.com/feeds/112173539885509028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14609956&amp;postID=112173539885509028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112173539885509028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14609956/posts/default/112173539885509028'/><link rel='alternate' type='text/html' href='http://stuifzand.blogspot.com/2005/07/my-new-weblog.html' title='My new weblog'/><author><name>Peter Stuifzand</name><uri>http://www.blogger.com/profile/08128847616497073572</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
