<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">	<channel>		<title>Truer Words - A Journal</title>		<link>http://www.truerwords.net/index/channel/customers</link>		<description>The online journal of Seth Dillingham: faith, family, code, cycling, joy, and pain.</description>		<language>en</language>		<copyright>Copyright 2008 seth@macrobyte.net</copyright>		<generator>Conversant's Weblog II plugin</generator>		<category>Customers</category>		<item>	<title>Other BBEdit Language Modules</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6164/trackback</trackback:ping>	<link>http://www.truerwords.net/6164</link>	<pubDate>Mon, 31 Mar 2008 18:29:49 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6164</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6163#msg6164</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>Rich Siegel</category>	<category>BBEdit</category>	<description>&lt;p&gt;Rich read the &lt;a href=&quot;http://www.truerwords.net/6163&quot;&gt;Why I Wrote a JavaScript Module for BBEdit&lt;/a&gt; story, but like everyone else at Bare Bones decided to respond to me directly instead of posting something on the site. (Jim Correia has been guilty of this so many times it's now an old joke.) Anyway, he suggests that list the other languages/modules I've added to BBEdit since the JavaScript module&lt;/p&gt;&lt;p&gt;They are, in no particular order:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;Strings (for MacOS X developers)&lt;/li&gt;	&lt;li&gt;Python&lt;/li&gt;	&lt;li&gt;Markdown&lt;/li&gt;	&lt;li&gt;SQL (five flavors)&lt;/li&gt;	&lt;li&gt;Ruby&lt;/li&gt;	&lt;li&gt;Java&lt;/li&gt;	&lt;li&gt;TeX&lt;/li&gt;	&lt;li&gt;Lua&lt;/li&gt;	&lt;li&gt;YAML&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;My favorite is still the JavaScript module. My least favorite is definitely the Markdown module (see Markdown.pl's source code and look for the author's comment, &quot;This is an aspect of Markdown's syntax that's hard to parse perfectly without resorting to mind-reading&quot; and maybe you'll understand my issues with it.)&lt;/p&gt;&lt;p&gt;My second favorite is the Python module, because Guido van Rossum wrote the gold standard of language specifications. He doesn't just describe the language syntax with near perfect clarity, he also has implementor hints! It's like he was in the room with me when I wrote that module, telling me what I should do here or there. His work made my work better, and there have been very few bugs reported in the Python module since its release.&lt;/p&gt;&lt;p&gt;My second &lt;b&gt;least&lt;/b&gt; favorite module is YAML, for the same (or opposite) reason. The specification is obtuse, repetitive, unclear and unrealistic. It's full of internal language which you can only comprehend by looking for definitions elsewhere in the document, and inevitably those definitions have more internal language. (I'm working on an update to the YAML module, and the authors of YAML actually admitted to these problems in several IRC chats we had in the last few weeks).&lt;/p&gt;&lt;p&gt;I have various other unfinished language modules sitting around on my computer, waiting for me to make time for them, but all of the above have been released with BBEdit 8.5, 8.6, or 8.7.&lt;/p&gt;</description>	</item><item>	<title>BBEdit 8.7.2 Released Today</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6114/trackback</trackback:ping>	<link>http://www.barebones.com/support/bbedit/arch_bbedit872.shtml</link>	<pubDate>Wed, 19 Dec 2007 21:02:19 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6114</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6114#msg6114</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>BBEdit</category>	<description>&lt;p&gt;&lt;a href=&quot;http://www.barebones.com/&quot; title=&quot;Bare Bones Software, Inc.&quot;&gt;Bare Bones&lt;/a&gt; just released version 8.7.2 of &lt;a href=&quot;http://www.barebones.com/products/bbedit/&quot;&gt;BBEdit&lt;/a&gt;. This is a free maintenance update for anyone who owns a license to 8.5 or newer. &lt;a href=&quot;http://www.barebones.com/support/bbedit/arch_bbedit872.shtml&quot;&gt;Here are the release notes.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I had a small hand in this update. In the release notes is a list of fixed bugs, two of which are mine:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;Fixed bug in which TeX syntax coloring would get out of whack if &quot;Color Math Strings&quot; was turned off and the scanner encountered certain constructs in the document.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;&lt;p&gt;Fixed bug in which the JavaScript function scanner could crash on certain malformed (usually because of in-progress edits) constructs.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There's lots more good stuff in store (way more than just bug fixes!), but some of the fixes in this release needed to get into people's hands sooner than later.&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(Remember the &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;BBEdit Disclaimer&lt;/a&gt;.)&lt;/p&gt;</description>	</item><item>	<title>Faster Code (Converting HTML to Text)</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6092/trackback</trackback:ping>	<link>http://www.truerwords.net/6092</link>	<pubDate>Mon, 12 Nov 2007 15:01:17 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6092</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6092#msg6092</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>Programming</category>	<description>&lt;p&gt;Over the years I've written this code in a few different languages: take some HTML input, process it according to some of the basic rules a browser would use, and spit out plain text (no tags or HTML entities). By &quot;basic rules a browser would use,&quot; I mean that e.g. a series of &amp;lt;p&amp;gt; tags should not result in a long blank gap, but a series of &amp;lt;br /&amp;gt; tags should. Line breaks (\r or \n) don't matter except within a pre-formatted section. Etc., etc.&lt;/p&gt;&lt;p&gt;My first attempt, I think, was in straight UserTalk. Then i rewrote it a couple of times with regular expressions (still UserTalk) to make it faster. Then a client needed it in a language that could be used on any Mac OS X box, so I rewrote it in Perl, which was faster still (and was much better about converting the HTML entities to UniCode).&lt;/p&gt;&lt;p&gt;The Perl script uses lots of regular expressions, and so makes many passes over the input, changing the text in place. It worked well enough for most HTML, but long documents with a very high ratio of tags-to-text (that is, very tag heavy) would process very slowly. Unfortunately the script was run automatically in the background by a &quot;regular&quot; GUI application, and so the app would seem to freeze up for a little while as it processed one of these pathological cases.&lt;/p&gt;&lt;p&gt;Over the last week I rewrote it again, this time in pure C++. It's a command line tool with the same basic interface that the Perl script had: you can pass it an argument to specify the input file and output files. Omitting either one causes it to use standard input and/or output.&lt;/p&gt;&lt;p&gt;The new tool makes a single pass through the text, doesn't use any regular expressions, and generates slightly better output. Actually, it's more honest to say that it makes three passes through the text: first it converts UTF-8 to UTF-16 (but that's an OS API service), then it processes the UTF-16, then it converts back to UTF-8 (again, just done by the OS) for output.&lt;/p&gt;&lt;p&gt;The timing results speak for themselves. These tests use the worst, most pathological example we had. It's a 200 KB file that's about 90% tags (specifically, it's a long email exchange where everybody top-posted and quoted everything else, and everyone used HTML messages.)&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;$ time striphtmltags.pl - &amp;lt; ./striphtmltags.input.html &amp;gt; ./striphtmltags.output.txt &lt;span style=&quot;color: rgb(0, 255, 0);&quot;&gt;# old one&lt;/span&gt; real    &lt;b style=&quot;color: rgb(221, 0, 0);&quot;&gt;0m20.201s&lt;/b&gt;user    0m19.774ssys     0m0.352s $ time newstriphtml &amp;lt; ./striphtmltags.input.html &amp;gt; ./striphtmltags.output.txt &lt;span style=&quot;color: rgb(0, 255, 0);&quot;&gt;# new one&lt;/span&gt; real    &lt;b style=&quot;color: rgb(0, 0, 221);&quot;&gt;0m0.048s&lt;/b&gt;user    0m0.039ssys     0m0.010s&lt;/pre&gt;&lt;p&gt;They wanted it faster. For this worst-case scenario, it's 420 times faster. Zoom.&lt;/p&gt;</description>	</item><item>	<title>Firefox? Isn't That a Movie?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5906/trackback</trackback:ping>	<link>http://www.truerwords.net/5906</link>	<pubDate>Wed, 25 Apr 2007 19:11:32 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5906</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5906#msg5906</comments>	<category>Nits</category>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>Mozilla</category>	<category>Web Sites</category>	<description>&lt;p&gt;One of my clients has recently signed up for an online shopping cart system to work with his catalog (which is based on &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;When a customer buys something through this shopping cart system, they're shown a confirmation page with a link back to a specific page on the vendor's site. That's totally standard.&lt;/p&gt;&lt;p&gt;The link appears to use JavaScript to submit a form which POSTs the sale's data (minus the truly private info like credit card number) back to a page on the vendor's site. Still pretty common (except their implementation doesn't actually work).&lt;/p&gt;&lt;p&gt;They &lt;b&gt;claim&lt;/b&gt; that it only works in IE. Not in Firefox, not in Safari, not in Opera. Why worry about those, they're just &lt;a href=&quot;http://www.xitimonitor.com/en-us/browsers-barometer/firefox-march-2007/index-1-2-3-77.html&quot;&gt;a small percentage of the marketplace&lt;/a&gt;, right?&lt;/p&gt;&lt;p&gt;I'm sorry, but those people are morons.&lt;/p&gt;&lt;p&gt;Without even testing it, I can tell you that they're wrong: it doesn't work in ANY browser, not even IE. How do I know? The link just runs the script, and the script just causes the browser to navigate to the vendor's thankyou page: it never does anything with the form at all.&lt;/p&gt;&lt;p&gt;The form is all hidden fields, looking something like this:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;form action=&quot;url/of/thank-you/page&quot; name=&quot;postData&quot;&amp;gt;&lt;br&gt;&amp;lt;input type=&quot;hidden&quot; name=&quot;firstName&quot; value=&quot;Seth&quot; /&amp;gt;&lt;br&gt;etc., etc., etc.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The form's action is pointing to the correct URL... but the form is never used. The script looks like this:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;function submitForm()&lt;br&gt;{&lt;br&gt;	window.location.href=&quot;url/of/thank-you/page&quot;;&lt;br&gt;	return true;&lt;br&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you understood the above, then you know how easy it would be to fix:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;function submitForm()&lt;br&gt;{&lt;br&gt;	document.forms.postData.submit();&lt;br&gt;	return true;&lt;br&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sigh. (Even easier: do away with the javascript entirely, and replace the link with an actual submit button.)&lt;/p&gt;</description>	</item><item>	<title>Macworld 2007 Recap</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5821/trackback</trackback:ping>	<link>http://www.truerwords.net/5821</link>	<pubDate>Tue, 16 Jan 2007 01:27:14 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5821</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5821#msg5821</comments>	<category>News</category>	<category>Customers</category>	<category>People</category>	<category>Friends</category>	<category>Business</category>	<category>Travel</category>	<category>Corinne</category>	<category>Brian Andresen</category>	<category>Rich Siegel</category>	<category>Brent Simmons</category>	<description>&lt;p&gt;My intent at the start of my travels for MacWorld 2007 was to provide daily updates on my goings-on and derring-dos. Hah. With all the hours in the show hall, and Dinners (with a capital D) every night, I quickly learned that there was almost no time for writing.&lt;/p&gt;&lt;p&gt;This entry will attempt to provide those details which I can recall…&lt;/p&gt;&lt;p&gt;My previous entry finished on Monday morning, and mentioned my plans for the day. This is where we'll pick it up.&lt;/p&gt;&lt;div class=&quot;section&quot;&gt;&lt;h3&gt;Monday&lt;/h3&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Booth Setup&lt;/h4&gt;		&lt;p&gt;		Bare Bones rented a 2-meter booth in the &quot;overflow hall&quot;. There was room there for two presentation stations, or one station and stacks of literature, window stickers, and CD's. They chose the latter.&lt;/p&gt;		&lt;p&gt;		When I arrived (30 minutes early), nobody and nothing was at the booth. No boxes, no computer, no literature, nobody from Bare Bones. Nobody. So, I spent some time chatting with the guys from provue (makers of Panorama), and then went back to my hotel room.&lt;/p&gt;		&lt;p&gt;		Back to the booth again at 2:30. The &quot;media rental&quot; guy was there, and was annoyed that we hadn't received anything yet, so he made a call and five minutes later the computer (Dual G5 tower) and the display (30&quot; Apple Cinema) were delivered.&lt;/p&gt;		&lt;p&gt;		The mac had the wrong display card for that display (only 64 MB of vRam), so it was only able to drive it at 1200x800. I thought that was actually a *good thing*, as it was for presentations, not &quot;daily use.&quot; Eventually everybody agreed (or at least agreed to give it a shot), and I'm glad: the display looked great if you were standing back a few feet. We often had large crowds watching our demos, and the low-resolution display made it possible for them to see everything we were doing.&lt;/p&gt;	&lt;/div&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Brian Arrives&lt;/h4&gt;		&lt;p&gt;		Brian arrived in the area a bit early, but I couldn't leave until 3 so he found a parking space over on Mission St. and then walked over.&lt;/p&gt;		&lt;p&gt;		We met up outside, and I took him downstairs to the show entrance. Couldn't take him past the doors for the lack of an Exhibitor badge, and the 90 year old security guard was clearly prepared to Take Him Out.&lt;/p&gt;		&lt;p&gt;		Eventually Rich came out, they met, we all chatted for a minute, and then Brian and I found his car so we could go…&lt;/p&gt;	&lt;/div&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Touring Fisherman's Wharf&lt;/h4&gt;		&lt;p&gt;		Oh the tourist-trappiness. It was nearly overwhelming. Every shop offered kitsch at off-season discounts.&lt;/p&gt;		&lt;p&gt;		In the mid-nineties, while traveling all over the country at the behest of RR Donnelley's sales people, I'd been to San Francisco with Dirk Samuelson (an RRD employee). We found a shop, somewhere, with some very high quality sweatshirts and I bought a couple for my girlfriend, &lt;a href=&quot;http://corinne.truerwords.net/&quot;&gt;Corinne&lt;/a&gt;. Only recently did those sweatshirts wear out enough to require dumping, so I picked up a couple more. I couldn't find anything quite as nice as the old ones (isn't that always the way?), but I did my best by looking at the offerings of every single store.&lt;/p&gt;		&lt;a href=&quot;http://www.flickr.com/photos/sethdill/351333415/&quot; title=&quot;Brian Andresen&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/151/351333415_a6c9df6329_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; align=&quot;left&quot; alt=&quot;Brian with Alcatraz&quot; style=&quot;border: 1px solid black; margin-right: 1em;&quot; /&gt;&lt;/a&gt;		&lt;p&gt;		Brian picked up some chocolate for his girlfriend (whose name happens to meet Macrobyte's standards, even though he hasn't worked at Macrobyte in many years ;-). Then we dropped our packages at his car and returned to &lt;a href=&quot;http://flickr.com/photos/sethdill/351333274/&quot;&gt;Pier 39&lt;/a&gt; for some pictures of the &lt;a href=&quot;http://flickr.com/photos/sethdill/351333075/&quot;&gt;sea lions&lt;/a&gt; and &lt;a href=&quot;http://flickr.com/photos/sethdill/351333513/&quot;&gt;us in front of Alcatraz&lt;/a&gt;.&lt;/p&gt;		&lt;p&gt;		After the pictures, he drove me back to the Marriott and then headed back out of the city.&lt;/p&gt;		&lt;p&gt;		Brian worked for me at &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources, my company.&quot;&gt;Macrobyte&lt;/a&gt; for over a year, and we've been friends for over a decade, but that was only the second time I've met him!		&lt;/p&gt;	&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;sidebar sidebarright&quot; style=&quot;width: 2.5in&quot;&gt;&lt;h3&gt;Working the Booth&lt;/h3&gt;	&lt;p&gt;	One of the benefits of working the Bare Bones booth is that everybody already knows about the flagship product, &lt;a href=&quot;http://www.barebones.com/products/bbedit/&quot;&gt;BBEdit&lt;/a&gt;. In fact, a lot of the people who come to the booth just want a new t-shirt, want to talk about how they use it every day, or they just want to thank someone for creating it. Very cool. Some were very enthused, and that's putting it mildly. (The one day I wore the shirt all the way back to my room, I was twice accosted by BBEdit fans.)&lt;/p&gt;	&lt;p&gt;	Bare Bones wasn't there for the accolades. It makes for great PR, but the real point was to demo their newest product, &lt;a href=&quot;http://www.barebones.com/products/yojimbo/&quot;&gt;Yojimbo&lt;/a&gt;.&lt;/p&gt;	&lt;p&gt;	Truth be told, I was a bit skeptical about Yojimbo before the show. I'd been a beta tester, and then I'd used 1.0, 1.1, and 1.2 a little. I installed version 1.3 but didn't do much with it. My problem was that I was too conscious of what it didn't do, so I never really gave it a chance.&lt;/p&gt;	&lt;p&gt;	That first day, I completely avoided doing demos of Yojimbo, and instead focused on answering questions and doing anything else I could think of that would save me from having to demo an app I wasn't really sure about. I watched Ciaran and Patrick, though, and some ideas started to gestate.&lt;/p&gt;	&lt;p&gt;	Wednesday morning, first thing, someone asked me to give them a demo of Yojimbo. Overnight I had thought about it enough to know how to tackle it, so I gave my first version of what would become &quot;Seth's Yojimbo demo.&quot; It was effective, and I showed most of the app's features in about seven minutes.&lt;/p&gt;	&lt;p&gt;	Over the next three days I gave that demo many dozens of times, and kept refining it down to the point where I could literally demonstrate every feature of the application in under five minutes, while at the same time I told a simple story about using the software.&lt;/p&gt;	&lt;p&gt;	With practice I became more effective, and learned what to say. For example, I could show someone how to encrypt something in the application with a single click, but that always resulted in glazed eyes or the question, &quot;Why would I want that?&quot; However, as part of the story I mentioned that the receipt for the gift I've just purchased is right there for my wife to see, but I can hide it from her by just clicking that encrypt button: immediate comprehension.&lt;/p&gt;	&lt;p&gt;	People like stories.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;section&quot;&gt;&lt;h3&gt;Tuesday&lt;/h3&gt;	&lt;div class=&quot;section&quot;&gt;		&lt;p&gt;		Breakfast at the Garden Terrace again, this time with Patrick Woolsey (Rich Siegel's partner at Bare Bones) and &lt;a href=&quot;http://www.ciaranbenson.com/&quot;&gt;Ciaran Benson&lt;/a&gt; (who worked the booth with us all week).&lt;/p&gt;		&lt;p&gt;		After eating, Patrick and I went down to the hotel's Shipping &amp; Receiving dept. to pick up the t-shirts and schlep them over to the hall. Ciarnan went to the printer to pick up data sheets of BB's products.&lt;/p&gt;		&lt;p&gt;		Once we were all at the booth, we only had two things to do: collate all the data sheets and media kits, and fold a couple hundred t-shirts. Ciarnan worked on the paper while I folded.&lt;/p&gt;		&lt;p&gt;		Eventually, I figured out how to fold the shirts so that the Bare Bones logo was centered on the front. I showed Patrick and a volunteer from another booth how to fold them. With three folders we made short work of the pile.&lt;/p&gt;		&lt;p&gt;		Then I helped Ciarnan finish with the media kits and data sheets, just as hundreds of visitors swarmed the show floor.&lt;/p&gt;		&lt;p&gt;		Rules of the booth: drink a lot of water, use the Purel (hand sanitizer), and ask everybody if they have a question. Most will say &quot;no,&quot; immediately before asking a question.&lt;/p&gt;	&lt;/div&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Rich's Friends&lt;/h4&gt;		&lt;p&gt;		A bunch of Rich's friends came to the booth toward the end of the day, expecting that Rich would join them for dinner. He had other plans already (see below), but they still hung out at the booth for at least an hour. The bantering was fun.&lt;/p&gt;		&lt;p&gt;		Someone &lt;i&gt;fussed&lt;/i&gt; that BBEdit doesn't support a certain, very simple file type used by Mac programmers. So that night I started throwing a module together, hoping to finish it by the end of the show. &lt;i&gt;Didn't quite get there, but I did have it fully functional by Sunday night.&lt;/i&gt; (In fact, it's already in that gentleman's hands and is being beta tested.)&lt;/p&gt;	&lt;/div&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Dinner with the New Rock Stars&lt;/h4&gt;		&lt;p&gt;		Brent had written to a small group on Monday night about having dinner on Tuesday. In his words, &quot;A post-keynote, post-first-day dinner with a few smart folks sounds like just the thing.&quot; Apparently, a typo resulted in my receiving the invitation also, but rather than point it out I simply accepted. ;-)&lt;/p&gt;		&lt;p&gt;		So, Tuesday night we met at the top of the escalators before walking to the restaurant. Attendees included &lt;a href=&quot;http://inessential.com/&quot;&gt;Brent Simmons&lt;/a&gt;, &lt;a href=&quot;http://buzz.vox.com/&quot;&gt;Buzz Andersen&lt;/a&gt;, &lt;a href=&quot;http://gusmueller.com/blog/archives/2007/01/the_after_macworld_post.html&quot;&gt;Gus Mueller&lt;/a&gt; (his page mentions meeting me, in a funny way), &lt;a href=&quot;http://daringfireball.net/&quot;&gt;John Gruber&lt;/a&gt;, &lt;a href=&quot;http://www.niallkennedy.com/blog/&quot;&gt;Niall Kennedy&lt;/a&gt;, &lt;a href=&quot;http://barebones.com/&quot; title=&quot;No good link for Patrick, but he's the COO at Bare Bones.&quot;&gt;Patrick Woolsey&lt;/a&gt;, &lt;a href=&quot;http://www.pbones.com/&quot;&gt;Paul Kafasis&lt;/a&gt;, &lt;a href=&quot;http://www.glorifiedtypist.com/&quot;&gt;Rich Siegel&lt;/a&gt;, &lt;a href=&quot;http://www.sauria.com/blog&quot;&gt;Ted Leung&lt;/a&gt;, &lt;a href=&quot;http://www.truerwords.net/&quot; title=&quot;Seth Dillingham&quot;&gt;myself&lt;/a&gt;, and possibly one or two others whose names I can't remember (sorry!).&lt;/p&gt;		&lt;p&gt;		Update: &lt;a href=&quot;http://www.flickr.com/photos/twleung/358657851/&quot;&gt;Here is Ted's picture of the dinner&lt;/a&gt;.&lt;/p&gt;		&lt;p&gt;		I don't remember what I ordered, but it was terrible. Yuck. Niall — sitting right next to me — made me very jealous with his gigantic, juicy hamburger. Wah.&lt;/p&gt;		&lt;p&gt;		After the introductions, we mostly talked about the death of Apple Computer, Inc. (the pundits were right all along!), the new Apple TV, and the iPhone. Most notably, the lack of 3rd party app support on the iPhone, which bit everybody in that group right in the tuckus.&lt;/p&gt;		&lt;p&gt;		Oh, and I told my...		&lt;/p&gt;		&lt;div class=&quot;section&quot;&gt;		&lt;h4&gt;Funny John Gruber Story&lt;/h4&gt;			&lt;p&gt;			What John Gruber story? OK, here:&lt;/p&gt;			&lt;p&gt;			BBEdit 8.6 added support for the &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt; language. (Markdown is like HTML shorthand, basically.)&lt;/p&gt;			&lt;p&gt;			Writing the Markdown support for BBEdit was very challenging. This is a language that's designed to be processed once, to convert the markdown to HTML. Speed of processing was not a consideration. However, I (that is, BBEdit's Markdown module) need to process at least part of the Markdown content with every keypress, so as to figure out what to color and how to color it.&lt;/p&gt;			&lt;p&gt;			While John was beta testing the module for us, he had a bunch of very &lt;i&gt;particular&lt;/i&gt; bug reports and feature requests. He wanted everything to be just so. It was tiring, but I appreciated it because we needed a lot of testing very quickly.&lt;/p&gt;			&lt;p&gt;			Then he submitted one last bug report. Apparently, inline links can have titles (which I knew), and those titles are delimited by quotes. Here's an example:&lt;/p&gt;			&lt;/p&gt;			&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #000;&quot;&gt;This&amp;nbsp;is&amp;nbsp;some&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #A00;&quot;&gt;linked&amp;nbsp;text&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #C26700;&quot;&gt;link_url&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #C26700;&quot;&gt;link&amp;nbsp;title&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00C;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #000;&quot;&gt;.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;			&lt;p&gt;			The syntax docs on John's site said that inline link's titles were delimited by double quotes. Markdown.pl, John's implementation of Markdown in perl — the &lt;b&gt;canonical&lt;/b&gt; Markdown interpreter — used double quotes to delimit link titles.&lt;/p&gt;			&lt;p&gt;			John's bug? He pointed out that even though it's not documented, and the interpreter doesn't actually support it, it's (somehow) a bug that BBEdit did not support 'single-quote delimiters' around the link titles.&lt;/p&gt;			&lt;p&gt;			(I still think it's funny, but I guess I can see why nobody else would.)&lt;/p&gt;		&lt;/div&gt;	&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;section&quot;&gt;&lt;h3&gt;Wednesday&lt;/h3&gt;	&lt;p&gt;	I don't remember much about Wednesday except the &lt;acronym title=&quot;Macintosh Small Business&quot;&gt;MacSB&lt;/acronym&gt; dinner, which was a couple blocks from the show.&lt;/p&gt;	&lt;p&gt;	After walking down there, I almost went into the wrong place. The restaurant I could see had a sign that said &quot;Chaam Cafe,&quot; so I assumed I'd been given the wrong name. However, as I drew near I saw another restaurant next door, and the part of the sign I could read said, &quot;t Cafe&quot;. I found out Thursday that others actually went into Chaam Cafe, and two of those with whom I spoke enjoyed a Mac-related party with a bunch of people they didn't know, and got a free meal out of it!&lt;/p&gt;	&lt;p&gt;	I ate with &lt;a href=&quot;http://www.pbones.com/&quot;&gt;Paul Kafasis&lt;/a&gt; of &lt;a href=&quot;http://www.rogueamoeba.com/&quot;&gt;Rogue Amoeba&lt;/a&gt;, &lt;a href=&quot;http://www.cookingclothes.com/&quot;&gt;Jerry Kayne&lt;/a&gt;, and &lt;a href=&quot;http://jetfuel.metalbat.com/&quot;&gt;Willian Van Hecke&lt;/a&gt; from &lt;a href=&quot;http://www.omnigroup.com/&quot;&gt;The Omni Group&lt;/a&gt;. However, the restaurant was very crowded and I was tired, so I left as soon as I was done eating.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;section&quot;&gt;&lt;h3&gt;Thursday&lt;/h3&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Breakfast&lt;/h4&gt;		&lt;p&gt;		As with every other day on the show floor, we had breakfast at the Marriott. Rich joined us this time, and Agnes (one of the Omelette chefs) recognized him immediately and asked where he's been all week!&lt;/p&gt;		&lt;p&gt;		&quot;The Fetch guys&quot; sat with us.&lt;/p&gt;	&lt;/div&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;MacBrainiac Challenge&lt;/h4&gt;		&lt;p&gt;		Rich was the captain of the developers team for this year's edition of the Macworld game show, which pit the developers against the reporters with trivia questions. Chris Breen was the host.&lt;/p&gt;		&lt;p&gt;		At the last question — which was actually a challenge, not a question — the teams were tied. The challenge was to send Chris an electronic birthday greeting from their computer (one computer per team), without using email and with the understanding that his laptop was completely off the air.&lt;/p&gt;		&lt;p&gt;		The solution was to send an SMS message to his cell phone, from iChat. The contact info had been pre-loaded onto both machines, but you had to know how to use iChat with SMS. The reporters tried to use text-to-speech to have their mac deliver the message to Chris vocally, but that answer wasn't accepted. (This really annoyed Andy Inhatko.) Frankly, I think the only reason it wasn't accepted is that it's not the answer they expected. The question should have specified that the solution had to work whether Chris was in the room or 1,000 miles away.&lt;/p&gt;		&lt;p&gt;		Anyway, the developers won.&lt;/p&gt;	&lt;/div&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Show Floor&lt;/h4&gt;		&lt;p&gt;		My Yojimbo demo was in full swing by this point.&lt;/p&gt;		&lt;p&gt;		The last couple days of the show mostly blurred together, but I think this is the day that Merlin Mann interviewed Patrick at the booth for about fifteen minutes. You can &lt;a href=&quot;http://www.twit.tv/mb54&quot;&gt;watch the video, here&lt;/a&gt;.&lt;/p&gt;		&lt;p&gt;		Patrick is about 6' 4&quot; (Update: that said 6' 1&quot; originally. Sorry Patrick. All you little guys look the same!) and weighs a good and very solid 280-290 pounds. Throw in the dark hair, the beard, and the low, rumbly voice and you'll see why I call him Paul Bunyan. :-) Put a knit cap on his head, a plaid, flannel shirt on his shoulders, and an axe in his hand...&lt;/p&gt;		&lt;p&gt;		Rich wasn't around for most of the day. He spent all day meeting with press people, being interviewed about BBEdit and Yojimbo.&lt;/p&gt;	&lt;/div&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Dinner&lt;/h4&gt;		&lt;p&gt;		Rich made dinner reservations for us at a Chinese restaurant, Brandy Ho's. I walked all the way (a couple miles) in, which felt great. Man, what a city for people-watching. (Corinne wouldn't have enjoyed the walk quite so much, but as I walked I thought about how much she would have loved seeing all the people.)&lt;/p&gt;		&lt;p&gt;		In attendance at dinner: Rich, Patrick, Naomi (BB's PR person), Sandy (former BB marketer), &lt;a href=&quot;http://homepage.mac.com/applescript.guru/&quot;&gt;Sal Sahogian&lt;/a&gt;.&lt;/p&gt;		&lt;p&gt;		Yeah, that's right. I had dinner with Saul, who you all know. &lt;tt&gt;:-D&lt;/tt&gt;&lt;/p&gt;		&lt;p&gt;		He told a very funny and very memorable story about his days as a nightclub manager in NYC. No room to retell it here, but the best line was, &quot;Sal, I'm starting to get upset,&quot; said in a very quiet voice.&lt;/p&gt;		&lt;p&gt;		After dinner, Rich joined me for the walk back and we mostly talked shop until we had to split for our separate hotels.&lt;/p&gt;	&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;section&quot;&gt;&lt;h3&gt;Friday&lt;/h3&gt;	&lt;p&gt;Friday was a blur of exhaustion, sore throats, and Yojimbo-demo-burnout. ;-)&lt;/p&gt;	&lt;p&gt;	The show ended at 4 PM on Friday instead of 6 like the rest of the week, and most of the hall was rolled up by 4:30!&lt;/p&gt;	&lt;p&gt;	I couldn't find anybody at the show who was actually selling iPods (how crazy is that?), so after the show I walked to the Apple store to buy one for Corinne. Picked up a 30 GB black (which she seemed to really like when I gave it to her Saturday).&lt;/p&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Apollo&lt;/h4&gt;		&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; I met &lt;a href=&quot;http://www.mt-olympus.com/apollo/&quot;&gt;Apollo&lt;/a&gt; on Friday, for the first time ever. Not sure how I forgot this when I first wrote it up, except that I was tired of writing!&lt;/p&gt;		&lt;p style=&quot;font-style: italic;&quot;&gt;		(Apollo is a cyclist from the bay area, who has made some very generous donations to my &lt;a href=&quot;http://www.truerwords.net/fundraising/how-to-pmc.html&quot; title=&quot;Pan-Mass Challenge, a charity ride across Massachusetts&quot;&gt;PMC&lt;/a&gt; fundraising efforts in the last couple of years. He also had a &lt;a href=&quot;http://www.mt-olympus.com/apollo/archives/2005/10/31/the-news/&quot;&gt;horrendous bike accident&lt;/a&gt; that nearly ended his cycling for good.)&lt;/p&gt;		&lt;p&gt;		He works right down the street from the Moscone Center, so he took an extra-long lunch break to meet me and see the show. Rich and I were out wandering the show floor (after a friendly, thirty minute chat with the tm boys). We had stopped to talk to a known BBEdit user who happened to be 6' 6&quot; tall (Rich said he felt like a hyphen between us), when this stranger walked up and said, &quot;You must be Seth Dillingham!&quot; He figured it out based solely on the fact that there were two guys there wearing BBEdit t-shirts, and I was really tall!&lt;/p&gt;		&lt;p&gt;		The most notable moment for Apollo, though, was clearly when the cute Australian boothbabe stepped in front of him and offered him some information about some product. Let's just say she could have sold him any software... &lt;tt&gt;;-)&lt;/tt&gt;&lt;/p&gt;		&lt;p&gt;		Apollo went back to the BB booth with me, experienced The Yojimbo Demo, took a couple pictures, and went back to work. Nice to meet you finally, Apollo!&lt;/p&gt;	&lt;/div&gt;	&lt;p&gt;	Bare Bones took us out for a huge steak dinner at Harris' Restaurant. A little too far to walk (I was told), but totally worth whatever it takes to get there. Wow. Second best steak dinner I've ever had, and certainly the best ever at a restaurant. This was a celebratory &quot;family dinner,&quot; with Rich and Patrick, Naomi, Ciaran, and myself.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;section&quot;&gt;&lt;h3&gt;Saturday&lt;/h3&gt;	&lt;p&gt;Saturday morning I packed my suitcase and caught a cab. There were five people in line ahead of me for the cab, but they all got on a shuttle.&lt;/p&gt;	&lt;p&gt;	Took the taxi to Rich's hotel to pick him up, and then to the airport. So far, it was all smooth...	&lt;/p&gt;	&lt;div class=&quot;section&quot;&gt;	&lt;h4&gt;Airports Schmairport&lt;/h4&gt;		&lt;p&gt;		My itinerary said United Airlines, but when I tried to check in with United they told me I was supposed to go to US Air. GRRRRRRRRR. That's in another terminal about 500 miles away. So I said goodbye to Rich and hurried over there (though I had plenty of time).&lt;/p&gt;		&lt;p&gt;		Check-in took forever because my bag was overweight. This also cost me $50. It took them 20 minutes to print the receipt for that $50. This meant that by the time I got to the security line, I was already pretty frustrated.&lt;/p&gt;		&lt;p&gt;		Beep! That's me, trying to go through the metal detector.&lt;/p&gt;		&lt;p&gt;		&quot;Sir, you'd better take off your watch and your belt. If you beep a second time, we have to do a &lt;i&gt;personal inspection&lt;/i&gt;.&quot; That sounded ominous.&lt;/p&gt;		&lt;p&gt;		Beep! That's me, trying to go through the same metal detector with a tiny, forgotten pillbox in my pocket. I had to strip down to just shorts and t-shirt and stand in a phone booth which is rigged to detect eplosive residue. After that, the &quot;personal inspection.&quot; I had to stand with my arms out the sides, palms up, while they wanded me from head to toe. This is all done right out in the open, of course. &lt;i&gt;For your protection.&lt;/i&gt;&lt;/p&gt;		&lt;p&gt;		I checked my anger. Humiliation is the order of the day when you fly, now. It's the next best thing to security!&lt;/p&gt;	&lt;/div&gt;	&lt;p&gt;On the flight to Philly, I sat next to a Java programmer who was very jealous of how fast my MacBook Pro could wake from sleep (he had a Dell), and an old consultant to the printing industry who knew all about the startup of the RR Donnelley Lancaster West plant (which is where I met Corinne). He even thought he recognized her picture.&lt;/p&gt;	&lt;p&gt;	Philly to Providence was just a 40 minute flight, and I sat next to a couple who cuddled and made out the entire time. Touched down in Providence just a few minutes early, and walked straight to the baggage claim...&lt;/p&gt;	&lt;p&gt;	... and right past Corinne, who stood there looking amused. I realized what I'd done just a second too late. ;-) (In my defense, I was expecting her to be waiting for me outside, and I was trying to read the signs to see where my bags would come in.)&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Thank you, Bare Bones, for letting me help out at the booth. It was a great week! (And it's even better to be home!)&lt;/p&gt;</description>	</item><item>	<title>Happy New Year, One and All</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5808/trackback</trackback:ping>	<link>http://www.truerwords.net/5808</link>	<pubDate>Mon, 01 Jan 2007 16:22:11 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5808</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5808#msg5808</comments>	<category>Customers</category>	<category>Ecclesia</category>	<category>People</category>	<category>Macrobyte</category>	<category>Friends</category>	<category>Family</category>	<category>Corinne</category>	<category>Shane</category>	<category>Mom</category>	<category>Dad</category>	<category>Jed</category>	<category>Sarah</category>	<category>Art</category>	<category>Allison</category>	<category>Gramma &amp; Grampa</category>	<category>Mark &amp; Michelle</category>	<category>Dave</category>	<category>Andrew E.</category>	<category>Heather L.</category>	<category>Darren &amp; Angi</category>	<category>Eric &amp; Bonny</category>	<category>John &amp; Heather</category>	<category>Frank &amp; Bonnie</category>	<category>Gary &amp; Ellyn</category>	<category>Ken &amp; Nicole</category>	<category>Jim &amp; Betty</category>	<category>Jim Boyko</category>	<category>Steve Davis</category>	<category>Brian Andresen</category>	<category>Greg Pierce</category>	<category>Brian Carnell</category>	<category>Jim Roepcke</category>	<category>Steve Ivy</category>	<category>Clark Venable</category>	<category>Philippe Martin</category>	<category>Rich Siegel</category>	<category>Brent Simmons</category>	<description>&lt;p&gt;2006 was a good year for me and mine, in many ways.&lt;/p&gt;&lt;p&gt;To all of my family near and far, to my ecclesia here and worldwide, to all of my friends new and old, close or distant:&lt;/p&gt;&lt;h1 style=&quot;text-align: center; font-size: 500%; border: 4px dotted rgb(0, 200, 200);&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;Happy&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 204, 0);&quot;&gt;New&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 51, 255);&quot;&gt;Year!&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Hoping 2007 will be even better, for all of us...&lt;/p&gt;</description>	</item><item>	<title>What Is In that Bread Pudding, Anyway!?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5776/trackback</trackback:ping>	<link>http://www.glorifiedtypist.com/2006/11/bread_pudding.html</link>	<pubDate>Thu, 16 Nov 2006 17:08:26 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5776</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5776#msg5776</comments>	<category>Humor</category>	<category>Customers</category>	<category>People</category>	<category>Macrobyte</category>	<category>Friends</category>	<category>Technology</category>	<category>Rich Siegel</category>	<category>BBEdit</category>	<category>Programming</category>	<description>&lt;p&gt;By now most everybody &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;knows&lt;/a&gt; that &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources, my company.&quot;&gt;Macrobyte&lt;/a&gt; is doing some work for &lt;a href=&quot;http://www.barebones.com/&quot;&gt;Bare Bones&lt;/a&gt; on BBEdit. I've also become friends with Rich Siegel, the president at BB.&lt;/p&gt;&lt;p&gt;How did this come about? &lt;a href=&quot;http://www.glorifiedtypist.com/2006/11/bread_pudding_1.html&quot;&gt;Rich tells the story&lt;/a&gt; in short form, and along the way heaps praise on me, Corinne for her cooking, and even does appropriate obeisance before the telekinetic bread pudding.&lt;/p&gt;&lt;p&gt;Rich is awesome to work with, has proven himself a true friend on at lest one occasion already, and (frankly) I'm benefitting massively from his years of experience in this field. All this praise from him could go to my head, though, if I didn't know it was really the bread pudding influencing his thoughts. ;-)&lt;/p&gt;&lt;p&gt;My favorite line:&lt;/p&gt;&lt;blockquote cite=&quot;http://www.glorifiedtypist.com/2006/11/bread_pudding.html&quot; class=&quot;cite&quot;&gt;	&lt;p&gt;… she obviously enjoys cooking: big family events, small catering jobs, to say nothing of keeping Seth appropriately fed and watered. Which brings us to the &lt;a href=&quot;http://www.truerwords.net/5704&quot;&gt;sentient bread pudding&lt;/a&gt; … &lt;/p&gt;&lt;/blockquote&gt;</description>	</item><item>	<title>Tuesday's Grab Bag of Highs and Lows</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5717/trackback</trackback:ping>	<link>http://www.truerwords.net/5717</link>	<pubDate>Thu, 28 Sep 2006 01:57:47 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5717</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5717#msg5717</comments>	<category>Stats</category>	<category>Customers</category>	<category>Ecclesia</category>	<category>People</category>	<category>Cycling</category>	<category>Family</category>	<category>Weather</category>	<category>Corinne</category>	<category>Mom</category>	<category>Dad</category>	<category>Jed</category>	<category>Sarah</category>	<category>Allison</category>	<category>Gramma &amp; Grampa</category>	<category>Eric &amp; Bonny</category>	<category>Gary &amp; Ellyn</category>	<category>Steve Davis</category>	<description>&lt;p&gt;Tuesday was an intense day, with some very high highs and very low lows. I'm just going to brain-dump it all.&lt;/p&gt;&lt;dl&gt;&lt;dt&gt;Low &lt;b&gt;and&lt;/b&gt; High:&lt;/dt&gt;	&lt;dd&gt;	&lt;p&gt;&lt;a href=&quot;http://www.truerwords.net/5716&quot;&gt;Perry died.&lt;/a&gt; This is very sad for all of us, but he lived a long, full life and had plenty of time to know even his great grandchildren. I had to call this both a high and a low... it's hard to attach anything &quot;all bad&quot; to Perry Lanphear.&lt;/p&gt;&lt;/dd&gt;	&lt;dt&gt;High:&lt;/dt&gt;	&lt;dd&gt;	&lt;p&gt;Breakfast at &lt;a href=&quot;http://www.quahog.org/cuisine/index.php?id=159&quot;&gt;Snoopy's Diner&lt;/a&gt; with a friend and client. The business side of the meeting went well, as plans were made and progress reviewed. The friendly side of the meeting was even better. Best of all were the pancakes! Mama mia. Must take Corinne there so she can replicate those Apple-slice-filled beauties. (Oh wait, &lt;a href=&quot;http://www.truerwords.net/5704&quot;&gt;I gave up food&lt;/a&gt;. Nuts!)&lt;/p&gt;&lt;/dd&gt;	&lt;dt&gt;High:&lt;/dt&gt;	&lt;dd&gt;	&lt;p&gt;After my gigantic breakfast, I drove up to see Steve Davis in MA so we could go for a ride. He had a basketball game the night before, so was worried that he'd be too tired for my pace. I promised that I would ride super hard the day before and then eat a huge breakfast to weigh me down. I did both, but neither were necessary: he kept me talking the whole time! It's hard to push the pace when you're talking so much that you can't breathe heavily. Sneaky, Steve.&lt;/p&gt;	&lt;p class=&quot;stats&quot;&gt;	This was ride #103. &lt;b&gt;Stats:&lt;/b&gt; 36.4 miles (58.60 km) in 1h 59' 37&quot; for an average speed of 18.25 mph (29.39 kph).&lt;/p&gt;&lt;/dd&gt;	&lt;dt&gt;Low:&lt;/dt&gt;	&lt;dd&gt;&lt;p&gt;Our average speed for that ride. (Sorry Steve, couldn't resist.)&lt;/p&gt;&lt;/dd&gt;	&lt;dt&gt;High &amp;amp; Low, Again:&lt;/dt&gt;	&lt;dd&gt;	&lt;p&gt;After I left Steve's place, I went straight to Gary's &amp;amp; Ellyn's house in Westerly. Ellyn had invited the whole family for a &quot;send off dinner&quot; for Gramma and Grampa. They were up here in New England for much longer this year than previous years, because of Mandi's wedding, but now they're heading home and last night was our last chance to see them this year. I was about 90 minutes early because the alternative was driving all the way home, finding something to do for 30 minutes, then driving back again.&lt;/p&gt;	&lt;p&gt;	I had a chance to watch Grampa cut down a whole Pineapple into rings. He'd never done it before, and definitely did not like the fact that there's so much waste. Rather than just slice a little more deeply as he &quot;skinned&quot; it, he made shallow cuts and then worked with a paring knife to dig out the bits of rind that were left. After slicing it down, he carefully cut the inedible core out of every piece. This was all both highly amusing and rather painful to witness, but he didn't cut *himself* so all's well that ends well. :-)&lt;/p&gt;	&lt;p&gt;	Almost everybody made it to the dinner. Corinne had to work until 6:30 so she was late, but wanted to be there so she could say goodbye. Dad was there until 6:45, but had to leave to teach a class. Gary worked late but made a quiet appearance while we were still eating (spaghetti and meatballs). Katie's in Colorado so couldn't be there at all. Mandi, just back from her honeymoon for a day, showed up just before G&amp;G were about to give up and go back to their rental for the night. (She had to work late, also.) Sarah was there but left a little early because Art, who couldn't make it due to work, needed some dinner. Everybody else in the family (Mom, Jed, Ellyn, Gramma and Grampa, Tom, and Rusty) was there, too.&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;p&gt;Quite a day.&lt;/p&gt;</description>	</item><item>	<title>Conversant Patterns Contest is Live!</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5466/trackback</trackback:ping>	<link>http://www.truerwords.net/5466</link>	<pubDate>Mon, 10 Apr 2006 15:27:08 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5466</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5466#msg5466</comments>	<category>News</category>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>Conversant</category>	<category>Web Sites</category>	<category>XML</category>	<description>&lt;p&gt;At long last, the &lt;a href=&quot;http://www.free-conversant.com/patterncontest/&quot;&gt;Conversant patterns contest&lt;/a&gt; is live!&lt;/p&gt;&lt;p&gt;Prizes include a 60 GB video iPod with a $50 iTunes gift certificate, a 30 GB iPod, and one year of Macrobyte's &quot;Domain Hosting&quot; package!&lt;/p&gt;&lt;p&gt;This contest was originally the idea of &lt;a href=&quot;http://www.terryfrazier.com/weblog/&quot;&gt;Terry Frazier&lt;/a&gt;. Terry, &lt;a href=&quot;http://www.wakingupcosts.net/&quot;&gt;Clark Venable&lt;/a&gt;, and &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources, my company.&quot;&gt;Macrobyte&lt;/a&gt; are the sponsors.&lt;/p&gt;&lt;p&gt;We've been planning this for months. :-)&lt;/p&gt;</description>	</item><item>	<title>Bargaining</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5430/trackback</trackback:ping>	<link>http://www.truerwords.net/5430</link>	<pubDate>Fri, 24 Mar 2006 19:15:13 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5430</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5430#msg5430</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<description>&lt;p&gt;Have you ever had a client that dickers with you for a better price?&lt;/p&gt;&lt;p&gt;I have one (occasional) client who has done this with me each time he's purchased from me. I'm surprised to find that I quite enjoy it.&lt;/p&gt;&lt;p&gt;In fact, I used to expect all of my clients to do this. If my quote was too high, I expected them to tell me. Unfortunately, over the years I found that if my quote was too high then my regular clients would simply put the job off until they could afford it (which often meant skipping it entirely), and new clients would just go with someone else. This meant that when business was 'lean', I would intentionally low-bid projects, just to be sure I'd have some work (even with regular clients).&lt;/p&gt;&lt;p&gt;If more people were willing and able to dicker, buying and selling would be a lot more fun! (My impression is that this practice is still quite common in other countries. The person I mentioned in the second paragraph is not from the U.S., which may have something to do with it.)&lt;/p&gt;&lt;p&gt;To be fair, I should also mention that I have one who usually tries to talk me into a &lt;b&gt;*higher*&lt;/b&gt; price. ;-)&lt;/p&gt;</description>	</item><item>	<title>Good Work, Shot Down</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5383/trackback</trackback:ping>	<link>http://www.truerwords.net/5383</link>	<pubDate>Fri, 24 Feb 2006 04:55:13 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5383</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5383#msg5383</comments>	<category>News</category>	<category>Customers</category>	<category>Technology</category>	<category>DHTML / AJAX</category>	<category>Web Sites</category>	<description>&lt;p&gt;I did some very cool UI work for a client today, to revamp an old project. Nothing complicated or confusing, just some clever and simple dhtml bling to keep a page clean but still highlight the important elements.&lt;/p&gt;&lt;p&gt;Jed saw what I was doing, and raved about how cool it was, that &amp;quot;more sites should do stuff like that... it was so easy!&amp;quot;&lt;/p&gt;&lt;p&gt;The client shot it down. Said it was &amp;quot;too much like flash&amp;quot;, and in his opinion, &amp;quot;flash is the worst thing to ever hit the internet.&amp;quot;&lt;/p&gt;&lt;p&gt;I was *very* happy with the approach I used, and it sparked some more ideas for experimentation. Not a total loss.&lt;/p&gt;</description>	</item><item>	<title>Macrobyte Really (REALLY) Loves Its Clients</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5379/trackback</trackback:ping>	<link>http://www.truerwords.net/5379</link>	<pubDate>Tue, 21 Feb 2006 01:14:59 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5379</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5379#msg5379</comments>	<category>Humor</category>	<category>Customers</category>	<category>Macrobyte</category>	<description>&lt;p&gt;A client in Boston wants me to come up for a visit, to kick-start a big new project.&lt;/p&gt;&lt;p&gt;The president (a gentleman who sounds nearly identical to Steve Davis on the phone) proposes a couple of dates and times. I forward the relevant part of the message to Corinne, with the following note to see if she knows something about my schedule I haven't remembered:&lt;/p&gt;&lt;blockquote type=&quot;cite&quot;&gt;	&lt;p&gt;Honey,&lt;/p&gt;	&lt;p&gt;	[president's first name] wants to meet again.&lt;/p&gt;	&lt;p&gt;	Any day seem better or worse, to you? I'm leaning towards next Tuesday.&lt;/p&gt;	&lt;p&gt;	I love you!&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;A few minutes later I get another email from the client:&lt;/p&gt;&lt;blockquote type=&quot;cite&quot;&gt;	&lt;p&gt;I don't understand your email.&lt;/p&gt;	&lt;p&gt;	Are we on for Tuesday?  What time?  10:00 is good for me.&lt;/p&gt;	&lt;p&gt;	Best Regards&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;My face immediately turns bright red, even though I'm sitting here in my office, all alone.&lt;/p&gt;&lt;p&gt;Yes, that's right, I just called a client &quot;honey&quot; and told him I love him. Smooth move!&lt;/p&gt;&lt;p&gt;I've wondered about this client's sense of humor, but after I explain what happened...&lt;/p&gt;&lt;blockquote type=&quot;cite&quot;&gt;	I feel better.  I was wondering what you had on your mind.	Isn't email great?&lt;/blockquote&gt;&lt;p&gt;Indeed. What would I do without it?&lt;/p&gt;</description>	</item><item>	<title>Update on the Email Conundrum</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5367/trackback</trackback:ping>	<link>http://www.truerwords.net/5367</link>	<pubDate>Fri, 10 Feb 2006 20:58:52 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5367</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5359#msg5367</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<category>Technology</category>	<category>Email</category>	<category>Web Sites</category>	<description>&lt;p&gt;The email conundrum gets weirderer and weirderer.&lt;/p&gt;&lt;p&gt;First, a little more background. I should have pointed out from thebeginning that this contractor (XXX) has been working with the client forawhile. More than a year. Initially, he took over the management of theirConversant sites. We spoke a number of times on the Conversant support siteand in private email. Personable guy (though he sees the world throughWindows-colored glasses).&lt;/p&gt;&lt;p&gt;Now, here's the additional weirdness, the 'further evidence' I mentioned alittle while ago.&lt;/p&gt;&lt;p&gt;The client had asked me for some additional services before shutting downtheir site. XXX was cc'ed on that request. I responded in the affirmative,and also cc'ed XXX.&lt;/p&gt;&lt;p&gt;On February 7th, after the work was done, I sent a message to the client tolet him know the work was done and what I was charging. I have the originalemail in front of me right now: it was sent ONLY and SOLELY to the client.There's only one 'To:' address, and there are no CC or BCC addresses.&lt;/p&gt;&lt;p&gt;The client didn't respond. The charges were only a couple hundred dollars,which I knew wasn't a problem. 28 hours later, I resent the same email,again only to him.&lt;/p&gt;&lt;p&gt;On the 9th (yesterday), when I still hadn't received a response, I wrote toXXX. Here's what I said (note that BBBB is my replacement for the client'sname, just like XXX for the contractor):&lt;/p&gt;&lt;pre class=&quot;dgQuote1&quot;&gt;	&gt;XXX,	&gt;	&gt;I have been completely unable to contact BBBB. All of my email to him	&gt;just seems to vanish into the ether. I never get any bounces, but he	&gt;doesn't seem to receive my messages, either. (I've actually wondered	&gt;if they're being intercepted.)	&gt;	&gt;Could you please have him call me tomorrow, towards the end of his	&gt;work day? I just want to put the charges through for [SNIPped for privacy]	&gt;	&gt;I'm in the US (guess you knew that), at 860-572-0244.&lt;/pre&gt;&lt;p&gt;He wrote back and said that he would call the client to have them call oremail me. They didn't. So, I wrote to him again to see if he knew why.&lt;/p&gt;&lt;p&gt;His response is where things turn weird again:&lt;/p&gt;&lt;pre class=&quot;dgQuote1&quot;&gt;	&gt;Sorry, Seth it's not a conspiracy - just me.  Today was hell and I	&gt;forgot they take Friday afternoons off (lucky folk).	&gt;	&gt;I HAVE sent them an email and am sure they will contact you Monday.	&gt;	&gt;I had already told BBBB what your charges were and he accepted them.&lt;/pre&gt;&lt;p&gt;OK, so he didn't call them, and it was too late by the time I reminded him.What about that last sentence, though?&lt;/p&gt;&lt;p&gt;This is ridiculous.&lt;/p&gt;&lt;p&gt;I wrote to ask him how he knows what my charges are, but have not receivedany response.&lt;/p&gt;&lt;p&gt;If the contractor was a talented individual who (I believed) really wantedwhat's best for the client, there would be no issue here. Instead (warning:assumption alert) this looks more and more like amore-technically-knowledgeable-than-the-client HACK who has taken theclient hostage and they don't even know it.&lt;/p&gt;&lt;p&gt;Maybe I'm wrong and nothing shady is happening. I haven't yet come up withany realistic alternatives, but I guess it's possible.&lt;/p&gt;&lt;p&gt;Mystified in Mystic&lt;/p&gt;</description>	</item><item>	<title>An Odd Situation, an Email Conundrum</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5359/trackback</trackback:ping>	<link>http://www.truerwords.net/5359</link>	<pubDate>Fri, 10 Feb 2006 01:09:26 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5359</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5359#msg5359</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<category>Technology</category>	<category>Email</category>	<category>Web Sites</category>	<description>&lt;p&gt;One of Macrobyte's long-time hosting clients wrote to me a couple of weeksago to say that, after almost five years, they're moving to a new platform.They contracted someone about a year ago to handle their technical needs,and he has developed a completely new site for them in ASP. This contractorconvinced them that their sites needed to be redone from scratch.&lt;/p&gt;&lt;p&gt;Eh, whatever, these things happen sometimes. They professed to be extremelyhappy with our service, but their contractor really felt that this othertechnology was more appropriate for their needs. Here's a slightly modified(to omit names) excerpt of my response:&lt;/p&gt;&lt;blockquote type=&quot;cite&quot;&gt;	My guess is that, in the end, the real answer will simply be that	XXX was more familiar with the other system. That's often the real	reason web sites are moved from one platform to another.&lt;/blockquote&gt;&lt;p&gt;If that sounds harsh, it wasn't. I was politely asking if they would mindexplaining the decision a little more fully. If there's something Macrobytecould have offered, but didn't, I'd like to rectify the situation for thenext client. Still, as you can see, I had my suspicions.&lt;/p&gt;&lt;p&gt;I still have that email. It was only sent directly to the client who wroteto me. The contractor -- who had already taken over all hostingresponsibilities for this client, including email and web -- was not cc'dor bcc'd.&lt;/p&gt;&lt;p style=&quot;font-weight: bold; font-style: italic;&quot;&gt;This is where things start to go weird.&lt;/p&gt;&lt;p&gt;Three hours after I sent that email, I received a response from the 'newguy'. He cc'ed the client, and confirmed that yes, in fact, the move hadmore to do with familiarity with the other system than with technicalreasons.&lt;/p&gt;&lt;p&gt;Another three hours later, and the client responds to the email from the'new guy'. Here's the first paragraph of his email (anonymized, again):&lt;/p&gt;&lt;blockquote type=&quot;cite&quot;&gt;	I have read your email to me at the end of XXX's email.for some reason	I haven't received the email direct.&lt;/blockquote&gt;&lt;p&gt;So... he never received my private email, but somehow the new contrator andhosting service both received and responded to it.&lt;/p&gt;&lt;p&gt;If the client didn't receive it, then he couldn't have forwarded it to thenew guy. Note that we're only talking about a matter of hours, here, notdays. He didn't simply forget.&lt;/p&gt;&lt;p&gt;I believe all of these facts to be completely correct. With that, I canonly come to one conclusion, but I'd like some other opinions. Maybethere's some answer to this which I haven't considered.&lt;/p&gt;&lt;p&gt;Let's leave it there for now. Comments greatly appreciated!&lt;/p&gt;</description>	</item><item>	<title>Deleting 'Invisible' Files: Source of Panic and Adrenalin</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5185/trackback</trackback:ping>	<link>http://www.truerwords.net/5185</link>	<pubDate>Thu, 03 Nov 2005 03:01:42 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5185</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5185#msg5185</comments>	<category>News</category>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<category>Technology</category>	<category>Programming</category>	<description>&lt;p&gt;I've been working 12 to 15 hour days on a single project since earlyFriday morning, last week. This evening, after installing XAMPP on thatWindows box I mentioned earlier, I was preparing to move the projectover to the server. Before moving it, I wanted to import it to svn.&lt;/p&gt;&lt;p&gt;A preliminary test run with the Windows server had revealed a wholemess of hidden files. Anything I edited in BBEdit had a correspondinghidden file, like surgeons_controller.php and .surgeons_controller.php(or something like that). Before committing it all to svn, I wanted toremove all of the unnecessary hidden files.&lt;/p&gt;&lt;p&gt;It's been a little while since I used the find command, so I wascareful. I thought.&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;find . -name .* -print&lt;/pre&gt;&lt;p&gt;Nope, that throws an error. Let's try the regex syntax.&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;find -E . -regex '^.*/\\.[^/]*$' -print&lt;/pre&gt;&lt;p&gt;OK, that's better, but it's including the .htaccess files. Need tokeep those!&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;find . -regex '^.*/\\.[^/]*$' \\( ! -name &quot;.htaccess&quot; \\) -print&lt;/pre&gt;&lt;p&gt;OK, that looks right. It's listing all of the 'invisible files' except.htaccess. Now I'll just add the command to delete those files.&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;find -E . -regex '^.*/\\.[^/]*$' \\( ! -name &quot;.htaccess&quot; \\) -exec rm {} \\; -print&lt;/pre&gt;&lt;p&gt;But wait! Seems like every few weeks I'm having to reconstruct thiscommand. &quot;I'll just make an alias for it in my .bashrc and.bashprofile, so I don't have to work it out like this every time Ineed to use it...&quot; (Can you hear the dark, scary music playing in thebackground? It's there.)&lt;/p&gt;&lt;p&gt;Making an alias is easy: just wrap it in quotes and assign it tosomething, like this:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;alias rminv='find -E . -regex '^.*/\\.[^/]*$' \\( ! -name &quot;.htaccess&quot; \\) -exec rm {} \\; -print'&lt;/pre&gt;&lt;p&gt;Saved the file, opened a new terminal window, cd to the rightdirectory, and run rminv (for &quot;remove invisibles&quot;).&lt;/p&gt;&lt;p&gt;&lt;b&gt;WARNING: Don't try that at home, kids!&lt;/b&gt; It deleted every singlefile in my only copy of this project. It was a stupid mistake that I'veonly just now figured out as I wrote this. Do you see it?&lt;/p&gt;&lt;p&gt;No, I'm not kidding, it really deleted my only copy. I panicked, andasked Brian if he knew of any miracle cures for deleted files. Hepointed out a few $100 apps I could try but didn't know of anythingfree that would do the trick. &lt;p&gt;I figured file-recovery apps might be cheaper on Windows. I found onecalled &lt;a href=&quot;http://www.r-undelete.com/&quot;&gt;r-undelete&lt;/a&gt; that was only$55 and had a free demo. The description suggested that it would let mesearch for the deleted files, but would only let me recover them afterpaying fo the app.&lt;/p&gt;&lt;p&gt;Well, it turns out that's not the case at all: it recovers all filesless than 64 Kb. That's the limit in the demo version. Plus, itintegrates with Windows Explorer very nicely.&lt;/p&gt;&lt;p&gt;r-undelete recovered all but five of my files. One of them wasunnecessary, and the other four were views (in the MVC sense) that werevery similar to views from another model, so they were quite easy torecreate.&lt;/p&gt;&lt;p&gt;In the end, I wasted about two hours on this. The alternative wasunthinkable, though. I still just have the demo to r-undelete, but Iwill buy a copy soon and I'm hereby recommending it to anyone andeveryone.&lt;/p&gt;&lt;p&gt;Now I need a nap. The adrenalin rush from realizing that I had justdeleted 60 hours of work has sapped all of my strength!&lt;/p&gt;</description>	</item><item>	<title>Quietly Busy</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5182/trackback</trackback:ping>	<link>http://www.truerwords.net/5182</link>	<pubDate>Mon, 31 Oct 2005 00:23:11 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5182</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5182#msg5182</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Cycling</category>	<category>Technology</category>	<category>Steve Davis</category>	<description>&lt;p&gt;Wednesday I won a little trivia contest on the radio. I know theDJ's, and they sent me the audio as an mp3. Haven't written about thatyet.&lt;/p&gt;&lt;p&gt;Steve Davis and I rode 114 miles in the cold on Thursday. Haven'twritten about that yet.&lt;/p&gt;&lt;p&gt;In fact, I should be very close to my 5000th mile for the year, but Ihaven't yet recorded the stats for this month's rides ('cept the firstthree).&lt;/p&gt;&lt;p&gt;I'm &amp;quot;head down,&amp;quot; sequestered, working hard on a semi-sorta-Web 2project. Need to have it finished ASAP, as other work is pilingup behind it. It's been fun. Even gave me a chance to pick &lt;a href=&quot;http://blog.samdevore.com/&quot;&gt;Sam's&lt;/a&gt; brain for a coupleminutes at the start as I knew he had some experience with theframework/stack I chose.&lt;/p&gt;&lt;p&gt;More soon, when I next come up for air.&lt;/p&gt;</description>	</item><item>	<title>Follow-Up: Contract Programming Rates Negotation Complete, Thanks</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5115/trackback</trackback:ping>	<link>http://www.truerwords.net/5115</link>	<pubDate>Thu, 22 Sep 2005 17:04:22 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5115</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5091#msg5115</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<description>&lt;p&gt;Last week I asked for a little help with a negotation &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources, my company.&quot;&gt;Macrobyte&lt;/a&gt; washaving with a client, regarding &lt;a href=&quot;http://www.truerwords.net/5091&quot;&gt;hourly rates&lt;/a&gt;for consulting/contract programmers.&lt;/p&gt;&lt;p&gt;Thanks to suggestions that came in by email, instant message, BrianAndresen's link to a &lt;a href=&quot;http://marketing.dice.com/rateresults/conhr.asp&quot;&gt;DICE.com ratessurvey&lt;/a&gt;and my own willingness to keep negotiating in spite of a lot of pressureto give in... the whole issue was resolved quite satisfactorily,yesterday.&lt;/p&gt;</description>	</item><item>	<title>'Round and 'Round the Mulberry Bush</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4961/trackback</trackback:ping>	<link>http://www.truerwords.net/4961</link>	<pubDate>Mon, 01 Aug 2005 17:28:56 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4961</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4961#msg4961</comments>	<category>Humor</category>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>Programming</category>	<description>&lt;p&gt;&lt;b&gt;Client:&lt;/b&gt; There's a bug. When I try to post a message from my staging site to the weblog on my production site, it fails.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Me:&lt;/b&gt; What's the error message?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Client:&lt;/b&gt; I don't need you to explain the error message to me, I just want it to work.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Me:&lt;/b&gt; These problems are easier to diagnose and fix when your bug report tells me what's going wrong.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Client:&lt;/b&gt; I already told you what's going wrong. There's an error when I try to post a message from the staging site to the production site's weblog!&lt;/p&gt;&lt;p&gt;&lt;b&gt;Me (defeated):&lt;/b&gt; ... &amp;quot;Oh sorry, my mistake.&amp;quot;&lt;/p&gt;</description>	</item><item>	<title>Finally in Beta!</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4901/trackback</trackback:ping>	<link>http://www.truerwords.net/4901</link>	<pubDate>Fri, 01 Jul 2005 01:15:20 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4901</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4901#msg4901</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>Conversant</category>	<category>DHTML / AJAX</category>	<category>Programming</category>	<category>Web Sites</category>	<description>&lt;p&gt;I've referred to this a few times over the last couple months, withoutreally explaining myself.&lt;/p&gt;&lt;p&gt;A couple months ago I presented an idea to a few of Macrobyte's clients.The idea was for a set of new features in Conversant, to make it extremelyeasy to share all of the important parts of a Conversant site, the partsthat define the site's &quot;look and feel,&quot; as well as most of it'sfunctionality. Things like templates, stylesheets, javascripts, resources,page configuration settings, etc.&lt;/p&gt;&lt;p&gt;All three clients agreed to co-sponsor the development of these features.That's the first time this has happened, and I was quite excited.&lt;/p&gt;&lt;p&gt;No part of what I was proposing would be difficult. I know Conversant aswell as it is pogssible to know any software's code, and that made meconfident that what I was suggesting could be done.&lt;/p&gt;&lt;p&gt;Unfortunately, I'm too close to Conversant. I used my familiarity with itas an excuse to avoid the hard work of writing down everything that wouldbe involved in the project and doing an honest assessment of the time itwould take.&lt;/p&gt;&lt;p&gt;I told those three clients it would take two weeks. What a fool. Fully twomonths later, the &lt;a href=&quot;http://support.free-conversant.com/8287&quot;&gt;last significant piece of thepuzzle&lt;/a&gt; is finally in beta.&lt;/p&gt;&lt;p&gt;It's not that anything about the project was difficult. I was right aboutthat much. I simply made the classic mistake of adding 1 and 1 and 1 and 1and 1 to get... 1. As in, &quot;that part will be easy, and that part will beeasy, and that part too, and that one, and that one... yep, the whole thingwill be really quick and easy.&quot; Completely forgot that one hundred easypieces is still one hundred pieces, and a programming task with one hundredpieces is NOT quick and easy. Period.&lt;/p&gt;&lt;p&gt;I've told a few people privately, and now I'll admit it publicly: this wasthe biggest mistake and the most severe underestimation of my entire career(hopefully, both &quot;to date&quot; and forever).&lt;/p&gt;&lt;p&gt;The clients have been patient with me (Thank God), and for the last coupleof weeks I've been able to use some parts of this project in other projectsfor another client. Still, I've been very hard on myself about this. I evenjoked with my dad that if an employee had put Macrobyte in this situationI'd have had to fire or execute him. In fact, i'd probably be better offjust riding my bike all day, and pay someone else to do my work for me.&lt;/p&gt;&lt;p&gt;Now I can calm down a little, and hopefully start remembering why I lovethis business so much.&lt;/p&gt;&lt;p&gt;(I hope it's not another mistake to admit that I make them, sometimes!)&lt;/p&gt;</description>	</item><item>	<title>The USPS: Keeping the 'Snail' in 'Snail Mail'</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4770/trackback</trackback:ping>	<link>http://www.truerwords.net/4770</link>	<pubDate>Tue, 03 May 2005 16:02:15 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4770</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4770#msg4770</comments>	<category>Humor</category>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<description>&lt;p&gt;Macrobyte was awaiting delivery of a large-ish check from a largeclient, all last week. Supposedly, the invoice had bee processed the weekof the eighteenth.&lt;/p&gt;&lt;p&gt;Thursday the 27th came, no check. Friday, same deal.&lt;/p&gt;&lt;p&gt;The check had (&quot;supposedly&quot;) been mailed from just outside of New YorkCity. We're not even one hundred miles away. How long can it take the USPSto deliver? I used to get mail from California, even British Columbia, injust three days. On the other hand, every business owner has shuddered withdread at the words, &quot;the check is in the mail.&quot; Even when the client is alarge company, you still have to deal with individuals, and under the rightcircumstances they'll tell you what they think you want to hear, if only toget you off the phone.&lt;/p&gt;&lt;p&gt;Forgive my cynicism, but I've been self employed for about thirteenyears.&lt;/p&gt;&lt;p&gt;The check did show up, finally, on Monday. That's May 2nd. It waspostmarked April 23rd!&lt;/p&gt;&lt;p&gt;I'm sure this is why the &lt;a href=&quot;http://www.usps.com/&quot;&gt;USPS&lt;/a&gt; wants toraise the price of first class stamps yet again. Their snails have hit themwith a work slowdown as a protest for their low wages.&lt;/p&gt;</description>	</item><item>	<title>Sometimes the Users Scare Me</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4766/trackback</trackback:ping>	<link>http://www.truerwords.net/4766</link>	<pubDate>Sun, 01 May 2005 01:46:22 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4766</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4766#msg4766</comments>	<category>Humor</category>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>Conversant</category>	<category>Web Sites</category>	<description>&lt;p&gt;A &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt; user recently asked me tocustom-configure one of his sites, because he wants to do somethingthat isn't available via the web-based configuration.&lt;/p&gt;&lt;p&gt;Why not? Because we never saw anybody wanting to do this. We've neverdone it, never tested it.&lt;/p&gt;&lt;p&gt;I set it up for him, but I'm still experiencing heart palpitations.&lt;/p&gt;&lt;p&gt;In fact, I actually told this client that if he doesn't report everylittle problem to me, I won't be held responsible if it hoses hisentire site, and he'll have to pay for my time to fix it. (As long ashe reports every little problem, I should be able to stop him before hedoes anything fatal. That's the plan, anyway.)&lt;/p&gt;&lt;p&gt;(My previous post actually started out as this one, believe it or not.It morphed, big time, and then I realized that this one still needed tobe written!)&lt;/p&gt;</description>	</item><item>	<title>I Should Learn to Zip It</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4590/trackback</trackback:ping>	<link>http://www.truerwords.net/4590</link>	<pubDate>Wed, 02 Mar 2005 23:49:20 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4590</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4590#msg4590</comments>	<category>Customers</category>	<category>People</category>	<category>Macrobyte</category>	<description>&lt;p&gt;When am I going to learn to zip it?&lt;/p&gt;&lt;p&gt;I need to learn that there are limits to how much work I can do in a day, week, or month. That needing some extra income and being able to handle more work do not necessarily go hand-in-hand. That over-commitment leads to hyper-stress.&lt;/p&gt;&lt;p&gt;I should also learn to avoid discussion of certain issues around some clients and friends, because they want to solve my problems but really can't.&lt;/p&gt;&lt;p&gt;How ironic is it that I'm talking about my need to 'zip it' in the most public place in the world?&lt;/p&gt;</description>	</item><item>	<title>Trackback on Waking Up Costs</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4539/trackback</trackback:ping>	<link>http://www.truerwords.net/4539</link>	<pubDate>Sat, 05 Feb 2005 12:46:13 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4539</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4539#msg4539</comments>	<category>Customers</category>	<category>Technology</category>	<category>Clark Venable</category>	<category>Conversant</category>	<category>Web Sites</category>	<description>&lt;p&gt;I've just helped &lt;a href=&quot;http://www.romanvenable.net/&quot; title=&quot;Clark Venable&quot;&gt;Clark&lt;/a&gt; set up &lt;a href=&quot;http://www.wakingupcosts.net/index/2005/02/04#item271&quot;&gt;trackback on Waking Up Costs&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This feature needs better documentation, because the RDF (used for autodiscovery) confuses people.&lt;/p&gt;</description>	</item><item>	<title>TLS is Now UserLand's</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4319/trackback</trackback:ping>	<link>http://www.truerwords.net/4319</link>	<pubDate>Tue, 19 Oct 2004 20:08:18 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4319</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4319#msg4319</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<category>Technology</category>	<category>Brian Andresen</category>	<category>Frontier</category>	<category>Programming</category>	<category>Radio</category>	<description>&lt;p&gt;Way back in the early history of the world (late 2002? early 2003?), one of &lt;a href=&quot;http://macrobyte.net/&quot;&gt;Macrobyte's&lt;/a&gt; clients needed to serve secure web pages from &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt;. We tried -- in vain -- to make it work correctly with IIS, but it just wasn't stable enough.&lt;/p&gt;&lt;p&gt;So, we implemented a tool known generally as TLS, but which was officially called &quot;Macrobyte Resources TLS,&quot; for &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt; and &lt;a href=&quot;http://radio.userland.com/&quot; title=&quot;Radio Userland&quot;&gt;Radio&lt;/a&gt;. &lt;i&gt;By &quot;we,&quot; in this case, I mean Brian Andresen. He did all the hard work. I acted like a client, just testing, providing feedback, and asking questions.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;TLS itself wasn't our creation. The IETF did that, it stands for &lt;a href=&quot;http://www.ietf.org/rfc/rfc2246.txt&quot;&gt;Transport Layer Security&lt;/a&gt;. We 'simply' implemented a solution for Radio and Frontier, so they could act as TLS clients and servers.&lt;/p&gt;&lt;p&gt;In the late Spring of this year, &lt;a href=&quot;http://www.userland.com/stories/storyReader$214&quot;&gt;UserLand Software purchased TLS&lt;/a&gt; from Macrobyte. Today they finally announced it, and opened up &lt;a href=&quot;http://tls.userland.com/&quot;&gt;their TLS site&lt;/a&gt; to the world.&lt;/p&gt;&lt;p&gt;OK, with all that background out of the way... how's this for a lame-o quote?&lt;/p&gt;&lt;blockquote style=&quot;margin-left: 1.0em; border-left: 1px solid blue; padding-left: 1.0em;&quot;&gt;	&quot;I'm quite pleased that UserLand has taken over TLS,&quot; said Seth	Dillingham, President of Macrobyte Resources. &quot;This shows a	commitment to enhancing the tools available to their developer	community, and a genuine interest in offering and promoting secure	web sites and services. With TLS now being managed, distributed,	and updated by UserLand, it's sure to become a key component in	the UserTalk developer's toolbox.&quot;&lt;/blockquote&gt;&lt;p&gt;Whoo-ee, the things we'll say for the sake of business! It's all true, and I really did write that myself, but... who talks like that!? Makes me sound like a marketing person trying to talk like a geek. (Instead of the other way around?)&lt;p&gt;</description>	</item><item>	<title>Clark Explains How It All Works (At Least, His Web Sites)</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4316/trackback</trackback:ping>	<link>http://www.truerwords.net/4316</link>	<pubDate>Sat, 16 Oct 2004 22:18:15 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4316</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4316#msg4316</comments>	<category>Customers</category>	<category>People</category>	<category>Technology</category>	<category>Clark Venable</category>	<category>CMS</category>	<category>Conversant</category>	<category>Programming</category>	<category>Web Sites</category>	<description>&lt;p&gt;&lt;a href=&quot;http://www.romanvenable.net/&quot; title=&quot;That's Dr. Venable to you, pal.&quot;&gt;Clark Venable&lt;/a&gt; is the proud papa of (at least) two web sites, and he seems to have found the magic combination of tools to make them grow. This evening, he posted a story about &lt;a href=&quot;http://www.wakingupcosts.net/index/2004/10/16#item72&quot;&gt;the tools he's using to manage them both&lt;/a&gt;, and how he knows the authors of the tools and the artist behind the graphics.&lt;/p&gt;&lt;p&gt;&quot;It's a small small world.&quot; That was my first reaction. My second was, &quot;man, we're a good combination!&quot; (You can figure out who the 'we' is by reading his story.)&lt;/p&gt;&lt;p&gt;I wish more folks would give the MarsEdit and Conversant combination a spin, it really is almost effortless. ('Almost' because you still have to write the posts.)&lt;/p&gt;&lt;p style=&quot;font-style: italic;&quot;&gt;(Look at how much Clark has posted since he found this combination! I can barely keep up with the new site.)&lt;/p&gt;</description>	</item>	</channel></rss>