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

<channel>
	<title>CoderDan</title>
	<atom:link href="http://www.coderdan.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coderdan.com</link>
	<description>My thoughts on programming, technology and business</description>
	<lastBuildDate>Tue, 13 Dec 2011 23:34:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP foreach and references</title>
		<link>http://www.coderdan.com/2011/09/php-foreach-and-references/</link>
		<comments>http://www.coderdan.com/2011/09/php-foreach-and-references/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 14:52:43 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=93</guid>
		<description><![CDATA[The foreach construct is an usual way to iterate over an array. Since PHP 5, you can also modify the array values using references. Here is one interesting side effect: &#60;?php $a = range&#40;1,5&#41;; foreach&#40;$a as &#38;$x&#41; &#123; $x++; &#125; &#160; foreach&#40;$a as $x&#41; &#123; echo $x; &#125; The output is 23455. This happens because [...]]]></description>
			<content:encoded><![CDATA[<p>The <code>foreach</code> construct is an usual way to iterate over an array. Since PHP 5, you can also modify the array values using references. Here is one interesting side effect:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #990000;">range</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span> <span style="color: #b1b100;">as</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$x</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$x</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$x</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$x</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The output is <code>23455</code>. This happens because the <code>$x</code> reference remains even after the <code>foreach</code> loop ends. The reference is destroyed if you unset <code>$x</code> after the loop.</p>
<p>This is not very well known. If you have the misfortune to maintain some scripts with a coding style involving little structure, lots of spaghetti code and nested includes than you might be very puzzled by the behavior of a regular foreach loop just because the iterating value was used previously as a reference.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2011/09/php-foreach-and-references/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google AI Challenge</title>
		<link>http://www.coderdan.com/2011/06/google-ai-challenge/</link>
		<comments>http://www.coderdan.com/2011/06/google-ai-challenge/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 00:25:46 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[AI]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=88</guid>
		<description><![CDATA[Artificial inteligence(AI) is a complex branch of computer science involving a lot of research by private and academic entities. The Google AI Challenge brings bot writers around a simple and fun idea. The idea is to write a bot to play a strategy game against other bots. In the next challenge the bots will play [...]]]></description>
			<content:encoded><![CDATA[<p>Artificial inteligence(AI) is a complex branch of computer science involving a lot of research by private and academic entities.  The Google AI Challenge brings bot writers around a simple and fun idea. The idea is to write a bot to play a strategy game against other bots. </p>
<p>In the next challenge the bots will play an Ants game where they control an ant colony fighting for resources against another colonies. The system is functional but in beta version. There is a set of APIs for most programming languages, a couple of tutorials and the source code for the system itself is available. </p>
<p>The University of Waterloo Computer Science Club is organizing the contest with Google as a sponsor. There are no listed prizes but for people with some spare time it will provide quite enough entertainment value. I hope to have a least a bit of spare time for this and play a bit with it.</p>
<p>Most information is on the <a href="http://ai-contest.com/forum/index.php">forum</a> and there is also a <a href="http://aichallengebeta.hypertriangle.com/">beta site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2011/06/google-ai-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which package owns a file?</title>
		<link>http://www.coderdan.com/2011/01/which-package-owns-a-file/</link>
		<comments>http://www.coderdan.com/2011/01/which-package-owns-a-file/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 03:45:33 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[rpm]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=82</guid>
		<description><![CDATA[Sometimes you wonder which package installed a file. There is a simple way to do this on RPM based systems. Unfortunately, I tend to forget it so I will post it here. # rpm -qf /usr/bin/od coreutils-8.5-7.fc14.i686 &#8230; and to get more info about the package: [root@iweb ~]# yum info coreutils Loaded plugins: fastestmirror, presto Loading [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you wonder which package installed a file. There is a simple way to do this on RPM based systems. Unfortunately, I tend to forget it so I will post it here.</p>
<pre># rpm -qf /usr/bin/od
coreutils-8.5-7.fc14.i686</pre>
<p>&#8230; and to get more info about the package:</p>
<pre>[root@iweb ~]# yum info coreutils
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * fedora: fedora.mirror.iweb.ca
 * updates: mirror.cc.vt.edu
Installed Packages
Name        : coreutils
Arch        : i686
Version     : 8.5
Release     : 7.fc14
Size        : 12 M
Repo        : installed
From repo   : updates
Summary     : A set of basic GNU tools commonly used in shell scripts
URL         : http://www.gnu.org/software/coreutils/
License     : GPLv3+
Description : These are the GNU core utilities.  This package is the combination
            : of the old GNU fileutils, sh-utils, and textutils packages.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2011/01/which-package-owns-a-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to reset the MySQL root password</title>
		<link>http://www.coderdan.com/2010/12/how-to-reset-the-mysql-root-password/</link>
		<comments>http://www.coderdan.com/2010/12/how-to-reset-the-mysql-root-password/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 01:38:58 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=76</guid>
		<description><![CDATA[The MySQL server root password is not used very often and you can forget it or you inherit some already setup system and you do not have the MySQL root password. Technically, there is no way to recover the password but you can reset it. The main inconvenience is that you have to stop the [...]]]></description>
			<content:encoded><![CDATA[<p>The MySQL server root password is not used very often and you can forget it or you inherit some already setup system and you do not have the MySQL root password. Technically, there is no way to recover the password but you can reset it.</p>
<p>The main inconvenience is that you have to stop the database server twice. The following instructions were tested on a Fedora Linux distribution but the main idea can be used on different operating systems, including Windows.</p>
<p>The main idea is to restart the mysql server without security, change the root password and restart again in normal mode. I recommend not doing this on a live server but if you already need this than there is a big sign that your system design has some issues.</p>
<p>First, stop the mysql server:</p>
<pre># service mysqld stop</pre>
<p>Start the server with an option that enables <strong>anyone</strong> to connect without password.</p>
<pre># mysqld_safe --skip-grant-tables &amp;</pre>
<p>Wait for the mysql server start, you will get some info about it:</p>
<pre>101230 20:00:03 mysqld_safe Logging to '/var/log/mysql/error.log'.
101230 20:00:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql</pre>
<p>Connect as root without the need for a password:</p>
<pre># mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.52-log Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.</pre>
<p>Let&#8217;s say that you want to use the password &#8220;NEWPASS&#8221;, in the mysql prompt type:</p>
<pre>
mysql> use mysql;
mysql> update user set password=PASSWORD("NEWPASS") where User='root';
mysql> flush privileges;
mysql> quit
</pre>
<p>Restart the mysql server to use the new password:</p>
<pre> # service mysqld restart </pre>
<p>Now you have your regular database server with a shiny new root password. Do not forget it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2010/12/how-to-reset-the-mysql-root-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intuitive Zoom with JScrollPane</title>
		<link>http://www.coderdan.com/2010/09/intuitive-zoom-with-jscrollpane/</link>
		<comments>http://www.coderdan.com/2010/09/intuitive-zoom-with-jscrollpane/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 02:01:33 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[JScrollPane]]></category>
		<category><![CDATA[zoom]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=68</guid>
		<description><![CDATA[The problem: Display an image inside a panel and handle different zoom levels. The best approach is to use an already made component. If a component is not available or you just have to write it using only the basic Swing components than might help you save some time. One approach is to hold a [...]]]></description>
			<content:encoded><![CDATA[<p>
The problem: Display an image inside a panel and handle different zoom levels. The best approach is to use an already made component. If a component is not available or you just have to write it  using only the basic Swing components than might help you save some time.</p>
<p>
One approach is to hold a BufferedImage and the zoom level(integer, initial 100) and draw the image with appropriate settings in a JPanel. Overwrite the paintComponent function of a JPanel. Set the size of the panel to match the size of the zoomed image. Add this panel inside a JScrollPane and you have an initial version. Enable double buffering for the resulting panel to have a smooth appearance.</p>
<p>
I prefer this approach instead of using a zoomed copy of the image as it saves a lot of memory.</p>
<p>
The positions on the drawing panel match the positions on the zoomed image. The coordinates in the original image are calculated using a simple formula:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> imageX <span style="color: #339933;">=</span> panelX <span style="color: #339933;">*</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">/</span>zoom<span style="color: #339933;">;</span></pre></div></div>

<p>
If the zoomed image is smaller than the container than the image will be in the top right corner. Most users will want it in the center of the container. The solution is to wrap the drawing panel inside a centering panel. There a couple of solutions using a custom layout manager, a combination of Box layouts, SpringLayout, etc. A simple solution is the GridBagLayout:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">JPanel</span> centeringPanel <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">JPanel</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">GridBagLayout</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
centeringPanel.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>drawingPanel, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">GridBagConstraints</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This will center the drawing panel vertically and horizontally.</p>
<p>
When changing the zoom, change the size of the drawing panel and call invalidate() and repaint() on the scroll pane view port. Now you have zoom in and zoom out.</p>
<p>
You will notice a small problem. The zoom is not very intuitive, it will move the image to the top left corner. A more usable panel would zoom in/out preserving the view on the same area of the image. You need to calculate the new view position. There a couple of ways to do this I will present one of them:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Save the previous coordinates</span>
<span style="color: #000066; font-weight: bold;">int</span> oldZoom <span style="color: #339933;">=</span> zoom<span style="color: #339933;">;</span>
<span style="color: #003399;">Rectangle</span> oldView <span style="color: #339933;">=</span> scrollPane.<span style="color: #006633;">getViewport</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getViewRect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// resize the panel for the new zoom</span>
....
<span style="color: #666666; font-style: italic;">// calculate the new view position</span>
<span style="color: #003399;">Point</span> newViewPos <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Point</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
newViewPos.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">max</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #009900;">&#40;</span>oldView.<span style="color: #006633;">x</span> <span style="color: #339933;">+</span> oldView.<span style="color: #006633;">width</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> newZoom <span style="color: #339933;">/</span> oldZoom <span style="color: #339933;">-</span> oldView.<span style="color: #006633;">width</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
newViewPos.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">max</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #009900;">&#40;</span>oldView.<span style="color: #006633;">y</span> <span style="color: #339933;">+</span> oldView.<span style="color: #006633;">height</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> newZoom <span style="color: #339933;">/</span> oldZoom <span style="color: #339933;">-</span> oldView.<span style="color: #006633;">height</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
scrollPane.<span style="color: #006633;">getViewport</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setViewPosition</span><span style="color: #009900;">&#40;</span>newViewPos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>
You can add many usability improvements and optimizations but what I described here is an easy to implement and usable component that can be used in any application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2010/09/intuitive-zoom-with-jscrollpane/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quick Fix for the Fedora DNSSEC Issue</title>
		<link>http://www.coderdan.com/2010/06/quick-fix-for-the-fedora-dnssec-issue/</link>
		<comments>http://www.coderdan.com/2010/06/quick-fix-for-the-fedora-dnssec-issue/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 16:03:52 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[named]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=64</guid>
		<description><![CDATA[After a routing update, Fedora 12 has some problems with the DNS service. The named service fails to start with with the following error: Error in named configuration: /etc/pki/dnssec-keys//named.dnssec.keys:1: open: /etc/pki/dnssec-keys//production/bg.conf: file not found The update was not a fortunate one and an official fix will probably be issued soon. A quick way is to [...]]]></description>
			<content:encoded><![CDATA[<p>After a routing update, Fedora 12 has some problems with the DNS service. The named service fails to start with with the following error:</p>
<p><code>Error in named configuration:<br />
/etc/pki/dnssec-keys//named.dnssec.keys:1: open: /etc/pki/dnssec-keys//production/bg.conf: file not found</code></p>
<p>The update was not a fortunate one and an official fix will probably be issued soon. A quick way is to disable the DNSSEC options in named. Edit /etc/named.conf and comment the following lines:<br />
<code><br />
      dnssec-enable yes;<br />
      dnssec-validation yes;<br />
      dnssec-lookaside . trust-anchor dlv.isc.org.;<br />
</code><br />
 and at the bottom:<br />
<code><br />
include "/etc/pki/dnssec-keys//named.dnssec.keys";<br />
include "/etc/pki/dnssec-keys//dlv/dlv.isc.org.conf";<br />
</code><br />
The DNSSEC features ads digital signatures to your DNS queries. If you need this, keep searching for other solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2010/06/quick-fix-for-the-fedora-dnssec-issue/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simple Web Server</title>
		<link>http://www.coderdan.com/2010/05/simple-web-server/</link>
		<comments>http://www.coderdan.com/2010/05/simple-web-server/#comments</comments>
		<pubDate>Wed, 26 May 2010 13:37:44 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=59</guid>
		<description><![CDATA[If you need a very simple web server to transfer some files you can run: python -m SimpleHTTPServer 80 and you will create a simple web server serving files from the current directory.]]></description>
			<content:encoded><![CDATA[<p>If you need a very simple web server to transfer some files you can run:<br />
<code>python -m SimpleHTTPServer 80</code><br />
and you will create a simple web server serving files from the current directory. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2010/05/simple-web-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strange ArchLinux Error</title>
		<link>http://www.coderdan.com/2010/05/strange-archlinux-error/</link>
		<comments>http://www.coderdan.com/2010/05/strange-archlinux-error/#comments</comments>
		<pubDate>Tue, 25 May 2010 11:16:42 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ArchLinux]]></category>
		<category><![CDATA[error]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=55</guid>
		<description><![CDATA[Arch Linux is a lightweight and simple distribution as they claim on the website. I am interested in a rolling release system without the headaches of Gentoo. The first setup was strange, I have no problems with an ugly console GUI but the entire experience was counterintuitive. On example that gave me some headaches was [...]]]></description>
			<content:encoded><![CDATA[<p>Arch Linux is a lightweight and simple distribution as they claim on the website. I am interested in a rolling release system without the headaches of Gentoo. The first setup was strange, I have no problems with an ugly console GUI but the entire experience was counterintuitive. </p>
<p>On example that gave me some headaches was at &#8220;Configure System&#8221; step. There was a strange error &#8220;Failed to import current network settings into target system&#8221; and all configuration files were empty. It took me sometime to figure the cause and here is this post in case somebody else has this problem. There was an error downloading one of the packages (dhcpd) and the setup program just continued without a proper notification. To recover from this you have to go back to the &#8220;Install Packages&#8221; step (only the missing packages are downloaded) until everything is downloaded.</p>
<p>There were a lot of small things that added up and in the end too many headaches just for a basic setup. I will check it again in after some time passes and maybe it will get better.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2010/05/strange-archlinux-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Today&#8217;s Date</title>
		<link>http://www.coderdan.com/2010/02/todays-date/</link>
		<comments>http://www.coderdan.com/2010/02/todays-date/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 15:58:39 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=51</guid>
		<description><![CDATA[The computer clock was way in the past (some CMOS problems) so windows Internet Time did not allow for an update. I googled &#8220;what date is today&#8221; and the first two sites in the serp use javascript to display the current date and a friendly invitation to buy ads on the website. Javascript is client [...]]]></description>
			<content:encoded><![CDATA[<p>The computer clock was way in the past (some CMOS problems) so windows Internet Time did not allow for an update. I googled &#8220;what date is today&#8221; and the first two sites in the serp use javascript to display the current date and a friendly invitation to buy ads on the website. Javascript is client side so the current date is taken from the same computer (with the date off). I get the same date as the computer is telling me so the website does not solve my problem and I am off to another website: no time for ads and even if I click something there is a big chance that the tracking will be confused. This is a case where you get #1 in google and you just waste your website bandwidth.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2010/02/todays-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pushing Bits and Steel</title>
		<link>http://www.coderdan.com/2010/01/pushing-bits-and-steel/</link>
		<comments>http://www.coderdan.com/2010/01/pushing-bits-and-steel/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 20:12:52 +0000</pubDate>
		<dc:creator>Daniel Negrea</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.coderdan.com/?p=48</guid>
		<description><![CDATA[I enjoy coding, I hardly see myself doing anything else for a living. I get satisfaction from pushing bits, transforming data and most of my work is 100% virtual. I am very proud of some of my code that runs uninterrupted for years or that I get to work with genetic algorithms and neural networks [...]]]></description>
			<content:encoded><![CDATA[<p>I enjoy coding, I hardly see myself doing anything else for a living. I get satisfaction from pushing bits, transforming data and most of my work is 100% virtual. I am very proud of some of my code that runs uninterrupted for years or that I get to work with genetic algorithms and neural networks to solve some obscure, math problem. I have an almost ideal geeky job. It is quite difficult to explain what I do to regular people and the fact that I usually work on backend stuff does not help at all.</p>
<p>I am working on a small project &#8211; nothing complicated (some php&amp;mysql stuff). It is the type of project where most of the challenge is in getting the requirements and helping the client to define the job. This particular case is even easier as the client has good IT skills and knows what he wants.</p>
<p>Today I got a pleasant surprise. He made a small movie about his work. It takes a lot of effort, technology and coordination to load a huge ship with heavy steel coils and keep track of everything in an environment that leaves little room for mistakes. He integrated everything (including my work) to make things run efficiently and the result is something to be proud of.</p>
<p>I got a very pleasant feeling to see how my work touches the real world in such a raw way (tons of steel, a big ship and the ocean …) and it is an interesting change from usual 100% virtual stuff. This movie changed the project from a simple job to something a bit special.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/EfTJGr7diV0&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/EfTJGr7diV0&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.coderdan.com/2010/01/pushing-bits-and-steel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

