<?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-5513234137363262204</id><updated>2012-01-20T14:34:41.577+01:00</updated><category term='TijdTeVeel'/><category term='JMEMantzelList'/><category term='Welding'/><category term='Open Standaarden'/><category term='Fedora'/><category term='Building Stuff'/><category term='Sick'/><category term='KULeuven'/><category term='Debian'/><category term='English'/><category term='MediaWiki'/><category term='JMEMantzel'/><category term='Lopen'/><category term='CentOS'/><category term='Groupware'/><category term='Windows'/><category term='PIC'/><category term='Vacation'/><category term='RPM'/><category term='OpenID'/><category term='SMF'/><category term='Life'/><category term='PowerShell'/><category term='Evolution'/><category term='ISA'/><category term='OverTheWire'/><category term='LUDIT'/><category term='P en O'/><category term='Nederlands'/><category term='Kickstart'/><category term='Ubuntu'/><category term='Rant'/><category term='Puppet'/><category term='Cobbler'/><category term='rdesktop'/><title type='text'>Singularity</title><subtitle type='html'>Flawed logic detecting flawed logic</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.singularity.be/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.singularity.be/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default?start-index=101&amp;max-results=100'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>477</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-2930959099360553383</id><published>2012-01-03T16:06:00.000+01:00</published><updated>2012-01-04T17:23:07.240+01:00</updated><title type='text'>Side project: booklet printing in Ubuntu made easy</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://copy-shop.org/knoxville/wp-content/uploads/2008/02/grm-booklet-open.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="375" src="http://copy-shop.org/knoxville/wp-content/uploads/2008/02/grm-booklet-open.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Booklets consist of sheets of paper folded a couple times to form a book-like version of a document.For example, you could create an A5 booklet by printing a document on A4 paper, 2 sheets per page, with the sheets arranged in such a way that the resulting pages of A4 paper can be folded in half to form an A5 booklet.&lt;br /&gt;&lt;br /&gt;I prefer booklet printing of documents over plain duplex printing because it wastes a lot less paper,and results in a more comfortable size to carry around said printed documents.&lt;br /&gt;&lt;br /&gt;Unfortunately, Ubuntu doesn't have a booklet printing option unlike MacOSX (so I've been told).This means that printing documents as booklets involves saving the document and running it through a coupleof commandline tools before sending it to the printer.Because these steps are too elaborate, I knew my natural laziness would kick in and I'd stop printing bookletsif there was no automated solution.&lt;br /&gt;&lt;br /&gt;I decided to create a CUPS backend to print booklets. Once installed, the booklet printer that uses this backendis available to any program that uses CUPS for printing. On Ubuntu, that means every program :)When the booklet backend receives the PDF document, it converts it into booklet form and forwards it to any printer you want.&lt;br /&gt;&lt;br /&gt;The backend script requires a couple tools that need to be installed first:&lt;pre&gt;&lt;br /&gt;apt-get install impose+ psutils&lt;br /&gt;&lt;/pre&gt;The &lt;a href="http://data.singularity.be/booklet/booklet"&gt;code for the backend&lt;/a&gt; then, is very simple:&lt;br /&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;if [ $# -eq 0 ]; then&lt;br /&gt;    echo "direct booklet \"Unknown\" \"Print a document in booklet form\""&lt;br /&gt;    exit 0&lt;br /&gt;fi  &lt;br /&gt;&lt;br /&gt;out=${DEVICE_URI#booklet:/}&lt;br /&gt;user=$2&lt;br /&gt;title=$3&lt;br /&gt;&lt;br /&gt;cat $6 | fixtd -tumble | psbook | /usr/bin/pstops "2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)" | lpr -T "$title" -U "$user" -P "$out"&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To use this backend on Ubuntu, download the code into &lt;b&gt;/usr/lib/cups/backend/booklet&lt;/b&gt; and set it executable.Then, goto &lt;a href="http://localhost:631/"&gt;http://localhost:631&lt;/a&gt; and login to your CUPS interface. Create a new printer of the booklet type. Next, type in the booklet printer URI:  &lt;b&gt;booklet:/MyPrinter&lt;/b&gt; (mind the single slash) will install a booklet printer that forwards the processed document to the "MyPrinter" printer. Make sure it's a duplex printer.Give the printer a name (e.g. "booklet") and indicate that it is a Generic Postscript Printer.Finally, set some default options. In my case, I want A4 paper and duplex along the long edge (standard).&lt;br /&gt;&lt;br /&gt;The printer should now be installed and ready for use&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nRjUsfj92KA/TwR7zGwm9kI/AAAAAAAAAM0/tznGOj0DJDI/s1600/Screenshot-15.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="275" src="http://1.bp.blogspot.com/-nRjUsfj92KA/TwR7zGwm9kI/AAAAAAAAAM0/tznGOj0DJDI/s320/Screenshot-15.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2930959099360553383?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2930959099360553383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2930959099360553383' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2930959099360553383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2930959099360553383'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2012/01/side-project-booklet-printing-in-ubuntu.html' title='Side project: booklet printing in Ubuntu made easy'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-nRjUsfj92KA/TwR7zGwm9kI/AAAAAAAAAM0/tznGOj0DJDI/s72-c/Screenshot-15.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-5158923024660370961</id><published>2012-01-01T23:29:00.001+01:00</published><updated>2012-01-01T23:34:16.243+01:00</updated><title type='text'>Side project: generating clickmaps as meta-data for screenshots</title><content type='html'>&lt;p&gt;A long time ago, my mom persuaded me into playing Farmville so she could have more Farmville neighbors and gain some reward from that. Since Farmville was pretty repetitive, I created an automated Farmville player in a VM that would play the game 24/7, much to the dissatisfaction of my mother and other people, because the autoplayer blasted away their puny highscores in less than a week.&lt;/p&gt;&lt;p&gt;For a paper I submitted not long ago, there was also the need for this kind of automation. After submission, I realized that my automation could be improved if I could somehow determine which locations on screen were hotspots for an application with regard to clicking. For example, a menu bar obviously has special meaning to any application, and so does a textfield. On the other hand, the title bar or plain blank space does not react to clicks at all.&lt;/p&gt;&lt;p&gt;The main idea behind this "clickmap" discovery, is to observe the shape of the mousepointer as it moves along the screen. The X11 protocol defines a set of standard shapes that should be implemented by any pointer "theme", collectively called the "X11 cursor font" (XCursorFont). Each mouse pointer (cursor) shape is then a glyph from that font. Each of those shapes is represented by a unique color in the output "clickmap" image.&lt;/p&gt;&lt;p&gt;There are some problems with this setup: the current shape of the mouse pointer is determined by the top-most application over which the mousepointer hovers. That means that the application is responsible for changing the mouse pointer shape and if the application is slow, there is a delay between the time the cursor is positioned and the time the cursor shape is updated. Another problem is that for each pixel on the screen, a X11 protocol message must be sent to position the cursor, and then another message to query the  cursor shape, followed by receiving a message containing the cursor shape ID. All of this makes that imaging the clickmap is very slow...&lt;/p&gt;&lt;p&gt;A final problem is that the X11 protocol itself does not provide a way to query the current cursor shape. Luckily, there is an extension to the X11 protocol, called the Xfixes extension, which allows the retrieval of the current mouse pointer shape (for applications that take screenshots, or remote desktop software).&lt;/p&gt;&lt;p&gt;All in all, creating a "clickmap" of the current screen is not very practical because it is very slow. If the clickable hotspots on screen change (e.g. animated menus or whatever) while the clickmap is being imaged, theoutput image is trash.&lt;/p&gt;&lt;p&gt;Nevertheless, I present you with the code in case you want to play around with it, as well as a screenshot from a portion of my screen with its accompanying clickmap (both sized 1024x768). Successive pixels were queried with a delay of 50 microseconds. The entire imaging took 3m43s...&lt;/p&gt;&lt;p&gt;&lt;a href="http://data.singularity.be/clickmaps/getimage.c"&gt;http://data.singularity.be/clickmaps/getimage.c&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WtLVTf3Xyd4/TwDdrY62OEI/AAAAAAAAAMc/8eWon25xOTo/s1600/Screenshot-14.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="240" width="320" src="http://2.bp.blogspot.com/-WtLVTf3Xyd4/TwDdrY62OEI/AAAAAAAAAMc/8eWon25xOTo/s320/Screenshot-14.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-XRNJv4n2Q0E/TwDdy7a2xuI/AAAAAAAAAMo/ZhG5Cz652Iw/s1600/Screenshot-14-meta-3m43s.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="240" width="320" src="http://4.bp.blogspot.com/-XRNJv4n2Q0E/TwDdy7a2xuI/AAAAAAAAAMo/ZhG5Cz652Iw/s320/Screenshot-14-meta-3m43s.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5158923024660370961?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5158923024660370961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5158923024660370961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5158923024660370961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5158923024660370961'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2012/01/side-project-generting-clickmaps-as.html' title='Side project: generating clickmaps as meta-data for screenshots'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-WtLVTf3Xyd4/TwDdrY62OEI/AAAAAAAAAMc/8eWon25xOTo/s72-c/Screenshot-14.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-8426802467791413180</id><published>2012-01-01T19:29:00.002+01:00</published><updated>2012-01-01T19:35:32.066+01:00</updated><title type='text'>Best wishes for 2012!</title><content type='html'>Wow, do I suck at blogging&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8426802467791413180?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8426802467791413180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8426802467791413180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8426802467791413180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8426802467791413180'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2012/01/best-wishes-for-2012.html' title='Best wishes for 2012!'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1558529700795756109</id><published>2011-01-31T08:21:00.011+01:00</published><updated>2011-01-31T09:43:10.714+01:00</updated><title type='text'>VPS Comparison</title><content type='html'>In the past, I've used hosting provided by the university for a couple of my projects. With the closure of &lt;a href="http://www.acl.be"&gt;ACL&lt;/a&gt; however, that option is getting more difficult.&lt;br /&gt;&lt;br /&gt;In addition, The hosting solution used by &lt;a href="http://www.overthewire.org"&gt;OverTheWire&lt;/a&gt; is a dedicated server, on which we run our own virtualization platform. The resources on that server are getting exhausted.&lt;br /&gt;&lt;br /&gt;So I'm faced with a couple of solutions, the most realistic being to either get another dedicated server or get a bunch of virtual private servers. Since a dedicated server is too expensive to buy at once (I don't have 10 projects ligned up to fill a single dedicated server at once), I decided to go for VPS.&lt;br /&gt;&lt;br /&gt;There are a lot of VPS providers out there, and a lot of virtualization platforms. For the OverTheWire projects, I prefer Xen since that allows to run a custom kernel. For other projects, I don't really care that much, but it seems OpenVZ is a standard container-based solution.&lt;br /&gt;&lt;br /&gt;So, I set out to find the optimal hosting for my projects. I extracted the list of VPS providers that were listed on &lt;a href="http://lowendbox.com"&gt;LowEndBox&lt;/a&gt; and went over them one by one. Most VPS providers have more than one offer and I decided to look at the most common configuration to make it easier to compare.&lt;br /&gt;&lt;br /&gt;This is the list of requirements:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;as close to 512MB of dedicated (as opposed to burstable) RAM as possible&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Xen VPS is preferred over OpenVZ over any other platform&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unmanaged is preferred, we like to do thing ourselves&lt;/li&gt;&lt;br /&gt;&lt;li&gt;PayPal payment is preferred&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Should allow setting reverse DNS&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Should have some out-of-band console&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The list contains 287 entries of which 57 providers were down/out of business/no longer support VPS.&lt;br /&gt;&lt;br /&gt;I thought it would be an interesting excersise, with results that would be interesting to a lot of people. So I made it a community effort by putting up a google spreadsheet where people could help fill in the details.&lt;br /&gt;&lt;br /&gt;The result of the survey can be found here: &lt;a href="https://spreadsheets.google.com/ccc?key=0AimYZRRoPGFidFhPTF9TdXRneVFxdkREeG5OcFhFZHc&amp;authkey=CLDn6p8J&amp;hl=en"&gt;https://spreadsheets.google.com/ccc?key=0AimYZRRoPGFidFhPTF9TdXRneVFxdkREeG5OcFhFZHc&amp;authkey=CLDn6p8J&amp;hl=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Although a lot of fields are not filled in, like whether a VPS accepts PayPal, does rDNS or has a console (VPS providers should be more clear about this type of thing on their website), it is clear that there is a wide variety of solutions. Especially in price.&lt;br /&gt;&lt;br /&gt;&lt;table border=1&gt;&lt;br /&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;                &lt;th&gt;Xen&lt;/th&gt;    &lt;th&gt;OpenVZ&lt;/th&gt;    &lt;th&gt;Other&lt;/th&gt;&lt;th&gt;Unknown&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th&gt;Amount&lt;/th&gt;          &lt;td&gt;85&lt;/td&gt;     &lt;td&gt;81&lt;/td&gt;        &lt;td&gt;10&lt;/td&gt;&lt;td&gt;54&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th&gt;Cheapest&lt;/th&gt;        &lt;td&gt; 6 $&lt;/td&gt;   &lt;td&gt;1.66 $&lt;/td&gt;    &lt;td&gt;5.211 $(vServer)&lt;/td&gt;&lt;td&gt;5 $&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th&gt;Most expensive&lt;/th&gt;  &lt;td&gt;120 $&lt;/td&gt;  &lt;td&gt;60.125 $&lt;/td&gt;  &lt;td&gt;49.95 $ (HyperV)&lt;/td&gt;&lt;td&gt;63.46 $&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1558529700795756109?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1558529700795756109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1558529700795756109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1558529700795756109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1558529700795756109'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2011/01/vps-comparison.html' title='VPS Comparison'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-4698674064797680918</id><published>2011-01-15T21:17:00.004+01:00</published><updated>2011-01-15T21:30:26.312+01:00</updated><title type='text'>ValueGuard: Protection of native applications against data-only buffer overflows</title><content type='html'>I graduated for the second time last year, getting me the grade of "Master in Engineering Science - Computer Science" and the title of engineer (ir.). My master thesis was in the area of computer security, specifically lowlevel security. The goal was to create a countermeasure to defend native applications (written in C) from data-only (or non-control-data) buffer overflows.&lt;br /&gt;&lt;br /&gt;The text of my master thesis can be found here: &lt;a href="http://data.singularity.be/Trashcan/thesis2010/steven.van.acker-2010-06-16.hyperref.pdf"&gt;steven.van.acker-2010-06-16.hyperref.pdf&lt;/a&gt;.&lt;br /&gt;I also made a live-CD based on Ubuntu 10.04 that can be found here: &lt;a href="http://data.singularity.be/Trashcan/thesis2010/livecd.iso"&gt;livecd.iso&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The reason I could not blog about this untill now, is because my promotor wanted to keep it quiet last year, and because the work also got published at &lt;a href="http://www.cs.wisc.edu/iciss10/"&gt;ICISS 2010&lt;/a&gt;. The countermeasure was rewritten a bit, taking into account the lessons learned from the benchmarks in my thesis. The result is ValueGuard.&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Code injection attacks that target the control-data of an application have been prevalent amongst exploit writers for over 20 years. Today however, these attacks are getting increasingly harder for attackers to successfully exploit due to numerous countermeasures that are deployed by modern operating systems. We believe that this fact will drive exploit writers away from classic control-data attacks and towards data-only attacks. In data-only attacks, the attacker changes key data structures that are used by the program’s logic and thus forces the control flow into existing parts of the program that would be otherwise unreachable, e.g. overflowing into a boolean variable that states whether the current user is an administrator or not and setting it to “true” thereby gaining access to the administrative functions of the program.&lt;br /&gt;In this paper we present ValueGuard, a canary-based defense mechanism to protect applications against data-only buffer overflow attacks. ValueGuard inserts canary values in front of all variables and verifies their integrity whenever these variables are used. In this way, if a buffer overflow has occurred that changed the contents of a variable, ValueGuard will detect it since the variable’s canary will have also been changed. The countermeasure itself can be used either as a testing tool for applications before their final deployment or it can be applied selectively to legacy or high-risk parts of programs that we want to protect at run-time, without incurring extra time-penalties to the rest of the applications.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Link to the ValueGuard paper: &lt;a href="http://data.singularity.be/Trashcan/thesis2010/valueguard.pdf"&gt;valueguard.pdf&lt;/a&gt;&lt;br /&gt;Link to the same paper from Springer: &lt;a href="http://www.springerlink.com/content/p26243813157387x/"&gt;http://www.springerlink.com/content/p26243813157387x/&lt;/a&gt;&lt;br /&gt;Link to the LIRIAS database at the university: &lt;a href="https://lirias.kuleuven.be/handle/123456789/289765"&gt;https://lirias.kuleuven.be/handle/123456789/289765&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4698674064797680918?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4698674064797680918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4698674064797680918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4698674064797680918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4698674064797680918'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2011/01/valueguard-protection-of-native.html' title='ValueGuard: Protection of native applications against data-only buffer overflows'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-5489745443138747550</id><published>2011-01-09T13:12:00.006+01:00</published><updated>2011-01-09T15:02:05.126+01:00</updated><title type='text'>New year's resolutions 2011</title><content type='html'>For some reason, my resolutions for a new year mostly get implemented without any active work by me.&lt;br /&gt;It's quite odd. Maybe I am aware of these objectives subconsiously ? Let's hope that this trend continues!&lt;br /&gt;&lt;br /&gt;My newyear's resolutions for 2011 (in no particular order):&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Build the wargame for HES2011&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Apparently, the &lt;a href="http://hes2010.labs.overthewire.org"&gt;HES2010 wargame&lt;/a&gt; that I created last year was an overwhelming success. So much so that a lot of people have asked me to create the wargame for &lt;a href="http://www.hackitoergosum.org"&gt;HES2011&lt;/a&gt; too. I was already working on it of course, but it's still nice that people request it explicitely ;)&lt;br /&gt;&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Eat less meat!&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;At the Dranouter festival in August 2010, I saw an interesting presentation from a guy who said that if everyone would be a vegetarian half of the time, that would be the same as half the population being a vegetarian. Less animals get killed and noone has to stop eating meat completely. A very appealing thought! So, I will make an attempt at eating less meat. Maybe I can participate in the &lt;a href="http://www.donderdagveggiedag.be"&gt;"Vegetarian Thursday"&lt;/a&gt; initiative&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Visit Australia&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;If I have enough vacation days that is... I would like to visit Australia and meet up with some friends there. Maybe I can go to Ruxcon 2011 :)&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Continue work on my CNC machine&lt;/dt&gt;&lt;br /&gt;&lt;dt&gt;Do some decent work on my PhD&lt;/dt&gt;&lt;br /&gt;&lt;dt&gt;Find a new house&lt;/dt&gt;&lt;br /&gt;&lt;dt&gt;Release information on my master thesis from last year&lt;/dt&gt;&lt;br /&gt;&lt;dt&gt;play more party games&lt;/dt&gt;&lt;br /&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5489745443138747550?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5489745443138747550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5489745443138747550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5489745443138747550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5489745443138747550'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2011/01/for-some-reason-my-resolutions-for-new.html' title='New year&apos;s resolutions 2011'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-7718850216185442674</id><published>2011-01-02T09:04:00.001+01:00</published><updated>2011-01-02T09:04:29.351+01:00</updated><title type='text'>does this thing still work ?</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7718850216185442674?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7718850216185442674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7718850216185442674' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7718850216185442674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7718850216185442674'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2011/01/does-this-thing-still-work.html' title='does this thing still work ?'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-6227912034420401588</id><published>2010-01-28T01:52:00.005+01:00</published><updated>2010-01-28T01:53:47.788+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>exams are done</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I only had 1 exam, but at least its over and I think it went well. The last couple weeks I've finished GTA4 on my PS3 and did some work on my thesis. I finished a buttugly version of Conway's game of life using dirty pointer arithmatic tricks.&lt;br /&gt;&lt;br /&gt;The idea was to make spaghetti code, just so I could have a testcase for my thesis :)&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I only had 1 exam, but at least its over and I think it went well. The last couple weeks I've finished GTA4 on my PS3 and did some work on my thesis. I finished a buttugly version of Conway's game of life using dirty pointer arithmatic tricks.&lt;br /&gt;&lt;br /&gt;The idea was to make spaghetti code, just so I could have a testcase for my thesis :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-6227912034420401588?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/6227912034420401588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=6227912034420401588' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6227912034420401588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6227912034420401588'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2010/01/exams-are-done.html' title='exams are done'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-6864273129026370744</id><published>2010-01-07T21:32:00.002+01:00</published><updated>2010-01-07T21:35:56.182+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OverTheWire'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>the wargames are back</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;The reinstallation of victoria was successful. 2 of the 4 virtual machines on it were converted and started without much trouble. The 3rd however was very troublesome. The VMWare snapshot would not load in virtualbox and I feared I had damaged the (original) disk by trying to boot from it. After a lot of fiddling I managed to dump the disk with all snapshots merged, converted it back to vmware format and loaded it in virtualbox.&lt;br /&gt;&lt;br /&gt;The final virtual machine I resurrected was the games machine which hosts 4 wargames: vortex, semtex, drifter and krypton.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;The reinstallation of victoria was successful. 2 of the 4 virtual machines on it were converted and started without much trouble. The 3rd however was very troublesome. The VMWare snapshot would not load in virtualbox and I feared I had damaged the (original) disk by trying to boot from it. After a lot of fiddling I managed to dump the disk with all snapshots merged, converted it back to vmware format and loaded it in virtualbox.&lt;br /&gt;&lt;br /&gt;The final virtual machine I resurrected was the games machine which hosts 4 wargames: vortex, semtex, drifter and krypton.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-6864273129026370744?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/6864273129026370744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=6864273129026370744' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6864273129026370744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6864273129026370744'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2010/01/wargames-are-back.html' title='the wargames are back'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-8692833814307765277</id><published>2010-01-04T00:04:00.002+01:00</published><updated>2010-01-04T00:18:00.433+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OverTheWire'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>getting rid of gentoo</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;My good intentions to have the OTW wargames up and running by the end of the week are being tampered by bad fortune in the form of an outdated gentoo installation.&lt;br /&gt;We currently use a VMWare setup hosted by an old gentoo installation, The gentoo installation is so old that it can't even upgrade itself. I've tried it with some sad results. After it destroyed its own portage system and I had to revive it, it would not compile virtualbox-ose because of conflicts among bash, portage, util-linux and coreutils. Installing virtualbox-bin worked, but the kernel module required by virtualbox wouldn't load because the kernel didn't export the correct symbols.&lt;br /&gt;&lt;br /&gt;I recompiled the kernel but didn't have the guts to reboot the server because if it doesn't come back, there is nothing I can do (I have no console access or anyone to contact at the datacenter)&lt;br /&gt;&lt;br /&gt;Finally, I tried to install qemu, which kindof worked, except that qemu segfaulted all the time.&lt;br /&gt;&lt;br /&gt;So I'm fed up with gentoo and will attempt an exciting "viral" hack: repurpose the swap partition to install a bootstrap linux and boot into that, and then erase the root partition and install a new linux on it.&lt;br /&gt;&lt;br /&gt;Before I do any of that, I want to test out this procedure on a local setup.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;My good intentions to have the OTW wargames up and running by the end of the week are being tampered by bad fortune in the form of an outdated gentoo installation.&lt;br /&gt;We currently use a VMWare setup hosted by an old gentoo installation, The gentoo installation is so old that it can't even upgrade itself. I've tried it with some sad results. After it destroyed its own portage system and I had to revive it, it would not compile virtualbox-ose because of conflicts among bash, portage, util-linux and coreutils. Installing virtualbox-bin worked, but the kernel module required by virtualbox wouldn't load because the kernel didn't export the correct symbols.&lt;br /&gt;&lt;br /&gt;I recompiled the kernel but didn't have the guts to reboot the server because if it doesn't come back, there is nothing I can do (I have no console access or anyone to contact at the datacenter)&lt;br /&gt;&lt;br /&gt;Finally, I tried to install qemu, which kindof worked, except that qemu segfaulted all the time.&lt;br /&gt;&lt;br /&gt;So I'm fed up with gentoo and will attempt an exciting "viral" hack: repurpose the swap partition to install a bootstrap linux and boot into that, and then erase the root partition and install a new linux on it.&lt;br /&gt;&lt;br /&gt;Before I do any of that, I want to test out this procedure on a local setup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8692833814307765277?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8692833814307765277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8692833814307765277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8692833814307765277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8692833814307765277'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2010/01/getting-rid-of-gentoo.html' title='getting rid of gentoo'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-8812672725760745902</id><published>2010-01-01T13:01:00.002+01:00</published><updated>2010-01-01T13:33:52.007+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='TijdTeVeel'/><category scheme='http://www.blogger.com/atom/ns#' term='OverTheWire'/><category scheme='http://www.blogger.com/atom/ns#' term='Vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Happy newyear !</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;For the last couple of weeks, my fingers have been itching to work on a bunch of projects and keep a log about them. Then it occurred to me that I have a blog and that I managed to neglect it !&lt;br /&gt;So let me fix that right now.&lt;br /&gt;&lt;br /&gt;The past 6 months have been quite active.&lt;br /&gt;&lt;br /&gt;From July through October, I was a member of the K.U.Leuven iGEM team creating the essencia coli bacterium that would create vanillin based on the amount of blue light received. The ingenious part of this bacterium was that it included a feedback loop to regulate the amount of vanillin in the environment.&lt;br /&gt;&lt;br /&gt;In August I spent all of my time studying for 2 exams I had to take again: Systems theory and Thermodynamics. I passed both exams very well, but the exams rate as some of the worst experiences I've had taking exams.&lt;br /&gt;&lt;br /&gt;At the end of october, beginning of november I went to MIT in Boston for the iGEM jamboree. Afterwards, most of the team went to New York. It was all great fun :) Pictures are on facebook&lt;br /&gt;&lt;br /&gt;I started working on my thesis in september. It was first about lowlevel security in android smartphones, but the subject has now been altered to lowlevel attacks and defenses in general. Specifically, I'm doing research on data only attacks, but I'm not allowed to blog about it.&lt;br /&gt;&lt;br /&gt;I'm now taking the master in engineering sciences: computerscience curriculum in 1 year, and the outlook is good. I plan to finish by june 2010. I've enrolled in the following courses:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Capita selecta: human-machine communication&lt;/li&gt;&lt;br /&gt;&lt;li&gt;French in the enterprise environment&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Formal systems and applications&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Athens course on "remotely controlled physics laboratories" at IST in Lisbon&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Internet infrastructure&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Multiagent systems&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The first 2 courses run both semesters, the next 2 are in the 1st semester, the last 2 in the second semester.&lt;br /&gt;&lt;br /&gt;The athens course from 14-21 november was very nice. More than the course, I appreciated the social interaction with my fellow students, all from foreign universities.&lt;br /&gt;&lt;br /&gt;What else ?&lt;br /&gt;&lt;br /&gt;I'm still active in the OverTheWire community. There was a breakin in one of the wargames servers and the cracker sniffed all network traffic. Because of this, the wargames server was taken down and is still not up. I am revising the current network topology and plan to have everything back up and running by the end of this week (fingers crossed)&lt;br /&gt;&lt;br /&gt;I'm also planning to start working on a DIY CNC machine, but I don't know when those plans will become reality.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;For the last couple of weeks, my fingers have been itching to work on a bunch of projects and keep a log about them. Then it occurred to me that I have a blog and that I managed to neglect it !&lt;br /&gt;So let me fix that right now.&lt;br /&gt;&lt;br /&gt;The past 6 months have been quite active.&lt;br /&gt;&lt;br /&gt;From July through October, I was a member of the K.U.Leuven iGEM team creating the essencia coli bacterium that would create vanillin based on the amount of blue light received. The ingenious part of this bacterium was that it included a feedback loop to regulate the amount of vanillin in the environment.&lt;br /&gt;&lt;br /&gt;In August I spent all of my time studying for 2 exams I had to take again: Systems theory and Thermodynamics. I passed both exams very well, but the exams rate as some of the worst experiences I've had taking exams.&lt;br /&gt;&lt;br /&gt;At the end of october, beginning of november I went to MIT in Boston for the iGEM jamboree. Afterwards, most of the team went to New York. It was all great fun :) Pictures are on facebook&lt;br /&gt;&lt;br /&gt;I started working on my thesis in september. It was first about lowlevel security in android smartphones, but the subject has now been altered to lowlevel attacks and defenses in general. Specifically, I'm doing research on data only attacks, but I'm not allowed to blog about it.&lt;br /&gt;&lt;br /&gt;I'm now taking the master in engineering sciences: computerscience curriculum in 1 year, and the outlook is good. I plan to finish by june 2010. I've enrolled in the following courses:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Capita selecta: human-machine communication&lt;/li&gt;&lt;br /&gt;&lt;li&gt;French in the enterprise environment&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Formal systems and applications&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Athens course on "remotely controlled physics laboratories" at IST in Lisbon&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Internet infrastructure&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Multiagent systems&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The first 2 courses run both semesters, the next 2 are in the 1st semester, the last 2 in the second semester.&lt;br /&gt;&lt;br /&gt;The athens course from 14-21 november was very nice. More than the course, I appreciated the social interaction with my fellow students, all from foreign universities.&lt;br /&gt;&lt;br /&gt;What else ?&lt;br /&gt;&lt;br /&gt;I'm still active in the OverTheWire community. There was a breakin in one of the wargames servers and the cracker sniffed all network traffic. Because of this, the wargames server was taken down and is still not up. I am revising the current network topology and plan to have everything back up and running by the end of this week (fingers crossed)&lt;br /&gt;&lt;br /&gt;I'm also planning to start working on a DIY CNC machine, but I don't know when those plans will become reality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8812672725760745902?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8812672725760745902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8812672725760745902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8812672725760745902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8812672725760745902'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2010/01/happy-newyear.html' title='Happy newyear !'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-455091317683491985</id><published>2009-07-06T08:01:00.003+02:00</published><updated>2009-07-06T08:18:42.094+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>PIC16f627A with RS232 and sdcc</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Programming PICs in assembly can be challenging, but it gets to be a drag after a while. Especially when doing serial communications you start wondering: "wouldn't it be great if all this fiddly crap was in some kind of library ?"&lt;br /&gt;&lt;br /&gt;I've been playing with sdcc (Small Device C Compiler) to write code for the PIC. Unfortunately at the time I was playing with it (in the middle of exams), there was no library code to do RS232 for the 16f627a (at least not in a blatantly obvious way). So instead of asking for directions like any sane person would do, I dove right in and wrote it myself.&lt;br /&gt;&lt;br /&gt;Now that I've upgraded to Ubuntu Jaunty (which is such a resource hog btw), I wonder if the sdcc people have included some code for the 16f627a but haven't checked.&lt;br /&gt;&lt;br /&gt;In any case, I'll post the code here for all of you to laugh at and for me to have a backup for when my harddisk dies (any minute now)&lt;br /&gt;&lt;br /&gt;lib.h:&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;#ifndef __LIB_H&lt;br /&gt;#define __LIB_H&lt;br /&gt;&lt;br /&gt;#define USART_TX_INT_ON   0xff&lt;br /&gt;#define USART_TX_INT_OFF  0x7f&lt;br /&gt;&lt;br /&gt;#define USART_RX_INT_ON   0xff&lt;br /&gt;#define USART_RX_INT_OFF  0xbf&lt;br /&gt;&lt;br /&gt;#define USART_BRGH_HIGH   0xff&lt;br /&gt;#define USART_BRGH_LOW    0xef&lt;br /&gt;&lt;br /&gt;#define USART_CONT_RX     0xff&lt;br /&gt;#define USART_SINGLE_RX   0xf7&lt;br /&gt;&lt;br /&gt;#define USART_SYNC_MASTER 0xff&lt;br /&gt;#define USART_SYNC_SLAVE  0xfb&lt;br /&gt;&lt;br /&gt;#define USART_NINE_BIT    0xff&lt;br /&gt;#define USART_EIGHT_BIT   0xfd&lt;br /&gt;&lt;br /&gt;#define USART_SYNCH_MODE  0xff&lt;br /&gt;#define USART_ASYNCH_MODE 0xfe&lt;br /&gt;&lt;br /&gt;void usart_open(unsigned char, unsigned int);&lt;br /&gt;&lt;br /&gt;void usart_putc(unsigned char);&lt;br /&gt;unsigned char usart_getc(void);&lt;br /&gt;&lt;br /&gt;unsigned char usart_busy(void);&lt;br /&gt;unsigned char usart_drdy(void);&lt;br /&gt;&lt;br /&gt;unsigned char usart_wait_and_read(void);&lt;br /&gt;void usart_wait_and_write(unsigned char);&lt;br /&gt;&lt;br /&gt;#endif /* __LIB_H */&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;lib.c:&lt;br /&gt;[PRE]&lt;br /&gt;#include &amp;lt;pic/pic16f627a.h&amp;gt;&lt;br /&gt;#include "lib.h"&lt;br /&gt;&lt;br /&gt;void usart_open(unsigned char config, unsigned int spbrg) { /* {{{ */&lt;br /&gt;  TXSTA = 0;           // Reset USART registers to POR state&lt;br /&gt;  RCSTA = 0;&lt;br /&gt; &lt;br /&gt;  if(config &amp; ~USART_ASYNCH_MODE)&lt;br /&gt;   SYNC = 1;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_EIGHT_BIT) {&lt;br /&gt;    TX9 = 1;&lt;br /&gt;    RX9 = 1;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_SYNC_SLAVE)&lt;br /&gt;    CSRC = 1;&lt;br /&gt;&lt;br /&gt;  /*&lt;br /&gt;  if(config &amp; ~USART_SINGLE_RX)&lt;br /&gt;    CREN = 1;&lt;br /&gt;  else &lt;br /&gt;    SREN = 1;&lt;br /&gt;  */&lt;br /&gt;&lt;br /&gt;  CREN = 1;&lt;br /&gt;  SREN = 1;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_BRGH_LOW)&lt;br /&gt;    BRGH = 1;&lt;br /&gt;  else &lt;br /&gt;    BRGH = 0;&lt;br /&gt;&lt;br /&gt;  /* TX interrupts */&lt;br /&gt;  TXIF = 0;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_RX_INT_OFF)&lt;br /&gt;    RCIE = 1;&lt;br /&gt;  else &lt;br /&gt;    RCIE = 0;&lt;br /&gt;&lt;br /&gt;  /* RX interrupts */&lt;br /&gt;  RCIF = 0;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_TX_INT_OFF)&lt;br /&gt;    TXIE = 1;&lt;br /&gt;  else &lt;br /&gt;    TXIE = 0;&lt;br /&gt;&lt;br /&gt;  SPBRG = (char)spbrg;&lt;br /&gt;&lt;br /&gt;  TXEN = 1;&lt;br /&gt;  SPEN = 1;&lt;br /&gt;&lt;br /&gt;  TRISB1 = 1;  // set B1 to transmit&lt;br /&gt;  TRISB2 = 0;  // set B2 to receive&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;&lt;br /&gt;void usart_putc(unsigned char dat) { /* {{{ */&lt;br /&gt;  //if(TX9) {&lt;br /&gt;  //  TX9D = 0;&lt;br /&gt;  //  if(USART_Status.TX_NINE)&lt;br /&gt;  //    TX9D = 1;&lt;br /&gt;  //}&lt;br /&gt;&lt;br /&gt;  TXREG = dat;      // Write the data byte to the USART&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;unsigned char usart_getc(void) { /* {{{ */&lt;br /&gt;  return RCREG;&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;&lt;br /&gt;unsigned char usart_busy(void) { /* {{{ */&lt;br /&gt;  return !TRMT;&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;unsigned char usart_drdy(void) { /* {{{ */&lt;br /&gt;    return RCIF;&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;&lt;br /&gt;unsigned char usart_wait_and_read(void) { /* {{{ */&lt;br /&gt;    while(!usart_drdy());&lt;br /&gt;    return usart_getc();&lt;br /&gt;} &lt;br /&gt;/* }}} */&lt;br /&gt;void usart_wait_and_write(unsigned char dat) { /* {{{ */&lt;br /&gt;    while(usart_busy());&lt;br /&gt;    usart_putc(dat);&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;test.c :&lt;br /&gt;[PRE]&lt;br /&gt;#include &amp;lt;pic/pic16f627a.h&amp;gt;&lt;br /&gt;#include "lib.h"&lt;br /&gt;&lt;br /&gt;#define GPSIM_20Mhz_2400baud_BRGHlow 0x81&lt;br /&gt;#define GPSIM_20Mhz_9600baud_BRGHlow 0x20&lt;br /&gt;&lt;br /&gt;#define PIC_4Mhz_2400baud_BRGHlow 0x19&lt;br /&gt;#define PIC_4Mhz_9600baud_BRGHhigh 0x19&lt;br /&gt;&lt;br /&gt;static __code unsigned short __at(0x2007) _conf = _INTRC_OSC_NOCLKOUT;&lt;br /&gt;&lt;br /&gt;unsigned char data_num[] = {&lt;br /&gt;    0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;unsigned char data_alpha[] = {&lt;br /&gt;    0x77, 0x7c, 0x58, 0x5e, 0x79, 0x71&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//unsigned char hex[] = "0123456789ABCDEF"; &lt;- this doesn't work yet&lt;br /&gt;unsigned char hex[] = {&lt;br /&gt;    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;    unsigned char c = 'G';&lt;br /&gt;    usart_open(USART_TX_INT_OFF &amp; USART_RX_INT_OFF &amp; USART_ASYNCH_MODE &amp; USART_BRGH_LOW &amp; USART_EIGHT_BIT, GPSIM_20Mhz_2400baud_BRGHlow);&lt;br /&gt;&lt;br /&gt;    TRISA = 0;&lt;br /&gt;&lt;br /&gt;    for (;;)&lt;br /&gt;    {&lt;br /&gt; c = usart_wait_and_read();&lt;br /&gt;&lt;br /&gt; if(c &gt;= 'A' &amp;&amp; c &lt;= 'F') {&lt;br /&gt;     PORTA = data_alpha[c - 'A'];&lt;br /&gt; } else {&lt;br /&gt;     if(c &gt;= '0' &amp;&amp; c &lt;= '9')&lt;br /&gt;         PORTA = data_num[c - '0'];&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; usart_wait_and_write(c);&lt;br /&gt; usart_wait_and_write(':');&lt;br /&gt; usart_wait_and_write(' ');&lt;br /&gt; usart_wait_and_write('0');&lt;br /&gt; usart_wait_and_write('x');&lt;br /&gt; usart_wait_and_write(hex[(c &amp; 0xf0) &gt;&gt; 4]);&lt;br /&gt; usart_wait_and_write(hex[c &amp; 0x0f]);&lt;br /&gt; usart_wait_and_write('\n');&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;env.conf :&lt;br /&gt;[PRE]&lt;br /&gt;# load the gpsim modules library. &lt;br /&gt;module lib /usr/lib/libgpsim_modules.so.0.0.0&lt;br /&gt;&lt;br /&gt;# creating an usart and connecting its TX pin to the PICs RX pin, allowing keyboard input&lt;br /&gt;module load usart U1&lt;br /&gt;node nct&lt;br /&gt;node ncr&lt;br /&gt;attach nct pin(portb1) U1.TXPIN&lt;br /&gt;attach ncr pin(portb2) U1.RXPIN&lt;br /&gt;U1.console = true&lt;br /&gt;U1.rxbaud = 2400&lt;br /&gt;U1.txbaud = 2400&lt;br /&gt;&lt;br /&gt;# creating a 7 segment led display and hooking it up to PORTA&lt;br /&gt;module load led_7segments L7&lt;br /&gt;node nl0 nl1 nl2 nl3 nl4 nl5 nl6&lt;br /&gt;attach nl0 pin(porta0) L7.seg0&lt;br /&gt;attach nl1 pin(porta1) L7.seg1&lt;br /&gt;attach nl2 pin(porta2) L7.seg2&lt;br /&gt;attach nl3 pin(porta3) L7.seg3&lt;br /&gt;attach nl4 pin(porta4) L7.seg4&lt;br /&gt;attach nl5 pin(porta5) L7.seg5&lt;br /&gt;attach nl6 pin(porta6) L7.seg6&lt;br /&gt;&lt;br /&gt;# tell the builtin scope in gpsim to monitor portb2&lt;br /&gt;# (in gpsim: Windows -&gt; Scope)&lt;br /&gt;scope.ch0="portb1"&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Makefile :&lt;br /&gt;[PRE]&lt;br /&gt;test.hex: test.o lib.o&lt;br /&gt; gplink \&lt;br /&gt;         -c \&lt;br /&gt;  -s /usr/share/gputils/lkr/16f627a.lkr \&lt;br /&gt;         -o $@ \&lt;br /&gt;         -m \&lt;br /&gt;         $^ \&lt;br /&gt;         -I /usr/share/sdcc/lib/pic \&lt;br /&gt;         pic16f627a.lib libsdcc.lib&lt;br /&gt;&lt;br /&gt;test.o: test.asm&lt;br /&gt; gpasm -c $&amp;lt;&lt;br /&gt;&lt;br /&gt;lib.o: lib.asm&lt;br /&gt; gpasm -c $&amp;lt;&lt;br /&gt;&lt;br /&gt;test.asm: test.c&lt;br /&gt; sdcc -S -mpic14 -p16f627a $&amp;lt;&lt;br /&gt;&lt;br /&gt;lib.asm: lib.c&lt;br /&gt; sdcc -S -mpic14 -p16f627a $&amp;lt;&lt;br /&gt;&lt;br /&gt;run:&lt;br /&gt; gpsim -c env.conf -s test.cod&lt;br /&gt;&lt;br /&gt;clean:&lt;br /&gt; rm -f *.cod *.hex *.lst *~ *.o *.asm *.cof *.map&lt;br /&gt;&lt;br /&gt;upload:&lt;br /&gt; ../K8048/k14 p test.hex&lt;br /&gt; ../K8048/k14 v test.hex&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;The code in test.c does RS232 in both directions. It takes a character and sends out the hex code for it. In addition, if the character is a hex digit (0123456789ABCDEF), it gets displayed on the 7 digit led display.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Programming PICs in assembly can be challenging, but it gets to be a drag after a while. Especially when doing serial communications you start wondering: "wouldn't it be great if all this fiddly crap was in some kind of library ?"&lt;br /&gt;&lt;br /&gt;I've been playing with sdcc (Small Device C Compiler) to write code for the PIC. Unfortunately at the time I was playing with it (in the middle of exams), there was no library code to do RS232 for the 16f627a (at least not in a blatantly obvious way). So instead of asking for directions like any sane person would do, I dove right in and wrote it myself.&lt;br /&gt;&lt;br /&gt;Now that I've upgraded to Ubuntu Jaunty (which is such a resource hog btw), I wonder if the sdcc people have included some code for the 16f627a but haven't checked.&lt;br /&gt;&lt;br /&gt;In any case, I'll post the code here for all of you to laugh at and for me to have a backup for when my harddisk dies (any minute now)&lt;br /&gt;&lt;br /&gt;lib.h:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#ifndef __LIB_H&lt;br /&gt;#define __LIB_H&lt;br /&gt;&lt;br /&gt;#define USART_TX_INT_ON   0xff&lt;br /&gt;#define USART_TX_INT_OFF  0x7f&lt;br /&gt;&lt;br /&gt;#define USART_RX_INT_ON   0xff&lt;br /&gt;#define USART_RX_INT_OFF  0xbf&lt;br /&gt;&lt;br /&gt;#define USART_BRGH_HIGH   0xff&lt;br /&gt;#define USART_BRGH_LOW    0xef&lt;br /&gt;&lt;br /&gt;#define USART_CONT_RX     0xff&lt;br /&gt;#define USART_SINGLE_RX   0xf7&lt;br /&gt;&lt;br /&gt;#define USART_SYNC_MASTER 0xff&lt;br /&gt;#define USART_SYNC_SLAVE  0xfb&lt;br /&gt;&lt;br /&gt;#define USART_NINE_BIT    0xff&lt;br /&gt;#define USART_EIGHT_BIT   0xfd&lt;br /&gt;&lt;br /&gt;#define USART_SYNCH_MODE  0xff&lt;br /&gt;#define USART_ASYNCH_MODE 0xfe&lt;br /&gt;&lt;br /&gt;void usart_open(unsigned char, unsigned int);&lt;br /&gt;&lt;br /&gt;void usart_putc(unsigned char);&lt;br /&gt;unsigned char usart_getc(void);&lt;br /&gt;&lt;br /&gt;unsigned char usart_busy(void);&lt;br /&gt;unsigned char usart_drdy(void);&lt;br /&gt;&lt;br /&gt;unsigned char usart_wait_and_read(void);&lt;br /&gt;void usart_wait_and_write(unsigned char);&lt;br /&gt;&lt;br /&gt;#endif /* __LIB_H */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;lib.c:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#include &amp;lt;pic/pic16f627a.h&amp;gt;&lt;br /&gt;#include "lib.h"&lt;br /&gt;&lt;br /&gt;void usart_open(unsigned char config, unsigned int spbrg) { /* {{{ */&lt;br /&gt;  TXSTA = 0;           // Reset USART registers to POR state&lt;br /&gt;  RCSTA = 0;&lt;br /&gt; &lt;br /&gt;  if(config &amp; ~USART_ASYNCH_MODE)&lt;br /&gt;   SYNC = 1;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_EIGHT_BIT) {&lt;br /&gt;    TX9 = 1;&lt;br /&gt;    RX9 = 1;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_SYNC_SLAVE)&lt;br /&gt;    CSRC = 1;&lt;br /&gt;&lt;br /&gt;  /*&lt;br /&gt;  if(config &amp; ~USART_SINGLE_RX)&lt;br /&gt;    CREN = 1;&lt;br /&gt;  else &lt;br /&gt;    SREN = 1;&lt;br /&gt;  */&lt;br /&gt;&lt;br /&gt;  CREN = 1;&lt;br /&gt;  SREN = 1;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_BRGH_LOW)&lt;br /&gt;    BRGH = 1;&lt;br /&gt;  else &lt;br /&gt;    BRGH = 0;&lt;br /&gt;&lt;br /&gt;  /* TX interrupts */&lt;br /&gt;  TXIF = 0;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_RX_INT_OFF)&lt;br /&gt;    RCIE = 1;&lt;br /&gt;  else &lt;br /&gt;    RCIE = 0;&lt;br /&gt;&lt;br /&gt;  /* RX interrupts */&lt;br /&gt;  RCIF = 0;&lt;br /&gt;&lt;br /&gt;  if(config &amp; ~USART_TX_INT_OFF)&lt;br /&gt;    TXIE = 1;&lt;br /&gt;  else &lt;br /&gt;    TXIE = 0;&lt;br /&gt;&lt;br /&gt;  SPBRG = (char)spbrg;&lt;br /&gt;&lt;br /&gt;  TXEN = 1;&lt;br /&gt;  SPEN = 1;&lt;br /&gt;&lt;br /&gt;  TRISB1 = 1;  // set B1 to transmit&lt;br /&gt;  TRISB2 = 0;  // set B2 to receive&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;&lt;br /&gt;void usart_putc(unsigned char dat) { /* {{{ */&lt;br /&gt;  //if(TX9) {&lt;br /&gt;  //  TX9D = 0;&lt;br /&gt;  //  if(USART_Status.TX_NINE)&lt;br /&gt;  //    TX9D = 1;&lt;br /&gt;  //}&lt;br /&gt;&lt;br /&gt;  TXREG = dat;      // Write the data byte to the USART&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;unsigned char usart_getc(void) { /* {{{ */&lt;br /&gt;  return RCREG;&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;&lt;br /&gt;unsigned char usart_busy(void) { /* {{{ */&lt;br /&gt;  return !TRMT;&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;unsigned char usart_drdy(void) { /* {{{ */&lt;br /&gt;    return RCIF;&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;&lt;br /&gt;unsigned char usart_wait_and_read(void) { /* {{{ */&lt;br /&gt;    while(!usart_drdy());&lt;br /&gt;    return usart_getc();&lt;br /&gt;} &lt;br /&gt;/* }}} */&lt;br /&gt;void usart_wait_and_write(unsigned char dat) { /* {{{ */&lt;br /&gt;    while(usart_busy());&lt;br /&gt;    usart_putc(dat);&lt;br /&gt;}&lt;br /&gt;/* }}} */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;test.c :&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#include &amp;lt;pic/pic16f627a.h&amp;gt;&lt;br /&gt;#include "lib.h"&lt;br /&gt;&lt;br /&gt;#define GPSIM_20Mhz_2400baud_BRGHlow 0x81&lt;br /&gt;#define GPSIM_20Mhz_9600baud_BRGHlow 0x20&lt;br /&gt;&lt;br /&gt;#define PIC_4Mhz_2400baud_BRGHlow 0x19&lt;br /&gt;#define PIC_4Mhz_9600baud_BRGHhigh 0x19&lt;br /&gt;&lt;br /&gt;static __code unsigned short __at(0x2007) _conf = _INTRC_OSC_NOCLKOUT;&lt;br /&gt;&lt;br /&gt;unsigned char data_num[] = {&lt;br /&gt;    0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;unsigned char data_alpha[] = {&lt;br /&gt;    0x77, 0x7c, 0x58, 0x5e, 0x79, 0x71&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//unsigned char hex[] = "0123456789ABCDEF"; &lt;- this doesn't work yet&lt;br /&gt;unsigned char hex[] = {&lt;br /&gt;    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;    unsigned char c = 'G';&lt;br /&gt;    usart_open(USART_TX_INT_OFF &amp; USART_RX_INT_OFF &amp; USART_ASYNCH_MODE &amp; USART_BRGH_LOW &amp; USART_EIGHT_BIT, GPSIM_20Mhz_2400baud_BRGHlow);&lt;br /&gt;&lt;br /&gt;    TRISA = 0;&lt;br /&gt;&lt;br /&gt;    for (;;)&lt;br /&gt;    {&lt;br /&gt; c = usart_wait_and_read();&lt;br /&gt;&lt;br /&gt; if(c &gt;= 'A' &amp;&amp; c &lt;= 'F') {&lt;br /&gt;     PORTA = data_alpha[c - 'A'];&lt;br /&gt; } else {&lt;br /&gt;     if(c &gt;= '0' &amp;&amp; c &lt;= '9')&lt;br /&gt;         PORTA = data_num[c - '0'];&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; usart_wait_and_write(c);&lt;br /&gt; usart_wait_and_write(':');&lt;br /&gt; usart_wait_and_write(' ');&lt;br /&gt; usart_wait_and_write('0');&lt;br /&gt; usart_wait_and_write('x');&lt;br /&gt; usart_wait_and_write(hex[(c &amp; 0xf0) &gt;&gt; 4]);&lt;br /&gt; usart_wait_and_write(hex[c &amp; 0x0f]);&lt;br /&gt; usart_wait_and_write('\n');&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;env.conf :&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;# load the gpsim modules library. &lt;br /&gt;module lib /usr/lib/libgpsim_modules.so.0.0.0&lt;br /&gt;&lt;br /&gt;# creating an usart and connecting its TX pin to the PICs RX pin, allowing keyboard input&lt;br /&gt;module load usart U1&lt;br /&gt;node nct&lt;br /&gt;node ncr&lt;br /&gt;attach nct pin(portb1) U1.TXPIN&lt;br /&gt;attach ncr pin(portb2) U1.RXPIN&lt;br /&gt;U1.console = true&lt;br /&gt;U1.rxbaud = 2400&lt;br /&gt;U1.txbaud = 2400&lt;br /&gt;&lt;br /&gt;# creating a 7 segment led display and hooking it up to PORTA&lt;br /&gt;module load led_7segments L7&lt;br /&gt;node nl0 nl1 nl2 nl3 nl4 nl5 nl6&lt;br /&gt;attach nl0 pin(porta0) L7.seg0&lt;br /&gt;attach nl1 pin(porta1) L7.seg1&lt;br /&gt;attach nl2 pin(porta2) L7.seg2&lt;br /&gt;attach nl3 pin(porta3) L7.seg3&lt;br /&gt;attach nl4 pin(porta4) L7.seg4&lt;br /&gt;attach nl5 pin(porta5) L7.seg5&lt;br /&gt;attach nl6 pin(porta6) L7.seg6&lt;br /&gt;&lt;br /&gt;# tell the builtin scope in gpsim to monitor portb2&lt;br /&gt;# (in gpsim: Windows -&gt; Scope)&lt;br /&gt;scope.ch0="portb1"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Makefile :&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;test.hex: test.o lib.o&lt;br /&gt; gplink \&lt;br /&gt;         -c \&lt;br /&gt;  -s /usr/share/gputils/lkr/16f627a.lkr \&lt;br /&gt;         -o $@ \&lt;br /&gt;         -m \&lt;br /&gt;         $^ \&lt;br /&gt;         -I /usr/share/sdcc/lib/pic \&lt;br /&gt;         pic16f627a.lib libsdcc.lib&lt;br /&gt;&lt;br /&gt;test.o: test.asm&lt;br /&gt; gpasm -c $&amp;lt;&lt;br /&gt;&lt;br /&gt;lib.o: lib.asm&lt;br /&gt; gpasm -c $&amp;lt;&lt;br /&gt;&lt;br /&gt;test.asm: test.c&lt;br /&gt; sdcc -S -mpic14 -p16f627a $&amp;lt;&lt;br /&gt;&lt;br /&gt;lib.asm: lib.c&lt;br /&gt; sdcc -S -mpic14 -p16f627a $&amp;lt;&lt;br /&gt;&lt;br /&gt;run:&lt;br /&gt; gpsim -c env.conf -s test.cod&lt;br /&gt;&lt;br /&gt;clean:&lt;br /&gt; rm -f *.cod *.hex *.lst *~ *.o *.asm *.cof *.map&lt;br /&gt;&lt;br /&gt;upload:&lt;br /&gt; ../K8048/k14 p test.hex&lt;br /&gt; ../K8048/k14 v test.hex&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The code in test.c does RS232 in both directions. It takes a character and sends out the hex code for it. In addition, if the character is a hex digit (0123456789ABCDEF), it gets displayed on the 7 digit led display.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-455091317683491985?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/455091317683491985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=455091317683491985' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/455091317683491985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/455091317683491985'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/07/pic16f627a-with-rs232-and-sdcc.html' title='PIC16f627A with RS232 and sdcc'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-7490308968691872040</id><published>2009-06-10T20:19:00.002+02:00</published><updated>2009-06-10T20:20:54.280+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lopen'/><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>10% en in de regen !</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;[LOPEN:254024,00:24:48,168,177]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;table style='border: 2px solid black; padding: 10px; background: #d0d0d0'&gt;&lt;tr&gt;&lt;td align=left colspan=3&gt;&lt;a style='text-decoration: none; font-weight: bold; color: black' href="http://www.afstandmeten.nl/index.php?userid=4600"&gt;My tracks&lt;/a&gt;&lt;/td&gt;&lt;td align=right&gt;&lt;a href="http://www.afstandmeten.nl/index.php?id=254024&amp;kmStep=1"&gt;&lt;img src="http://data.singularity.be/images/full/undated/gnome-zoom.png"&gt;&lt;/a&gt;&lt;a href="http://www.afstandmeten.nl/embed.php?id=254024&amp;kmStep=1"&gt;&lt;img src="http://data.singularity.be/images/full/undated/gnome-fullscreen.png"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=4&gt;&lt;iframe width="300px" height="300px" frameborder="1" scrolling="no" marginheight="0" marginwidth="0" src="http://www.afstandmeten.nl/embed.php?id=254024&amp;kmStep=1"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=right width=0%&gt;Time:&lt;/th&gt;&lt;td align=right&gt;00:24:48&lt;/td&gt;&lt;th align=right&gt;bpm (avg/max):&lt;/th&gt;&lt;td align=right&gt;168/177&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7490308968691872040?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7490308968691872040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7490308968691872040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7490308968691872040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7490308968691872040'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/06/10-en-in-de-regen.html' title='10% en in de regen !'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-3302870674292162872</id><published>2009-06-03T22:44:00.001+02:00</published><updated>2009-06-03T22:45:26.229+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lopen'/><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>Nog wa lopen</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;In't donker door een bos lopen is toch altijd iets speciaals&lt;br /&gt;&lt;br /&gt;[LOPEN:250390,00:24:14,165,177]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;In't donker door een bos lopen is toch altijd iets speciaals&lt;br /&gt;&lt;br /&gt;&lt;table style='border: 2px solid black; padding: 10px; background: #d0d0d0'&gt;&lt;tr&gt;&lt;td align=left colspan=3&gt;&lt;a style='text-decoration: none; font-weight: bold; color: black' href="http://www.afstandmeten.nl/index.php?userid=4600"&gt;My tracks&lt;/a&gt;&lt;/td&gt;&lt;td align=right&gt;&lt;a href="http://www.afstandmeten.nl/index.php?id=250390&amp;kmStep=1"&gt;&lt;img src="http://data.singularity.be/images/full/undated/gnome-zoom.png"&gt;&lt;/a&gt;&lt;a href="http://www.afstandmeten.nl/embed.php?id=250390&amp;kmStep=1"&gt;&lt;img src="http://data.singularity.be/images/full/undated/gnome-fullscreen.png"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=4&gt;&lt;iframe width="300px" height="300px" frameborder="1" scrolling="no" marginheight="0" marginwidth="0" src="http://www.afstandmeten.nl/embed.php?id=250390&amp;kmStep=1"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=right width=0%&gt;Time:&lt;/th&gt;&lt;td align=right&gt;00:24:14&lt;/td&gt;&lt;th align=right&gt;bpm (avg/max):&lt;/th&gt;&lt;td align=right&gt;165/177&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-3302870674292162872?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/3302870674292162872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=3302870674292162872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3302870674292162872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3302870674292162872'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/06/nog-wa-lopen.html' title='Nog wa lopen'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-7658217254531223049</id><published>2009-06-03T00:02:00.003+02:00</published><updated>2009-06-03T00:06:58.480+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TijdTeVeel'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Breaking the Click Challenge v2.0 game on facebook</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Breaking &lt;a href="http://apps.facebook.com/click_challenge_vtwo/?ref=nf"&gt;this game&lt;/a&gt; is a lot easier than Bejeweld Blitz. The score is sent with a GET request.&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;http://apps.facebook.com/click_challenge_vtwo/showscore.php?t=1&amp;c=544325099909vf32345hfgfg5435f0486367&amp;r=fd55507070&amp;fdgdf=33459&amp;htu=300045&amp;vevr=34008725320&amp;ggrt+sf&amp;score=445gdfg2g2452456&amp;gfhljkm3498&amp;dgfgd=d0bsdd-sfg5-j334-562mxf32-s&amp;s100&amp;s=09&amp;s=7988&amp;c=vf35h&amp;b=23&amp;9454&amp;grfd=45&amp;fg=tyj&amp;3g&amp;dgfgd=20000&amp;3vdhj=43005&amp;oipedv=bsddsfg&amp;bbf=g45j32mxf32&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;The field that needs changing is called dgfgd and is the score you want times 40. In this case, I wanted to set 500, so the field is set to 20000. The maximum seems to be 700&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Breaking &lt;a href="http://apps.facebook.com/click_challenge_vtwo/?ref=nf"&gt;this game&lt;/a&gt; is a lot easier than Bejeweld Blitz. The score is sent with a GET request.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;http://apps.facebook.com/click_challenge_vtwo/showscore.php?t=1&amp;c=544325099909vf32345hfgfg5435f0486367&amp;r=fd55507070&amp;fdgdf=33459&amp;htu=300045&amp;vevr=34008725320&amp;ggrt+sf&amp;score=445gdfg2g2452456&amp;gfhljkm3498&amp;dgfgd=d0bsdd-sfg5-j334-562mxf32-s&amp;s100&amp;s=09&amp;s=7988&amp;c=vf35h&amp;b=23&amp;9454&amp;grfd=45&amp;fg=tyj&amp;3g&amp;dgfgd=20000&amp;3vdhj=43005&amp;oipedv=bsddsfg&amp;bbf=g45j32mxf32&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The field that needs changing is called dgfgd and is the score you want times 40. In this case, I wanted to set 500, so the field is set to 20000. The maximum seems to be 700&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7658217254531223049?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7658217254531223049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7658217254531223049' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7658217254531223049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7658217254531223049'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/06/breaking-click-challenge-v20-game-on.html' title='Breaking the Click Challenge v2.0 game on facebook'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-1320829598080909539</id><published>2009-06-02T09:09:00.003+02:00</published><updated>2009-06-02T09:14:24.156+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>memorable quote</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;from &lt;a href="http://www.amazon.com/Advanced-Global-Illumination-Philip-Dutre/dp/1568813074"&gt;Advanced Global Illumination 2nd edition&lt;/a&gt; page 262:&lt;br /&gt;[PRE]&lt;br /&gt;"These expressions look much more frightening than they actually are."&lt;br /&gt;[/PRE]&lt;br /&gt;(in reference to the rendering equation in the presence of participating media)&lt;br /&gt;&lt;br /&gt;That's right, FRIGHTENING! (It really isn't that bad)&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;from &lt;a href="http://www.amazon.com/Advanced-Global-Illumination-Philip-Dutre/dp/1568813074"&gt;Advanced Global Illumination 2nd edition&lt;/a&gt; page 262:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;"These expressions look much more frightening than they actually are."&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;(in reference to the rendering equation in the presence of participating media)&lt;br /&gt;&lt;br /&gt;That's right, FRIGHTENING! (It really isn't that bad)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1320829598080909539?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1320829598080909539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1320829598080909539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1320829598080909539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1320829598080909539'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/06/memorable-quote.html' title='memorable quote'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-7253380105614624211</id><published>2009-06-01T22:08:00.005+02:00</published><updated>2009-06-01T22:25:47.639+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lopen'/><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>Lopen</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Kijk eens aan, nieuw speelgoed!&lt;br /&gt;&lt;br /&gt;[LOPEN:249247,00:17:38,160,170]&lt;br /&gt;&lt;br /&gt;Ik ben vroeger gestopt wegens steken in mijn rechterschouder.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Kijk eens aan, nieuw speelgoed!&lt;br /&gt;&lt;br /&gt;&lt;table style='border: 2px solid black; padding: 10px; background: #d0d0d0'&gt;&lt;tr&gt;&lt;td align=left colspan=3&gt;&lt;a style='text-decoration: none; font-weight: bold; color: black' href="http://www.afstandmeten.nl/index.php?userid=4600"&gt;My tracks&lt;/a&gt;&lt;/td&gt;&lt;td align=right&gt;&lt;a href="http://www.afstandmeten.nl/index.php?id=249247&amp;kmStep=1"&gt;&lt;img src="http://data.singularity.be/images/full/undated/gnome-zoom.png"&gt;&lt;/a&gt;&lt;a href="http://www.afstandmeten.nl/embed.php?id=249247&amp;kmStep=1"&gt;&lt;img src="http://data.singularity.be/images/full/undated/gnome-fullscreen.png"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=4&gt;&lt;iframe width="300px" height="300px" frameborder="1" scrolling="no" marginheight="0" marginwidth="0" src="http://www.afstandmeten.nl/embed.php?id=249247&amp;kmStep=1"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=right width=0%&gt;Time:&lt;/th&gt;&lt;td align=right&gt;00:17:38&lt;/td&gt;&lt;th align=right&gt;bpm (avg/max):&lt;/th&gt;&lt;td align=right&gt;160/170&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Ik ben vroeger gestopt wegens steken in mijn rechterschouder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7253380105614624211?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7253380105614624211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7253380105614624211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7253380105614624211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7253380105614624211'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/06/lopen.html' title='Lopen'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-3453331436262315479</id><published>2009-05-31T18:07:00.006+02:00</published><updated>2009-06-01T19:43:42.948+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><title type='text'>Beste Kinepolis,</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;gisteren ben ik naar de nieuwe Star Trek film gaan zien in 1 van uw bioscopen. Totaal tegen mijn verwachting in, was de film redelijk waardeloos. Maar daarover wil ik nu niet schrijven.&lt;br /&gt;&lt;br /&gt;De film begint om 17.45 volgens jullie programma, dus zorgde ik ervoor dat ik op dat tijdstip aanwezig was in jullie bioscoop. Spijtig genoeg moest ik alsnog geruime tijd wachten tot de film effectief begon. Specifiek 30 minuten. Jullie kiezen ervoor om die 30 minuten in te vullen met allerlei reclame waarvoor jullie waarschijnlijk rijkelijk beloond worden door andere bedrijven. Zou er dan niks van de prijs af mogen ?&lt;br /&gt;&lt;br /&gt;Los daarvan wil ik jullie inlichten wat ik met 30 minuten allemaal kon doen:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;de StarTrek film downloaden in een goede kwaliteit, tweemaal, gratis&lt;/li&gt;&lt;br /&gt;&lt;li&gt;naar huis rijden, zelf popcorn maken en terugrijden naar de bioscoopzaal&lt;/li&gt;&lt;br /&gt;&lt;li&gt;6 a 10blz lezen in een goed boek&lt;/li&gt;&lt;br /&gt;&lt;li&gt;naar de FNAC rijden, een videocamera kopen en de film ermee opnemen in de bioscoopzaal&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;mvg,&lt;br /&gt;- Steven&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;gisteren ben ik naar de nieuwe Star Trek film gaan zien in 1 van uw bioscopen. Totaal tegen mijn verwachting in, was de film redelijk waardeloos. Maar daarover wil ik nu niet schrijven.&lt;br /&gt;&lt;br /&gt;De film begint om 17.45 volgens jullie programma, dus zorgde ik ervoor dat ik op dat tijdstip aanwezig was in jullie bioscoop. Spijtig genoeg moest ik alsnog geruime tijd wachten tot de film effectief begon. Specifiek 30 minuten. Jullie kiezen ervoor om die 30 minuten in te vullen met allerlei reclame waarvoor jullie waarschijnlijk rijkelijk beloond worden door andere bedrijven. Zou er dan niks van de prijs af mogen ?&lt;br /&gt;&lt;br /&gt;Los daarvan wil ik jullie inlichten wat ik met 30 minuten allemaal kon doen:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;de StarTrek film downloaden in een goede kwaliteit, tweemaal, gratis&lt;/li&gt;&lt;br /&gt;&lt;li&gt;naar huis rijden, zelf popcorn maken en terugrijden naar de bioscoopzaal&lt;/li&gt;&lt;br /&gt;&lt;li&gt;6 a 10blz lezen in een goed boek&lt;/li&gt;&lt;br /&gt;&lt;li&gt;naar de FNAC rijden, een videocamera kopen en de film ermee opnemen in de bioscoopzaal&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;mvg,&lt;br /&gt;- Steven&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-3453331436262315479?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/3453331436262315479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=3453331436262315479' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3453331436262315479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3453331436262315479'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/beste-kinepolis.html' title='Beste Kinepolis,'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-3928962068746526342</id><published>2009-05-29T11:48:00.003+02:00</published><updated>2009-05-30T08:45:55.224+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='TijdTeVeel'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Standaarden'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><title type='text'>All Day Long</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Deze morgen op de radio hoorde ik een interessante reclameboodschap waarvan ik spijtig genoeg enkel de link onthouden heb: &lt;a href="http://www.alldaylong.be"&gt;http://www.alldaylong.be&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De website probeert mensen aan te zetten om meer groenten en fruit te eten. Daar ben ik helemaal voor ! Spijtig genoeg is de site volledig in het hatelijke Flash gemaakt. Na een korte analyse van het gebruikte protocol naar de backend ben ik bij AMFPHP aangekomen. Dat is een RPC library voor Flash remoting.&lt;br /&gt;&lt;br /&gt;Ik wou een programma schrijven om al die recepten te downloaden zodat ik er makkelijk in kan greppen en zo, maar blijkbaar wordt Flash remoting door geen enkele Ubuntu library geimplementeerd. Het nieuwe idee is nu om de AMFPHP library nader te bekijken en te zien of ik&lt;br /&gt;daarlangs geen functies kan rippen.&lt;br /&gt;&lt;br /&gt;In de gedownloade zipfile met de code voor AMFPHP zit &lt;a href="http://www.alldaylong.be/amfphp/phpinfo.php"&gt;een phpinfo.php die blijkbaar ook op de alldaylong.be site staat&lt;/a&gt;. Dat wil zeggen dat ze gewoon de AMFPHP zipfile uitgepakt hebben. &lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Deze morgen op de radio hoorde ik een interessante reclameboodschap waarvan ik spijtig genoeg enkel de link onthouden heb: &lt;a href="http://www.alldaylong.be"&gt;http://www.alldaylong.be&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De website probeert mensen aan te zetten om meer groenten en fruit te eten. Daar ben ik helemaal voor ! Spijtig genoeg is de site volledig in het hatelijke Flash gemaakt. Na een korte analyse van het gebruikte protocol naar de backend ben ik bij AMFPHP aangekomen. Dat is een RPC library voor Flash remoting.&lt;br /&gt;&lt;br /&gt;Ik wou een programma schrijven om al die recepten te downloaden zodat ik er makkelijk in kan greppen en zo, maar blijkbaar wordt Flash remoting door geen enkele Ubuntu library geimplementeerd. Het nieuwe idee is nu om de AMFPHP library nader te bekijken en te zien of ik&lt;br /&gt;daarlangs geen functies kan rippen.&lt;br /&gt;&lt;br /&gt;In de gedownloade zipfile met de code voor AMFPHP zit &lt;a href="http://www.alldaylong.be/amfphp/phpinfo.php"&gt;een phpinfo.php die blijkbaar ook op de alldaylong.be site staat&lt;/a&gt;. Dat wil zeggen dat ze gewoon de AMFPHP zipfile uitgepakt hebben.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-3928962068746526342?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/3928962068746526342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=3928962068746526342' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3928962068746526342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3928962068746526342'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/all-day-long.html' title='All Day Long'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-4386523648575673319</id><published>2009-05-28T10:16:00.005+02:00</published><updated>2009-05-28T10:39:28.477+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Cheating on Facebook games</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I'm really not good at playing Bejeweled Blitz on Facebook.&lt;br /&gt;To mess around with my family, I've been cheating pretty much since I played the game the first time. &lt;br /&gt;&lt;br /&gt;Some of you have been wondering how that is actually possible. While it's not exactly a feat of genius, it does require some working knowledge of how Flash games work.&lt;br /&gt;&lt;br /&gt;Flash is a client-side plugin that runs a program inside your browser. When you visit a page with a flash game on it, the program is downloaded from a website and executed on your PC. What's important is that the entire thing runs on your PC and then possibly submits a highscore to the gameserver. Nothing prevents you from faking the reply to the gameserver...&lt;br /&gt;&lt;br /&gt;The data sent to the gameserver can be captured with a network monitor. It would be possible to change the transmitted data "in flight", but I didn't go through the trouble of doing all that and just transmitted a modified copy of the original data.&lt;br /&gt;&lt;br /&gt;In the case of Bejeweled Blitz, the creators of the game wanted to be smart about it and tried to protect the integrity of the data being sent to the server with a field called "checksum". But it's not really difficult to get around it.&lt;br /&gt;&lt;br /&gt;You can disassemble the flash game with a "flasm":&lt;br /&gt;[PRE]&lt;br /&gt;flasm -d bejeweledfacebook.swf&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;The code that generated the checksum is listed here:&lt;br /&gt;[PRE]&lt;br /&gt;        push 0.0, 'md5'&lt;br /&gt;        new&lt;br /&gt;        setRegister r:5&lt;br /&gt;        pop&lt;br /&gt;        push 'checksum', 'myScore'&lt;br /&gt;        getVariable&lt;br /&gt;        push 'nonivechey902!0'&lt;br /&gt;        add&lt;br /&gt;        push r:3, 'fb_sig_user'&lt;br /&gt;        getMember&lt;br /&gt;        add&lt;br /&gt;        toString&lt;br /&gt;        push 1, r:5, 'hash'&lt;br /&gt;        callMethod&lt;br /&gt;        setVariable&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;In pseudocode that would read something like:&lt;br /&gt;[PRE]&lt;br /&gt;checksum = hash(getVariable("myScore") + "nonivechey902!0" + user.getMember("fb_sig_user"), "md5")&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;So, to set my score to 102101 (which is 1 higher than my mom's ;), I generate a new checksum &lt;br /&gt;(I used userid 0123456789 in this example)&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;deepstar@phoenix:/tmp/bej$ echo -n '102101nonivechey902!00123456789' | md5sum&lt;br /&gt;e3f37c9eb8c861818c0e4b32265be59d  -&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Next, I replaced the checksum in the datastream with the one above, and changed the score to 102101. Finally transmitted it to the gameserver and the score was set.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I'm really not good at playing Bejeweled Blitz on Facebook.&lt;br /&gt;To mess around with my family, I've been cheating pretty much since I played the game the first time. &lt;br /&gt;&lt;br /&gt;Some of you have been wondering how that is actually possible. While it's not exactly a feat of genius, it does require some working knowledge of how Flash games work.&lt;br /&gt;&lt;br /&gt;Flash is a client-side plugin that runs a program inside your browser. When you visit a page with a flash game on it, the program is downloaded from a website and executed on your PC. What's important is that the entire thing runs on your PC and then possibly submits a highscore to the gameserver. Nothing prevents you from faking the reply to the gameserver...&lt;br /&gt;&lt;br /&gt;The data sent to the gameserver can be captured with a network monitor. It would be possible to change the transmitted data "in flight", but I didn't go through the trouble of doing all that and just transmitted a modified copy of the original data.&lt;br /&gt;&lt;br /&gt;In the case of Bejeweled Blitz, the creators of the game wanted to be smart about it and tried to protect the integrity of the data being sent to the server with a field called "checksum". But it's not really difficult to get around it.&lt;br /&gt;&lt;br /&gt;You can disassemble the flash game with a "flasm":&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;flasm -d bejeweledfacebook.swf&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The code that generated the checksum is listed here:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;        push 0.0, 'md5'&lt;br /&gt;        new&lt;br /&gt;        setRegister r:5&lt;br /&gt;        pop&lt;br /&gt;        push 'checksum', 'myScore'&lt;br /&gt;        getVariable&lt;br /&gt;        push 'nonivechey902!0'&lt;br /&gt;        add&lt;br /&gt;        push r:3, 'fb_sig_user'&lt;br /&gt;        getMember&lt;br /&gt;        add&lt;br /&gt;        toString&lt;br /&gt;        push 1, r:5, 'hash'&lt;br /&gt;        callMethod&lt;br /&gt;        setVariable&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In pseudocode that would read something like:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;checksum = hash(getVariable("myScore") + "nonivechey902!0" + user.getMember("fb_sig_user"), "md5")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So, to set my score to 102101 (which is 1 higher than my mom's ;), I generate a new checksum &lt;br /&gt;(I used userid 0123456789 in this example)&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;deepstar@phoenix:/tmp/bej$ echo -n '102101nonivechey902!00123456789' | md5sum&lt;br /&gt;e3f37c9eb8c861818c0e4b32265be59d  -&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Next, I replaced the checksum in the datastream with the one above, and changed the score to 102101. Finally transmitted it to the gameserver and the score was set.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4386523648575673319?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4386523648575673319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4386523648575673319' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4386523648575673319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4386523648575673319'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/cheating-on-facebook-games.html' title='Cheating on Facebook games'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-8217295641360508242</id><published>2009-05-27T10:03:00.001+02:00</published><updated>2009-05-27T10:03:58.919+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>testpost voor facebook</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Werken die RSS feed dingen bij facebook wel ? Let's find out!&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Werken die RSS feed dingen bij facebook wel ? Let's find out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8217295641360508242?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8217295641360508242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8217295641360508242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8217295641360508242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8217295641360508242'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/testpost-voor-facebook.html' title='testpost voor facebook'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-8210023677666013675</id><published>2009-05-27T09:38:00.002+02:00</published><updated>2009-05-27T09:44:03.111+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><title type='text'>Kies eens een thesis</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Uit de lijst met &lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/onderwerpen.shtml"&gt;thesissen voor 2009-2010&lt;/a&gt; heb ik er 5 moeten kiezen en gewichten aan moeten toekennen.&lt;br /&gt;&lt;br /&gt;Hier zijn ze:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T111.shtml"&gt;Masterproef T111 : Hoe veilig zijn de nieuwe Android smartphones?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T121.shtml"&gt;Masterproef T121 : Constraint-based Generation of Malicious Code&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T233.shtml"&gt;Masterproef T233 : Attention!!!&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T122.shtml"&gt;Masterproef T122 : Hack zelf je iPhone en bescherm hem tegen andere hackers&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T179.shtml"&gt;Masterproef T179 : Bescherm programma's tegen hackers door aanpassingen aan de CPU&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Met gewichten 12, 12, 12, 7 en 7.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Uit de lijst met &lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/onderwerpen.shtml"&gt;thesissen voor 2009-2010&lt;/a&gt; heb ik er 5 moeten kiezen en gewichten aan moeten toekennen.&lt;br /&gt;&lt;br /&gt;Hier zijn ze:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T111.shtml"&gt;Masterproef T111 : Hoe veilig zijn de nieuwe Android smartphones?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T121.shtml"&gt;Masterproef T121 : Constraint-based Generation of Malicious Code&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T233.shtml"&gt;Masterproef T233 : Attention!!!&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T122.shtml"&gt;Masterproef T122 : Hack zelf je iPhone en bescherm hem tegen andere hackers&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/cs/studentenportaal/eindwerken/20092010/onderwerpen/individueel/T179.shtml"&gt;Masterproef T179 : Bescherm programma's tegen hackers door aanpassingen aan de CPU&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Met gewichten 12, 12, 12, 7 en 7.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8210023677666013675?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8210023677666013675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8210023677666013675' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8210023677666013675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8210023677666013675'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/kies-eens-een-thesis.html' title='Kies eens een thesis'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-8303680554800155724</id><published>2009-05-25T12:54:00.003+02:00</published><updated>2009-05-25T12:59:33.557+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Did god make a mistake?</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I ponder about some of the more important aspects of life while I study for my exams, like this for example:&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/why_do_adam_and_eve_have_belly_buttons_smaller.png]&lt;br /&gt;&lt;br /&gt;God created man in his own image. Yet Adam and Eve are shown with a belly button in every depiction. Does this imply that the painters were not painting reality ? If they did, that would mean god has a belly button! What did he use it for ? Storing his mana ?&lt;br /&gt;&lt;br /&gt;Also, if the painters were in fact *not* painting reality, can we trust any paintings at all ?&lt;br /&gt;I wonder...&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I ponder about some of the more important aspects of life while I study for my exams, like this for example:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/why_do_adam_and_eve_have_belly_buttons_smaller.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/why_do_adam_and_eve_have_belly_buttons_smaller.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;God created man in his own image. Yet Adam and Eve are shown with a belly button in every depiction. Does this imply that the painters were not painting reality ? If they did, that would mean god has a belly button! What did he use it for ? Storing his mana ?&lt;br /&gt;&lt;br /&gt;Also, if the painters were in fact *not* painting reality, can we trust any paintings at all ?&lt;br /&gt;I wonder...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8303680554800155724?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8303680554800155724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8303680554800155724' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8303680554800155724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8303680554800155724'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/did-god-make-mistake.html' title='Did god make a mistake?'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-4613167394020687165</id><published>2009-05-19T11:35:00.001+02:00</published><updated>2009-05-19T11:36:46.002+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Johnny Cash - Solitary Man</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Not for any personal reasons, except that it appeared in onen of the final episodes of Stargate Atlantis and I liked it:&lt;br /&gt;[YOUTUBE:http://www.youtube.com/watch?v=O5rVmXyZP5s]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Not for any personal reasons, except that it appeared in onen of the final episodes of Stargate Atlantis and I liked it:&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/O5rVmXyZP5s"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/O5rVmXyZP5s" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4613167394020687165?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4613167394020687165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4613167394020687165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4613167394020687165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4613167394020687165'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/johnny-cash-solitary-man.html' title='Johnny Cash - Solitary Man'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-8283811534218448657</id><published>2009-05-18T10:40:00.004+02:00</published><updated>2009-05-18T10:43:12.905+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sick'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Going to a doctor</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;So, I have some kind of earinfection and its getting bad enough to warrant a visit to the doctor. This morning I went there and spent an hour in the waiting room reading stupid magazines about showbizzpeople who think their opinion about other showbizzpeople is important.&lt;br /&gt;&lt;br /&gt;After seeing enough people with diseases come in, I decided to leave.&lt;br /&gt;&lt;br /&gt;If you don't go to a doctor often (like me), Here's a helpful flowchart:&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/areyousick.png]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;So, I have some kind of earinfection and its getting bad enough to warrant a visit to the doctor. This morning I went there and spent an hour in the waiting room reading stupid magazines about showbizzpeople who think their opinion about other showbizzpeople is important.&lt;br /&gt;&lt;br /&gt;After seeing enough people with diseases come in, I decided to leave.&lt;br /&gt;&lt;br /&gt;If you don't go to a doctor often (like me), Here's a helpful flowchart:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/areyousick.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/areyousick.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8283811534218448657?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8283811534218448657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8283811534218448657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8283811534218448657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8283811534218448657'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/05/going-to-doctor.html' title='Going to a doctor'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-8439546080643729672</id><published>2009-04-30T22:05:00.000+02:00</published><updated>2009-04-30T22:06:42.801+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Swine flu</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Seen on &lt;a href="http://www.fark.com/cgi/comments.pl?IDBlog=78&amp;cpp=1"&gt;FARK.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://i77.photobucket.com/albums/j68/Tirion529/swinefluyeeeeeaaaaah.jpg]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Seen on &lt;a href="http://www.fark.com/cgi/comments.pl?IDBlog=78&amp;cpp=1"&gt;FARK.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://i77.photobucket.com/albums/j68/Tirion529/swinefluyeeeeeaaaaah.jpg"&gt;&lt;img src="http://i77.photobucket.com/albums/j68/Tirion529/swinefluyeeeeeaaaaah.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8439546080643729672?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8439546080643729672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8439546080643729672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8439546080643729672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8439546080643729672'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/04/swine-flu.html' title='Swine flu'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1983643194907480762</id><published>2009-04-29T16:12:00.001+02:00</published><updated>2009-04-29T16:13:36.231+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>getting rid of akiradnews spam</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;[PRE]&lt;br /&gt;root@phoenix:~# apt-get remove akiradnews &lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree       &lt;br /&gt;Reading state information... Done&lt;br /&gt;The following packages were automatically installed and are no longer required:&lt;br /&gt;  libmpeg3cv libboost-date-time1.34.1 libquicktimecv optlibx11-noxcb-data libguicastcv gnash-common optlibx11-noxcb-6&lt;br /&gt;Use 'apt-get autoremove' to remove them.&lt;br /&gt;The following packages will be REMOVED:&lt;br /&gt;  akiradnews cinelerra cinelerracv&lt;br /&gt;0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.&lt;br /&gt;After this operation, 22.8MB disk space will be freed.&lt;br /&gt;Do you want to continue [Y/n]? Y&lt;br /&gt;(Reading database ... 248392 files and directories currently installed.)&lt;br /&gt;Removing cinelerra ...&lt;br /&gt;Removing cinelerracv ...&lt;br /&gt;Description: Ubuntu 8.10&lt;br /&gt;de_DE.iso885915&lt;br /&gt;es_ES.iso885915&lt;br /&gt;fr_FR.iso885915&lt;br /&gt;it_IT.iso885915&lt;br /&gt;pt_BR.iso885915&lt;br /&gt;sl_SI.iso885915&lt;br /&gt;eu_ES.iso885915&lt;br /&gt;eu_FR.iso885915&lt;br /&gt;locale "en_US.ISO-8859-15" not in archive&lt;br /&gt;locale "ru_RU.KOI8-R" not in archive&lt;br /&gt; Removing any system startup links for /etc/init.d/cinestart ...&lt;br /&gt;   /etc/rc0.d/K20cinestart&lt;br /&gt;   /etc/rc1.d/K20cinestart&lt;br /&gt;   /etc/rc2.d/S20cinestart&lt;br /&gt;   /etc/rc3.d/S20cinestart&lt;br /&gt;   /etc/rc4.d/S20cinestart&lt;br /&gt;   /etc/rc5.d/S20cinestart&lt;br /&gt;   /etc/rc6.d/K20cinestart&lt;br /&gt;Removing akiradnews ...&lt;br /&gt;Processing triggers for menu ...&lt;br /&gt;Processing triggers for man-db ...&lt;br /&gt;root@phoenix:~# &lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;If I want popups, I'll use Windows kthxbye&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;root@phoenix:~# apt-get remove akiradnews &lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree       &lt;br /&gt;Reading state information... Done&lt;br /&gt;The following packages were automatically installed and are no longer required:&lt;br /&gt;  libmpeg3cv libboost-date-time1.34.1 libquicktimecv optlibx11-noxcb-data libguicastcv gnash-common optlibx11-noxcb-6&lt;br /&gt;Use 'apt-get autoremove' to remove them.&lt;br /&gt;The following packages will be REMOVED:&lt;br /&gt;  akiradnews cinelerra cinelerracv&lt;br /&gt;0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.&lt;br /&gt;After this operation, 22.8MB disk space will be freed.&lt;br /&gt;Do you want to continue [Y/n]? Y&lt;br /&gt;(Reading database ... 248392 files and directories currently installed.)&lt;br /&gt;Removing cinelerra ...&lt;br /&gt;Removing cinelerracv ...&lt;br /&gt;Description: Ubuntu 8.10&lt;br /&gt;de_DE.iso885915&lt;br /&gt;es_ES.iso885915&lt;br /&gt;fr_FR.iso885915&lt;br /&gt;it_IT.iso885915&lt;br /&gt;pt_BR.iso885915&lt;br /&gt;sl_SI.iso885915&lt;br /&gt;eu_ES.iso885915&lt;br /&gt;eu_FR.iso885915&lt;br /&gt;locale "en_US.ISO-8859-15" not in archive&lt;br /&gt;locale "ru_RU.KOI8-R" not in archive&lt;br /&gt; Removing any system startup links for /etc/init.d/cinestart ...&lt;br /&gt;   /etc/rc0.d/K20cinestart&lt;br /&gt;   /etc/rc1.d/K20cinestart&lt;br /&gt;   /etc/rc2.d/S20cinestart&lt;br /&gt;   /etc/rc3.d/S20cinestart&lt;br /&gt;   /etc/rc4.d/S20cinestart&lt;br /&gt;   /etc/rc5.d/S20cinestart&lt;br /&gt;   /etc/rc6.d/K20cinestart&lt;br /&gt;Removing akiradnews ...&lt;br /&gt;Processing triggers for menu ...&lt;br /&gt;Processing triggers for man-db ...&lt;br /&gt;root@phoenix:~# &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If I want popups, I'll use Windows kthxbye&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1983643194907480762?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1983643194907480762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1983643194907480762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1983643194907480762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1983643194907480762'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/04/getting-rid-of-akiradnews-spam.html' title='getting rid of akiradnews spam'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1911716922761960383</id><published>2009-04-18T13:05:00.008+02:00</published><updated>2009-04-18T21:37:07.925+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>HDMI splitting and switching</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Ah, it's been a while since I've posted anything in English...&lt;br /&gt;&lt;br /&gt;2 Days ago, my TV broke down. I have no idea what caused it (and I haven't even looked whether or not the fuse blew out), but I don't really care.&lt;br /&gt;&lt;br /&gt;This is what the current situation looks like:&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/mediawiring-old.png]&lt;br /&gt;&lt;br /&gt;I have a satellite decoder which outputs an analog signal on a SCART cable to my (now broken) TV.&lt;br /&gt;I also have a PS3 connected to a projector using HDMI, and a PC with a DVI output on its graphics card connected to the projector with a DVI to HDMI convertor cable.&lt;br /&gt;&lt;br /&gt;This setup has a couple of annoying side-effects: I can't watch TV on the projector because it doesn't have an HDMI output. I also can't play PS3 on a screen in broad daylight, because my TV can't process HDMI input.&lt;br /&gt;&lt;br /&gt;A possible new solution is this one:&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/mediawiring-new.png]&lt;br /&gt;&lt;br /&gt;If I can buy a satellite decoder which outputs HDMI, I could connect it to a HDMI switch together with the PS3 and the PC. If I can then get a HDMI-capable monitor (that supports HDCP for the PS3), I could hook it up as an output to the HDMI switch together with the projector.&lt;br /&gt;&lt;br /&gt;What will this setup cost me ? I will need the following:&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;digital satellite decoder&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;a href="http://www.tv-vlaanderen.be/pid_TVVontvangerHDTVexclSC.asp"&gt;Philips HD DSR 7121/7122 of TV-Vlaanderen&lt;/a&gt;, 300 euro&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;HDMI capable monitor&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;a href="http://www.komplett.be/k/ki.aspx?sku=437377"&gt;Acer 24" Wide H243H&lt;/a&gt;, selected because of low power consumption, 255 euro&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;HDMI switch 3-&gt;2&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;a href="http://www.apogeeinc.net/products/item.aspx?item=2761"&gt;HDMI 4x2 True Matrix Switcher v1.3 w/ 35m Signal Repeater Equalized Chipset&lt;/a&gt;, 100 euro(?)&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;3 more HDMI cables&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;100 euro(?)&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Total: 755 euro.&lt;br /&gt;&lt;br /&gt;Maybe a bit steep, we'll see...&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Ah, it's been a while since I've posted anything in English...&lt;br /&gt;&lt;br /&gt;2 Days ago, my TV broke down. I have no idea what caused it (and I haven't even looked whether or not the fuse blew out), but I don't really care.&lt;br /&gt;&lt;br /&gt;This is what the current situation looks like:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/mediawiring-old.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/mediawiring-old.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have a satellite decoder which outputs an analog signal on a SCART cable to my (now broken) TV.&lt;br /&gt;I also have a PS3 connected to a projector using HDMI, and a PC with a DVI output on its graphics card connected to the projector with a DVI to HDMI convertor cable.&lt;br /&gt;&lt;br /&gt;This setup has a couple of annoying side-effects: I can't watch TV on the projector because it doesn't have an HDMI output. I also can't play PS3 on a screen in broad daylight, because my TV can't process HDMI input.&lt;br /&gt;&lt;br /&gt;A possible new solution is this one:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/mediawiring-new.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/mediawiring-new.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If I can buy a satellite decoder which outputs HDMI, I could connect it to a HDMI switch together with the PS3 and the PC. If I can then get a HDMI-capable monitor (that supports HDCP for the PS3), I could hook it up as an output to the HDMI switch together with the projector.&lt;br /&gt;&lt;br /&gt;What will this setup cost me ? I will need the following:&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;digital satellite decoder&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;a href="http://www.tv-vlaanderen.be/pid_TVVontvangerHDTVexclSC.asp"&gt;Philips HD DSR 7121/7122 of TV-Vlaanderen&lt;/a&gt;, 300 euro&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;HDMI capable monitor&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;a href="http://www.komplett.be/k/ki.aspx?sku=437377"&gt;Acer 24" Wide H243H&lt;/a&gt;, selected because of low power consumption, 255 euro&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;HDMI switch 3-&gt;2&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;a href="http://www.apogeeinc.net/products/item.aspx?item=2761"&gt;HDMI 4x2 True Matrix Switcher v1.3 w/ 35m Signal Repeater Equalized Chipset&lt;/a&gt;, 100 euro(?)&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;3 more HDMI cables&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;100 euro(?)&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Total: 755 euro.&lt;br /&gt;&lt;br /&gt;Maybe a bit steep, we'll see...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1911716922761960383?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1911716922761960383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1911716922761960383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1911716922761960383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1911716922761960383'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/04/hdmi-splitting-and-switching.html' title='HDMI splitting and switching'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1472102642561287531</id><published>2009-03-29T11:12:00.003+02:00</published><updated>2009-03-29T11:38:40.888+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>zomertijd is int land!</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Moest ge het nog niet gemerkt hebben, de klok is verzet. Buiten ziet het er goed uit en ik heb zin in de zomer!&lt;br /&gt;&lt;br /&gt;[YOUTUBE:http://www.youtube.com/watch?v=db6xHWEPTzo]&lt;br /&gt;[YOUTUBE:http://www.youtube.com/watch?v=J6-QBh1YsWA]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Moest ge het nog niet gemerkt hebben, de klok is verzet. Buiten ziet het er goed uit en ik heb zin in de zomer!&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/db6xHWEPTzo"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/db6xHWEPTzo" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/J6-QBh1YsWA"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/J6-QBh1YsWA" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1472102642561287531?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1472102642561287531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1472102642561287531' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1472102642561287531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1472102642561287531'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/03/zomertijd-is-int-land.html' title='zomertijd is int land!'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-992110892387168262</id><published>2009-02-26T13:55:00.004+01:00</published><updated>2009-02-26T14:11:32.254+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='P en O'/><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>P&amp;O 3: golfballetjes rapen</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;In deel 2 van PenO 3 is het de bedoeling om een robot te bouwen die golfballetjes kan oprapen en ergens anders deponeren. Het is zeer waarschijnlijk dat er balletjes van verschillende kleuren liggen met elk een betekenis. Daarom is het dus belangrijk om te kunnen kiezen welk golfballetje waar neergezet wordt.&lt;br /&gt;&lt;br /&gt;Deze week heeft ons team gekeken naar mogelijke technieken om zo'n balletjes op te rapen en terug neer te leggen, in volgorde. De beperking is dat het hele opraap/neerleg mechanisme in lego moet gebouwd worden met 1 enkele (stappen)motor.&lt;br /&gt;&lt;br /&gt;Onze eerste poging is een mechanisme dat de balletjes achter mekaar binnentrekt en intern op een hellend vlak bijhoudt. Wanneer de motor in de andere richting draait zorgt de zwaartekracht ervoor dat de balletjes naar buiten komen.&lt;br /&gt;&lt;br /&gt;Hier zijn enkele foto's:&lt;br /&gt;[IMG:http://data.singularity.be/images/full/2009/02/25/cimg1956.jpg][IMG:http://data.singularity.be/images/full/2009/02/25/cimg1957.jpg][IMG:http://data.singularity.be/images/full/2009/02/25/cimg1958.jpg][IMG:http://data.singularity.be/images/full/2009/02/25/cimg1959.jpg]&lt;br /&gt;&lt;br /&gt;Filmpje van het laden van ballen:&lt;br /&gt;[YOUTUBE:http://www.youtube.com/watch?v=WSY_hjBvkE4]&lt;br /&gt;&lt;br /&gt;En uitladen:&lt;br /&gt;[YOUTUBE:http://www.youtube.com/watch?v=PoN9avz-6IQ]&lt;br /&gt;&lt;br /&gt;Bij de constructie van het mechanisme hebben er niet bij stilgestaan dat de "draaiarmen" in een verschillende richting moeten draaien, zodat we bij het proof-of-concept testen manueel de 2de arm gedraaid hebben.&lt;br /&gt;&lt;br /&gt;Het vrijgeven van de balletjes gaan redelijk goed, maar daarvoor moet de interne helling iets steiler zijn. Momenteel blijven de balletjes wel eens liggen.&lt;br /&gt;Het binnehalen van de balletjes werkt ook goed zolang de motor genoeg kracht kan leveren om de balletjes naar binnen te duwen. Het grote probleem is echter dat de robot heel precies voor een balletje moet staan om het te kunnen "pakken". Waarschijnlijk gaan we in de demo's niet over voldoende nauwkeurigheid beschikken voor plaats- en orientatie-bepaling, en zullen we ook niet teveel tijd willen spenderen om balletjes te rapen.&lt;br /&gt;&lt;br /&gt;Het mechanisme moet dus sneller werken en toleranter zijn qua nauwkeurigheid.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;In deel 2 van PenO 3 is het de bedoeling om een robot te bouwen die golfballetjes kan oprapen en ergens anders deponeren. Het is zeer waarschijnlijk dat er balletjes van verschillende kleuren liggen met elk een betekenis. Daarom is het dus belangrijk om te kunnen kiezen welk golfballetje waar neergezet wordt.&lt;br /&gt;&lt;br /&gt;Deze week heeft ons team gekeken naar mogelijke technieken om zo'n balletjes op te rapen en terug neer te leggen, in volgorde. De beperking is dat het hele opraap/neerleg mechanisme in lego moet gebouwd worden met 1 enkele (stappen)motor.&lt;br /&gt;&lt;br /&gt;Onze eerste poging is een mechanisme dat de balletjes achter mekaar binnentrekt en intern op een hellend vlak bijhoudt. Wanneer de motor in de andere richting draait zorgt de zwaartekracht ervoor dat de balletjes naar buiten komen.&lt;br /&gt;&lt;br /&gt;Hier zijn enkele foto's:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/25/cimg1956.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/25/cimg1956.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/25/cimg1957.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/25/cimg1957.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/25/cimg1958.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/25/cimg1958.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/25/cimg1959.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/25/cimg1959.jpg.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Filmpje van het laden van ballen:&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WSY_hjBvkE4"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WSY_hjBvkE4" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;En uitladen:&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PoN9avz-6IQ"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PoN9avz-6IQ" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Bij de constructie van het mechanisme hebben er niet bij stilgestaan dat de "draaiarmen" in een verschillende richting moeten draaien, zodat we bij het proof-of-concept testen manueel de 2de arm gedraaid hebben.&lt;br /&gt;&lt;br /&gt;Het vrijgeven van de balletjes gaan redelijk goed, maar daarvoor moet de interne helling iets steiler zijn. Momenteel blijven de balletjes wel eens liggen.&lt;br /&gt;Het binnehalen van de balletjes werkt ook goed zolang de motor genoeg kracht kan leveren om de balletjes naar binnen te duwen. Het grote probleem is echter dat de robot heel precies voor een balletje moet staan om het te kunnen "pakken". Waarschijnlijk gaan we in de demo's niet over voldoende nauwkeurigheid beschikken voor plaats- en orientatie-bepaling, en zullen we ook niet teveel tijd willen spenderen om balletjes te rapen.&lt;br /&gt;&lt;br /&gt;Het mechanisme moet dus sneller werken en toleranter zijn qua nauwkeurigheid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-992110892387168262?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/992110892387168262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=992110892387168262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/992110892387168262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/992110892387168262'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/02/p-3-golfballetjes-rapen.html' title='P&amp;O 3: golfballetjes rapen'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-4472426024043306792</id><published>2009-02-08T22:08:00.002+01:00</published><updated>2009-02-08T22:09:55.550+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Welding'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>first welds on the new firepit</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Noot and I tacked together the trapezoids of the new firepit. It's not too perfect, but its progress.&lt;br /&gt;&lt;br /&gt;[IMG:http://data.singularity.be/images/full/2009/02/08/cimg1950.jpg]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Noot and I tacked together the trapezoids of the new firepit. It's not too perfect, but its progress.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/08/cimg1950.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/08/cimg1950.jpg.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4472426024043306792?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4472426024043306792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4472426024043306792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4472426024043306792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4472426024043306792'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/02/first-welds-on-new-firepit.html' title='first welds on the new firepit'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-122653292023064963</id><published>2009-02-08T21:55:00.002+01:00</published><updated>2009-02-08T21:59:06.492+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>making an ICSP cable</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I'm a terrible amateur and it shows. Just look at how pathetic this cable looks.&lt;br /&gt;&lt;br /&gt;[IMG:http://data.singularity.be/images/full/2009/02/03/cimg1943.jpg][IMG:http://data.singularity.be/images/full/2009/02/03/cimg1944.jpg][IMG:http://data.singularity.be/images/full/2009/02/03/cimg1945.jpg][IMG:http://data.singularity.be/images/full/2009/02/03/cimg1946.jpg][IMG:http://data.singularity.be/images/full/2009/02/03/cimg1947.jpg][IMG:http://data.singularity.be/images/full/2009/02/03/cimg1948.jpg][IMG:http://data.singularity.be/images/full/2009/02/03/cimg1949.jpg]&lt;br /&gt;&lt;br /&gt;Soldered some wires to a connecter I bought for 3 euros (!). Does it show that I can't solder worth crap ? And then fix everything together with my trusty gluegun.&lt;br /&gt;&lt;br /&gt;And after all that work, the cable doesn't work! I can't believe it. Maybe I'm overlooking something...&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I'm a terrible amateur and it shows. Just look at how pathetic this cable looks.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1943.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1943.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1944.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1944.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1945.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1945.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1946.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1946.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1947.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1947.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1948.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1948.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1949.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1949.jpg.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Soldered some wires to a connecter I bought for 3 euros (!). Does it show that I can't solder worth crap ? And then fix everything together with my trusty gluegun.&lt;br /&gt;&lt;br /&gt;And after all that work, the cable doesn't work! I can't believe it. Maybe I'm overlooking something...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-122653292023064963?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/122653292023064963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=122653292023064963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/122653292023064963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/122653292023064963'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/02/making-icsp-cable.html' title='making an ICSP cable'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2671694779190461467</id><published>2009-02-08T18:07:00.006+01:00</published><updated>2009-02-08T18:29:39.679+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>RS232 on a PIC - finally some results</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;This past week, I've tried to get RS232 communication working between my PC and 16F627 PIC over a serial cable. And finally succeeded today.&lt;br /&gt;&lt;br /&gt;[IMG:http://data.singularity.be/images/full/2009/02/02/cimg1935.jpg][IMG:http://data.singularity.be/images/full/2009/02/02/cimg1936.jpg][IMG:http://data.singularity.be/images/full/2009/02/02/cimg1937.jpg][IMG:http://data.singularity.be/images/full/2009/02/03/cimg1939.jpg]&lt;br /&gt;&lt;br /&gt;Here are a couple lessons I've learned:&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Windows is a piece of turd - getting the PIC programmer working in Linux&lt;/h3&gt;&lt;br /&gt;I've said it before, but I can't repeat it enough: Windows is crap. One could say that &lt;br /&gt;the development platform created by Microchip is probably the best to do PIC programming, but it's not. I've been using GPSim to do my simulations and codetesting under linux and it works fantastically. &lt;br /&gt;&lt;br /&gt;I would have used Linux for the entire development and testing, but my PIC programmer (Velleman K8048) seemed unsupported in Linux. Everytime I had some working code, I had to reboot to Windows just so I could burn the code on a PIC. That's just stupid.&lt;br /&gt;&lt;br /&gt;Luckily I've found a way to program the PIC from Linux.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Moving an IC between programmer and breadboard all the time comes at a cost - ICSP&lt;/h3&gt;&lt;br /&gt;Moving the PIC between programmer and breadboard all the time has an unforeseen side-effect: after a while pins start being bent and break off. I've lost 3 already.&lt;br /&gt;&lt;br /&gt;Instead of moving the PIC around all the time I figured it would be better to use ICSP. So I created a cable for it and tried it out: no joy.&lt;br /&gt;&lt;br /&gt;I don't know why it doesn't work, more research and testing is needed.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;When the oscilloscope is showing some weird Klingonlike signal, something is wrong with it&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Meaning when it looks like this:&lt;br /&gt;[IMG:http://data.singularity.be/images/full/2009/02/03/cimg1941.jpg]&lt;br /&gt;&lt;br /&gt;I found out that the cable of the scope is damaged or broken in some way. After replacing it, the signal looked OK.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Simulation environments differ from the real world&lt;/h3&gt;&lt;br /&gt;GPSim runs with a 20MHz clock while the internal oscillator of my PIC runs at 4Mhz. Blindly uploading the same code to the PIC will therefor not work. It needs to be modified to take that lover speed in to account.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;This past week, I've tried to get RS232 communication working between my PC and 16F627 PIC over a serial cable. And finally succeeded today.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/02/cimg1935.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/02/cimg1935.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/02/cimg1936.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/02/cimg1936.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/02/cimg1937.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/02/cimg1937.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1939.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1939.jpg.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are a couple lessons I've learned:&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Windows is a piece of turd - getting the PIC programmer working in Linux&lt;/h3&gt;&lt;br /&gt;I've said it before, but I can't repeat it enough: Windows is crap. One could say that &lt;br /&gt;the development platform created by Microchip is probably the best to do PIC programming, but it's not. I've been using GPSim to do my simulations and codetesting under linux and it works fantastically. &lt;br /&gt;&lt;br /&gt;I would have used Linux for the entire development and testing, but my PIC programmer (Velleman K8048) seemed unsupported in Linux. Everytime I had some working code, I had to reboot to Windows just so I could burn the code on a PIC. That's just stupid.&lt;br /&gt;&lt;br /&gt;Luckily I've found a way to program the PIC from Linux.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Moving an IC between programmer and breadboard all the time comes at a cost - ICSP&lt;/h3&gt;&lt;br /&gt;Moving the PIC between programmer and breadboard all the time has an unforeseen side-effect: after a while pins start being bent and break off. I've lost 3 already.&lt;br /&gt;&lt;br /&gt;Instead of moving the PIC around all the time I figured it would be better to use ICSP. So I created a cable for it and tried it out: no joy.&lt;br /&gt;&lt;br /&gt;I don't know why it doesn't work, more research and testing is needed.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;When the oscilloscope is showing some weird Klingonlike signal, something is wrong with it&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Meaning when it looks like this:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/02/03/cimg1941.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/02/03/cimg1941.jpg.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found out that the cable of the scope is damaged or broken in some way. After replacing it, the signal looked OK.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Simulation environments differ from the real world&lt;/h3&gt;&lt;br /&gt;GPSim runs with a 20MHz clock while the internal oscillator of my PIC runs at 4Mhz. Blindly uploading the same code to the PIC will therefor not work. It needs to be modified to take that lover speed in to account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2671694779190461467?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2671694779190461467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2671694779190461467' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2671694779190461467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2671694779190461467'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/02/rs232-on-pic-finally-some-results.html' title='RS232 on a PIC - finally some results'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-535622862454901097</id><published>2009-01-29T09:38:00.004+01:00</published><updated>2009-02-08T22:13:30.421+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Welding'/><category scheme='http://www.blogger.com/atom/ns#' term='Vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>some pics</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Here are some projects of the things I've been doing lately.&lt;br /&gt;&lt;br /&gt;Building a firepit:&lt;br /&gt;[IMG:2009/01/25/cimg1906.jpg][IMG:2009/01/25/cimg1907.jpg][IMG:2009/01/25/cimg1908.jpg][IMG:2009/01/25/cimg1909.jpg][IMG:2009/01/27/cimg1923.jpg][IMG:2009/01/27/cimg1924.jpg]&lt;br /&gt;&lt;br /&gt;Making bread:&lt;br /&gt;[IMG:2009/01/26/cimg1910.jpg][IMG:2009/01/26/cimg1911.jpg][IMG:2009/01/26/cimg1912.jpg][IMG:2009/01/26/cimg1913.jpg][IMG:2009/01/26/cimg1914.jpg][IMG:2009/01/26/cimg1915.jpg][IMG:2009/01/26/cimg1916.jpg][IMG:2009/01/26/cimg1917.jpg][IMG:2009/01/26/cimg1922.jpg]&lt;br /&gt;&lt;br /&gt;Making candles:&lt;br /&gt;[IMG:2009/01/26/cimg1918.jpg][IMG:2009/01/26/cimg1919.jpg][IMG:2009/01/26/cimg1920.jpg][IMG:2009/01/26/cimg1921.jpg]&lt;br /&gt;&lt;br /&gt;Maybe I should be making youtube movies instead.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Here are some projects of the things I've been doing lately.&lt;br /&gt;&lt;br /&gt;Building a firepit:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/25/cimg1906.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/25/cimg1906.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/25/cimg1907.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/25/cimg1907.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/25/cimg1908.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/25/cimg1908.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/25/cimg1909.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/25/cimg1909.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/27/cimg1923.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/27/cimg1923.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/27/cimg1924.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/27/cimg1924.jpg.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Making bread:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1910.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1910.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1911.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1911.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1912.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1912.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1913.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1913.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1914.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1914.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1915.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1915.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1916.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1916.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1917.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1917.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1922.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1922.jpg.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Making candles:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1918.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1918.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1919.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1919.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1920.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1920.jpg.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2009/01/26/cimg1921.jpg"&gt;&lt;img src="http://data.singularity.be/images/thumb/2009/01/26/cimg1921.jpg.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Maybe I should be making youtube movies instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-535622862454901097?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/535622862454901097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=535622862454901097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/535622862454901097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/535622862454901097'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/01/some-pics.html' title='some pics'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-5037392355586689411</id><published>2009-01-26T22:50:00.003+01:00</published><updated>2009-01-26T23:06:06.651+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><title type='text'>de koran, met een snuifje verstand</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Ik ben vandaag begonnen met een kopie van de Koran te lezen die ik een jaar geleden ofzo gekocht heb. Het eerste deel bestaat uit een situering van de Koran t.o.v. andere godsdiensten ten tijde dat de Koran geschreven is. Door de eerste 8 blz had ik goede hoop voor dit boek. Het leek erop dat de leer van de Koran beter is opgebouwd dan bvb die van de Bijbel. Maar dan lees ik hetvolgende:&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;Godsdienst is geen fantasie van de mens&lt;br /&gt;&lt;br /&gt;Op de vraag nu of deze godsdiensten een product van de menselijke fantasie waren,&lt;br /&gt;luidt het antwoord zeer zeker, dat ze dit niet waren en wel om de volgende redenen:&lt;br /&gt;&lt;br /&gt;Ten eerste waren hun Stichters volgens alle gebruikelijke normen mensen van geringe &lt;br /&gt;middelen. Zij hadden geen macht of aanzien. Toch richtten zij zich zowel tot de &lt;br /&gt;groten als tot de kleinen en na verloop van tijd klommen zij en hun volgelingen van&lt;br /&gt;een bescheiden tot een hoge plaats in de wereld op. Dit bewijst, dat zij door een&lt;br /&gt;grote Macht werden gesteund en onderhouden.&lt;br /&gt;[/PRE]&lt;br /&gt;(De Koran, Arabisch - Nederlands, blz 9)&lt;br /&gt;&lt;br /&gt;Na dat stuk kom nog een "Ten tweede" zal ik jullie even besparen, maar het is al even irrelevant als bovenstaande bewijsvoering.&lt;br /&gt;&lt;br /&gt;Dat de stichters van godsdiensten nu mensen van geringe middelen waren of niet doet niet ter zake. Wat ertoe doet is dat die mensen anderen wisten te overtuigen van en onderrichten in hun leer. Dat ze zich tot groten en kleinen richtten bewijst allerminst dat ze gesteund werden door een grote Macht. Het shopping-channel bereikt ook alle groten en kleinen, maar ik zie niet in waarom god specifiek deze mensen zou steunen ?&lt;br /&gt;&lt;br /&gt;Laten we nu stellen dat die mensen dan toch door een grote Macht gesteund zijn, waarom is dit dan een bewijs dat godsdienst "zeer zeker niet" een fantasie is van de mens ? Deze bewijsvoering slaat op niks.&lt;br /&gt;&lt;br /&gt;Ik kan zo evengoed aanhalen dat god mij steunt omdat ik vandaag een brood gebakken heb en dat daarom dus het verhaal van the lord of the rings geen fantasie is.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Ik ben vandaag begonnen met een kopie van de Koran te lezen die ik een jaar geleden ofzo gekocht heb. Het eerste deel bestaat uit een situering van de Koran t.o.v. andere godsdiensten ten tijde dat de Koran geschreven is. Door de eerste 8 blz had ik goede hoop voor dit boek. Het leek erop dat de leer van de Koran beter is opgebouwd dan bvb die van de Bijbel. Maar dan lees ik hetvolgende:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;Godsdienst is geen fantasie van de mens&lt;br /&gt;&lt;br /&gt;Op de vraag nu of deze godsdiensten een product van de menselijke fantasie waren,&lt;br /&gt;luidt het antwoord zeer zeker, dat ze dit niet waren en wel om de volgende redenen:&lt;br /&gt;&lt;br /&gt;Ten eerste waren hun Stichters volgens alle gebruikelijke normen mensen van geringe &lt;br /&gt;middelen. Zij hadden geen macht of aanzien. Toch richtten zij zich zowel tot de &lt;br /&gt;groten als tot de kleinen en na verloop van tijd klommen zij en hun volgelingen van&lt;br /&gt;een bescheiden tot een hoge plaats in de wereld op. Dit bewijst, dat zij door een&lt;br /&gt;grote Macht werden gesteund en onderhouden.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;(De Koran, Arabisch - Nederlands, blz 9)&lt;br /&gt;&lt;br /&gt;Na dat stuk kom nog een "Ten tweede" zal ik jullie even besparen, maar het is al even irrelevant als bovenstaande bewijsvoering.&lt;br /&gt;&lt;br /&gt;Dat de stichters van godsdiensten nu mensen van geringe middelen waren of niet doet niet ter zake. Wat ertoe doet is dat die mensen anderen wisten te overtuigen van en onderrichten in hun leer. Dat ze zich tot groten en kleinen richtten bewijst allerminst dat ze gesteund werden door een grote Macht. Het shopping-channel bereikt ook alle groten en kleinen, maar ik zie niet in waarom god specifiek deze mensen zou steunen ?&lt;br /&gt;&lt;br /&gt;Laten we nu stellen dat die mensen dan toch door een grote Macht gesteund zijn, waarom is dit dan een bewijs dat godsdienst "zeer zeker niet" een fantasie is van de mens ? Deze bewijsvoering slaat op niks.&lt;br /&gt;&lt;br /&gt;Ik kan zo evengoed aanhalen dat god mij steunt omdat ik vandaag een brood gebakken heb en dat daarom dus het verhaal van the lord of the rings geen fantasie is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5037392355586689411?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5037392355586689411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5037392355586689411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5037392355586689411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5037392355586689411'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/01/de-koran-met-een-snuifje-verstand.html' title='de koran, met een snuifje verstand'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-9166553520616288013</id><published>2009-01-16T15:33:00.000+01:00</published><updated>2009-01-16T15:34:32.930+01:00</updated><title type='text'>Separated at birth ?</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;[FULLIMG:http://data.singularity.be/Trashcan/alex_agnew_yassin_dibi.png]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/Trashcan/alex_agnew_yassin_dibi.png"&gt;&lt;img src="http://data.singularity.be/Trashcan/alex_agnew_yassin_dibi.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-9166553520616288013?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/9166553520616288013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=9166553520616288013' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/9166553520616288013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/9166553520616288013'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/01/separated-at-birth.html' title='Separated at birth ?'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-923851906256903250</id><published>2009-01-05T09:07:00.000+01:00</published><updated>2009-01-05T09:09:53.938+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>hah! :)</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;[FULLIMG:http://data.singularity.be/Trashcan/00038q5snc1.jpg]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/Trashcan/00038q5snc1.jpg"&gt;&lt;img src="http://data.singularity.be/Trashcan/00038q5snc1.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-923851906256903250?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/923851906256903250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=923851906256903250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/923851906256903250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/923851906256903250'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2009/01/hah.html' title='hah! :)'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-3367793424508799301</id><published>2008-12-18T16:03:00.001+01:00</published><updated>2008-12-18T16:04:40.163+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='Evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>lessenroosters ok</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;My bad! Er is helemaal niks mis met de lessenroosters. Ik had in November een setting in mijn script veranderd waardoor de lessenroosters niet meer elke nacht geupdate werden. Dat is nu verholpen.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;My bad! Er is helemaal niks mis met de lessenroosters. Ik had in November een setting in mijn script veranderd waardoor de lessenroosters niet meer elke nacht geupdate werden. Dat is nu verholpen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-3367793424508799301?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/3367793424508799301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=3367793424508799301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3367793424508799301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3367793424508799301'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/12/lessenroosters-ok.html' title='lessenroosters ok'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1258276541362932329</id><published>2008-12-17T16:11:00.002+01:00</published><updated>2008-12-17T16:14:33.058+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Standaarden'/><title type='text'>Lessenroosters on the fritz ?</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Ik heb zonet gemerkt (maar vermoedde het al een tijd) dat de lessenroosters die per vak vrij beschikbaar zijn verschillen van de gepersonaliseerde lessenroosters op KULoket.&lt;br /&gt;Uiteraard maakt mijn parser gebruik van die vrije lessenroosters om iCal kalenders te genereren, waardoor die kalenders dus nu verkeerd zijn.&lt;br /&gt;&lt;br /&gt;"How can that?" Ik zal straks eens mailen naar de mensen die die lessenroosters zouden moeten beheren. Nu moet ik mij haasten naar een les die enkel op mijn gepersonaliseerd lessenrooster staat.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Ik heb zonet gemerkt (maar vermoedde het al een tijd) dat de lessenroosters die per vak vrij beschikbaar zijn verschillen van de gepersonaliseerde lessenroosters op KULoket.&lt;br /&gt;Uiteraard maakt mijn parser gebruik van die vrije lessenroosters om iCal kalenders te genereren, waardoor die kalenders dus nu verkeerd zijn.&lt;br /&gt;&lt;br /&gt;"How can that?" Ik zal straks eens mailen naar de mensen die die lessenroosters zouden moeten beheren. Nu moet ik mij haasten naar een les die enkel op mijn gepersonaliseerd lessenrooster staat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1258276541362932329?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1258276541362932329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1258276541362932329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1258276541362932329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1258276541362932329'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/12/lessenroosters-on-fritz.html' title='Lessenroosters on the fritz ?'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2557670646009964433</id><published>2008-12-13T22:45:00.000+01:00</published><updated>2008-12-13T22:46:05.675+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JMEMantzel'/><title type='text'>Operation: Crazy Operation 6 (finished bananas)</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;[YOUTUBE:I1xyaeLbN-I]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/I1xyaeLbN-I"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/I1xyaeLbN-I" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2557670646009964433?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2557670646009964433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2557670646009964433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2557670646009964433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2557670646009964433'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/12/operation-crazy-operation-6-finished.html' title='Operation: Crazy Operation 6 (finished bananas)'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2970243509337797372</id><published>2008-12-09T11:31:00.009+01:00</published><updated>2008-12-09T12:18:46.712+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMF'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='OverTheWire'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenID'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>The problem with SMF</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;As many of you know, I've been trying to set up a &lt;a href="http://www.simplemachines.org"&gt;Simple Machines Forum&lt;/a&gt; for the last couple months. SMF in itself looks like nice software, but so do many other discussion boards. The reason I picked SMF for the OverTheWire community, is because SMF supports &lt;a href="http://www.openid.net"&gt;OpenID&lt;/a&gt; authentication.&lt;br /&gt;&lt;br /&gt;OpenID is a nice invention and would be better if it was used a lot more. While OpenID providers are popping up all over the place (&lt;a href="http://dev.live.com/blogs/devlive/archive/2008/10/27/421.aspx"&gt;Even Microsoft is embracing it&lt;/a&gt;), it seems free forum software is lagging behind. SMF is one of the few that supports it and then it's even in a beta of their 2.0 release.&lt;br /&gt;&lt;br /&gt;OpenID resolves having to authenticate/login for each site you use. Log in once and sites using OpenID will automatically let you in. The remaining problem with OpenID is that all those OpenID "consumers" still require you to create an account on their system. I would prefer that this account registration would happen only once for a community: login with your OpenID ID, choose a username and it automatically populates the databases of the community forum, community wiki, community blog and all other community services that are OpenID consumers.&lt;br /&gt;&lt;br /&gt;SMF, like many others, takes a more geocentric (ever noticed how that's a permutation of egocentric ?) approach to this problem. They require you to use SMF as the "main" authentication authority and then provide "bridges" to a lot(?) of other software systems. Creating an account on SMF automatically creates an account on all those systems. That's good if you want to build a community or website around SMF, but not when SMF is just another software component.&lt;br /&gt;&lt;br /&gt;Luckily, SMF also has an API which you could call from a PHP script and that can register an account for you. Too bad it doesn't work for OpenID accounts.&lt;br /&gt;&lt;br /&gt;That brings me to the support of SMF. I was hoping to find an IRC-channel on freenode to ask some quick questions, but no joy there. If you want support on SMF, you need to register an account on the SMF forum and ask your question there. Don't bother formulating your problem too detailed there &lt;a href="http://www.simplemachines.org/community/index.php?topic=266224.0"&gt;as I did&lt;/a&gt;, because the support people only seem to glance over your question and then promptly formulate a (wrong) answer. I then spent a couple weeks on their forum, making sure they understood the question. Then suddenly, noone replied anymore and I'm left in the dark.&lt;br /&gt;&lt;br /&gt;For as little as 49.95 USD one can become a charter member of SMF. This means among other things that support questions are handled with higher priority. I've thought of paying that much money to get a decent response to my question, but I figured it would be money wasted. YMMV&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dear OverTheWire users, this is why I will not set up a forum for now: there simply is no decent forum software out there that can work with OpenID. While we all wait in suspense for such software to be created, there will be no OverTheWire forum.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;As many of you know, I've been trying to set up a &lt;a href="http://www.simplemachines.org"&gt;Simple Machines Forum&lt;/a&gt; for the last couple months. SMF in itself looks like nice software, but so do many other discussion boards. The reason I picked SMF for the OverTheWire community, is because SMF supports &lt;a href="http://www.openid.net"&gt;OpenID&lt;/a&gt; authentication.&lt;br /&gt;&lt;br /&gt;OpenID is a nice invention and would be better if it was used a lot more. While OpenID providers are popping up all over the place (&lt;a href="http://dev.live.com/blogs/devlive/archive/2008/10/27/421.aspx"&gt;Even Microsoft is embracing it&lt;/a&gt;), it seems free forum software is lagging behind. SMF is one of the few that supports it and then it's even in a beta of their 2.0 release.&lt;br /&gt;&lt;br /&gt;OpenID resolves having to authenticate/login for each site you use. Log in once and sites using OpenID will automatically let you in. The remaining problem with OpenID is that all those OpenID "consumers" still require you to create an account on their system. I would prefer that this account registration would happen only once for a community: login with your OpenID ID, choose a username and it automatically populates the databases of the community forum, community wiki, community blog and all other community services that are OpenID consumers.&lt;br /&gt;&lt;br /&gt;SMF, like many others, takes a more geocentric (ever noticed how that's a permutation of egocentric ?) approach to this problem. They require you to use SMF as the "main" authentication authority and then provide "bridges" to a lot(?) of other software systems. Creating an account on SMF automatically creates an account on all those systems. That's good if you want to build a community or website around SMF, but not when SMF is just another software component.&lt;br /&gt;&lt;br /&gt;Luckily, SMF also has an API which you could call from a PHP script and that can register an account for you. Too bad it doesn't work for OpenID accounts.&lt;br /&gt;&lt;br /&gt;That brings me to the support of SMF. I was hoping to find an IRC-channel on freenode to ask some quick questions, but no joy there. If you want support on SMF, you need to register an account on the SMF forum and ask your question there. Don't bother formulating your problem too detailed there &lt;a href="http://www.simplemachines.org/community/index.php?topic=266224.0"&gt;as I did&lt;/a&gt;, because the support people only seem to glance over your question and then promptly formulate a (wrong) answer. I then spent a couple weeks on their forum, making sure they understood the question. Then suddenly, noone replied anymore and I'm left in the dark.&lt;br /&gt;&lt;br /&gt;For as little as 49.95 USD one can become a charter member of SMF. This means among other things that support questions are handled with higher priority. I've thought of paying that much money to get a decent response to my question, but I figured it would be money wasted. YMMV&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dear OverTheWire users, this is why I will not set up a forum for now: there simply is no decent forum software out there that can work with OpenID. While we all wait in suspense for such software to be created, there will be no OverTheWire forum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2970243509337797372?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2970243509337797372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2970243509337797372' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2970243509337797372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2970243509337797372'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/12/problem-with-smf.html' title='The problem with SMF'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-3310385273171964555</id><published>2008-12-03T10:51:00.002+01:00</published><updated>2008-12-03T10:52:02.127+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JMEMantzel'/><title type='text'>Operation: Crazy operation (Racing against the snow)</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;[YOUTUBE:4uOFI7sCsYk]&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4uOFI7sCsYk"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4uOFI7sCsYk" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-3310385273171964555?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/3310385273171964555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=3310385273171964555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3310385273171964555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3310385273171964555'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/12/operation-crazy-operation-racing.html' title='Operation: Crazy operation (Racing against the snow)'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-6128892986892084574</id><published>2008-11-30T12:58:00.003+01:00</published><updated>2008-11-30T13:11:42.274+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>Looking for free Linux 3D CAD software</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I can't draw. I must admit it, I suck at drawing. That's why I've been looking for some CAD software that can do 3D, runs on linux and is free.&lt;br /&gt;&lt;br /&gt;I haven't seen anything really useful yet, except for &lt;a href="http://www.varicad.com"&gt;VariCAD&lt;/a&gt; but that is closed-source and expires after a 30-day trial :( I'm truly impressed with VariCAD after seeing the &lt;a href="http://www.varicad.com/en/home/products/demo-videos/"&gt;demos&lt;/a&gt;, so much so in fact that I even thought of buying a license. Unfortunately the price is a bit steep for me: 500 euro.&lt;br /&gt;&lt;br /&gt;The next best thing was to look for a key generator. I found 3 of them, which after a closer look, appeared to be the same one but rared in a different way. Running the keygenerator resulted in nothing at all. Fortunately for me, I run all Windows junk in a virtual machine. I noticed a lot of network-traffic when running this key generator, which is of course suspicious unless the application had to go online to fetch somne data.&lt;br /&gt;&lt;br /&gt;So what is going on ? Well, I have downloaded an oldfashioned trojan which extracts all passwords from my system and uploads that data to an FTP server together with the license keys of Windows and some other applications I have installed.&lt;br /&gt;&lt;br /&gt;Here is the server and login data, in case you want to have fun with it:&lt;br /&gt;[PRE]&lt;br /&gt;IP: 92.241.164.127&lt;br /&gt;Username: blubb&lt;br /&gt;Password: pflaumenbaum &lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Oh, and the server runs Serv-U 6.4 for winsock, which is probably vulnerable...&lt;br /&gt;&lt;br /&gt;Have fun.&lt;br /&gt;&lt;br /&gt;PS: I removed my data from the server ;)&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I can't draw. I must admit it, I suck at drawing. That's why I've been looking for some CAD software that can do 3D, runs on linux and is free.&lt;br /&gt;&lt;br /&gt;I haven't seen anything really useful yet, except for &lt;a href="http://www.varicad.com"&gt;VariCAD&lt;/a&gt; but that is closed-source and expires after a 30-day trial :( I'm truly impressed with VariCAD after seeing the &lt;a href="http://www.varicad.com/en/home/products/demo-videos/"&gt;demos&lt;/a&gt;, so much so in fact that I even thought of buying a license. Unfortunately the price is a bit steep for me: 500 euro.&lt;br /&gt;&lt;br /&gt;The next best thing was to look for a key generator. I found 3 of them, which after a closer look, appeared to be the same one but rared in a different way. Running the keygenerator resulted in nothing at all. Fortunately for me, I run all Windows junk in a virtual machine. I noticed a lot of network-traffic when running this key generator, which is of course suspicious unless the application had to go online to fetch somne data.&lt;br /&gt;&lt;br /&gt;So what is going on ? Well, I have downloaded an oldfashioned trojan which extracts all passwords from my system and uploads that data to an FTP server together with the license keys of Windows and some other applications I have installed.&lt;br /&gt;&lt;br /&gt;Here is the server and login data, in case you want to have fun with it:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;IP: 92.241.164.127&lt;br /&gt;Username: blubb&lt;br /&gt;Password: pflaumenbaum &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Oh, and the server runs Serv-U 6.4 for winsock, which is probably vulnerable...&lt;br /&gt;&lt;br /&gt;Have fun.&lt;br /&gt;&lt;br /&gt;PS: I removed my data from the server ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-6128892986892084574?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/6128892986892084574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=6128892986892084574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6128892986892084574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6128892986892084574'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/11/looking-for-free-linux-3d-cad-software.html' title='Looking for free Linux 3D CAD software'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-4615150221030411508</id><published>2008-11-27T14:54:00.021+01:00</published><updated>2008-12-13T22:45:12.453+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JMEMantzelList'/><category scheme='http://www.blogger.com/atom/ns#' term='JMEMantzel'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>heroes.add("Jaimie Mantzel");</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Always looking for new ideas for things to create, I was recently pointed to the "Giant Robot project" of &lt;a href="http://www.jamius.com"&gt;Jaimie Mantzel&lt;/a&gt;. Besides the giant robot he's creating, he also works on a lot of other cool things.&lt;br /&gt;&lt;br /&gt;He seems to keep &lt;a href="http://www.youtube.com/user/JMEMantzel"&gt;some kind of video blog on YouTube&lt;/a&gt;. All of those videos are interesting, unfortunately they are out of order.&lt;br /&gt;&lt;br /&gt;Here they are, *in* order:&lt;br /&gt;&lt;table&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-04-24&lt;/b&gt;&lt;/td&gt;&lt;td&gt;My newest robot invention... Spider Tank    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:FpOwONezb3c]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-04-25&lt;/b&gt;&lt;/td&gt;&lt;td&gt;My dog... the robot                         &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:GgnAIPEQ9YQ]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-05&lt;/b&gt;&lt;/td&gt;&lt;td&gt;wall climber... and youtube doesn't like the format   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:VS-1aVhumUI]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Snotty.... a Jaimie-mation      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:bPN_E4PKn1c]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Fishboat, solar powered...      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:X-jxo4e0ho8]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Robot Slug ....no tusks    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:6g0hGtAjkCA]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-24&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bill at Home (short movie)      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:m0AIAaNOl5c]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-07-17&lt;/b&gt;&lt;/td&gt;&lt;td&gt;5 robots        &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:vP-dOp7mPMU]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-09-04&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project, Part 1      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:86Krv3gE-c4]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-09-29&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: part 2 (lumber mill)    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:M6ON5IpUj0g]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-10-30&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 3      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:cEXuVfxMhVg]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-11-17&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Just me goin' off about the world, and answering questions  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:0nOzbCiRHhM]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-11-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 4      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:nQKNmrblxpw]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-12-01&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 5 &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:i0sizgF3WNY]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-01-09&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 6. The Dancing Baby   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:umyC0Px16AA]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-01-23&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 7     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:y35281wolP4]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-04&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 8     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:niyESsX4d4E]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-06&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 9     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:RkB2ZUk6Gl8]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-11&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 10 "Just Making Rabbits"  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:u_6JXRc65Fk]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 11 "I don't know what I'm doing" &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:FcKeMwqY-7s]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-26&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 12 "Light in the Tunnel"  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:UZyscgW-t64]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 13 Blowing off Steam  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:2vwFIOQeOT4]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-03&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 14 something about nuts. I forgot &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:JwCmp_vAH28]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-06&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 15 OUTTA GAS!   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:mcgXinhKm94]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 16 Limit Break   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:wDCpy91XtCw]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-12&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot: Part 17 Mass Production    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:-O7ymVkZilk]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-14&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 18      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:G1OsuriB7VQ]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 19 "Robo-Packing"   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:174qmYc0MJ4]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-26&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part1    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:89hes_vWyZw]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-27&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part 2    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:A9BSL3bsURo]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-27&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part 3    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:T0JfICScMfI]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-27&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part 4 (end)   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:1e3Anqe4kNU]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Robot in the Newspaper    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:9ww9dI3O_KQ]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-10&lt;/b&gt;&lt;/td&gt;&lt;td&gt;The Dome: Part 1 (the forest, and what Jaimie thinks)  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:7iLUj1idcDE]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-11&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome: Part 2a (inside... sorry for the mess)   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:epCYyeQSM_8]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-11&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome: Part 2b (continuation of 2a)    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:d1uKQQO-psE]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome systems: Part 1 Water     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:hLr6KUi8YyY]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-21&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome Systems: Part 2 Electricity    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:Jh9J87yBIAs]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome Systems: Part 3 Heating and Cooling   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:8CD2NB4H_yk]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 20 Long Haul   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:xPrCyW2u1Xc]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-23&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Tower: Part 1?  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:K_8krFyYLsU]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome: Part 4 outside firepit and stuff...   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:cCWJxFh9QmM]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-05-05&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Book on parenting     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:z72TxV93q2Y]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-19&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 1 "Getting There"    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:oseCVRhOE2g]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 2 "Foundations"    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:5i-CJ1-UBsE]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 3 (floor or something)   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:NyxSSFirPQM]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Philosophicalogisticistics. #2   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:cgiz1D8KxYY]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-24&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 4 (Logs logs logs)    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:8kVwHDDGiKA]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 5 Roof n' stuff &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:AEBCtzmv2MI]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-30&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Log Cabin: part 6 Almost Done    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:IK8pyBSrfuc]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-07-12&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Log Cabin: Part 7 On the side    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:BjuoOiTT8po]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-07-17&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Log Cabin: Part end.     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:Fb49xXfU3n8]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-07-21&lt;/b&gt;&lt;/td&gt;&lt;td&gt;"Mad Scientist" Infrastructure 1 (Robot roads)  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:nf-lL8_aM0M]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-08-25&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Mad Scientist Infrastructure: Part 2     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:l9ULv9pxCbM]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-03&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Spring Dome: Part 1 (Salvage)     &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:CjoyBy3KzhQ]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie does Rubik ...complete with screw ups   &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:gtP5UOs4EGg]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-09&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy operation (the banana building)  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:dPREeETBP3o]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-26&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy Operation (clearing the way)&lt;/td&gt;&lt;td&gt;[YOUTUBELINK:BrkBxqkbngk]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Spring Dome: Part 2 (concreteroo)    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:vH-bQ1galwM]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-10-21&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Spring Dome: Part 3 (almost done)    &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:mudd5s3rlAM]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-10-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie Sick       &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:b7hFVxfxw-0]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-10-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy Operation      &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:_7cmLooF0BE]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-11-10&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy operation (Construction Begins)  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:YbRrp_5ayvU]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-12-01&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy operation (Racing against the snow)  &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:4uOFI7sCsYk]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-12-12&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy Operation 6 (finished bananas)               &lt;/td&gt;&lt;td&gt;[YOUTUBELINK:I1xyaeLbN-I]&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Always looking for new ideas for things to create, I was recently pointed to the "Giant Robot project" of &lt;a href="http://www.jamius.com"&gt;Jaimie Mantzel&lt;/a&gt;. Besides the giant robot he's creating, he also works on a lot of other cool things.&lt;br /&gt;&lt;br /&gt;He seems to keep &lt;a href="http://www.youtube.com/user/JMEMantzel"&gt;some kind of video blog on YouTube&lt;/a&gt;. All of those videos are interesting, unfortunately they are out of order.&lt;br /&gt;&lt;br /&gt;Here they are, *in* order:&lt;br /&gt;&lt;table&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-04-24&lt;/b&gt;&lt;/td&gt;&lt;td&gt;My newest robot invention... Spider Tank    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=FpOwONezb3c'&gt;http://www.youtube.com/watch?v=FpOwONezb3c&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-04-25&lt;/b&gt;&lt;/td&gt;&lt;td&gt;My dog... the robot                         &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=GgnAIPEQ9YQ'&gt;http://www.youtube.com/watch?v=GgnAIPEQ9YQ&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-05&lt;/b&gt;&lt;/td&gt;&lt;td&gt;wall climber... and youtube doesn't like the format   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=VS-1aVhumUI'&gt;http://www.youtube.com/watch?v=VS-1aVhumUI&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Snotty.... a Jaimie-mation      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=bPN_E4PKn1c'&gt;http://www.youtube.com/watch?v=bPN_E4PKn1c&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Fishboat, solar powered...      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=X-jxo4e0ho8'&gt;http://www.youtube.com/watch?v=X-jxo4e0ho8&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Robot Slug ....no tusks    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=6g0hGtAjkCA'&gt;http://www.youtube.com/watch?v=6g0hGtAjkCA&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-05-24&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bill at Home (short movie)      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=m0AIAaNOl5c'&gt;http://www.youtube.com/watch?v=m0AIAaNOl5c&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-07-17&lt;/b&gt;&lt;/td&gt;&lt;td&gt;5 robots        &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=vP-dOp7mPMU'&gt;http://www.youtube.com/watch?v=vP-dOp7mPMU&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-09-04&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project, Part 1      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=86Krv3gE-c4'&gt;http://www.youtube.com/watch?v=86Krv3gE-c4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-09-29&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: part 2 (lumber mill)    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=M6ON5IpUj0g'&gt;http://www.youtube.com/watch?v=M6ON5IpUj0g&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-10-30&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 3      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=cEXuVfxMhVg'&gt;http://www.youtube.com/watch?v=cEXuVfxMhVg&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-11-17&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Just me goin' off about the world, and answering questions  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=0nOzbCiRHhM'&gt;http://www.youtube.com/watch?v=0nOzbCiRHhM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-11-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 4      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=nQKNmrblxpw'&gt;http://www.youtube.com/watch?v=nQKNmrblxpw&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2007-12-01&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 5 &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=i0sizgF3WNY'&gt;http://www.youtube.com/watch?v=i0sizgF3WNY&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-01-09&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 6. The Dancing Baby   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=umyC0Px16AA'&gt;http://www.youtube.com/watch?v=umyC0Px16AA&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-01-23&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 7     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=y35281wolP4'&gt;http://www.youtube.com/watch?v=y35281wolP4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-04&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 8     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=niyESsX4d4E'&gt;http://www.youtube.com/watch?v=niyESsX4d4E&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-06&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 9     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=RkB2ZUk6Gl8'&gt;http://www.youtube.com/watch?v=RkB2ZUk6Gl8&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-11&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 10 "Just Making Rabbits"  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=u_6JXRc65Fk'&gt;http://www.youtube.com/watch?v=u_6JXRc65Fk&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 11 "I don't know what I'm doing" &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=FcKeMwqY-7s'&gt;http://www.youtube.com/watch?v=FcKeMwqY-7s&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-26&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 12 "Light in the Tunnel"  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=UZyscgW-t64'&gt;http://www.youtube.com/watch?v=UZyscgW-t64&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-02-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 13 Blowing off Steam  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=2vwFIOQeOT4'&gt;http://www.youtube.com/watch?v=2vwFIOQeOT4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-03&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 14 something about nuts. I forgot &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=JwCmp_vAH28'&gt;http://www.youtube.com/watch?v=JwCmp_vAH28&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-06&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 15 OUTTA GAS!   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=mcgXinhKm94'&gt;http://www.youtube.com/watch?v=mcgXinhKm94&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 16 Limit Break   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=wDCpy91XtCw'&gt;http://www.youtube.com/watch?v=wDCpy91XtCw&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-12&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot: Part 17 Mass Production    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=-O7ymVkZilk'&gt;http://www.youtube.com/watch?v=-O7ymVkZilk&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-14&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 18      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=G1OsuriB7VQ'&gt;http://www.youtube.com/watch?v=G1OsuriB7VQ&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 19 "Robo-Packing"   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=174qmYc0MJ4'&gt;http://www.youtube.com/watch?v=174qmYc0MJ4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-26&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part1    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=89hes_vWyZw'&gt;http://www.youtube.com/watch?v=89hes_vWyZw&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-27&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part 2    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=A9BSL3bsURo'&gt;http://www.youtube.com/watch?v=A9BSL3bsURo&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-27&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part 3    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=T0JfICScMfI'&gt;http://www.youtube.com/watch?v=T0JfICScMfI&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-27&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Bee Hive's and Towers in NC: Part 4 (end)   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=1e3Anqe4kNU'&gt;http://www.youtube.com/watch?v=1e3Anqe4kNU&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-03-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Robot in the Newspaper    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=9ww9dI3O_KQ'&gt;http://www.youtube.com/watch?v=9ww9dI3O_KQ&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-10&lt;/b&gt;&lt;/td&gt;&lt;td&gt;The Dome: Part 1 (the forest, and what Jaimie thinks)  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=7iLUj1idcDE'&gt;http://www.youtube.com/watch?v=7iLUj1idcDE&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-11&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome: Part 2a (inside... sorry for the mess)   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=epCYyeQSM_8'&gt;http://www.youtube.com/watch?v=epCYyeQSM_8&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-11&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome: Part 2b (continuation of 2a)    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=d1uKQQO-psE'&gt;http://www.youtube.com/watch?v=d1uKQQO-psE&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome systems: Part 1 Water     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=hLr6KUi8YyY'&gt;http://www.youtube.com/watch?v=hLr6KUi8YyY&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-21&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome Systems: Part 2 Electricity    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=Jh9J87yBIAs'&gt;http://www.youtube.com/watch?v=Jh9J87yBIAs&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome Systems: Part 3 Heating and Cooling   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=8CD2NB4H_yk'&gt;http://www.youtube.com/watch?v=8CD2NB4H_yk&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Giant Robot Project: Part 20 Long Haul   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=xPrCyW2u1Xc'&gt;http://www.youtube.com/watch?v=xPrCyW2u1Xc&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-23&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Tower: Part 1?  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=K_8krFyYLsU'&gt;http://www.youtube.com/watch?v=K_8krFyYLsU&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-04-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dome: Part 4 outside firepit and stuff...   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=cCWJxFh9QmM'&gt;http://www.youtube.com/watch?v=cCWJxFh9QmM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-05-05&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Book on parenting     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=z72TxV93q2Y'&gt;http://www.youtube.com/watch?v=z72TxV93q2Y&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-19&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 1 "Getting There"    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=oseCVRhOE2g'&gt;http://www.youtube.com/watch?v=oseCVRhOE2g&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-20&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 2 "Foundations"    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=5i-CJ1-UBsE'&gt;http://www.youtube.com/watch?v=5i-CJ1-UBsE&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 3 (floor or something)   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=NyxSSFirPQM'&gt;http://www.youtube.com/watch?v=NyxSSFirPQM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie's Philosophicalogisticistics. #2   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=cgiz1D8KxYY'&gt;http://www.youtube.com/watch?v=cgiz1D8KxYY&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-24&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 4 (Logs logs logs)    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=8kVwHDDGiKA'&gt;http://www.youtube.com/watch?v=8kVwHDDGiKA&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Cabin: Part 5 Roof n' stuff &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=AEBCtzmv2MI'&gt;http://www.youtube.com/watch?v=AEBCtzmv2MI&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-06-30&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Log Cabin: part 6 Almost Done    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=IK8pyBSrfuc'&gt;http://www.youtube.com/watch?v=IK8pyBSrfuc&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-07-12&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Log Cabin: Part 7 On the side    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=BjuoOiTT8po'&gt;http://www.youtube.com/watch?v=BjuoOiTT8po&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-07-17&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Alaska Log Cabin: Part end.     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=Fb49xXfU3n8'&gt;http://www.youtube.com/watch?v=Fb49xXfU3n8&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-07-21&lt;/b&gt;&lt;/td&gt;&lt;td&gt;"Mad Scientist" Infrastructure 1 (Robot roads)  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=nf-lL8_aM0M'&gt;http://www.youtube.com/watch?v=nf-lL8_aM0M&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-08-25&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Mad Scientist Infrastructure: Part 2     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=l9ULv9pxCbM'&gt;http://www.youtube.com/watch?v=l9ULv9pxCbM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-03&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Spring Dome: Part 1 (Salvage)     &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=CjoyBy3KzhQ'&gt;http://www.youtube.com/watch?v=CjoyBy3KzhQ&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-08&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie does Rubik ...complete with screw ups   &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=gtP5UOs4EGg'&gt;http://www.youtube.com/watch?v=gtP5UOs4EGg&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-09&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy operation (the banana building)  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=dPREeETBP3o'&gt;http://www.youtube.com/watch?v=dPREeETBP3o&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-26&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy Operation (clearing the way)&lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=BrkBxqkbngk'&gt;http://www.youtube.com/watch?v=BrkBxqkbngk&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-09-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Spring Dome: Part 2 (concreteroo)    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=vH-bQ1galwM'&gt;http://www.youtube.com/watch?v=vH-bQ1galwM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-10-21&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Spring Dome: Part 3 (almost done)    &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=mudd5s3rlAM'&gt;http://www.youtube.com/watch?v=mudd5s3rlAM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-10-22&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Jaimie Sick       &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=b7hFVxfxw-0'&gt;http://www.youtube.com/watch?v=b7hFVxfxw-0&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-10-28&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy Operation      &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=_7cmLooF0BE'&gt;http://www.youtube.com/watch?v=_7cmLooF0BE&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-11-10&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy operation (Construction Begins)  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=YbRrp_5ayvU'&gt;http://www.youtube.com/watch?v=YbRrp_5ayvU&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-12-01&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy operation (Racing against the snow)  &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=4uOFI7sCsYk'&gt;http://www.youtube.com/watch?v=4uOFI7sCsYk&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;2008-12-12&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Operation: Crazy Operation 6 (finished bananas)               &lt;/td&gt;&lt;td&gt;&lt;a href='http://www.youtube.com/watch?v=I1xyaeLbN-I'&gt;http://www.youtube.com/watch?v=I1xyaeLbN-I&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4615150221030411508?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4615150221030411508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4615150221030411508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4615150221030411508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4615150221030411508'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/11/heroesaddjamier-mantzel.html' title='heroes.add(&quot;Jaimie Mantzel&quot;);'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-389351920371030566</id><published>2008-11-27T12:35:00.008+01:00</published><updated>2008-11-27T13:38:35.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sick'/><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>the other kind of sick</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;&lt;a href="http://www.singularity.be/2008/09/vicks-vitamin-c-anti-viral-tissues-lots.html"&gt;Some time ago&lt;/a&gt; I logged the symptoms of a cold to have a reference in the future about how long my colds last. It so happens that I also suffer from another illness at times which is less physical and more mental. I don't know what it's called.&lt;br /&gt;&lt;br /&gt;Having been in this state of mind a lot, I've been subjected to a lot of its symptoms in various groupings and various levels of magnitude.&lt;br /&gt;&lt;br /&gt;Here are the ones I can think of right now:&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Feeling alone&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Speaks for itself. Feeling alone and socially isolated, noone to talk to or be around. Its range goes from a very tiny little feeling to the Great Mental Collapse of '98 which was worse by 4 or 5 orders of magnitude (base 10). It helps to go out and talk to random people.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Being unmotivated&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Nothing to do or not knowing what to do, being bored, sitting still. At times it feels like nothing I do matters at all and that I might just aswell sit in front of a TV like a sack of potatoes. Usually (if not always) this happens when noone is aware of what I do and so there is noone to admire it. It helps to remember that other people's opinions don't matter and that I should do whatever I like to do.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Thinking too much&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;When I have nothing to do and keep my mind busy, my mind starts to wander and I &lt;br /&gt;tend to think the worst. I start to wonder why I haven't heard from people in a while and conclude they no longer want anything to do with me. I start to wonder what use it is to do things, because I don't get anything out of it most of the time. I start to question my kindness and begin to believe that people are abusing it all the time.&lt;br /&gt;&lt;br /&gt;And in general, I become too serious about things and noone wants to talk to me when I'm serious (unless I'm doing an exam of course), which reinforces my thoughts and that all becomes a self-fulfilling thing.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Being in a bad mood&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;When I'm in a bad mood, I get mad easily. I like to think I can hide it well, having seen a lot of bad moods from my parents and other family matters. But still it probably shows. Don't piss me off when I'm in a bad mood. I try to keep away from people to avoid snapping at them. I've learned the hard way that I can say things I don't mean and it's better to avoid saying them than to fix up things afterwards. In it's worst stage, I want to hurt people and destroy things. This hasn't happened before because I really do have self-control. But if I ever feel such a mood coming, I will get as far away as possible from anything and anyone I like. So if I'm suddenly on the other side of the planet, you know what happenend.&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;I found that sometimes sleeping helps. Sometimes running a couple kilometers helps. And then there are times when nothing seems to help. Still working on a one-size-fits-all solution.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;a href="http://www.singularity.be/2008/09/vicks-vitamin-c-anti-viral-tissues-lots.html"&gt;Some time ago&lt;/a&gt; I logged the symptoms of a cold to have a reference in the future about how long my colds last. It so happens that I also suffer from another illness at times which is less physical and more mental. I don't know what it's called.&lt;br /&gt;&lt;br /&gt;Having been in this state of mind a lot, I've been subjected to a lot of its symptoms in various groupings and various levels of magnitude.&lt;br /&gt;&lt;br /&gt;Here are the ones I can think of right now:&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Feeling alone&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Speaks for itself. Feeling alone and socially isolated, noone to talk to or be around. Its range goes from a very tiny little feeling to the Great Mental Collapse of '98 which was worse by 4 or 5 orders of magnitude (base 10). It helps to go out and talk to random people.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Being unmotivated&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Nothing to do or not knowing what to do, being bored, sitting still. At times it feels like nothing I do matters at all and that I might just aswell sit in front of a TV like a sack of potatoes. Usually (if not always) this happens when noone is aware of what I do and so there is noone to admire it. It helps to remember that other people's opinions don't matter and that I should do whatever I like to do.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Thinking too much&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;When I have nothing to do and keep my mind busy, my mind starts to wander and I &lt;br /&gt;tend to think the worst. I start to wonder why I haven't heard from people in a while and conclude they no longer want anything to do with me. I start to wonder what use it is to do things, because I don't get anything out of it most of the time. I start to question my kindness and begin to believe that people are abusing it all the time.&lt;br /&gt;&lt;br /&gt;And in general, I become too serious about things and noone wants to talk to me when I'm serious (unless I'm doing an exam of course), which reinforces my thoughts and that all becomes a self-fulfilling thing.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Being in a bad mood&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;When I'm in a bad mood, I get mad easily. I like to think I can hide it well, having seen a lot of bad moods from my parents and other family matters. But still it probably shows. Don't piss me off when I'm in a bad mood. I try to keep away from people to avoid snapping at them. I've learned the hard way that I can say things I don't mean and it's better to avoid saying them than to fix up things afterwards. In it's worst stage, I want to hurt people and destroy things. This hasn't happened before because I really do have self-control. But if I ever feel such a mood coming, I will get as far away as possible from anything and anyone I like. So if I'm suddenly on the other side of the planet, you know what happenend.&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;I found that sometimes sleeping helps. Sometimes running a couple kilometers helps. And then there are times when nothing seems to help. Still working on a one-size-fits-all solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-389351920371030566?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/389351920371030566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=389351920371030566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/389351920371030566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/389351920371030566'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/11/other-kind-of-sick.html' title='the other kind of sick'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2306713007657679530</id><published>2008-11-25T16:47:00.003+01:00</published><updated>2008-11-25T16:59:27.993+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>Beste Samson en Gert,</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;ik ben al jarenlang fan van jullie en jullie TV-show. Zonet was ik weer&lt;br /&gt;volop aan het genieten van jullie programma wanneer Alberto op de deur klopt.&lt;br /&gt;&lt;br /&gt;"Ik moest kloppen want de bel doet het niet", zei hij. Dat doet mij nu even denken aan mijn perikelen met het glazenmakersbedrijf dat al 2.5 maand een raam hadd moeten plaatsen. Ik denk dat het bij jullie nog net iets erger is. Al meer dan 10 jaar met een kapotte bel ?! Dat is waanzinnig.&lt;br /&gt;&lt;br /&gt;Daarom wil ik, omdat ik zo'n grote fan ben, jullie bel volledig gratis komen vervangen door een gloednieuw draadloos model:&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/2008/11/25/p_3456169_1.jpg]&lt;br /&gt;&lt;br /&gt;Ik ben de bel reeds gaan kopen (17.59 euro) en wacht vol ongeduld op jullie seintje om die te komen plaatsen.&lt;br /&gt;&lt;br /&gt;met vriendelijke groeten,&lt;br /&gt;jullie grootste fan Steven&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;ik ben al jarenlang fan van jullie en jullie TV-show. Zonet was ik weer&lt;br /&gt;volop aan het genieten van jullie programma wanneer Alberto op de deur klopt.&lt;br /&gt;&lt;br /&gt;"Ik moest kloppen want de bel doet het niet", zei hij. Dat doet mij nu even denken aan mijn perikelen met het glazenmakersbedrijf dat al 2.5 maand een raam hadd moeten plaatsen. Ik denk dat het bij jullie nog net iets erger is. Al meer dan 10 jaar met een kapotte bel ?! Dat is waanzinnig.&lt;br /&gt;&lt;br /&gt;Daarom wil ik, omdat ik zo'n grote fan ben, jullie bel volledig gratis komen vervangen door een gloednieuw draadloos model:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008/11/25/p_3456169_1.jpg"&gt;&lt;img src="http://data.singularity.be/images/full/2008/11/25/p_3456169_1.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ik ben de bel reeds gaan kopen (17.59 euro) en wacht vol ongeduld op jullie seintje om die te komen plaatsen.&lt;br /&gt;&lt;br /&gt;met vriendelijke groeten,&lt;br /&gt;jullie grootste fan Steven&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2306713007657679530?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2306713007657679530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2306713007657679530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2306713007657679530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2306713007657679530'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/11/beste-samson-en-gert.html' title='Beste Samson en Gert,'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-5023921036562964759</id><published>2008-11-23T12:03:00.003+01:00</published><updated>2008-11-23T12:53:20.629+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC'/><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>more setbacks</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Some time ago I bought a MAX232 chip to convert RS232 levels from my serial port to TTL 5V levels. I also bought a DB9 connector and some capacitors to go with it.&lt;br /&gt;&lt;br /&gt;Unfortunately, I can no longer find those. I've pretty much looked everywhere.&lt;br /&gt;&lt;br /&gt;This is a bad setback for me at the moment. Everything seems to be going wrong lately and its brought my morale down to a very low level. If I don't do something interesting or fun soon, I'm going to get lost, crash down and burn alive. I've been there once, it's horrible.&lt;br /&gt;&lt;br /&gt;I sometimes wonder if this is what psychopaths go through before they snap. Not that I see myself becoming one, even under the worst of conditions.&lt;br /&gt;&lt;br /&gt;I need to either focus hard on what I'm doing and forget the rest of the world, but that's what I've been trying to do and it's not working.&lt;br /&gt;The other option is to go out and do social activities, have fun and relax. I have no idea how to do that.&lt;br /&gt;&lt;br /&gt;ObMovieQuote:&lt;br /&gt;[PRE]&lt;br /&gt;Nash: What do people do?&lt;br /&gt;Alicia: . . . It's called life, John. Activities available; just add meaning.&lt;br /&gt;(A Beautiful Mind)&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Some time ago I bought a MAX232 chip to convert RS232 levels from my serial port to TTL 5V levels. I also bought a DB9 connector and some capacitors to go with it.&lt;br /&gt;&lt;br /&gt;Unfortunately, I can no longer find those. I've pretty much looked everywhere.&lt;br /&gt;&lt;br /&gt;This is a bad setback for me at the moment. Everything seems to be going wrong lately and its brought my morale down to a very low level. If I don't do something interesting or fun soon, I'm going to get lost, crash down and burn alive. I've been there once, it's horrible.&lt;br /&gt;&lt;br /&gt;I sometimes wonder if this is what psychopaths go through before they snap. Not that I see myself becoming one, even under the worst of conditions.&lt;br /&gt;&lt;br /&gt;I need to either focus hard on what I'm doing and forget the rest of the world, but that's what I've been trying to do and it's not working.&lt;br /&gt;The other option is to go out and do social activities, have fun and relax. I have no idea how to do that.&lt;br /&gt;&lt;br /&gt;ObMovieQuote:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;Nash: What do people do?&lt;br /&gt;Alicia: . . . It's called life, John. Activities available; just add meaning.&lt;br /&gt;(A Beautiful Mind)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5023921036562964759?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5023921036562964759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5023921036562964759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5023921036562964759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5023921036562964759'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/11/more-setbacks.html' title='more setbacks'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1263259382928221465</id><published>2008-11-15T10:11:00.003+01:00</published><updated>2008-11-15T10:18:09.080+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Standaarden'/><title type='text'>google kalenders</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;De iCal versies van de reservatie-schema's van de PC-lokalen zijn nu ook te raadplegen via Google kalender. Dit is handiger voor iedereen die geen lokaal kalendersysteem ter beschikking heeft dat iCal ondersteunt (er bestaan inderdaad nog van die achterlijke kalenders)&lt;br /&gt;&lt;br /&gt;De google kalenders zijn hier te vinden:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=v20km9jv2sv1f601s9lhv8fjrelvi2s7%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A SOL N&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=4dp6id3un8n0fsjf15qt4fju471hcq0k%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A SOL Z&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=mr9hns0tmcdhc7cv2uebf2h2lfcerubn%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A 00.124&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=i9j6mmoesvtr4v1f45tuhgce2c9o494u%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A 00.144&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;De links staan uiteraard ook op &lt;a href="http://data.singularity.be/courseschedules/"&gt;http://data.singularity.be/courseschedules/&lt;/a&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;De iCal versies van de reservatie-schema's van de PC-lokalen zijn nu ook te raadplegen via Google kalender. Dit is handiger voor iedereen die geen lokaal kalendersysteem ter beschikking heeft dat iCal ondersteunt (er bestaan inderdaad nog van die achterlijke kalenders)&lt;br /&gt;&lt;br /&gt;De google kalenders zijn hier te vinden:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=v20km9jv2sv1f601s9lhv8fjrelvi2s7%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A SOL N&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=4dp6id3un8n0fsjf15qt4fju471hcq0k%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A SOL Z&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=mr9hns0tmcdhc7cv2uebf2h2lfcerubn%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A 00.124&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href='http://www.google.com/calendar/embed?src=i9j6mmoesvtr4v1f45tuhgce2c9o494u%40import.calendar.google.com&amp;ctz=Europe/Brussels'&gt;200A 00.144&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;De links staan uiteraard ook op &lt;a href="http://data.singularity.be/courseschedules/"&gt;http://data.singularity.be/courseschedules/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1263259382928221465?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1263259382928221465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1263259382928221465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1263259382928221465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1263259382928221465'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/11/google-kalenders.html' title='google kalenders'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-4226173458961423139</id><published>2008-11-06T19:07:00.004+01:00</published><updated>2008-11-06T20:40:20.905+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>bezetting van de PC-klassen SOL N en SOL Z</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Woensdag was er een deadline voor een project waarvoor we gebruik moeten maken van de PCklassen SOL N of SOL Z, allebei in gebouw 200A. Op maandag was er afgesproken om op dinsdag daar aanwezig te zijn en hard te werken aan het project.&lt;br /&gt;Toen we daar dinsdag aankwamen bleken beide lokalen heel de voormiddag bezet voor een oefenzitting.&lt;br /&gt;&lt;br /&gt;Om toekomstige planningsproblemen te vermijden ben ik vandaag aan het secretariaat gaan vragen&lt;br /&gt;of de reservatielijst van de PCklassen ergens online te raadplegen is. Dat blijkt niet zo te zijn...&lt;br /&gt;&lt;br /&gt;Goed, dan doe ik het maar op de harde manier. Aangezien ik toch al een aantal vakroosters omzet naar iCal, is het niet zoveel moeite om ALLE vakroosters af te halen en om te zetten naar iCal.&lt;br /&gt;Daarna kan ik alle vakroosters bij mekaar gooien, zien welke vakken op welke momenten gebruikmaken van SOL N of SOL Z, en daar een mooie kalender van maken.&lt;br /&gt;&lt;br /&gt;For future reference, een quick-and-dirty manier om uit een pagina zoals &lt;a href="http://www.kuleuven.be/onderwijs/aanbod/opleidingen/N/SC_50074049.htm"&gt;deze&lt;/a&gt; alle vakcodes te distilleren.&lt;br /&gt;[PRE]&lt;br /&gt;grep syllabi|sed 's:.*&amp;lt;a::'|sed 's:&amp;lt;/a.*::'|sed 's:.*&amp;gt;::'|sort| uniq&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Mijn lijst met vakken omvat nu 276 verschillende vakken uit de bachelor- en master-jaren van de richtingen informatica en burgerlijk ingenieur CW.&lt;br /&gt;&lt;br /&gt;De reservatie-schemas voor SOL N en SOL Z staan nu bij op &lt;a href="http://data.singularity.be/courseschedules/"&gt;http://data.singularity.be/courseschedules/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Woensdag was er een deadline voor een project waarvoor we gebruik moeten maken van de PCklassen SOL N of SOL Z, allebei in gebouw 200A. Op maandag was er afgesproken om op dinsdag daar aanwezig te zijn en hard te werken aan het project.&lt;br /&gt;Toen we daar dinsdag aankwamen bleken beide lokalen heel de voormiddag bezet voor een oefenzitting.&lt;br /&gt;&lt;br /&gt;Om toekomstige planningsproblemen te vermijden ben ik vandaag aan het secretariaat gaan vragen&lt;br /&gt;of de reservatielijst van de PCklassen ergens online te raadplegen is. Dat blijkt niet zo te zijn...&lt;br /&gt;&lt;br /&gt;Goed, dan doe ik het maar op de harde manier. Aangezien ik toch al een aantal vakroosters omzet naar iCal, is het niet zoveel moeite om ALLE vakroosters af te halen en om te zetten naar iCal.&lt;br /&gt;Daarna kan ik alle vakroosters bij mekaar gooien, zien welke vakken op welke momenten gebruikmaken van SOL N of SOL Z, en daar een mooie kalender van maken.&lt;br /&gt;&lt;br /&gt;For future reference, een quick-and-dirty manier om uit een pagina zoals &lt;a href="http://www.kuleuven.be/onderwijs/aanbod/opleidingen/N/SC_50074049.htm"&gt;deze&lt;/a&gt; alle vakcodes te distilleren.&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;grep syllabi|sed 's:.*&amp;lt;a::'|sed 's:&amp;lt;/a.*::'|sed 's:.*&amp;gt;::'|sort| uniq&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Mijn lijst met vakken omvat nu 276 verschillende vakken uit de bachelor- en master-jaren van de richtingen informatica en burgerlijk ingenieur CW.&lt;br /&gt;&lt;br /&gt;De reservatie-schemas voor SOL N en SOL Z staan nu bij op &lt;a href="http://data.singularity.be/courseschedules/"&gt;http://data.singularity.be/courseschedules/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4226173458961423139?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4226173458961423139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4226173458961423139' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4226173458961423139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4226173458961423139'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/11/bezetting-van-de-pc-klassen-sol-n-en.html' title='bezetting van de PC-klassen SOL N en SOL Z'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-7416282561658338525</id><published>2008-10-19T10:59:00.002+02:00</published><updated>2008-10-19T11:06:17.933+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='Evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Standaarden'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>K.U.Leuven lessenroosters in iCalender formaat</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;&lt;a href="http://www.singularity.be/2008/09/back-to-books.html"&gt;Een tijdje terug&lt;/a&gt; schreef ik een scriptje om de lessenroosters van mijn vakken te converteren naar iCal formaat zodat ik die in mijn digitale agenda kan gebruiken.&lt;br /&gt;&lt;br /&gt;Door &lt;a href="https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/281956"&gt;een bug&lt;/a&gt; in Evolution werden mijn ical lessenroosters slecht weergegeven en da werkte nogal ontmoedigend. Nu weet ik dat de bug in Ubuntu Intrepid gefixt werd en heb ik gisteren mijn scriptje geautomatiseerd zodat mijn kalenders automatisch geupdate worden.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/courseschedules/"&gt;http://data.singularity.be/courseschedules/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De kalenders zijn rechtstreeks met webcal:// links te gebruiken. Deze links werken vanuit firefox, maar niet standaard in Opera blijkbaar.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;a href="http://www.singularity.be/2008/09/back-to-books.html"&gt;Een tijdje terug&lt;/a&gt; schreef ik een scriptje om de lessenroosters van mijn vakken te converteren naar iCal formaat zodat ik die in mijn digitale agenda kan gebruiken.&lt;br /&gt;&lt;br /&gt;Door &lt;a href="https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/281956"&gt;een bug&lt;/a&gt; in Evolution werden mijn ical lessenroosters slecht weergegeven en da werkte nogal ontmoedigend. Nu weet ik dat de bug in Ubuntu Intrepid gefixt werd en heb ik gisteren mijn scriptje geautomatiseerd zodat mijn kalenders automatisch geupdate worden.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/courseschedules/"&gt;http://data.singularity.be/courseschedules/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De kalenders zijn rechtstreeks met webcal:// links te gebruiken. Deze links werken vanuit firefox, maar niet standaard in Opera blijkbaar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7416282561658338525?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7416282561658338525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7416282561658338525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7416282561658338525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7416282561658338525'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/10/kuleuven-lessenroosters-in-icalender.html' title='K.U.Leuven lessenroosters in iCalender formaat'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-358578357984138297</id><published>2008-10-05T10:59:00.002+02:00</published><updated>2008-10-05T11:07:54.729+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><title type='text'>Open Bedrijvendag 2008</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Vandaag is het Open Bedrijvendag. Voor een keertje ben ik ervan op de hoogte voordat de dag voorbij is, dus ik dacht eens een interessant lokaal bedrijf te bezoeken.&lt;br /&gt;&lt;br /&gt;De officiele website is te vinden op &lt;a href="http://www.openbedrijvendag.be"&gt;http://www.openbedrijvendag.be&lt;/a&gt;. Spijtig genoeg blijkt die site hondstraag te zijn en op het eerste gezicht geen lijst te bevatten van alle 437 deelnemende bedrijven. Er zou wel een insert zitten in een paar kranten van 1 oktober, maar daar geraak ik nu waarschijnlijk niet meer aan.&lt;br /&gt;&lt;br /&gt;Het thema van deze OBD is "Technologische Innovatie". Voor mij is het beschikbaar stellen van een insert in electronische vorm veel innovatiever dan een insert in een krant, om van het aantal gesneuvelde bomen maar te zwijgen. Nuja, via de krant bereik je uiteraard meer mensen, maar dat is geen reden om geen lijst van deelnemende bedrijven online te zetten voor de rest van de mensen.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Vandaag is het Open Bedrijvendag. Voor een keertje ben ik ervan op de hoogte voordat de dag voorbij is, dus ik dacht eens een interessant lokaal bedrijf te bezoeken.&lt;br /&gt;&lt;br /&gt;De officiele website is te vinden op &lt;a href="http://www.openbedrijvendag.be"&gt;http://www.openbedrijvendag.be&lt;/a&gt;. Spijtig genoeg blijkt die site hondstraag te zijn en op het eerste gezicht geen lijst te bevatten van alle 437 deelnemende bedrijven. Er zou wel een insert zitten in een paar kranten van 1 oktober, maar daar geraak ik nu waarschijnlijk niet meer aan.&lt;br /&gt;&lt;br /&gt;Het thema van deze OBD is "Technologische Innovatie". Voor mij is het beschikbaar stellen van een insert in electronische vorm veel innovatiever dan een insert in een krant, om van het aantal gesneuvelde bomen maar te zwijgen. Nuja, via de krant bereik je uiteraard meer mensen, maar dat is geen reden om geen lijst van deelnemende bedrijven online te zetten voor de rest van de mensen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-358578357984138297?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/358578357984138297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=358578357984138297' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/358578357984138297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/358578357984138297'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/10/open-bedrijvendag-2008.html' title='Open Bedrijvendag 2008'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-7512905244283948975</id><published>2008-09-22T21:22:00.006+02:00</published><updated>2008-09-22T22:01:18.416+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='Evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Back to the books</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;If word hasn't reached you yet, I'm going back to university fulltime for a Masters degree in engineering science: computer science.&lt;br /&gt;&lt;br /&gt;I was asked to put together a schedule for myself, totalling 120 points and spread over 2 years. Each year should have 60 points, each semester should have about 30 points. All in all a difficult task. To make things worse, my university doesn't have schedules per course in any usable format. Instead, the &lt;a href="http://webwsp.aps.kuleuven.be/sap/public/bsphttp/sap/z_mijnuurrstrs/pre_laden.htm?OBJID=50448412&amp;OTYPE=SM&amp;TAAL=N&amp;SEL_JAAR=2008"&gt;schedules are rendered&lt;/a&gt; in some table-style spaghetti, loaded heavily with javascript and a lot of "please wait while loading" screens.&lt;br /&gt;&lt;br /&gt;I wrote a perlscript to convert the schedule of a certain course to iCal format, so I can load them into my Evolution calendar.&lt;br /&gt;&lt;br /&gt;[DOWNLOAD:http://data.singularity.be/Trashcan/ConvertScheduleToICal.pl.gz]&lt;br /&gt;&lt;br /&gt;If you need help getting it to work, send me a mail.&lt;br /&gt;&lt;br /&gt;Anyway, I've created a schedule for myself and sent it in. These are the courses I would like to follow this year:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01D2AE.htm"&gt;Informatie-overdracht en -verwerking&lt;/a&gt; (5)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/G0Q57AE.htm"&gt;Modellering en simulatie&lt;/a&gt; (6)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01L4AE.htm"&gt;Digitale en analoge communicatie&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01Q3AE.htm"&gt;P&amp;O Computerwetenschappen, hoofdrichting&lt;/a&gt; (8)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04L2AE.htm"&gt;Software voor real-time en embedded systemen&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05M8AE.htm"&gt;Capita selecta computerwetenschappen: Veilige software&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01M8AE.htm"&gt;Systeemtheorie en regeltechniek&lt;/a&gt; (6)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01B4AE.htm"&gt;Thermodynamica&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01L1AE.htm"&gt;Digitale elektronica en processoren&lt;/a&gt; (6)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05C7AE.htm"&gt;Beeldverwerking en visuele inspectie&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/G0B36AE.htm"&gt;Computergrafieken II&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;And this is for next year (Excluding the 24point thesis):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05U7AE.htm"&gt;Capita selecta in de ingenieurswetenschappen: Athens&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05C5AE.htm"&gt;Beeldinterpretatie&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04J9AE.htm"&gt;Ontwerp en analyse van softwaresystemen, deel 1&lt;/a&gt; (8)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04G9BE.htm"&gt;Compilerconstructie&lt;/a&gt; (5)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05N2AE.htm"&gt;Capita selecta, mens machine communicatie en multimedia&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H02H4AE.htm"&gt;Multi-Agent Systems&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04I0AE.htm"&gt;Internetinfrastructuur&lt;/a&gt; (5)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H02A8AE.htm"&gt;Advanced Programming Languages for A.I.&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;If word hasn't reached you yet, I'm going back to university fulltime for a Masters degree in engineering science: computer science.&lt;br /&gt;&lt;br /&gt;I was asked to put together a schedule for myself, totalling 120 points and spread over 2 years. Each year should have 60 points, each semester should have about 30 points. All in all a difficult task. To make things worse, my university doesn't have schedules per course in any usable format. Instead, the &lt;a href="http://webwsp.aps.kuleuven.be/sap/public/bsphttp/sap/z_mijnuurrstrs/pre_laden.htm?OBJID=50448412&amp;OTYPE=SM&amp;TAAL=N&amp;SEL_JAAR=2008"&gt;schedules are rendered&lt;/a&gt; in some table-style spaghetti, loaded heavily with javascript and a lot of "please wait while loading" screens.&lt;br /&gt;&lt;br /&gt;I wrote a perlscript to convert the schedule of a certain course to iCal format, so I can load them into my Evolution calendar.&lt;br /&gt;&lt;br /&gt;&lt;div style="padding: 2px; background-color: #f0f0f0;"&gt;&lt;a href="http://data.singularity.be/Trashcan/ConvertScheduleToICal.pl.gz"&gt;&lt;img style="vertical-align: middle; padding: 2px;" src="http://data.singularity.be/images/icon/download-icon.png"&gt;Download http://data.singularity.be/Trashcan/ConvertScheduleToICal.pl.gz&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If you need help getting it to work, send me a mail.&lt;br /&gt;&lt;br /&gt;Anyway, I've created a schedule for myself and sent it in. These are the courses I would like to follow this year:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01D2AE.htm"&gt;Informatie-overdracht en -verwerking&lt;/a&gt; (5)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/G0Q57AE.htm"&gt;Modellering en simulatie&lt;/a&gt; (6)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01L4AE.htm"&gt;Digitale en analoge communicatie&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01Q3AE.htm"&gt;P&amp;O Computerwetenschappen, hoofdrichting&lt;/a&gt; (8)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04L2AE.htm"&gt;Software voor real-time en embedded systemen&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05M8AE.htm"&gt;Capita selecta computerwetenschappen: Veilige software&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01M8AE.htm"&gt;Systeemtheorie en regeltechniek&lt;/a&gt; (6)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01B4AE.htm"&gt;Thermodynamica&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H01L1AE.htm"&gt;Digitale elektronica en processoren&lt;/a&gt; (6)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05C7AE.htm"&gt;Beeldverwerking en visuele inspectie&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/G0B36AE.htm"&gt;Computergrafieken II&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;And this is for next year (Excluding the 24point thesis):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05U7AE.htm"&gt;Capita selecta in de ingenieurswetenschappen: Athens&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05C5AE.htm"&gt;Beeldinterpretatie&lt;/a&gt; (3)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04J9AE.htm"&gt;Ontwerp en analyse van softwaresystemen, deel 1&lt;/a&gt; (8)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04G9BE.htm"&gt;Compilerconstructie&lt;/a&gt; (5)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H05N2AE.htm"&gt;Capita selecta, mens machine communicatie en multimedia&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H02H4AE.htm"&gt;Multi-Agent Systems&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H04I0AE.htm"&gt;Internetinfrastructuur&lt;/a&gt; (5)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.kuleuven.be/onderwijs/aanbod/syllabi/H02A8AE.htm"&gt;Advanced Programming Languages for A.I.&lt;/a&gt; (4)&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7512905244283948975?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7512905244283948975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7512905244283948975' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7512905244283948975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7512905244283948975'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/09/back-to-books.html' title='Back to the books'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-5684463917809570794</id><published>2008-09-15T09:42:00.006+02:00</published><updated>2008-11-25T11:37:49.108+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sick'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Vicks, Vitamin C, anti-viral tissues, lots of water, ...</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;It's that time of year again: I have a cold. It started last friday evening and became a fullblown annoyance at the wedding party on saturday.&lt;br /&gt;&lt;br /&gt;I blame my lack of sports the last months and am now motivated again to go out and work on my physical condition. But that has to wait untill I'm cured.&lt;br /&gt;&lt;br /&gt;Wikipedia says the following about a cure for the &lt;a href="http://en.wikipedia.org/wiki/Common_cold"&gt;common cold&lt;/a&gt;&lt;br /&gt;[PRE]&lt;br /&gt;As there is no medically proven and accepted medication directly targeting the causative agent,&lt;br /&gt;there is no cure for the common cold. Treatment is limited to symptomatic supportive options,&lt;br /&gt;maximizing the comfort of the patient, and limiting complications and harmful sequelae.&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;There is no cure. fail :( Because I have nothing better to do at the moment, I will try to keep track of the development of my symptoms so that next time I will be able to guesstimate what phase of the illness I'm in.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Friday sept 12&lt;/b&gt;&lt;br /&gt;My throat became a little sore in the evening. At first I thought I was thursty but after drinking a lot of water, my throat was still sore.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Saturday sept 13&lt;/b&gt;&lt;br /&gt;I woke up with a swollen throat and swallowing was painful. During the afternoon my nose became congested without running. Because of this I started getting a slight headache. In the evening, I noticed that my sore throat had mostly vanished.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sunday sept 14&lt;/b&gt;&lt;br /&gt;Went to bed around 3am, woke up again around 5.30. I was annoyed at myself for not being able to breathe properly and sleep well. I was in some weird mental state, half awake and half asleep where nothing made sense. I've been in this state of mind before and it is absolutely not to be enjoyed. I went back to sleep and got up around 9. The trip home was pretty uneventful (illness-wise).&lt;br /&gt;&lt;br /&gt;Around 1PM, my nose was starting to run a little. I went to a store and bought a small box of vicks (cherry) and 2 bags of vicks with eucalyptus. The eucalyptus vicks sucks ;) It tastes horrible and I prefer not to have to take it.&lt;br /&gt;&lt;br /&gt;By 5 or 6PM, I was feeling miserable and decided to lay down a bit because I thought I was sleepy. Again my running nose and nasal congestion mad it hard to breathe and I had difficulty falling asleep. Around 8PM, I got up again feeling less miserable and completely awake.&lt;br /&gt;&lt;br /&gt;I decided to combat the illness in full force. I ate 2 apples for the vitamins and drank 3 big mugs of tea with a lot of sugar in them (it has helped my before). I also noticed that my hearing faded a bit.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Monday sept 15&lt;/b&gt;&lt;br /&gt;Woke up with nasal congestion and running nose. Went to the store and bought 2 big bags of fruitflavored vicks with vitamin C, 3 oranges, 24 pocketsize bags of tissues and 2 boxes of kleenex antiviral tissues.&lt;br /&gt;I'm starting to sneeze and cough, and also seem to have some kind of stomach flu.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tuesday sept 16&lt;/b&gt;&lt;br /&gt;My nose is clear and no longer running. The coughing got worse and the stomach flu turned into stomach pain. I'm definitely not 100% OK yet, but I feel like the worst part is over.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wednesday sept 17&lt;/b&gt;&lt;br /&gt;The stomach pain is completely gone and my coughing has lessened. I cough up a lot of slimes, but thats better than only coughing up my lungs.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thursday sept 18&lt;/b&gt;&lt;br /&gt;I think I'm completely cured! For the first time since sunday, I had some appetite again and enjoyed my food. I'm starting to notice a lot more sick people around me and I wish them well :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;It's that time of year again: I have a cold. It started last friday evening and became a fullblown annoyance at the wedding party on saturday.&lt;br /&gt;&lt;br /&gt;I blame my lack of sports the last months and am now motivated again to go out and work on my physical condition. But that has to wait untill I'm cured.&lt;br /&gt;&lt;br /&gt;Wikipedia says the following about a cure for the &lt;a href="http://en.wikipedia.org/wiki/Common_cold"&gt;common cold&lt;/a&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;As there is no medically proven and accepted medication directly targeting the causative agent,&lt;br /&gt;there is no cure for the common cold. Treatment is limited to symptomatic supportive options,&lt;br /&gt;maximizing the comfort of the patient, and limiting complications and harmful sequelae.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;There is no cure. fail :( Because I have nothing better to do at the moment, I will try to keep track of the development of my symptoms so that next time I will be able to guesstimate what phase of the illness I'm in.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Friday sept 12&lt;/b&gt;&lt;br /&gt;My throat became a little sore in the evening. At first I thought I was thursty but after drinking a lot of water, my throat was still sore.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Saturday sept 13&lt;/b&gt;&lt;br /&gt;I woke up with a swollen throat and swallowing was painful. During the afternoon my nose became congested without running. Because of this I started getting a slight headache. In the evening, I noticed that my sore throat had mostly vanished.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sunday sept 14&lt;/b&gt;&lt;br /&gt;Went to bed around 3am, woke up again around 5.30. I was annoyed at myself for not being able to breathe properly and sleep well. I was in some weird mental state, half awake and half asleep where nothing made sense. I've been in this state of mind before and it is absolutely not to be enjoyed. I went back to sleep and got up around 9. The trip home was pretty uneventful (illness-wise).&lt;br /&gt;&lt;br /&gt;Around 1PM, my nose was starting to run a little. I went to a store and bought a small box of vicks (cherry) and 2 bags of vicks with eucalyptus. The eucalyptus vicks sucks ;) It tastes horrible and I prefer not to have to take it.&lt;br /&gt;&lt;br /&gt;By 5 or 6PM, I was feeling miserable and decided to lay down a bit because I thought I was sleepy. Again my running nose and nasal congestion mad it hard to breathe and I had difficulty falling asleep. Around 8PM, I got up again feeling less miserable and completely awake.&lt;br /&gt;&lt;br /&gt;I decided to combat the illness in full force. I ate 2 apples for the vitamins and drank 3 big mugs of tea with a lot of sugar in them (it has helped my before). I also noticed that my hearing faded a bit.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Monday sept 15&lt;/b&gt;&lt;br /&gt;Woke up with nasal congestion and running nose. Went to the store and bought 2 big bags of fruitflavored vicks with vitamin C, 3 oranges, 24 pocketsize bags of tissues and 2 boxes of kleenex antiviral tissues.&lt;br /&gt;I'm starting to sneeze and cough, and also seem to have some kind of stomach flu.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tuesday sept 16&lt;/b&gt;&lt;br /&gt;My nose is clear and no longer running. The coughing got worse and the stomach flu turned into stomach pain. I'm definitely not 100% OK yet, but I feel like the worst part is over.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wednesday sept 17&lt;/b&gt;&lt;br /&gt;The stomach pain is completely gone and my coughing has lessened. I cough up a lot of slimes, but thats better than only coughing up my lungs.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thursday sept 18&lt;/b&gt;&lt;br /&gt;I think I'm completely cured! For the first time since sunday, I had some appetite again and enjoyed my food. I'm starting to notice a lot more sick people around me and I wish them well :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5684463917809570794?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5684463917809570794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5684463917809570794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5684463917809570794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5684463917809570794'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/09/vicks-vitamin-c-anti-viral-tissues-lots.html' title='Vicks, Vitamin C, anti-viral tissues, lots of water, ...'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1985817430425005483</id><published>2008-09-07T12:22:00.003+02:00</published><updated>2008-09-07T12:34:31.208+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Opera is getting on my nerves</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Opera has been my browser of choice for ages. I originally chose it because it followed the standards pretty closely, has multiple tab support and remembered what was in each tab when it was shut down, it has a lovely wand feature to remember passwords and I love the bookmark system. It also used to have a very simple interface and easy keyboard shortcuts for everything I needed.&lt;br /&gt;&lt;br /&gt;In recent years, other browsers have begun to copy these features as well. Firefox and even MSIE now have tabs and can remember what they contained without additional plugins. Supportingn standards has improved aswell in other browsers.&lt;br /&gt;&lt;br /&gt;I still kept Opera because there is an unidentifiable quality about it that I can't find in firefox.&lt;br /&gt;Since the last upgrade however, Opera has changed its look and feel tremendously. For some reason, they now use some crappy theme that I'm still now used to and doesn't seem to make things any more practical. They've also changed the handy shortcuts to be closer to Firefox's.&lt;br /&gt;And the memory consumption is off the chart.&lt;br /&gt;&lt;br /&gt;I currently have 4 tabs open: XKCD, the blogspot edit form, a forum dealing with Fedora 9 and Planet Debian.&lt;br /&gt;[PRE]&lt;br /&gt;  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND&lt;br /&gt;26395 deepstar  20   0 1142m 408m  21m S  0.7 20.2  76:45.72 opera&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;That's right! It's eating 1.1GB of virtual memory. Why ? I have no clue.&lt;br /&gt;&lt;br /&gt;Maybe I should be on the lookout for another browser...&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Opera has been my browser of choice for ages. I originally chose it because it followed the standards pretty closely, has multiple tab support and remembered what was in each tab when it was shut down, it has a lovely wand feature to remember passwords and I love the bookmark system. It also used to have a very simple interface and easy keyboard shortcuts for everything I needed.&lt;br /&gt;&lt;br /&gt;In recent years, other browsers have begun to copy these features as well. Firefox and even MSIE now have tabs and can remember what they contained without additional plugins. Supportingn standards has improved aswell in other browsers.&lt;br /&gt;&lt;br /&gt;I still kept Opera because there is an unidentifiable quality about it that I can't find in firefox.&lt;br /&gt;Since the last upgrade however, Opera has changed its look and feel tremendously. For some reason, they now use some crappy theme that I'm still now used to and doesn't seem to make things any more practical. They've also changed the handy shortcuts to be closer to Firefox's.&lt;br /&gt;And the memory consumption is off the chart.&lt;br /&gt;&lt;br /&gt;I currently have 4 tabs open: XKCD, the blogspot edit form, a forum dealing with Fedora 9 and Planet Debian.&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND&lt;br /&gt;26395 deepstar  20   0 1142m 408m  21m S  0.7 20.2  76:45.72 opera&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;That's right! It's eating 1.1GB of virtual memory. Why ? I have no clue.&lt;br /&gt;&lt;br /&gt;Maybe I should be on the lookout for another browser...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1985817430425005483?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1985817430425005483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1985817430425005483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1985817430425005483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1985817430425005483'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/09/opera-is-getting-on-my-nerves.html' title='Opera is getting on my nerves'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-6118810244461897743</id><published>2008-09-05T18:25:00.003+02:00</published><updated>2008-09-05T18:31:01.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>More PIC goodness: reading from serial line</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Now that I figured out serial communications, I can start to do more interesting things. One of those things is having the PIC read from the serial line and doing something with the data. I decided I would read in characters '0' through '9', and render them on a 7-segment led display.&lt;br /&gt;&lt;br /&gt;This is the code:&lt;br /&gt;[PRE]&lt;br /&gt;#include "p16f627a.inc"&lt;br /&gt;&lt;br /&gt;#define ARRAY   0x20                    ; allocate a var in free space at location 0x20&lt;br /&gt;        __CONFIG _INTOSC_OSC_NOCLKOUT&lt;br /&gt;&lt;br /&gt;; a macro to easily load data into memory&lt;br /&gt;putdata: MACRO idx, val&lt;br /&gt;         MOVLW val&lt;br /&gt;         MOVWF (ARRAY + idx)&lt;br /&gt;         ENDM&lt;br /&gt;&lt;br /&gt;        ; 7 segment led display: &lt;br /&gt;        ;       0&lt;br /&gt;        ;     -----  &lt;br /&gt;        ;   |       |&lt;br /&gt;        ; 5 |       | 1&lt;br /&gt;        ;   |   6   |&lt;br /&gt;        ;     -----  &lt;br /&gt;        ;   |       |&lt;br /&gt;        ; 4 |       | 2&lt;br /&gt;        ;   |       |&lt;br /&gt;        ;     -----  &lt;br /&gt;        ;       3&lt;br /&gt;&lt;br /&gt;        ; store all 10 digits, starting at address ARRAY&lt;br /&gt;        putdata 0, 0x3F ;0011 1111&lt;br /&gt;        putdata 1, 0x06 ;0000 0110&lt;br /&gt;        putdata 2, 0x5B ;0101 1011&lt;br /&gt;        putdata 3, 0x4F ;0100 1111&lt;br /&gt;        putdata 4, 0x66 ;0110 0110&lt;br /&gt;        putdata 5, 0x6D ;0110 1101&lt;br /&gt;        putdata 6, 0x7D ;0111 1101&lt;br /&gt;        putdata 7, 0x07 ;0000 0111&lt;br /&gt;        putdata 8, 0x7F ;0111 1111&lt;br /&gt;        putdata 9, 0x6F ;0110 1111&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5                   ;&lt;br /&gt;        ; according to the datasheet, both the 1st and 2nd bit of TRISB need to be set to 1, which makes them both inputs&lt;br /&gt;        BSF TRISB, 1                    ; set bit 1 on TRISB&lt;br /&gt;        BSF TRISB, 2                    ; set bit 2 on TRISB&lt;br /&gt;        CLRF TRISA                      ; PORTA is all output&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        ; set baudrate to 9600baud. For a 20MHz Fosc, this is value 32 == 0x20&lt;br /&gt;        MOVLW 0x20&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        MOVWF SPBRG&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        BCF TXSTA, SYNC                 ; clear SYNC&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;        BSF RCSTA, SPEN                 ; enable serial port&lt;br /&gt;        BSF RCSTA, CREN                 ; set CREN&lt;br /&gt;&lt;br /&gt;wait:   BTFSS PIR1, RCIF                ; wait untill there is some input&lt;br /&gt;        GOTO wait&lt;br /&gt;&lt;br /&gt;        MOVF RCREG, 0           ; read the data byte&lt;br /&gt;        ADDLW 0xD0              ; index = data - 0x30 ('0') (ADDLW 0xD0 = DECLW 0x30)&lt;br /&gt;        ADDLW ARRAY             ; pointer = ARRAY + index&lt;br /&gt;        MOVWF FSR               ; set the pointer &lt;br /&gt;        MOVF  INDF,0            ; w = *pointer&lt;br /&gt;        MOVWF PORTA             ; porta = w -&gt; lights up the 7seg leds&lt;br /&gt;&lt;br /&gt;        GOTO wait&lt;br /&gt;&lt;br /&gt;        END&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;compile with&lt;br /&gt;[PRE]&lt;br /&gt;gpasm -p 16f627a test.asm&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;And this is the gpsim startup commands file:&lt;br /&gt;[PRE]&lt;br /&gt;# load the gpsim modules library. For some reason I can't just load it from /usr/lib&lt;br /&gt;# so to get this working, I had to issue a 'ln -s /usr/lib/libgpsim_modules.so.0 /tmp/libgpsim_modules.so'&lt;br /&gt;module lib /tmp/libgpsim_modules.so&lt;br /&gt;&lt;br /&gt;# creating an usart and connecting its TX pin to the PICs RX pin, allowing keyboard input&lt;br /&gt;module load usart U1&lt;br /&gt;node nc&lt;br /&gt;attach nc pin(portb1) U1.TXPIN&lt;br /&gt;U1.console = true&lt;br /&gt;&lt;br /&gt;# creating a 7 segment led display and hooking it up to PORTA&lt;br /&gt;module load led_7segments L7&lt;br /&gt;node nl0 nl1 nl2 nl3 nl4 nl5 nl6&lt;br /&gt;attach nl0 pin(porta0) L7.seg0&lt;br /&gt;attach nl1 pin(porta1) L7.seg1&lt;br /&gt;attach nl2 pin(porta2) L7.seg2&lt;br /&gt;attach nl3 pin(porta3) L7.seg3&lt;br /&gt;attach nl4 pin(porta4) L7.seg4&lt;br /&gt;attach nl5 pin(porta5) L7.seg5&lt;br /&gt;attach nl6 pin(porta6) L7.seg6&lt;br /&gt;&lt;br /&gt;# tell the builtin scope in gpsim to monitor portb2&lt;br /&gt;# (in gpsim: Windows -&gt; Scope)&lt;br /&gt;#scope.ch0="portb1"&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Start gpsim with this command:&lt;br /&gt;[PRE]&lt;br /&gt;gpsim -c env.conf -s test.cod&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-Breadboard.png]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Now that I figured out serial communications, I can start to do more interesting things. One of those things is having the PIC read from the serial line and doing something with the data. I decided I would read in characters '0' through '9', and render them on a 7-segment led display.&lt;br /&gt;&lt;br /&gt;This is the code:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#include "p16f627a.inc"&lt;br /&gt;&lt;br /&gt;#define ARRAY   0x20                    ; allocate a var in free space at location 0x20&lt;br /&gt;        __CONFIG _INTOSC_OSC_NOCLKOUT&lt;br /&gt;&lt;br /&gt;; a macro to easily load data into memory&lt;br /&gt;putdata: MACRO idx, val&lt;br /&gt;         MOVLW val&lt;br /&gt;         MOVWF (ARRAY + idx)&lt;br /&gt;         ENDM&lt;br /&gt;&lt;br /&gt;        ; 7 segment led display: &lt;br /&gt;        ;       0&lt;br /&gt;        ;     -----  &lt;br /&gt;        ;   |       |&lt;br /&gt;        ; 5 |       | 1&lt;br /&gt;        ;   |   6   |&lt;br /&gt;        ;     -----  &lt;br /&gt;        ;   |       |&lt;br /&gt;        ; 4 |       | 2&lt;br /&gt;        ;   |       |&lt;br /&gt;        ;     -----  &lt;br /&gt;        ;       3&lt;br /&gt;&lt;br /&gt;        ; store all 10 digits, starting at address ARRAY&lt;br /&gt;        putdata 0, 0x3F ;0011 1111&lt;br /&gt;        putdata 1, 0x06 ;0000 0110&lt;br /&gt;        putdata 2, 0x5B ;0101 1011&lt;br /&gt;        putdata 3, 0x4F ;0100 1111&lt;br /&gt;        putdata 4, 0x66 ;0110 0110&lt;br /&gt;        putdata 5, 0x6D ;0110 1101&lt;br /&gt;        putdata 6, 0x7D ;0111 1101&lt;br /&gt;        putdata 7, 0x07 ;0000 0111&lt;br /&gt;        putdata 8, 0x7F ;0111 1111&lt;br /&gt;        putdata 9, 0x6F ;0110 1111&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5                   ;&lt;br /&gt;        ; according to the datasheet, both the 1st and 2nd bit of TRISB need to be set to 1, which makes them both inputs&lt;br /&gt;        BSF TRISB, 1                    ; set bit 1 on TRISB&lt;br /&gt;        BSF TRISB, 2                    ; set bit 2 on TRISB&lt;br /&gt;        CLRF TRISA                      ; PORTA is all output&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        ; set baudrate to 9600baud. For a 20MHz Fosc, this is value 32 == 0x20&lt;br /&gt;        MOVLW 0x20&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        MOVWF SPBRG&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        BCF TXSTA, SYNC                 ; clear SYNC&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;        BSF RCSTA, SPEN                 ; enable serial port&lt;br /&gt;        BSF RCSTA, CREN                 ; set CREN&lt;br /&gt;&lt;br /&gt;wait:   BTFSS PIR1, RCIF                ; wait untill there is some input&lt;br /&gt;        GOTO wait&lt;br /&gt;&lt;br /&gt;        MOVF RCREG, 0           ; read the data byte&lt;br /&gt;        ADDLW 0xD0              ; index = data - 0x30 ('0') (ADDLW 0xD0 = DECLW 0x30)&lt;br /&gt;        ADDLW ARRAY             ; pointer = ARRAY + index&lt;br /&gt;        MOVWF FSR               ; set the pointer &lt;br /&gt;        MOVF  INDF,0            ; w = *pointer&lt;br /&gt;        MOVWF PORTA             ; porta = w -&gt; lights up the 7seg leds&lt;br /&gt;&lt;br /&gt;        GOTO wait&lt;br /&gt;&lt;br /&gt;        END&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;compile with&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;gpasm -p 16f627a test.asm&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And this is the gpsim startup commands file:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;# load the gpsim modules library. For some reason I can't just load it from /usr/lib&lt;br /&gt;# so to get this working, I had to issue a 'ln -s /usr/lib/libgpsim_modules.so.0 /tmp/libgpsim_modules.so'&lt;br /&gt;module lib /tmp/libgpsim_modules.so&lt;br /&gt;&lt;br /&gt;# creating an usart and connecting its TX pin to the PICs RX pin, allowing keyboard input&lt;br /&gt;module load usart U1&lt;br /&gt;node nc&lt;br /&gt;attach nc pin(portb1) U1.TXPIN&lt;br /&gt;U1.console = true&lt;br /&gt;&lt;br /&gt;# creating a 7 segment led display and hooking it up to PORTA&lt;br /&gt;module load led_7segments L7&lt;br /&gt;node nl0 nl1 nl2 nl3 nl4 nl5 nl6&lt;br /&gt;attach nl0 pin(porta0) L7.seg0&lt;br /&gt;attach nl1 pin(porta1) L7.seg1&lt;br /&gt;attach nl2 pin(porta2) L7.seg2&lt;br /&gt;attach nl3 pin(porta3) L7.seg3&lt;br /&gt;attach nl4 pin(porta4) L7.seg4&lt;br /&gt;attach nl5 pin(porta5) L7.seg5&lt;br /&gt;attach nl6 pin(porta6) L7.seg6&lt;br /&gt;&lt;br /&gt;# tell the builtin scope in gpsim to monitor portb2&lt;br /&gt;# (in gpsim: Windows -&gt; Scope)&lt;br /&gt;#scope.ch0="portb1"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Start gpsim with this command:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;gpsim -c env.conf -s test.cod&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-Breadboard.png"&gt;&lt;img src="http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-Breadboard.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-6118810244461897743?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/6118810244461897743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=6118810244461897743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6118810244461897743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6118810244461897743'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/09/more-pic-goodness-reading-from-serial.html' title='More PIC goodness: reading from serial line'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1286145120658407638</id><published>2008-09-05T13:33:00.009+02:00</published><updated>2009-06-23T12:11:15.895+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>Something useful with a PIC: serial line communication with the outside</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;It's been a while since I've touched my k8048 PIC programmer board. This week I put it on my desk again and hooked it up. The plan was to play around with the builtin USART of my 16F627A.&lt;br /&gt;&lt;br /&gt;Because a PIC is difficult (if not impossible) to debug in hardware, I decided to experiment in software first using a simulator. On Ubuntu, the best simulator is gpsim. It can simulate the USART inside the PIC and allows you to hook up a virtual seriele console to it, to see if things work as expected. There is also a 7-segment led display, a scope and all kinds of other plugins you can use.&lt;br /&gt;&lt;br /&gt;I write all the programs in assembler and use gpasm (from gputils) to assemble it. The reason for this is that I like to be close to the hardware. After all, it's the hardware part I want to understand and experiment with, so no unnecessary layers of cruft in between!&lt;br /&gt;&lt;br /&gt;The program I wrote is very basic. It sets up the USART for asynchronous serial communication at 9600 baud (8N1) and then starts sending the alphabet over and over again.&lt;br /&gt;&lt;br /&gt;Output looks like this:&lt;br /&gt;[PRE]&lt;br /&gt;BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL...&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;(Notice how it didn't start with 'A' ? Thats a bug... keep reading)&lt;br /&gt;&lt;br /&gt;Here's the code&lt;br /&gt;[PRE]&lt;br /&gt;#include "p16f627a.inc"&lt;br /&gt;&lt;br /&gt;#define COUNTER         0x20            ; allocate a var in free space at location 0x20&lt;br /&gt;#define STARTCHAR       0x41            ; first character will be 0x41 which is 'A'&lt;br /&gt;#define ENDCHAR         0x5A            ; last character will be 'Z'&lt;br /&gt;&lt;br /&gt;        ; according to the datasheet, both the 1st and 2nd bit of TRISB need to be set to 1, which makes them both inputs&lt;br /&gt;        ; this doesn't work. the 2nd bit needs to be set to 0 because it is TX and needs to send bits out.&lt;br /&gt;        BSF STATUS, 5                   ;&lt;br /&gt;        BSF TRISB, 1                    ; set bit 1 on TRISB&lt;br /&gt;        BCF TRISB, 2                    ; clear bit 2 on TRISB&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        ; set baudrate to 9600baud. For a 20MHz Fosc, this is value 32 == 0x20&lt;br /&gt;        MOVLW 0x20&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        MOVWF SPBRG&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        BCF TXSTA, SYNC                 ; clear SYNC&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;        BSF RCSTA, SPEN                 ; enable serial port&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        BSF TXSTA,  TXEN        ; set TXEN&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        ; now the real code begins.&lt;br /&gt;        ; a variable COUNTER will contain values from 0 to ENDCHAR-STARTCHAR&lt;br /&gt;        ; the register W will hold the actual byte to be sent over the serial line (W = COUNTER + STARTCHAR)&lt;br /&gt;        ; if W was ENDCHAR, we reset the COUNTER to 0 and start the whole thing again.&lt;br /&gt;&lt;br /&gt;reset:  MOVLW 0x0               ; counter = 0&lt;br /&gt;        MOVWF COUNTER&lt;br /&gt;&lt;br /&gt;start:  MOVF   COUNTER, 0       ; w = counter&lt;br /&gt;        ADDLW  STARTCHAR        ; w+= startchar&lt;br /&gt;        MOVWF  TXREG            ; write w over serial line&lt;br /&gt;&lt;br /&gt;        ; some hackery to check if W == ENDCHAR: W-ENDCHAR should be 0&lt;br /&gt;        SUBLW  ENDCHAR          ; w -= endchar&lt;br /&gt;        BTFSC  STATUS, Z        ; if w == 0&lt;br /&gt;        GOTO reset              ; reset&lt;br /&gt;        INCF COUNTER, 1         ; else, increment counter&lt;br /&gt;&lt;br /&gt;        ; this tight txloop makes sure that are clear to send the next byte.&lt;br /&gt;        ; remember that sending bytes over serial line is slow and it is done in the background&lt;br /&gt;        ; if we don't wait untill the first byte is sent, to send the second byte, then the transmission will be garbled&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;txloop: BTFSS TXSTA, TRMT&lt;br /&gt;        GOTO txloop&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        GOTO start&lt;br /&gt;        END&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;And I compiled it like this:&lt;br /&gt;[PRE]&lt;br /&gt;gpasm -p 16f627a test.asm&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Which produces a "test.cod" file.&lt;br /&gt;&lt;br /&gt;I then used the following gpsim "startup command file" (named it env.conf):&lt;br /&gt;[PRE]&lt;br /&gt;# create a new node 'n'&lt;br /&gt;node n&lt;br /&gt;&lt;br /&gt;# load the gpsim modules library. For some reason I can't just load it from /usr/lib&lt;br /&gt;# so to get this working, I had to issue a 'ln -s /usr/lib/libgpsim_modules.so.0 /tmp/libgpsim_modules.so'&lt;br /&gt;module lib /tmp/libgpsim_modules.so&lt;br /&gt;&lt;br /&gt;# create an USART called 'U1'&lt;br /&gt;module load usart U1&lt;br /&gt;&lt;br /&gt;# attach both the TX bit of the PIC 'portb2' (RB2) and the RX pin of the U1 USART&lt;br /&gt;# to the node n. This means: connect them together&lt;br /&gt;attach n pin(portb2) U1.RXPIN&lt;br /&gt;&lt;br /&gt;# make the console from the U1 USART do something. In our case, it will display the characters submitted by the PIC&lt;br /&gt;U1.console = true&lt;br /&gt;&lt;br /&gt;# tell the builtin scope in gpsim to monitor portb2 &lt;br /&gt;# (in gpsim: Windows -&gt; Scope)&lt;br /&gt;scope.ch0="portb2"&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;And launched gpsim with:&lt;br /&gt;[PRE]&lt;br /&gt;gpsim -c env.conf -s test.cod&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Screenshot of the scope in gpsim:&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-Scope.png]&lt;br /&gt;And the usart console:&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-USART.png]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Careful readers will see that the alphabet sequence does not start with 'A'. I have been looking at the problem very closely and I can't find out why the 'A' is not showing up. All bytes transmitted start with a start-bit and end with a stop-bit, except for the first character transmitted. So you can step through the program and observe how 'A' gets transmitted by using the scope. But nothing arrived in the console. Then 'B' gets sent and everything goes as planned: the startbit, data and stopbits are transmitted and it shows up in the console.&lt;br /&gt;&lt;br /&gt;I haven't figured out yet why this happens. So dear lazyweb, in case you have any pointers as to why this is (not) happening, please let me know.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some recent links I didn't read through yet completely:&lt;br /&gt;&lt;a href="http://zedshaw.com/rants/the_freehackers_union.html"&gt;http://zedshaw.com/rants/the_freehackers_union.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.parallax.com/"&gt;http://www.parallax.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;It's been a while since I've touched my k8048 PIC programmer board. This week I put it on my desk again and hooked it up. The plan was to play around with the builtin USART of my 16F627A.&lt;br /&gt;&lt;br /&gt;Because a PIC is difficult (if not impossible) to debug in hardware, I decided to experiment in software first using a simulator. On Ubuntu, the best simulator is gpsim. It can simulate the USART inside the PIC and allows you to hook up a virtual seriele console to it, to see if things work as expected. There is also a 7-segment led display, a scope and all kinds of other plugins you can use.&lt;br /&gt;&lt;br /&gt;I write all the programs in assembler and use gpasm (from gputils) to assemble it. The reason for this is that I like to be close to the hardware. After all, it's the hardware part I want to understand and experiment with, so no unnecessary layers of cruft in between!&lt;br /&gt;&lt;br /&gt;The program I wrote is very basic. It sets up the USART for asynchronous serial communication at 9600 baud (8N1) and then starts sending the alphabet over and over again.&lt;br /&gt;&lt;br /&gt;Output looks like this:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;(Notice how it didn't start with 'A' ? Thats a bug... keep reading)&lt;br /&gt;&lt;br /&gt;Here's the code&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#include "p16f627a.inc"&lt;br /&gt;&lt;br /&gt;#define COUNTER         0x20            ; allocate a var in free space at location 0x20&lt;br /&gt;#define STARTCHAR       0x41            ; first character will be 0x41 which is 'A'&lt;br /&gt;#define ENDCHAR         0x5A            ; last character will be 'Z'&lt;br /&gt;&lt;br /&gt;        ; according to the datasheet, both the 1st and 2nd bit of TRISB need to be set to 1, which makes them both inputs&lt;br /&gt;        ; this doesn't work. the 2nd bit needs to be set to 0 because it is TX and needs to send bits out.&lt;br /&gt;        BSF STATUS, 5                   ;&lt;br /&gt;        BSF TRISB, 1                    ; set bit 1 on TRISB&lt;br /&gt;        BCF TRISB, 2                    ; clear bit 2 on TRISB&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        ; set baudrate to 9600baud. For a 20MHz Fosc, this is value 32 == 0x20&lt;br /&gt;        MOVLW 0x20&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        MOVWF SPBRG&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        BCF TXSTA, SYNC                 ; clear SYNC&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;        BSF RCSTA, SPEN                 ; enable serial port&lt;br /&gt;&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;        BSF TXSTA,  TXEN        ; set TXEN&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        ; now the real code begins.&lt;br /&gt;        ; a variable COUNTER will contain values from 0 to ENDCHAR-STARTCHAR&lt;br /&gt;        ; the register W will hold the actual byte to be sent over the serial line (W = COUNTER + STARTCHAR)&lt;br /&gt;        ; if W was ENDCHAR, we reset the COUNTER to 0 and start the whole thing again.&lt;br /&gt;&lt;br /&gt;reset:  MOVLW 0x0               ; counter = 0&lt;br /&gt;        MOVWF COUNTER&lt;br /&gt;&lt;br /&gt;start:  MOVF   COUNTER, 0       ; w = counter&lt;br /&gt;        ADDLW  STARTCHAR        ; w+= startchar&lt;br /&gt;        MOVWF  TXREG            ; write w over serial line&lt;br /&gt;&lt;br /&gt;        ; some hackery to check if W == ENDCHAR: W-ENDCHAR should be 0&lt;br /&gt;        SUBLW  ENDCHAR          ; w -= endchar&lt;br /&gt;        BTFSC  STATUS, Z        ; if w == 0&lt;br /&gt;        GOTO reset              ; reset&lt;br /&gt;        INCF COUNTER, 1         ; else, increment counter&lt;br /&gt;&lt;br /&gt;        ; this tight txloop makes sure that are clear to send the next byte.&lt;br /&gt;        ; remember that sending bytes over serial line is slow and it is done in the background&lt;br /&gt;        ; if we don't wait untill the first byte is sent, to send the second byte, then the transmission will be garbled&lt;br /&gt;        BSF STATUS, 5&lt;br /&gt;txloop: BTFSS TXSTA, TRMT&lt;br /&gt;        GOTO txloop&lt;br /&gt;        BCF STATUS, 5&lt;br /&gt;&lt;br /&gt;        GOTO start&lt;br /&gt;        END&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And I compiled it like this:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;gpasm -p 16f627a test.asm&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Which produces a "test.cod" file.&lt;br /&gt;&lt;br /&gt;I then used the following gpsim "startup command file" (named it env.conf):&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;# create a new node 'n'&lt;br /&gt;node n&lt;br /&gt;&lt;br /&gt;# load the gpsim modules library. For some reason I can't just load it from /usr/lib&lt;br /&gt;# so to get this working, I had to issue a 'ln -s /usr/lib/libgpsim_modules.so.0 /tmp/libgpsim_modules.so'&lt;br /&gt;module lib /tmp/libgpsim_modules.so&lt;br /&gt;&lt;br /&gt;# create an USART called 'U1'&lt;br /&gt;module load usart U1&lt;br /&gt;&lt;br /&gt;# attach both the TX bit of the PIC 'portb2' (RB2) and the RX pin of the U1 USART&lt;br /&gt;# to the node n. This means: connect them together&lt;br /&gt;attach n pin(portb2) U1.RXPIN&lt;br /&gt;&lt;br /&gt;# make the console from the U1 USART do something. In our case, it will display the characters submitted by the PIC&lt;br /&gt;U1.console = true&lt;br /&gt;&lt;br /&gt;# tell the builtin scope in gpsim to monitor portb2 &lt;br /&gt;# (in gpsim: Windows -&gt; Scope)&lt;br /&gt;scope.ch0="portb2"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And launched gpsim with:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;gpsim -c env.conf -s test.cod&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Screenshot of the scope in gpsim:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-Scope.png"&gt;&lt;img src="http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-Scope.png"&gt;&lt;/a&gt;&lt;br /&gt;And the usart console:&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-USART.png"&gt;&lt;img src="http://data.singularity.be/images/full/2008-09-05-pic16f627a-usart-gpsim/Screenshot-USART.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Careful readers will see that the alphabet sequence does not start with 'A'. I have been looking at the problem very closely and I can't find out why the 'A' is not showing up. All bytes transmitted start with a start-bit and end with a stop-bit, except for the first character transmitted. So you can step through the program and observe how 'A' gets transmitted by using the scope. But nothing arrived in the console. Then 'B' gets sent and everything goes as planned: the startbit, data and stopbits are transmitted and it shows up in the console.&lt;br /&gt;&lt;br /&gt;I haven't figured out yet why this happens. So dear lazyweb, in case you have any pointers as to why this is (not) happening, please let me know.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some recent links I didn't read through yet completely:&lt;br /&gt;&lt;a href="http://zedshaw.com/rants/the_freehackers_union.html"&gt;http://zedshaw.com/rants/the_freehackers_union.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.parallax.com/"&gt;http://www.parallax.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1286145120658407638?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1286145120658407638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1286145120658407638' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1286145120658407638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1286145120658407638'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/09/something-useful-with-pic-serial-line.html' title='Something useful with a PIC: serial line communication with the outside'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-5819918955403814797</id><published>2008-09-03T09:21:00.002+02:00</published><updated>2008-09-03T09:27:16.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Embedded XP faster than linux ?</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Straight from &lt;a href="http://planet.debian.org"&gt;Planet Debian&lt;/a&gt;:&lt;br /&gt;[PRE]&lt;br /&gt;no matter how optimized the software base and compiler options, no matter which build environment was used (Thin Station, Open Embedded, Gentoo, etc.), we couldn't get a performance that was remotely usable:&lt;br /&gt; * Boot time goes well over a minute, which is way too slow.&lt;br /&gt; * The graphic environment is sluggish, to say the least.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Then came the proposal from our team's lone Windows guy: XP Embedded. Booted in less than 10 seconds, has a graphical environment that is usable out of the box and integrating the customer's application was a breeze.&lt;br /&gt;[/PRE]&lt;br /&gt;(&lt;a href="http://q-funk.blogspot.com/2008/09/another-tux-bites-dust.html"&gt;http://q-funk.blogspot.com/2008/09/another-tux-bites-dust.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;This is very interesting. I always assumed that Windows software was clunky, but it appears to be very well optimized (in the embedded world)&lt;br /&gt;Something new for the embedded linux people to shoot for: beating Windows XP Embedded&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Straight from &lt;a href="http://planet.debian.org"&gt;Planet Debian&lt;/a&gt;:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;no matter how optimized the software base and compiler options, no matter which build environment was used (Thin Station, Open Embedded, Gentoo, etc.), we couldn't get a performance that was remotely usable:&lt;br /&gt; * Boot time goes well over a minute, which is way too slow.&lt;br /&gt; * The graphic environment is sluggish, to say the least.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Then came the proposal from our team's lone Windows guy: XP Embedded. Booted in less than 10 seconds, has a graphical environment that is usable out of the box and integrating the customer's application was a breeze.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;(&lt;a href="http://q-funk.blogspot.com/2008/09/another-tux-bites-dust.html"&gt;http://q-funk.blogspot.com/2008/09/another-tux-bites-dust.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;This is very interesting. I always assumed that Windows software was clunky, but it appears to be very well optimized (in the embedded world)&lt;br /&gt;Something new for the embedded linux people to shoot for: beating Windows XP Embedded&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5819918955403814797?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5819918955403814797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5819918955403814797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5819918955403814797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5819918955403814797'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/09/embedded-xp-faster-than-linux.html' title='Embedded XP faster than linux ?'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-4954752640927595582</id><published>2008-08-29T13:37:00.006+02:00</published><updated>2008-09-01T17:54:35.870+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>God has a plan</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;The last time I prayed and believed it, was when I was 11. I sat down with my brother and we prayed all night long, hoping it would save one of my other brothers' life. It didn't. He died a couple of days later.&lt;br /&gt;&lt;br /&gt;I stopped believing in God right there and then and I've been very sceptic about it ever since. It is much more effective to be kind and be a light in the tunnel for those who need it, instead of believing that some superhuman creature will take care of you if you speak to it often enough.&lt;br /&gt;&lt;br /&gt;This week I had some time to fix the server and network of the American College in Leuven. I have been maintaining only the mail- and webserver for some years now and it was time for an upgrade and a make-over. After upgrading the server and setting a new secure password policy, I had a look at the wireless accesspoints and found out that it wasn't secure at all: for years, neighbours had been taking advantage of the open accesspoints to download all kinds of crap.&lt;br /&gt;Well, I took care of that. All of those APs are now secure as well.&lt;br /&gt;&lt;br /&gt;The reason why I like helping out the ACL, is because the people there are so kind. All of the people there are religious, and some of them might actually be priests, I don't know. The reason I don't know is because they act like regular people. Unlike the priests (and religion teachers!) I had met previously, they were not constantly preaching about Jesus, God and all the magic anecdotes from the bible.&lt;br /&gt;&lt;br /&gt;Anyway, they are building some kind of podium in their chapel and I was interested in that. During one of my conversations, father Mahar mentionend that they had had a mass in the chapel that day for me, to thank God for bringing me into their lives.&lt;br /&gt;&lt;br /&gt;And I was overwhelmed by that. That's one of the nicest things anyone has ever done for me.&lt;br /&gt;Maybe it was God's plan to guide me towards ACL, but I doubt he has to kill off my little brother to do that.&lt;br /&gt;&lt;br /&gt;So now I was wondering. If God has a plan, and we are all part of it, then why is it necessary to pray to God ? Why is it necessary to believe in him ? In fact, if God is so powerful, wouldn't he be able to bake this God-belief into people from birth, and make sure noone ever questions it ?&lt;br /&gt;And if people start questioning it, maybe THAT is God's plan ? It could be argued that whatever you do in life, is actually a part of God's plan.&lt;br /&gt;&lt;br /&gt;I still don't believe in God, but I'm now more convinced that being nice pays off in the long run.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;The last time I prayed and believed it, was when I was 11. I sat down with my brother and we prayed all night long, hoping it would save one of my other brothers' life. It didn't. He died a couple of days later.&lt;br /&gt;&lt;br /&gt;I stopped believing in God right there and then and I've been very sceptic about it ever since. It is much more effective to be kind and be a light in the tunnel for those who need it, instead of believing that some superhuman creature will take care of you if you speak to it often enough.&lt;br /&gt;&lt;br /&gt;This week I had some time to fix the server and network of the American College in Leuven. I have been maintaining only the mail- and webserver for some years now and it was time for an upgrade and a make-over. After upgrading the server and setting a new secure password policy, I had a look at the wireless accesspoints and found out that it wasn't secure at all: for years, neighbours had been taking advantage of the open accesspoints to download all kinds of crap.&lt;br /&gt;Well, I took care of that. All of those APs are now secure as well.&lt;br /&gt;&lt;br /&gt;The reason why I like helping out the ACL, is because the people there are so kind. All of the people there are religious, and some of them might actually be priests, I don't know. The reason I don't know is because they act like regular people. Unlike the priests (and religion teachers!) I had met previously, they were not constantly preaching about Jesus, God and all the magic anecdotes from the bible.&lt;br /&gt;&lt;br /&gt;Anyway, they are building some kind of podium in their chapel and I was interested in that. During one of my conversations, father Mahar mentionend that they had had a mass in the chapel that day for me, to thank God for bringing me into their lives.&lt;br /&gt;&lt;br /&gt;And I was overwhelmed by that. That's one of the nicest things anyone has ever done for me.&lt;br /&gt;Maybe it was God's plan to guide me towards ACL, but I doubt he has to kill off my little brother to do that.&lt;br /&gt;&lt;br /&gt;So now I was wondering. If God has a plan, and we are all part of it, then why is it necessary to pray to God ? Why is it necessary to believe in him ? In fact, if God is so powerful, wouldn't he be able to bake this God-belief into people from birth, and make sure noone ever questions it ?&lt;br /&gt;And if people start questioning it, maybe THAT is God's plan ? It could be argued that whatever you do in life, is actually a part of God's plan.&lt;br /&gt;&lt;br /&gt;I still don't believe in God, but I'm now more convinced that being nice pays off in the long run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4954752640927595582?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4954752640927595582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4954752640927595582' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4954752640927595582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4954752640927595582'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/god-has-plan.html' title='God has a plan'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-6757684281061348799</id><published>2008-08-22T11:04:00.002+02:00</published><updated>2008-08-22T11:05:20.416+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='RPM'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>downloading sourcecs in an RPM specfile</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Here's a quick hack to download all sourcefiles from a specfile automatically.&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;specfile=$1&lt;br /&gt;&lt;br /&gt;OLDIFS=$IFS&lt;br /&gt;IFS="&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;sedcmd="sed"&lt;br /&gt;&lt;br /&gt;for varline in `cat "$specfile" |grep "^%define"`;&lt;br /&gt;do&lt;br /&gt;    var=`echo "$varline" | awk '{print $2}'`&lt;br /&gt;    val=`echo "$varline" | awk '{print $3}'`&lt;br /&gt;&lt;br /&gt;    sedscript="s:%{$var}:$val:g"&lt;br /&gt;    sedcmd="$sedcmd -e $sedscript"&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;IFS=$OLDIFS&lt;br /&gt;&lt;br /&gt;mkdir -p /usr/src/redhat/SOURCES&lt;br /&gt;for url in `cat $specfile | $sedcmd | grep "^Source" | awk '{print $2}'`;&lt;br /&gt;do&lt;br /&gt; f=`echo "$url" | sed 's:.*/::'`&lt;br /&gt; wget -O "/usr/src/redhat/SOURCES/$f" "$url"&lt;br /&gt;done&lt;br /&gt;[/PRE]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Here's a quick hack to download all sourcefiles from a specfile automatically.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;specfile=$1&lt;br /&gt;&lt;br /&gt;OLDIFS=$IFS&lt;br /&gt;IFS="&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;sedcmd="sed"&lt;br /&gt;&lt;br /&gt;for varline in `cat "$specfile" |grep "^%define"`;&lt;br /&gt;do&lt;br /&gt;    var=`echo "$varline" | awk '{print $2}'`&lt;br /&gt;    val=`echo "$varline" | awk '{print $3}'`&lt;br /&gt;&lt;br /&gt;    sedscript="s:%{$var}:$val:g"&lt;br /&gt;    sedcmd="$sedcmd -e $sedscript"&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;IFS=$OLDIFS&lt;br /&gt;&lt;br /&gt;mkdir -p /usr/src/redhat/SOURCES&lt;br /&gt;for url in `cat $specfile | $sedcmd | grep "^Source" | awk '{print $2}'`;&lt;br /&gt;do&lt;br /&gt; f=`echo "$url" | sed 's:.*/::'`&lt;br /&gt; wget -O "/usr/src/redhat/SOURCES/$f" "$url"&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-6757684281061348799?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/6757684281061348799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=6757684281061348799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6757684281061348799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6757684281061348799'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/downloading-sourcecs-in-rpm-specfile.html' title='downloading sourcecs in an RPM specfile'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-5509308584534772762</id><published>2008-08-22T10:11:00.002+02:00</published><updated>2008-08-22T10:20:08.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='OverTheWire'/><category scheme='http://www.blogger.com/atom/ns#' term='RPM'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>building RPMs: the spec-file</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Today I find myself in the need to build an RPM of the "ratbox" ircd, with some patches. To get a headstart, I decided to look around for an existing spec-file and I found one here:&lt;br /&gt;&lt;a href="http://ftp.icm.edu.pl/packages/openpkg/sources/SRC/ratbox/ratbox.spec"&gt;http://ftp.icm.edu.pl/packages/openpkg/sources/SRC/ratbox/ratbox.spec&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, I was under the impression that RPM was some standard and that therefore, a spec-file had some standards as well. The spec-file I downloaded comes from the &lt;a href="http://www.openpkg.org"&gt;OpenPKG project&lt;/a&gt; and seems to have some non-standard "extensions".&lt;br /&gt;&lt;br /&gt;First of all, my rpmbuild complains about this line:&lt;br /&gt;[PRE]&lt;br /&gt;Class:        BASE&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;I removed that line&lt;br /&gt;&lt;br /&gt;Next, some pre-build dependencies fail&lt;br /&gt;[PRE]&lt;br /&gt;error: Failed build dependencies:&lt;br /&gt; OpenPKG is needed by ratbox-2.2.8-20080112.i386&lt;br /&gt; openpkg &gt;= 20060823 is needed by ratbox-2.2.8-20080112.i386&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;I removed those dependencies&lt;br /&gt;&lt;br /&gt;After that, the %prep section fails:&lt;br /&gt;[PRE]&lt;br /&gt;Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.26173&lt;br /&gt;+ umask 022&lt;br /&gt;+ cd /usr/src/redhat/BUILD&lt;br /&gt;+ %setup -q -c&lt;br /&gt;/var/tmp/rpm-tmp.26173: line 24: fg: no job control&lt;br /&gt;error: Bad exit status from /var/tmp/rpm-tmp.26173 (%prep)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RPM build errors:&lt;br /&gt;    Bad exit status from /var/tmp/rpm-tmp.26173 (%prep)&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;That's apparently because there are spaces in front of "%setup" and friends. I removed them.&lt;br /&gt;&lt;br /&gt;And now I get:&lt;br /&gt;[PRE]&lt;br /&gt;error: File /usr/src/redhat/SOURCES/ircd-ratbox-2.2.8.tgz: No such file or directory&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Right. Quadruple fail. I guess I'll just have to write my own spec file instead.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Today I find myself in the need to build an RPM of the "ratbox" ircd, with some patches. To get a headstart, I decided to look around for an existing spec-file and I found one here:&lt;br /&gt;&lt;a href="http://ftp.icm.edu.pl/packages/openpkg/sources/SRC/ratbox/ratbox.spec"&gt;http://ftp.icm.edu.pl/packages/openpkg/sources/SRC/ratbox/ratbox.spec&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, I was under the impression that RPM was some standard and that therefore, a spec-file had some standards as well. The spec-file I downloaded comes from the &lt;a href="http://www.openpkg.org"&gt;OpenPKG project&lt;/a&gt; and seems to have some non-standard "extensions".&lt;br /&gt;&lt;br /&gt;First of all, my rpmbuild complains about this line:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;Class:        BASE&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I removed that line&lt;br /&gt;&lt;br /&gt;Next, some pre-build dependencies fail&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;error: Failed build dependencies:&lt;br /&gt; OpenPKG is needed by ratbox-2.2.8-20080112.i386&lt;br /&gt; openpkg &gt;= 20060823 is needed by ratbox-2.2.8-20080112.i386&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I removed those dependencies&lt;br /&gt;&lt;br /&gt;After that, the %prep section fails:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.26173&lt;br /&gt;+ umask 022&lt;br /&gt;+ cd /usr/src/redhat/BUILD&lt;br /&gt;+ %setup -q -c&lt;br /&gt;/var/tmp/rpm-tmp.26173: line 24: fg: no job control&lt;br /&gt;error: Bad exit status from /var/tmp/rpm-tmp.26173 (%prep)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RPM build errors:&lt;br /&gt;    Bad exit status from /var/tmp/rpm-tmp.26173 (%prep)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;That's apparently because there are spaces in front of "%setup" and friends. I removed them.&lt;br /&gt;&lt;br /&gt;And now I get:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;error: File /usr/src/redhat/SOURCES/ircd-ratbox-2.2.8.tgz: No such file or directory&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Right. Quadruple fail. I guess I'll just have to write my own spec file instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5509308584534772762?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5509308584534772762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5509308584534772762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5509308584534772762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5509308584534772762'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/building-rpms-spec-file.html' title='building RPMs: the spec-file'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1643858760364329874</id><published>2008-08-20T08:12:00.003+02:00</published><updated>2008-08-20T08:24:09.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>nothing to see here, move along</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;It's so sad to realise that I've wasted my time the last couple of days. I've played with putting Windows XP clients in a Samba domain to have roaming profiles and the ability for users to change their passwords through a familiar (ctrl-alt-del) interface in Windows. But the people I was looking at this for, don't want any kind of filesharing ;)&lt;br /&gt;&lt;br /&gt;Using scponly with WinSCP as an alternative for Samba has been another of those wastes of time. Not because it's a bad or unwanted idea, but because I actually wanted to deploy the chrooted version of scponly (scponlyc) instead. It turns out that setting up scponlyc becomes increasingly more and more complex as you're looking at the details. I don't mind setting up a chroot, but not with the script provided with the scponly package (since it starts adding users with useradd instead of adduser..., that's 2 undesireable things already). And I guess I can live with it that users see the entire chroot directory structure when they use scponly, although it probably is not necessary: I'm suren there's a way to hide all of those directories in files, only to make things even more complex. And then finally things went wrong went I used bindmounts and putting users into extra groups, to allow them to work on the same files together...&lt;br /&gt;&lt;br /&gt;All in vain, such a waste of time...&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;It's so sad to realise that I've wasted my time the last couple of days. I've played with putting Windows XP clients in a Samba domain to have roaming profiles and the ability for users to change their passwords through a familiar (ctrl-alt-del) interface in Windows. But the people I was looking at this for, don't want any kind of filesharing ;)&lt;br /&gt;&lt;br /&gt;Using scponly with WinSCP as an alternative for Samba has been another of those wastes of time. Not because it's a bad or unwanted idea, but because I actually wanted to deploy the chrooted version of scponly (scponlyc) instead. It turns out that setting up scponlyc becomes increasingly more and more complex as you're looking at the details. I don't mind setting up a chroot, but not with the script provided with the scponly package (since it starts adding users with useradd instead of adduser..., that's 2 undesireable things already). And I guess I can live with it that users see the entire chroot directory structure when they use scponly, although it probably is not necessary: I'm suren there's a way to hide all of those directories in files, only to make things even more complex. And then finally things went wrong went I used bindmounts and putting users into extra groups, to allow them to work on the same files together...&lt;br /&gt;&lt;br /&gt;All in vain, such a waste of time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1643858760364329874?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1643858760364329874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1643858760364329874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1643858760364329874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1643858760364329874'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/nothing-to-see-here-move-along.html' title='nothing to see here, move along'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-5523788817081394372</id><published>2008-08-16T19:28:00.002+02:00</published><updated>2008-08-16T19:35:51.316+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Automatically creating Samba accounts with adduser</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I'm setting up an environment with a lot of Windows users. This means using Samba.&lt;br /&gt;On the samba server, each user has a unix account for mail, and a samba account. Setting up password syncing between unix accounts and samba accounts is &lt;a href="http://jaka.kubje.org/wp/2007/05/14/unix-samba-password-sync-on-debian-etch/"&gt;described el is sewhere&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now it would be nice if the "adduser" command also created a samba user. I've searched for a way to do this, and found no pre-baked solution.&lt;br /&gt;&lt;br /&gt;"adduser" is a perlscript which calls "groupadd", "useradd" and "passwd" to create the user.&lt;br /&gt;What I did is hijack the "useradd" command to execute "/usr/sbin/useradd" (What it was supposed to execute) and "smbpasswd -n -a username".&lt;br /&gt;&lt;br /&gt;This is the script:&lt;br /&gt;[PRE]&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;system "/usr/sbin/useradd", @ARGV;&lt;br /&gt;my $ret = $?;&lt;br /&gt;&lt;br /&gt;system "/usr/bin/smbpasswd", ("-n", "-a", $ARGV[-1]);&lt;br /&gt;&lt;br /&gt;exit $ret;&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Place it in "/root/bin/" and add "/root/bin/" to your PATH. "adduser" will now automagically create samba accounts aswell.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I'm setting up an environment with a lot of Windows users. This means using Samba.&lt;br /&gt;On the samba server, each user has a unix account for mail, and a samba account. Setting up password syncing between unix accounts and samba accounts is &lt;a href="http://jaka.kubje.org/wp/2007/05/14/unix-samba-password-sync-on-debian-etch/"&gt;described el is sewhere&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now it would be nice if the "adduser" command also created a samba user. I've searched for a way to do this, and found no pre-baked solution.&lt;br /&gt;&lt;br /&gt;"adduser" is a perlscript which calls "groupadd", "useradd" and "passwd" to create the user.&lt;br /&gt;What I did is hijack the "useradd" command to execute "/usr/sbin/useradd" (What it was supposed to execute) and "smbpasswd -n -a username".&lt;br /&gt;&lt;br /&gt;This is the script:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;system "/usr/sbin/useradd", @ARGV;&lt;br /&gt;my $ret = $?;&lt;br /&gt;&lt;br /&gt;system "/usr/bin/smbpasswd", ("-n", "-a", $ARGV[-1]);&lt;br /&gt;&lt;br /&gt;exit $ret;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Place it in "/root/bin/" and add "/root/bin/" to your PATH. "adduser" will now automagically create samba accounts aswell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5523788817081394372?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5523788817081394372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5523788817081394372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5523788817081394372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5523788817081394372'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/automatically-creating-samba-accounts.html' title='Automatically creating Samba accounts with adduser'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1770387940343763858</id><published>2008-08-16T15:51:00.002+02:00</published><updated>2008-08-16T15:56:38.339+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='Vacation'/><title type='text'>Peugeot 205 te koop</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Na wat werk is mijn Peugeot 205 terug in werkende staat. Volgens mijn juist-niet-deskundig oog (ik ben MAAR een hulpmecanicien ;)) zou die door de keuring moeten geraken. Nu moet ik dus nog een koper vinden.&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;Peugeot 205 Forever 1.1l (1124cc) benzine&lt;br /&gt;bouwjaar 1995&lt;br /&gt;5-deurs&lt;br /&gt;118004km&lt;br /&gt;44kw&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Na wat werk is mijn Peugeot 205 terug in werkende staat. Volgens mijn juist-niet-deskundig oog (ik ben MAAR een hulpmecanicien ;)) zou die door de keuring moeten geraken. Nu moet ik dus nog een koper vinden.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;Peugeot 205 Forever 1.1l (1124cc) benzine&lt;br /&gt;bouwjaar 1995&lt;br /&gt;5-deurs&lt;br /&gt;118004km&lt;br /&gt;44kw&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1770387940343763858?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1770387940343763858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1770387940343763858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1770387940343763858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1770387940343763858'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/peugeot-205-te-koop.html' title='Peugeot 205 te koop'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-6902988779998766123</id><published>2008-08-12T13:14:00.003+02:00</published><updated>2008-08-12T13:19:18.769+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='Vacation'/><title type='text'>actie !</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;De voorbije dagen heb ik gespendeerd aan voorbereiding voor de dodentocht, de dodentocht zelfs en bekomen van de dodentocht. Tegen volgend jaar moet die voorbereiding veel beter.&lt;br /&gt;&lt;br /&gt;Nu is het tijd om gebruik te maken van mijn vakantie. Ik heb weer een hele hoop dingen die gedaan moeten worden en daar begin ik vandaag aan.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Opruimen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rekeningen nakijken en in orde brengen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Aangetekende brief versturen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Langs argenta gaan om een bestendige opdracht te laten aanpassen&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Allemaal saaie troep dus, maar dingen die moeten gebeuren voordat ik toffere dingen kan doen.&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;De voorbije dagen heb ik gespendeerd aan voorbereiding voor de dodentocht, de dodentocht zelfs en bekomen van de dodentocht. Tegen volgend jaar moet die voorbereiding veel beter.&lt;br /&gt;&lt;br /&gt;Nu is het tijd om gebruik te maken van mijn vakantie. Ik heb weer een hele hoop dingen die gedaan moeten worden en daar begin ik vandaag aan.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Opruimen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rekeningen nakijken en in orde brengen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Aangetekende brief versturen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Langs argenta gaan om een bestendige opdracht te laten aanpassen&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Allemaal saaie troep dus, maar dingen die moeten gebeuren voordat ik toffere dingen kan doen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-6902988779998766123?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/6902988779998766123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=6902988779998766123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6902988779998766123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6902988779998766123'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/actie.html' title='actie !'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2418876583495135009</id><published>2008-08-01T17:40:00.004+02:00</published><updated>2008-08-01T17:50:13.010+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MediaWiki'/><category scheme='http://www.blogger.com/atom/ns#' term='Puppet'/><category scheme='http://www.blogger.com/atom/ns#' term='SMF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenID'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Automating SMF forum installation</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I decided to look at SMF instead of phpBB as the forum of choice because SMF has OpenID support built in already.&lt;br /&gt;&lt;br /&gt;Just like I did previously for Mediawiki, I also plan to create a puppet recipe to install SMF. The first step is to automate the installation from the commandline. Just like MediaWiki, SMF expects you to surf to your freshly unpacked software and fill in some required fields. It will then create a configfile and database and such.&lt;br /&gt;&lt;br /&gt;This is the process I used to do everything from commandline:&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;cd /tmp/&lt;br /&gt;wget http://www.simplemachines.org/download/index.php/smf_2-0-beta3-1p_install.tar.bz2&lt;br /&gt;mkdir /var/www/planet/planet.blabla.be/html/smf&lt;br /&gt;cd /var/www/planet/planet.blabla.be/html/smf&lt;br /&gt;tar -xjf /tmp/smf_2-0-beta3-1p_install.tar.bz2&lt;br /&gt;chmod a+rw * ### This is obviously bad, but I'm too lazy to pick the files that I need to chmod at the moment&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Create a file bla1.php:&lt;br /&gt;[PRE]&lt;br /&gt;&amp;lt;?&lt;br /&gt;$_GET["step"] = 1;&lt;br /&gt;$_SERVER["HTTP_HOST"]       = "planet.blabla.be";&lt;br /&gt;$_SERVER["PHP_SELF"]        = "/smf/install.php";&lt;br /&gt;$_SERVER["HTTP_USER_AGENT"] = "installer";&lt;br /&gt;$_POST["mbname"]         = "My Community";&lt;br /&gt;$_POST["boardurl"]       = "http://planet.blabla.be/smf";&lt;br /&gt;$_POST["compress"]       = "on";&lt;br /&gt;$_POST["dbsession"]      = "on";&lt;br /&gt;$_POST["db_type"]        = "mysql";&lt;br /&gt;$_POST["db_server"]      = "localhost";&lt;br /&gt;$_POST["db_user"]        = "root";&lt;br /&gt;$_POST["db_passwd"]      = "";&lt;br /&gt;$_POST["db_name"]        = "smf";&lt;br /&gt;$_POST["db_filename"]    = "smf_12e728c1c8";&lt;br /&gt;$_POST["db_prefix"]      = "smf_";&lt;br /&gt;&lt;br /&gt;include "install.php"; ?&amp;gt;&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;create a file bla2.php:&lt;br /&gt;[PRE]&lt;br /&gt;&amp;lt;?&lt;br /&gt;$_GET["step"]            = 2;&lt;br /&gt;$_SERVER["HTTP_HOST"]       = "planet.blabla.be";&lt;br /&gt;$_SERVER["PHP_SELF"]        = "/smf/install.php";&lt;br /&gt;$_SERVER["HTTP_USER_AGENT"] = "installer";&lt;br /&gt;$_POST["username"]       = "xxx";&lt;br /&gt;$_POST["password1"]      = "xxxx";&lt;br /&gt;$_POST["password2"]      = "xxxx";&lt;br /&gt;$_POST["email"]          = "test@test.com";&lt;br /&gt;$_POST["password3"]      = "";&lt;br /&gt;&lt;br /&gt;include "install.php"; ?&amp;gt;&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Execute the scripts:&lt;br /&gt;[PRE]&lt;br /&gt;php bla1.php&lt;br /&gt;php bla2.php&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Enable OpenID:&lt;br /&gt;[PRE]&lt;br /&gt;echo "INSERT INTO smf_settings VALUES ('enableOpenID','1');" | mysql smf&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Finish installation by removing some files:&lt;br /&gt;[PRE]&lt;br /&gt;rm -f install.php bla1.php bla2.php&lt;br /&gt;[/PRE]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I decided to look at SMF instead of phpBB as the forum of choice because SMF has OpenID support built in already.&lt;br /&gt;&lt;br /&gt;Just like I did previously for Mediawiki, I also plan to create a puppet recipe to install SMF. The first step is to automate the installation from the commandline. Just like MediaWiki, SMF expects you to surf to your freshly unpacked software and fill in some required fields. It will then create a configfile and database and such.&lt;br /&gt;&lt;br /&gt;This is the process I used to do everything from commandline:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;cd /tmp/&lt;br /&gt;wget http://www.simplemachines.org/download/index.php/smf_2-0-beta3-1p_install.tar.bz2&lt;br /&gt;mkdir /var/www/planet/planet.blabla.be/html/smf&lt;br /&gt;cd /var/www/planet/planet.blabla.be/html/smf&lt;br /&gt;tar -xjf /tmp/smf_2-0-beta3-1p_install.tar.bz2&lt;br /&gt;chmod a+rw * ### This is obviously bad, but I'm too lazy to pick the files that I need to chmod at the moment&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Create a file bla1.php:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;&amp;lt;?&lt;br /&gt;$_GET["step"] = 1;&lt;br /&gt;$_SERVER["HTTP_HOST"]       = "planet.blabla.be";&lt;br /&gt;$_SERVER["PHP_SELF"]        = "/smf/install.php";&lt;br /&gt;$_SERVER["HTTP_USER_AGENT"] = "installer";&lt;br /&gt;$_POST["mbname"]         = "My Community";&lt;br /&gt;$_POST["boardurl"]       = "http://planet.blabla.be/smf";&lt;br /&gt;$_POST["compress"]       = "on";&lt;br /&gt;$_POST["dbsession"]      = "on";&lt;br /&gt;$_POST["db_type"]        = "mysql";&lt;br /&gt;$_POST["db_server"]      = "localhost";&lt;br /&gt;$_POST["db_user"]        = "root";&lt;br /&gt;$_POST["db_passwd"]      = "";&lt;br /&gt;$_POST["db_name"]        = "smf";&lt;br /&gt;$_POST["db_filename"]    = "smf_12e728c1c8";&lt;br /&gt;$_POST["db_prefix"]      = "smf_";&lt;br /&gt;&lt;br /&gt;include "install.php"; ?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;create a file bla2.php:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;&amp;lt;?&lt;br /&gt;$_GET["step"]            = 2;&lt;br /&gt;$_SERVER["HTTP_HOST"]       = "planet.blabla.be";&lt;br /&gt;$_SERVER["PHP_SELF"]        = "/smf/install.php";&lt;br /&gt;$_SERVER["HTTP_USER_AGENT"] = "installer";&lt;br /&gt;$_POST["username"]       = "xxx";&lt;br /&gt;$_POST["password1"]      = "xxxx";&lt;br /&gt;$_POST["password2"]      = "xxxx";&lt;br /&gt;$_POST["email"]          = "test@test.com";&lt;br /&gt;$_POST["password3"]      = "";&lt;br /&gt;&lt;br /&gt;include "install.php"; ?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Execute the scripts:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;php bla1.php&lt;br /&gt;php bla2.php&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Enable OpenID:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;echo "INSERT INTO smf_settings VALUES ('enableOpenID','1');" | mysql smf&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Finish installation by removing some files:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;rm -f install.php bla1.php bla2.php&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2418876583495135009?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2418876583495135009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2418876583495135009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2418876583495135009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2418876583495135009'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/08/automating-smf-forum-installation.html' title='Automating SMF forum installation'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-6250560583617398689</id><published>2008-07-31T13:55:00.004+02:00</published><updated>2008-07-31T14:01:07.275+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MediaWiki'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenID'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>MediaWiki + OpenID under fedora 9: success !</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I finally managed to get things working, although it involved using original sources instead of RPMs.&lt;br /&gt;&lt;br /&gt;I made 2 main errors:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;My MediaWiki was too old, and I needed to install it from source. I hope I can find more recent RPM packages or maybe I can convince the maintainer to upgrade to the latest version&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I set $wgTrustRoot in /var/local/wiki/LocalSettings.php, which is the wrong place. I needed to set that in OpenID.setup.php instead.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I hope to post a full guide soon, followed by a puppet recipe&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I finally managed to get things working, although it involved using original sources instead of RPMs.&lt;br /&gt;&lt;br /&gt;I made 2 main errors:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;My MediaWiki was too old, and I needed to install it from source. I hope I can find more recent RPM packages or maybe I can convince the maintainer to upgrade to the latest version&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I set $wgTrustRoot in /var/local/wiki/LocalSettings.php, which is the wrong place. I needed to set that in OpenID.setup.php instead.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I hope to post a full guide soon, followed by a puppet recipe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-6250560583617398689?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/6250560583617398689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=6250560583617398689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6250560583617398689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/6250560583617398689'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/mediawiki-openid-under-fedora-9-success.html' title='MediaWiki + OpenID under fedora 9: success !'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-7634621421163745936</id><published>2008-07-31T09:31:00.002+02:00</published><updated>2008-07-31T09:52:42.695+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MediaWiki'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenID'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Mediawiki + OpenID (FC9): undefined function wfLoadExtensionMessages</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Yesterday I ran into this problem:&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Fatal error:  Call to undefined function wfLoadExtensionMessages() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 153&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Through google cache I found a reason for this error:&lt;br /&gt;[PRE]&lt;br /&gt; The problem is that wfLoadExtensionMessages was added in a later version of MediaWiki around 1.10 or 1.11 whereas I am using 1.8.2 which does not have this function.&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;The version of mediawiki in Fedora 9 at this moment is 1.10.4, which is too old.&lt;br /&gt;I pondered patching the code and defining this function, but I think it would be a bad idea.&lt;br /&gt;&lt;br /&gt;wfLoadExtensionMessages is a localization function used to load i18n messages from mediawiki extensions: &lt;a href="http://www.mediawiki.org/wiki/Manual:Extensions#Internationalizing_your_extension"&gt;http://www.mediawiki.org/wiki/Manual:Extensions#Internationalizing_your_extension&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Maybe I should install from source *shrug*&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Yesterday I ran into this problem:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Fatal error:  Call to undefined function wfLoadExtensionMessages() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 153&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Through google cache I found a reason for this error:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt; The problem is that wfLoadExtensionMessages was added in a later version of MediaWiki around 1.10 or 1.11 whereas I am using 1.8.2 which does not have this function.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The version of mediawiki in Fedora 9 at this moment is 1.10.4, which is too old.&lt;br /&gt;I pondered patching the code and defining this function, but I think it would be a bad idea.&lt;br /&gt;&lt;br /&gt;wfLoadExtensionMessages is a localization function used to load i18n messages from mediawiki extensions: &lt;a href="http://www.mediawiki.org/wiki/Manual:Extensions#Internationalizing_your_extension"&gt;http://www.mediawiki.org/wiki/Manual:Extensions#Internationalizing_your_extension&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Maybe I should install from source *shrug*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7634621421163745936?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7634621421163745936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7634621421163745936' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7634621421163745936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7634621421163745936'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/mediawiki-openid-fc9-undefined-function.html' title='Mediawiki + OpenID (FC9): undefined function wfLoadExtensionMessages'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-9002761232456885683</id><published>2008-07-30T23:01:00.010+02:00</published><updated>2008-07-31T19:50:28.525+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MediaWiki'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenID'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Mediawiki + OpenID on fedora 9</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I've been looking at OpenID under fedora more closely and found that the php-pear-Auth-OpenID package is maintained by Axel Thimm. I also found that there are bugreports running aginst this package and that the last &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=227190"&gt;mail related to one of those bugs&lt;/a&gt; was sent today.&lt;br /&gt;&lt;br /&gt;This mail contains a link to the source RPM and specfile, which is reason enough for me to give it a go.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First, build and install php-pear-Auth-OpenID&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;yum install rpm-build php-pear php-bcmath php-pear-Net-Curl&lt;br /&gt;mkdir -p /usr/src/redhat&lt;br /&gt;&lt;br /&gt;cd /tmp&lt;br /&gt;wget http://dl.atrpms.net/all/php-pear-Auth-OpenID-2.1.1-5.src.rpm&lt;br /&gt;rpm -i php-pear-Auth-OpenID-2.1.1-5.src.rpm&lt;br /&gt;&lt;br /&gt;cd /usr/src/redhat/SPECS/&lt;br /&gt;rpmbuild -ba php-pear-Auth-OpenID.spec&lt;br /&gt;&lt;br /&gt;rpm -i ../RPMS/noarch/php-pear-Auth-OpenID-2.1.1-5.fc9.noarch.rpm&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Make some forgotten symlink...&lt;br /&gt;[PRE]&lt;br /&gt;ln -s /usr/share/pear/Auth_OpenID/ /usr/share/pear/Auth&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Next, install mediawiki-openid from ATrpms&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;(cat &amp;lt;&amp;lt;EOF;&lt;br /&gt;[atrpms]&lt;br /&gt;name=Fedora Core \$releasever - \$basearch - ATrpms&lt;br /&gt;baseurl=http://dl.atrpms.net/f\$releasever-\$basearch/atrpms/stable&lt;br /&gt;gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms&lt;br /&gt;gpgcheck=1&lt;br /&gt;EOF&lt;br /&gt;) &gt; /etc/yum.repos.d/atrpms.repo&lt;br /&gt;&lt;br /&gt;yum install mediawiki-openid&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Finally, set up mediawiki-openid&lt;br /&gt;[PRE]&lt;br /&gt;ln -s /usr/share/mediawiki/extensions/ /var/www/wiki/&lt;br /&gt;mysql wikidb &lt; /usr/share/doc/mediawiki-openid-0.8.2/openid_table.sql&lt;br /&gt;echo 'require_once("$IP/extensions/OpenID/OpenID.setup.php");' &gt;&gt; /var/www/wiki/LocalSettings.php&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;And the result ? It doesn't work ! How exciting&lt;br /&gt;&lt;br /&gt;I keep getting errors like these:&lt;br /&gt;[PRE]&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Warning:  Missing argument 2 for OpenIDArticleViewHeader() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 168&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Warning:  Missing argument 3 for OpenIDArticleViewHeader() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 168&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Fatal error:  Call to undefined function wfLoadExtensionMessages() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 153&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I've been looking at OpenID under fedora more closely and found that the php-pear-Auth-OpenID package is maintained by Axel Thimm. I also found that there are bugreports running aginst this package and that the last &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=227190"&gt;mail related to one of those bugs&lt;/a&gt; was sent today.&lt;br /&gt;&lt;br /&gt;This mail contains a link to the source RPM and specfile, which is reason enough for me to give it a go.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First, build and install php-pear-Auth-OpenID&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;yum install rpm-build php-pear php-bcmath php-pear-Net-Curl&lt;br /&gt;mkdir -p /usr/src/redhat&lt;br /&gt;&lt;br /&gt;cd /tmp&lt;br /&gt;wget http://dl.atrpms.net/all/php-pear-Auth-OpenID-2.1.1-5.src.rpm&lt;br /&gt;rpm -i php-pear-Auth-OpenID-2.1.1-5.src.rpm&lt;br /&gt;&lt;br /&gt;cd /usr/src/redhat/SPECS/&lt;br /&gt;rpmbuild -ba php-pear-Auth-OpenID.spec&lt;br /&gt;&lt;br /&gt;rpm -i ../RPMS/noarch/php-pear-Auth-OpenID-2.1.1-5.fc9.noarch.rpm&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Make some forgotten symlink...&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;ln -s /usr/share/pear/Auth_OpenID/ /usr/share/pear/Auth&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Next, install mediawiki-openid from ATrpms&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;(cat &amp;lt;&amp;lt;EOF;&lt;br /&gt;[atrpms]&lt;br /&gt;name=Fedora Core \$releasever - \$basearch - ATrpms&lt;br /&gt;baseurl=http://dl.atrpms.net/f\$releasever-\$basearch/atrpms/stable&lt;br /&gt;gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms&lt;br /&gt;gpgcheck=1&lt;br /&gt;EOF&lt;br /&gt;) &gt; /etc/yum.repos.d/atrpms.repo&lt;br /&gt;&lt;br /&gt;yum install mediawiki-openid&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Finally, set up mediawiki-openid&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;ln -s /usr/share/mediawiki/extensions/ /var/www/wiki/&lt;br /&gt;mysql wikidb &lt; /usr/share/doc/mediawiki-openid-0.8.2/openid_table.sql&lt;br /&gt;echo 'require_once("$IP/extensions/OpenID/OpenID.setup.php");' &gt;&gt; /var/www/wiki/LocalSettings.php&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And the result ? It doesn't work ! How exciting&lt;br /&gt;&lt;br /&gt;I keep getting errors like these:&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Warning:  Missing argument 2 for OpenIDArticleViewHeader() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 168&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Warning:  Missing argument 3 for OpenIDArticleViewHeader() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 168&lt;br /&gt;[Tue Jul 22 15:59:58 2008] [error] [client 172.16.1.2] PHP Fatal error:  Call to undefined function wfLoadExtensionMessages() in /usr/share/mediawiki/extensions/OpenID/OpenID.setup.php on line 153&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-9002761232456885683?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/9002761232456885683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=9002761232456885683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/9002761232456885683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/9002761232456885683'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/mediawiki-openid-on-fedora-9.html' title='Mediawiki + OpenID on fedora 9'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-9104992500401873590</id><published>2008-07-29T12:37:00.003+02:00</published><updated>2008-07-29T14:43:06.970+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='RPM'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>RPM dependency hell</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Now that I've automated the installation of mediawiki on Fedora 9 using puppet, I thought I'd see if I could install the OpenID extension for mediawiki and maybe automate that installation as well.&lt;br /&gt;&lt;br /&gt;Unfortunately, the mediawiki-openid extension requires php-openid (OpenID implementation in PHP) which is not to be found in the standard Fedora repositories. However, I have found it in the &lt;a href="http://atrpms.net/dist/f9/"&gt;ATrpms Fedora 9 repository&lt;/a&gt;. After adding that one in my yum config it showed that it also contained a mediawiki-openid package. Things were looking up!&lt;br /&gt;&lt;br /&gt;However, this is the error I get when trying to install said package:&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;[root@localhost ~]# yum install mediawiki-openid.noarch &lt;br /&gt;atrpms                                                   |  951 B     00:00    &lt;br /&gt;fedora                                                   | 2.4 kB     00:00    &lt;br /&gt;updates                                                  | 2.3 kB     00:00    &lt;br /&gt;Setting up Install Process&lt;br /&gt;Parsing package install arguments&lt;br /&gt;Resolving Dependencies&lt;br /&gt;--&amp;gt; Running transaction check&lt;br /&gt;---&amp;gt; Package mediawiki-openid.noarch 0:0.8.2-7 set to be updated&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-Auth-OpenID &gt;= 2.0.1 for package: mediawiki-openid&lt;br /&gt;--&amp;gt; Running transaction check&lt;br /&gt;---&amp;gt; Package php-pear-Auth-OpenID.noarch 0:2.0.1-4.fc8_93 set to be updated&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-DB &gt;= 1.80 for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-Net-Curl for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-bcmath for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear(PEAR) for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Running transaction check&lt;br /&gt;---&amp;gt; Package php-pear-Auth-OpenID.noarch 0:2.0.1-4.fc8_93 set to be updated&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-DB &gt;= 1.80 for package: php-pear-Auth-OpenID&lt;br /&gt;---&amp;gt; Package php-pear.noarch 1:1.7.1-2.fc9 set to be updated&lt;br /&gt;---&amp;gt; Package php-bcmath.i386 0:5.2.6-2.fc9 set to be updated&lt;br /&gt;---&amp;gt; Package php-pear-Net-Curl.noarch 0:1.2.5-1.fc9 set to be updated&lt;br /&gt;--&amp;gt; Finished Dependency Resolution&lt;br /&gt;php-pear-Auth-OpenID-2.0.1-4.fc8_93.noarch from atrpms has depsolving problems&lt;br /&gt;  --&amp;gt; Missing Dependency: php-pear-DB &amp;gt;= 1.80 is needed by package php-pear-Auth-OpenID-2.0.1-4.fc8_93.noarch (atrpms)&lt;br /&gt;Error: Missing Dependency: php-pear-DB &amp;gt;= 1.80 is needed by package php-pear-Auth-OpenID-2.0.1-4.fc8_93.noarch (atrpms)&lt;br /&gt;[root@localhost ~]# &lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;That's right: broken dependencies. I guess I should have expected this since I'm using a 3rd party repository, but even then I wonder why the php-openid package isn't packaged by Fedora by default ? After all, it comes from the &lt;a href="http://openidenabled.com/php-openid/"&gt;same website as python-openid and ruby-openid&lt;/a&gt;, both of which are in the standard Fedora 9 repositories...&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Now that I've automated the installation of mediawiki on Fedora 9 using puppet, I thought I'd see if I could install the OpenID extension for mediawiki and maybe automate that installation as well.&lt;br /&gt;&lt;br /&gt;Unfortunately, the mediawiki-openid extension requires php-openid (OpenID implementation in PHP) which is not to be found in the standard Fedora repositories. However, I have found it in the &lt;a href="http://atrpms.net/dist/f9/"&gt;ATrpms Fedora 9 repository&lt;/a&gt;. After adding that one in my yum config it showed that it also contained a mediawiki-openid package. Things were looking up!&lt;br /&gt;&lt;br /&gt;However, this is the error I get when trying to install said package:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;[root@localhost ~]# yum install mediawiki-openid.noarch &lt;br /&gt;atrpms                                                   |  951 B     00:00    &lt;br /&gt;fedora                                                   | 2.4 kB     00:00    &lt;br /&gt;updates                                                  | 2.3 kB     00:00    &lt;br /&gt;Setting up Install Process&lt;br /&gt;Parsing package install arguments&lt;br /&gt;Resolving Dependencies&lt;br /&gt;--&amp;gt; Running transaction check&lt;br /&gt;---&amp;gt; Package mediawiki-openid.noarch 0:0.8.2-7 set to be updated&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-Auth-OpenID &gt;= 2.0.1 for package: mediawiki-openid&lt;br /&gt;--&amp;gt; Running transaction check&lt;br /&gt;---&amp;gt; Package php-pear-Auth-OpenID.noarch 0:2.0.1-4.fc8_93 set to be updated&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-DB &gt;= 1.80 for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-Net-Curl for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-bcmath for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear(PEAR) for package: php-pear-Auth-OpenID&lt;br /&gt;--&amp;gt; Running transaction check&lt;br /&gt;---&amp;gt; Package php-pear-Auth-OpenID.noarch 0:2.0.1-4.fc8_93 set to be updated&lt;br /&gt;--&amp;gt; Processing Dependency: php-pear-DB &gt;= 1.80 for package: php-pear-Auth-OpenID&lt;br /&gt;---&amp;gt; Package php-pear.noarch 1:1.7.1-2.fc9 set to be updated&lt;br /&gt;---&amp;gt; Package php-bcmath.i386 0:5.2.6-2.fc9 set to be updated&lt;br /&gt;---&amp;gt; Package php-pear-Net-Curl.noarch 0:1.2.5-1.fc9 set to be updated&lt;br /&gt;--&amp;gt; Finished Dependency Resolution&lt;br /&gt;php-pear-Auth-OpenID-2.0.1-4.fc8_93.noarch from atrpms has depsolving problems&lt;br /&gt;  --&amp;gt; Missing Dependency: php-pear-DB &amp;gt;= 1.80 is needed by package php-pear-Auth-OpenID-2.0.1-4.fc8_93.noarch (atrpms)&lt;br /&gt;Error: Missing Dependency: php-pear-DB &amp;gt;= 1.80 is needed by package php-pear-Auth-OpenID-2.0.1-4.fc8_93.noarch (atrpms)&lt;br /&gt;[root@localhost ~]# &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;That's right: broken dependencies. I guess I should have expected this since I'm using a 3rd party repository, but even then I wonder why the php-openid package isn't packaged by Fedora by default ? After all, it comes from the &lt;a href="http://openidenabled.com/php-openid/"&gt;same website as python-openid and ruby-openid&lt;/a&gt;, both of which are in the standard Fedora 9 repositories...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-9104992500401873590?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/9104992500401873590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=9104992500401873590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/9104992500401873590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/9104992500401873590'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/rpm-dependency-hell.html' title='RPM dependency hell'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-8808248386287804141</id><published>2008-07-28T13:52:00.002+02:00</published><updated>2008-07-28T13:53:02.677+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>Ik heb inderdaad mijn rijbewijs nu :)</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;In mijn vorige post wou ik dus eigenlijk zeggen dat ik van mijn L verlost ben en nu vrij mag rondrijden !&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;In mijn vorige post wou ik dus eigenlijk zeggen dat ik van mijn L verlost ben en nu vrij mag rondrijden !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8808248386287804141?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8808248386287804141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8808248386287804141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8808248386287804141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8808248386287804141'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/ik-heb-inderdaad-mijn-rijbewijs-nu.html' title='Ik heb inderdaad mijn rijbewijs nu :)'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-7811217558224412118</id><published>2008-07-28T10:48:00.007+02:00</published><updated>2008-07-30T11:37:39.980+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>trage administratie ? Niet echt</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;[PRE]&lt;br /&gt;Deze post werd dus blijkbaar toch niet gedelete door blogger...&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;Vorige week ben ik na 3 dagen intense voorbereiding mijn praktisch rij-examen gaan afleggen. Ik was er (uiteraard) door zonder opmerkingen. Omdat ik op donderdag geen tijd had om langs het stadhuis te gaan voor mijn definitief rijbewijs ben ik vrijdag geweest.&lt;br /&gt;&lt;br /&gt;Ik heb verhalen gehoord van mensen die urenlang in de rij moesten staan voor futuliteiten, maar ik heb dat zelf niet ervaren. Ik was binnen en buiten in 20 minuten, eindelijk verlost van mijn L.&lt;br /&gt;&lt;br /&gt;Een pluim voor de administratie van het stadhuis in Leuven !!&lt;br /&gt;&lt;br /&gt;De fotografe waar ik mijn pasfotos heb laten maken is echter een ander verhaal. Om 1 of andere reden duurt het ontwikkelen van die pasfotos 1 uur. Ik dacht dat dat misschien kwam doordat die fotos moesten ontwikkeld worden en zo, totdat de fotografe mij vlak na het trekken van de foto het schermpje van haar camera liet zien en vroeg of die foto OK was.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Waarom, als die foto digitaal is, duurt het een volledig uur voordat ik die foto kan meenemen ? Waar ik vroeger ging, werden pasfotos gewoon getrokken met een aangepast Polaroid fototoestel. Binnen en buiten in 3 minuten. Nu heb ik 1.5u moeten wachten op 4 pasfotos die dan nog digitaal getrokken zijn ook... Achteruitgang van de vooruitgang.&lt;br /&gt;&lt;br /&gt;Nu ik er zo over denk, waarom heb ik eigenlijk pasfotos nodig ? Ik heb toch een digitale identiteitskaart met daarop een digitale foto ? Pfff&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;Deze post werd dus blijkbaar toch niet gedelete door blogger...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Vorige week ben ik na 3 dagen intense voorbereiding mijn praktisch rij-examen gaan afleggen. Ik was er (uiteraard) door zonder opmerkingen. Omdat ik op donderdag geen tijd had om langs het stadhuis te gaan voor mijn definitief rijbewijs ben ik vrijdag geweest.&lt;br /&gt;&lt;br /&gt;Ik heb verhalen gehoord van mensen die urenlang in de rij moesten staan voor futuliteiten, maar ik heb dat zelf niet ervaren. Ik was binnen en buiten in 20 minuten, eindelijk verlost van mijn L.&lt;br /&gt;&lt;br /&gt;Een pluim voor de administratie van het stadhuis in Leuven !!&lt;br /&gt;&lt;br /&gt;De fotografe waar ik mijn pasfotos heb laten maken is echter een ander verhaal. Om 1 of andere reden duurt het ontwikkelen van die pasfotos 1 uur. Ik dacht dat dat misschien kwam doordat die fotos moesten ontwikkeld worden en zo, totdat de fotografe mij vlak na het trekken van de foto het schermpje van haar camera liet zien en vroeg of die foto OK was.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Waarom, als die foto digitaal is, duurt het een volledig uur voordat ik die foto kan meenemen ? Waar ik vroeger ging, werden pasfotos gewoon getrokken met een aangepast Polaroid fototoestel. Binnen en buiten in 3 minuten. Nu heb ik 1.5u moeten wachten op 4 pasfotos die dan nog digitaal getrokken zijn ook... Achteruitgang van de vooruitgang.&lt;br /&gt;&lt;br /&gt;Nu ik er zo over denk, waarom heb ik eigenlijk pasfotos nodig ? Ik heb toch een digitale identiteitskaart met daarop een digitale foto ? Pfff&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7811217558224412118?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7811217558224412118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7811217558224412118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7811217558224412118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7811217558224412118'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/trage-administratie-niet-echt_28.html' title='trage administratie ? Niet echt'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-4750603244003299190</id><published>2008-07-28T10:48:00.006+02:00</published><updated>2008-07-28T11:02:32.457+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>trage administratie ? Niet echt</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;...&lt;br /&gt;Stomme blogger.&lt;br /&gt;Ik heb zojuist een hele blogpost getikt met een rant over waarom het zo lang (1.5u) moet duren om pasfotos (digitaal getrokken) te ontwikkelen bij een fotograaf terwijl het maar 20 minuten duurt om de administratie rond het krijgen van een rijbewijs af te ronden in het stadhuis van Leuven (proficiat!)&lt;br /&gt;&lt;br /&gt;Maar blogger besloot een error in mijn gezicht te smijten en dan al mijn tekst op te eten.&lt;br /&gt;&lt;br /&gt;Nu vraag ik mij trouwens ook af waarom ik nog pasfotos nodig heb, sinds ik toch al een digitale ID-kaart heb met digitale foto erop...&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;...&lt;br /&gt;Stomme blogger.&lt;br /&gt;Ik heb zojuist een hele blogpost getikt met een rant over waarom het zo lang (1.5u) moet duren om pasfotos (digitaal getrokken) te ontwikkelen bij een fotograaf terwijl het maar 20 minuten duurt om de administratie rond het krijgen van een rijbewijs af te ronden in het stadhuis van Leuven (proficiat!)&lt;br /&gt;&lt;br /&gt;Maar blogger besloot een error in mijn gezicht te smijten en dan al mijn tekst op te eten.&lt;br /&gt;&lt;br /&gt;Nu vraag ik mij trouwens ook af waarom ik nog pasfotos nodig heb, sinds ik toch al een digitale ID-kaart heb met digitale foto erop...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4750603244003299190?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4750603244003299190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4750603244003299190' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4750603244003299190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4750603244003299190'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/trage-administratie-niet-echt.html' title='trage administratie ? Niet echt'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-44257252473082533</id><published>2008-07-23T21:59:00.005+02:00</published><updated>2008-07-31T19:50:12.765+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MediaWiki'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Puppet ? No wait, mediawiki under Fedora 9</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I was going to write about getting Puppet to work under Fedora 9, but I found out it's really nont difficult. As an excercise for myself I decided to try and make a puppet recipe for mediawiki.&lt;br /&gt;This is turning out harder than expected. Not because puppet is so hard (it's really not), but because the mediawiki RPM package in Fedora 9 is terribly bad.&lt;br /&gt;&lt;br /&gt;As a comparison, let me tell you how to get mediawiki working on a freshly installed Debian. OK, ready ? Here it comes:&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;apt-get install mediawiki&lt;br /&gt;[/PRE]&lt;br /&gt;And it's done !&lt;br /&gt;&lt;br /&gt;Right, now let's see what you need to do to get this working under Fedora 9. &lt;br /&gt;&lt;br /&gt;[PRE]yum install mediawiki[/PRE]&lt;br /&gt;Everything starts off nice and fine&lt;br /&gt;&lt;br /&gt;[PRE]yum install mysql-server[/PRE]&lt;br /&gt;Unlike under Debian, Fedora 9 doesn't assume that you want to have a local MySQL server running. By not installing it, it gives you the choice. Not a bad thing.&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;chkconfig httpd on&lt;br /&gt;service httpd start&lt;br /&gt;chkconfig mysqld on&lt;br /&gt;service mysqld start&lt;br /&gt;[/PRE]&lt;br /&gt;Things are already getting weird. Why would I install mediawiki and then not want to run httpd by default ?&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.orig&lt;br /&gt;cat /etc/httpd/conf/httpd.conf.orig |sed 's:DocumentRoot \"/var.*:DocumentRoot \"/var/www\":' &amp;gt; /etc/httpd/conf/httpd.conf&lt;br /&gt;service httpd restart&lt;br /&gt;[/PRE]&lt;br /&gt;By default the DocumentRoot is set to /var/www/html, while mediawiki is installed under /var/www/wiki.&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;system-config-firewall-tui -p 80:tcp&lt;br /&gt;[/PRE]&lt;br /&gt;Open up port 80 in the firewall, again this should have happened when I installed apache&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;cd /tmp&lt;br /&gt;mkdir config&lt;br /&gt;cp /var/www/wiki/config/index.php config/index.php.orig&lt;br /&gt;cat config/index.php.orig |sed 's:\$DIR=.*:\$DIR="/tmp";:' &gt; config/index.php&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(cat &amp;lt;&amp;lt;EOF;&lt;br /&gt;&amp;lt;?&lt;br /&gt;\$_SERVER = array();&lt;br /&gt;\$_POST = array();&lt;br /&gt;&lt;br /&gt;\$_SERVER["SCRIPT_NAME"] = "/wiki/config/index.php";&lt;br /&gt;\$_SERVER["PHP_SELF"] = "/wiki/config/index.php";&lt;br /&gt;&lt;br /&gt;\$_SERVER["REQUEST_METHOD"] = "POST";&lt;br /&gt;&lt;br /&gt;\$_POST["Sitename"] = "My Little Wiki";&lt;br /&gt;\$_POST["SysopPass"] = "xxx";&lt;br /&gt;\$_POST["SysopPass2"] = "xxx";&lt;br /&gt;\$_POST["DBtype"] = "mysql";&lt;br /&gt;\$_POST["DBpassword"] = "xxx";&lt;br /&gt;\$_POST["DBpassword2"] = "xxx";&lt;br /&gt;\$_POST["useroot"] = "on";&lt;br /&gt;\$_POST["RootPW"] = "";&lt;br /&gt;\$_POST["DBprefix"] = "";&lt;br /&gt;&lt;br /&gt;include "config/index.php";&lt;br /&gt;?&amp;gt;&lt;br /&gt;EOF&lt;br /&gt;) &amp;gt; genconfig.php&lt;br /&gt;&lt;br /&gt;php genconfig.php&lt;br /&gt;cp config/LocalSettings.php /var/www/wiki/&lt;br /&gt;rm -rf /tmp/genconfig.php /tmp/config&lt;br /&gt;[/PRE]&lt;br /&gt;What on earth is all this ? Well this code configures mediawiki with a default config. Instead of supplying a default config, Fedora lets you surf to your wiki, fill in some variables to generate a configfile, which you then have to copy to the correct place.&lt;br /&gt;&lt;br /&gt;In the script I just pasted, this is all done automagically. I fake the execution environment of the config/index.php script and execute it from commandline. It will create the necessary database and tables and generate a LocalSettings.php, which is then copied to the correct place.&lt;br /&gt;&lt;br /&gt;[PRE]ln -s /usr/share/mediawiki/skins/ /var/www/wiki/[/PRE]&lt;br /&gt;After all this fiddling, the installed mediawiki still looks like crap. This is because the mediawiki apparently forgot where it placed the directory with all the skins. A symlink should fix that.&lt;br /&gt;&lt;br /&gt;[PRE]chmod a= /var/www/wiki/config[/PRE]&lt;br /&gt;No need for this directory to be publicly avaiable.&lt;br /&gt;&lt;br /&gt;Some of you have commented that I should read the INSTALL file as specified on &lt;a href="http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Fedora_Core"&gt;this wiki&lt;/a&gt;.&lt;br /&gt;Actually, I shouldn't have to because that's what packages are for. But just so you know, I did look there (/usr/share/mediawiki/INSTALL) (By the way, doesn't Fedora have some kind of policy where documentation should go ? What is /usr/share/doc for ?) and it doesn't mention anything about where to surf to (http://somewhere/wiki/) or whether or not to fix the skins directory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I was going to write about getting Puppet to work under Fedora 9, but I found out it's really nont difficult. As an excercise for myself I decided to try and make a puppet recipe for mediawiki.&lt;br /&gt;This is turning out harder than expected. Not because puppet is so hard (it's really not), but because the mediawiki RPM package in Fedora 9 is terribly bad.&lt;br /&gt;&lt;br /&gt;As a comparison, let me tell you how to get mediawiki working on a freshly installed Debian. OK, ready ? Here it comes:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;apt-get install mediawiki&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And it's done !&lt;br /&gt;&lt;br /&gt;Right, now let's see what you need to do to get this working under Fedora 9. &lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;yum install mediawiki&lt;/pre&gt;&lt;br /&gt;Everything starts off nice and fine&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;yum install mysql-server&lt;/pre&gt;&lt;br /&gt;Unlike under Debian, Fedora 9 doesn't assume that you want to have a local MySQL server running. By not installing it, it gives you the choice. Not a bad thing.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;chkconfig httpd on&lt;br /&gt;service httpd start&lt;br /&gt;chkconfig mysqld on&lt;br /&gt;service mysqld start&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Things are already getting weird. Why would I install mediawiki and then not want to run httpd by default ?&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.orig&lt;br /&gt;cat /etc/httpd/conf/httpd.conf.orig |sed 's:DocumentRoot \"/var.*:DocumentRoot \"/var/www\":' &amp;gt; /etc/httpd/conf/httpd.conf&lt;br /&gt;service httpd restart&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;By default the DocumentRoot is set to /var/www/html, while mediawiki is installed under /var/www/wiki.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;system-config-firewall-tui -p 80:tcp&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Open up port 80 in the firewall, again this should have happened when I installed apache&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;cd /tmp&lt;br /&gt;mkdir config&lt;br /&gt;cp /var/www/wiki/config/index.php config/index.php.orig&lt;br /&gt;cat config/index.php.orig |sed 's:\$DIR=.*:\$DIR="/tmp";:' &gt; config/index.php&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(cat &amp;lt;&amp;lt;EOF;&lt;br /&gt;&amp;lt;?&lt;br /&gt;\$_SERVER = array();&lt;br /&gt;\$_POST = array();&lt;br /&gt;&lt;br /&gt;\$_SERVER["SCRIPT_NAME"] = "/wiki/config/index.php";&lt;br /&gt;\$_SERVER["PHP_SELF"] = "/wiki/config/index.php";&lt;br /&gt;&lt;br /&gt;\$_SERVER["REQUEST_METHOD"] = "POST";&lt;br /&gt;&lt;br /&gt;\$_POST["Sitename"] = "My Little Wiki";&lt;br /&gt;\$_POST["SysopPass"] = "xxx";&lt;br /&gt;\$_POST["SysopPass2"] = "xxx";&lt;br /&gt;\$_POST["DBtype"] = "mysql";&lt;br /&gt;\$_POST["DBpassword"] = "xxx";&lt;br /&gt;\$_POST["DBpassword2"] = "xxx";&lt;br /&gt;\$_POST["useroot"] = "on";&lt;br /&gt;\$_POST["RootPW"] = "";&lt;br /&gt;\$_POST["DBprefix"] = "";&lt;br /&gt;&lt;br /&gt;include "config/index.php";&lt;br /&gt;?&amp;gt;&lt;br /&gt;EOF&lt;br /&gt;) &amp;gt; genconfig.php&lt;br /&gt;&lt;br /&gt;php genconfig.php&lt;br /&gt;cp config/LocalSettings.php /var/www/wiki/&lt;br /&gt;rm -rf /tmp/genconfig.php /tmp/config&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What on earth is all this ? Well this code configures mediawiki with a default config. Instead of supplying a default config, Fedora lets you surf to your wiki, fill in some variables to generate a configfile, which you then have to copy to the correct place.&lt;br /&gt;&lt;br /&gt;In the script I just pasted, this is all done automagically. I fake the execution environment of the config/index.php script and execute it from commandline. It will create the necessary database and tables and generate a LocalSettings.php, which is then copied to the correct place.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;ln -s /usr/share/mediawiki/skins/ /var/www/wiki/&lt;/pre&gt;&lt;br /&gt;After all this fiddling, the installed mediawiki still looks like crap. This is because the mediawiki apparently forgot where it placed the directory with all the skins. A symlink should fix that.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;chmod a= /var/www/wiki/config&lt;/pre&gt;&lt;br /&gt;No need for this directory to be publicly avaiable.&lt;br /&gt;&lt;br /&gt;Some of you have commented that I should read the INSTALL file as specified on &lt;a href="http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Fedora_Core"&gt;this wiki&lt;/a&gt;.&lt;br /&gt;Actually, I shouldn't have to because that's what packages are for. But just so you know, I did look there (/usr/share/mediawiki/INSTALL) (By the way, doesn't Fedora have some kind of policy where documentation should go ? What is /usr/share/doc for ?) and it doesn't mention anything about where to surf to (http://somewhere/wiki/) or whether or not to fix the skins directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-44257252473082533?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/44257252473082533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=44257252473082533' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/44257252473082533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/44257252473082533'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/puppet-no-wait-mediawiki-under-fedora-9.html' title='Puppet ? No wait, mediawiki under Fedora 9'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-7238324172304800323</id><published>2008-07-18T21:51:00.017+02:00</published><updated>2008-07-24T14:45:55.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='Cobbler'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Kickstart a cobbler server on Fedora 9 (and create offspring)</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;&lt;h3&gt;How many systems do you administer ?&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;If you've ever had to install more than a trivial amount of operating systems, you know how to appreciate good automated installation systems. Most (if not all) Linux distributions noticed this and started building automated installation systems. Debian has FAI and preseeding, Solaris has Jumpstart and Redhat has Kickstart. I must admit I took a stab at this problem myself by preseeding a Debian installation CD, but I've noticed that it takes too much of my time to rebuild the installation CD every time a new Debian release happens.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Lucky for me, Kickstart can supposedly be used to automate other linux installations. That's why I've been looking at Kickstart lately. And what can I say ? It works.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;So here we go ! Imagine this: I need to install 500 servers, all with different configurations.&lt;br /&gt;I create 500 kickstart files, each defining the setup of a single system. Then I... walk up to every of my 500 systems, put in a CD, boot it, tell it where the kickstart file is and let the thing install.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Allright, I can see some problems right there.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;First of all, I need to create 500 kickstart files, but that's nothing an army of welltrained monkeys with typewriters can't achieve.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Second, I need to walk up to every machine and put a CD in, wait till it gets to the isolinux screen and then type in the extra "ks=http://example.com/uniquestringoeshere.ks" at the end of the command line.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Third, this will approximately take forever. I either need to burn 500 CD's to boot from, or I need to wait for each installation to finish and then move the installation CD from one system to the next.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Man, administering systems is hard. In this light, it's a good thing I don't actually have to administer 500 systems. But the guys at Redhat probably do and they came up with their next great idea.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Cobbler: Provisioning made easy&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Almost 9 years ago, Intel invented the Preboot eXecution Environment (PXE), which allows eg diskless computers to boot over network without any user interaction. As part of the boot process, the BIOS might try several disks, CD-drives and floppydisk stations to try and boot, after which it can ask a networkcard to do the same. The networkcard will then try to locate a suitable server from which it can get data to boot up with.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Setting up a TFTP server to do this is not that difficult, but some other steps are involved that combine many small easy tasks into a very big time-consuming list of tasks. This is where cobbler comes in.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Cobbler is a provisioning infrastructure that takes care of all the underlying details and components for you. After installing and configuring cobbler, you basically tell it which CD you want to "publish" through PXE and it just happens. Clients booting through PXE will then get a nice menu where they can select what the want to boot. Even better, you can tell cobbler about a specific system in advance (by registering its MAC address for example) and then that system won't see a menu at all, it will just boot into whatever you specify.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;small&gt;giggity&lt;/small&gt;&lt;br /&gt;&lt;p&gt;Right, let's look at how cobbler works&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Cobbler concepts&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;There are 3 concepts that pop up all the time and that I needed to understand. I will describe them here as I understand them, AT NO EXTRA COST. You can thank me later.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Distributions&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This is pretty much self explanatory. A distribution is a ... If I want to install a Centos 5 on a i386 somewhere, I need to make a "distribution" containing the Centos 5 DVD which I can name "Centos 5 i386"&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Profiles&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This is what you get when you pack a distribution together with a kickstart file. If I want to install a Centos 5 with an apache and SSH server on it, I make a kickstart file for it and glue it together with a "Centos 5" distribution and call that a "Centos 5 Webserver+SSH" profile.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Systems&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Associating a certain physical system with a profile happens through a "System" specification. If I want to install my cute yellow 486 here under the table using the "Centos 5 Webserver+SSH" profile, I need to make a system specification by specifying the MAC-address, IP and hostname (tweety) I want for this server. Then I call this system "tweety"&lt;/dd&gt;&lt;br /&gt;&lt;dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/cobbler/cobbler.png]&lt;br /&gt;&lt;br /&gt;Here's a little scheme to show how these things fit together. You can have several distributions (in pinkish red), each of which can have several profiles associated with it (green), each of which can have several systems to it (yellow).&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Lab setup&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;On to the practical side of cobbler. I'm going to setup a cobbler server on Fedora 9 and use that to install another system using Fedora 9 aswell. All of this will be done in Virtualbox.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/cobbler/cobbler_lab_setup.png]&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The cobbler server will be named "vishnu" and it will have 2 networkcards: eth0 will be connected to an internet-connected network with DHCP on it. eth1 will be connected to a private network without any traffic on it (static IP). The private network has IP-range 172.16.1.0/24&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The machine to be installed using cobbler, has no name really. It has 1 networkcard connected to the private network and boots PXE.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Kickstarting the cobbler server: vishnu&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Installing cobbler is fairly simple. Install the base operating system, then use yum to install cobbler, edit some configfiles and you're done. This doesn't include adding distributions or profiles though.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;But wait a minute. Do I really want to install vishnu manually ? Booting the CD and going through the installation process after which I have to login, install packages and edit configfiles ?&lt;br /&gt;Of course not. This is exactly what kickstart was created for, so let's use it.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This is the kickstart file I use for vishnu:&lt;/p&gt;&lt;br /&gt;[PRE]&lt;br /&gt;#version=F9&lt;br /&gt;install&lt;br /&gt;text&lt;br /&gt;cdrom&lt;br /&gt;lang en_US.UTF-8&lt;br /&gt;keyboard us&lt;br /&gt;timezone --utc Europe/Brussels&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# network settings&lt;br /&gt;network --device eth0 --bootproto dhcp --hostname vishnu&lt;br /&gt;network --device eth1 --bootproto static --ip 172.16.1.1 --netmask 255.255.255.0&lt;br /&gt;&lt;br /&gt;# root account&lt;br /&gt;authconfig --enableshadow --passalgo=sha512&lt;br /&gt;rootpw  --iscrypted $1$6cEAJbnh$TdRTNKsAnwE/PYw3dk/o20&lt;br /&gt;&lt;br /&gt;# security&lt;br /&gt;#firewall --enabled --ssh --dhcp --trust eth1&lt;br /&gt;firewall --disabled&lt;br /&gt;selinux --enforcing&lt;br /&gt;&lt;br /&gt;# partitioning and bootloader&lt;br /&gt;clearpart --all&lt;br /&gt;autopart &lt;br /&gt;bootloader --location=mbr&lt;br /&gt;&lt;br /&gt;# reboot when done&lt;br /&gt;reboot&lt;br /&gt;&lt;br /&gt;%packages --nobase&lt;br /&gt;acl&lt;br /&gt;acpid&lt;br /&gt;anacron&lt;br /&gt;attr&lt;br /&gt;authconfig&lt;br /&gt;bind-utils&lt;br /&gt;cronie&lt;br /&gt;cyrus-sasl-plain&lt;br /&gt;dhclient&lt;br /&gt;ed&lt;br /&gt;efibootmgr&lt;br /&gt;eject&lt;br /&gt;file&lt;br /&gt;gpm&lt;br /&gt;grub&lt;br /&gt;hdparm&lt;br /&gt;kbd&lt;br /&gt;kernel&lt;br /&gt;man&lt;br /&gt;nc&lt;br /&gt;nss_db&lt;br /&gt;openssh-clients&lt;br /&gt;openssh-server&lt;br /&gt;prelink&lt;br /&gt;rng-utils&lt;br /&gt;selinux-policy-targeted&lt;br /&gt;sendmail&lt;br /&gt;setserial&lt;br /&gt;setuptool&lt;br /&gt;symlinks&lt;br /&gt;system-config-firewall-tui&lt;br /&gt;tcpdump&lt;br /&gt;time&lt;br /&gt;traceroute&lt;br /&gt;vim-minimal&lt;br /&gt;wget&lt;br /&gt;which&lt;br /&gt;yum-utils&lt;br /&gt;%end&lt;br /&gt;&lt;br /&gt;%post&lt;br /&gt;&lt;br /&gt;# disable selinux&lt;br /&gt;fpath=/etc/selinux/config&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/^SELINUX=.*/SELINUX=disabled/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# enable networking, since we removed networkmanager&lt;br /&gt;chkconfig network on&lt;br /&gt;&lt;br /&gt;# provide good ls colors for a dark background&lt;br /&gt;ln -s /etc/DIR_COLORS /root/.dir_colors&lt;br /&gt;&lt;br /&gt;# now install some muchneeded packages&lt;br /&gt;yum install -y bash-completion cobbler dhcp syslinux vim-enhanced&lt;br /&gt;&lt;br /&gt;# setting server and next_server in /etc/cobbler/settings&lt;br /&gt;fpath=/etc/cobbler/settings&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/127.0.0.1/172.16.1.1/g' | sed 's/manage_dhcp:.*/manage_dhcp: 1/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# Must enable selinux boolean to enable Apache and web services components&lt;br /&gt;setsebool -P httpd_can_network_connect true&lt;br /&gt;&lt;br /&gt;# enable tftp&lt;br /&gt;fpath=/etc/xinetd.d/tftp&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/disable.*=.*/disable                 = no/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# start httpd at boot&lt;br /&gt;chkconfig httpd on&lt;br /&gt;&lt;br /&gt;# change default password "cobbler" to "trial"&lt;br /&gt;for f in /etc/cobbler/*.ks;&lt;br /&gt;do&lt;br /&gt;    cp $f $f.orig&lt;br /&gt;    cat $f.orig | sed 's/rootpw --iscrypted.*/rootpw --iscrypted \\\$1\\\$MZmukub3\\\$SMFCloWQ\/d2jhTC3nZOEK0/' &gt; $f&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# only do DHCP on eth1&lt;br /&gt;fpath=/etc/sysconfig/dhcpd&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/DHCPARGS=.*/DHCPARGS=eth1/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# eth1 network is 172.16.1.0/24&lt;br /&gt;fpath=/etc/cobbler/dhcp.template&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/192.168.1/172.16.1/g' | grep -v "option routers" &gt; $fpath&lt;br /&gt;&lt;br /&gt;# start dhcpd at boot&lt;br /&gt;chkconfig dhcpd on&lt;br /&gt;&lt;br /&gt;# sync config&lt;br /&gt;cobbler sync&lt;br /&gt;&lt;br /&gt;%end&lt;br /&gt;[/PRE]&lt;br /&gt;[DOWNLOAD:http://data.singularity.be/rh/vishnu-20080718]&lt;br /&gt;&lt;br /&gt;&lt;p&gt;No need to fire up john to crack this crypted password, its "trial"&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note that I specified a list of packages to install (%packages section) and told kickstart not to install anything else, not even the base system. There is no real-life use for this. The only purpose I had for stripping down a bare Fedora 9 install to the bare minimum, was minimizing installation time.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The other noteworthy part in this kickstart file is the %post section, which contains a script to be executed on the installed machine after installation completes. Here is what it does:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Disable selinux&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;By default, Fedora 9 switches on SELinux which is a good thing. However, apache was having problems with SELinux when I mounted a DVD under its documentroot. Because I don't have extensive SELinux knowledge to fix this, I took the cheesy way out and just disabled it. Note that you can also just put "selinux --disabled" in the kickstart file, but this way I have an excuse to try and fix my setup later...&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Enable networking&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This one is pretty silly and I suspect it is a Fedora bug. Because I have stripped down Fedora to the bare minimum, NetworkManager was not installed. I would have expected that Fedora took a moment to think about that and then enable networking without NetworkManager. But it didn't so I have to enable it manually.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Installing needed packages&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Install cobbler and friends. Also install bash-completion (I'm a huge fan of bash-completion and am thrilled to have learned that bash-completion scripts will be included in future versions of cobbler!) and vim-enhanced&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Fix some settings&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;After installing cobbler, one would normally run "cobbler check" and fix everything cobbler complains about. Well, I did that in the script.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;only do DHCP on eth1&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;I'm a network administrator and my kind has a serious disgust of rogue DHCP servers on our networks. (So much in fact that I have wirecutters in my desk to cut through UTP cable from offending users). Since this cobbler setup deploys a DHCP server, make sure it only runs on the private network where it belongs: eth1&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Modify the dhcp.template file&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;The private network will use a DHCP range of 172.16.1.0/24&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;switch on the dhcpd server&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;.. so it will start at boot&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;cobbler sync&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This command will generate configfiles for all cobbler components from templates and such.&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To use this kickstart file, boot a Fedora 9 DVD in a virtual machine with 2 networkcards of which eth0 is connected to a DHCP-enabled and internetconnected network. Then at the isolinux menu, press tab and add the following:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt; ks=http://data.singularity.be/rh/vishnu-20080718 ksdevice=eth0&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/cobbler/fedora-isolinux.png]&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;In my lab, it takes only 9 minutes and 10 seconds after I press enter on the commandline above untill I get to vishnu's login prompt.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/cobbler/vishnu-login.png]&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Vishnu's first offspring: localhost&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Before we can create cobbler offspring, we need to setup a distribution and such. Normally when importing a distribution, cobbler copies all necessary files to the local disk. But I think that's a bit overkill for a simple labsetup like this. So instead, I will mount the DVD and make it available over HTTP.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Log in to vishnu and execute these commands:&lt;/p&gt;&lt;br /&gt;[PRE]&lt;br /&gt;mkdir /var/www/cobbler/mounted&lt;br /&gt;mount /dev/cdrom /var/www/cobbler/mounted&lt;br /&gt;cobbler import --name=F9 --mirror=/var/www/cobbler/mounted/ --available-as=http://172.16.1.1/cobbler/mounted/&lt;br /&gt;cobbler distro edit --name=F9-i386 --ksmeta="tree=http://@@server@@/cobbler/mounted"&lt;br /&gt;cobbler profile edit --name=F9-i386 --kickstart=/etc/cobbler/sample.ks&lt;br /&gt;cobbler sync&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Breaking it down with explanations&lt;/p&gt;&lt;br /&gt;[PRE]mkdir /var/www/cobbler/mounted[/PRE]&lt;br /&gt;&lt;p&gt;... creates a mountpoint for the Fedora 9 DVD&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[PRE]mount /dev/cdrom /var/www/cobbler/mounted[/PRE]&lt;br /&gt;&lt;p&gt;... mount the DVD there&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[PRE]cobbler import --name=F9 --mirror=/var/www/cobbler/mounted/ --available-as=http://172.16.1.1/cobbler/mounted/[/PRE]&lt;br /&gt;&lt;p&gt;... import the distribution, but tell cobbler to not mirror it and instead send the client to the given URL. This URL is the reason why the DVD is mounted under the apache documentroot.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[PRE]cobbler distro edit --name=F9-i386 --ksmeta="tree=http://@@server@@/cobbler/mounted"[/PRE]&lt;br /&gt;&lt;p&gt;... tell cobbler how to fill in the "$tree" variable for this distribution. Normally this is handled by "cobbler import", but this is not a normal setup so we need to fix it manually (for now)&lt;/p&gt;&lt;br /&gt;[PRE]cobbler profile edit --name=F9-i386 --kickstart=/etc/cobbler/sample.ks[/PRE]&lt;br /&gt;&lt;p&gt;... for some reason, cobbler gives an error with the above import command and does not link a kickstart file to the F9-i386 profile. Fixing this manually as well, probably a bug, this is what the error looked like:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;[root@vishnu ~]# cobbler import --name=F9 --mirror=/var/www/cobbler/mounted/ --available-as=http://172.16.1.1/cobbler/mounted/&lt;br /&gt;---------------- (adding distros)&lt;br /&gt;- scanning /var/www/cobbler/mounted for architecture info&lt;br /&gt;- kernel header found: kernel-headers-2.6.25-14.fc9.i386.rpm&lt;br /&gt;- creating new distro: F9-i386&lt;br /&gt;- creating new profile: F9-i386&lt;br /&gt;- scanning /var/www/cobbler/mounted for architecture info&lt;br /&gt;- kernel header found: kernel-headers-2.6.25-14.fc9.i386.rpm&lt;br /&gt;- creating new distro: F9-xen-i386&lt;br /&gt;- creating new profile: F9-xen-i386&lt;br /&gt;---------------- (associating kickstarts)&lt;br /&gt;- finding default kickstart template for fedora 9.0&lt;br /&gt;/var/www/cobbler/mounted/, /var/www/cobbler/mounted, -1&lt;br /&gt;Error: possible symlink traversal?: /var/www/cobbler/mounted&lt;br /&gt;[root@vishnu ~]# &lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;[PRE]cobbler sync[/PRE]&lt;br /&gt;&lt;p&gt;... and sync cobbler configs&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now you're done !&lt;br /&gt;Boot a fresh machine using PXE and you should get a nice menu like this:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;[FULLIMG:http://data.singularity.be/images/full/undated/cobbler/client-pxe-menu.png]&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Select F9-i386 and press enter. The installation process should take over and do everything automatically from there on.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;PS: And what about hiring an army of monkeys with typewriters to generate the kickstart files ? There's a solution for that too. It's called puppet, but that's a story for a later time.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;h3&gt;How many systems do you administer ?&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;If you've ever had to install more than a trivial amount of operating systems, you know how to appreciate good automated installation systems. Most (if not all) Linux distributions noticed this and started building automated installation systems. Debian has FAI and preseeding, Solaris has Jumpstart and Redhat has Kickstart. I must admit I took a stab at this problem myself by preseeding a Debian installation CD, but I've noticed that it takes too much of my time to rebuild the installation CD every time a new Debian release happens.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Lucky for me, Kickstart can supposedly be used to automate other linux installations. That's why I've been looking at Kickstart lately. And what can I say ? It works.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;So here we go ! Imagine this: I need to install 500 servers, all with different configurations.&lt;br /&gt;I create 500 kickstart files, each defining the setup of a single system. Then I... walk up to every of my 500 systems, put in a CD, boot it, tell it where the kickstart file is and let the thing install.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Allright, I can see some problems right there.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;First of all, I need to create 500 kickstart files, but that's nothing an army of welltrained monkeys with typewriters can't achieve.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Second, I need to walk up to every machine and put a CD in, wait till it gets to the isolinux screen and then type in the extra "ks=http://example.com/uniquestringoeshere.ks" at the end of the command line.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Third, this will approximately take forever. I either need to burn 500 CD's to boot from, or I need to wait for each installation to finish and then move the installation CD from one system to the next.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Man, administering systems is hard. In this light, it's a good thing I don't actually have to administer 500 systems. But the guys at Redhat probably do and they came up with their next great idea.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Cobbler: Provisioning made easy&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Almost 9 years ago, Intel invented the Preboot eXecution Environment (PXE), which allows eg diskless computers to boot over network without any user interaction. As part of the boot process, the BIOS might try several disks, CD-drives and floppydisk stations to try and boot, after which it can ask a networkcard to do the same. The networkcard will then try to locate a suitable server from which it can get data to boot up with.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Setting up a TFTP server to do this is not that difficult, but some other steps are involved that combine many small easy tasks into a very big time-consuming list of tasks. This is where cobbler comes in.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Cobbler is a provisioning infrastructure that takes care of all the underlying details and components for you. After installing and configuring cobbler, you basically tell it which CD you want to "publish" through PXE and it just happens. Clients booting through PXE will then get a nice menu where they can select what the want to boot. Even better, you can tell cobbler about a specific system in advance (by registering its MAC address for example) and then that system won't see a menu at all, it will just boot into whatever you specify.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;small&gt;giggity&lt;/small&gt;&lt;br /&gt;&lt;p&gt;Right, let's look at how cobbler works&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Cobbler concepts&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;There are 3 concepts that pop up all the time and that I needed to understand. I will describe them here as I understand them, AT NO EXTRA COST. You can thank me later.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Distributions&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This is pretty much self explanatory. A distribution is a ... If I want to install a Centos 5 on a i386 somewhere, I need to make a "distribution" containing the Centos 5 DVD which I can name "Centos 5 i386"&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Profiles&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This is what you get when you pack a distribution together with a kickstart file. If I want to install a Centos 5 with an apache and SSH server on it, I make a kickstart file for it and glue it together with a "Centos 5" distribution and call that a "Centos 5 Webserver+SSH" profile.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Systems&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Associating a certain physical system with a profile happens through a "System" specification. If I want to install my cute yellow 486 here under the table using the "Centos 5 Webserver+SSH" profile, I need to make a system specification by specifying the MAC-address, IP and hostname (tweety) I want for this server. Then I call this system "tweety"&lt;/dd&gt;&lt;br /&gt;&lt;dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/cobbler/cobbler.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/cobbler/cobbler.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a little scheme to show how these things fit together. You can have several distributions (in pinkish red), each of which can have several profiles associated with it (green), each of which can have several systems to it (yellow).&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Lab setup&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;On to the practical side of cobbler. I'm going to setup a cobbler server on Fedora 9 and use that to install another system using Fedora 9 aswell. All of this will be done in Virtualbox.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/cobbler/cobbler_lab_setup.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/cobbler/cobbler_lab_setup.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The cobbler server will be named "vishnu" and it will have 2 networkcards: eth0 will be connected to an internet-connected network with DHCP on it. eth1 will be connected to a private network without any traffic on it (static IP). The private network has IP-range 172.16.1.0/24&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The machine to be installed using cobbler, has no name really. It has 1 networkcard connected to the private network and boots PXE.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Kickstarting the cobbler server: vishnu&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Installing cobbler is fairly simple. Install the base operating system, then use yum to install cobbler, edit some configfiles and you're done. This doesn't include adding distributions or profiles though.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;But wait a minute. Do I really want to install vishnu manually ? Booting the CD and going through the installation process after which I have to login, install packages and edit configfiles ?&lt;br /&gt;Of course not. This is exactly what kickstart was created for, so let's use it.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This is the kickstart file I use for vishnu:&lt;/p&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#version=F9&lt;br /&gt;install&lt;br /&gt;text&lt;br /&gt;cdrom&lt;br /&gt;lang en_US.UTF-8&lt;br /&gt;keyboard us&lt;br /&gt;timezone --utc Europe/Brussels&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# network settings&lt;br /&gt;network --device eth0 --bootproto dhcp --hostname vishnu&lt;br /&gt;network --device eth1 --bootproto static --ip 172.16.1.1 --netmask 255.255.255.0&lt;br /&gt;&lt;br /&gt;# root account&lt;br /&gt;authconfig --enableshadow --passalgo=sha512&lt;br /&gt;rootpw  --iscrypted $1$6cEAJbnh$TdRTNKsAnwE/PYw3dk/o20&lt;br /&gt;&lt;br /&gt;# security&lt;br /&gt;#firewall --enabled --ssh --dhcp --trust eth1&lt;br /&gt;firewall --disabled&lt;br /&gt;selinux --enforcing&lt;br /&gt;&lt;br /&gt;# partitioning and bootloader&lt;br /&gt;clearpart --all&lt;br /&gt;autopart &lt;br /&gt;bootloader --location=mbr&lt;br /&gt;&lt;br /&gt;# reboot when done&lt;br /&gt;reboot&lt;br /&gt;&lt;br /&gt;%packages --nobase&lt;br /&gt;acl&lt;br /&gt;acpid&lt;br /&gt;anacron&lt;br /&gt;attr&lt;br /&gt;authconfig&lt;br /&gt;bind-utils&lt;br /&gt;cronie&lt;br /&gt;cyrus-sasl-plain&lt;br /&gt;dhclient&lt;br /&gt;ed&lt;br /&gt;efibootmgr&lt;br /&gt;eject&lt;br /&gt;file&lt;br /&gt;gpm&lt;br /&gt;grub&lt;br /&gt;hdparm&lt;br /&gt;kbd&lt;br /&gt;kernel&lt;br /&gt;man&lt;br /&gt;nc&lt;br /&gt;nss_db&lt;br /&gt;openssh-clients&lt;br /&gt;openssh-server&lt;br /&gt;prelink&lt;br /&gt;rng-utils&lt;br /&gt;selinux-policy-targeted&lt;br /&gt;sendmail&lt;br /&gt;setserial&lt;br /&gt;setuptool&lt;br /&gt;symlinks&lt;br /&gt;system-config-firewall-tui&lt;br /&gt;tcpdump&lt;br /&gt;time&lt;br /&gt;traceroute&lt;br /&gt;vim-minimal&lt;br /&gt;wget&lt;br /&gt;which&lt;br /&gt;yum-utils&lt;br /&gt;%end&lt;br /&gt;&lt;br /&gt;%post&lt;br /&gt;&lt;br /&gt;# disable selinux&lt;br /&gt;fpath=/etc/selinux/config&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/^SELINUX=.*/SELINUX=disabled/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# enable networking, since we removed networkmanager&lt;br /&gt;chkconfig network on&lt;br /&gt;&lt;br /&gt;# provide good ls colors for a dark background&lt;br /&gt;ln -s /etc/DIR_COLORS /root/.dir_colors&lt;br /&gt;&lt;br /&gt;# now install some muchneeded packages&lt;br /&gt;yum install -y bash-completion cobbler dhcp syslinux vim-enhanced&lt;br /&gt;&lt;br /&gt;# setting server and next_server in /etc/cobbler/settings&lt;br /&gt;fpath=/etc/cobbler/settings&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/127.0.0.1/172.16.1.1/g' | sed 's/manage_dhcp:.*/manage_dhcp: 1/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# Must enable selinux boolean to enable Apache and web services components&lt;br /&gt;setsebool -P httpd_can_network_connect true&lt;br /&gt;&lt;br /&gt;# enable tftp&lt;br /&gt;fpath=/etc/xinetd.d/tftp&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/disable.*=.*/disable                 = no/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# start httpd at boot&lt;br /&gt;chkconfig httpd on&lt;br /&gt;&lt;br /&gt;# change default password "cobbler" to "trial"&lt;br /&gt;for f in /etc/cobbler/*.ks;&lt;br /&gt;do&lt;br /&gt;    cp $f $f.orig&lt;br /&gt;    cat $f.orig | sed 's/rootpw --iscrypted.*/rootpw --iscrypted \\\$1\\\$MZmukub3\\\$SMFCloWQ\/d2jhTC3nZOEK0/' &gt; $f&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# only do DHCP on eth1&lt;br /&gt;fpath=/etc/sysconfig/dhcpd&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/DHCPARGS=.*/DHCPARGS=eth1/' &gt; $fpath&lt;br /&gt;&lt;br /&gt;# eth1 network is 172.16.1.0/24&lt;br /&gt;fpath=/etc/cobbler/dhcp.template&lt;br /&gt;cp $fpath $fpath.orig&lt;br /&gt;cat $fpath.orig | sed 's/192.168.1/172.16.1/g' | grep -v "option routers" &gt; $fpath&lt;br /&gt;&lt;br /&gt;# start dhcpd at boot&lt;br /&gt;chkconfig dhcpd on&lt;br /&gt;&lt;br /&gt;# sync config&lt;br /&gt;cobbler sync&lt;br /&gt;&lt;br /&gt;%end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="padding: 2px; background-color: #f0f0f0;"&gt;&lt;a href="http://data.singularity.be/rh/vishnu-20080718"&gt;&lt;img style="vertical-align: middle; padding: 2px;" src="http://data.singularity.be/images/icon/download-icon.png"&gt;Download http://data.singularity.be/rh/vishnu-20080718&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;No need to fire up john to crack this crypted password, its "trial"&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note that I specified a list of packages to install (%packages section) and told kickstart not to install anything else, not even the base system. There is no real-life use for this. The only purpose I had for stripping down a bare Fedora 9 install to the bare minimum, was minimizing installation time.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The other noteworthy part in this kickstart file is the %post section, which contains a script to be executed on the installed machine after installation completes. Here is what it does:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Disable selinux&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;By default, Fedora 9 switches on SELinux which is a good thing. However, apache was having problems with SELinux when I mounted a DVD under its documentroot. Because I don't have extensive SELinux knowledge to fix this, I took the cheesy way out and just disabled it. Note that you can also just put "selinux --disabled" in the kickstart file, but this way I have an excuse to try and fix my setup later...&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Enable networking&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This one is pretty silly and I suspect it is a Fedora bug. Because I have stripped down Fedora to the bare minimum, NetworkManager was not installed. I would have expected that Fedora took a moment to think about that and then enable networking without NetworkManager. But it didn't so I have to enable it manually.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Installing needed packages&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Install cobbler and friends. Also install bash-completion (I'm a huge fan of bash-completion and am thrilled to have learned that bash-completion scripts will be included in future versions of cobbler!) and vim-enhanced&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Fix some settings&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;After installing cobbler, one would normally run "cobbler check" and fix everything cobbler complains about. Well, I did that in the script.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;only do DHCP on eth1&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;I'm a network administrator and my kind has a serious disgust of rogue DHCP servers on our networks. (So much in fact that I have wirecutters in my desk to cut through UTP cable from offending users). Since this cobbler setup deploys a DHCP server, make sure it only runs on the private network where it belongs: eth1&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Modify the dhcp.template file&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;The private network will use a DHCP range of 172.16.1.0/24&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;switch on the dhcpd server&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;.. so it will start at boot&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;cobbler sync&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;This command will generate configfiles for all cobbler components from templates and such.&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To use this kickstart file, boot a Fedora 9 DVD in a virtual machine with 2 networkcards of which eth0 is connected to a DHCP-enabled and internetconnected network. Then at the isolinux menu, press tab and add the following:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt; ks=http://data.singularity.be/rh/vishnu-20080718 ksdevice=eth0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/cobbler/fedora-isolinux.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/cobbler/fedora-isolinux.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;In my lab, it takes only 9 minutes and 10 seconds after I press enter on the commandline above untill I get to vishnu's login prompt.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/cobbler/vishnu-login.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/cobbler/vishnu-login.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Vishnu's first offspring: localhost&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Before we can create cobbler offspring, we need to setup a distribution and such. Normally when importing a distribution, cobbler copies all necessary files to the local disk. But I think that's a bit overkill for a simple labsetup like this. So instead, I will mount the DVD and make it available over HTTP.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Log in to vishnu and execute these commands:&lt;/p&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;mkdir /var/www/cobbler/mounted&lt;br /&gt;mount /dev/cdrom /var/www/cobbler/mounted&lt;br /&gt;cobbler import --name=F9 --mirror=/var/www/cobbler/mounted/ --available-as=http://172.16.1.1/cobbler/mounted/&lt;br /&gt;cobbler distro edit --name=F9-i386 --ksmeta="tree=http://@@server@@/cobbler/mounted"&lt;br /&gt;cobbler profile edit --name=F9-i386 --kickstart=/etc/cobbler/sample.ks&lt;br /&gt;cobbler sync&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Breaking it down with explanations&lt;/p&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;mkdir /var/www/cobbler/mounted&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;... creates a mountpoint for the Fedora 9 DVD&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;mount /dev/cdrom /var/www/cobbler/mounted&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;... mount the DVD there&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;cobbler import --name=F9 --mirror=/var/www/cobbler/mounted/ --available-as=http://172.16.1.1/cobbler/mounted/&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;... import the distribution, but tell cobbler to not mirror it and instead send the client to the given URL. This URL is the reason why the DVD is mounted under the apache documentroot.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;cobbler distro edit --name=F9-i386 --ksmeta="tree=http://@@server@@/cobbler/mounted"&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;... tell cobbler how to fill in the "$tree" variable for this distribution. Normally this is handled by "cobbler import", but this is not a normal setup so we need to fix it manually (for now)&lt;/p&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;cobbler profile edit --name=F9-i386 --kickstart=/etc/cobbler/sample.ks&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;... for some reason, cobbler gives an error with the above import command and does not link a kickstart file to the F9-i386 profile. Fixing this manually as well, probably a bug, this is what the error looked like:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;[root@vishnu ~]# cobbler import --name=F9 --mirror=/var/www/cobbler/mounted/ --available-as=http://172.16.1.1/cobbler/mounted/&lt;br /&gt;---------------- (adding distros)&lt;br /&gt;- scanning /var/www/cobbler/mounted for architecture info&lt;br /&gt;- kernel header found: kernel-headers-2.6.25-14.fc9.i386.rpm&lt;br /&gt;- creating new distro: F9-i386&lt;br /&gt;- creating new profile: F9-i386&lt;br /&gt;- scanning /var/www/cobbler/mounted for architecture info&lt;br /&gt;- kernel header found: kernel-headers-2.6.25-14.fc9.i386.rpm&lt;br /&gt;- creating new distro: F9-xen-i386&lt;br /&gt;- creating new profile: F9-xen-i386&lt;br /&gt;---------------- (associating kickstarts)&lt;br /&gt;- finding default kickstart template for fedora 9.0&lt;br /&gt;/var/www/cobbler/mounted/, /var/www/cobbler/mounted, -1&lt;br /&gt;Error: possible symlink traversal?: /var/www/cobbler/mounted&lt;br /&gt;[root@vishnu ~]# &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;cobbler sync&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;... and sync cobbler configs&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now you're done !&lt;br /&gt;Boot a fresh machine using PXE and you should get a nice menu like this:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/undated/cobbler/client-pxe-menu.png"&gt;&lt;img src="http://data.singularity.be/images/full/undated/cobbler/client-pxe-menu.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Select F9-i386 and press enter. The installation process should take over and do everything automatically from there on.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;PS: And what about hiring an army of monkeys with typewriters to generate the kickstart files ? There's a solution for that too. It's called puppet, but that's a story for a later time.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7238324172304800323?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7238324172304800323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7238324172304800323' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7238324172304800323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7238324172304800323'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/kickstart-cobbler-server-on-fedora-9.html' title='Kickstart a cobbler server on Fedora 9 (and create offspring)'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-5303683194708802865</id><published>2008-07-18T10:58:00.002+02:00</published><updated>2008-07-18T11:02:06.868+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>Vacuform: light at the end of the tunnel</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I've finally been able to put some more work into the vacuform oven. I don't have all the lamps yet (and I'm missing a couple nuts and bolts too, the store was out) but the following proves that it can work ;)&lt;br /&gt;&lt;br /&gt;[IMG:2008-07-18/CIMG1601.JPG][IMG:2008-07-18/CIMG1602.JPG][IMG:2008-07-18/CIMG1603.JPG][IMG:2008-07-18/CIMG1604.JPG][IMG:2008-07-18/CIMG1605.JPG][IMG:2008-07-18/CIMG1606.JPG][IMG:2008-07-18/CIMG1607.JPG][IMG:2008-07-18/CIMG1608.JPG][IMG:2008-07-18/CIMG1609.JPG]&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I've finally been able to put some more work into the vacuform oven. I don't have all the lamps yet (and I'm missing a couple nuts and bolts too, the store was out) but the following proves that it can work ;)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1601.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1601.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1602.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1602.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1603.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1603.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1604.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1604.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1605.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1605.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1606.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1606.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1607.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1607.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1608.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1608.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-07-18/CIMG1609.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-07-18/CIMG1609.JPG.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-5303683194708802865?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/5303683194708802865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=5303683194708802865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5303683194708802865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/5303683194708802865'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/vacuform-light-at-end-of-tunnel.html' title='Vacuform: light at the end of the tunnel'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-4921829879904692642</id><published>2008-07-17T17:28:00.004+02:00</published><updated>2008-07-24T14:46:41.196+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='RPM'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Playing with RPM dependencies: pruning the tree</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I've set up a Fedora 9 and stripped everything I don't need out of it. Now I would like to make a kickstart profile out of it. But instead of telling kickstart to install the (mandatory) basesystem and then removing all the packages I list, I want to tell it to not install ANYTHING, except the packages I tell it to (ie. the basesystem minus some crap).&lt;br /&gt;&lt;br /&gt;So, I took the list of packages that I had installed, generated a dependency tree of it (using the graph generator from the previous post) and then threw out all packages in the list that were going to be installed anyway because the are dependencies of other packages.&lt;br /&gt;&lt;br /&gt;This is the script I used:&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;$AllPackages = {};&lt;br /&gt;$Requires = {};&lt;br /&gt;$RequiredBy = {};&lt;br /&gt;&lt;br /&gt;sub parseGeneratedDOTFile {&lt;br /&gt;    my ($filename) = @_;&lt;br /&gt;&lt;br /&gt;    open IN, "$filename";&lt;br /&gt;    while(my $line = &amp;lt;IN&amp;gt;) {&lt;br /&gt;        if($line =~ /^"([^"]+)" -&gt; "([^"]+)";$/) {&lt;br /&gt;     $AllPackages-&gt;{$1} = 1;&lt;br /&gt;     $AllPackages-&gt;{$2} = 1;&lt;br /&gt;     $Requires-&gt;{$1}-&gt;{$2} = 1;&lt;br /&gt;     $RequiredBy-&gt;{$2}-&gt;{$1} = 1;&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;    close IN;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# requires(a,b) -&gt; does a require b ?&lt;br /&gt;sub requires {&lt;br /&gt;    my ($a, $b) = @_;&lt;br /&gt;    return $Requires-&gt;{$a}-&gt;{$b};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# isRequiredBy(a,b) -&gt; is a required by b ? (b requires a)&lt;br /&gt;sub requires {&lt;br /&gt;    my ($a, $b) = @_;&lt;br /&gt;    return $RequiredBy-&gt;{$a}-&gt;{$b};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub getAllDependenciesRecursively {&lt;br /&gt;    my (@list) = @_;&lt;br /&gt;&lt;br /&gt;    my $newlist = {};&lt;br /&gt;&lt;br /&gt;    foreach my $i (@list) {&lt;br /&gt;        $newlist-&gt;{$i} = 1;&lt;br /&gt; foreach my $dep (keys %{$Requires-&gt;{$i}}) {&lt;br /&gt;     $newlist-&gt;{$dep} = 1;&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    my @output = keys %$newlist;&lt;br /&gt;&lt;br /&gt;    if(scalar(@output) &gt; scalar(@list)) {&lt;br /&gt;        # something in the list changed, recurse more&lt;br /&gt; return getAllDependenciesRecursively(@output);&lt;br /&gt;    } else {&lt;br /&gt;        return @output;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub getMinimalSetToInstall {&lt;br /&gt;    my (@list) = @_;&lt;br /&gt;    my %bla = map { $_ =&gt; 1 } @list;&lt;br /&gt;    my $old = \%bla;&lt;br /&gt;    my $new = {};&lt;br /&gt;&lt;br /&gt;    foreach my $pkg (@list) {&lt;br /&gt;     my @revdeps = keys %{$RequiredBy-&gt;{$pkg}};&lt;br /&gt;        if(scalar(@revdeps) != 0) {&lt;br /&gt;     my $toBeAdded = 1;&lt;br /&gt;     # this package is required by some packages&lt;br /&gt;     # check if any of those packages is in the list we need to check&lt;br /&gt;     foreach my $d (@revdeps) {&lt;br /&gt;         if($old-&gt;{$d} == 1) {&lt;br /&gt;      $toBeAdded = 0;&lt;br /&gt;  }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     if($toBeAdded == 1) {&lt;br /&gt;         $new-&gt;{$pkg} = 1;&lt;br /&gt;     }&lt;br /&gt; } else {&lt;br /&gt;     # This package isn't required by anything else, so just keep it in the list&lt;br /&gt;     $new-&gt;{$pkg} = 1;&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return keys %{$new}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;parseGeneratedDOTFile($ARGV[0]);&lt;br /&gt;&lt;br /&gt;@origlist = keys %{$AllPackages};&lt;br /&gt;@smalllist = getMinimalSetToInstall(@origlist);&lt;br /&gt;@generatedlist = getAllDependenciesRecursively((@smalllist));&lt;br /&gt;&lt;br /&gt;if(scalar(@origlist) == scalar(@generatedlist)) {&lt;br /&gt;    print "Succesfully expanded minimal list into full list!\n\n";&lt;br /&gt;    print "Original list (".scalar(@origlist)." packages):\n";&lt;br /&gt;    print join " ", @origlist;&lt;br /&gt;    print "\n\n";&lt;br /&gt;    print "Condensed list (".scalar(@smalllist)." packages):\n";&lt;br /&gt;    print join " ", @smalllist;&lt;br /&gt;    print "\n";&lt;br /&gt;}&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;This is the result so far (I haven't taken a detailed look at this output yet):&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;Succesfully expanded minimal list into full list!&lt;br /&gt;&lt;br /&gt;Original list (196 packages):&lt;br /&gt;glibc pciutils which iproute kudzu file rsyslog libattr libdhcp rpm less crontabs libsysfs nc sysvinit-tools dmraid hesiod checkpolicy system-config-firewall-tui findutils dbus-glib mkinitrd libidn tcpdump pth newt coreutils selinux-policy libpcap libselinux pygpgme grub libselinux-python time krb5-libs audit-libs newt-python pinentry kernel cyrus-sasl-plain gpgme anacron readline audit-libs-python iputils cracklib-dicts upstart hwdata man chkconfig initscripts gnupg2 glib2 procps file-libs gawk fedora-release-notes cyrus-sasl-lib psmisc nash mdadm libdhcp6client grep policycoreutils bash zlib bind-libs yum-metadata-parser setuptool ncurses-base libxml2 dbus dhcpv6-client zip slang hdparm shadow-utils pam tzdata tar kpartx python-urlgrabber db4 rpm-libs libvolume_id groff dhclient ncurses rpm-python bind-utils parted fedora-logos bc openssh-clients python-libs wireless-tools libcap pkgconfig make logrotate libsepol pcre dbus-python yum acpid bzip2 filesystem util-linux-ng dirmngr libsemanage tree unzip tcp_wrappers-libs cracklib openssl python-iniparse elfutils-libelf device-mapper libacl basesystem net-tools acl ncurses-libs isomd5sum openssh keyutils-libs wget usermode sudo libuser glibc-common udev selinux-policy-targeted symlinks libedit attr sed rhpl nss_db MAKEDEV iptables-ipv6 cyrus-sasl info python traceroute passwd libgcrypt setup system-config-network-tui popt eject ntfs-3g gdbm openssh-server diffutils vim-minimal device-mapper-libs libcurl gamin expat device-mapper-multipath rng-utils libstdc++ dbus-libs gzip procmail sendmail nspr mingetty iptables libnl libksba openldap libgcc linux-atm-libs lvm2 bzip2-libs kbd sqlite e2fsprogs libdhcp4client yum-utils at ethtool libusb ustr nss e2fsprogs-libs gpm authconfig cronie libgpg-error fedora-release module-init-tools ConsoleKit-libs cpio&lt;br /&gt;&lt;br /&gt;Condensed list (42 packages):&lt;br /&gt;tree unzip which eject file ntfs-3g openssh-server device-mapper-multipath rng-utils nc sendmail acl system-config-firewall-tui setuptool tcpdump dhcpv6-client zip hdparm wget sudo kbd grub selinux-policy-targeted time dhclient symlinks attr bind-utils kernel nss_db at yum-utils cyrus-sasl-plain anacron bc openssh-clients gpm traceroute authconfig cronie man acpid&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I've set up a Fedora 9 and stripped everything I don't need out of it. Now I would like to make a kickstart profile out of it. But instead of telling kickstart to install the (mandatory) basesystem and then removing all the packages I list, I want to tell it to not install ANYTHING, except the packages I tell it to (ie. the basesystem minus some crap).&lt;br /&gt;&lt;br /&gt;So, I took the list of packages that I had installed, generated a dependency tree of it (using the graph generator from the previous post) and then threw out all packages in the list that were going to be installed anyway because the are dependencies of other packages.&lt;br /&gt;&lt;br /&gt;This is the script I used:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;$AllPackages = {};&lt;br /&gt;$Requires = {};&lt;br /&gt;$RequiredBy = {};&lt;br /&gt;&lt;br /&gt;sub parseGeneratedDOTFile {&lt;br /&gt;    my ($filename) = @_;&lt;br /&gt;&lt;br /&gt;    open IN, "$filename";&lt;br /&gt;    while(my $line = &amp;lt;IN&amp;gt;) {&lt;br /&gt;        if($line =~ /^"([^"]+)" -&gt; "([^"]+)";$/) {&lt;br /&gt;     $AllPackages-&gt;{$1} = 1;&lt;br /&gt;     $AllPackages-&gt;{$2} = 1;&lt;br /&gt;     $Requires-&gt;{$1}-&gt;{$2} = 1;&lt;br /&gt;     $RequiredBy-&gt;{$2}-&gt;{$1} = 1;&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;    close IN;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# requires(a,b) -&gt; does a require b ?&lt;br /&gt;sub requires {&lt;br /&gt;    my ($a, $b) = @_;&lt;br /&gt;    return $Requires-&gt;{$a}-&gt;{$b};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# isRequiredBy(a,b) -&gt; is a required by b ? (b requires a)&lt;br /&gt;sub requires {&lt;br /&gt;    my ($a, $b) = @_;&lt;br /&gt;    return $RequiredBy-&gt;{$a}-&gt;{$b};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub getAllDependenciesRecursively {&lt;br /&gt;    my (@list) = @_;&lt;br /&gt;&lt;br /&gt;    my $newlist = {};&lt;br /&gt;&lt;br /&gt;    foreach my $i (@list) {&lt;br /&gt;        $newlist-&gt;{$i} = 1;&lt;br /&gt; foreach my $dep (keys %{$Requires-&gt;{$i}}) {&lt;br /&gt;     $newlist-&gt;{$dep} = 1;&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    my @output = keys %$newlist;&lt;br /&gt;&lt;br /&gt;    if(scalar(@output) &gt; scalar(@list)) {&lt;br /&gt;        # something in the list changed, recurse more&lt;br /&gt; return getAllDependenciesRecursively(@output);&lt;br /&gt;    } else {&lt;br /&gt;        return @output;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub getMinimalSetToInstall {&lt;br /&gt;    my (@list) = @_;&lt;br /&gt;    my %bla = map { $_ =&gt; 1 } @list;&lt;br /&gt;    my $old = \%bla;&lt;br /&gt;    my $new = {};&lt;br /&gt;&lt;br /&gt;    foreach my $pkg (@list) {&lt;br /&gt;     my @revdeps = keys %{$RequiredBy-&gt;{$pkg}};&lt;br /&gt;        if(scalar(@revdeps) != 0) {&lt;br /&gt;     my $toBeAdded = 1;&lt;br /&gt;     # this package is required by some packages&lt;br /&gt;     # check if any of those packages is in the list we need to check&lt;br /&gt;     foreach my $d (@revdeps) {&lt;br /&gt;         if($old-&gt;{$d} == 1) {&lt;br /&gt;      $toBeAdded = 0;&lt;br /&gt;  }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     if($toBeAdded == 1) {&lt;br /&gt;         $new-&gt;{$pkg} = 1;&lt;br /&gt;     }&lt;br /&gt; } else {&lt;br /&gt;     # This package isn't required by anything else, so just keep it in the list&lt;br /&gt;     $new-&gt;{$pkg} = 1;&lt;br /&gt; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return keys %{$new}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;parseGeneratedDOTFile($ARGV[0]);&lt;br /&gt;&lt;br /&gt;@origlist = keys %{$AllPackages};&lt;br /&gt;@smalllist = getMinimalSetToInstall(@origlist);&lt;br /&gt;@generatedlist = getAllDependenciesRecursively((@smalllist));&lt;br /&gt;&lt;br /&gt;if(scalar(@origlist) == scalar(@generatedlist)) {&lt;br /&gt;    print "Succesfully expanded minimal list into full list!\n\n";&lt;br /&gt;    print "Original list (".scalar(@origlist)." packages):\n";&lt;br /&gt;    print join " ", @origlist;&lt;br /&gt;    print "\n\n";&lt;br /&gt;    print "Condensed list (".scalar(@smalllist)." packages):\n";&lt;br /&gt;    print join " ", @smalllist;&lt;br /&gt;    print "\n";&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is the result so far (I haven't taken a detailed look at this output yet):&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;Succesfully expanded minimal list into full list!&lt;br /&gt;&lt;br /&gt;Original list (196 packages):&lt;br /&gt;glibc pciutils which iproute kudzu file rsyslog libattr libdhcp rpm less crontabs libsysfs nc sysvinit-tools dmraid hesiod checkpolicy system-config-firewall-tui findutils dbus-glib mkinitrd libidn tcpdump pth newt coreutils selinux-policy libpcap libselinux pygpgme grub libselinux-python time krb5-libs audit-libs newt-python pinentry kernel cyrus-sasl-plain gpgme anacron readline audit-libs-python iputils cracklib-dicts upstart hwdata man chkconfig initscripts gnupg2 glib2 procps file-libs gawk fedora-release-notes cyrus-sasl-lib psmisc nash mdadm libdhcp6client grep policycoreutils bash zlib bind-libs yum-metadata-parser setuptool ncurses-base libxml2 dbus dhcpv6-client zip slang hdparm shadow-utils pam tzdata tar kpartx python-urlgrabber db4 rpm-libs libvolume_id groff dhclient ncurses rpm-python bind-utils parted fedora-logos bc openssh-clients python-libs wireless-tools libcap pkgconfig make logrotate libsepol pcre dbus-python yum acpid bzip2 filesystem util-linux-ng dirmngr libsemanage tree unzip tcp_wrappers-libs cracklib openssl python-iniparse elfutils-libelf device-mapper libacl basesystem net-tools acl ncurses-libs isomd5sum openssh keyutils-libs wget usermode sudo libuser glibc-common udev selinux-policy-targeted symlinks libedit attr sed rhpl nss_db MAKEDEV iptables-ipv6 cyrus-sasl info python traceroute passwd libgcrypt setup system-config-network-tui popt eject ntfs-3g gdbm openssh-server diffutils vim-minimal device-mapper-libs libcurl gamin expat device-mapper-multipath rng-utils libstdc++ dbus-libs gzip procmail sendmail nspr mingetty iptables libnl libksba openldap libgcc linux-atm-libs lvm2 bzip2-libs kbd sqlite e2fsprogs libdhcp4client yum-utils at ethtool libusb ustr nss e2fsprogs-libs gpm authconfig cronie libgpg-error fedora-release module-init-tools ConsoleKit-libs cpio&lt;br /&gt;&lt;br /&gt;Condensed list (42 packages):&lt;br /&gt;tree unzip which eject file ntfs-3g openssh-server device-mapper-multipath rng-utils nc sendmail acl system-config-firewall-tui setuptool tcpdump dhcpv6-client zip hdparm wget sudo kbd grub selinux-policy-targeted time dhclient symlinks attr bind-utils kernel nss_db at yum-utils cyrus-sasl-plain anacron bc openssh-clients gpm traceroute authconfig cronie man acpid&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-4921829879904692642?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/4921829879904692642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=4921829879904692642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4921829879904692642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/4921829879904692642'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/playing-with-rpm-dependencies-pruning.html' title='Playing with RPM dependencies: pruning the tree'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2917215182836708997</id><published>2008-07-17T13:49:00.004+02:00</published><updated>2008-07-24T14:47:04.935+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='RPM'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>making a .dot (graphviz) graph of RPM dependencies</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I'm currently looking into Fedora/kickstart again and also cobbler.&lt;br /&gt;&lt;br /&gt;For reasons I won't go into right now I wanted to visualize the relationships between installed RPM packages. I've found a couple of tools that claim they can do this, including &lt;a href="http://freshmeat.net/projects/rpmgraph/"&gt;rpmgraph&lt;/a&gt;, &lt;a href="http://rpmorphan.sourceforge.net/"&gt;rpmorphan&lt;/a&gt; and &lt;a href="http://lists.centos.org/pipermail/centos/2005-May/047091.html"&gt;references to some here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But it seemed that I had to install some stuff to use it (if it worked at all). So instead of looking further, I hacked something together quickly that fits my needs. It's a bash script and it has almost no dependencies (uses only tools that can be found on any RPM-based system)&lt;br /&gt;&lt;br /&gt;[PRE]&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# deps:&lt;br /&gt;#    bash&lt;br /&gt;#    rpm&lt;br /&gt;#    sed&lt;br /&gt;#    cut&lt;br /&gt;#    uniq&lt;br /&gt;#    sort&lt;br /&gt;&lt;br /&gt;installedrpms=$(rpm -qa --queryformat "%{NAME}\n")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function printdeps() {&lt;br /&gt;    local package deps dep providedby out&lt;br /&gt;&lt;br /&gt;    package=$1&lt;br /&gt;    out=""&lt;br /&gt;    deps=$(rpm -qR $package | cut -d " " -f 1)&lt;br /&gt;&lt;br /&gt;    for dep in $deps;&lt;br /&gt;    do&lt;br /&gt;        providedby=$(rpm -q --queryformat "%{NAME}\n" --whatprovides "$dep")&lt;br /&gt;        if [ $? -eq 0 ];&lt;br /&gt;        then&lt;br /&gt;            # packages should not depend on themselves&lt;br /&gt;            if [ "$package" != "$providedby" ];&lt;br /&gt;            then&lt;br /&gt;                out="$out\"$package\" -&gt; \"$providedby\";\n"&lt;br /&gt;            fi&lt;br /&gt;        fi&lt;br /&gt;    done&lt;br /&gt;&lt;br /&gt;    echo $out&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;alloutput=""&lt;br /&gt;&lt;br /&gt;for i in $installedrpms;&lt;br /&gt;do&lt;br /&gt;    output=$(printdeps $i)&lt;br /&gt;    alloutput="$alloutput$output"&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;echo "digraph deptree {"&lt;br /&gt;echo -e "$alloutput" | sort | uniq&lt;br /&gt;echo "}"&lt;br /&gt;[/PRE]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I'm currently looking into Fedora/kickstart again and also cobbler.&lt;br /&gt;&lt;br /&gt;For reasons I won't go into right now I wanted to visualize the relationships between installed RPM packages. I've found a couple of tools that claim they can do this, including &lt;a href="http://freshmeat.net/projects/rpmgraph/"&gt;rpmgraph&lt;/a&gt;, &lt;a href="http://rpmorphan.sourceforge.net/"&gt;rpmorphan&lt;/a&gt; and &lt;a href="http://lists.centos.org/pipermail/centos/2005-May/047091.html"&gt;references to some here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But it seemed that I had to install some stuff to use it (if it worked at all). So instead of looking further, I hacked something together quickly that fits my needs. It's a bash script and it has almost no dependencies (uses only tools that can be found on any RPM-based system)&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #EEEEEE; border: black 1px dashed; line-height: 100%; padding: 10px;"&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# deps:&lt;br /&gt;#    bash&lt;br /&gt;#    rpm&lt;br /&gt;#    sed&lt;br /&gt;#    cut&lt;br /&gt;#    uniq&lt;br /&gt;#    sort&lt;br /&gt;&lt;br /&gt;installedrpms=$(rpm -qa --queryformat "%{NAME}\n")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function printdeps() {&lt;br /&gt;    local package deps dep providedby out&lt;br /&gt;&lt;br /&gt;    package=$1&lt;br /&gt;    out=""&lt;br /&gt;    deps=$(rpm -qR $package | cut -d " " -f 1)&lt;br /&gt;&lt;br /&gt;    for dep in $deps;&lt;br /&gt;    do&lt;br /&gt;        providedby=$(rpm -q --queryformat "%{NAME}\n" --whatprovides "$dep")&lt;br /&gt;        if [ $? -eq 0 ];&lt;br /&gt;        then&lt;br /&gt;            # packages should not depend on themselves&lt;br /&gt;            if [ "$package" != "$providedby" ];&lt;br /&gt;            then&lt;br /&gt;                out="$out\"$package\" -&gt; \"$providedby\";\n"&lt;br /&gt;            fi&lt;br /&gt;        fi&lt;br /&gt;    done&lt;br /&gt;&lt;br /&gt;    echo $out&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;alloutput=""&lt;br /&gt;&lt;br /&gt;for i in $installedrpms;&lt;br /&gt;do&lt;br /&gt;    output=$(printdeps $i)&lt;br /&gt;    alloutput="$alloutput$output"&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;echo "digraph deptree {"&lt;br /&gt;echo -e "$alloutput" | sort | uniq&lt;br /&gt;echo "}"&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2917215182836708997?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2917215182836708997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2917215182836708997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2917215182836708997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2917215182836708997'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/making-dot-graphviz-graph-of-rpm.html' title='making a .dot (graphviz) graph of RPM dependencies'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-1581725916902885404</id><published>2008-07-10T13:03:00.007+02:00</published><updated>2008-07-11T00:17:39.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Back from spain: tips to solve annoying camping problems</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I'm back from a 2 week vacation to Spain. It was awesome: the sun was shining, birds were singing, the sea was gulfing...&lt;br /&gt;&lt;br /&gt;To add to the amount of subjective top-X lists on the internet, here is my top-3 list of things I hate about campings, and a suggestion of what to do about it.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3. Noisy people&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;When on vacation, noisy people are usually no real problem since I never have to get up early anyway. The one exception however is when I need to catch a plane at 8 in the morning, requiring me to be at the airport at 6 am. And since the airport is 150km away, I needed to get up at 3am.&lt;br /&gt;&lt;br /&gt;So when people are noisy from 10PM till 3AM, partying away, yelling laughing and screaming, it gets under my skin.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;The correct procedure to this problem is to ask them to be quiet. If they don't cooperate, find the people responsible for the camping and call (or have them call) the police.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kickass solution to this problem&lt;/b&gt;&lt;br /&gt;Track down where these people sleep. Since you're awake anyway, you'll have something to do. Once you now where they sleep, wait an hour. During that hour, find a bucket and fill it with water and all kinds of crap. Walk up the the tent, open it up and dump the bucket over/in their sleeping bag.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2. Smokers&lt;/h3&gt;&lt;br /&gt;Campings are great. Waking up with first light, going to sleep when the sun goes down. The social contact, the friendly faces, the fresh air...&lt;br /&gt;And then people start lighting up cigarettes one after the other, stinking up the place with their cancer-inducing sticks of death. I wouldn't really mind it if they were nowhere near me or my tent, but for some reason I seem to be attracting their smoke where-ever I sit. To add to the disgrace, most smokers put out their cigarettes all over the place, leaving behind a trail of cigarette butts for every 3-year old kid to burn their bare feet on (It's a camping, people walk around semi-naked!)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;Ask nicely if they would be so kind to put out their cigarettes and smell the nice air that comes with nature at no extra cost. Tell them about how smoking increasing the chances of catching lungcancer even when its inhaled through passive smoking by innocent bystanders.&lt;br /&gt;Maybe they would be willing to smoke while going for a walk, so they don't disturb people.&lt;br /&gt;&lt;br /&gt;Of course you could cave and go for a walk yourself when they light up...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kickass solution to this problem&lt;/b&gt;&lt;br /&gt;Who are we kidding ? Most smokers (if not all) are terrible jackasses who can't part from their filthy habits for more than a few minutes. Smoking is cool and social, so everybody should enjoy it. If you don't like the smell and decreased oxygenlevels, then you're an antisocial fascist controlfreak who is part of the problem, not the solution.&lt;br /&gt;&lt;br /&gt;So what to do ? Well, you could open up a bottle op propane gas and put it under the table. First one who lights up, wins ! But then passive smoking is probably safer.&lt;br /&gt;Since they are counting on you to step away from the smoke to leave them alone in their stench, you should. But noone says you have to leave it at that. Get some old raw meat or fish and grind it up real nice. Then dump it all on the floor and walk away. The place will be infested with all kinds of vermin, especially flies. The stench will be horrible, but maybe the smoke from their cigarettes will mask it, who knows ?&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1. Flies&lt;/h3&gt;&lt;br /&gt;There is 1 thing you will never run out of on campings. You might run out of water or sunlight, maybe even oxygen or BBQ coals.&lt;br /&gt;But you can always count on horrific amounts of flies to swarm in and sit on every piece of exposed skin on your body. Flies aren't actually as bad a smokers or noisemakers, except that there are so many of them around and they always get in the wrong place at the wrong time (for you).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;Find out what attracts the flies in the first place and remove it. If that fails, get some of that sticky fly-catching tape and hang it up. Or get flysquatters.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;Nothing says "I am cool" better than a combination of a aerosol can and a lighter to convince flies and other flying insects to vacate the area. Plus it's fun too!&lt;br /&gt;Hold the lighter between you and the insect, then spray over the lighter towards the insect.&lt;br /&gt;You can also use this technique to put fire to almost anything, including the tent of noisemakers, or the cigarette-stash of snmokers. Use at your own risk&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I'm back from a 2 week vacation to Spain. It was awesome: the sun was shining, birds were singing, the sea was gulfing...&lt;br /&gt;&lt;br /&gt;To add to the amount of subjective top-X lists on the internet, here is my top-3 list of things I hate about campings, and a suggestion of what to do about it.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3. Noisy people&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;When on vacation, noisy people are usually no real problem since I never have to get up early anyway. The one exception however is when I need to catch a plane at 8 in the morning, requiring me to be at the airport at 6 am. And since the airport is 150km away, I needed to get up at 3am.&lt;br /&gt;&lt;br /&gt;So when people are noisy from 10PM till 3AM, partying away, yelling laughing and screaming, it gets under my skin.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;The correct procedure to this problem is to ask them to be quiet. If they don't cooperate, find the people responsible for the camping and call (or have them call) the police.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kickass solution to this problem&lt;/b&gt;&lt;br /&gt;Track down where these people sleep. Since you're awake anyway, you'll have something to do. Once you now where they sleep, wait an hour. During that hour, find a bucket and fill it with water and all kinds of crap. Walk up the the tent, open it up and dump the bucket over/in their sleeping bag.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2. Smokers&lt;/h3&gt;&lt;br /&gt;Campings are great. Waking up with first light, going to sleep when the sun goes down. The social contact, the friendly faces, the fresh air...&lt;br /&gt;And then people start lighting up cigarettes one after the other, stinking up the place with their cancer-inducing sticks of death. I wouldn't really mind it if they were nowhere near me or my tent, but for some reason I seem to be attracting their smoke where-ever I sit. To add to the disgrace, most smokers put out their cigarettes all over the place, leaving behind a trail of cigarette butts for every 3-year old kid to burn their bare feet on (It's a camping, people walk around semi-naked!)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;Ask nicely if they would be so kind to put out their cigarettes and smell the nice air that comes with nature at no extra cost. Tell them about how smoking increasing the chances of catching lungcancer even when its inhaled through passive smoking by innocent bystanders.&lt;br /&gt;Maybe they would be willing to smoke while going for a walk, so they don't disturb people.&lt;br /&gt;&lt;br /&gt;Of course you could cave and go for a walk yourself when they light up...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kickass solution to this problem&lt;/b&gt;&lt;br /&gt;Who are we kidding ? Most smokers (if not all) are terrible jackasses who can't part from their filthy habits for more than a few minutes. Smoking is cool and social, so everybody should enjoy it. If you don't like the smell and decreased oxygenlevels, then you're an antisocial fascist controlfreak who is part of the problem, not the solution.&lt;br /&gt;&lt;br /&gt;So what to do ? Well, you could open up a bottle op propane gas and put it under the table. First one who lights up, wins ! But then passive smoking is probably safer.&lt;br /&gt;Since they are counting on you to step away from the smoke to leave them alone in their stench, you should. But noone says you have to leave it at that. Get some old raw meat or fish and grind it up real nice. Then dump it all on the floor and walk away. The place will be infested with all kinds of vermin, especially flies. The stench will be horrible, but maybe the smoke from their cigarettes will mask it, who knows ?&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1. Flies&lt;/h3&gt;&lt;br /&gt;There is 1 thing you will never run out of on campings. You might run out of water or sunlight, maybe even oxygen or BBQ coals.&lt;br /&gt;But you can always count on horrific amounts of flies to swarm in and sit on every piece of exposed skin on your body. Flies aren't actually as bad a smokers or noisemakers, except that there are so many of them around and they always get in the wrong place at the wrong time (for you).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;Find out what attracts the flies in the first place and remove it. If that fails, get some of that sticky fly-catching tape and hang it up. Or get flysquatters.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lame solution to this problem&lt;/b&gt;&lt;br /&gt;Nothing says "I am cool" better than a combination of a aerosol can and a lighter to convince flies and other flying insects to vacate the area. Plus it's fun too!&lt;br /&gt;Hold the lighter between you and the insect, then spray over the lighter towards the insect.&lt;br /&gt;You can also use this technique to put fire to almost anything, including the tent of noisemakers, or the cigarette-stash of snmokers. Use at your own risk&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1581725916902885404?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1581725916902885404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1581725916902885404' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1581725916902885404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1581725916902885404'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/07/back-from-spain-tips-to-solve-annoying.html' title='Back from spain: tips to solve annoying camping problems'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-1048050693127821882</id><published>2008-06-29T14:37:00.003+02:00</published><updated>2008-06-29T14:42:04.398+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='LUDIT'/><title type='text'>verjaardag !</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;ik ben weer een jaartje ouder en dat moet gevierd worden ! Het is bijna ondoenbaar om 1 groot feest te geven, dus heb ik dat opgesplitst in een aantal kleinere feestjes. &lt;br /&gt;&lt;br /&gt;Met de uitzonderinng van vrijdag waren alle feestjes maar voor 4 a 5 personen. Vrijdag heb ik iedereen op LUDIT uitgenodigd voor een pannekoekenfeestje met pannekoeken die ik donderdagavond gebakken heb. Hoeveel ? 100 stuks. Ter referentie: 1 pakje Dr. Oetker pannekoekenmix levert 7 pannekoeken op (met 45cl melk).&lt;br /&gt;&lt;br /&gt;Ik heb donderdagavond tot 2u snachts gebakken aan 100 pannekoeken (vanaf 8u ofzo):&lt;br /&gt;&lt;br /&gt;[IMG:2008-06-28/CIMG1597.JPG][IMG:2008-06-28/CIMG1598.JPG][IMG:2008-06-28/CIMG1599.JPG][IMG:2008-06-28/CIMG1600.JPG]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;ik ben weer een jaartje ouder en dat moet gevierd worden ! Het is bijna ondoenbaar om 1 groot feest te geven, dus heb ik dat opgesplitst in een aantal kleinere feestjes. &lt;br /&gt;&lt;br /&gt;Met de uitzonderinng van vrijdag waren alle feestjes maar voor 4 a 5 personen. Vrijdag heb ik iedereen op LUDIT uitgenodigd voor een pannekoekenfeestje met pannekoeken die ik donderdagavond gebakken heb. Hoeveel ? 100 stuks. Ter referentie: 1 pakje Dr. Oetker pannekoekenmix levert 7 pannekoeken op (met 45cl melk).&lt;br /&gt;&lt;br /&gt;Ik heb donderdagavond tot 2u snachts gebakken aan 100 pannekoeken (vanaf 8u ofzo):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1597.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1597.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1598.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1598.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1599.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1599.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1600.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1600.JPG.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-1048050693127821882?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/1048050693127821882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=1048050693127821882' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1048050693127821882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/1048050693127821882'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/verjaardag.html' title='verjaardag !'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5513234137363262204.post-3355203629469825889</id><published>2008-06-29T13:38:00.002+02:00</published><updated>2008-06-29T13:42:29.167+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>vacuform oven: the backbone</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;The oven is almost finished. I want it to be finished before July 1st, just to have a deadline.&lt;br /&gt;&lt;br /&gt;[IMG:2008-06-28/CIMG1584.JPG][IMG:2008-06-28/CIMG1585.JPG][IMG:2008-06-28/CIMG1586.JPG][IMG:2008-06-28/CIMG1587.JPG][IMG:2008-06-28/CIMG1588.JPG][IMG:2008-06-28/CIMG1589.JPG][IMG:2008-06-28/CIMG1590.JPG][IMG:2008-06-28/CIMG1591.JPG][IMG:2008-06-28/CIMG1592.JPG][IMG:2008-06-28/CIMG1593.JPG][IMG:2008-06-28/CIMG1594.JPG][IMG:2008-06-28/CIMG1595.JPG][IMG:2008-06-28/CIMG1596.JPG]&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;The oven is almost finished. I want it to be finished before July 1st, just to have a deadline.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1584.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1584.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1585.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1585.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1586.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1586.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1587.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1587.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1588.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1588.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1589.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1589.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1590.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1590.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1591.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1591.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1592.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1592.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1593.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1593.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1594.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1594.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1595.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1595.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-28/CIMG1596.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-28/CIMG1596.JPG.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-3355203629469825889?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/3355203629469825889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=3355203629469825889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3355203629469825889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/3355203629469825889'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/vacuform-oven-backbone.html' title='vacuform oven: the backbone'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2436569174808617454</id><published>2008-06-29T13:02:00.003+02:00</published><updated>2009-02-08T22:11:29.971+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='Welding'/><title type='text'>geslaagd !!!</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Eerder deze week kreeg ik mijn getuigschrift van het VTI dat ik geslaagd ben op de cursus automechanica. Ik ben nu officieel "Hulpmecanicien personen- en lichte bedrijfswagens".&lt;br /&gt;&lt;br /&gt;Tijdens mijn heen-en-weer ritje naar Kapelle op den Bos gisteren heb ik die kennis al kunnen gebruiken. De wegen tussen Leuven en Brussel zitten potdicht waardoor ik 10km in de file zat. Mijn motor werd zodaning warm dat mijn koelwater aan het koken was. Oplossing ? Zet verwarming volledig open zodat de motor extra kan afkoelen. Doe in geen geval het reservoir voor koelwater open, want dat is aan het koken en staat dus volledig onder druk.&lt;br /&gt;&lt;br /&gt;Volgend jaar kan ik spijtiggenoeg de rest van de cursus automechanica niet volgen omdat die samenvalt met Lassen.n Ik ga eens kijken om een cursus digitale fotografie te volgen...&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Eerder deze week kreeg ik mijn getuigschrift van het VTI dat ik geslaagd ben op de cursus automechanica. Ik ben nu officieel "Hulpmecanicien personen- en lichte bedrijfswagens".&lt;br /&gt;&lt;br /&gt;Tijdens mijn heen-en-weer ritje naar Kapelle op den Bos gisteren heb ik die kennis al kunnen gebruiken. De wegen tussen Leuven en Brussel zitten potdicht waardoor ik 10km in de file zat. Mijn motor werd zodaning warm dat mijn koelwater aan het koken was. Oplossing ? Zet verwarming volledig open zodat de motor extra kan afkoelen. Doe in geen geval het reservoir voor koelwater open, want dat is aan het koken en staat dus volledig onder druk.&lt;br /&gt;&lt;br /&gt;Volgend jaar kan ik spijtiggenoeg de rest van de cursus automechanica niet volgen omdat die samenvalt met Lassen.n Ik ga eens kijken om een cursus digitale fotografie te volgen...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2436569174808617454?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2436569174808617454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2436569174808617454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2436569174808617454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2436569174808617454'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/geslaagd.html' title='geslaagd !!!'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-695096156248055271</id><published>2008-06-14T22:24:00.002+02:00</published><updated>2008-06-14T22:31:30.749+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>assembling the oven</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;After a visit to the hardware store (and after some maintenance on my car which was out of motor-oil), I have most of the components to put together the vacuform oven.&lt;br /&gt;&lt;br /&gt;So, I spent a good part of this evening in the basement realising how much work it actually is :)&lt;br /&gt;&lt;br /&gt;[IMG:2008-06-14-vacuform/CIMG1584.JPG][IMG:2008-06-14-vacuform/CIMG1585.JPG][IMG:2008-06-14-vacuform/CIMG1586.JPG][IMG:2008-06-14-vacuform/CIMG1587.JPG][IMG:2008-06-14-vacuform/CIMG1588.JPG][IMG:2008-06-14-vacuform/CIMG1589.JPG]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;After a visit to the hardware store (and after some maintenance on my car which was out of motor-oil), I have most of the components to put together the vacuform oven.&lt;br /&gt;&lt;br /&gt;So, I spent a good part of this evening in the basement realising how much work it actually is :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-14-vacuform/CIMG1584.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-14-vacuform/CIMG1584.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-14-vacuform/CIMG1585.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-14-vacuform/CIMG1585.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-14-vacuform/CIMG1586.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-14-vacuform/CIMG1586.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-14-vacuform/CIMG1587.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-14-vacuform/CIMG1587.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-14-vacuform/CIMG1588.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-14-vacuform/CIMG1588.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-14-vacuform/CIMG1589.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-14-vacuform/CIMG1589.JPG.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-695096156248055271?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/695096156248055271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=695096156248055271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/695096156248055271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/695096156248055271'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/assembling-oven.html' title='assembling the oven'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-8587983083916553324</id><published>2008-06-12T00:07:00.002+02:00</published><updated>2008-06-12T00:13:51.125+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><category scheme='http://www.blogger.com/atom/ns#' term='Building Stuff'/><title type='text'>Thank god for drill presses</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;I've just finished the 1 meter squared surface of the vacuform oven. I split it in 9 mostly equal parts, each with 3 lamps in it. Excecpt for the center, which has 6 lamps.&lt;br /&gt;After measuring out where all the holes should be, I drilled all 120 holes.&lt;br /&gt;&lt;br /&gt;[IMG:2008-06-11-vacuform/CIMG1581.JPG][IMG:2008-06-11-vacuform/CIMG1582.JPG][IMG:2008-06-11-vacuform/CIMG1583.JPG]&lt;br /&gt;&lt;br /&gt;The next step will be to put in the lampholders and wire all the lamps.&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;I've just finished the 1 meter squared surface of the vacuform oven. I split it in 9 mostly equal parts, each with 3 lamps in it. Excecpt for the center, which has 6 lamps.&lt;br /&gt;After measuring out where all the holes should be, I drilled all 120 holes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-11-vacuform/CIMG1581.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-11-vacuform/CIMG1581.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-11-vacuform/CIMG1582.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-11-vacuform/CIMG1582.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-11-vacuform/CIMG1583.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-11-vacuform/CIMG1583.JPG.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The next step will be to put in the lampholders and wire all the lamps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8587983083916553324?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8587983083916553324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8587983083916553324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8587983083916553324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8587983083916553324'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/thank-god-for-drill-presses.html' title='Thank god for drill presses'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-2630447616378587813</id><published>2008-06-09T22:54:00.004+02:00</published><updated>2008-06-09T23:00:58.955+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><title type='text'>Modeshow van mijn klein zusje</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;Ik mocht voorbije zaterdag aanwezig zijn op de modeshow waarvoor mijn klein zusje Deborah (1 jaar jonger ;) een collectie had ontworpen voor haar voorlaatste jaar mode-academie.&lt;br /&gt;&lt;br /&gt;Hieronder wat fotos. Ik zet ze niet allemaal in deze blogpost, slechts een 5de ervan of zo, aangezien het nogal &lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/"&gt;veel fotos zijn&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[IMG:2008-06-07-modeshow/CIMG1421.JPG][IMG:2008-06-07-modeshow/CIMG1426.JPG][IMG:2008-06-07-modeshow/CIMG1431.JPG][IMG:2008-06-07-modeshow/CIMG1436.JPG][IMG:2008-06-07-modeshow/CIMG1441.JPG][IMG:2008-06-07-modeshow/CIMG1446.JPG][IMG:2008-06-07-modeshow/CIMG1451.JPG][IMG:2008-06-07-modeshow/CIMG1456.JPG][IMG:2008-06-07-modeshow/CIMG1461.JPG][IMG:2008-06-07-modeshow/CIMG1466.JPG][IMG:2008-06-07-modeshow/CIMG1471.JPG][IMG:2008-06-07-modeshow/CIMG1476.JPG][IMG:2008-06-07-modeshow/CIMG1481.JPG][IMG:2008-06-07-modeshow/CIMG1486.JPG][IMG:2008-06-07-modeshow/CIMG1491.JPG][IMG:2008-06-07-modeshow/CIMG1496.JPG][IMG:2008-06-07-modeshow/CIMG1501.JPG][IMG:2008-06-07-modeshow/CIMG1506.JPG][IMG:2008-06-07-modeshow/CIMG1511.JPG][IMG:2008-06-07-modeshow/CIMG1516.JPG][IMG:2008-06-07-modeshow/CIMG1521.JPG][IMG:2008-06-07-modeshow/CIMG1526.JPG][IMG:2008-06-07-modeshow/CIMG1531.JPG][IMG:2008-06-07-modeshow/CIMG1536.JPG][IMG:2008-06-07-modeshow/CIMG1541.JPG][IMG:2008-06-07-modeshow/CIMG1546.JPG][IMG:2008-06-07-modeshow/CIMG1551.JPG][IMG:2008-06-07-modeshow/CIMG1556.JPG][IMG:2008-06-07-modeshow/CIMG1561.JPG][IMG:2008-06-07-modeshow/CIMG1566.JPG][IMG:2008-06-07-modeshow/CIMG1571.JPG][IMG:2008-06-07-modeshow/CIMG1576.JPG]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;Ik mocht voorbije zaterdag aanwezig zijn op de modeshow waarvoor mijn klein zusje Deborah (1 jaar jonger ;) een collectie had ontworpen voor haar voorlaatste jaar mode-academie.&lt;br /&gt;&lt;br /&gt;Hieronder wat fotos. Ik zet ze niet allemaal in deze blogpost, slechts een 5de ervan of zo, aangezien het nogal &lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/"&gt;veel fotos zijn&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1421.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1421.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1426.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1426.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1431.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1431.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1436.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1436.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1441.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1441.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1446.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1446.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1451.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1451.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1456.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1456.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1461.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1461.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1466.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1466.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1471.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1471.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1476.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1476.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1481.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1481.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1486.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1486.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1491.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1491.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1496.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1496.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1501.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1501.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1506.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1506.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1511.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1511.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1516.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1516.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1521.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1521.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1526.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1526.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1531.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1531.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1536.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1536.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1541.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1541.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1546.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1546.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1551.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1551.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1556.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1556.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1561.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1561.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1566.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1566.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1571.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1571.JPG.png"&gt;&lt;/a&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-07-modeshow/CIMG1576.JPG"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-07-modeshow/CIMG1576.JPG.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-2630447616378587813?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/2630447616378587813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=2630447616378587813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2630447616378587813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/2630447616378587813'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/modeshow-van-mijn-klein-zusje.html' title='Modeshow van mijn klein zusje'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-7645249307540450816</id><published>2008-06-09T17:29:00.002+02:00</published><updated>2008-06-09T17:31:48.302+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nederlands'/><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><title type='text'>Palantir goes public</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;&lt;a href="http://palantir.kulnet.kuleuven.be"&gt;De aankondiging&lt;/a&gt; is gebeurd:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://palantir.kulnet.kuleuven.be/"&gt;&lt;img src="http://data.singularity.be/images/full/2008-06-09-palantir/testgebruikers_gezocht_banner_480.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;&lt;a href="http://palantir.kulnet.kuleuven.be"&gt;De aankondiging&lt;/a&gt; is gebeurd:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://palantir.kulnet.kuleuven.be/"&gt;&lt;img src="http://data.singularity.be/images/full/2008-06-09-palantir/testgebruikers_gezocht_banner_480.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-7645249307540450816?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/7645249307540450816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=7645249307540450816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7645249307540450816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/7645249307540450816'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/palantir-goes-public.html' title='Palantir goes public'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-8340886574784963859</id><published>2008-06-06T23:19:00.003+02:00</published><updated>2008-06-06T23:22:28.992+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KULeuven'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>playing around with povray</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;The internship I was mentoring has ended. My intern did an excellent job working on the &lt;a href="http://palantir.kulnet.kuleuven.be/"&gt;Palantir project&lt;/a&gt;. Before I announce the project to the main public, I would like to have some eyecandy so people will actually notice the announcement. That's why I'm playing around with povray and trying to make a goodlooking palantir scene.&lt;br /&gt;&lt;br /&gt;This is what I have so far: (1.8MB, 4000x3000 pixels, fits nicely on my twin-screen desktop)&lt;br /&gt;&lt;br /&gt;[IMG:2008-06-06-povray/palantiri.png]&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;The internship I was mentoring has ended. My intern did an excellent job working on the &lt;a href="http://palantir.kulnet.kuleuven.be/"&gt;Palantir project&lt;/a&gt;. Before I announce the project to the main public, I would like to have some eyecandy so people will actually notice the announcement. That's why I'm playing around with povray and trying to make a goodlooking palantir scene.&lt;br /&gt;&lt;br /&gt;This is what I have so far: (1.8MB, 4000x3000 pixels, fits nicely on my twin-screen desktop)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://data.singularity.be/images/full/2008-06-06-povray/palantiri.png"&gt;&lt;img src="http://data.singularity.be/images/thumb/2008-06-06-povray/palantiri.png.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5513234137363262204-8340886574784963859?l=www.singularity.be' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.singularity.be/feeds/8340886574784963859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5513234137363262204&amp;postID=8340886574784963859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8340886574784963859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5513234137363262204/posts/default/8340886574784963859'/><link rel='alternate' type='text/html' href='http://www.singularity.be/2008/06/playing-around-with-povray.html' title='playing around with povray'/><author><name>Steven Van Acker</name><uri>http://www.blogger.com/profile/14273011490971347674</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-5513234137363262204.post-627484038531899254</id><published>2008-06-02T08:07:00.002+02:00</published><updated>2008-06-02T08:16:17.434+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Asus: you stink</title><content type='html'>&lt;!-- StevensBlogSpotFilterThing&lt;br /&gt;A colleague of mine is planning to get an &lt;a href="http://eeepc.asus.com/global/"&gt;Eee PC from ASUS&lt;/a&gt; because it's cheap and very portable. If it gets stolen while you're traveling, you don't lose a lot of money.&lt;br /&gt;&lt;br /&gt;I'm planning to go on holiday soon too, and wanted to check out the specs of the Eee PC since I've heard nothing but good about it.&lt;br /&gt;&lt;br /&gt;Both links I found on the site I linked to above are fully flash:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eeepc.asus.com/global/guide.htm"&gt;http://eeepc.asus.com/global/guide.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://event.asus.com/eeepc/microsites/en/index.htm"&gt;http://event.asus.com/eeepc/microsites/en/index.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, what's that about ASUS ? What possible advantage could you get from having the useful part of your site in flash ? The only part of that site that interests me, is the part that shows the specs. And when I got there, I was unable to zoom into the small text shown.&lt;br /&gt;&lt;br /&gt;Big downer for ASUS.&lt;br /&gt;&lt;br /&gt;Luckily, Wikipedia has an &lt;a href="http://en.wikipedia.org/wiki/ASUS_Eee_PC"&gt;article on ASUS Eee PC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;StevensBlogSpotFilterThing --&gt;&lt;br /&gt;A colleague of mine is planning to get an &lt;a href="http://eeepc.asus.com/global/"&gt;Eee PC from ASUS&lt;/a&gt; because it's cheap and very portable. If it gets stolen while you're traveling, you don't lose a lot of money.&lt;br /&gt;&lt;br /&gt;I'm planning to go on holiday soon too, and wanted to check out the specs of the Eee PC since I've heard nothing but good about it.&lt;br /&gt;&lt;br /&gt;Both links I found on the site I linked to above are fully flash:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eeepc.asus.com/global/guide.htm"&gt;http://eeepc.asus.com/global/guide.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://event.asus.com/eeepc/microsites/en/index.htm"&gt;http://event.asus.com/eeepc/microsites/en/index.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, what's that about ASUS ? What possible advantage could you get from having the useful part of your site in
