<?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>Kirk Lennon &#187; Technology</title>
	<atom:link href="http://kirk.luceo.net/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://kirk.luceo.net</link>
	<description>Musings</description>
	<lastBuildDate>Sun, 30 May 2010 17:34:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Thoughts on Microsoft’s Inability to Execute, and Why Apple Gets all the Attention</title>
		<link>http://kirk.luceo.net/2010/05/115/</link>
		<comments>http://kirk.luceo.net/2010/05/115/#comments</comments>
		<pubDate>Sun, 30 May 2010 01:47:54 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=115</guid>
		<description><![CDATA[This is in response to an article by John C. Dvorak, Steve Ballmer: good news and bad news It’s not just an image problem. Since Steve Balmer took over, Microsoft’s market cap has fallen to less than half of what Gates left it at. And it’s just because the stock market is irrational. Microsoft rakes [...]]]></description>
			<content:encoded><![CDATA[<p>This is in response to an article by John C. Dvorak, <a href="http://www.marketwatch.com/story/steve-ballmers-good-news-and-bad-news-2010-05-28">Steve Ballmer: good news and bad news</a></p>
<p>It’s not just an image problem.</p>
<p>Since Steve Balmer took over, Microsoft’s market cap has fallen to less than half of what Gates left it at. And it’s just because the stock market is irrational.</p>
<p>Microsoft rakes in tons of profits because of exactly two things: Windows and Office. (And that’s why its margins are higher than Apple’s too; software is inherently higher margin than hardware, especially when you can sell the same OS for the better part of a decade without any real updates.) The problem is that these two cash cows aren’t growing, and Microsoft has failed spectacularly in literally every other venture it’s attempted. Apple didn’t sell phones three years ago; now they account for 40% of its revenues and 60% of its profits. And this year it suddenly made tablets cool, and has been selling them like hotcakes. Steve Jobs has carefully steered Apple into new, extraordinarily lucrative markets, and the stock has risen as a result. Microsoft, in contrast, has lumbered around with rehashed versions of products that sell only as a result of its (convicted) monopoly status, while making desperate stabs in every direction imaginable.</p>
<p>Let’s discuss some of Microsoft’s failures:</p>
<ul>
<li>Tablets. They’ve been pushing these for almost a decade and nobody bought them. The problem was that they just threw some touch controls on top of a UI designed for a keyboard and mouse. Apple made an entirely new Cocoa Touch UI layer.</li>
<li>SPOT. Watches, with some MSN crap. Probably cruel of me just to mention.</li>
<li>Silverlight. It has all the disadvantages of Flash, except that nobody uses it.</li>
<li>Zune. They started with brown and never recovered. All it did was kill PlaysforSure</li>
<li>PlaysforSure. Based on the false notion that people want/need “choice” (where “choice” means a Microsoft software platform and various commodity hardware partners). Killed by Zune.</li>
<li>Xbox. Popular, you say? Not from a shareholder standpoint. It’s making a slim profit now, but it will never be enough to dig itself out of the multi-billion dollar hole it’s in. They’ve lost a massive fortune in order to buy second-place in console gaming. And now Apple has, practically by accident, become a major player in mobile gaming.</li>
<li>Windows Mobile. They’ve had mobile software for years, and it’s always sucked, but they formerly held a respectable share of the smartphone market. Then smartphones actually got popular (meaning sales reached numbers that mattered), but not for phones running Microsoft’s frequently renamed mobile OS. The battle is still waging here, but Microsoft has become an irrelevant bit player.</li>
<li>Search. They’ve resorted to outright bribing users to search on Bing, but it’s been only modestly successful, where “successful” means a single-digit share of the search market, and no profits.</li>
</ul>
<p>There are others, of course. I didn’t even discuss any of the “concepts” it’s publicly floated but were killed before they got the chance to die in the market (but should have died privately) *cough* Courier *cough*. Windows Vista (6.0) was a complete disaster in every possible way, ridiculously late, overpriced, and reviled by users. Windows 6.1 (or, in market speak, Windows “7”) is regarded as respectable, but I don’t think I’ve read even a single review by a serious journalist who would call it the best OS available. At its best, Windows 7 is a fine OS for someone who is too cheap to buy a Mac.</p>
<p>Office, meanwhile, is facing stiff competition from all directions. On the Mac specifically, Apple now offers a fairly complete suite in iWork, for half the price of Office, which itself had to drop in price just to stay competitive. More broadly, sophisticated productivity web apps are becoming a serious threat. Of particular note are Google’s offerings, which increasingly obviate the need for MS Office for many users. Google can offer these services for free due to the huge profits it makes from search. Microsoft can’t offer similar free services without sacrificing sales of Office.</p>
<p>The short version of all this is simply this: the last time Microsoft released anything that actually grew the company substantially, in an area of real profits, was 1995. Since then it’s really just been coasting along on momentum. And <em>that</em> is why the media and market lavishes attention over the things Apple does and ignores what Microsoft does.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2010/05/115/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Programming</title>
		<link>http://kirk.luceo.net/2008/11/iphone-programming/</link>
		<comments>http://kirk.luceo.net/2008/11/iphone-programming/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 05:20:31 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=35</guid>
		<description><![CDATA[The main reason I started learning Ruby was to gain the requisite skills for making iPhone applications. I don&#8217;t think my skills are anywhere near where they need to be, and I have only the slightest knowledge of C, but I see no reason why that means I shouldn&#8217;t dive right in. And so I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>The main reason I started learning Ruby was to gain the requisite skills for making iPhone applications. I don&#8217;t think my skills are anywhere near where they need to be, and I have only the slightest knowledge of C, but I see no reason why that means I shouldn&#8217;t dive right in. And so I&#8217;m pursuing a three-prong strategy: I&#8217;m simultaneously learning Ruby, C, and following iPhone tutorials. Lately I&#8217;ve been working on the last of these.</p>
<p>I found a nice series of tutorials on <a href="http://icodeblog.com/2008/07/24/iphone-programming-tutorial-1-getting-set-up/">iCodeBlog</a>. I&#8217;ve been following the directions very carefully, and retyping the provided code into Xcode (which, by the way, has amazing auto-completion). Build errors! It seems I&#8217;m not that great, and make a lot of typos, but Xcode always seems to find them for me <img src='http://kirk.luceo.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  At any rate, I&#8217;ve successfully made several useless apps. Now I&#8217;m following a big, multi-part tutorial on that site for making a To-do app. I don&#8217;t really understand the code I&#8217;m typing out, at least not to a large degree, but I figure I&#8217;ll have plenty of time to go back and actually learn Objective-C; I just really want to make something tangible in a hurry, so I have a taste of what I&#8217;m ultimately aiming for.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2008/11/iphone-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another Update to my Mad Lib App</title>
		<link>http://kirk.luceo.net/2008/10/another-update-to-my-mad-lib-app/</link>
		<comments>http://kirk.luceo.net/2008/10/another-update-to-my-mad-lib-app/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 08:32:14 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=34</guid>
		<description><![CDATA[My previous version of the mad lib app had a few problems. First of all, the story I wrote was terrible, and didn&#8217;t even use all of the variables entered by the user. Related to that, I made it ask every question exactly three times, even though I didn&#8217;t need three answers for each one. [...]]]></description>
			<content:encoded><![CDATA[<p>My previous version of the mad lib app had a few problems. First of all, the story I wrote was terrible, and didn&#8217;t even use all of the variables entered by the user. Related to that, I made it ask every question exactly three times, even though I didn&#8217;t need three answers for each one. Furthermore, I wasn&#8217;t very specific about the user input, and it didn&#8217;t always work grammatically in my story. I&#8217;ve fixed all of that.</p>
<blockquote><p><code># Mad Lib<br />
# madlib.rb<br />
# Creates a mad lib based on user input<br />
def ask part<br />
input = gets.chomp.upcase<br />
part.push input<br />
end<br />
verb = []<br />
adj = []<br />
obj = []<br />
ly = []<br />
job = []<br />
puts 'Type in one verb, followed by a return:'<br />
ask verb<br />
puts 'Now, type in four adjectives, followed by return after each one:'<br />
ask adj<br />
ask adj<br />
ask adj<br />
ask adj<br />
puts 'Now type in two everyday objects, followed by return after each one:'<br />
ask obj<br />
ask obj<br />
puts 'Type in one adverb that ends in -ly:'<br />
ask ly<br />
puts 'Type in two job titles, such as "worker"'<br />
ask job<br />
ask job<br />
puts 'One very ' +adj[0]+ ' day, a kind ' +job[0]+ ' went up to a ' +adj[1]<br />
puts job[1]+ ' and asked to borrow some money to buy a ' +adj[2]+ ' ' +obj[0]+ ','<br />
puts 'which he needed very badly. The ' +job[0]+ ' told him that he would lend'<br />
puts 'the money only if the ' +job[1]+ ' would agree to ' +verb[0]+ ' a'<br />
puts ly[0]+ ' ' +adj[3]+ ' ' +obj[1]+ '. The ' +job[0]+ ' decided it wasn\'t'<br />
puts 'worth it.'</code></p></blockquote>
<p>In my new version, I changed the user inputs to make them more specific. Instead of just asking for nouns, I ask for job titles and objects. Adverbs became an -ly adverb. The only place I see where it might not work out perfectly is if the adjectives start with vowel sounds, because the story has &#8220;a&#8221; before them, instead of &#8220;an.&#8221; I could write a huge amount of code (probably equal to this entire program, as-is, if not more) just to account for this and automatically change the &#8220;a&#8221; to &#8220;an.&#8221; I could also just ask people in the question to stick to consonants. But I don&#8217;t think it really matters. It&#8217;s a mad lib; &#8220;a orange tree&#8221; is to be expected.</p>
<p>The other issue is that by removing the code that automatically asks each question three times, I have to repeat the same lines of code for each time I want it asked. There are ways that I could code it so that I could pass it an additional variable—the number of times to ask the question—but my method is so short anyway (<code>ask adj</code>) that I don&#8217;t think it would actually save any space.<br />
Here is the code when run:</p>
<blockquote><p><code>iMac:Ruby kirk$ Ruby madlib.rb<br />
Type in one verb, followed by a return:<br />
<em>open</em><br />
Now, type in four adjectives, followed by return after each one:<br />
<em>blue</em><br />
<em>clean</em><br />
<em>dirty</em><br />
<em>high</em><br />
Now type in two everyday objects, followed by return after each one:<br />
<em>cup</em><br />
<em>phone</em><br />
Type in one adverb that ends in -ly:<br />
<em>fetchingly</em><br />
Type in two job titles, such as "worker"<br />
<em>serf</em><br />
<em>restaurateur</em><br />
One very BLUE day, a kind SERF went up to a CLEAN<br />
RESTAURATEUR and asked to borrow some money to buy a DIRTY CUP,<br />
which he needed very badly. The SERF told him that he would lend<br />
the money only if the RESTAURATEUR would agree to OPEN a<br />
FETCHINGLY HIGH PHONE. The SERF decided it wasn't<br />
worth it.</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2008/10/another-update-to-my-mad-lib-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Age Quiz</title>
		<link>http://kirk.luceo.net/2008/10/age-quiz/</link>
		<comments>http://kirk.luceo.net/2008/10/age-quiz/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 06:30:55 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=33</guid>
		<description><![CDATA[This is a follow-up to my first Ruby-related post. In that post, I mentioned potential additions to the code; I&#8217;ve since made those, and also cleaned it up a bit: # Age Quiz # agequiz.rb # Asks user his name and when he was born. It then calculates # the user's age, and offers different [...]]]></description>
			<content:encoded><![CDATA[<p>This is a follow-up to my first Ruby-related <a href="/2008/09/im-learning-ruby.html">post</a>. In that post, I mentioned potential additions to the code; I&#8217;ve since made those, and also cleaned it up a bit:</p>
<blockquote><p><code># Age Quiz<br />
# agequiz.rb<br />
# Asks user his name and when he was born. It then calculates<br />
# the user's age, and offers different comments for kids, old<br />
# people, and everyone else.<br />
puts 'What is your name?'<br />
name = gets.chomp<br />
puts 'What year were you born in?'<br />
year = gets.chomp<br />
puts 'What month were you born in?'<br />
month = gets.chomp<br />
puts 'What day were you born on?'<br />
day = gets.chomp<br />
ageY = ((Time.new - Time.mktime(year,month,day))/31557600).to_i<br />
puts 'Well, ' + name + ', you are ' + ageY.to_s + ' years old.'<br />
if ageY &lt; 18<br />
puts 'Enjoy your youth while it lasts.'<br />
elsif ageY &gt;= 70<br />
puts 'You\'re old. Get off the road.'<br />
elsif<br />
puts 'That means it\'s time to get a job!'<br />
end</code></p></blockquote>
<p>In the original code, it took four lines to get the age in years:</p>
<blockquote><p><code>birthday = Time.mktime(year,month,day)<br />
now = Time.new<br />
ageSeconds = now - birthday<br />
ageYears = ageSeconds/31557600</code></p></blockquote>
<p>The &#8220;birthday,&#8221; &#8220;now,&#8221; and &#8220;ageSeconds&#8221; variables were completely unnecessary. They made it easier to work out exactly what was happening, but were wasteful. In the new version, it&#8217;s just:</p>
<blockquote><p><code>ageY = ((Time.new - Time.mktime(year,month,day))/31557600).to_i<br />
</code></p></blockquote>
<p>I can then use this variable in a series of if/elsif statements that returns different results for different ages. I think it&#8217;s funny.</p>
<p>The only thing that&#8217;s still a problem is that it accepts only numerical input for the date, and doesn&#8217;t have any built-in error handling. If someone types &#8220;March,&#8221; instead of &#8220;3,&#8221; it has no idea what to do. The easy solution would be to just tell people in the instructions to use numbers. To make it even easier for people, I could ask them to enter in their date of birth on a single line, using a provided format. Unfortunately, I don&#8217;t yet know how to extract such an entry as three separate numbers. This first app may get visited yet again.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2008/10/age-quiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Mad Libs Ruby App</title>
		<link>http://kirk.luceo.net/2008/10/my-mad-libs-ruby-app/</link>
		<comments>http://kirk.luceo.net/2008/10/my-mad-libs-ruby-app/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 05:25:51 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=32</guid>
		<description><![CDATA[This post is really just so I can say how proud of myself I am. I just finished cleaning up my most advanced app to date, and felt like sharing. A few days ago, I randomly got the idea to make a Mad Libs Ruby app. I knew that the code would involve a lot [...]]]></description>
			<content:encoded><![CDATA[<p>This post is really just so I can say how proud of myself I am. I just finished cleaning up my most advanced app to date, and felt like sharing.</p>
<p>A few days ago, I randomly got the idea to make a Mad Libs Ruby app. I knew that the code would involve a lot of repetition, which would involve the use of methods, but—while I had read about them—I hadn&#8217;t actually learned how to use them yet. I instead decided to just write it with horribly inefficient code, and then clean it up. It would also serve to illustrate just how much code the final version would save. Here is the original version:</p>
<blockquote><p><code># Mad Lib<br />
# madlib.rb<br />
verb = []<br />
adj = []<br />
noun = []<br />
adv = []<br />
puts 'Type in three verbs, followed by return after each one:'<br />
input = gets.chomp.upcase<br />
verb.push input<br />
input = gets.chomp.upcase<br />
verb.push input<br />
input = gets.chomp.upcase<br />
verb.push input<br />
puts 'Type in three adjectives, followed by return after each one:'<br />
input = gets.chomp.upcase<br />
adj.push input<br />
input = gets.chomp.upcase<br />
adj.push input<br />
input = gets.chomp.upcase<br />
adj.push input<br />
puts 'Type in three nouns, followed by return after each one:'<br />
input = gets.chomp.upcase<br />
noun.push input<br />
input = gets.chomp.upcase<br />
noun.push input<br />
input = gets.chomp.upcase<br />
noun.push input<br />
puts 'Type in three adverbs, followed by return after each one:'<br />
input = gets.chomp.upcase<br />
adv.push input<br />
input = gets.chomp.upcase<br />
adv.push input<br />
input = gets.chomp.upcase<br />
adv.push input<br />
puts 'Thanks! Now I\'d like to tell you a story.'<br />
puts 'One day a very ' + adj[0] + ' ' + noun[0] + ' went walking'<br />
puts 'down the street. It came upon a ' + noun[1] + ' running ' + adv[0]<br />
puts 'after a stranger sight. The ' + noun[0] + ' ' + verb[0] + 'ed a ' + noun[2]<br />
puts 'with a ' + adj[1] + ' ' + noun[0] + '. But that\'s OK'<br />
puts 'because he remembered to ' + verb[1] +'.'</code></p></blockquote>
<p>It starts out by creating four empty arrays, for each part of speech. Then it gets ugly. The core part of the code is this:</p>
<blockquote><p><code>input = gets.chomp.upcase<br />
verb.push input</code></p></blockquote>
<p>It creates the variable &#8220;input,&#8221; then <em>gets</em> it from the user (and also <em>chomps</em> off the return and makes it into all caps, so that they stand out in the final story). It then <em>push</em>es the input into the array for that part of speech (in this case, &#8220;verb&#8221;). The problem is that these two lines get repeated exactly the same two more times for each part of speech, and the only difference in the code for each part of speech is a single word, defining which array it goes into. That&#8217;s twelve repetitions of two lines of code. Here is the new version:</p>
<blockquote><p><code>def ask part<br />
3.times do<br />
input = gets.chomp.upcase<br />
part.push input<br />
end<br />
end<br />
verb = []<br />
adj = []<br />
noun = []<br />
adv = []<br />
puts 'Type in three verbs, followed by return after each one:'<br />
ask verb<br />
puts 'Type in three adjectives, followed by return after each one:'<br />
ask adj<br />
puts 'Type in three nouns, followed by return after each one:'<br />
ask noun<br />
puts 'Type in three adverbs, followed by return after each one:'<br />
ask adv<br />
puts 'Thanks! Now I\'d like to tell you a story.'</code><br />
[The story part is the same as in the original, so I didn't repeat it here]</p></blockquote>
<p>As you can see, I <em>def</em>ined a new method, &#8220;ask.&#8221; It gets the variable &#8220;part&#8221; (for &#8220;part of speech&#8221;). Since I ask each question twice, I added that to the definition. The core part of the code is the same as before, except that I use the &#8220;part&#8221; variable instead. Then for each part of speech, all I need to do is <em>ask</em>, and pass it which part of speech. For each question, six lines becomes two words, and all I added were six lines (two of which are just &#8220;end”).</p>
<p>Of course, there&#8217;s also the story itself. It&#8217;s mostly just a placeholder right now. It doesn&#8217;t even use all of the words the user inputs. I&#8217;ll have to work on it. Also, there&#8217;s one part where I just add an &#8220;-ed&#8221; on the end of a verb, but that doesn&#8217;t work out very well for a lot of verbs. Of course, it&#8217;s kind of amusing to see &#8220;RUNed,&#8221; so maybe I&#8217;ll keep it.</p>
<p>Here it is when I run it in Terminal:</p>
<blockquote><p><code>kirk$ Ruby madlib.rb<br />
Type in three verbs, followed by return after each one:<br />
beat<br />
steal<br />
worship<br />
Type in three adjectives, followed by return after each one:<br />
blue<br />
smelly<br />
smooth<br />
Type in three nouns, followed by return after each one:<br />
desk<br />
floor<br />
shoe<br />
Type in three adverbs, followed by return after each one:<br />
silently<br />
violently<br />
nonchalantly<br />
Thanks! Now I'd like to tell you a story.<br />
One day a very BLUE DESK went walking<br />
down the street. It came upon a FLOOR running SILENTLY<br />
after a stranger sight. The DESK BEATed a SHOE<br />
with a SMELLY DESK. But that's OK<br />
because he remembered to STEAL.</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2008/10/my-mad-libs-ruby-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’m Learning Ruby</title>
		<link>http://kirk.luceo.net/2008/09/i%e2%80%99m-learning-ruby/</link>
		<comments>http://kirk.luceo.net/2008/09/i%e2%80%99m-learning-ruby/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 05:15:51 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=31</guid>
		<description><![CDATA[I’ve been toying with the idea of learning a programming language for a while. Earlier today, I decided to find a good Cocoa tutorial. In the introduction to the one I found, it told me to try learning Ruby first, since I don&#8217;t have any real prior experience with any programming. At any rate, I [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been toying with the idea of learning a programming language for a while. Earlier today, I decided to find a good Cocoa tutorial. In the introduction to the one I found, it told me to try learning Ruby first, since I don&#8217;t have any real prior experience with any programming. At any rate, I found myself reading &#8220;<a href="http://pine.fm/LearnToProgram/">Learn to Program</a>,&#8221; by Chris Pine. I’m not even finished reading it and yet I’ve already made a functional Ruby app, from scratch. He shows different techniques, and gives examples, but at the end of each section, offers additional application ideas, that used the techniques you just learned. I decided to try one of them out. It asks your name and when you were born, then calculates your age and tells you to get a job.</p>
<p><code><br />
puts 'What is your name?' <br />
name = gets.chomp <br />
puts 'What year were you born in?'<br />
year = gets.chomp<br />
puts 'What month were you born in?'<br />
month = gets.chomp<br />
puts 'What day were you born on?'<br />
day = gets.chomp<br />
birthday = Time.mktime(year,month,day)<br />
now = Time.new<br />
ageSeconds = now - birthday<br />
ageYears = ageSeconds/31557600<br />
puts 'Well, ' + name + ', you are ' + ageYears.to_i.to_s + ' years old.'<br />
puts 'That means it\'s time to get a job!'<br />
</code></p>
<p>
This results in (user input in italics):</p>
<p>What is your name?<br />
<em>Kirk</em><br />
What year were you born in?<br />
<em>1984</em><br />
What month were you born in?<br />
<em>3</em><br />
What day were you born on?<br />
<em>13</em><br />
Well, Kirk, you are 24 years old.<br />
That means it&#8217;s time to get a job!</p>
<p>Obviously it’s simple now, but I think it&#8217;s a good start. I’ve also got ideas as to how to make it even more interesting. I could throw in some if/elsif statements and have it give different comments, depending on your age. Perhaps it would tell a 12-year-old to enjoy his youth while he had it, or implore an octogenarian to please stop driving.</p>
<p>In any case, I’m proud of it &#8230; like stick-it-on-the-refrigerator proud, except that my blog will work as the fridge.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2008/09/i%e2%80%99m-learning-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Bought an iMac</title>
		<link>http://kirk.luceo.net/2008/05/i-bought-an-imac/</link>
		<comments>http://kirk.luceo.net/2008/05/i-bought-an-imac/#comments</comments>
		<pubDate>Tue, 13 May 2008 05:01:35 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=30</guid>
		<description><![CDATA[I bought my MacBook two years ago, and I love it. However, it occurred to me that I spend most of my time with it at my desk. My next computer purchase was obvious. Last August, Apple updated the iMac line, giving it more power and an updated aluminum and black exterior—signaling a definitive turn [...]]]></description>
			<content:encoded><![CDATA[<p>I bought my MacBook two years ago, and I love it. However, it occurred to me that I spend most of my time with it at my desk. My next computer purchase was obvious.</p>
<p>Last August, Apple updated the iMac line, giving it more power and an updated aluminum and black exterior—signaling a definitive turn in Apple&#8217;s overall esthetic from its iconic white to a more professional look first unveiled with the iPhone. Moreover, they increased the screen sizes. While previously available in 17&#8243; and 20&#8243; versions, rumors speculated about an obscenely large 23&#8243; version. In fact, Apple ditched the 17&#8243; size completely, kept the 20&#8243;, and introduced a **24**&#8221; model.</p>
<p>I wasn&#8217;t in the market for a new computer quite yet (not with my paycheck!), but I figured I could at least pick out my next computer. Three base models were offered: a lower-end 20&#8243;, a higher-end 24&#8243;, and a middle-of-the-road 20&#8243; with same upgraded specs as the 24&#8243;. And so I spent the better part of a year debating between the juiced-up 20&#8243; or the 24&#8243;. One retailed for $1,499 and the other $1,799. Four inches, or $300? I compared them in the store on numerous occasions. Do I really need the extra four inches? With the money I saved by going for the 20&#8243; I could get an TV.</p>
<p>And then, three things happened:</p>
<ol>
<li>Apple updated the iMac line. They all got higher specs, but the 24&#8243; now gained a marginally faster processor than is available in the 20”.</li>
<li>I got a $600 economic &#8220;stimulus&#8221; from the federal government. I was going to buy an iMac anyway, but this helped me justify it.</li>
<li>Finally, I read a review and, apparently, the quality of the screen of the 24&#8243; is actually substantially better than the 20”.</li>
</ol>
<p>And so I relented, and bought it. The process, however, was more dramatic than it sounds. I actually considered filming it, but chose not to. The short version is that I covered my face when I clicked the submit button to buy it, then, frightened at spending that much money, peeked through my fingers at the screen.</p>
<p>At any rate, I am now the proud owner of a 24&#8243; iMac. It is shockingly bright, and very fast. My MacBook was no slouch, but I&#8217;m amazed at just how much snappier this is.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2008/05/i-bought-an-imac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Living with my iPhone</title>
		<link>http://kirk.luceo.net/2007/08/living-with-my-iphone/</link>
		<comments>http://kirk.luceo.net/2007/08/living-with-my-iphone/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 21:33:53 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=18</guid>
		<description><![CDATA[I&#8217;ve never before obsessed over a product as much as the iPhone. With expectations so ridiculously high, it would be easy to be at least a little disappointed, but I&#8217;m not. The iPhone truly is a thing of wonder. I like that if I have a spare minute somewhere, I can easily listen to a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never before obsessed over a product as much as the iPhone. With expectations so ridiculously high, it would be easy to be at least a little disappointed, but I&#8217;m not. The iPhone truly is a thing of wonder. I like that if I have a spare minute somewhere, I can easily listen to a song, or watch a video. Perhaps one of the most amazingly beneficial features is the built-in speaker. I&#8217;m not going to carry around my earbuds with me everywhere on the off chance that I&#8217;ll get an opportunity for some extended music listening. The fact that I can watch a TV show, or video podcast anywhere is great. Moreover, I can <em>share</em> the experience with others nearby. For such a small speaker, it&#8217;s remarkably powerful, especially if you cup your hand and direct the sound towards yourself.</p>
<p>And then there&#8217;s the internet. Much has been said of the EDGE network. No, it&#8217;s not very fast, but in my experience, it&#8217;s absolutely usable, and I can understand the size/battery tradeoffs involved. I would much rather have a super-thin phone that walked through the internet than a brick that sprints. For my priorities, Apple made the right decision. The browser itself is, of course, fantastic. I really love that I can quickly look up something on Google or IMDB when I&#8217;m out and about, or even just on my couch. Also, the widgets are nice to have; I like to keep an eye on Apple&#8217;s stock price (wishing I had some), and also on the weather.</p>
<p>The decision to use glass for the screen was pure brilliance. As soon as I take it out of my pocket to show people, they always ask, &#8220;Don&#8217;t you have a case for it?&#8221; I love to take my keys and rub them across the surface to the shock of my friends and co-workers. It just doesn&#8217;t scratch. At all. No case necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2007/08/living-with-my-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I got my iPhone!</title>
		<link>http://kirk.luceo.net/2007/07/i-got-my-iphone/</link>
		<comments>http://kirk.luceo.net/2007/07/i-got-my-iphone/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 05:16:21 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=22</guid>
		<description><![CDATA[I&#8217;m actually writing this on my iPhone. I&#8217;m sitting in my room and my MacBook is on, but I figured I&#8217;d give it a go. In short, it&#8217;s everything I hoped it could be. The software is nothing short of amazing: quick, fluid, and so smart it&#8217;s almost scary. &#8220;Prescience&#8221; isn&#8217;t a word one often [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m actually writing this on my iPhone. I&#8217;m sitting in my room and my MacBook is on, but I figured I&#8217;d give it a go. In short, it&#8217;s everything I hoped it could be. The software is nothing short of amazing: quick, fluid, and so smart it&#8217;s almost scary. &#8220;Prescience&#8221; isn&#8217;t a word one often associates with phones, but I think it&#8217;s justified here. I&#8217;m really only hitting the right letter maybe two-thirds of the time, and yet, almost without fail, it has automatically replaced my mistakes with the correct word; I need only press the space bar.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2007/07/i-got-my-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Obsession with the iPhone</title>
		<link>http://kirk.luceo.net/2007/06/my-obsession-with-the-iphone/</link>
		<comments>http://kirk.luceo.net/2007/06/my-obsession-with-the-iphone/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 00:12:20 +0000</pubDate>
		<dc:creator>Kirk</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kirk.luceo.net/?p=21</guid>
		<description><![CDATA[Slightly more than a year ago, I was in a somewhat similar position. I&#8217;d been eyeing Macs with unprecedented tech-lust and could not stop talking or thinking about them. Then I finally got one and the situation in no way improved. I&#8217;m passionate about my Mac. I love it and still talk about it all [...]]]></description>
			<content:encoded><![CDATA[<p>Slightly more than a year ago, I was in a somewhat similar position. I&#8217;d been eyeing Macs with unprecedented tech-lust and could not stop talking or thinking about them. Then I finally got one and the situation in no way improved. I&#8217;m <em>passionate</em> about my Mac. I love it and still talk about it all the time. I follow Apple news religiously,  and stay on top of every rumor.</p>
<p>I own a first-generation iPod mini. It&#8217;s silver and hold four gigs of music. I do not carry it around with me. It&#8217;s a wonderful product, but it&#8217;s no longer right for me for everyday use. I&#8217;m no longer killing time between classes or while doing research in the library.</p>
<p>Of particular importance, I&#8217;m fanatical about things in my pockets. Notably, I hate to have things in them. I hate to feel my keys against my leg; it bothers me. When I go to work, I leave my phone in my car and my keys in my locker (which, incidentally, I don&#8217;t lock).</p>
<p>My music library is, at present, slightly more than 5 gigs, and growing. I also have a few gigs of TV shows, video podcasts, music videos, and the such. My poor mini can&#8217;t even hold all of my music, let alone do anything with my video. I considered getting a red 8 gig iPod nano late last year (an early Christmas present to myself), but persistent rumors of the iPhone persuaded me to wait. The Macworld conference was in January, and there was a good chance the iPhone just might make an appearance.</p>
<p>An iPhone, while perhaps not ideal for many people, is exactly the kind of product I want. Having as few things in my pockets as possible is of crucial importance to me. Furthermore, I <em>want</em> to be able to carry around my iTunes library with me. If I have ten minutes to kill while I get my car&#8217;s oil changed, I think it would be nice to be able to listen to my music. But that doesn&#8217;t mean I&#8217;m willing to carry around an iPod with me at all times, just in case I get the chance to listen to it. It&#8217;s a given that I&#8217;m going to have my phone with me, and I&#8217;m resigned to carrying it around whenever I&#8217;m out. The ability to combine the two devices into one is, for me, a monumental advantage.</p>
<p>Of course there&#8217;s also the fact that the iPhone is absolutely amazing. It&#8217;s ludicrously thin (again, crucial for me), sexy, and powerful. It&#8217;s a phone I can be proud to set on the table at a restaurant. (You didn&#8217;t think I&#8217;d leave it in my pocket, did you?) Moreover, I can really appreciate most of its features. The ability to carry around all of my photos (with a screen that can actually show them off), so that I can instantly show somebody pictures of my dog or makeshift raft? Brilliant. Built-in Google Maps with satellite images? Where were you when I got lost in downtown Dallas back in January? A really real web browser so I can look up inane facts on the go? Truly a blessing.</p>
<p>Admittedly there are some features I&#8217;m less concerned with. Visual Voicemail? I realize this is incredibly beneficial feature for some people, but I average substantially fewer than one voicemail per month. It&#8217;s a non-issue for me. Email? This one is so-so. I more or less never email anybody, and only my grandmother emails me. As a tool for person-to-person communication, email is totally irrelevant to my life, but I do still get plenty of emails I want. If someone sends me a message on MySpace (a site which while I mostly hate, I still, of course, use), I get an email notification. Invariably, I could get by with waiting until I got home to see the message; unlike some people I don&#8217;t go through MySpace withdrawals after half and hour. However, if I&#8217;m bored, I can see myself checking my email.</p>
<p>And then there&#8217;s text messaging. A few years ago, texting was already big in the rest of the developed world, but hadn&#8217;t really caught on here in the US. I was really into the idea of it, but I didn&#8217;t really have anybody to text with, because none of my friends were into it yet. I had AT&amp;T Wireless back then, and text messages were free to receive and 10 cents to send. I signed up for text alerts from Yahoo! and stayed on top of breaking news throughout the day. But then Cingular bought AT&amp;T Wireless. When I upgraded to a new phone and signed a new contract, I lost those free incoming texts. Every message cost 10 cents, or you could buy a text plan. In the end, I basically just gave up on texting. What can I say? I&#8217;m (selectively) cheap.</p>
<p>Things are different now. My friends and coworkers text like crazy. I participate only lightly, a few messages here and there. At the new 15 cent rate, I still average less than $1 a month on texts. But I&#8217;m ready for a change. Just as I&#8217;m resigned to carrying a phone in my pocket everywhere I go (except for while at work), I&#8217;m already resigned to paying substantially more every month for my cell phone bill. If I&#8217;m going to get a fancy phone with great support for texting and the internet, then I&#8217;m going to use it; damn the cost.</p>
<p>And back to my obsession. I talk about the iPhone constantly. Every single day. I listen for the slightest hint of a rumor about a new feature, service pricing, and the launch day. Everybody I know knows that I want one and plan on getting it the morning it comes out. A few days ago the month changed to June. &#8220;Do you know what month it is?&#8221; I asked people. &#8220;Um, June.&#8221; &#8220;Do you know what comes out later this month?&#8221; &#8220;Oh yeah, that phone you keep talking about.&#8221; It&#8217;s almost verbatim.</p>
<p>Steve Jobs&#8217; Macworld keynote, in which he introduced the iPhone was not made available as a live, streaming video, but I followed along at two sites that had live updates with quotes, facts, and pictures. Then, a short while later, the video was put online. I downloaded it and have watched it again and again, sometimes just looking at my favorite parts. Surely this can&#8217;t be healthy, but I just want it <em>so badly</em>. The wait is killing me.</p>
<p>Finally, this evening, a new revelation: June 29. Apple finally announced a launch day, and they did it with three new TV ads, all of which are good, and two of which I really like a lot. I&#8217;m not so much into the calamari ad, probably in large part because I don&#8217;t eat seafood. &#8220;Never Been an iPod&#8221; is the best one, I think. I like the flow; it makes me not want the ad to end (that, and the pleasant music, used in all three).</p>
<p>And so ends what is unfortunately merely a <em>partial</em> exposition as to the extent of my iPhone obsession.</p>
]]></content:encoded>
			<wfw:commentRss>http://kirk.luceo.net/2007/06/my-obsession-with-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
