<?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>Chris Mallinson &#187; Programming</title>
	<atom:link href="http://mallinson.ca/cat/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://mallinson.ca</link>
	<description>Technological Things</description>
	<lastBuildDate>Fri, 07 May 2010 06:09:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-beta2</generator>
		<item>
		<title>Burned Out? Try this.</title>
		<link>http://mallinson.ca/post/burnout/</link>
		<comments>http://mallinson.ca/post/burnout/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 23:01:28 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work Habits]]></category>

		<guid isPermaLink="false">http://mallinson.ca/?p=123</guid>
		<description><![CDATA[<p>I'm always torn between reading a book about a new technology that could potentially further my career and a book about something totally cool and fascinating, but unrelated to my field. There are many times when I find a book that satisfies both criteria, like some of the books I've read on cryptography (The Code Book, by Simon Singh is fantastic), but often, the books I'm interested in reading have nothing to do with my field.</p>

<p><a href="http://mallinson.ca/post/learning/">Keep Reading</a></p>]]></description>
			<content:encoded><![CDATA[<p>There are lots of way to recovered from being burned out. Physical activity is near the top of my list, as is a beer and a hockey game. Another good way is to direct your brain in a different direction for a while. Reading about something new works great.</p>
<p>I&#8217;m always torn between reading a book about a new technology that could potentially further my career and a book about something totally cool and fascinating, but unrelated to my field. There are many times when I find a book that satisfies both criteria, like some of the books I&#8217;ve read on cryptography (<a href="http://www.amazon.com/Code-Book-Science-Secrecy-Cryptography/dp/0385495323">The Code Book</a>, by <a href="http://www.simonsingh.net">Simon Singh</a> is fantastic).  I&#8217;ve also been reading a lot of books focussed on Biology lately too.  I find it fascinating that the process of natural selection, by definition, can always find the best solution to a problem, given a specific toolset, and enough time. Often though, the books I&#8217;m interested in reading have nothing to do with my field.</p>
<p>I often fall into the habit of reading programming book after programming book, and I find that after a while I start to skim, just trying to finish the book as quickly as I can, which is a terrible way to learn. It&#8217;s not a lack of interest in the subject matter, but a desire to let a different part of my brain take the reigns from time to time. It&#8217;s been shown that sleep can actually help your brain learn a concept more than staying up all night reading about it. I think that letting your mind switch gears for a little while does the same sort of thing.</p>
<p>My Conclusion?  When you feel burned out, find a book that totally fascinates you.  Read a bit of it every day, even in the time you set a side for work. It will rejuvenate your mind and make you work harder.</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/burnout/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sending Yourself a Bill</title>
		<link>http://mallinson.ca/post/billing-yoursel/</link>
		<comments>http://mallinson.ca/post/billing-yoursel/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 22:13:43 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[billing]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://mallinson.ca/?p=263</guid>
		<description><![CDATA[I&#8217;ve been using Billings for about a year now. It&#8217;s a great OSX application for managing clients, projects, and invoices. It&#8217;s currently $40, and for the price, it has saved me enough time to be worth it. On the downside, I&#8217;ve found it to be less than intuitive on occasion, and I&#8217;ve often had to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://www.billingsapp.com/">Billings</a> for about a year now.  It&#8217;s a great OSX application for managing clients, projects, and invoices.  It&#8217;s currently $40, and for the price, it has saved me enough time to be worth it.  On the downside, I&#8217;ve found it to be less than intuitive on occasion, and I&#8217;ve often had to search for a function that really should be apparent.  It allows me to create custom invoices, and generate them based on project work, or even monthly invoices for hosting or maintenance.</p>
<p>All that is great, but I&#8217;ve begun to expand my use of the program.<br />
<span id="more-263"></span></p>
<p>Billings comes with a little menu bar timer that allows you to record the time you spend on different tasks.  I set up &#8220;projects&#8221; in Billings for things like work on personal projects, and personal development.  You can give each project a different &#8220;rate of pay&#8221; and apply a discount to it.  I bill myself $75 an hour for personal projects, and then give myself a 100% discount.  The software still keeps track of the time spent, and the money which it represents, which gives me an idea of how much I have committed to a project.</p>
<p>If you do any pro bono work for charity, I&#8217;d also recommend tracking your time and generating an invoice, using your regular rate with a 100% discount to send to the organization.  Many people who get a free website (for whatever reason) do not have an idea about how much work goes into it, and what the regular rate is.</p>
<p>I also work full time during the week. I start the timers whenever I&#8217;m at work as well, or if I&#8217;m working after hours, as that helps me make sure I&#8217;m putting in my hours, and gives me an idea of how much time I spend on each project, which can be valuable later on.</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/billing-yoursel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blueprint CSS Framework</title>
		<link>http://mallinson.ca/post/blueprint-css-framework/</link>
		<comments>http://mallinson.ca/post/blueprint-css-framework/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 17:05:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[Blueprint]]></category>
		<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://mallinson.ca/?p=228</guid>
		<description><![CDATA[I&#8217;ve hated almost every CSS framework I have come across. I&#8217;ve always viewed CSS as something very unique to every site. Since every single view of your content involves parsing a CSS file, I feel it really needs to be as optimized as possible. CSS frameworks have always added a bunch of code that would [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve hated almost every CSS framework I have come across. I&#8217;ve always viewed CSS as something very unique to every site. Since every single view of your content involves parsing a CSS file, I feel it really needs to be as optimized as possible.  CSS frameworks have always added a bunch of code that would never be used.<br />
<span id="more-228"></span><br />
Let me step back a bit for a minute on that thought. I&#8217;ve become a bit of a handyman lately. I&#8217;ve got a really old house, and I&#8217;m always fixing or building something. I&#8217;ve got lots of tools, and I&#8217;m always misplacing them. A while back, I found a cheap tool-bag at a hardware store. It&#8217;s a small bag that I can carry anywhere, so I went through all my tools, and everything that I&#8217;ve used in the past year, I put into the bag &#8211; all nicely organized. When I&#8217;m working around the house, the bag comes with me, and even though there are a few things in the bottom of the bag that I don&#8217;t use too often, having them at my fingertips saves me a trip to the basement, and prevents me from stripping a bolt by using vice-grips instead of the proper crescent wrench.</p>
<p>I&#8217;m coming around to the idea that 12k of CSS isn&#8217;t going to hurt anyone. That&#8217;s the size of my compressed version of Blueprint CSS, including basic reset, and base typography directives, and the grid. The grid is the key to Blueprint CSS.  The reset and typography stuff is nicely done, and tremendously useful, but the grid holds the power. Now I&#8217;m pretty comfortable laying out even a complex site using floats, clears, and block level elements, but in programming, whenever you find yourself repeating similar tasks over and over again, it&#8217;s time re-use some code.</p>
<p>Blueprint&#8217;s grid framework allows you to assign each of your div elements a column span value, which corresponds to a 24 column (by default) grid, 950 pixels wide. Your divs are assigned a width using classes, and can be nested in any way you like.  It is also possible to apply padding and adjustment to divs using the same grid. I&#8217;ve used Blueprint CSS for only a couple of sites now. One was adapted from an existing design, and one was built from scratch. In both cases I was able to save a lot of time by starting with a base grid.</p>
<p>If you don&#8217;t like the default width, or the amount of columns, there is a handy tool that will adjust the grid.css file to match your needs. (<a href="http://kematzy.com/blueprint-generator/">Blueprint Grid CSS Generator</a>)</p>
<p><a href="http://www.blueprintcss.org/">Blueprint CSS Home Page</a></p>
<p>For now, I&#8217;m sold on this framework, and I plan on using it for a few upcoming projects. I&#8217;m okay with the size of the files for now, but If I were to use it for a very high traffic site, I might think about stripping out any unused classes.</p>
<p>eqzx8us3ta</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/blueprint-css-framework/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Brain Rules For Programmers</title>
		<link>http://mallinson.ca/post/learning-techniques/</link>
		<comments>http://mallinson.ca/post/learning-techniques/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 16:00:40 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Biology]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Memory]]></category>

		<guid isPermaLink="false">http://mallinson.ca/?p=146</guid>
		<description><![CDATA[I read a really cool book recently. OK, I listened to it. I&#8217;ve recently discovered audio books, which are an awesome to be able to read during a commute, or in my case, while painting the house. The book is Brain Rules by John Medina. It&#8217;s a great introduction to the way the human brain [...]]]></description>
			<content:encoded><![CDATA[<p>I read a really cool book recently. OK, I listened to it. I&#8217;ve recently discovered audio books, which are an awesome to be able to read during a commute, or in my case, while painting the house.</p>
<p><a href="http://www.brainrules.net"><img class="book" title="Brain Rules" src="http://chris.mallinson.ca/wp-content/uploads/2009/06/book_brain_rules.jpg" alt="Brain Rules" width="200" height="303" align="right" hspace="10" /></a>The book is <a href="http://brainrules.net/">Brain Rules</a> by John Medina. It&#8217;s a great introduction to the way the human brain works. It covers the biology of the brain, and much of evolutionary origins of its physiology, and human behavior. It&#8217;s fascinating enough by itself, but it really gives some good insights on memory and learning that are very applicable to programmers.<br />
<span id="more-146"></span><br />
One of the most useful things I learned from the book is how to take advantage of the way the brain stores memories to learn new concepts and programming languages faster. Programmers need to learn new things all the time.  Whether it&#8217;s a new function, or a new version of a language, or a completely new language, the things we need to learn are not the same as the things our brain has evolved to learn.  Our brain really needs to struggle to store complex concepts that are not related to our immediate needs, but we can give it a hand.</p>
<p>I find the best way to learn a new language or concept is to use it immediately. If that means putting down a book mid-chapter and writing your own version of a function right away, then do it. But don&#8217;t just write a generic &#8220;Hello World&#8221; type function. Write a function that displays your favorite Monty Python line, add a big screen-capture of the show, and make sure everything is big and bold on the page.  You&#8217;ll have a much better chance of remembering the code you wrote, if the output is memorable.</p>
<p>When I was first exposed to ColdFusion, my company hired a trainer to come in and teach us the basic course.  This is almost 10 years ago, and I still remember some of that code line for line.  It wasn&#8217;t elaborate output that he used &#8211; it was the variable names. He named every variable &#8220;Jimmy&#8221;.  It wasn&#8217;t much, but he did it with such a straight face, that it was hilarious, and in turn, memorable. Building functions called getJimmy(), saveJimmy(), killJimmy() was enough to remember those functions forever.</p>
<p>Jimmy up some of your code.  You&#8217;ll be glad you did.</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/learning-techniques/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
