<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8335086927383366698</id><updated>2011-07-31T02:36:16.425-07:00</updated><category term='cocoa'/><category term='introspection'/><category term='python'/><category term='twisted'/><category term='drm'/><category term='apple'/><category term='homevideos'/><category term='rumors'/><category term='programming'/><category term='spore'/><category term='idvd'/><category term='finalcutexpress'/><category term='livetype'/><category term='pyglet'/><category term='oscon2008'/><category term='hardware'/><category term='friends'/><title type='text'>Nathan’s Thoughts</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-820884871424062590</id><published>2010-09-07T14:53:00.000-07:00</published><updated>2010-10-10T12:26:01.501-07:00</updated><title type='text'>Hiring: Operations Developer in Orem, UT</title><content type='html'>[edit] &lt;br /&gt;&lt;br /&gt;We hired two great people.&amp;nbsp; Thanks for all the aplicants!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-820884871424062590?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/820884871424062590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=820884871424062590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/820884871424062590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/820884871424062590'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2010/09/hiring-operations-developer-in-orem-ut.html' title='Hiring: Operations Developer in Orem, UT'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-1307563899585974346</id><published>2010-08-30T08:31:00.000-07:00</published><updated>2010-09-07T14:52:05.123-07:00</updated><title type='text'>Getting started with tech.lds.org</title><content type='html'>I discovered tech.lds.org the other day.&amp;nbsp; Most of the software  projects you can participate in on their site are Java projects.&amp;nbsp; I  dislike Java.&amp;nbsp; Nevertheless, I'd like to participate in some of them.&amp;nbsp;  I'm having so much trouble getting the environment up and running that I  thought I'd document the journey just in case it helps someone out in  the future (or so I can redo it when I get a new machine someday).&lt;br /&gt;&lt;br /&gt;[I'll keep updating the outline below until I get stuff working]&lt;br /&gt;&lt;br /&gt;My system: OS X 10.6.4&lt;br /&gt;&lt;br /&gt;1. (Piece of cake) I did the basic a) signing the contributors agreement, b) registering an LDS account, and c) sent an email to get an account on the bug tracker, as outlined on https://tech.lds.org/wiki/index.php/Requirements_for_Participation&lt;br /&gt;&lt;br /&gt;2. I installed the LDS eclipse distribution&lt;br /&gt;&lt;br /&gt;[post in progress...]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-1307563899585974346?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/1307563899585974346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=1307563899585974346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/1307563899585974346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/1307563899585974346'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2010/08/getting-started-with-techldsorg.html' title='Getting started with tech.lds.org'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-297807531301804836</id><published>2010-02-14T19:40:00.000-08:00</published><updated>2010-02-14T19:40:57.570-08:00</updated><title type='text'>Kids grow up fast</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Pk1UAIpsAmo/S3jCMJbysBI/AAAAAAAAACo/g5A_fuarmjo/s1600-h/adam.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_Pk1UAIpsAmo/S3jCMJbysBI/AAAAAAAAACo/g5A_fuarmjo/s200/adam.jpg" width="171" /&gt;&lt;/a&gt;&lt;/div&gt;About two weeks ago, my son Adam started crawling a little bit.&amp;nbsp; Now he's zooming around the room on all fours, and just today he managed to climb up the two-step stairs from the family room to the kitchen.&amp;nbsp; Then he did it three more times in a row.&amp;nbsp; (Sigh) They grow up so fast.&amp;nbsp; Time to put up the gates again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-297807531301804836?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/297807531301804836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=297807531301804836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/297807531301804836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/297807531301804836'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2010/02/kids-grow-up-fast.html' title='Kids grow up fast'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Pk1UAIpsAmo/S3jCMJbysBI/AAAAAAAAACo/g5A_fuarmjo/s72-c/adam.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-4247209369876565358</id><published>2010-02-14T15:33:00.000-08:00</published><updated>2010-02-14T15:33:22.183-08:00</updated><title type='text'>Keeping SSH sessions alive through a stateful firewall with ServerAliveInterval</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Pk1UAIpsAmo/S3iIAnMuasI/AAAAAAAAACk/f5KoBK9oOrg/s1600-h/Terminal.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_Pk1UAIpsAmo/S3iIAnMuasI/AAAAAAAAACk/f5KoBK9oOrg/s200/Terminal.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;So with the redesign of our internal corporate network I've found myself one one side of a stateful firewall while all of the servers I SSH into for long periods of time are on the other side of the firewall.&amp;nbsp; This mostly doesn't change anything, except for I found that I lose my SSH connections a lot.&amp;nbsp; All the time, actually.&amp;nbsp; The timeout appears to be somewhere around 20 minutes.&amp;nbsp; Stateful firewalls actively track TCP connections, but they don't want to track them forever, so they kill connections that they think are inactive.&amp;nbsp; Like my SSH sessions that I typically set up in the morning and expect to persist all day whether I use them or not.&lt;br /&gt;&lt;br /&gt;I tried fiddling with the rules on the firewall to increase the state timeouts, but unfortunately there is no global setting for that on pfSense 1.2.3 that I can find, and trying to set that on all umpteen rules on all interfaces and remembering to continue to configure them is not a great solution.&amp;nbsp; Besides, there are other firewalls out in the world that are not under my control.&lt;br /&gt;&lt;br /&gt;The best solution that I found was the ServerAliveInterval and ServerAliveCountMax settings for the SSH client.&amp;nbsp; It's simple to use.&amp;nbsp; On your any-major-non-microsoft-operating-system box just create your config file if it doesn't exist already:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;~/.ssh/config&lt;/div&gt;&lt;br /&gt;And then use your favorite text editor to add these options:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ServerAliveInterval 60&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ServerAliveCountMax 1440&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ServerAliveInterval&lt;/span&gt; tells your SSH client to send an SSH keepalive packet every 60 seconds, which should be well under the timeout of any sane stateful firewall.&amp;nbsp; The firewall ought to notice the packet and reset any state timers that it's using to keep watch on the connection.&amp;nbsp; By default, your SSH client does not send these keepalive packets.&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ServerAliveCountMax&lt;/span&gt; tells your client how many of these packets the other end can &lt;i&gt;fail to receive&lt;/i&gt; (presumably because you've pulled your network cord, or turned off your wireless card) before your client shuts down the connection from your end.&amp;nbsp; I set it to 1440, which is 24-hours worth of packets at once a minute.&amp;nbsp; The cool thing about this is that unless the SSH server on the other end terminates your connection due to inactivity (they don't by default), or a stateful firewall or some other network device between you and your target shuts down your connection, you can turn off your network interface, then turn it back on without losing your SSH connection.&amp;nbsp; Fun stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-4247209369876565358?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/4247209369876565358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=4247209369876565358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/4247209369876565358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/4247209369876565358'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2010/02/keeping-ssh-sessions-alive-through.html' title='Keeping SSH sessions alive through a stateful firewall with ServerAliveInterval'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Pk1UAIpsAmo/S3iIAnMuasI/AAAAAAAAACk/f5KoBK9oOrg/s72-c/Terminal.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-7667610753918321567</id><published>2009-07-12T14:28:00.000-07:00</published><updated>2009-07-12T14:28:00.866-07:00</updated><title type='text'>Adam Nathaniel Stocks</title><content type='html'>My son, Adam Nathaniel Stocks was born on July 9th, 2009 at 11:22pm.&amp;nbsp; At birth he weighed 8 lbs. 7 oz. and was 19.5 inches long.&lt;br /&gt;&lt;br /&gt;His delivery was great, no complications.&amp;nbsp; Kate and Adam are both in excellent health.&amp;nbsp; We are, however, getting a reintroduction to the wonders of sleep deprivation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-7667610753918321567?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/7667610753918321567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=7667610753918321567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/7667610753918321567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/7667610753918321567'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2009/07/adam-nathaniel-stocks.html' title='Adam Nathaniel Stocks'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-4826298166860129077</id><published>2009-06-09T21:28:00.000-07:00</published><updated>2009-08-21T14:10:46.442-07:00</updated><title type='text'>APB: Looking for a good developer to hire.</title><content type='html'>&lt;b&gt;Update (August):&lt;/b&gt;  Thanks to everyone who applied!  We hired a great guy who we expect will be very valuable to our team.  :-)&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Update (July 10th):&lt;/b&gt; Interview period is over.  We had an excellent batch of candidates.  I'll be contacting the best ones on Monday to schedule the second-round interviews.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update (June 16th):  &lt;/b&gt;Adjusted the salary upwards and massaged some of the wording.&lt;br /&gt;&lt;br /&gt;-------------------------&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:x-large;"&gt;Operations Developer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Job Summary:  Software development and Operations.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Job Description:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Develop software to automate, replace, interface with, or assist in any or all of the following items:  Keep all production corporate infrastructure secure and operational at office locations and datacenters.  Corporate infrastructure includes computers (workstations, laptops, and servers), physical security systems, phones and phone systems, and network components.  Help create requirements for internal products for which you will have production responsibility.  Be involved in planning, creating, purchasing and putting into production new systems and software.  Be involved in creating, testing, and implementing disaster recovery plans.  Interface with employees and customers to determine needs, provide solutions, and troubleshoot problems.  Accomplish any other duties as assigned by supervisor.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Requirements:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;- 5+ years programming, software engineering/architecting, or equivalent experience&lt;br /&gt;- Enthusiasm&lt;br /&gt;- Aptitude&lt;br /&gt;- Social skills&lt;br /&gt;- Problem-solving skills&lt;br /&gt;- In-depth experience with various non-Microsoft operating systems, esp. Linux&lt;br /&gt;- Ability to handle pressure&lt;br /&gt;- Your references have something positive to say about you&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pluses:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Please note that we don't expect applicants to have experience in all these areas, but it gives you a good idea of what the job deals with.&lt;br /&gt;&lt;br /&gt;Programming and Scripting Languages&lt;br /&gt;- Regular expressions (cross-language)&lt;br /&gt;- Python (esp. Twisted)&lt;br /&gt;- C/C++&lt;br /&gt;- Perl&lt;br /&gt;- Bash&lt;br /&gt;- TCL&lt;br /&gt;- Objective C / Cocoa&lt;br /&gt;- Javascript&lt;br /&gt;- HTML (okay, okay, it's a markup language)&lt;br /&gt;- ...and others.  The more the better.  Except Java.&lt;br /&gt;&lt;br /&gt;Education&lt;br /&gt;- College degree (Computer Engineering, CS, IS, EE, etc.)&lt;br /&gt;- Security certifications (CISSP, etc.)&lt;br /&gt;- Other technical certifications&lt;br /&gt;- Common sense&lt;br /&gt;- Ability to spell words correctly&lt;br /&gt;- Good grammar&lt;br /&gt;&lt;br /&gt;Security &amp;amp; Security Software&lt;br /&gt;- Good understanding of cryptographic principles&lt;br /&gt;- iptables&lt;br /&gt;- nmap&lt;br /&gt;- nagios&lt;br /&gt;- netcat&lt;br /&gt;- Nessus&lt;br /&gt;- Hydra&lt;br /&gt;- OpenSSH&lt;br /&gt;- OpenSSL&lt;br /&gt;- SAINT&lt;br /&gt;- tcpdump&lt;br /&gt;- xprobe2&lt;br /&gt;&lt;br /&gt;Non-work experience (with technical subject matter)&lt;br /&gt;- Personal project portfolio&lt;br /&gt;- Participation in open source projects&lt;br /&gt;- Leadership experience&lt;br /&gt;- Volunteer/Community service&lt;br /&gt;- Cool and interesting hobbies&lt;br /&gt;&lt;br /&gt;Operating Systems&lt;br /&gt;- Linux (esp. Gentoo)&lt;br /&gt;- OS X / OS X Server&lt;br /&gt;- FreeBSD&lt;br /&gt;- OpenSolaris&lt;br /&gt;- Microsoft ones&lt;br /&gt;&lt;br /&gt;Networking&lt;br /&gt;- TCP/IP&lt;br /&gt;- Ethernet&lt;br /&gt;- CAT5/6 cable creation&lt;br /&gt;- Fiber-optic cabling&lt;br /&gt;- Managed switches&lt;br /&gt;- Network design, performance, monitoring, and troubleshooting&lt;br /&gt;&lt;br /&gt;Software&lt;br /&gt;- asterisk&lt;br /&gt;- apache&lt;br /&gt;- dhcp&lt;br /&gt;- dovecot&lt;br /&gt;- emacs&lt;br /&gt;- git&lt;br /&gt;- ldap&lt;br /&gt;- lighttpd&lt;br /&gt;- PostgreSQL&lt;br /&gt;- ntp&lt;br /&gt;- postfix&lt;br /&gt;- subversion&lt;br /&gt;- vim&lt;br /&gt;- X11 / XDMCP&lt;br /&gt;- ZFS (the filesystem)&lt;br /&gt;&lt;br /&gt;Hardware&lt;br /&gt;- Server construction&lt;br /&gt;- Rack installation&lt;br /&gt;- Big UPS units&lt;br /&gt;- A/C equipment&lt;br /&gt;- Electrical circuits&lt;br /&gt;- printers (esp. HP)&lt;br /&gt;- Alarm systems&lt;br /&gt;- VOIP converters&lt;br /&gt;- routers&lt;br /&gt;- telecom equipment&lt;br /&gt;- projectors&lt;br /&gt;- monitors&lt;br /&gt;- speaker systems&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-4826298166860129077?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/4826298166860129077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=4826298166860129077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/4826298166860129077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/4826298166860129077'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2009/06/apb-looking-for-good-developer-to-hire.html' title='APB: Looking for a good developer to hire.'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-9041359553587799698</id><published>2009-03-15T20:26:00.000-07:00</published><updated>2009-03-15T20:31:00.279-07:00</updated><title type='text'>Sleep!?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Pk1UAIpsAmo/Sb3H2Gr5uaI/AAAAAAAAACM/p7c1cQSovpM/s1600-h/0297-Alanna+Stretching.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_Pk1UAIpsAmo/Sb3H2Gr5uaI/AAAAAAAAACM/p7c1cQSovpM/s200/0297-Alanna+Stretching.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Why is it so hard to get a good night sleep?&amp;nbsp; Besides kids waking up in the middle of the night, I have the hardest time falling asleep.&amp;nbsp; I can't take any significant sleeping medication because I'm on-call 24/7 (so if I get a call from work at 3:00am, I have to jump up and take care of it).&lt;br /&gt;&lt;br /&gt;My inability to get to the sleepy state is great for pulling all-nighters when a server fails and not falling asleep on long car trips, but the rest of the time it is a huge obstacle to ever feeling rested.&lt;br /&gt;&lt;br /&gt;Any suggestions?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-9041359553587799698?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/9041359553587799698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=9041359553587799698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/9041359553587799698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/9041359553587799698'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2009/03/sleep.html' title='Sleep!?'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Pk1UAIpsAmo/Sb3H2Gr5uaI/AAAAAAAAACM/p7c1cQSovpM/s72-c/0297-Alanna+Stretching.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-724772270003320912</id><published>2009-02-08T21:11:00.000-08:00</published><updated>2009-02-08T21:13:12.695-08:00</updated><title type='text'>A good quote from my primary lesson today.</title><content type='html'>When the Lord commands, do it.&lt;br /&gt;&lt;br /&gt;~ Joseph Smith&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-724772270003320912?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/724772270003320912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=724772270003320912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/724772270003320912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/724772270003320912'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2009/02/good-quote-from-my-primary-lesson-today.html' title='A good quote from my primary lesson today.'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-6609075367470929183</id><published>2009-02-08T19:58:00.001-08:00</published><updated>2009-02-08T20:58:44.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Where did Nathan go?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Pk1UAIpsAmo/SY-t8CjLsrI/AAAAAAAAABs/QDKBsgBEvVc/s1600-h/business-school.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_Pk1UAIpsAmo/SY-t8CjLsrI/AAAAAAAAABs/QDKBsgBEvVc/s200/business-school.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I was doing so good.&amp;nbsp; Then wham!&amp;nbsp; I'm gone for awhile.&amp;nbsp; What happened?&amp;nbsp; I don't think anyone reads this thing, but since I'm mostly doing this silly blog for myself I might as well explain what happened.&lt;br /&gt;&lt;br /&gt;Pretty much the opposite of the recession happened at work at the end of September.&amp;nbsp; I work in computer security.&amp;nbsp; In the financial sector.&amp;nbsp; For some reason the big...organizations...are really getting serious stemming their losses from...sub-organizations...getting hacked.&amp;nbsp; So one of those...organizations...decided they liked our company's security services enough that they sent 600,000...sub-organizations...notices that they had to come to our company and sign up for security services or be assessed a monthly fine.&lt;br /&gt;&lt;br /&gt;Sounds great, no?&amp;nbsp; It is!&amp;nbsp; BUT, they didn't really think the numbers through and sent the notices out over 10 calendar days.&amp;nbsp; Ya, 60,000 organizations per calendar day (more on Mondays?&amp;nbsp; Mail's not delivered on Sundays...) get notices.&amp;nbsp; We started getting over 5,000 calls per day.&amp;nbsp; We started hiring, and hiring, and leasing new office space, and hiring, and leasing, and hiring, and provisioning.&amp;nbsp; In 60 days we went from an ~80 employee company to a ~225 employee company.&amp;nbsp; And I was in charge of getting the office space, provisioning the related network, phone, computer, server, etc. equipment for every single one of those new employees.&lt;br /&gt;&lt;br /&gt;I've never worked so many 80-, 90-hour weeks in a row in my life.&amp;nbsp; By Christmas things were pretty normalish again.&amp;nbsp; But the company is different.&amp;nbsp; We now occupy three buildings instead of one.&amp;nbsp; I don't even know everyone's face any more.&amp;nbsp; But business is good!&amp;nbsp; That's a blessing in these times.&amp;nbsp; We're providing a lot of employment for our local community too.&lt;br /&gt;&lt;br /&gt;I have three &lt;b&gt;extra&lt;/b&gt; months of projects that have piled up, though...(sigh).&amp;nbsp; To handle it, my boss lent me a copy of "Get Things Done" and I bought OmniFocus both for my desktop and my new iPhone (!!!) to try to get things organized.&amp;nbsp; Using an actual organizition tool, I discovered that (1) my list of to-do's is more humongous than I thought, (2) I spend 80-90% of my time on stuff that's not on my lists, and (3) the deadlines I set for myself for the big stuff on my list are completely unrealistic.&lt;br /&gt;&lt;br /&gt;So, regarding #1, my list is stinking huge! &amp;nbsp; The tools help with that.&amp;nbsp; I've spent hours and hours putting to-do items into OmniFocus.&amp;nbsp; I've got all the big items, and &lt;i&gt;most&lt;/i&gt; of the little items.&amp;nbsp; I have about 50 emails left in my inbox to go through (down from over 700!) and a few dozen bugzilla items to go through.&amp;nbsp; Most of those will end up being small tasks to add to the lists.&lt;br /&gt;&lt;br /&gt;Of #2, I've been training some of my Ops guys to take over the routine stuff that takes my time.&amp;nbsp; Phone provisioning being the biggest one.&amp;nbsp; The more I can train my guys and push responsibility for things down to them, the better it will be for the whole organization.&amp;nbsp; I stop being a bottle-neck, and we also lower our bus-factor.&amp;nbsp; I can actually work on the projects that make a strategic difference, instead of day-to-day-keep-the-car-running stuff.&amp;nbsp; Not to mention that my guys become more valuable the more they learn!&amp;nbsp; Eventually, I'll be able to start pushing the strategic stuff down to them as well.&amp;nbsp; Unfortunately, there will never be a time when 100% of my time is spent on things on the list.&amp;nbsp; Too much of my job consists of things that can't be foreseen (the phone server hard drive died after only two months??&amp;nbsp; 600,000 people are all calling us WHEN?)&amp;nbsp; But I think it's reasonable to expect to be able to spend ~ 80% of my time on the list on normal days.&lt;br /&gt;&lt;br /&gt;For #3, practice makes perfect!&amp;nbsp; Now that I'm actually using a tool to set due dates on my projects, I can see whether I hit them or not and adjust my expectations.&amp;nbsp; It helps when you're not trying to keep 300 projects and their due dates in your head.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-6609075367470929183?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/6609075367470929183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=6609075367470929183' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6609075367470929183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6609075367470929183'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2009/02/where-did-nathan-go.html' title='Where did Nathan go?'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Pk1UAIpsAmo/SY-t8CjLsrI/AAAAAAAAABs/QDKBsgBEvVc/s72-c/business-school.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-5335167208667605987</id><published>2008-09-28T14:03:00.000-07:00</published><updated>2009-02-08T20:59:57.384-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drm'/><category scheme='http://www.blogger.com/atom/ns#' term='spore'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Spore finally works (aka DRM = Epic Fail)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Pk1UAIpsAmo/SN_xWEEwqBI/AAAAAAAAABk/Zq3EDH5oFwI/s1600-h/Curly+%282%29.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Pk1UAIpsAmo/SN_xWEEwqBI/AAAAAAAAABk/VmCBXx_8Fd4/s400-R/Curly+%282%29.png" /&gt;&lt;/a&gt;&lt;/div&gt;After nearly three weeks of very slow back-and-forth with EA's online tech support, they finally indicated that they weren't going to do anything about the fact that my CD key had been pirated before I bought the physical game (either that or EA printed more than one of the same key).&amp;nbsp; Either way, EA "helpful" support can be summed up in this line of theirs:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;"The game is already register with account "&lt;a href="mailto:tkth_yay@yahoo.com"&gt;tkth_yay@yahoo.com&lt;/a&gt;". Please login using this account and its password. (EARepVladimir)"&lt;/div&gt;&lt;br /&gt;Ya, not my email.&amp;nbsp; I told them so and they basically responded "too bad."&amp;nbsp; So I went back to Wal-Mart where I bought it and exchanged it for a new one with a new key (because EA refused to close the other guy's account OR issue me a new key).&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Then I spent nearly &lt;b&gt;FOUR HOURS&lt;/b&gt; trying to find out how to change the license key on my installation without losing all my offline creations.&amp;nbsp; Google failed.&amp;nbsp; EA support failed.&amp;nbsp; Forums &lt;a href="http://forum.spore.com/jforum/posts/list/5849.page"&gt;finally worked.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have not, do not, and will not buy anything other than Spore from EA while they keep up this draconian, non-functional DRM.&amp;nbsp; Spore is the single exception, because there simply isn't another game like it.&amp;nbsp; If there was, I wouldn't buy Spore either.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DRM = EPIC FAIL&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-5335167208667605987?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/5335167208667605987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=5335167208667605987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/5335167208667605987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/5335167208667605987'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/09/spore-finally-works-aka-drm-epic-fail.html' title='Spore finally works (aka DRM = Epic Fail)'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Pk1UAIpsAmo/SN_xWEEwqBI/AAAAAAAAABk/VmCBXx_8Fd4/s72-Rc/Curly+%282%29.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-6143925676722350248</id><published>2008-09-15T09:07:00.000-07:00</published><updated>2009-02-08T20:59:42.870-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spore'/><title type='text'>Spore</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_Pk1UAIpsAmo/SM6JFA_1UAI/AAAAAAAAABc/AV2EZTp4lkk/s1600-h/Picture+1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Pk1UAIpsAmo/SM6JFA_1UAI/AAAAAAAAABc/7TWKnJ_Ol0g/s320-R/Picture+1.png" /&gt;&lt;/a&gt;I bought spore.&amp;nbsp; It's really fun, despite the fact that it runs very poorly on the mac.&amp;nbsp; Even at 1024x768 with all the detail set to the lowest settings, there tends to be a lot of lag, visual artifacts, and crashes.&amp;nbsp; But I'll stick it out, if only to cast my vote for games on the Mac (well, and it's still a fun game, and it doesn't crash as much if you restart it every hour or so).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-6143925676722350248?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/6143925676722350248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=6143925676722350248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6143925676722350248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6143925676722350248'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/09/spore.html' title='Spore'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Pk1UAIpsAmo/SM6JFA_1UAI/AAAAAAAAABc/7TWKnJ_Ol0g/s72-Rc/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-6547377479381615354</id><published>2008-09-03T08:26:00.000-07:00</published><updated>2008-09-03T11:55:48.777-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Overloaded</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_Pk1UAIpsAmo/SL7ctTD3vKI/AAAAAAAAABU/BsvoFwjUWyU/s1600-h/lg-large-smiley-stress-ball.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_Pk1UAIpsAmo/SL7ctTD3vKI/AAAAAAAAABU/Dmam8VIjQYk/s200-R/lg-large-smiley-stress-ball.jpg" /&gt;&lt;/a&gt;I've got a pile of projects from various sources that everybody seems to want done &lt;i&gt;yesterday&lt;/i&gt;, plus a lot of loose strings from past projects that still need to be tied up that nobody else even wants to understand, let alone allow time for.&amp;nbsp; In addition to that, the staff I manage has been decimated by the start of the new semester (college students), so I need to hire at least one more person to help pick up the slack there.&amp;nbsp; I get up early in the mornings to exercise with my little brother-in-law.&amp;nbsp; After work is family time and a struggle to get to bed at a decent hour.&amp;nbsp; I get no lunch break half the time.&amp;nbsp; I'm really tired.&amp;nbsp; I think I'm overloaded.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-6547377479381615354?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/6547377479381615354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=6547377479381615354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6547377479381615354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6547377479381615354'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/09/overloaded.html' title='Overloaded'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Pk1UAIpsAmo/SL7ctTD3vKI/AAAAAAAAABU/Dmam8VIjQYk/s72-Rc/lg-large-smiley-stress-ball.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-4003631923814866163</id><published>2008-08-31T20:28:00.000-07:00</published><updated>2008-09-03T11:54:13.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Facebook</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_Pk1UAIpsAmo/SLtjFN5s4MI/AAAAAAAAABM/GZn4707IwzI/s1600-h/Picture+1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Pk1UAIpsAmo/SLtjFN5s4MI/AAAAAAAAABM/nLmN921cLpo/s320-R/Picture+1.png" /&gt;&lt;/a&gt;My little-brother-in-law, Jonathan, is staying with us for a few months before he goes on &lt;a href="http://mormon.org/mormonorg/eng/basic-beliefs/membership-in-the-church/missionary-work"&gt;his mission&lt;/a&gt;.&amp;nbsp; He's not really into computers, except for Facebook.&amp;nbsp; I've never really looked into the whole myspace/twitter/facebook/i'm-not-into-computers-but-i'm-a-social-butterfly thing, but he's so engrossed in it, I decided to try it out.&amp;nbsp; So far, I'm impressed by the responsiveness of the site and the nice clean layout of their introduction pages.&amp;nbsp; I've tried the linked-in thing, without any meaningfull results (though it may be useful for job searching if I ever need that sort of thing)--perhaps facebook will be more engaging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-4003631923814866163?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/4003631923814866163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=4003631923814866163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/4003631923814866163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/4003631923814866163'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/08/facebook.html' title='Facebook'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Pk1UAIpsAmo/SLtjFN5s4MI/AAAAAAAAABM/nLmN921cLpo/s72-Rc/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-6472565120800647042</id><published>2008-08-08T12:56:00.000-07:00</published><updated>2008-09-03T11:54:48.897-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>It's all about the RAM</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Pk1UAIpsAmo/SJyp1eNUeCI/AAAAAAAAABE/1M_QNF0LFGY/s1600-h/fbdimm2.png" imageanchor="1" style="background-color: transparent; border: 0pt none; clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_Pk1UAIpsAmo/SJyp1eNUeCI/AAAAAAAAABE/ZvNjFBiwGac/s200-R/fbdimm2.png" style="border: 0pt none;" /&gt;&lt;/a&gt;&lt;/div&gt;At work lately I've been profiling five servers that we bought last fall.&amp;nbsp; We spec'd them pretty high.&amp;nbsp; They each have &lt;b&gt;eight&lt;/b&gt; 2.66Ghz cores and 4GB RAM.&amp;nbsp; We paid an extra ~$500-$1000 for those processors at the time, as compared to a 4-core setup, or an 8-core setup at lower clock speeds.&amp;nbsp; The thinking was that we wanted them to be able to handle high loads.&lt;br /&gt;&lt;br /&gt;Unfortunately, it turns out that the tasks that these servers perform are way more memory-intensive than CPU intensive.&amp;nbsp; Since each task takes about an average of 4% of &lt;i&gt;one &lt;/i&gt;CPU and an average max of 80MB RAM, we can do about 50 simultaneous tasks before we start hitting swap space, and we're only running about 20% overall processor usage.&lt;br /&gt;&lt;br /&gt;But RAM is cheap!&amp;nbsp; Today I went out and ordered 60GB of RAM (sixty &lt;b&gt;gigabytes!&lt;/b&gt;) in the form of 30x2GB FB-DIMMS for less than $3,500 with tax and overnight shipping included.&amp;nbsp; That's enough for each of the six RAM slots on each of the five servers to be filled, leaving each server with 12GB RAM.&lt;br /&gt;&lt;br /&gt;On a related note, I went and got 4GB of RAM for my MacBook Pro for only $100.&amp;nbsp; Love it!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Now if only I had somewhere to use 20x1GB FB-DIMMs...&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-6472565120800647042?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/6472565120800647042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=6472565120800647042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6472565120800647042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6472565120800647042'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/08/its-all-about-ram.html' title='It&apos;s all about the RAM'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Pk1UAIpsAmo/SJyp1eNUeCI/AAAAAAAAABE/ZvNjFBiwGac/s72-Rc/fbdimm2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-5765250112898286694</id><published>2008-07-30T11:00:00.000-07:00</published><updated>2009-02-08T21:06:34.759-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rumors'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>iPod Nano Touch</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://bp2.blogger.com/_Pk1UAIpsAmo/SJCsRGdozaI/AAAAAAAAAAs/ttAiECC3bzg/s1600-h/nano-touch-mockup.png" imageanchor="1" style="background-color: transparent; border: 0pt none; margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://bp2.blogger.com/_Pk1UAIpsAmo/SJCsRGdozaI/AAAAAAAAAAs/JVruXrSnJ0E/s400-R/nano-touch-mockup.png" style="border: 0pt none;" /&gt;&lt;/a&gt;&lt;/div&gt;After reading &lt;a href="http://www.macrumors.com/2008/07/30/next-generation-ipod-nano-to-be-taller/"&gt;this Macrumors post&lt;/a&gt; about someone's idea for a taller iPod nano, I said to myself "Oh give me a break.&amp;nbsp; They're not going to copy the Zune.&amp;nbsp; If anything, they'll go more innovative like they have with the rest of the iPods."&amp;nbsp; What does that mean?&amp;nbsp; iPod nano touch.&amp;nbsp; So here's the mockup.&amp;nbsp; (You should really click on the picture to see it in full size!)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Feb 2009) Update: &lt;/b&gt;Ya, I was wrong.&amp;nbsp; They went with the taller version of the nano like the rumor said.&amp;nbsp; BUT!&amp;nbsp; The screen rotates when you turn it horizontal.&amp;nbsp; Looks sorta like my mockup with a dial on the side.&amp;nbsp; :-)&amp;nbsp; Oh well, I wouldn't have bought a nano touch anyway -- I love my new iPhone too much!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-5765250112898286694?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/5765250112898286694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=5765250112898286694' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/5765250112898286694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/5765250112898286694'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/ipod-nano-touch.html' title='iPod Nano Touch'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_Pk1UAIpsAmo/SJCsRGdozaI/AAAAAAAAAAs/JVruXrSnJ0E/s72-Rc/nano-touch-mockup.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-1007657365573144348</id><published>2008-07-29T19:09:00.000-07:00</published><updated>2008-07-29T19:17:32.918-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twisted'/><category scheme='http://www.blogger.com/atom/ns#' term='friends'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Duncan goes free...</title><content type='html'>&lt;div class="separator" style="text-align: center; clear: both;"&gt;&lt;a href="http://bp2.blogger.com/_Pk1UAIpsAmo/SI_OWb20SrI/AAAAAAAAAAk/yKasfn7IPnE/s1600-h/wyoming-rocky-mountains.jpg" imageanchor="1" style="border: 0pt none ; background-color: transparent; clear: left; margin-bottom: 1em; float: left; margin-right: 1em;"&gt;&lt;img src="http://bp2.blogger.com/_Pk1UAIpsAmo/SI_OWb20SrI/AAAAAAAAAAk/FIE-0vrjktk/s200-R/wyoming-rocky-mountains.jpg" style="border: 0pt none ;" /&gt;&lt;/a&gt;&lt;/div&gt;Duncan McGreggor, whom I met up with at &lt;a href="http://en.oreilly.com/oscon2008/public/content/home"&gt;OSCON&lt;/a&gt; 2008, &lt;a href="http://oubiwann.blogspot.com/2008/07/new-directions.html"&gt;has quit his job at Divmod and is going camping in the Rocky Mountains&lt;/a&gt; for awhile.&amp;nbsp; Good luck, Duncan!&amp;nbsp; Duncan was COO at &lt;a href="http://divmod.org/trac"&gt;Divmod&lt;/a&gt;, and heavily involved in &lt;a href="http://twistedmatrix.com/trac/"&gt;Twisted&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-1007657365573144348?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/1007657365573144348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=1007657365573144348' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/1007657365573144348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/1007657365573144348'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/duncan-goes-free.html' title='Duncan goes free...'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_Pk1UAIpsAmo/SI_OWb20SrI/AAAAAAAAAAk/FIE-0vrjktk/s72-Rc/wyoming-rocky-mountains.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-5673234720305942827</id><published>2008-07-28T19:35:00.000-07:00</published><updated>2008-09-03T11:55:10.181-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='friends'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>The Hard Drive is Dead -- Long Live the Solid-State Drive!</title><content type='html'>I've been telling my friends for some months now that hard drives are on the way out, to be replaced by solid-state drives (SSDs).&amp;nbsp; I've had no doubts about &lt;i&gt;if&lt;/i&gt; that would happen, just &lt;i&gt;when&lt;/i&gt;.&amp;nbsp; It's time.&amp;nbsp; The moment I saw &lt;a href="http://it.slashdot.org/article.pl?sid=08/07/09/1729255"&gt;this article&lt;/a&gt; about the announcement of 128GB and 256GB SSDs, I officially considered hard drives as dead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-5673234720305942827?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/5673234720305942827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=5673234720305942827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/5673234720305942827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/5673234720305942827'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/hard-drive-is-dead-long-live-solid.html' title='The Hard Drive is Dead -- Long Live the Solid-State Drive!'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-2046630595004507691</id><published>2008-07-27T18:54:00.000-07:00</published><updated>2008-07-27T19:03:08.155-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livetype'/><category scheme='http://www.blogger.com/atom/ns#' term='homevideos'/><category scheme='http://www.blogger.com/atom/ns#' term='idvd'/><category scheme='http://www.blogger.com/atom/ns#' term='finalcutexpress'/><title type='text'>Home Videos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_Pk1UAIpsAmo/SI0o0mCO2BI/AAAAAAAAAAM/6p5sKVUgqUk/s1600-h/fce.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_Pk1UAIpsAmo/SI0o0mCO2BI/AAAAAAAAAAM/6p5sKVUgqUk/s320/fce.png" alt="" id="BLOGGER_PHOTO_ID_5227879626475231250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've really gotten into working on Home Videos lately.  Each Sunday, I've worked on getting more home videos off of tape, processed with Final Cut Express + LiveType, and then put on a DVD with iDVD.  Over the course of 3 years, several revisions of most of the software and one complete OS revision, the hardest part has always, &lt;span style="font-weight: bold;"&gt;always&lt;/span&gt; been iDVD.  At this point, I no longer customize anything with iDVD.  I simply use the default theme, import the movie file from FCE, and cross my fingers.  I find that I can get a lot done if I ignore iDVD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-2046630595004507691?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/2046630595004507691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=2046630595004507691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/2046630595004507691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/2046630595004507691'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/home-videos.html' title='Home Videos'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_Pk1UAIpsAmo/SI0o0mCO2BI/AAAAAAAAAAM/6p5sKVUgqUk/s72-c/fce.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-8411469127905697581</id><published>2008-07-26T20:46:00.000-07:00</published><updated>2008-07-26T21:38:13.360-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Cocoa</title><content type='html'>I'm working through Aaron Hillegass's &lt;span style="font-style: italic;"&gt;Cocoa Programming for Mac OS X, Third Edition&lt;/span&gt;.  I went through Chapter 13 tonight (making preference panels show up - yay!).  Cocoa is extremely interesting.  On the one hand, it's still annoyingly low-level (since it's C), and yet it's remarkably high-level (since it's Objective C and has a ton of huge libraries) while still allowing you to shoot yourself in the foot, C-style [dang pointers].  It's still a bit weird to have an error crash your code &lt;span style="font-style: italic;"&gt;and not give you a descriptive traceback indicating the line that the error occurred on and a best guess of what went wrong.&lt;/span&gt;  Instead, a gdb window pops up with the &lt;span style="font-weight: bold;"&gt;assembly command&lt;/span&gt; that crashed.  Makes you appreciate Python and TCL a bit more...&lt;br /&gt;&lt;br /&gt;I've heard many complaints about Xcode from Java people who have super fancy IDE's.  My usual "IDE" is called "Emacs," so I really haven't seen anything to complain about.  Xcode seems huge and fancy and featureful to me so far, compared to emacs.  The fact that many of the emacs keyboard shortcuts work in Xcode also helps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-8411469127905697581?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/8411469127905697581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=8411469127905697581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/8411469127905697581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/8411469127905697581'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/cocoa.html' title='Cocoa'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-573338887516231129</id><published>2008-07-25T20:57:00.000-07:00</published><updated>2008-07-25T21:01:50.929-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon2008'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Portland</title><content type='html'>Portland was interesting.  There were lots of trees -- lots of evergreen trees, in fact.  I had heard that Oregon was very green, but it didn't occur to me that so much of the green would be needles!  It was in the 70's with nice weather the whole time I was there.  I was interesting to return to Utah where a dust storm was kicking up with 95-degree winds at 8:00pm...which isn't that typical of Utah, but not surprising for nearly-August.&lt;br /&gt;&lt;br /&gt;For everybody I met at OSCON this year (Mike, John, Duncan, Miguel, speakers, vendor-people) -- thanks for making it a great time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-573338887516231129?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/573338887516231129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=573338887516231129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/573338887516231129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/573338887516231129'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/portland.html' title='Portland'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-475462896987394994</id><published>2008-07-25T09:40:00.000-07:00</published><updated>2008-07-25T12:25:29.595-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon2008'/><title type='text'>OSCON Impressions (Friday)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Tim Bray&lt;/span&gt; - &lt;span style="font-style: italic;"&gt;A medley of languages?&lt;/span&gt;&lt;br /&gt;- Lots of programming language usage graphs&lt;br /&gt;- Did an interesting "raise of hands" survey of "what are you using now?" vs. "would you in an ideal world?" for a bunch of languages.  Only &lt;span style="font-weight: bold;"&gt;Python&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Ruby&lt;/span&gt; had the same or more number of hands for the "ideal world" part.&lt;br /&gt;- A bit of light &lt;span style="font-weight: bold;"&gt;PHP&lt;/span&gt; bashing (yes you can use it, but boy the code tends to be lousy)&lt;br /&gt;- Some heavier &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt; bashing, but a nod to it being big and huge and widely used in enterprise&lt;br /&gt;- "&lt;span style="font-weight: bold;"&gt;C&lt;/span&gt; is flawless" if you want a language that represents actual machine code.  Points out that pretty much all other languages and many big projects are written in C.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;OCaml&lt;/span&gt; is really fast.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Erlang&lt;/span&gt; is really robust and parallel, and very recursive and hard to wrap your brain around.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Scala&lt;/span&gt; is...a Java...something.  Used by twitter.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Fan&lt;/span&gt; runs on JVM and .Net...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Jeremy Ruston&lt;/span&gt;,  head of open source innovation at British Telecom&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Learning from Airports&lt;/span&gt;&lt;br /&gt;- An airport represents a multi-sided, open platform.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;single sign on&lt;/li&gt;&lt;li&gt;participants trust the platform (shops will accept your boarding pass as id)&lt;/li&gt;&lt;li&gt;Common standards for docking airplanes&lt;/li&gt;&lt;li&gt;Common signs in airplanes (to find the bathroom, for example)&lt;/li&gt;&lt;/ul&gt;- open source team tries to be very open and transparent&lt;br /&gt;- try to share everything that they do&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Q &amp;amp; A for all the above speakers&lt;/span&gt;&lt;br /&gt;Very boring.  All questions were hostile and aimed at the microsoft guy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clutter&lt;/span&gt;, an OpenGL GUI toolkit&lt;br /&gt;- runs on both OpenGL and OpenGL ES - with layer called COGL.&lt;br /&gt;- intended for mobile devices&lt;br /&gt;- not intended for games&lt;br /&gt;- manipulate 2d surfaces in 3d space&lt;br /&gt;- discussions of "actors" - the basic building block in COGL&lt;br /&gt;- you put actors in "scenegraphs" as children.  Children can have children too.  Whenever you manipulate something, its children are manipulated the same way&lt;br /&gt;- container - more structured way of defining child relationships&lt;br /&gt;- quick demo of using clutter in python&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Damian Conway&lt;/span&gt;,&lt;span style="font-style: italic;"&gt; The Twilight Perl&lt;/span&gt;&lt;br /&gt;- starts out with a bunch of jokes about how perl is complicated and you can do tons of stuff&lt;br /&gt;You can't (but he shows examples of how to do all of the supposedly impossible stuff)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;have comments and code before the shebang line&lt;br /&gt; &lt;/li&gt;&lt;li&gt;leave the sigil off a variable&lt;/li&gt;&lt;li&gt;go wrong using fat commas instead of a plain one&lt;/li&gt;&lt;li&gt;access the $var outside of the "for my $var" loop&lt;/li&gt;&lt;li&gt;leave the parens off a for loop&lt;/li&gt;&lt;li&gt;have a qw without the qw&lt;/li&gt;&lt;li&gt;many more examples....but I'm not even a perl user, so I'm going to stop here.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; I'm so glad I don't use perl!  Sheesh.  Very funny, though.  Damien's a great presenter.&lt;br /&gt;&lt;br /&gt;That's it for OSCON 2008!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-475462896987394994?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/475462896987394994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=475462896987394994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/475462896987394994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/475462896987394994'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/oscon-impressions-friday.html' title='OSCON Impressions (Friday)'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-1123823772268488554</id><published>2008-07-24T22:15:00.000-07:00</published><updated>2008-07-25T12:45:43.079-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twisted'/><category scheme='http://www.blogger.com/atom/ns#' term='pyglet'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>txpyglet</title><content type='html'>Some people expressed interest in my (brain-dead) method of integrating pyglet and twisted.  I ripped out the most generic parts of my in-house commercial app and dubbed it "txpyglet."&lt;br /&gt;&lt;br /&gt;Here's a little demo of it (blogspot shrunk it, get the "big" 5MB version &lt;a href="http://stocksfam.com/txpyglet.mov"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-ea43bfb4e4e29244" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt6.googlevideo.com/videoplayback?id%3Dea43bfb4e4e29244%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330903346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D559A5905EB894991FB6A280BC43D63F2040DEAE1.84DB08F8ACB704BB1E9DE27ED618456F471F10F0%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dea43bfb4e4e29244%26offsetms%3D5000%26itag%3Dw160%26sigh%3DIJ8tpaAH5whlBOB2NaIZEjp0bTw&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt6.googlevideo.com/videoplayback?id%3Dea43bfb4e4e29244%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330903346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D559A5905EB894991FB6A280BC43D63F2040DEAE1.84DB08F8ACB704BB1E9DE27ED618456F471F10F0%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dea43bfb4e4e29244%26offsetms%3D5000%26itag%3Dw160%26sigh%3DIJ8tpaAH5whlBOB2NaIZEjp0bTw&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Here's the real meat.  In pyglet, you simply subclass pyglet.window.Window and give it a pyglet 1.0-style run() method.  When your app actually starts, use twisted's coiterate() method to coiterate with that run() method.  That's pretty much it.  It's clearer in the code.  Let me say right now:  Yes, I know pyglet blocks twisted for an indeterminate amount of time each time control is passed to it.  It still works for us simpletons :)&lt;br /&gt;&lt;br /&gt;You can &lt;a href="http://stocksfam.com/nathan/txpyglet.zip"&gt;downlod txpyglet here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-1123823772268488554?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=ea43bfb4e4e29244&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/1123823772268488554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=1123823772268488554' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/1123823772268488554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/1123823772268488554'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/txpyglet.html' title='txpyglet'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-2421702111715674923</id><published>2008-07-24T17:59:00.000-07:00</published><updated>2008-07-25T11:39:14.678-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon2008'/><title type='text'>OSCON Impressions (Thursday)</title><content type='html'>Thursday was crazy.  Work kept interrupting, and actually made me miss one session block entirely.  I struck out at all my session choices (boooring) except the morning "State of the Lightning" talks.&lt;br /&gt;&lt;br /&gt;More notable, I met up with Duncan McGreggor (&lt;a href="http://oubiwann.blogspot.com/"&gt;oubiwann&lt;/a&gt;) of Twisted fame.  We had a good chat and missed Mark Shuttleworth's "software development methods" session because we were &lt;span style="font-style: italic;"&gt;one minute late&lt;/span&gt; and they &lt;span style="font-weight: bold;"&gt;put him in the smallest room in the whole convention center&lt;/span&gt;.  It had a capacity of around 30 seats give or take a dozen.  Sheesh.  And yet they gave some awful speakers with boring subjects huge 500-seat ballrooms.  Figures.&lt;br /&gt;&lt;br /&gt;I showed Duncan my twisted+pyglet project, and he talked it up in #twisted, and some folks actually sounded interested.  We'll see if I can't get a post in about that.&lt;br /&gt;&lt;br /&gt;There was one other thing worth mentioning.  A really profane guy from New Zealand (whose name I missed) paradoxically gave a great presentation about teaching kids programming skills.  It boiled down to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Scratch&lt;/span&gt; is a cool little kids-programming-environment that lets kids script things&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Lecturing kids doesn't work&lt;/span&gt; partially because they have 2-minute attention spans&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Pair programming (you+kid) can work&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;Follow the interest&lt;/span&gt;&lt;/span&gt; of the kids&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Typing is tough&lt;/span&gt; for kids&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Math is tough&lt;/span&gt; for kids&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Teachers need teaching&lt;/span&gt; about computers in many (most?) cases&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;You should volunteer&lt;/span&gt; your time at schools to help with this stuff.  Don't expect pay.  The work is the reward.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-2421702111715674923?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/2421702111715674923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=2421702111715674923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/2421702111715674923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/2421702111715674923'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/oscon-impressions-thursday.html' title='OSCON Impressions (Thursday)'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-6151403288335787524</id><published>2008-07-24T17:45:00.000-07:00</published><updated>2008-07-25T20:53:51.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oscon2008'/><title type='text'>OSCON Impressions (Wednesday)</title><content type='html'>Wow.  It's really neat to see so many people in person that I've only ever read about before!  Tim O'Reilly, Larry Wall, Keith Packard, etc.  Here's my impressions:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tim O'Reilly's Keynote&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Boring for the first part (sorry, Tim).  The interview of the two MySQL guys was much more interesting.  A lady gave a 'no secret software for public voting/sensing/etc. hardware' presentation which was decent.  I agree.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Keith Packard - state of X.org&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;They're making tons of progress (finally!), but boy X is still a mess.  I stopped using Linux on the desktop in 2004, but it's nice to see them actually making progress after the whole XFree86 forking thing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Josh Berkus - PostgreSQL, how to secure your data - whole picture.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Discussion of security in depth. Airplane analogies (perimeter-security-only is stupid).  You need multilayer security.  His threat vectors are worth noting:&lt;br /&gt;&lt;br /&gt;Four Primary Threat Vectors:&lt;br /&gt;1. sql injection&lt;br /&gt;2. direct connection&lt;br /&gt;3. webserver compromise&lt;br /&gt;4. staff access&lt;br /&gt;&lt;br /&gt;Personally, I'd put "direct connection" at the bottom.  In my experience scanning our customers, they rarely make that mistake any more.&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-style: italic;"&gt;most interesting&lt;/span&gt; part was when he went over how he often makes &lt;span style="font-weight: bold;"&gt;shadow&lt;/span&gt; tables in a separate "schema" that regular db users can't access, and then he adds triggers to all the regular tables so that on INSERT or UPDATES the row is copied to the shadow table first along with a timestamp and the db user.  Nice...instant audit log!  I need to try that at work on some tables...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Alex Martelli - Code Reviews for Fun and Profit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This presentation was quite a bit more interesting than I expected.  He went through about a thousand points, of which I only randomly remembered to type in:&lt;br /&gt;&lt;br /&gt;- always review code, like brushing teeth&lt;br /&gt;- there should be someone who's supposed to review all code for some project/area&lt;br /&gt;- don't waste human time on computer tasks ("no tabs in source code", "max line length", etc.)&lt;br /&gt;- code should be clear and readable&lt;br /&gt;- don't repeat yourself&lt;br /&gt;- use meaningful and consistent names&lt;br /&gt;- appropriate info for errors and logs&lt;br /&gt;- check corner cases (test rare error conditions, exceptions, etc.)&lt;br /&gt;- check for memory leaks&lt;br /&gt;- check for security issues&lt;br /&gt;- use version control&lt;br /&gt;- review the diff before you commit, if possible&lt;br /&gt;- don't review for longer than 60-90 minutes at a time, because after that time your reviewing quality plummets&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Stewart Smith, MySQL&lt;/span&gt;&lt;br /&gt;common mistakes that lead to data loss&lt;br /&gt;- did we open/write/close successfully.&lt;br /&gt;- not closing the file&lt;br /&gt;-  write/close/rename = FAIL --- write/fsync/close/rename = win&lt;br /&gt;- fsync() on os x doesn't sync!  What???  checking on this...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ben Ramsey, memcached&lt;/span&gt;&lt;br /&gt;- lots of discussion of how memcached works&lt;br /&gt;- memcached is slower than a direct connection from one web server to one database server&lt;br /&gt;- memcached is much slower when multiple web servers and multiple database servers are involved.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;I forgot to mention that at lunch, Miguel de Icaza and two of his friends[1]  sat down at my table and ate lunch with me.  He's a funny guy.  He introduced himself as "the guy who made Midnight Commander" and was constantly bantering back and forth with his friends.  He ranted a bit about how he's doesn't like his iPhone 3G because it doesn't have email search or physical buttons, so he's switching back to a blackberry.  It was fun to finally meet Miguel in person.  If you don't know, he started a couple of tiny, little, obscure projects like Gnome, Gnumeric, Mono, Ximian [the company--acquired by Novell].&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;[1] &lt;/span&gt;Neil? from Novell in Munich, Germany [but not German], and...Amy? from Coverity.  Someone correct me, I don't think I got their names right.  Also a nice guy named Jack sat at the table with us, but I don't know anything else about him.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-6151403288335787524?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/6151403288335787524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=6151403288335787524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6151403288335787524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/6151403288335787524'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/oscon-impressions-wednesday.html' title='OSCON Impressions (Wednesday)'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8335086927383366698.post-720639950378009495</id><published>2008-07-24T17:41:00.000-07:00</published><updated>2008-07-25T12:51:13.077-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Third Time's the Charm?</title><content type='html'>The biggest obstacle between me and blogging has always been the mechanics of actually constructing the blog (or choosing, installing, and using some program to do it for me).  Maybe if I just let Google's blogger to the heavy lifting, I'll actually get this to work.&lt;br /&gt;&lt;br /&gt;On to obstacle #2 -- finding the time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8335086927383366698-720639950378009495?l=nathanstocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nathanstocks.blogspot.com/feeds/720639950378009495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8335086927383366698&amp;postID=720639950378009495' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/720639950378009495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8335086927383366698/posts/default/720639950378009495'/><link rel='alternate' type='text/html' href='http://nathanstocks.blogspot.com/2008/07/third-times-charm.html' title='Third Time&apos;s the Charm?'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/10397863074809131428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_Pk1UAIpsAmo/SI0sI0W7ptI/AAAAAAAAAAY/wqzDFTtwI3I/S220/com.apple.user501pictureCache.png'/></author><thr:total>2</thr:total></entry></feed>
