<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<link rel="self" href="/Atom/" />
	<id>http://billmill.org/</id>
	<title>My Name Rhymes</title>
	<subtitle>Bill Mill blogs irregularly</subtitle>
	<updated>2007-08-24T01:50:00Z</updated>
	<author>
		<name>Bill Mill</name>
		<email>bill.mill@gmail.com</email>
		<uri>http://billmill.org/</uri>
	</author>
	<link href="http://billmill.org/" />
	<entry>
		<title>Why Applications Suck (Part 1)</title>
		<link href="http://billmill.org/why_apps_suck.html" />	
		<id>http://billmill.org/why_apps_suck.html</id>
		<updated>2007-08-24T01:50:00Z</updated>
		<summary type="html">Why do people outside of corporations overwhelmingly use webmail instead of 
email clients? Long before rich email clients like gmail were available, people 
have flocked to the internet email client - messaging has been the killer 
feature of the web for a long time now.&lt;p&gt;
But why?&lt;p&gt;
The answer is simple: Overwhelmingly, users do not want to install programs, 
and users do not want their data stored on their computer. In that order of 
importance.&lt;p&gt;
&lt;h2&gt;Users Don't Want to Install Programs&lt;/h2&gt;&lt;p&gt;
Let's examine the process of getting a popular, free, email client like &lt;a 
href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt; installed. To 
do so, imagine that we're instructing our kindly aunt Tilly how to install 
it.&lt;p&gt;
Now Tilly is no old fogie, she's been using Microsoft Word at work for over a 
decade now, and she knows her way around msn.com. However, she just decided to 
strike out looking for a new job, and wants to finally use that personal email 
address that came with her cable internet. She's got us trapped on the phone, 
and "we know computers", so here's roughly what we'll tell her to do:&lt;p&gt;
&lt;ol&gt;&lt;li&gt;type google.com in the address bar
&lt;li&gt;type in "thunderbird"; press enter
&lt;li&gt;click on the first result
&lt;li&gt;click on "Download Thunderbird"
&lt;li&gt;click "OK"
&lt;li&gt;choose a place to save it (Just use the desktop, Tilly!)
&lt;li&gt;minimize the browser
&lt;li&gt;hunt for the file named "Thunderbird"
&lt;/ol&gt;&lt;p&gt;

And, ohmigod, we're not even close to done. She's still got to run the 
installer (3-4 clicks minimum), which involves selecting an installation 
directory (a what?), then open the program, open the tools -&gt; accounts menu 
option, find the documentation for her service provider's email tools, copy 
them into the "add new account" wizard (another 3-4 clicks) where appropriate, 
remember her user name and password, and then download all the email she's had 
sitting there since she hasn't checked it ever.&lt;p&gt;
Now, finally, she's ready to use her email client. It's just that easy!&lt;p&gt;
Let's compare the process for getting her up and running with gmail:&lt;p&gt;
&lt;ol&gt;&lt;li&gt;type "gmail.com" in the address bar
&lt;li&gt;click on "sign up for gmail"
&lt;li&gt;fill out a form (a task she probably knows how to do)
&lt;li&gt;click on "I accept. Create my account."
&lt;/ol&gt;&lt;p&gt;
Now, Tilly may not be the most technological mind around, but she's also no 
dummy. I know which one I'd rather direct her to do.&lt;p&gt;
Desktop application install is a problem.&lt;p&gt;
&lt;h2&gt;Do We Even Want to Fix This?&lt;/h2&gt;
Many web 2.0-savvy types will tell us that this isn't a big deal. In the 
future, all of our applications should be inside our browser, and to speak 
otherwise is heresy!  The desktop is dead! Sure, Javascript + Json + the 
browser has limitations, but those restrictions are liberating! Get used to it, 
or perish!&lt;/p&gt;
Well, bah humbug. Here's what's good about the web: The easy posting, viewing, 
and navigating of documents described by URIs.&lt;p&gt;
That's it.&lt;p&gt;
Let me repeat it for clarity: The web, in your browser, is &lt;em&gt;only really good 
at&lt;/em&gt; sending discrete data, displaying discrete documents and navigating in between 
them.&lt;p&gt;
Phew.&lt;p&gt;
The whole paradigm is absolutely superb at getting this job done. The system of 
hyperlinks, URIs, DNS, and HTTP over TCP/IP is the greatest achievement that 
computer programmers have achieved, a massive global effort that has managed to  
stay amazingly open and coherent. It "Just Works" enough to change the way 
information is distributed, businesses are run and even how society is 
structured.&lt;p&gt;
Anything amenable to being represented as discrete visual documents has taken 
to the internet like a duck to water. Chief among them is email; check out the 
&lt;a href="http://www.alexa.com/site/ds/top_sites?ts_mode=global&amp;lang=none"&gt;top 
100 global&lt;/a&gt; Alexa websites and see how many "social networks" in how many 
languages are in the top 100. Sites displaying news (documents), photographs 
(documents), videos (strictly as documents), and information about software 
(documents) make up most of the rest.&lt;p&gt;
What's left among those 100 is the elephant in the room; the Killer Internet 
Application: search. Even Microsoft's lame search engine finds its way into the 
top 100 because people will do whatever they need to in order to search the 
web; it's the only way to get an effective handle on the information in the 
Great Hyperlinked Mass. I believe it's the exception to my "web is only good at 
documents" theory that proves the rule.&lt;p&gt;
&lt;h2&gt;Search Works, so Let's Put All our Apps On the Web&lt;/h2&gt;
Since the web gained massive worldwide popularity in the mid-1990s, an enormous 
amount of effort has been spent on making the browser into an application 
development platform.  The Great Mozilla Rewrite basically shut that browser 
down between 1998 and 2002 in order to make it an application platform.  
Microsoft developed activeX, Sun pushed Java applets as the solution, Adobe 
developed SVG, and Macromedia developed its Flash player.&lt;p&gt;
Nowadays, Firefox is pushing &amp;lt;canvas&amp;gt;, Microsoft has released 
Silverlight, Macromedia has become Adobe, and Flash is the only one of the 
first generation technologies still breathing oxygen as a development 
platform.&lt;p&gt;
Furthermore, with the invention of Google Gears, &lt;a 
href="http://joyeur.com/2007/03/22/joyent-slingshot"&gt;Joyent Slingshot&lt;/a&gt;, the 
aforementioned Silverlight, or Adobe Air, you might soon be able to (gasp) save 
files to the host computer! That's right, in 10 years we've almost gotten to 
the point where a program running in a browser can save a file on your hard 
drive and read it when you're offline.&lt;p&gt;
The problem is that, fundamentally, a browser is &lt;em&gt;still&lt;/em&gt; only good at 
one thing: documents. Its whole paradigm is set up that way. What does the 
"back button" mean when you're playing a game of asteroids? What does "home" 
mean while you're editing a photo? Does an address bar on an mp3 player need to 
be so &lt;em&gt;in your face&lt;/em&gt;?&lt;p&gt;
&lt;h2&gt;We Can Fix This&lt;/h2&gt;
So, instead of shoehorning our applications inside of the browser window 
because it's convenient, let's do something radical: bring our "real software" 
applications into the modern age of the internet.&lt;p&gt;
In the &lt;a href="why_apps_suck2.html"&gt;next article&lt;/a&gt;, we'll talk about how 
software installation came to suck so 
badly, with an eye towards how to go about bringing it up to the web era.&lt;p&gt;
</summary>
		<content type="html">Why do people outside of corporations overwhelmingly use webmail instead of 
email clients? Long before rich email clients like gmail were available, people 
have flocked to the internet email client - messaging has been the killer 
feature of the web for a long time now.&lt;p&gt;
But why?&lt;p&gt;
The answer is simple: Overwhelmingly, users do not want to install programs, 
and users do not want their data stored on their computer. In that order of 
importance.&lt;p&gt;
&lt;h2&gt;Users Don't Want to Install Programs&lt;/h2&gt;&lt;p&gt;
Let's examine the process of getting a popular, free, email client like &lt;a 
href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt; installed. To 
do so, imagine that we're instructing our kindly aunt Tilly how to install 
it.&lt;p&gt;
Now Tilly is no old fogie, she's been using Microsoft Word at work for over a 
decade now, and she knows her way around msn.com. However, she just decided to 
strike out looking for a new job, and wants to finally use that personal email 
address that came with her cable internet. She's got us trapped on the phone, 
and "we know computers", so here's roughly what we'll tell her to do:&lt;p&gt;
&lt;ol&gt;&lt;li&gt;type google.com in the address bar
&lt;li&gt;type in "thunderbird"; press enter
&lt;li&gt;click on the first result
&lt;li&gt;click on "Download Thunderbird"
&lt;li&gt;click "OK"
&lt;li&gt;choose a place to save it (Just use the desktop, Tilly!)
&lt;li&gt;minimize the browser
&lt;li&gt;hunt for the file named "Thunderbird"
&lt;/ol&gt;&lt;p&gt;

And, ohmigod, we're not even close to done. She's still got to run the 
installer (3-4 clicks minimum), which involves selecting an installation 
directory (a what?), then open the program, open the tools -&gt; accounts menu 
option, find the documentation for her service provider's email tools, copy 
them into the "add new account" wizard (another 3-4 clicks) where appropriate, 
remember her user name and password, and then download all the email she's had 
sitting there since she hasn't checked it ever.&lt;p&gt;
Now, finally, she's ready to use her email client. It's just that easy!&lt;p&gt;
Let's compare the process for getting her up and running with gmail:&lt;p&gt;
&lt;ol&gt;&lt;li&gt;type "gmail.com" in the address bar
&lt;li&gt;click on "sign up for gmail"
&lt;li&gt;fill out a form (a task she probably knows how to do)
&lt;li&gt;click on "I accept. Create my account."
&lt;/ol&gt;&lt;p&gt;
Now, Tilly may not be the most technological mind around, but she's also no 
dummy. I know which one I'd rather direct her to do.&lt;p&gt;
Desktop application install is a problem.&lt;p&gt;
&lt;h2&gt;Do We Even Want to Fix This?&lt;/h2&gt;
Many web 2.0-savvy types will tell us that this isn't a big deal. In the 
future, all of our applications should be inside our browser, and to speak 
otherwise is heresy!  The desktop is dead! Sure, Javascript + Json + the 
browser has limitations, but those restrictions are liberating! Get used to it, 
or perish!&lt;/p&gt;
Well, bah humbug. Here's what's good about the web: The easy posting, viewing, 
and navigating of documents described by URIs.&lt;p&gt;
That's it.&lt;p&gt;
Let me repeat it for clarity: The web, in your browser, is &lt;em&gt;only really good 
at&lt;/em&gt; sending discrete data, displaying discrete documents and navigating in between 
them.&lt;p&gt;
Phew.&lt;p&gt;
The whole paradigm is absolutely superb at getting this job done. The system of 
hyperlinks, URIs, DNS, and HTTP over TCP/IP is the greatest achievement that 
computer programmers have achieved, a massive global effort that has managed to  
stay amazingly open and coherent. It "Just Works" enough to change the way 
information is distributed, businesses are run and even how society is 
structured.&lt;p&gt;
Anything amenable to being represented as discrete visual documents has taken 
to the internet like a duck to water. Chief among them is email; check out the 
&lt;a href="http://www.alexa.com/site/ds/top_sites?ts_mode=global&amp;lang=none"&gt;top 
100 global&lt;/a&gt; Alexa websites and see how many "social networks" in how many 
languages are in the top 100. Sites displaying news (documents), photographs 
(documents), videos (strictly as documents), and information about software 
(documents) make up most of the rest.&lt;p&gt;
What's left among those 100 is the elephant in the room; the Killer Internet 
Application: search. Even Microsoft's lame search engine finds its way into the 
top 100 because people will do whatever they need to in order to search the 
web; it's the only way to get an effective handle on the information in the 
Great Hyperlinked Mass. I believe it's the exception to my "web is only good at 
documents" theory that proves the rule.&lt;p&gt;
&lt;h2&gt;Search Works, so Let's Put All our Apps On the Web&lt;/h2&gt;
Since the web gained massive worldwide popularity in the mid-1990s, an enormous 
amount of effort has been spent on making the browser into an application 
development platform.  The Great Mozilla Rewrite basically shut that browser 
down between 1998 and 2002 in order to make it an application platform.  
Microsoft developed activeX, Sun pushed Java applets as the solution, Adobe 
developed SVG, and Macromedia developed its Flash player.&lt;p&gt;
Nowadays, Firefox is pushing &amp;lt;canvas&amp;gt;, Microsoft has released 
Silverlight, Macromedia has become Adobe, and Flash is the only one of the 
first generation technologies still breathing oxygen as a development 
platform.&lt;p&gt;
Furthermore, with the invention of Google Gears, &lt;a 
href="http://joyeur.com/2007/03/22/joyent-slingshot"&gt;Joyent Slingshot&lt;/a&gt;, the 
aforementioned Silverlight, or Adobe Air, you might soon be able to (gasp) save 
files to the host computer! That's right, in 10 years we've almost gotten to 
the point where a program running in a browser can save a file on your hard 
drive and read it when you're offline.&lt;p&gt;
The problem is that, fundamentally, a browser is &lt;em&gt;still&lt;/em&gt; only good at 
one thing: documents. Its whole paradigm is set up that way. What does the 
"back button" mean when you're playing a game of asteroids? What does "home" 
mean while you're editing a photo? Does an address bar on an mp3 player need to 
be so &lt;em&gt;in your face&lt;/em&gt;?&lt;p&gt;
&lt;h2&gt;We Can Fix This&lt;/h2&gt;
So, instead of shoehorning our applications inside of the browser window 
because it's convenient, let's do something radical: bring our "real software" 
applications into the modern age of the internet.&lt;p&gt;
In the &lt;a href="why_apps_suck2.html"&gt;next article&lt;/a&gt;, we'll talk about how 
software installation came to suck so 
badly, with an eye towards how to go about bringing it up to the web era.&lt;p&gt;
</content>
	</entry>
	<entry>
		<title>Open Letter to Mozilla: Put up or Shut up</title>
		<link href="http://billmill.org/putup.html" />	
		<id>http://billmill.org/putup.html</id>
		<updated>2007-05-21T21:14:00Z</updated>
		<summary type="html">I have been using Firefox since it was &lt;a 
href="http://www.flexbeta.net/main/printarticle.php?id=89"&gt;Phoenix 0.1&lt;/a&gt;. It 
was the best browser then, and it is the best browser now. The first computer 
language that I ever &lt;a 
href="http://vzone.virgin.net/sizzling.jalfrezi/iniframe.htm"&gt;learned&lt;/a&gt; was 
HTML, and I learned it largely by hitting "View Source". Without it, who knows 
if I would be a programmer today?&lt;p&gt;
Today, though, the world is a different one than it was back in 1998 when I was 
plunking around with HTML. Broadband has (finally!) gotten widespread adoption, 
and with it the web has gotten past animated rollover effects. &lt;a 
href="http://youtube.com"&gt;Youtube&lt;/a&gt; serves millions of crappy videos per 
year, &lt;a href="http://pandora.com"&gt;pandora.com&lt;/a&gt; sends millions of bits worth 
of music over the wire every day, and you can head over to &lt;a 
href="http://espn.go.com"&gt;espn.com&lt;/a&gt; and check out the highlight's of 
tonight's Red Sox - Yankees game.&lt;p&gt;
And do you notice something that all three of those sites have in common? All 
of them use &lt;a href="http://www.adobe.com/products/flashplayer/"&gt;Flash&lt;/a&gt; to 
serve their content. So, while I'm not a big fan of people developing in a 
closed environment that costs &lt;a 
href="http://www.newegg.com/Product/Product.aspx?Item=N82E16832105307"&gt;ungodly 
amounts of money&lt;/a&gt; to develop in, and leaves *nix developers in the dark, I'm 
a bigger fan of innovative products and services continuing to crop up on the 
internet.&lt;p&gt;
Mozilla, information may want to be free, but it won't be if it can't 
outcompete the closed kind. You are in a unique position to make that happen, 
but you're falling behind. We all know about Java applets, and Flash has been 
around for a while, but with the release of &lt;a 
href="http://www.microsoft.com/silverlight/"&gt;Silverlight&lt;/a&gt; and &lt;a 
href="http://labs.adobe.com/wiki/index.php/Apollo"&gt;Apollo&lt;/a&gt;, the web is 
threatening to sneak away from us. It's awfully tempting that one lets me write 
rich web interfaces &lt;a 
href="http://aleiby.blogspot.com/2007/05/silverlight.html"&gt;in my favorite 
language&lt;/a&gt;, and the other lets me &lt;a 
href="http://labs.adobe.com/wiki/index.php/Apollo:Articles:Taking_Apollo_Applications_Offline"&gt;bring 
my applications offline&lt;/a&gt;.&lt;p&gt;
So while it's all well and good to post about &lt;a 
href="http://shaver.off.net/diary/2007/05/10/the-high-cost-of-some-free-tools/"&gt;the 
high cost of free tools&lt;/a&gt;, and talk about how important Freedom is, you need 
to bring us a viable alternative. Give me the tools to write a &lt;a 
href="http://paulbuchheit.blogspot.com/2007/05/flash-silverlight-and-javafx-all-look.html"&gt;file 
upload box&lt;/a&gt; that doesn't suck; Give me the tools to show my users &lt;a 
href="http://ajaxian.com/archives/opera-element-proposal"&gt;video&lt;/a&gt; and audio; 
Give me the tools to put the closed-source developers to shame.  Maybe someday 
SVG &lt;a href="http://www.themaninblue.com/writing/perspective/2007/04/18/"&gt;won't 
suck&lt;/a&gt;, or &lt;a 
href="http://developer.mozilla.org/en/docs/Drawing_Graphics_with_Canvas"&gt;&amp;lt;canvas&amp;gt;&lt;/a&gt;
will be a viable answer to flash.&lt;p&gt;
If that day doesn't come soon, it may come too late.&lt;p&gt;
&lt;b&gt;Update:&lt;/b&gt; jerf at reddit &lt;a 
href="http://programming.reddit.com/info/1sijf/comments/c1sj3h"&gt;takes a 
slightly different angle&lt;/a&gt;, but says some things that I think but that I failed to get 
across.&lt;p&gt;
</summary>
		<content type="html">I have been using Firefox since it was &lt;a 
href="http://www.flexbeta.net/main/printarticle.php?id=89"&gt;Phoenix 0.1&lt;/a&gt;. It 
was the best browser then, and it is the best browser now. The first computer 
language that I ever &lt;a 
href="http://vzone.virgin.net/sizzling.jalfrezi/iniframe.htm"&gt;learned&lt;/a&gt; was 
HTML, and I learned it largely by hitting "View Source". Without it, who knows 
if I would be a programmer today?&lt;p&gt;
Today, though, the world is a different one than it was back in 1998 when I was 
plunking around with HTML. Broadband has (finally!) gotten widespread adoption, 
and with it the web has gotten past animated rollover effects. &lt;a 
href="http://youtube.com"&gt;Youtube&lt;/a&gt; serves millions of crappy videos per 
year, &lt;a href="http://pandora.com"&gt;pandora.com&lt;/a&gt; sends millions of bits worth 
of music over the wire every day, and you can head over to &lt;a 
href="http://espn.go.com"&gt;espn.com&lt;/a&gt; and check out the highlight's of 
tonight's Red Sox - Yankees game.&lt;p&gt;
And do you notice something that all three of those sites have in common? All 
of them use &lt;a href="http://www.adobe.com/products/flashplayer/"&gt;Flash&lt;/a&gt; to 
serve their content. So, while I'm not a big fan of people developing in a 
closed environment that costs &lt;a 
href="http://www.newegg.com/Product/Product.aspx?Item=N82E16832105307"&gt;ungodly 
amounts of money&lt;/a&gt; to develop in, and leaves *nix developers in the dark, I'm 
a bigger fan of innovative products and services continuing to crop up on the 
internet.&lt;p&gt;
Mozilla, information may want to be free, but it won't be if it can't 
outcompete the closed kind. You are in a unique position to make that happen, 
but you're falling behind. We all know about Java applets, and Flash has been 
around for a while, but with the release of &lt;a 
href="http://www.microsoft.com/silverlight/"&gt;Silverlight&lt;/a&gt; and &lt;a 
href="http://labs.adobe.com/wiki/index.php/Apollo"&gt;Apollo&lt;/a&gt;, the web is 
threatening to sneak away from us. It's awfully tempting that one lets me write 
rich web interfaces &lt;a 
href="http://aleiby.blogspot.com/2007/05/silverlight.html"&gt;in my favorite 
language&lt;/a&gt;, and the other lets me &lt;a 
href="http://labs.adobe.com/wiki/index.php/Apollo:Articles:Taking_Apollo_Applications_Offline"&gt;bring 
my applications offline&lt;/a&gt;.&lt;p&gt;
So while it's all well and good to post about &lt;a 
href="http://shaver.off.net/diary/2007/05/10/the-high-cost-of-some-free-tools/"&gt;the 
high cost of free tools&lt;/a&gt;, and talk about how important Freedom is, you need 
to bring us a viable alternative. Give me the tools to write a &lt;a 
href="http://paulbuchheit.blogspot.com/2007/05/flash-silverlight-and-javafx-all-look.html"&gt;file 
upload box&lt;/a&gt; that doesn't suck; Give me the tools to show my users &lt;a 
href="http://ajaxian.com/archives/opera-element-proposal"&gt;video&lt;/a&gt; and audio; 
Give me the tools to put the closed-source developers to shame.  Maybe someday 
SVG &lt;a href="http://www.themaninblue.com/writing/perspective/2007/04/18/"&gt;won't 
suck&lt;/a&gt;, or &lt;a 
href="http://developer.mozilla.org/en/docs/Drawing_Graphics_with_Canvas"&gt;&amp;lt;canvas&amp;gt;&lt;/a&gt;
will be a viable answer to flash.&lt;p&gt;
If that day doesn't come soon, it may come too late.&lt;p&gt;
&lt;b&gt;Update:&lt;/b&gt; jerf at reddit &lt;a 
href="http://programming.reddit.com/info/1sijf/comments/c1sj3h"&gt;takes a 
slightly different angle&lt;/a&gt;, but says some things that I think but that I failed to get 
across.&lt;p&gt;
</content>
	</entry>
	<entry>
		<title>Underappreciated program of the month</title>
		<link href="http://billmill.org/underappreciated.html" />	
		<id>http://billmill.org/underappreciated.html</id>
		<updated>2004-11-28T20:33:00Z</updated>
		<summary type="html">Now that I'm back into web development, I'd like to give some props to a
program that I use all the time, but don't read about very often. &lt;a 
href="http://www.ncftp.com/ncftp/"&gt;NcFTP&lt;/a&gt; is a simple command-line ftp 
program whose main attributes are speed and simplicity.&lt;p&gt;
Back when I started doing web design, there was only one *real* ftp program
that I knew of - WsFTP. The standard upon which all of the two-paned FTP GUIs
are based, WsFTP was also a very simple program - just click the '-&gt;' button to
move a file from one server to another, and '&lt;-' did the opposite.&lt;p&gt;
That worked well for me, until I started to use Linux. Once I learned the
beauty of the command line, I began to avoid the mouse as much as possible.
Furthermore, I needed a new FTP program, since WsFTP only ran on Windows. For a
time, I settled on the original command-line 'ftp' program, but that quickly
became annoying - it was just too simple. I tried some wxWindows &lt;a 
href="http://www.wxftp.seul.org/"&gt;clone&lt;/a&gt; of WsFTP, but that just seemed an
uncomfortable hack.&lt;p&gt;
Fortunately, at some point, I discovered NcFTP (why do ftp programs all need
absurd capitalization? just curious...). It opens in a console, and does its
job simply and effectively. Here's what I'll do when I'm done writing this blog
entry to upload it to my server:&lt;p&gt;
&lt;pre&gt;&gt; open blog
&gt; lcd ~/code/web/mysite/blog
&gt; put underappreciated.txt
&lt;/pre&gt;&lt;p&gt;
And that's it. 'blog' is a bookmark which connects me to my remote server and
changes to the proper directory on that server. To set it, when I'm in that
directory already, all I have to do is type 'bookmark blog', and it will ask me
if I would like it to save my password with that bookmark. This is opposed to
the aforementioned GUI programs, where bookmarks existed, but were rather
complicated to set up.&lt;p&gt;
Furthermore, the 'lcd' and 'lls' commands allow simple local navigation, and
the program has directory and file name completion on the remote server as well
as the local machine.&lt;p&gt;
In short, NcFTP is an example of a program which is complex enough to get the
job done efficiently, yet simple enough to use with no learning curve. As you
get used to it, you simply learn more commands, which I find to be a hallmark
of a good program. If you don't use it, you should check it out; you probably
already have it if you're on a *nix, and it works with Cygwin if you're on
Windows.
</summary>
		<content type="html">Now that I'm back into web development, I'd like to give some props to a
program that I use all the time, but don't read about very often. &lt;a 
href="http://www.ncftp.com/ncftp/"&gt;NcFTP&lt;/a&gt; is a simple command-line ftp 
program whose main attributes are speed and simplicity.&lt;p&gt;
Back when I started doing web design, there was only one *real* ftp program
that I knew of - WsFTP. The standard upon which all of the two-paned FTP GUIs
are based, WsFTP was also a very simple program - just click the '-&gt;' button to
move a file from one server to another, and '&lt;-' did the opposite.&lt;p&gt;
That worked well for me, until I started to use Linux. Once I learned the
beauty of the command line, I began to avoid the mouse as much as possible.
Furthermore, I needed a new FTP program, since WsFTP only ran on Windows. For a
time, I settled on the original command-line 'ftp' program, but that quickly
became annoying - it was just too simple. I tried some wxWindows &lt;a 
href="http://www.wxftp.seul.org/"&gt;clone&lt;/a&gt; of WsFTP, but that just seemed an
uncomfortable hack.&lt;p&gt;
Fortunately, at some point, I discovered NcFTP (why do ftp programs all need
absurd capitalization? just curious...). It opens in a console, and does its
job simply and effectively. Here's what I'll do when I'm done writing this blog
entry to upload it to my server:&lt;p&gt;
&lt;pre&gt;&gt; open blog
&gt; lcd ~/code/web/mysite/blog
&gt; put underappreciated.txt
&lt;/pre&gt;&lt;p&gt;
And that's it. 'blog' is a bookmark which connects me to my remote server and
changes to the proper directory on that server. To set it, when I'm in that
directory already, all I have to do is type 'bookmark blog', and it will ask me
if I would like it to save my password with that bookmark. This is opposed to
the aforementioned GUI programs, where bookmarks existed, but were rather
complicated to set up.&lt;p&gt;
Furthermore, the 'lcd' and 'lls' commands allow simple local navigation, and
the program has directory and file name completion on the remote server as well
as the local machine.&lt;p&gt;
In short, NcFTP is an example of a program which is complex enough to get the
job done efficiently, yet simple enough to use with no learning curve. As you
get used to it, you simply learn more commands, which I find to be a hallmark
of a good program. If you don't use it, you should check it out; you probably
already have it if you're on a *nix, and it works with Cygwin if you're on
Windows.
</content>
	</entry>
</feed>
