<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Ten commandments for developers</title>
	<atom:link href="http://damieng.com/blog/2008/08/01/ten-commandments-for-developers/feed" rel="self" type="application/rss+xml" />
	<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ten-commandments-for-developers</link>
	<description>A .NET developer in silicon valley</description>
	<lastBuildDate>Wed, 08 May 2013 16:57:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: Brice</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-44090</link>
		<dc:creator>Brice</dc:creator>
		<pubDate>Wed, 26 Jan 2011 16:28:11 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-44090</guid>
		<description><![CDATA[Well, except for no 7, you could have just said: &quot;Be UNIX-y&quot;. 

1. Allow immediate termination 
[Check!] Ctrl-C 

2. Leave start-up alone
[Check!] Yup, there is no startup. Or, you can add stuff as a deamon using a startup script, that has to be activated by the user/admin.

3. Not modify existing file associations
[Check!] treat all files as text and compose applications using well built, but limited scope tools.

4. Not ask inappropriate questions
[check!] Perhaps even too much so. `sudo rm -rf . /` anyone?

5. Keep noise to a minimum
[check!] nuff said.

6. Stay focused on the goal
[check!] Simple programs that do one thing only and one thing well.

7. Make actions obvious and reversible
[FAIL] Oh boy, CLI mistakes are not kind to you. Well, at least, you only make a stupid mistake once: next time, you check what you&#039;re doing.

8. Avoid restarts
[check!] I personally ran a Linux box with Apache for nearly ten month without a single restart. 

9. Make configurations count
[check!] `/etc` and `~/.something`. Or `~/.config/something` if you follow newer guidelines...

10. Adhere to the platform
that would mean stdin/stdout/stderr and text processing]]></description>
		<content:encoded><![CDATA[<p>Well, except for no 7, you could have just said: &#8220;Be UNIX-y&#8221;. </p>
<p>1. Allow immediate termination<br />
[Check!] Ctrl-C </p>
<p>2. Leave start-up alone<br />
[Check!] Yup, there is no startup. Or, you can add stuff as a deamon using a startup script, that has to be activated by the user/admin.</p>
<p>3. Not modify existing file associations<br />
[Check!] treat all files as text and compose applications using well built, but limited scope tools.</p>
<p>4. Not ask inappropriate questions<br />
[check!] Perhaps even too much so. `sudo rm -rf . /` anyone?</p>
<p>5. Keep noise to a minimum<br />
[check!] nuff said.</p>
<p>6. Stay focused on the goal<br />
[check!] Simple programs that do one thing only and one thing well.</p>
<p>7. Make actions obvious and reversible<br />
[FAIL] Oh boy, CLI mistakes are not kind to you. Well, at least, you only make a stupid mistake once: next time, you check what you&#8217;re doing.</p>
<p>8. Avoid restarts<br />
[check!] I personally ran a Linux box with Apache for nearly ten month without a single restart. </p>
<p>9. Make configurations count<br />
[check!] `/etc` and `~/.something`. Or `~/.config/something` if you follow newer guidelines&#8230;</p>
<p>10. Adhere to the platform<br />
that would mean stdin/stdout/stderr and text processing</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: plus</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-42609</link>
		<dc:creator>plus</dc:creator>
		<pubDate>Thu, 04 Nov 2010 20:23:22 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-42609</guid>
		<description><![CDATA[Usability design is what we are grasping for here.  I like how typing comments show up immediately, was this custom?

Jeff Johnson&#039;s book GUI Bloopers documented many of these by the way.]]></description>
		<content:encoded><![CDATA[<p>Usability design is what we are grasping for here.  I like how typing comments show up immediately, was this custom?</p>
<p>Jeff Johnson&#8217;s book GUI Bloopers documented many of these by the way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Spudd86</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-42409</link>
		<dc:creator>Spudd86</dc:creator>
		<pubDate>Sun, 26 Sep 2010 23:20:26 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-42409</guid>
		<description><![CDATA[@André 
What has that got to do with OSS? Look at the direction GNOME is moving in...

Also you&#039;re right that creating software that doesn&#039;t require six million configuration options is up to the developer, however it is also a good idea to have a set of &quot;advanced&quot; options somewhere (like firefox&#039;s about:config) so that people who DO know stuff about what the software is doing can change things. (Personally I think some GNOME software has too few options, eg Totem, there&#039;s lots of things you can&#039;t change about how it works that I&#039;d really like to change, particularly some stuff to do with audio downmixing/level compression for DVDs, so I use smplayer or VLC), yes trying to make your software just work is the best goal, sometimes it doesn&#039;t, and having an &quot;advanced&quot; tab buried somewhere is a good idea.

I think the goal should be just work as much as possible, but don&#039;t hide everything completely, make the settings that lots of people might want to change accessible and easy to find, and put the arcane stuff somewhere else, with a label that says &quot;This is arcane stuff you shouldn&#039;t need to mess with&quot;.

@MadTypist 
Mozilla has moved to keeping pretty much everything in SQLite so something is REALLY broken if you loose bookmarks to a restart (probably your OS or the filesystem you&#039;re using... you aren&#039;t using FAT are you?)

(yes I know those comments are 2 years old)]]></description>
		<content:encoded><![CDATA[<p>@André<br />
What has that got to do with OSS? Look at the direction GNOME is moving in&#8230;</p>
<p>Also you&#8217;re right that creating software that doesn&#8217;t require six million configuration options is up to the developer, however it is also a good idea to have a set of &#8220;advanced&#8221; options somewhere (like firefox&#8217;s about:config) so that people who DO know stuff about what the software is doing can change things. (Personally I think some GNOME software has too few options, eg Totem, there&#8217;s lots of things you can&#8217;t change about how it works that I&#8217;d really like to change, particularly some stuff to do with audio downmixing/level compression for DVDs, so I use smplayer or VLC), yes trying to make your software just work is the best goal, sometimes it doesn&#8217;t, and having an &#8220;advanced&#8221; tab buried somewhere is a good idea.</p>
<p>I think the goal should be just work as much as possible, but don&#8217;t hide everything completely, make the settings that lots of people might want to change accessible and easy to find, and put the arcane stuff somewhere else, with a label that says &#8220;This is arcane stuff you shouldn&#8217;t need to mess with&#8221;.</p>
<p>@MadTypist<br />
Mozilla has moved to keeping pretty much everything in SQLite so something is REALLY broken if you loose bookmarks to a restart (probably your OS or the filesystem you&#8217;re using&#8230; you aren&#8217;t using FAT are you?)</p>
<p>(yes I know those comments are 2 years old)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darth Continent</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-42175</link>
		<dc:creator>Darth Continent</dc:creator>
		<pubDate>Tue, 03 Aug 2010 01:12:12 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-42175</guid>
		<description><![CDATA[Great list! To add to it, how about apps that are ignorant of multi-monitor desktops? It can be REALLY unfun when you start an app while undocked from your normal multi-monitor setup and have to hit ALT then pick Move then hold an arrow key one way or the other until the app window creeps over from beyond the desktop.]]></description>
		<content:encoded><![CDATA[<p>Great list! To add to it, how about apps that are ignorant of multi-monitor desktops? It can be REALLY unfun when you start an app while undocked from your normal multi-monitor setup and have to hit ALT then pick Move then hold an arrow key one way or the other until the app window creeps over from beyond the desktop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruud</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-35232</link>
		<dc:creator>Ruud</dc:creator>
		<pubDate>Tue, 26 Jan 2010 05:34:35 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-35232</guid>
		<description><![CDATA[Another one, don&#039;t make the size of your program too big. I&#039;ve seen hp printer drivers which are nearly half a gigabyte: http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;prodTypeId=18972&amp;prodSeriesId=3690646&amp;prodNameId=3690647&amp;swEnvOID=2093&amp;swLang=8&amp;mode=2&amp;taskId=135&amp;swItem=lj-62183-2

Seriously you guys, wtf?]]></description>
		<content:encoded><![CDATA[<p>Another one, don&#8217;t make the size of your program too big. I&#8217;ve seen hp printer drivers which are nearly half a gigabyte: <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&#038;cc=us&#038;prodTypeId=18972&#038;prodSeriesId=3690646&#038;prodNameId=3690647&#038;swEnvOID=2093&#038;swLang=8&#038;mode=2&#038;taskId=135&#038;swItem=lj-62183-2" rel="nofollow">http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&#038;cc=us&#038;prodTypeId=18972&#038;prodSeriesId=3690646&#038;prodNameId=3690647&#038;swEnvOID=2093&#038;swLang=8&#038;mode=2&#038;taskId=135&#038;swItem=lj-62183-2</a></p>
<p>Seriously you guys, wtf?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xavier Morera</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-29469</link>
		<dc:creator>Xavier Morera</dc:creator>
		<pubDate>Fri, 06 Nov 2009 20:30:58 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-29469</guid>
		<description><![CDATA[I totally agree with you.  The ones I specifically hate are:

- Windows trying to reboot your computer all the time, or rebooting without asking and losing your files (I know you can deactivate this feature, just that I forget until I lose something meaningful and then hate Windows Vista)
- Adobe PDF is as blotated as it can be!!!! It sucks, and it has security issues too.
- Photoshop annoying &quot;allow check for updates that makes vista ask for permission to elevate - I know, deactivate, just that I forget until it hits me)
- And the king of all annoyances, HP printer software which wants to take over my ENTIRE computer.  I  just want to print!!!!! A lot of people ask me for help because they can&#039;t figure out how to install their hp software.  That is because it is soooo god damn hard to install something that wants to take over your entire computer.  Let me do a simple printer install, I don&#039;t want your suite that controls every little thing my computer does.
- Same thing with real, bloated software sucks]]></description>
		<content:encoded><![CDATA[<p>I totally agree with you.  The ones I specifically hate are:</p>
<p>- Windows trying to reboot your computer all the time, or rebooting without asking and losing your files (I know you can deactivate this feature, just that I forget until I lose something meaningful and then hate Windows Vista)<br />
- Adobe PDF is as blotated as it can be!!!! It sucks, and it has security issues too.<br />
- Photoshop annoying &#8220;allow check for updates that makes vista ask for permission to elevate &#8211; I know, deactivate, just that I forget until it hits me)<br />
- And the king of all annoyances, HP printer software which wants to take over my ENTIRE computer.  I  just want to print!!!!! A lot of people ask me for help because they can&#8217;t figure out how to install their hp software.  That is because it is soooo god damn hard to install something that wants to take over your entire computer.  Let me do a simple printer install, I don&#8217;t want your suite that controls every little thing my computer does.<br />
- Same thing with real, bloated software sucks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Howard</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-26952</link>
		<dc:creator>Howard</dc:creator>
		<pubDate>Thu, 17 Sep 2009 18:10:23 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-26952</guid>
		<description><![CDATA[Re (1)

a. Take Visual Studio (any version).
b. Load a reallllly big solution (anything like 100k lines of code etc.)
c. Use the rename feature on the name of a parameter of a public function
d. Watch your VS freeze for several minutes
e. Marvel at how the cancel button is completely pointless]]></description>
		<content:encoded><![CDATA[<p>Re (1)</p>
<p>a. Take Visual Studio (any version).<br />
b. Load a reallllly big solution (anything like 100k lines of code etc.)<br />
c. Use the rename feature on the name of a parameter of a public function<br />
d. Watch your VS freeze for several minutes<br />
e. Marvel at how the cancel button is completely pointless</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 10 Commandments for Programmers &#124; Odd:</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-10883</link>
		<dc:creator>10 Commandments for Programmers &#124; Odd:</dc:creator>
		<pubDate>Mon, 19 Jan 2009 22:25:22 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-10883</guid>
		<description><![CDATA[[...] is a great post by Damien Guard – “The Ten Commandments for Developers” although the post is directed mainly at client application developers the basic philosophy [...]]]></description>
		<content:encoded><![CDATA[<p>[...] is a great post by Damien Guard – “The Ten Commandments for Developers” although the post is directed mainly at client application developers the basic philosophy [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-10847</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Thu, 15 Jan 2009 01:40:30 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-10847</guid>
		<description><![CDATA[Adhere to the platform , i hate it when firefox ignores windows settings for language and location.]]></description>
		<content:encoded><![CDATA[<p>Adhere to the platform , i hate it when firefox ignores windows settings for language and location.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joseph Smith</title>
		<link>http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-10480</link>
		<dc:creator>Joseph Smith</dc:creator>
		<pubDate>Tue, 02 Dec 2008 16:19:47 +0000</pubDate>
		<guid isPermaLink="false">http://damieng.com/blog/2008/08/01/ten-commandments-for-developers#comment-10480</guid>
		<description><![CDATA[Amen! The updates of updater software seem to be the newest annoyance trend.]]></description>
		<content:encoded><![CDATA[<p>Amen! The updates of updater software seem to be the newest annoyance trend.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic page generated in 0.143 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-05-22 22:23:44 -->

<!-- Compression = gzip -->