<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feeds.feedburner.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-174871315057012202</atom:id><lastBuildDate>Thu, 24 Jul 2008 13:57:05 +0000</lastBuildDate><title>Coals [2] Newcastle</title><description>Telling the I.T. Community more about itself since 2007. We offer perspectives on the culture and art of all things computer-y.</description><link>http://blog.coals2newcastle.com/</link><managingEditor>noreply@blogger.com (Nate)</managingEditor><generator>Blogger</generator><openSearch:totalResults>83</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><geo:lat>40.718113</geo:lat><geo:long>-111.889386</geo:long><image><link>http://coals2newcastle.blogspot.com</link><url>http://farm2.static.flickr.com/1305/1128993225_98e2ba76f3.jpg?v=0</url><title>Coals[2]Newcastle RSS image</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Coals2Newcastle" type="application/rss+xml" /><feedburner:emailServiceId>1111224</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-8003307762923892060</guid><pubDate>Tue, 22 Jul 2008 22:20:00 +0000</pubDate><atom:updated>2008-07-22T16:48:53.158-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Meditation</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Rails</category><title>SVN vs. GIT: Why not jump into the battle?</title><description>So much has been said of this little battle that I can't help but put my oar in as well.&lt;br /&gt;
For those of you who don't worry about these things, SVN (subversion) and GIT are Source Code Management programs/systems/whatever. In a nutshell, they allow programmers to make sure they 1.) always have the latest version of a project their team is working on and 2.) are able to roll back to an older version if the new version turns out to be fatally flawed.&lt;br /&gt;
&lt;br /&gt;
The major difference between SVN and GIT is the nature of the "repository" or common storage that each uses.&amp;nbsp; SVN resides on a server that all team mates can get to, and they each check out a copy of the code, make their changes, and then commit their changes back to the repository when they're done.&amp;nbsp; GIT is the same, except each programmer checks out the entire repository and makes changes first to their local "clone" and then eventually merge those changes back to the central repository, where they are propagated to all the other team members.&lt;br /&gt;
&lt;br /&gt;
All this is good and fine, but from a user's perspective the differences are minimal.&amp;nbsp; What really matters is how easy it is to commit your changes.&lt;br /&gt;
&lt;br /&gt;
For some perspective we go to the best thing to come out of Microsoft: Code Complete 2nd Edition by Steve McConnell:&lt;br /&gt;
&lt;blockquote&gt;In mature technology environments—[SVN, for our purposes]—we benefit from a rich software development infrastructure. ...The tools are well documented in vendor literature, in third-party books and articles, and in extensive Web resources. Tools are integrated, so you can do [everything] from within a single environment. If you do run into problems, you can readily find quirks of the tools described in FAQs. Many consultants and training classes are also available.&lt;/blockquote&gt;And this holds true.&amp;nbsp; SVN is integrated into Eclipse (two or three different ways, Eclipse being what it is), Komodo, TextMate, and all the other big names in software development.&amp;nbsp; Ruby on Rails developers can use Capistrano to automatically upgrade their apps using SVN.&amp;nbsp; This means that I can be working in Komodo and when I'm happy with my code I press a button and Komodo handles the process of committing my changes; no command line, no mess.&amp;nbsp; If I'm using an IDE that doesn't support SVN &lt;cough&gt;Visual Studio&lt;/cough&gt; then you can use TortiseSVN on Windows to handle all your checkout/commit/change/switch/branch/tag etc. needs from the Explorer, with pretty icons to let you know the status of all your files from Windows itself.&amp;nbsp; Mac users can use Versions (in beta but pretty good) to get some of the same functionality.&lt;br /&gt;
&lt;br /&gt;
Returning to Mr. McConnell for the other side of the coin:&lt;br /&gt;
&lt;blockquote&gt;In early-wave environments—[GIT, for our purposes]—the situation is the opposite. Few ...choices are available, and those...tend to be buggy and poorly documented. Programmers spend significant amounts of time simply trying to figure out how the language works instead of writing new &lt;span&gt;code&lt;/span&gt;&lt;a href="" name="language products"&gt;&lt;/a&gt;. Programmers also spend countless hours working around bugs in the language products, underlying operating system, and other tools. Programming tools in early-wave environments tend to be primitive. ...Vendors revise their compiler version often, and it seems that each new version breaks significant parts of your &lt;span&gt;code&lt;/span&gt;&lt;a href="" name="so you"&gt;&lt;/a&gt;. Tools aren't integrated, and so you tend to work with different tools for UI, database, reports, and business logic. The tools tend not to be very compatible, and you can expend a significant amount of effort just to keep existing functionality working against the onslaught of compiler and library releases. If you run into trouble, reference literature exists on the Web in some form, but it isn't always reliable and, if the available literature is any guide, every time you encounter a problem it seems as though you're the first one to do so.&lt;/blockquote&gt;Grim, no?&amp;nbsp; Actually not really. Living on the edge can be fun, and there is often a very good reason that the current up-and-comer is an up-and-comer.&amp;nbsp; GIT's distributed methodolgy removes the single point of vulerablility that has plagued SVN, and may well repace SVN as the de-facto standard, just as SVN replaced CVS. (This article could just as well have been about Ruby being the new PHP, just as PHP is the new Perl, just as Perl is the new Awk...and so on. But I'm not nearly crazy enough to jump into the Rails/PHP/NetBeans/Coldfusion battle.) But for now switching to GIT means that there is no Komodo integration, primative Eclipse integration, (TextMate, of course, already has an excellent GIT bundle) and users of Visual Studio and other non-integrating platforms are forced back to the command line for all their actions. &amp;nbsp; More steps means more people forget to take those steps, which means that more people lose their work to midnight "it seemed like a good idea at the time" edits and hard disk failure.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
So what do you do?&amp;nbsp; Should we always wait until something is mature to use it?&amp;nbsp; No.&amp;nbsp; New things often have very good reasons to exist, and we should learn them, even if only to keep ourselves from getting stagnant and sounding like &lt;a href="http://upload.wikimedia.org/wikipedia/commons/6/64/Wikimania_stallman_keynote2.jpg"&gt;Richard Stallman&lt;/a&gt;.&amp;nbsp; But if you are coming up on a deadline (like I am now) then this might not be the exact right time to try to piece together a new CMS/IDE/OS combo.&lt;br /&gt;
&lt;br /&gt;
I mention this because my workplace just moved me, at long last, from a Windows XP system to an iMac, and I am doing a lot of system setup in the face of deadlines, and the wisdom of not doing exactly this is staring me in the face.&lt;br /&gt;
&lt;br /&gt;
Anyway, feel free to let me know what your favorite CMS is, and thanks! (Perforce users need not apply.)&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=fsXspJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=fsXspJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=h0X5HJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=h0X5HJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=5noo2j"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=5noo2j" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/342976960" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/342976960/svn-vs-git-why-not-jump-into-battle.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/07/svn-vs-git-why-not-jump-into-battle.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-5685016054520484069</guid><pubDate>Tue, 15 Jul 2008 22:03:00 +0000</pubDate><atom:updated>2008-07-15T17:12:02.787-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Storage</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">Amazon</category><title>How I Learned to Stop Worrying And Love The Web</title><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Okay, so here's something I've worried about: My photos.  I work with computers enough to know that catastrophic hard drive failure happens, and happens regularly.  Most of the stuff I have on my iMac at home isn't that critical.  Yes, I have a lot of programs, but I also have my license keys stored online and I can retrieve them and re-install them at will.  No big deal. And yes, I have some documents that I wouldn't want to lose, but documents are small and, once again, I have them backed up to a server online (okay, I have a .&lt;strike&gt;Mac&lt;/strike&gt; Mobile Me account.  Sue me.) so that's not a big problem. And even if I lose all my documents, It's once again not a big deal.&lt;/div&gt;
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;/div&gt;
The problem is the one irreplaceable directory on my computer: the one full of those pictures we have of our kids at birth, their first camping trip, etc.  No matter what I do, I can't re-create these pictures if they're lost.  &lt;br /&gt;
So like a good Mac user I bought an external hard drive when I bought Leopard, and Presto! Instant Time Machine!  Now if my computer hard drive dies, I still have all the pictures.  I'm safe!&lt;br /&gt;
But... What about, say, a fire? Or a thief that spends the time digging my Time Machine disk out of the place I hid it?  Or a really odd power surge? Or rabid hard-drive eating weasels?&lt;br /&gt;
&lt;br /&gt;
So once again I had a problem that was keeping me awake at nights.  Not for long, mind you, just a few seconds; just a small bit of psychic baggage on my soul.  I considered buying a bunch of DVDs to make periodic backups, but that gets expensive in a hurry, because if you want to be sure your data is safe you need to use DVD+R, not DVD+RW.&lt;br /&gt;
&lt;br /&gt;
Then I thought about getting a second external hard drive, doing monthly backups to that, then putting it in a safe place offsite somewhere, but that's a huge pain in the backside, so I probably wouldn't do it very religiously. Also, what if your house burns down when you have the offsite backup hard drive in the house?  Now  you're hosed again, so you should get a second offsite backup hard drive, and only have one backup hard drive in the house at a time. This road has no end, folks.  I read a book by a gentleman who had &lt;b&gt;seven&lt;/b&gt; hard drives to which he did backups, rotated into and out of his home, so he always had a backup or four offsite.&lt;br /&gt;
&lt;br /&gt;
The observant among you will remember that I said I have a .&lt;strike&gt;Mac&lt;/strike&gt; Mobile Me account. I also have around 20GB of pictures, and I don't know how much longer I want to pay Apple's prices for storage.  &lt;br /&gt;
&lt;br /&gt;
So, to recap: I have my almost-but-not-quite safe pictures on my hard drive and my Time Machine disk, and all of them up to two months ago on DVD's that are at my wife's mother's house. &lt;br /&gt;
&lt;br /&gt;
And then I discovered &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261" target="_blank"&gt;Amazon's S3 service&lt;/a&gt;. (&lt;a href="http://en.wikipedia.org/wiki/Amazon_S3" target="_blank"&gt;S3=Simple Storage Service&lt;/a&gt;)  Put simply, Amazon will let you store stuff on their servers for a certain amount.  Specifically, $.15/GB/month.  So for my 20GB of pictures, I would pay $3 a month, or $36/year.  Transfers in and out are ludicrously cheap as well, so to upload all my pictures at $.10/GB is $2.00 (Requests are $.17/GB for the first 10TB, less thereafter).&amp;nbsp; With this service, Amazon worries about having enough redundancy, getting larger hard drives as needed, etc. etc. etc. and all I worry about is sending my my $2 every month.&amp;nbsp; ( Or else they send out a creepy kid on a bike to &lt;i&gt;hunt you down, man!&lt;/i&gt;)&lt;br /&gt;
&lt;br /&gt;
So great, but I still needed a way to make sure I have my most current pictures stored at all times.  Mind you, apps like &lt;a href="http://www.panic.com/transmit/" target="_blank"&gt;Transmit&lt;/a&gt; (which I love) give you access to S3, but they aren't good auto-backup programs. &lt;br /&gt;
&lt;br /&gt;
Enter &lt;a href="http://www.jungledisk.com/" target="_blank"&gt;JungleDisk&lt;/a&gt;.  For $20 you get lifetime upgrades, and they provide a frontend that will do automatic scheduled backups to Amazon's S3, as well as allow you to mount your S3 "buckets" as a network disk. JungleDisk also encrypts all data that it stores, meaning that even if someone gets into your S3 account, if they don't use your JungleDisk username and password they can't access your files. They've created the application for all major platforms (Win/Mac/Lin), and provide a USB version that includes all three versions, so you can access your data from any computer with USB.&lt;br /&gt;
So, the price of peace of mind:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Second External Hard Drive:&lt;/b&gt;&lt;br /&gt;
$99 for a 500GB LaCie (or possibly $198 for two external drives)&lt;br /&gt;
Travel time+Gas: ~$25/year&lt;br /&gt;
Safe deposit box:~$50/year&lt;br /&gt;
&lt;b&gt;Total: ~$273 &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; Or:&lt;br /&gt;
&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;S3&lt;/b&gt;&lt;br /&gt;
Storage: ~$36/year&lt;br /&gt;
Transfer:$2&lt;br /&gt;
JungleDisk: $20&lt;br /&gt;
&lt;b&gt;Total: ~$58&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Kinda seemed like a no-brainer.&lt;br /&gt;
&lt;br /&gt;
One caveat: I have a slow (1.5Mb) DSL connection; so the initial transfer has taken (so far) 4 days, with probably one more day remaining.&amp;nbsp; Mind you, this is five days during which my wife and I have been using this computer just as we always do, web browsing/email/downloads and all.  Thank goodness for a stable OS, but still, be aware.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=UfwhUJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=UfwhUJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=ToGEsJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=ToGEsJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=wYBCkj"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=wYBCkj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/336526363" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/336526363/how-i-learned-to-stop-worrying-and-love.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/07/how-i-learned-to-stop-worrying-and-love.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-936332789611351677</guid><pubDate>Sun, 13 Jul 2008 14:00:00 +0000</pubDate><atom:updated>2008-07-13T08:00:00.170-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">nate</category><category domain="http://www.blogger.com/atom/ns#">meta</category><title>One Year of Carrying Coals</title><description>Wow. One year old today.  That's kinda cool.  It's been fun for me.  I hope it's worth it to you to keep my little blog in your feed reader.  Thanks for coming along for the ride!&lt;br /&gt;
In that one year (according to all my stat aggregates) I have been visited by a surprising number of people from India(Shukriya), Indonesia(Gum xia), Canada(Thanks), Norway(Tusen takk), The UK(cheers), Germany (Danke schön), and of course, the USA(hey, thanks).  Most of this is coming from searches, which is a huge turnaround because originally most of my traffic was people I told to "go visit my site. Please?" &lt;br /&gt;
Interestingly, more than &lt;i&gt;three times&lt;/i&gt; as many visitors to Coals[2]Newcastle use Firefox as Internet Explorer.&amp;nbsp; My most popular posts are things about Eclipse in general and Zend Studio for Eclipse in particular.&lt;br /&gt;
&lt;br /&gt;
Once again, thank you all for visiting. There's still a bunch to see.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=71GiRJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=71GiRJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=4w5veJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=4w5veJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=0lSYXj"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=0lSYXj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/334275850" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/334275850/one-year-of-carrying-coals.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/07/one-year-of-carrying-coals.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-6737019901621274710</guid><pubDate>Sat, 12 Jul 2008 19:00:00 +0000</pubDate><atom:updated>2008-07-12T13:00:00.731-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows</category><category domain="http://www.blogger.com/atom/ns#">Vista</category><category domain="http://www.blogger.com/atom/ns#">nate</category><category domain="http://www.blogger.com/atom/ns#">Apple</category><category domain="http://www.blogger.com/atom/ns#">Microsoft</category><title>"Vista Bullying" on Crazy Apple News</title><description>I try not to do this, but I've already said everything about this subject I could think of, so I'm just redirecting you to read my comments about Microsoft's "The Vista Bullying Stops Here" speech on &lt;a href="http://crazyapplenews.com/2008/07/vista-bullies/"&gt;crazyapplenews.com&lt;/a&gt;, my other blog.&amp;nbsp; As the name implies, it's a much more focused and much less factual blog than this little thing, but this particular article works, I think.&lt;br /&gt;
&lt;br /&gt;
Anyway, enjoy!&lt;br /&gt;
(&lt;span id="sample-permalink"&gt;&lt;a href="http://draft.blogger.com/tr_1215877021489"&gt;http://crazyapplenews.com/2008/07/&lt;span id="editable-post-name" title="Click to edit this part of the permalink"&gt;vista-bullies&lt;/span&gt;&lt;/a&gt;&lt;span id="editable-post-name-full"&gt;&lt;a href="http://crazyapplenews.com/2008/07/vista-bullies/"&gt;/&lt;/a&gt;)&lt;/span&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=rP3KQJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=rP3KQJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=LmrOpJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=LmrOpJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=nvcvCj"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=nvcvCj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/333712020" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/333712020/vista-bullying-on-crazy-apple-news.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/07/vista-bullying-on-crazy-apple-news.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-4951988279435512652</guid><pubDate>Sat, 28 Jun 2008 13:36:00 +0000</pubDate><atom:updated>2008-06-28T08:26:37.316-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Review</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Open Source</category><category domain="http://www.blogger.com/atom/ns#">Rails</category><title>Ruby on Rails - Rails = SproutCore</title><description>The world of Apple fanatics can't get enough of the word "&lt;a href="http://www.sproutcore.com/"&gt;SproutCore&lt;/a&gt;" ever since WWDC.&amp;nbsp; So I decided I'd give it a try.&amp;nbsp; After reading everyone else's review, I suspected it'd be something like &lt;a href="http://prototypejs.org/"&gt;Prototype&lt;/a&gt; and &lt;a href="http://script.aculo.us/"&gt;script.aculo.us&lt;/a&gt;, and&amp;nbsp; I really couldn't see the need for yet another JavaScript framework for graphics and XHR requests.&amp;nbsp; I also didn't really see the open-source community going head-to-head with two of its own favorites.&lt;br /&gt;
What I found was completely different.&amp;nbsp; Whereas Prototype and script.aculo.us try to take your webpage and make it more appealing, SproutCore wants to get rid of the page and make sure you are building a web app.&amp;nbsp; For starters, it comes with its own widget set, so everything from buttons to combo boxes to text editors are themed, or you can just force them to use the system chrome.&amp;nbsp; But under the hood is the most impressive thing: SproutCore is a complete&lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt; MVC application&lt;/a&gt;, all in static JavaScript, HTML, and CSS.&lt;br /&gt;
And some Ruby.&amp;nbsp; The SproutCore build tools are a lot like Rails, in that they are a Ruby Gem that you get with the traditional &lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;code&gt;sudo gem install sproutcore&lt;/code&gt;&lt;/div&gt;
method, and to create a new SproutCore project you type&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;code&gt;sproutcore hello_world&lt;/code&gt;&lt;/div&gt;
at the command line.  To see what your project looks like you go into the &lt;code&gt;hello_world&lt;/code&gt; directory and type &lt;code&gt;sc-server&lt;/code&gt;. Look familiar?&amp;nbsp; Also like Rails, the initial sproutcore command creates a full directory, and there are many helpers, generators, etc that all build the project for you, so that creating your models, views, controllers etc is amazingly simple.&amp;nbsp; Views are .rhtml files, just like Ruby on Rails, and are interpreted into static HTML/CSS via erb.&amp;nbsp; Controllers and Models are JavaScript files, so you can put in whatever JavaScript you want as long as they implement the correct classes and respond to the required events.&lt;br /&gt;
When you project is finished you run a single command to turn the whole thing into optimized, static HTML/CSS/JavaScript, and you can then upload that directory anywhere you want it, on any server and it will run.&amp;nbsp; It can interact with any backend technology, so long as it responds in JSON and accepts standard POST and GET requests.&amp;nbsp; This is a huge advantage over Ruby on Rails, where hosting is still expensive and finicky to get put together.&lt;br /&gt;
SproutCore isn't perfect. It's still pretty young (my installed version is 0.9.11) and the documentation is far from complete.&amp;nbsp; There are many functions that aren't available yet, but I suspect that a judicious use of other popular frameworks will alleviate that particular pain.&amp;nbsp; There is the question about loading your entire app into the user's browser, but to understand that you need to realize what arena SproutCore is competing in.&lt;br /&gt;
&lt;br /&gt;
SproutCore isn't, as I first thought, an answer to Prototype, it's an answer to Flex and Silverlight.&amp;nbsp; Where Flex takes an entire MVC app and wraps it in Flash, SproutCore wraps it in JavaScript (I haven't played with Silverlight yet, because I hate it. Not because it's Microsoft &lt;i&gt;per se&lt;/i&gt;; I would have hated it if it was from Google.&amp;nbsp; I just really don't think we need another plugin-based browser programming language. But that's another article).&amp;nbsp; This is refreshing because it does away with the plugin and works with native browser technology.&lt;br /&gt;
&lt;br /&gt;
Now I have to say: I really do like Flex.&amp;nbsp; Adobe has done an excellent job of turning Flash into a business tool, and the AIR runtime is just too easy to use.&amp;nbsp; But it's clear that Flash on the iPhone is a distant dream, so people who work on that platform are going to lose out.&amp;nbsp; For that matter, waiting for each individual vendor to implement a Flash plugin for their mobile device is fraught with frustration, so it's nice to have a fallback that will work on any even reasonably standards-compliant browser.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
So my recommendation is to give it a shot. Learning new technologies is always beneficial, and this one seems to be a real up-and-comer, if only because Apple is putting a lot of money behind it.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=ZbVtuI"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=ZbVtuI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=4jg9xI"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=4jg9xI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=oWy5oi"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=oWy5oi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/322034259" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/322034259/ruby-on-rails-rails-sproutcore.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/06/ruby-on-rails-rails-sproutcore.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-7701782881434393619</guid><pubDate>Tue, 17 Jun 2008 21:13:00 +0000</pubDate><atom:updated>2008-06-17T15:13:17.788-06:00</atom:updated><title>Firefox 3 vs. Opera 9.5</title><description>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I can't help it, I love Opera.  I have paid $60 to the opera foundation (to register Opera 6 and 7) and felt the money was well worth it at the time.  After all, Firefox didn't quite exist yet (I discovered Opera 6 when Firebird 0.something was the Mozilla offering) and IE was, is, and will be crap.  (I should probably look at the number of IE users I have coming to this site before I say things like this.  Naaaaah.)  Anyway, even in Opera 6 I saw amazing speed, standards compliance, and innovation (tabs were an Opera thing, remember?) and I was duly impressed.  &lt;br/&gt;And now we come to 2008. Firefox 3 is out and Opera is on version 9.5.  And I gotta say, I'm impressed on both counts.  Here's my first impressions.&lt;br/&gt;&lt;h3&gt;Opera&lt;/h3&gt;&lt;br/&gt;&lt;a href='http://www.opera.com/'&gt;Opera&lt;/a&gt; has added a few features, like &lt;a href='http://www.opera.com/products/link/'&gt;Opera Link&lt;/a&gt;, which does a .Mac style sync of your bookmarks, notes, and other little browser customizations.  I have to say that one of the only reasons I've been using Safari on the Mac is that I know that I'll have my bookmarks on all my computers.  Opera getting this ability is a definite step in the right direction, and being able to do it without $99/year is a nice thing as well.  I realize that there are add-ons for Firefox that will do the same thing, but built-in is always nice.  Opera has had a face lift on both the Mac and Windows, but to my mind the Windows theme is far nicer than the Mac one.  Again.  The new &lt;a href='http://www.opera.com/products/dragonfly/'&gt;Dragonfly&lt;/a&gt; feature is nice, but looks suspiciously like firebug, to my eyes.  I can't do any really accurate speed tests right now, but it moves right along, and does a good job rendering HTML and JavaScript as usual.  Speed Dial is a feature that I wouldn't install as an extension, but I have to admit that I like it when I have it in Opera.&lt;br/&gt;Opera also has the best &lt;a href='http://www.opera.com/support/mastering/kiosk/'&gt;kiosk&lt;/a&gt; feature I've ever come across in my puff.  I've put it to use a number of times with great success.&lt;br/&gt;&lt;h3&gt;Firefox&lt;/h3&gt;&lt;br/&gt;And then there's Firefox, the &lt;a href='http://xkcd.com/198/'&gt;jewel of the open source&lt;/a&gt; community.  It's fast, light (even lighter now that they've fixed some of the memory leaks that plagued version 2) and infinitely extensible, it's the browser that does what you want.  The vanilla install has some nice new features, like the super-easy bookmarks, bookmark tagging, smart bookmarks that allow you to move back and forth over your history easily, and (finally!) full cocoa compliance on the Mac.  Firefox has looked (and occasionally performed) like crap on the Mac for a while now, so it's nice to get some real widgets.  No, it's not &lt;i&gt;important&lt;/i&gt;, but it is nice. Contrary to Opera, the default Firefox skin is far nicer (in my opinion) than the Windows default.  I kinda like that.  But at the end of the day the reason we all keep using Firefox is the lovely extensions.  I'm writing this in ScribeFire, with AdBlock Plus and ScriptBlock both keeping me safe from web nasties.  &lt;br/&gt;&lt;h3&gt;Overall&lt;/h3&gt;&lt;br/&gt;Overall, I have to give the nod to Firefox.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=qGw6dI"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=qGw6dI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=jXNdhI"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=jXNdhI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=11Gazi"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=11Gazi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/314087896" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/314087896/firefox-3-vs-opera-95.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/06/firefox-3-vs-opera-95.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-205292837317219630</guid><pubDate>Sat, 14 Jun 2008 02:00:00 +0000</pubDate><atom:updated>2008-06-13T20:26:31.896-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Open Source</category><category domain="http://www.blogger.com/atom/ns#">Eclipse</category><category domain="http://www.blogger.com/atom/ns#">Adobe</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Flex Builder 3: Impressive</title><description>I spend an inordinate amount of time writing about Eclipse-based software.  I have to say the platform has grown on me, but there are things about it I still don't like.  One is the all-or-nothing approach to different vendors' add-ons.  I use Aptana, Zend Studio, and now Flex Builder 3, all of which are based on Eclipse.  The problem is this: I could use one base install of Eclipse and install all three of these as plugins, and they would each bring their own perspectives, views, menus and suchlike.  Theoretically, they would all stay out of each others' way and the whole thing would work beautifully.  In my experience doing that however, it meant that context menus were insanely long, there were tons of choices that didn't apply to what you were doing in case you started doing something else, and the whole mess took forever to load.  I eventually deleted the whole thing and did three separate installs.  The problem with that, of course, is that you have three identical copies of the base software, but with hard drives as large as they are these days that's not much of a problem.  &lt;div&gt;But this wasn't meant to be a continuation of my Eclipse rants.  I meant to write about Flex Builder 3, which I am impressed with, IDE platform to one side.&lt;/div&gt;&lt;div&gt;Flex, which Adobe hopes will be the next big thing instead of Silverlight, or AJAX, is really just Flash dressed in business clothes.  Gone is the timeline, gone the library of images and movies and bits, and everything focuses on what you would do with Flash if you were going to use it for websites instead of cartoons or games.  I approve of that.  Flash and the Flash IDE are great for web animation and games, but the Flash plugin has far too much power to be used only for &lt;a href="http://homestarrunner.com"&gt;Homestarrunner.com&lt;/a&gt;.  (the only web animation I've ever liked, by the way)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Flex lets you make things that do work.  It's designed from the ground up to work with AJAX-style HTTPRequest objects and accept data from remote sources in plain text, XML, JSON, or RPC notation, your choice.  It is built to easily display multi-page forms, and making transitions between pages is as simple as giving the transition you want an id in the XML source code.  I've done RPC-type stuff in Flash 8, and while it's possible, it isn't fun or easy.  It's both in Flex.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Much has been made of the AIR framework, allowing you to write apps in Flex and deploy them to the desktop, so all I'll say is "You can write apps and deploy them to the web or desktop. That's cool".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most Flex apps will have three parts: the XML (all in the mx: namespace) that defines the objects in the app, the Actionscript that defines what the app does, and the server-side code that gets and sets data for the app.  The first two parts are handled in Flex proper, while the third can be written in any language with which you are comfortable.  I mostly use PHP, but RoR works just as well. As long as your server understands the requests coming in (GET or POST, by the way) and can send intelligible responses back, you're set.&lt;/div&gt;&lt;div&gt;The XML part is very similar to XHTML, with specialized options for more advanced forms or displays.  XHTML doesn't have a &lt;datagrid&gt;, but MXML does have an &lt;mx:datagrid&gt; that accepts external data and lays it out in a scrollable, editable table.  Tags have predictable id properties, will accept style, height, width, and other properties that you would expect to give them if you were writing XHTML.  The Flex Builder application makes all this easy to do with good tooltips and a context-sensitive help menu that usually lists the API for whatever component your cursor is in at the top of the list, a far cry better than Flash 8's help function. Unlike any other WYSIWYG editor I've ever used, I rarely find any reason to argue with the code the "design mode" editor writes.  If you know what you're doing you can set farily complex style rules on things from design mode and the code will be clean and valid.  There are advantages to being in charge of the IDE and the parser.  the &lt;mx:&gt; namespace is tightly controlled, and I appreciate that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actionscript is Actionscript, so if you've ever used it in Flash you're ready for Flex.  I've been told it's quite similar to JavaScript, but, embarrassingly, I've never gotten around to learning JavaScript.  Sorry.  On the plus side, Flex apps will run on any browser that allows Flash, no JavaScript required.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All in all, I only have two problems with the Flex builder: the first is the Eclipse strangeness mentioned earlier. The second is the price.  I got Flex Builder for cheap because I'm an employee of a university.  Most people pay hundreds of dollars.  (although they are giving it free to students).  To my mind, charging a lot for the IDE isn't a clever way to take over the internet.  Yes, the API is free and open-source, but writing the code entirely by hand without a debugger and code tips and all that isn't fun, and few people will do it.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still, in spite of these two drawbacks, Flex is an elegant solution to getting content rapidly designed, tested and deployed, and in a world where almost everyone has Flash installed on their computers, It's an attractive alternative to AJAX.  Give it a shot.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=Fc3fhI"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=Fc3fhI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=3pMhNI"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=3pMhNI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=Ckmesi"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=Ckmesi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/311553516" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/311553516/flex-builder-3-impressive.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/06/flex-builder-3-impressive.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-1179876063721759229</guid><pubDate>Tue, 03 Jun 2008 14:49:00 +0000</pubDate><atom:updated>2008-06-03T09:22:26.371-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Apple</category><title>Tents and Computers</title><description>I was in the desert recently, doing some old-time family camping and jeeping.  My wife and I used to backpack all the time, but with two kids it gets very difficult to fit into a backpacking tent and fit all your gear into you backpacks.  So we threw in the towel and got a family camping tent.  It's actually called the "&lt;a href="http://springbar.com/explore/deluxe_tents/family_camper_tent.html"&gt;Family Camper 7&lt;/a&gt;"  It is big enough for 8 adults, so two adults and two kids (with all gear needed for a 1-year-old and a 3-year-old) just fit.  The tent is made by &lt;a href="http://springbar.com"&gt;Springbar&lt;/a&gt;, a company here in Utah that's been making quality tents forever.  We have proof of this: We were camping with my wife's family, and at our camp we had our brand-new springbar, my in-laws had their "new" Springbar (25 years old) and their "old" Springbar (35 years old). My brother-in-law also had his "new" Springbar that he bought used for $75, which we figure is probably about 50 years old.&lt;div&gt;What, you may be asking, am I doing talking about tents in a tech blog?  The ages of the tents involved should answer the question.  If you take a look at a Springbar, you can see why they last so long.  They are solid canvas with heavy-duty zippers.  The pole system is simple, built out of steel poles instead of fiberglass, and is external.  One person can pitch a tent in about 20 minutes, two people in about 10.  All the seams are doubled over and double-stitched, so you don't have to worry about one coming open.  Yes, these tents are much, much more expensive than ones you would get at &lt;a href="http://www.costco.com/Home.aspx"&gt;Costco&lt;/a&gt; or other places, but if they last upwards of 50 years I would say it's worth it.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Forgive the partisan view, but this is strongly reminiscent of the way Apple does things.  My father-in-law, the same one that has two Springbar tents, also has an original PowerMac, an original iMac, and (finally) an original Intel iMac, which I made him buy when I got tired of doing tech support on OS 7.  But the computers are well-built, well-designed, and durable.  they cost more, but they last, and they are something that you can be glad you own for a long time. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don't get me wrong; there is a place for inexpensive tents that you can take anywhere, and there's a place for do-it-yourself tents.  My cousin's husband has a "tent" that is a pole and a blanket. He uses it for snowcamps, and it's perfect for what he does for a living. Carrying a 70 pound tent  in his pack is just a little stupid. All I'm saying is that there is great value in having something that is simple because it was well thought out before it was ever built.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=EBX2FI"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=EBX2FI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=qQmi6I"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=qQmi6I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=kQN2Di"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=kQN2Di" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/303803670" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/303803670/tents-and-computers.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/06/tents-and-computers.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-6353863300558209492</guid><pubDate>Thu, 22 May 2008 14:13:00 +0000</pubDate><atom:updated>2008-05-22T08:17:36.459-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Shareware</category><category domain="http://www.blogger.com/atom/ns#">Review</category><category domain="http://www.blogger.com/atom/ns#">Mac</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">MacHeist</category><title>Delicious Library: Still pointless</title><description>So, about 1.32 years ago I got a copy of &lt;a href="http://www.delicious-monster.com/"&gt;Delicious Library&lt;/a&gt; as part of the &lt;a href="http://www.macheist.com/"&gt;MacHeist&lt;/a&gt; bundle. And I thought, "Wow now I can keep track of all my books, music, and DVD's."  And dutifully started scanning them all into the Library with my built-in iSight camera, just like a good little &lt;a href="http://www.delicious-monster.com/company.php"&gt;Shipley&lt;/a&gt;-ite.  Then when the world-renowned &lt;a href="http://video.on.nytimes.com/?fr_story=3d097831afe43b8892427d6c341c376c023587f4"&gt;David Pogue&lt;/a&gt; reviewed DL, I thought, "See? It's cool to spend hours scanning things!"  Also like David Pogue, I got a bit bored with scanning things after a while.&lt;br /&gt;&lt;br /&gt;Then came the real boredom: what to do with the product after I'd scanned everything in.  I could look at my books, but for some reason I never think "I'd like to read a book.  I don't want to  go to my bookcases, look at my actual books, and choose one to read.  So I'll go to my iMac, look at pictures of the covers of my books (except for the ones that are out of print or aren't carried by Amazon) and choose one there. Then I'll go to my bookcases and pick it up.  The same goes for music and DVD's.  I have a database for music. It's called iTunes, and it does a much better job of picking up all my album covers than DL/Amazon.&lt;br /&gt;&lt;br /&gt;"But wait!" I hear you screaming, almost rabidly, "What about checking books out to your friends! Now you know exactly who has your books, movies, or DVD's, and when they're due back!" Yes, I could do that, but tell me, what kind of looks to do you  think you'd get if you said, "sure you can borrow that book, but first I need to create an account for you in my library software, check it out to you, and assign you a due date" I tried it a couple of times.  Mostly the response I got was "Umm, never mind. I guess I don't want to read it all that much anyway."  And nothing says "you are a true friend that I love, respect and value" like a "hey, you know that book you borrowed from me? It's two days late" email.  So if DL is meant to keep all your books/music/videos/games in your library and alienate people, then the checkout feature does a great job!&lt;br /&gt;&lt;br /&gt;At the time they were promising DL 2.0 "any day now™" And now, they're promising version 2.0 "any day real soon now!™"  So we may soon get to see what features will be in version 2.0 that make it more worth my time than version 1.6.&lt;br /&gt;&lt;br /&gt;But I'm not holding my breath.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=eBxoDH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=eBxoDH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=qiD0nH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=qiD0nH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=9PBrYh"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=9PBrYh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/295871140" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/295871140/delicious-library-still-pointless.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/05/delicious-library-still-pointless.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-5831208488447030633</guid><pubDate>Mon, 19 May 2008 23:25:00 +0000</pubDate><atom:updated>2008-05-19T17:37:54.114-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Ruby</category><category domain="http://www.blogger.com/atom/ns#">Open Source</category><category domain="http://www.blogger.com/atom/ns#">Rails</category><title>ConPhusion</title><description>So, I've been working on some Ruby on Rails apps, and as I mentioned in my &lt;a href="http://blog.coals2newcastle.com/2008/04/thoughts-on-rails.html"&gt;last post&lt;/a&gt; about Rails, everything is wonderful except for actually putting a Rails web app on the actual web.  So I was excited when I discovered &lt;a href="http://www.modrails.com/"&gt;Passenger (aka mod_rails)&lt;/a&gt; by &lt;a href="http://www.phusion.nl/about.html"&gt;Phusion&lt;/a&gt;.  It seems to be something that makes it easy to put Rails Apps on the web without worrying about the number of instances you have running, how many mongrels you have running, your Capistrano deployment, and all the other things that make deploying a Rails app feel like re-compiling your Linux kernel.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, I don't think I'm stupid, but I haven't been able to get an app up and running using Passenger either.  The closest I've come (trying to set it up on my MacBook) is getting a cool Passenger error message telling me my &lt;code&gt;database.yml&lt;/code&gt; file was missing.  The problem is that when I put my &lt;code&gt;database.yml&lt;/code&gt; file in place I still couldn't get it running.  I've done all the steps, set up the vhosts, edited things, and I've probably killed my vanilla Apache install for ever.  So, what I would like is for someone to set up a virtual machine with a Linux install, running Passenger, with instructions on exactly how to set up a new vhost for a new app, and why mine hasn't worked yet. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what about the rest of you? Have you set up a Passenger app that works?  How about all the other ways to deploy rails? Is there a way that actually works and makes sense?  Comments would  be appreciated.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=PFslWH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=PFslWH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=0dBfNH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=0dBfNH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=Ngizwh"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=Ngizwh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/293850119" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/293850119/conphusion.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/05/conphusion.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-4838643478159834131</guid><pubDate>Wed, 14 May 2008 23:00:00 +0000</pubDate><atom:updated>2008-06-18T13:36:53.045-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MySQL</category><category domain="http://www.blogger.com/atom/ns#">Review</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Database</category><title>Navicat for MySQL: Your Database Swiss Army Knife</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_wrRKanW1lxU/SFljwDyqEqI/AAAAAAAAAAg/ve8plruV0QE/s1600-h/navicat_logo_150.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_wrRKanW1lxU/SFljwDyqEqI/AAAAAAAAAAg/ve8plruV0QE/s320/navicat_logo_150.jpg" alt="" id="BLOGGER_PHOTO_ID_5213307720960709282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I remember the first time I successfully wrote a query in the &lt;a href="http://mysql.com/"&gt;MySQL&lt;/a&gt; command line interface.  It had only taken three tries to get signed in properly and two more to finally get a database selected and a query run that made sense to both me and MySQL.  So about 10 minutes in total.  Then I started writing both definition queries and retrieval queries, and found that it made a lot of sense to write out the query in notepad first, then copy and paste it onto the command line so that I didn't lose all my work every time I forgot a comma.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I remember the first time I used &lt;a href="http://www.phpmyadmin.net/home_page/index.php"&gt;PHPMyAdmin&lt;/a&gt; as well.  It's a great program, allowing you to access your database from anywhere in the world and giving you a lot of power and utility in a fairly friendly interface. I discovered PMA before I ever heard about AJAX, so I wasn't disappointed by the page loads after every click.  Sure, it's a little slow, but it's worlds faster than working at the command line.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also remember the first time I saw the &lt;a href="http://dev.mysql.com/downloads/gui-tools/5.0.html"&gt;MySQL GUI tools&lt;/a&gt;.  I had been using PMA for quite a while both on my own projects and on projects for work.  I was sent to a class about MySQL and the teacher showed us the MySQL tools, version 3 or 4, I forget which.  I was amazed.  The MySQL Query Browser was perfect: it was everything I wanted, clean, easy to understand, and easy to use.  I've been using it ever since.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The same time I discovered the GUI tools I was shown Navicat 7, but I wasn't impressed.  For one thing, I didn't want to spend any money, for another, I was too entranced by the MySQL offering to be very interested in anything else.  Recently I have been using the 30-day trial of Navicat 8 and I must say I'm impressed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At first glance, &lt;a href="http://www.navicat.com/download.html"&gt;Navicat&lt;/a&gt; looks very similar to a cross between the MySQL Query Browser and MySQL Administrator.  It does your system monitoring, allows you to define tables and new databases, write and store queries, and all the standard stuff.  But as you get into it you find that there s a lot more beneath the surface. Navicat's visual query builder is intuitive; once you set the tables you are using in the FROM section it will auto-complete table names as you type, so you don't get them wrong.  You can also edit the query directly, but I find that it often does a better job, except for on some things like complex joins.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another amazingly useful feature is the HTTP tunnel feature.  Navicat ships with a PHP script that allows you to connect databases behind a firewall, such as with shared hosting plans. (Like the excellent 1&amp;amp;1 that I use.)  Just put this script in a protected directory behind the firewall, and Navicat can connect to it and allows you to edit and administrate your database as if you were root working on localhost. (Navicat understands protected directories, which is a well thought out feature.) Setting up HTTP tunneled connections only takes a minute or two longer than setting up local or simple port 3306 connections.  It goes without saying that Navicat allows you to connect to multiple databases simultaneously.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The downsides are few, but real.  Navicat is a paid, closed-source program, so if that's a problem for you then sorry.  It's also not a native-english program.  The mistranslations are few, and fairly minor, but you will start to notice them after a while.  And it doesn't have the one thing that I love about the MySQL Query Browser: an immediate, easy to use query line that you can type on and get an instant response back.  But for these few failings I still find Navicat to be well worth the price they are asking. &lt;/div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=94IYCH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=94IYCH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=6yElQH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=6yElQH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=CfAfhh"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=CfAfhh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/290504907" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/290504907/navicat-for-mysql-your-database-swiss.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/05/navicat-for-mysql-your-database-swiss.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-8538966430326227265</guid><pubDate>Tue, 13 May 2008 22:45:00 +0000</pubDate><atom:updated>2008-05-14T14:42:19.326-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Web culture</category><category domain="http://www.blogger.com/atom/ns#">Ruby</category><category domain="http://www.blogger.com/atom/ns#">php</category><title>Code is Poetry</title><description>&lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;, the popular, easy to use, easy to install blogging software has the words "Code is Poetry" on the bottom of each page in their site.  and I love them for it. &lt;br /&gt;&lt;br /&gt;Before you start worrying about me saying nice things about WordPress in a Blogger blog, I would humbly ask you to chill.  I don't limit myself to one programming language, OS, or development environment, so I'm sure not going to tie myself to one blogging platform either.  You may discuss relative merits of the platforms elsewhere. &lt;br /&gt;&lt;br /&gt;Blogging systems aside, the comment "Code is Poetry" is both important and insightful.  On one hand, it's a reminder to those of us who write code that it should be as deep and packed with meaning as a poem, and that there is great value in putting a lot of meaning in just a few glyphs, as long as the meaning is decipherable later.  One of my favorite statements in PHP that I've ever written is:&lt;br /&gt;&lt;br /&gt;  &lt;code&gt;$output[$key] = $filtered[$line];&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It's not anything impressive, but it's fun because there's only one non-variable symbol on the line, and that's the "=" operator.  Everything else adapts to the current data, but the meaning of the statement is obvious: this little gateway makes sure that only filtered data makes it out of the &lt;code&gt;foreach&lt;/code&gt; loop that this statement inhabits.  It's a PHP haiku. &lt;br /&gt;&lt;br /&gt;Code readability--and more importantly, code design-- started somewhat ironically with &lt;a href="http://www.perl.org/"&gt;Perl&lt;/a&gt;, that venerable beast of obscurity, but Perl it was that held the &lt;a href="http://www.perlguy.com/contest.html"&gt;perl poetry&lt;/a&gt; contests, and thus proved that a program could be meaningful to both a person and a computer. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;, however, has the definite title of most poetic language at the moment. (Compare the homepages of the various languages, and just the visual style of each gives you an idea of the culture inherent in that language.) Ruby lovers are also lovers of function names like &lt;code&gt;insert_hr_tag&lt;/code&gt;, a string that's only 7 characters longer than actually typing out &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt;&lt;br /&gt;The fact that the Ruby version is longer is immaterial; it's function is clear and it keeps the language pure.  More than that, Ruby lovers often seek for ways to say things in as few symbols as possible, dropping parentheses and brackets when they can be done away with, using :symbols instead of "strings" for array keys, and doing other things that make the code more human readable.&lt;br /&gt;&lt;br /&gt;So what's the point?  Why do we need our code to be human readable?  Because someone is going to be coming along behind us and trying to understand what we were doing.  Often, that someone is us, and I can tell you from experience that it's much more enjoyable to come back to old code and be delighted by its clarity than shocked that it even runs.  Human readable code is easier to program as well, because you can see what you were thinking, often without comments, without documentation, and without trying to get exactly as tired/drunk/over-caffeinated as you were when you wrote the code.  The amazing thing is this: when you take the time to write poetic code, you will find that you are spending less time writing code, because it makes more sense and works more readily.&lt;br /&gt;&lt;br /&gt;Code is Poetry.  Take time to write it properly.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=MoNuTH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=MoNuTH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=gQqKAH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=gQqKAH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=NVUr2h"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=NVUr2h" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/289759945" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/289759945/code-is-poetry.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/05/code-is-poetry.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-4763847561241059091</guid><pubDate>Fri, 02 May 2008 11:55:00 +0000</pubDate><atom:updated>2008-05-02T06:11:39.084-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Fun</category><category domain="http://www.blogger.com/atom/ns#">Libbie</category><title>Life married to a scientist</title><description>My wife has a degree in Wildlife Biology with a minor in Chemistry.  It was very nearly the other way round, but when she graduated she had slightly more Biology credit than Chemistry, so that's how her degree worked out.  She is still, however, a very good chemist.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So when I mentioned that I remembered reading about one of those "home experiments" that kids can do with adult supervision, one that involved getting a half-cup of water and a half-cup of rubbing alcohol, then mixing them and watching in amazement as you ended up with a half-cup of total liquid, she said, "Well, they're both solvents, but why don't we see?" And she went to get the rubbing alcohol.  I got two Pyrex cup measures, a one-cup size and a two-cup size.  We measured a full cup of each: water in the two cup measure, alcohol in the one cup.  Then we poured the alcohol into the water.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Those of you who were thinking of trying this don't bother. At least not for the volume reduction aspect of it.  We ended up with two cups of liquid.  So there goes another silly science factoid, like the one about catching flies with &lt;a href="http://xkcd.com/357/"&gt;honey or vinegar&lt;/a&gt;.  However, after that failed experiment, we tried another, more interesting experiment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Note to young people: the following experiment was done in extremely controlled circumastances and should not be repeated without adult supervision.  In my case, I did the experiment, and my wife was the supervision.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;We wondered if the alcohol would burn in such weak concentration, and with water in it.  So we dropped a match into it.  There was a brief blue flicker and the match went out.  "The alcohol gas is coming up off the top of the liquid and that's what burned." Libbie said. "Hold the match over the surface" So I did.  We were able to get a couple of good flames, but the match would always burn down to my fingertips very quickly.  As the liquid warmed up, however, we finally got a flame that continued without a match.  We turned off the lights to get a better view.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the Pyrex cup measure we were using is transparent, so we were able to look at the base of the flame.  It seemed to hover a quarter-inch off the water and moved and swirled over the surface of the cup like the northern lights.  After a while it got pretty bright, and about then we noticed that it was also getting pretty hot.  So I blew it out.  Well, actually I tried, more and more frantically to blow it out, until I was finally able to do so.  Sot that part was kinda scary.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, not a technology post, but a geeky post, and a little bit of bragging.  I have a very cool wife.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=JLhrhH"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=JLhrhH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=ZtBV0H"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=ZtBV0H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=aQLpWh"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=aQLpWh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/282070082" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/282070082/life-married-to-scientist.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/05/life-married-to-scientist.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-7398658815806051417</guid><pubDate>Wed, 30 Apr 2008 23:00:00 +0000</pubDate><atom:updated>2008-04-30T17:00:00.494-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Shareware</category><category domain="http://www.blogger.com/atom/ns#">Mac</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">MacHeist</category><title>Mac Update Promo - For Once, not a MacHeist post</title><description>So, even though I asked all of you to buy the MacHeist promo using my &lt;a href="https://www.macheist.com/buy/referral/33343"&gt;referral link&lt;/a&gt; (there's still time!), I ended up buying the &lt;a href="http://mupromo.com/"&gt;MacUpdate promo&lt;/a&gt; bundle instead.  Why would I do that?  Was I trying to point both of my faithful readers wrong?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No of course not.   The fact is, the only program I don't already have from previous heists is WriteRoom, and the MUPromo bundle had &lt;a href="http://www.marinersoftware.com/sitepage.php?page=127"&gt;StoryMill&lt;/a&gt;, which is like Scrivener, but in some ways cooler.  I've been lusting after scrivener for about a year now, but never quite willing to pony up the cash to buy it.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, essentially, I bought the MUPromo bundle to get StoryMill. I mean, I already have a copy of both Parallels and Fusion, so that wasn't a real draw for me.   Since that time, however, I have seen how awesome all the other programs are.  &lt;a href="http://www.belightsoft.com/products/arttext/overview.php"&gt;ArtText&lt;/a&gt; could be useful, &lt;a href="http://www.ironicsoftware.com/leap/index.html"&gt;Leap&lt;/a&gt; is great, and &lt;a href="http://www.metakine.com/products/dvdremaster/"&gt;DVD Remaster Pro&lt;/a&gt; lets me watch Mystery Science Theater on my iPod, something I never would have thought of doing if I didn't have a free copy of that program.  &lt;a href="http://www.aquafadas.com/en/bannerzest/"&gt;BannerZest&lt;/a&gt; is useful in a very limited sense of the word, and the $80-to-include-links feels like a bit on an insult.  The last minute addition of &lt;a href="http://www.freeverse.com/games/game/?id=7015"&gt;Neon Tango&lt;/a&gt; would have excited me me more if I hadn't already shelled out the money for that program two months ago.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So for once, for me, MacHeist lost out this time.  I'm not saying the software they're selling is bad; on the contrary I use some of those programs quite often.  I'm just saying they kinda missed the boat by selling software that their loyal followers already have, and that we got from them.  Now, I can't argue with the numbers; MacHeist has sold over 60,000 bundles, MUPromo barely made it to 15,000.  But if MacHeist had put some new stuff up I wouldn't have found out about their competitor's bundle.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=Pv2OtG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=Pv2OtG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=wuBCJG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=wuBCJG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=w1D2kg"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=w1D2kg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/281114265" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/281114265/mac-update-promo-for-once-not-macheist.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/04/mac-update-promo-for-once-not-macheist.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-5164479223099850196</guid><pubDate>Wed, 30 Apr 2008 13:01:00 +0000</pubDate><atom:updated>2008-04-30T07:01:00.336-06:00</atom:updated><title>The Coals [2] Newcastle Store is open for business!</title><description>My new web host has a deal where I get a snazzy&lt;a href="http://194750.spreadshirt.com/us/US/Shop/"&gt; free store&lt;/a&gt; for shameless self promotion.  I'm always up for that, so I whipped up some lovely new shirts for you and yours.  My wife helped extensively on the design of the two ladies shirts, and the two mens shirts are all mine.  If you have a great idea for a Coals[2]Newcastle shirt, let me know.  I'll most likely create it right away.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=BttSiG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=BttSiG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=fFnBMG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=fFnBMG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=qdf83g"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=qdf83g" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/280794298" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/280794298/coals-2-newcastle-store-is-open-for.html</link><author>noreply@blogger.com (Nate)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/04/coals-2-newcastle-store-is-open-for.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-4769136585494512830</guid><pubDate>Tue, 29 Apr 2008 20:06:00 +0000</pubDate><atom:updated>2008-04-29T14:06:40.365-06:00</atom:updated><title>Zend Studio 6 - Are you kidding me?</title><description>So, I'm working on a project for my employer, and like a good PHP5 developer I set up some unit tests for my classes.&amp;nbsp; So far, so good.&amp;nbsp; Zend Studio 6 excels at PHPDoc and creating skeletal unit tests once you have your class structure laid out.&amp;nbsp; I then ran all my tests for my Helper class (the one I built that does all the text cleaning and verifying) and all is well. I get good test results back, intelligent failure traces, and my code is now better because of it.&amp;nbsp; Then i go run the tests on my database connection class, and I get the suprising error:  &lt;code&gt;Cannot find class mysqli&lt;/code&gt;  I was slightly startled that they wouldn't support the Mysqli extension, but I'm in a hurry so I revert my code to mysql_query style and re-run the tests.  then I get the even more unbeliveable &lt;code&gt;Cannot find mysql_connect()&lt;/code&gt;  This just seems too unbeliveable.  PHP and MySQL are like bread and the crust on the bread. So I do some soul searching, some Google searching, and I finally discover that, regardless of the php binary my localhost server is using, Zend Studio uses an internal binary, with an internal php.ini file.&amp;nbsp; The contents of that file, (Which I finally found at  &lt;code&gt;C:\Program Files\Zend\Zend Studio for Eclipse - 6.0.0\plugins\org.zend.debug.debugger.win32.x86_5.2.12.v20071210\resources\php5\php.ini&lt;/code&gt;)  were:&lt;br /&gt;&lt;br /&gt;   &lt;code&gt;zend_extension_ts=.\ZendDebugger.dll&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;And that's all.&amp;nbsp; So drawing on &lt;strike&gt;Google's&lt;/strike&gt; my extensive knowledge of the workings of php.ini, I add the following:&lt;br /&gt;&lt;br /&gt; &lt;blockquote&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;extension_dir="C:\Program Files\PHP\ext"&lt;br /&gt;extension=php_mysql.dll&lt;br /&gt;extension=php_mysqli.dll&lt;br /&gt;extension=sqlite3.dll&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Save the file, and re-run the unit tests.  The ones that test working functions work, the ones where I'd been boneheaded don't.  The Unit test is successful.&lt;br /&gt;Maybe this is a stupid question, but are a lot of people writing PHP websites that &lt;span style="font-style: italic;"&gt;don't&lt;/span&gt; use a database of some sort?&amp;nbsp; I enabled the databases I needed, postgres and the others are available as well.&amp;nbsp; It seems like Zend, of all people, would know that there would come a time when people would want to debug or test applications that use these database connections, but they provide no method of adding the extensions you need short of digging into the aforementioned path and hand-editing php.ini.&amp;nbsp; How does this make sense?&amp;nbsp; I understand not wanting a really huge number of extensions on your debug version, but perhaps a little common sense would have helped in this situation. Komodo has the good sense to ask you what php.ini file it should copy to make it's debug version, so you know that it's using the same extensions as your real development server.&lt;br /&gt;&lt;br /&gt;Anyway, my problem is fixed, and I hope that I gave enough detail that if you are having the same problem yours will be fixed after reading this.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;And if anyone from Zend is reading this, I would recommend rethinking that debug php.ini file you're using.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=zVmmVG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=zVmmVG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=kAD4MG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=kAD4MG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=NTZmDg"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=NTZmDg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/280301312" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/280301312/zend-studio-6-are-you-kidding-me.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/04/zend-studio-6-are-you-kidding-me.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-253369734486366983</guid><pubDate>Mon, 21 Apr 2008 16:52:00 +0000</pubDate><atom:updated>2008-04-21T10:52:02.771-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Ruby</category><category domain="http://www.blogger.com/atom/ns#">php</category><category domain="http://www.blogger.com/atom/ns#">Rails</category><title>Thoughts on Rails</title><description>So, I have just written, debugged and deployed my first Ruby on Rails application.&amp;nbsp; I gotta say, it's compelling.&amp;nbsp; Still, there are some issues.&amp;nbsp; Here's my thoughts&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The Good&lt;/h3&gt;&lt;br /&gt;I love Ruby. I can't help it.&amp;nbsp; It's fast, easy and intelligent.&amp;nbsp; Things do what they say, your code is simple to read, simple to write, and makes logical sense.&amp;nbsp; Ruby is in many ways the child of Smalltalk, bringing all of that language's good points into the current day.&lt;br /&gt;And Rails is pure Ruby.&amp;nbsp; The Rails team took the philosophy of Ruby and gave it the attitude of a benevolent dictator.&amp;nbsp; Rails tells you, every explicitly, how to do things.&amp;nbsp; Do things its way and all is well.&amp;nbsp; do things some other way, and expect failure.&amp;nbsp; It's strict, constraining, and actually speeds things up a fair amount if you follow the rules, because you have far fewer choices to make.&amp;nbsp; It's quite a jar coming from PHP, where you can do whatever you want and it'll probably work, but once you get into the groove it makes a lot of sense.&amp;nbsp; You start to see the benefit of having everything laid out and orderly, and it's kinda nice.&lt;br /&gt;And the decisions the rails team have made are based on real-world experience.&amp;nbsp; Tasks that drive web developers insane are turned into easy-to-use functions, clearly named, and easy to implement. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The Bad&lt;/h3&gt;&lt;br /&gt;I started my project just as Rails 2.0.2 came out. Like a good little newbie I went out and ran the &lt;code&gt;gem -install rails&lt;/code&gt; script, and got the newest version of Rails, then happily followed a tutorial, right up to the point that it became painfully obvious that tutorials for Rails 1.2.x don't work in Rails 2.0.x. Much has been said about this already, so I won't belabor the point. The problem is that the official website said nothing about the incompatibility, and had no tutorial for the new version.&amp;nbsp; &lt;a href="http://pragprog.com/titles/rails2"&gt;Agile Web Development with Rails&lt;/a&gt;, the go-to book for Rails information, is still the old version, and while it's insanely useful, it hasn't yet been updated.&amp;nbsp; (Side note:&amp;nbsp; I bought AWDWR, and when I discovered the version problem I emailed the pragmatic programmers, asking when the new version was coming out.&amp;nbsp; I got a very&amp;nbsp; nice response in less than twenty minutes from Dave Thomas himself.&amp;nbsp; How's that for awesome (and agile) customer service?)&lt;br /&gt;Eventually, with a huge amount of web searching, and a little soul searching, I found the missing links that made my newbie knowledge complete, and I was able to build my app in Rails 2.0.2.&amp;nbsp; (Thanks here to Activestate, who not only posted a "&lt;a href="http://community.activestate.com/working-rails-2-0-scaffolds-komodo"&gt;How to do our Rails tutorial in rails 2.0" article,&lt;/a&gt; but also updated their rails tools in Komodo 4.3.2. (Komodo really is awesome.&amp;nbsp; Check it out!)&lt;br /&gt;&lt;br /&gt;Still, the problem remains; good official rails documentation is lacking.&amp;nbsp; Eventually I found &lt;a href="http://www.railsbrain.com/api/rails-2.0.2/doc/index.html"&gt;RailsBrain&lt;/a&gt;, which makes life better, but it took a lot of searching to find, which suggests it isn't&amp;nbsp; a well known repository.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The Ugly&lt;/h3&gt;&lt;br /&gt;The ugly is deployment. Hands down.&amp;nbsp; Here's a little comparison between deploying a PHP application and a Rails application:&lt;br /&gt;PHP:&lt;br /&gt;Upload the files to your web server's "htdoc" folder.&lt;br /&gt;Rails:&lt;br /&gt;No on has successfully made it past step 147 of a rails deployment.&lt;br /&gt;Okay, I'm just kidding, but there are seriously too many steps involved in deploying a rails app, and a lot of the problems that PHP handles automatically (dealing with many requests all at once, for example) are left to the programmer/developer/admin to figure out.&amp;nbsp; There is much messing around on the command line, changing of system variables and so forth before you app is live.&amp;nbsp; Once you get your app up and running, then you are faced with the processor load problem.&amp;nbsp; You see, Rails programs are always running, and if you expect heavy traffic, they are always running in duplicate or triplicate in order to handle the load.&amp;nbsp; This means that if you have a small, internal app (like the one I was writing), your server is always running that program, even if the two or three people who would ever use it are out of the office and won't be using it that day.&amp;nbsp; Contrast that with PHP's "I'll build it when you need it" model and it makes Rails look a little silly for anything that won't be getting constant hits day in and day out.&lt;br /&gt;&lt;br /&gt;Overall&lt;br /&gt;&lt;br /&gt;Overall, I like Rails, but it's not yet ready to be a true PHP/Java/ColdFusion/whatever replacement.&amp;nbsp; And I don't think it needs to be.&amp;nbsp; PHP is very good at some tasks, Java at others, and Rails (and ruby) at yet others.&amp;nbsp; Still, it's evolving&amp;nbsp; quickly and bears watching and learning.&amp;nbsp; Things you learn in rails will help clarify your thinking in other languages you use and guide you to more intelligent decisions.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=CMfh3aG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=CMfh3aG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=AaMzhgG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=AaMzhgG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=ddNfJjg"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=ddNfJjg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/274823280" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/274823280/thoughts-on-rails.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/04/thoughts-on-rails.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-6401606864502208920</guid><pubDate>Mon, 14 Apr 2008 15:48:00 +0000</pubDate><atom:updated>2008-04-14T09:50:50.343-06:00</atom:updated><title>Once Again!</title><description>MacHeist is back, and they've got some good stuff again.  Most of it is re-runs from MacHeists I and II, but still useful, and the price is still great if you need even two of the apps they've included.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And once again, I'm begging for referrals.  If you want a copy, I would consider it a personal favor if you would use  &lt;a href="https://www.macheist.com/buy/referral/33343"&gt;my referral link&lt;/a&gt; to buy it.  It gets me a few extra apps for every person that uses it, and who couldn't use extra apps?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, check it out, and consider dear sweet Coals[2]Newcastle for all your mac-app-bundle-referral-purchase needs.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=l8W6OyG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=l8W6OyG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=EkiwZQG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=EkiwZQG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=E94dLqg"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=E94dLqg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/270079907" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/270079907/once-again.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/04/once-again.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-263204615206549644</guid><pubDate>Fri, 04 Apr 2008 21:44:00 +0000</pubDate><atom:updated>2008-04-04T16:13:47.590-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Ruby</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>The Right Tool For The Job</title><description>In my garage there are two blue vehicles.  One is my &lt;a href="http://www.epinions.com/reviews/Giant_Sedona_SE_2000"&gt;Giant Sedona&lt;/a&gt; bicycle.  It's great for getting around with a minimum of fuss and getting places that would be impossible in a larger vehicle.  It's light, responsive, and maximizes my muscle work with every pedal push.  Sure, it requires me to actually push the pedals, but once I learned how to best use the gears I can minimize the effort required. &lt;br /&gt;&lt;br /&gt;The other is my &lt;a href="http://en.wikipedia.org/wiki/Toyota_Corolla"&gt;Toyota Corolla&lt;/a&gt;.  It's still pretty small, compared to most vehicles on the roads around here, and it gets great mileage, even after 8 years on the road.  It gets me where I want to go, and gets me there fast.  Also, since it's a manual, It's more responsive than most of the other vehicles on the road. Sure, it takes away the feel of the wind on my face and the exercise benefits of the bike, but it makes up for it by being able to go over 90 MPH, something I could never do on my bike.&lt;br /&gt;&lt;br /&gt;Both are great, and both can do a lot to make me quicker getting where I want to be. It would be pointless to compare them; sure they are both  vehicles, but  they are in different classes.&lt;br /&gt;&lt;br /&gt;In my "Applications" folder there are two text editors.  One is &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;.  It's fast, light, and maximizes my intelligence.  If I know what I want to do I can be sure that there is an easy way to do it already built into TextMate, or available as a bundle.&lt;br /&gt;There's no "autocomplete" or "intellitext" type features that people using other IDE's would expect, but once you know just a few keystrokes you can do things faster than anyone thought possible.  It's also light and well built for it's surroundings: you can use it as a UNIX extension or a GUI program, whatever works for you.  TextMate is the high-performance bike of the programming world: it compliments and extends your natural intellect.&lt;br /&gt;&lt;br /&gt;The other is &lt;a href="http://activestate.com/Products/komodo_ide/index.mhtml"&gt;Komodo IDE&lt;/a&gt;. It's not as light as TextMate, but it's a far cry lighter than the IDE's  that get pushed on C++ or Java developers. It's responsive, and full of tools to both make you more effective and do things for you.  The newest version (4.3) includes macros to aid in Ruby on Rails 2.0 development; so that instead of going to a command line to do migrations you just click on the "migrate" button and Komodo takes care of it for you.  And there is always the amazing Regex editor.  with Komodo I can do things with Regular Expressions that I could never figure out how to do myself.   Also, since version 4.3, they have included amazing Unit Testing support for most major dynamic languages.  Komodo is the Toyota of the programming world: light, intelligently designed, and reliable.&lt;br /&gt;&lt;br /&gt;So which do I prefer?  Both.  They are both amazing, and Komodo actually beat TextMate, the poster-editor for Rails, to the "I support Rails 2.0 scaffolding" punch.  They keep putting good stuff into their editor and still manage to keep its load time down.  On the other hand, TextMate is a good, fast, intelligent program to let you do things to text in ways that leave people breathless, but doesn't take anything out of the programmer's hands.  I know that the Pragmatic Programmers would say pick one and stick with it, but I say use the right tool for the job.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=gvUoPwG"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=gvUoPwG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=mKfxb0G"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=mKfxb0G" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=SVrF9Vg"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=SVrF9Vg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/264241759" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/264241759/right-tool-for-job.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/04/right-tool-for-job.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-1510284468559978113</guid><pubDate>Mon, 31 Mar 2008 18:43:00 +0000</pubDate><atom:updated>2008-03-31T12:56:59.020-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Shareware</category><category domain="http://www.blogger.com/atom/ns#">Mac</category><category domain="http://www.blogger.com/atom/ns#">Adobe</category><category domain="http://www.blogger.com/atom/ns#">Software</category><title>Security vs. Usability</title><description>So, a few days ago I bought a Wacom Bamboo Fun tablet.  The tablet itself is great, so don't get me wrong.  I love it. The problem is the software that they packaged with the tablet: Adobe Photoshop Elements 4.0 for Mac.&lt;div&gt;The problem is that it took two hours to figure out why I couldn't use APE.  I had installed it the way I always install software on my Mac: My main account isn't an admin account, and when I want to install things most installers just ask for an admin username and password and away they go.  APE did the same, but apparently when it went to register my license with it's main server or whatever it did it after the install process. This meant that it couldn't write back to the install directory under my normal user account, so it couldn't authorize the software, so it wouldn't run.  Once I got an idea of the problem all I had to do was log in as admin, re-install, run the program once so it could do it's little registration thing, and all was good.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what's the big deal, you ask?  Why a blog post? Well, it wouldn't be a big deal if I hadn't spent three hours on the phone with tech support at Adobe to get a copy of Creative Suite 3 running on a user's computer at work that very morning.  On Windows.  Different OS, similar problem: the licensing program was screwed up, so it wouldn't run.  After two sets of media, three days of trying to fix the problem on my own, and three hours on the phone to India, we finally got it fixed.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what's the problem?  The problem is terrible licensing requirements.  I understand the need to protect Adobe's considerable investment into Photoshop and all the other technologies that make up Creative Suite, but it doesn't work.  There are more crackers out there than Adobe can possibly  hope to stop.  So they decide to annoy those of us who pay for the product by introducing buggy and inept licensing software.  Great move.  Brilliant.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The RIAA is finally learning (the hard way) that copy protection doesn't work: what does work is actual market pressure.  If you take the built-in annoyance versions of copy protection you will still sell your product to people who want to use your product, but now you won' t be driving them insane at the same time.  If you make a quality product and offer support to registered users people will buy your product and thank you for the support.  If you must include copy protection measures, do so in a way that doesn't make your paying customers feel like thieves.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=FvxdMoF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=FvxdMoF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=bXDRqHF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=bXDRqHF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=oZ0Zm7f"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=oZ0Zm7f" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/261466958" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/261466958/security-vs-usability.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/03/security-vs-usability.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-3457328333628569241</guid><pubDate>Fri, 21 Mar 2008 15:10:00 +0000</pubDate><atom:updated>2008-03-21T09:16:01.343-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">World Wide Web</category><category domain="http://www.blogger.com/atom/ns#">php</category><category domain="http://www.blogger.com/atom/ns#">meta</category><title>So, what Do YOU think?</title><description>I have set up a &lt;a href="http://www.drupal.org"&gt;Drupal&lt;/a&gt; site at &lt;a href="http://coals2newcastle.com/newcastle"&gt;http://coals2newcastle.com/newcastle&lt;/a&gt; that I'm testing as a possible homepage for Coals 2 Newcastle.  The nice thing about having a real domain is that I have control over exactly how it looks. The problem with that is HTML is tedious, and I'd like some software that helps relieve that tedium.  &lt;div&gt;So, if I can figure out how to do it, I'll set up a poll on this blog, asking for advice on what CMS you all think is the best.  The only real limits are that my hosting company only allows Perl, PHP and Python right now, with maybe Ruby sometime in the future.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, let me know what you think of the Drupal site in the comments, or if you have a CMS that you love you can list that too.  Thanks all!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;P.S. - There is now a &lt;a href="http://194750.spreadshirt.com/"&gt;Coals 2 Newcastle store&lt;/a&gt;!  It's only got three items in it so far, but I'm open to suggestions for anything else you think I should be selling!&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=zOzZNaF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=zOzZNaF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=SXq42KF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=SXq42KF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=QKZ6Daf"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=QKZ6Daf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/255584206" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/255584206/so-what-do-you-think.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/03/so-what-do-you-think.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-7785312191550740503</guid><pubDate>Mon, 17 Mar 2008 20:24:00 +0000</pubDate><atom:updated>2008-03-17T14:25:56.508-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">quotes</category><category domain="http://www.blogger.com/atom/ns#">nate</category><title>How I program</title><description>I am always doing that which I cannot do, in order that I may learn how to do it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--Pablo Picasso&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=LZJBPYF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=LZJBPYF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=BorbkaF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=BorbkaF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=L00Dnqf"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=L00Dnqf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/253213404" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/253213404/how-i-program.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/03/how-i-program.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-3275879011034862214</guid><pubDate>Tue, 11 Mar 2008 18:05:00 +0000</pubDate><atom:updated>2008-03-11T12:13:32.370-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Ruby</category><category domain="http://www.blogger.com/atom/ns#">Rails</category><title>Finally!</title><description>Er, well, it's been around for at least two years, but I've finally found it, so it feels like a breakthrough to me, er, so, well....&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway,  I've been doing some (very basic) &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; and &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; programming lately, and my biggest complaint is that Rails is woefully under-documented.  Like any intelligent person would, I have held the &lt;a href="http://www.php.net/manual/en/"&gt;PHP manual&lt;/a&gt; up as the standard against which all others are to be judged. Someone else apparently had the same idea, because they started &lt;a href="http://railsapi.org"&gt;Railsapi.org&lt;/a&gt;.  &lt;/div&gt;&lt;div&gt;So now you have a nicely searchable way to get to all the methods that Rails uses, with notes, user-submitted comments, and all the stuff that has made the PHP manual excellent.  &lt;/div&gt;&lt;div&gt;Anyway, take a look and say thanks to the people who started it.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=b2cWhrF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=b2cWhrF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=RKFVL1F"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=RKFVL1F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=FXCBvxf"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=FXCBvxf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/249666739" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/249666739/finally.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/03/finally.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-7161944800848838141</guid><pubDate>Tue, 11 Mar 2008 15:31:00 +0000</pubDate><atom:updated>2008-03-11T10:06:54.354-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Web culture</category><category domain="http://www.blogger.com/atom/ns#">Funny</category><title>Guide to Hackers</title><description>Many people enjoy spotting hackers in the wild, but without a guide, it can be difficult to identify the different species of hackers.  I have prepared this simple list to help you in your hackerthology.  Have fun!&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Common Characteristics&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;A hacker differs from a normal human being on several points.  At it's broadest, the definition of a hacker is "Someone who creatively and energetically works toward the solution to a problem."  The different variations of hackers are identified by the types of problems they are trying to solve.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;White Hat Hackers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Often called "IT guys" or "Network Security", these hackers usually live in the basements of office buildings, where they seek to defend their network from their black-hatted cousins.  White Hats can be identified by their plumage, which usually looks like a polo shirt with a corporate logo on it.  They have been seen building nests for themselves out of CAT-5 cable and old computer components that others in the building have discarded.  If you see a basement office that has more than three non-working monitors, you have found a White Hat nest. While White Hats can learn English, but their use of language is so stilted and unnatural that many people suspect it is just rote memorization and not true communication.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Black Hat Hackers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Black Hats, often known as "HaXxorz" (or any of a thousand other variants) are often seen congregating in irc channels, where the males will boast of their largest kills.  Black Hats are known for their desire to gain access to information they aren't supposed to see, like other people's credit card numbers, passwords, confidential files, and so forth.  Their natural enemy is the White Hats.  Black Hats prey on &lt;span class="Apple-style-span" style="font-style: italic;"&gt;users; &lt;/span&gt;a strange life form that moves across the Internet in seemingly endless droves.  A sub-species of Black Hat, known as the "bot herder" builds houses of several thousand computers all over the world.  &lt;/div&gt;&lt;div&gt;Pesticides, usually sold under the name of "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Norton anti-virus&lt;/span&gt;" or "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;McAffee Security Center&lt;/span&gt;" can provide some relief from these irritating pests, but so far no measure has been found truly effective in wiping them out.  So far, these creatures are mainly found in Microsoft environments.  People living in Mac and Linux regions report fewer problems with Black Hat infestations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Baseball Hat Hackers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Also called "Lesser Hackers" or "losers", these hackers use their energy to gain passwords to software for free.  They collect thousands of programs, much like magpies collect pieces of foil, and then trade around for more "warez".  More contemptible than frightening, the Lesser Hacker often lives in it's parents' basement long past the age where most hackers start their fledgling activities.  Lesser Hackers are not to be confused with &lt;span class="Apple-style-span" style="font-style: italic;"&gt;script kiddies&lt;/span&gt;, which are immature Black Hats.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;"Just Another" Perl Hackers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Perl Hackers are an odd and rapidly dying breed of hacker that is known for its love of esoteric lore and bad poetry.  Perl hackers are usually smug, but happy, and have been seen in the wild in a number of locations, from offices to beaches.  Their number is falling due to many factors, including competition from invaders such as &lt;span class="Apple-style-span" style="font-style: italic;"&gt;PHP developers&lt;/span&gt; and the Ruby-loving &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Pragmatic Programmers&lt;/span&gt;, both of whom compete for the Perl Hacker's niche.  As yet, their number hasn't diminished to the point that they are  eligible for federal protection, but it's suspected that their time is coming.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Editor's Note:&lt;/span&gt; This guide has laid out just a few of the major varieties of hackers.  There are many other varieties and sub-species, but this is enough to get started.  It is hoped that the author will soon be able to complete his exhaustive work, &lt;/span&gt;The Proper Care and Feeding of a White Hat Hacker&lt;span class="Apple-style-span" style="font-style: italic;"&gt; by third quarter, 2008.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=SG4Io3F"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=SG4Io3F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=PC1zTcF"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=PC1zTcF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=MjTWIrf"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=MjTWIrf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/249585316" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/249585316/guide-to-hackers.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/03/guide-to-hackers.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-174871315057012202.post-2821569188068586920</guid><pubDate>Thu, 28 Feb 2008 16:54:00 +0000</pubDate><atom:updated>2008-02-28T09:59:33.063-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">study</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">php</category><category domain="http://www.blogger.com/atom/ns#">certification</category><title>If at first...</title><description>I don't know that this is standard practice, but I just thought I'd mention that I didn't quite pass the ZCE test on Monday.  I'm going to give it another shot, but I just thought, if anyone is out there thinking of taking it, here's some things that were on the test but not in the book:&lt;div&gt;&lt;ul&gt;&lt;li&gt;lots about php.ini.  Learn what's in that file, what you can change, and how.&lt;/li&gt;&lt;li&gt;Arrays, arrays and more arrays.  I realize that there is a whole chapter about arrays in the book, but it's not enough.&lt;/li&gt;&lt;li&gt;Database access questions like crazy.&lt;/li&gt;&lt;li&gt;OOP stuff (I actually did very well on that part)&lt;/li&gt;&lt;li&gt;Security questions&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The book is great, but expect questions on topics that you don't use everyday.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, I'm going back to the drawing board, studying my brains out again, and I'll try again next month.  Fortunately, Zend knocks $25 off the re-take price.  That's kinda nice.&lt;/div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=HYgOojE"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=HYgOojE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=k5Bf7AE"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=k5Bf7AE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Coals2Newcastle?a=T7D6ULe"&gt;&lt;img src="http://feeds.feedburner.com/~f/Coals2Newcastle?i=T7D6ULe" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Coals2Newcastle/~4/242827990" height="1" width="1"/&gt;</description><link>http://feeds.feedburner.com/~r/Coals2Newcastle/~3/242827990/if-at-first.html</link><author>noreply@blogger.com (Nate Dickson)</author><feedburner:origLink>http://blog.coals2newcastle.com/2008/02/if-at-first.html</feedburner:origLink></item></channel></rss>
