<?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/technology</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>Technology</category>		<item>	<title>Progress in the PMC Bundle Builder</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6243/trackback</trackback:ping>	<link>http://www.truerwords.net/6243</link>	<pubDate>Sun, 31 Aug 2008 02:04:26 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6243</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6242#msg6243</comments>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<description>&lt;p&gt;Since the &lt;a href=&quot;http://www.truerwords.net/6242&quot;&gt;post&lt;/a&gt; went up about &lt;a href=&quot;http://www.truerwords.net/fundraising/pmcsoftware/bundlebuilder.html&quot;&gt;building your own software bundle&lt;/a&gt;, on Monday, I've had at least 600 offers come in.&lt;/p&gt;&lt;p&gt;Probably more than that. But I've lost count.&lt;/p&gt;&lt;p&gt;I do know that, right now, I have 341 unprocessed offers. Offers I haven't even read yet.&lt;/p&gt;&lt;p&gt;The thought has crossed my mind more than once that I may have made it a little too easy to build a bundle this year. :-) I can't possibly keep up. Eventually everyone will hear back from me. But it'll take awhile. Next year I need to more fully automate the system. (Duh.)&lt;/p&gt;&lt;p&gt;Since we went live I've added at least ten new titles to the list of what's available. Also, I ran out of the most popular apps in the first couple days, but many of them are back in the bundle builder again because the donors stepped up with larger donations! Yay!&lt;/p&gt;&lt;p&gt;I'm two thirds of the way to my $10,000 goal, and all but the first $1,000 of that is from selling these bundles. (That total doesn't include the $700 or so that I got for the two Adobe apps that were auctioned on eBay. Those haven't been credited to my PMC account yet.)&lt;/p&gt;</description>	</item><item>	<title>Make Me An Offer!</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6242/trackback</trackback:ping>	<link>http://www.truerwords.net/6242</link>	<pubDate>Mon, 25 Aug 2008 13:25:12 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6242</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6242#msg6242</comments>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<description>&lt;p&gt;&lt;img src=&quot;http://media.truerwords.net/images/cycling/pmc2.jpg&quot; align=&quot;right&quot; border=&quot;0&quot; height=&quot;116&quot; width=&quot;126&quot;&gt;For the third year, I'm &lt;a href=&quot;http://www.truerwords.net/fundraising/pmcsoftware/bundlebuilder.html&quot;&gt;selling thousands of copies of mac applications&lt;/a&gt;, to support my fund raising efforts in the &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;.&lt;/p&gt;&lt;p&gt;I'm running a bit late this year, but I think I've found a great way to present the software that's available, and to make it really easy for the buyer/donor to choose what he/she wants in a bundle.&lt;/p&gt;&lt;p&gt;I have three targets to meet before we're done:&lt;/p&gt;&lt;ul&gt;    &lt;li&gt;$4400 by the end of September (I'm &quot;legally committed&quot;: they'll take any balance from me, personally)&lt;/li&gt;    &lt;li&gt;$6700 by the end of October, to meet my &quot;Heavy Hitter&quot; commitment&lt;/li&gt;    &lt;li&gt;$10,000 by the end of December, to meet my personal goal for 2008&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please &lt;a href=&quot;http://www.truerwords.net/fundraising/pmcsoftware/bundlebuilder.html&quot;&gt;go build a bundle and make me an offer&lt;/a&gt;, and tell people about this however you see fit: twitter (where I am sethdill), digg, your own blog, StumbleUpon, smoke signals... whatever.&lt;/p&gt;</description>	</item><item>	<title>PMC Software Donations (2008)</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6210/trackback</trackback:ping>	<link>http://www.truerwords.net/6210</link>	<pubDate>Mon, 23 Jun 2008 15:50:20 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6210</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6210#msg6210</comments>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<description>&lt;p&gt;The first weekend in August, for the sixth year in a row, I'll be riding in the &lt;a href=&quot;http://www.pmc.org/&quot;&gt;Pan-Mass Challenge&lt;/a&gt;. This year they've told us there will be 5500 riders, and we ride about 200 miles from Sturbridge, MA to Provincetown (on the tip of Cape Code). The real point, though, is the money we raise: millions and millions of dollars, all for the research and treatment of cancer at the Dana-Farber Cancer Center in Boston.&lt;/p&gt;&lt;p&gt;The total project goal this year is $34,000,000! (And we'll raise more than that, we surpass our goal every year.)&lt;/p&gt;&lt;p&gt;Last year I raised about $5,000 for the &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; by collecting donations of Mac software from the authors/publishers and then selling it in bundles on eBay or giving it to people in return for making donations to the PMC.&lt;/p&gt;&lt;p&gt;I'm running late this year, but the project is and running again and this time I want to raise a total of $10,000.&lt;/p&gt;&lt;p&gt;Right now, I need donations. &lt;a href=&quot;http://www.truerwords.net/fundraising/pmcsoftware/&quot;&gt;If you produce mac software, please donate some!&lt;/a&gt; I need at least another 90 titles, with a minimum of five licenses each. &lt;span class=&quot;note&quot;&gt;Sixty-two apps titles have been donated so far.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(If you're not a software producer, I could also use some regular donations! I have had two big donors every year since I started doing this, but this year one doesn't have the money to donate anything, and the other only had $500 to donate instead of $1,000.)&lt;/p&gt;&lt;p&gt;Last year, an employee at Adobe sent me a copy of Flash CS3 which he purchased on his discount. This year, he came through again and got a coworker to go in on it with him so I'm also getting a copy of Illustrator CS3! However, 99.9% of the software that's donated is just a set of licenses, no physical goods or costs at all.&lt;/p&gt;&lt;p&gt;Those big-ticket items are nice, but that will only account for about $1,000 of the $10,000 I need to raise.&lt;/p&gt;&lt;p&gt;Please help out if you can.&lt;/p&gt;</description>	</item><item>	<title>Building a Codeless Language Module for BBEdit or TextWrangler (Updated)</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6207/trackback</trackback:ping>	<link>http://www.truerwords.net/6207</link>	<pubDate>Mon, 23 Jun 2008 13:52:04 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6207</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5712#msg6207</comments>	<category>Technology</category>	<category>BBEdit</category>	<category>Regular Expressions</category>	<description>&lt;p&gt;I've updated the guide that explains &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/codeless_language_module.html&quot;&gt;how to create a Codeless Language Module (CLM) for BBEdit with regular expressions&lt;/a&gt; (or &quot;irregular expressions&quot; as I explain in the guide).&lt;/p&gt;&lt;p&gt;The how-to walks you through creating a CLM for the newLISP language. Some bugs were found recently in both the final CLM and the guide itself, and have all been fixed. Also, the new version of the downloadable CLM (at the bottom of the guide) includes the most recently added keywords and built-in language functions.&lt;/p&gt;</description>	</item><item>	<title>Familial Update, and Grumpy Seth's Advice on Raising a Baby</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6188/trackback</trackback:ping>	<link>http://www.truerwords.net/6188</link>	<pubDate>Sat, 03 May 2008 16:04:23 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6188</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6188#msg6188</comments>	<category>People</category>	<category>Macrobyte</category>	<category>Family</category>	<category>Technology</category>	<category>Corinne</category>	<category>Mike &amp; Shannon</category>	<category>Lauren</category>	<category>Gary &amp; Ellyn</category>	<category>BBEdit</category>	<description>&lt;p&gt;We're still moving, probably in October. The landlord is still planning to sell this place. It's a little stressful as we've lived here over 9 years (will be ten years in October) and I really like the neighborhood. Still, if we leave the house for more than a few minutes, then we're probably headed for Westerly. Moving over there will save us five or six gallons of gas and many hours of driving every week.&lt;/p&gt;&lt;p&gt;Corinne seems to be looking forward to it. I don't think it's entirely because the kitchen she'll be getting is thrice the size of what we have now, but that's probably a big part of it. ;-)&lt;/p&gt;&lt;p&gt;Business has been decent this year. Back in December, one client sent me some money to pre-pay for some work &quot;to be decided.&quot; Work with Bare Bones has been steady, and I finally produced a working (though incomplete) module for &lt;a href=&quot;http://yaml.org/&quot;&gt;YAML&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Shannon is no longer working two jobs. The second job, at a Hallmark (greeting cards) store, was paying minimum wage and only giving her 12 hours per week, so after a few weeks she told them she wouldn't be coming back.&lt;/p&gt;&lt;p&gt;Instead, she's going to school! She got Pell grants and various other forms of financial aid to cover almost all the costs of going to the Connecticut School for Massage Therapy. She started this week. It takes (I think) 18 months to get her certificate, and when she's done she'll finally have a real, employable skill for a job that pays a lot better than retail ever will.&lt;/p&gt;&lt;p&gt;She'll be about half done with her schooling when Mike comes home in January.&lt;/p&gt;&lt;p&gt;Thursday I went to court with her in Waterford for a &quot;status update&quot; on her appeal to get custody back of her son Richie. Richie's father, Dick S., decided to contest it. We went to the court thinking that she was going to walk out with custody papers, and instead all we know is that this is going to take longer than we first thought. (That's good, as we've asked Shannon not to rush this. We're already doing most of the work with Lauren. Neither of us mind that, but we're not ready to add another kid to the house.)&lt;/p&gt;&lt;p&gt;Corinne wanted pizza on Thursday night, so I was going to take Lauren with me to get it from Olympic Pizza in Norwich. Shannon came home from work early because (in her words), she &quot;didn't feel like working,&quot; so she went with us. On the way, we had a talk about her relationship with Lauren.&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;Had very late second thoughts about posting the rest of this, so for now I've taken it out. Sorry...&lt;/p&gt;&lt;!--p class=&quot;note&quot;&gt;(The rest of this post is a little sad and frustrating, and rather personal, so you may want to stop here. You've been warned.)&lt;/p&gt;&lt;p&gt;First, some quick background: Lauren seems to prefer me. Much of the time, taking her away from me (or me walking away from her) results in a lot of crying/screaming. Plus, my office is in the basement just down the hall from Shannon's room, and I hear how they are together when Shannon takes her in there. There's a lot of silence (meaning she's doing something online), followed by, &quot;Lauren... what are you doing? No! Don't play with that!&quot; followed by more silence (or talking on the phone), followed by, &quot;Lauren! I told you no!&quot;&lt;/p&gt;&lt;p&gt;Also, Shannon often acts hurt and offended when Lauren doesn't get super excited to see her, or doesn't want to kiss her, or won't share her toys with her (not kidding). (Keep in mind that Lauren is 14 months old, and Shannon has only been here since January.) She's the same way with her three-year-old son Richie: when he visited for a week in early February, she curled up on the couch and refused to even talk to him for &lt;b&gt;almost an hour&lt;/b&gt; (after first telling him she was mad at him) because he refused to share one of his toys with her. This continued even after he apologized. She tried to do something similar with Lauren less than a week ago (and for the same reason!), but I told her to stop: Lauren's too young, and won't understand that you're trying to give her a guilt trip.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Sigh.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;That's the background. My little talk, my bit of advice? I can summarize it in four words, &quot;Don't expect anything back.&quot; She's constantly trying to get Lauren to call her Mama, telling her to give her a kiss, making her sit on her lap, etc. My advice is to pour herself into Lauren, make sure Lauren knows that she loves her no matter what. Pay attention to her: when you're on &quot;baby duty&quot; then play with her, do something with her, have fun with her at her level instead of just keeping yourself occupied and then yelling at her when she gets into something she shouldn't.&lt;/p&gt;&lt;p&gt;Nobody can do that all day long, every day. But in a week, Shannon is only on full baby duty for about 12 hours. &quot;Pour yourself into her, and I don't mean for a day or a week. I mean for the rest of your life. Right now, there's not much in there, so don't get upset when she doesn't give back. But keep filling her up, and sooner or later she'll have no choice but to start giving back.&quot;&lt;/p&gt;&lt;p&gt;That's sappy and a little trite, but I believe it and mean every word.&lt;/p&gt;&lt;p&gt;Shannon's response? &quot;You need to go away for a couple of days.&quot; She thinks that me going away for a couple of days will let Lauren forget about me and start loving her more.&lt;/p&gt;&lt;p&gt;Fine, right now I'm Lauren's favorite. If you want to know why, though, back up a few paragraphs and read it again. That's how I've been since she was 10 days old. I've never thought of her as a burden (and so I've never made her feel that way), and I've done what I have promised from day one: I've raised and loved her as my own daughter.&lt;/p&gt;&lt;p&gt;To suggest that the best way to &quot;make&quot; Lauren love her mom the most is for me to go away for awhile... well I have to admit that hurt. Maybe she didn't think it through much before she said it, but after everything we've done and all we've been through that is probably the most obnoxious suggestion possible.&lt;/p&gt;&lt;p&gt;Here's how I hear it. &quot;Lauren loves you a lot, so instead of following your advice and just loving her as much as I can, I think you should go away from Lauren for awhile so she'll love me most.&quot; (She had forgotten, of course, that Corinne and Ellyn took Lauren away for a full week, and it made no difference.)&lt;/p&gt;&lt;p&gt;Follow that thinking to it's logical conclusion, and what Shannon is really saying is that because Lauren loves me, she'll eventually have to take her away. (She could also suggest that I stop loving Lauren, but she must know better.) A week wouldn't do it, but forever probably would.&lt;/p&gt;&lt;p&gt;We can't both be right. &lt;b&gt;We're not competing for Lauren's heart!&lt;/b&gt; She's more than capable of loving all of us. If you want a baby to love you, give a lot of yourself to him/her! She's not going to truly love you just because you share blood, or because your title is &quot;mama,&quot; or because you give her bottles.&lt;/p&gt;&lt;p&gt;Give your time and attention, your smiles and kisses. The giving never stops, either. Not until *you* do, at the very end.&lt;/p&gt;&lt;p&gt;OK, I'm done venting and lecturing. For now.&lt;/p&gt;&lt;p&gt;(I'm not sure if I'm going to tell Shannon that I posted this. I think her Mom still reads the site occasionally, so perhaps she'll mention it to her. Might print it out to send to Mike, though.)&lt;/p--&gt;</description>	</item><item>	<title>Classy Query</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6166/trackback</trackback:ping>	<link>http://www.truerwords.net/6166</link>	<pubDate>Wed, 02 Apr 2008 18:33:01 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6166</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6166#msg6166</comments>	<category>Humor</category>	<category>Technology</category>	<description>&lt;p&gt;Remember the episode of StarTrek: The Next Generation when Data was studying humor and went onto the holodeck to interact with famous comedians? At first the computer gave him the funniest comedian of all time, but he specialized in math-humor and that was too specific (too focused, or vertical) for what Data wanted. (So, of course, he ended up with someone from the late 20th century. How convenient. Beside the point, too.)&lt;/p&gt;&lt;p&gt;That's what &lt;a href=&quot;http://ejohn.org/blog/classy-query/&quot;&gt;this makes me think of&lt;/a&gt;. It's an April Fool's joke that only javascripters will understand. Except, of course, it's not all &lt;b&gt;that&lt;/b&gt; funny. Cute, but not hilarious.&lt;/p&gt;&lt;p&gt;I read through the comments... some big names there who thought it was funny enough to comment. Of course, the author of the joke is also the author of jQuery itself, which makes him a pretty big deal. Most of the commentors were probably just sucking up. ;-) (Same would have happened if Sam Stephenson posted something similar.)&lt;/p&gt;</description>	</item><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 17: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>A New JS Mode for Emacs, and Why I Wrote a JS module for BBEdit</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6163/trackback</trackback:ping>	<link>http://www.truerwords.net/6163</link>	<pubDate>Mon, 31 Mar 2008 17:02:51 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6163</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6163#msg6163</comments>	<category>Macrobyte</category>	<category>Technology</category>	<category>Rich Siegel</category>	<category>BBEdit</category>	<category>DHTML / AJAX</category>	<description>&lt;p&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/2008/03/js2-mode-new-javascript-mode-for-emacs.html&quot;&gt;Stevey's Blog Rants: js2-mode: a new JavaScript mode for Emacs&lt;/a&gt;&lt;/p&gt;&lt;blockquote class=&quot;quote cite&quot; cite=&quot;http://steve-yegge.blogspot.com/2008/03/js2-mode-new-javascript-mode-for-emacs.html&quot;&gt;	For the OOD-loving and API-minded among you, the &quot;beautiful&quot; way to do syntax coloring would have been to finish parsing, &lt;em&gt;then&lt;/em&gt; walk the AST using a Visitor interface, applying the coloring in a second pass.  I tried it, and it was, as they say, &quot;butt slow&quot;.  In fact (perhaps not surprisingly) walking the AST takes exactly as long as parsing, so it was twice as slow as doing it inline.	&lt;br&gt;&lt;br&gt;	So I bit the bullet and moved my syntax-coloring to happen inline with parsing.  Fortunately it only introduced about 30 lines of code to the 4000-line parser/scanner, because most of the coloring happens in the scanner, at the token level.  Go figure.&lt;/blockquote&gt;&lt;p&gt;Steve Yegge describes (at length) his new JavaScript mode for Emacs. For much of the article he's talking about (trying to) parse the JavaScript file at the same time that he's applying syntax coloring. It's absolutely NOT a simple task, not by a long shot. He had the benefit of direct access to Brendan Eich (the author and maintainer of JavaScript itself) at least twice so far, but still describes how difficult it was. And this is someone many people consider a superstar programmer who has been working at Google for years.&lt;/p&gt;&lt;p&gt;Well, next to Conversant, my favorite-ever project is/was the JavaScript module in BBEdit. I won't go into all the technical details like Steve does, but I will say, &quot;I feel his pain.&quot;&lt;/p&gt;&lt;p&gt;Thinking about this, I realized that I never wrote the story of how I came to be contracted with Bare Bones. With all the explosives experts, martial artists, photographers, and &quot;connected&quot; individuals at BB I need to be careful not to cross the lines of my NDA, but I think I can tell this story safely. ;-)&lt;/p&gt;&lt;h3&gt;How It All Started&lt;/h3&gt;&lt;p&gt;In early Spring of 2006 — almost exactly two years ago — I was doing a lot of work with JavaScript. &lt;a href=&quot;http://www.prototypejs.org/&quot;&gt;Prototype&lt;/a&gt; was my new favorite toy, but 1.0 hadn't yet been released. My editor of choice was BBEdit, but I was frustrated that it didn't &lt;a href=&quot;http://www.truerwords.net/5734&quot;&gt;list the functions in Prototype.js&lt;/a&gt; (follow that link for more details, including pictures). I wrote to Bare Bones tech support to ask if they knew of any third-party, BBEdit, language modules for JavaScript.&lt;/p&gt;&lt;p&gt;The answer was &quot;no,&quot; but I was told that a couple other people had asked about improvements to their JavaScript support. I wrote back to say that I'd like to take a crack at it, if I could only see &quot;the source to the currentsyntax module.&quot; Hah. Yeah, like that was ever going to happen. &quot;Could you send me some of the source to your app, so I can write something better?&quot; (That's NOT what I said, but that's probably what it sounded like.)&lt;/p&gt;&lt;p&gt;After lots of email back and forth, on May 10th we had only reached the point where Bare Bones was &quot;planning to update it in a future release.&quot; I'm a developer, I know what that means. So I wrote again, and said I was going to start my own language module (based on BBEdit's public SDK for language modules), and could they just send me their current list of language keywords?&lt;/p&gt;&lt;p&gt;A month later, Rich himself finally sent them to me. That was June 12th. I wrote back with a better list of keywords, and told him I was going to start working on my own module unless they told me I shouldn't bother because they already had one under development. They didn't, but Rich seemed to be trying to call my bluff: you go ahead and start working on it, and if you come up with something good maybe we'll work something out. (I've been on both sides of this discussion, and I know that usually nothing happens.)&lt;/p&gt;&lt;p&gt;Three days later, I sent them a copy of a fully functional JavaScript language module, written in C++. &lt;span style=&quot;font-style: italic;&quot;&gt;(Looking back, I'm all impressed with myself!)&lt;/span&gt; When I'm telling this story in person, especially if Rich is nearby, I like to say that they tried to call my bluff but found I wasn't bluffing. I still think there was a little of that, but mostly I think they just dealt with this nagging, mostly-unknown customer the best way they could: &quot;go ahead and do your thing, and yes, maybe we'll work something out.&quot;&lt;/p&gt;&lt;p&gt;A few days after that I sent them another one, with some more features and some bugs fixed.&lt;/p&gt;&lt;p&gt;A few days later, I went to &lt;a href=&quot;http://www.truerwords.net/5567&quot;&gt;RailsConf&lt;/a&gt; in Chicago, and found out that lots of Rails developers were using TextMate. I'd barely heard of it! (Probably because I don't go looking for new toys very often when I have work to do.)&lt;/p&gt;&lt;p&gt;While at the conference, I talked to other JavaScript devs about their editors, and showed them what I'd done for BBEdit. I even showed Sam Stephenson, Prototype's author, at the same time that I was showing him what I'd done for &lt;a href=&quot;http://www.truerwords.net/articles/web-tech/custom_events.html&quot;&gt;custom events in javascript&lt;/a&gt;. Everybody liked it, and it was definitely better than anything else out there. &lt;b&gt;I also&lt;/b&gt; asked people why they were using whatever editor they were using. Most of the Rails folks who were using TextMate were using it because that's what the top Rails guys recommended, and because it had really good integration with Rails itself.&lt;/p&gt;&lt;p&gt;I wrote up all this &quot;research&quot; and sent it to Bare Bones when I returned home.&lt;/p&gt;&lt;p&gt;Writing the language module, peppering them with lots of email, and sending in the research I did at RailsConf were enough to really get their attention. In early July (can't remember... July 3rd or 5th), Rich came down here and we had lunch at &lt;a href=&quot;http://www.costellosclamshack.com/&quot;&gt;Costello's Clam Shack&lt;/a&gt;, right on the water. I got an early look at BBEdit 8.5, we talked about my 1,001 feature requests, and I signed an NDA with a handshake (and later with pen and ink).&lt;/p&gt;&lt;p&gt;Perhaps as import as the business that was done that day, &lt;a href=&quot;http://www.glorifiedtypist.com/2006/11/bread_pudding_1.html&quot;&gt;Rich and I became friends&lt;/a&gt; (and have had a casual breakfast almost every Tuesday morning since then).&lt;/p&gt;</description>	</item><item>	<title>Annoying Color Space Issue in Firefox</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6145/trackback</trackback:ping>	<link>http://www.truerwords.net/6145</link>	<pubDate>Tue, 04 Mar 2008 12:42:32 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6145</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6145#msg6145</comments>	<category>Photography</category>	<category>Technology</category>	<category>Mozilla</category>	<description>&lt;p&gt;Jim Correia and I spent a little time talking about this a few months ago, but I just noticed the problem again. Look at the following image:&lt;/p&gt;&lt;img src=&quot;http://www.truerwords.net/6145/enclosure/Firefox%20vs%20Safari.jpg&quot; height=&quot;302&quot; width=&quot;552&quot; alt=&quot;firefox vs safari.jpg&quot;  /&gt;&lt;br clear=&quot;all&quot; /&gt;&lt;p&gt;The image on the left is how Firefox 2 and 3 render it. The image on the right shows the same image in Safari. (You won't see any image if you're reading this in email, you'll have to go to the link above.)&lt;/p&gt;&lt;p&gt;If you don't see the difference immediately, look at Lauren's face. The color in the one on the right is really good, and is why I marked this image as one of my favorites in both iPhoto and Safari. The color in Firefox is terrible. She's darker, and the skin tone is way off.&lt;/p&gt;&lt;p&gt;This is really annoying. I think I understand the basics of this problem, but I'm told that the root of it is the cost of licensing the colorspace technology (from Adobe?). Mozilla has more money than they know what to do with right now, and they have a lot of really smart people. I hope they solve this soon.&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(Note that the picture looks pretty good in Internet Explorer, also. Of the three major browsers, Firefox is the only one with this problem.)&lt;/p&gt;</description>	</item><item>	<title>Paying for Twitterific</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6118/trackback</trackback:ping>	<link>http://www.truerwords.net/6118</link>	<pubDate>Thu, 27 Dec 2007 16:12:40 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6118</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6118#msg6118</comments>	<category>Business</category>	<category>Technology</category>	<description>&lt;p&gt;&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;&lt;img src=&quot;http://www.truerwords.net/6118/enclosure/twitterific.png&quot; height=&quot;256&quot; width=&quot;256&quot; align=&quot;right&quot; alt=&quot;Twitterific Icon&quot; border=&quot;0&quot;  /&gt;Twitterific&lt;/a&gt; is a great little &lt;a href=&quot;http://twitter.com/&quot;&gt;Twitter&lt;/a&gt; client for Mac OS X. I use it for most of the day, almost all day. It makes my one-man-office here at &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources, my company.&quot;&gt;Macrobyte&lt;/a&gt; feel a bit like I'm working in a big room full of friends and other developers.&lt;/p&gt;&lt;p&gt;The software is free if you don't mind seeing an ad once an hour. They show up in the same space as the &quot;tweets&quot; and can be skipped or ignored very easily. If you don't like the ads, you can register the software for $15. It's a good deal all around.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://odelbee.com/2007/11/05/how-to-remove-ads-from-twitterrific/&quot;&gt;Some &lt;s&gt;idiot&lt;/s&gt; unhappy person&lt;/a&gt;, however, has posted a hack that strips out the ads. People who use this hack are stealing money from the Icon Factory: they didn't pay for the software, and they're not showing the ads.&lt;/p&gt;&lt;p&gt;In response, I just registered my copy. They now have my $15.&lt;/p&gt;&lt;p&gt;The &lt;s&gt;idiot&lt;/s&gt; gentleman who posted the hack is defending himself, as if he didn't do anything wrong. Here's how we (all Twitterific users, especially software developers) should respond:&lt;/p&gt;&lt;ol&gt;    &lt;li&gt;&lt;a href=&quot;https://iconfactory.com/store&quot;&gt;Register your copy of Twitterific for $15&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Post a note somewhere to let everybody know you've just registered your copy. (I put mine &lt;a href=&quot;http://odelbee.com/2007/11/05/how-to-remove-ads-from-twitterrific/#comment-1533&quot;&gt;here&lt;/a&gt;, but that was probably overkill.)&lt;/li&gt;    &lt;li&gt;Post something on your own weblog. Either point here, or reproduce something like these instructions.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Let's see if we can drum up at least a few hundred registrations for them, to show our support. Turn the idiot's bad behavior into something good for the Icon Factory.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update 1:&lt;/b&gt; Some people think the hack never worked, and that it's just link bait for the idiot. Would be great if that's true, but it lets the air out of this particular challenge. ::shrug:: Oh well. At least our friends at &lt;a href=&quot;http://iconfactory.com/&quot;&gt;the Icon Factory&lt;/a&gt; have seen that we will stand up for them. :-)&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update 2:&lt;/b&gt; He's definitely a nut. Some people report the hack never worked anyway. Others say it did.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Update 3 &lt;s&gt;(final?)&lt;/s&gt;:&lt;/span&gt; &lt;a href=&quot;http://odelbee.com/2007/12/28/an-important-video-message-re-unlockerrific/&quot;&gt;Sheesh, he's a scary nut. With a banana.&lt;/a&gt; Now I'm sorry I called him an idiot. Wouldn't have done that if I had known.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update 4:&lt;/b&gt; Here's a &lt;a href=&quot;http://punkitup.com/twithack.html&quot;&gt;MUCH SHORTER version of this story/challenge.&lt;/a&gt; Funny!&lt;/p&gt;</description>	</item><item>	<title>New 50mm Lens for My Sony Alpha A100</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6101/trackback</trackback:ping>	<link>http://www.truerwords.net/6101</link>	<pubDate>Sun, 02 Dec 2007 21:55:24 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6101</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6101#msg6101</comments>	<category>Photography</category>	<category>Technology</category>	<category>Dad</category>	<category>Mike &amp; Shannon</category>	<category>Lauren</category>	<category>Equipment</category>	<description>&lt;p&gt;Remember the &lt;a href=&quot;http://www.truerwords.net/5865&quot;&gt;new camera&lt;/a&gt; I bought when &lt;a href=&quot;http://www.truerwords.net/5856&quot;&gt;Lauren&lt;/a&gt; was born? I bought the Sony because it was the only modern DSLR that would work with my old lenses from my Minolta. It's not the greatest camera in the world, but thousands of shots later I'm still pretty happy with it.&lt;/p&gt;&lt;p&gt;My biggest problem with this camera has been related to shooting portraits. Most of my pictures are of people (especialy Lauren, but not exclusively), which was certainly not the case when I bought my lenses in the 90's. I have three zoom lenses: one wide angle, and two telephoto; all three are Tamron zooms.&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;The brightest and fastest is a &lt;a href=&quot;http://en.wikipedia.org/wiki/F-number&quot;&gt;ƒ2.7&lt;/a&gt; @ 20mm to ƒ3.5 @ 40mm. I could live with the ƒ2.7, but 20mm is too wide for portrait work. ƒ3.5 @ 40mm was the best I could do with this one. However, the lens is in pretty good shape (not great, but pretty good), and it certainly wasn't designed for portrait work. If I'm going to sell any of my lenses, it'll be this one.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;At the other end of the spectrum, there's my gigantic bazooka of a lens. It's a ƒ5.6 that ranges from 200mm to 400mm. It's a beast, and is designed solely for outdoor wildlife shots in bright sunlight. It's not in great shape, either. I'll probably sell this one for less than $200. &lt;b&gt;Useless for portraits.&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;My workhorse lens, and the one I used for most everything this year, is a 28-200mm, ƒ3.8-ƒ5.6. Can't really use it indoors without a flash, but I have a big Minolta 3500xi which is bright enough to tan an albino. But that means that most of my pictures have to use the flash, and part of the &quot;art&quot; of photography is capturing the light as you see it, not what things look like in harsh glare of a small sun attached to your camera.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/414346417/&quot; title=&quot;Mother's Prayer by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/188/414346417_83f32359ed_s.jpg&quot; alt=&quot;Mother's Prayer&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/588752005/&quot; title=&quot;Smiling Lauren by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1097/588752005_50d85aef94_s.jpg&quot; alt=&quot;Smiling Lauren&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/663030325/&quot; title=&quot;After Her Bath by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1161/663030325_49548348b8_s.jpg&quot; alt=&quot;After Her Bath&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/678810952/&quot; title=&quot;Funny Nonny by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1361/678810952_917cc28648_s.jpg&quot; alt=&quot;Funny Nonny&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/906836856/&quot; title=&quot;Aunt Jill's Lap by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1345/906836856_224a3e7597_s.jpg&quot; alt=&quot;Aunt Jill's Lap&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;p&gt;I made do. &lt;a href=&quot;http://www.flickr.com/photos/sethdill/414346417/&quot;&gt;My&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/588752005/&quot;&gt;primary&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/663030325/&quot;&gt;subject&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/678810952/&quot;&gt;is&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/906836856/&quot;&gt;totally&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/1494507540/&quot;&gt;adorable&lt;/a&gt;, &lt;a href=&quot;http://www.flickr.com/photos/sethdill/1856677926/&quot;&gt;so&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/2037266233/&quot;&gt;this&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/2079036383/&quot;&gt;wasn't&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/sethdill/2079077719/&quot;&gt;difficult&lt;/a&gt;. A great subject can make up for a lot of other &quot;issues.&quot;&lt;/p&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/1494507540/&quot; title=&quot;Sitting Up by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2351/1494507540_f5fe66412e_s.jpg&quot; alt=&quot;Sitting Up&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/1856677926/&quot; title=&quot;Lauren by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2035/1856677926_92b0106f80_s.jpg&quot; alt=&quot;Lauren&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/2037266233/&quot; title=&quot;On the Kitchen Floor by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2343/2037266233_bc1270d825_s.jpg&quot; alt=&quot;On the Kitchen Floor&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/2079036383/&quot; title=&quot;DSC01554.JPG by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2389/2079036383_696dbf3213_s.jpg&quot; alt=&quot;DSC01554.JPG&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/2079077719/&quot; title=&quot;Cute in PJs by Seth Dillingham, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2415/2079077719_8ab423e51a_s.jpg&quot; alt=&quot;Cute in PJs&quot; height=&quot;75&quot; width=&quot;75&quot;&gt;&lt;/a&gt;&lt;p&gt;Still, I am and always have been interested in photography itself. All along I've known that a better lens, designed for portraits, would only make for better pictures. Having never taken any classes (nor really read any books), I didn't really know what &quot;better&quot; meant other than lower ƒ-stops (faster).&lt;/p&gt;&lt;p&gt;Earlier this year, John Gruber talked (on his site, and in Twitter) a lot about 50mm lenses. He linked to some articles written by pros. The lessons I pulled from them were that to learn better photography you should start with a 50mm (or thereabouts) lens, ƒ1.4 or ƒ1.7. No zooming, and preferably no flash. Learn to work with the most basic elements of photography first, then go back to your zooms and flashes.&lt;/p&gt;&lt;p&gt;Sony's 50mm lens is expensive, and we don't have the money for it. So I looked on eBay for something that would work. I found one, and made the ridiculously low bid of $26. A few days later, I'd won. Surprise!&lt;/p&gt;&lt;p&gt;With shipping it was only about $33, and a couple days later it was in my hands. But not on my camera. It was the wrong mount. I knew that Minolta lenses worked on the Sony, but I didn't know that Minolta had an older mount that was incompatible. Oops.&lt;/p&gt;&lt;p&gt;The seller was more than helpful. We talked things over, and I told him the story (the whole thing!) of the old camera, Mike and Shannon, Lauren, the smashing of the Nikon, the new camera, all of it. He pointed out that the lens I need is much more expensive than the one he sold me. (I knew that, which is why I was so surprised that he sold it to me for so little… but I was confused.)&lt;/p&gt;&lt;p&gt;He surprised me by giving me the lens I need in trade for his original lens. So I now have a 50mm Minolta AF ƒ1.7 lens, for $26 (plus two shipping fees).&lt;/p&gt;&lt;p&gt;&quot;He&quot; is V. John Paloulian and totally deserves a link. If you're in the market for some &lt;a href=&quot;http://search.ebay.com/_W0QQfgtpZ1QQfrppZ25QQsassZvitoarmani&quot;&gt;used camera equipment&lt;/a&gt; and want a very knowledgeable and friendly seller, please check out his goods first. (He didn't say, but I'm guessing that he runs some sort of a camera shop, based on his list of products.)&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/sethdill/2079265783/&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2138/2079265783_c54aacd010_t.jpg&quot; style=&quot;margin-right: 4px;&quot; alt=&quot;Lydia Sarah Peña&quot; align=&quot;left&quot; border=&quot;0&quot; height=&quot;67&quot; width=&quot;100&quot;&gt;&lt;/a&gt;I've only had the lens for a day, so I don't have a lot to show for it yet. All the &lt;a href=&quot;http://www.flickr.com/photos/sethdill/sets/72157603348785062/&quot;&gt;pictures I took yesterday&lt;/a&gt; of my new niece Lydia (and actually one of my Dad, which happens to be one of my favorite pictures ever) used that lens. I'm delighted with it so far, but I'm still learning. There's a huge difference in the field depth between ƒ4 and ƒ1.7, and some of those pictures of Lydia show that I'm still, uh, &quot;experimenting.&quot;&lt;/p&gt;</description>	</item><item>	<title>Weirdly Scrabulous</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6099/trackback</trackback:ping>	<link>http://www.truerwords.net/6099</link>	<pubDate>Wed, 28 Nov 2007 02:38:27 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6099</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6083#msg6099</comments>	<category>People</category>	<category>Technology</category>	<description>&lt;p&gt;I &lt;a href=&quot;http://www.truerwords.net/6083&quot;&gt;mentioned&lt;/a&gt; a few weeks ago that I'd played a weird game of Scrabble on FaceBook.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://www.truerwords.net/6099/enclosure/Scrabulous.jpg&quot; height=&quot;384&quot; width=&quot;384&quot; align=&quot;left&quot; alt=&quot;scrabulous.jpg&quot; border=&quot;0&quot;  /&gt;&lt;a href=&quot;http://www.truerwords.net/6099/enclosure/Scrabulous.jpg&quot;&gt;This one&lt;/a&gt; tops that by a mile. That's just weird.&lt;/p&gt;&lt;br clear=&quot;all&quot; /&gt;</description>	</item><item>	<title>Proto for FireFox Mac OS X</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6098/trackback</trackback:ping>	<link>http://www.truerwords.net/6098</link>	<pubDate>Sun, 25 Nov 2007 22:54:27 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6098</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6098#msg6098</comments>	<category>Technology</category>	<category>Mozilla</category>	<description>&lt;p&gt;If you're running one of the &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/all-beta.html&quot;&gt;FireFox 3 prerelase versions&lt;/a&gt;, you should install &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/6050&quot;&gt;this theme&lt;/a&gt;. It's a pre-release version of the &quot;mac look and feel&quot; that Mozilla is preparing, bundled as a theme. I've read that they'll be shipping it with FireFox 3.0 when it's ready, but I now I can't find where I read it.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Huge improvement over what 3.0b1 ships with.&lt;/p&gt;&lt;p&gt;Note that &quot;huge improvement,&quot; doesn't mean it's great. The toolbar area is now way too heavy and dark, which is exactly the oppsoite of Firefox 3's default theme. This theme is way better, but it's not nearly as good as Safari.&lt;/p&gt;</description>	</item><item>	<title>An Entirely Other Day - Wide vs. Deep</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6096/trackback</trackback:ping>	<link>http://www.truerwords.net/6096</link>	<pubDate>Wed, 21 Nov 2007 21:31:25 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6096</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6096#msg6096</comments>	<category>People</category>	<category>Business</category>	<category>Technology</category>	<category>Programming</category>	<description>&lt;p&gt;&lt;a href=&quot;http://blog.eod.com/post/18462877&quot;&gt;An Entirely Other Day - Wide vs. Deep&lt;/a&gt;&lt;/p&gt;&lt;blockquote cite=&quot;http://blog.eod.com/post/18462877&quot; class=&quot;cite&quot;&gt;	So here’s my theory:  Managers must work shallow and wide, while programmers must work narrow and deep.  People who are naturally tuned to one particular method of work will not only enjoy their jobs a lot more, but be better at them.  I’m a deep guy, I should be doing deep work.&lt;/blockquote&gt;&lt;p&gt;This article and his theory remind me of something (er, someone) which seems to be completely unrelated: Michael Jordan. When he retired from the Bulls for the first time (shortly after his Dad died) to see if he could play Major League Baseball, he found it very difficult to hit those legendary pitches.&lt;/p&gt;&lt;p&gt;What's the connection? The pitching coach (of either the White Sox or the AA team where he played... the Barons?) said his problem was one of focus. When you play basketball, you have to be aware of everything going on around you all the time. Peripheral vision is key. When you're trying to hit a 90-mile-per-hour baseball, you need absolute tunnel vision, total focus on that one task.&lt;/p&gt;&lt;p&gt;That's the difference between managing and programming.&lt;/p&gt;&lt;p&gt;Like the author of &quot;Wide vs. Deep,&quot; I've done both and I prefer programming. (Managing my crew at Macrobyte during its heyday was fine, but I'm referring to my time at RR Donnelley in the mid-90's.)&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(Thanks to &lt;a href=&quot;http://daringfireball.net/linked/2007/november#wed-21-wide_deep&quot;&gt;DF&lt;/a&gt; for the original link.)&lt;/p&gt;</description>	</item><item>	<title>The Six Rules of Scrabulous Honour</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6094/trackback</trackback:ping>	<link>http://www.truerwords.net/6094</link>	<pubDate>Tue, 20 Nov 2007 22:40:54 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6094</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6094#msg6094</comments>	<category>Humor</category>	<category>Technology</category>	<description>&lt;ol&gt;	&lt;li&gt;&lt;p&gt;Thou shalt use the &quot;look up word&quot; feature in Scrabulous to thine heart's content.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt;Thou shalt use the Scrabulous list of two-letter words, all that thou dost wish.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt; Thou shalt use anything else that's built into Scrabulous, until the cows come home.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt; THOU SHALT NOT use ANY word-builder web sites, programs, or anything else.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt; THOU SHALT NOT look up words in a dictionary (neither a book nor a program on your computer). That's what &quot;Look up Word&quot; is for in Scrabulous.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt; THOU SHALT NOT seek, ask for, or accept help from any person, pet, or vegetation, living or otherwise.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Been dealin' with some cheaters on Scrabulous (on FaceBook). People who play &quot;average&quot; face to face, but almost always make perfect moves online. Grr.&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 14: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>Bootleg Movies</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6089/trackback</trackback:ping>	<link>http://www.truerwords.net/6089</link>	<pubDate>Thu, 08 Nov 2007 20:33:37 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6089</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6089#msg6089</comments>	<category>News</category>	<category>Movies</category>	<category>Technology</category>	<description>&lt;p&gt;Yesterday at the barbershop, everybody in the room (seven people) was talking about bootleg movies. Based on the comments, I was the only one there who hasn't ever owned one.&lt;/p&gt;&lt;p&gt;It started because a military guy was in the chair talking with John (the lead barber) about American Gangster. They'd both seen it already: the guy in the chair saw it at the theater, John saw it three weeks ago on a Russian bootleg DVD. (Three weeks ago! The movie was released to theaters AFTER that!)&lt;/p&gt;&lt;p&gt;The military guy said he hasn't seen a bootleg of AG yet, but the guys coming back from Iraq and Afghanistan always have loads of movies with them, all bootleg and some of them pre-release like the AG that John had.&lt;/p&gt;&lt;p&gt;It would have turned into a swap-meet but for the fact that nobody had any with them. (And to be clear, I don't want one and the whole idea kind of bugs me: it's no different than software piracy.)&lt;/p&gt;&lt;p&gt;Earlier this year, another regular at the diner where &lt;a href=&quot;http://www.glorifiedtypist.com/&quot;&gt;Rich&lt;/a&gt; and I have breakfast every week offered me a copy of the latest Spider Man movie. I had it in my hands, then it occurred to me that the film had just come out in theaters. &quot;What is this, a bootleg?&quot; I asked out loud. He was very upset, told me to shush, and immediately put his movie away again. &quot;How do you know none of these people are cops?&quot; he whispered back.&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(Note: &lt;a href=&quot;http://arstechnica.com/news.ars/post/20071108-pirate-act-dons-eye-patch-swashbuckles-back-into-senate.html&quot;&gt;This story about the Pirate Act&lt;/a&gt; on Ars Technica reminded me to write this.)&lt;/p&gt;</description>	</item><item>	<title>You Probably Already Read This</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6087/trackback</trackback:ping>	<link>http://www.truerwords.net/6087</link>	<pubDate>Mon, 05 Nov 2007 13:32:53 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6087</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6087#msg6087</comments>	<category>Technology</category>	<category>Operating Systems</category>	<description>&lt;p&gt;If you're a mac aficionado, then you've probably already read it. If you haven't, go read &lt;a href=&quot;http://arstechnica.com/reviews/os/mac-os-x-10-5.ars&quot;&gt;the ultimate Mac OS X Leopard (10.5) review by John Siracusa&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;It's not an exhaustive review of everything new or different in 10.5, but it's still quite long. Worth the read if you use a mac every day. Some of it is quite technical, but the review is broken across a number of pages so you can skip the parts that don't interest you.&lt;/p&gt;</description>	</item><item>	<title>What About Conversant?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6080/trackback</trackback:ping>	<link>http://www.truerwords.net/6080</link>	<pubDate>Thu, 18 Oct 2007 11:19:22 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6080</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6080#msg6080</comments>	<category>Macrobyte</category>	<category>Technology</category>	<category>Conversant</category>	<description>&lt;p&gt;With all the &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;work I do on BBEdit&lt;/a&gt; for Bare Bones these days, some friends and clients have asked me, &quot;What about Conversant?&quot;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt; is still loved, don't worry. In fact, here are the three things I'm working on, and hope to have ready by the end of the year:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&lt;b&gt;Tagging&lt;/b&gt; — Enough with the annoying ‘category checkboxes.’ Other sites and systems have proven a million times over that people prefer free form tagging. (That is, &quot;categorize&quot; your messages by typing words or quoted phrases, rather than selecting from a predefined list of checkboxes.) Not that the old way will go away. They may even work together.&lt;/li&gt;	&lt;li&gt;	&lt;b&gt;Tweeting&lt;/b&gt; - Sites (conversations), zones and servers will be able to &lt;a href=&quot;http://twitter.com/&quot;&gt;tweet&lt;/a&gt;. Because it's easy, that's why.&lt;/li&gt;	&lt;li&gt;	&lt;b&gt;MySQL&lt;/b&gt; - This one has been on hold, but I can't let it wait forever. We'll be able to move individual sites over to a SQL database. This may or may not be done by the end of the year.&lt;/li&gt;&lt;/ul&gt;</description>	</item><item>	<title>My First Core Image Filter (for Acorn)</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6064/trackback</trackback:ping>	<link>http://www.truerwords.net/6064</link>	<pubDate>Fri, 28 Sep 2007 02:32:42 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6064</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6064#msg6064</comments>	<category>Technology</category>	<category>Programming</category>	<description>&lt;p&gt;While playing with &lt;a href=&quot;http://flyingmeat.com/acorn/&quot;&gt;Acorn&lt;/a&gt;, I was trying to figure out how to make a scan of some black and white line art appear as black-and-transparent, so it would look as though it was &quot;drawn&quot; directly onto whatever background over which it was placed.&lt;/p&gt;&lt;p&gt;Not *quite* as easy as it sounds, for a couple of reasons. The biggest problem is that you can't just give all white pixels an opacity of 0% (or 100% transparency). Black and white line art &quot;scans&quot; are not just black and white, even after you clean them up: the edges of the black have a sort of anti-aliasing: light gray pixels that help to smooth out the image. The second problem is that Acorn doesn't support channel-based editing. You can change opacity and color all you want to, but you can't just view and edit the image's alpha channel.&lt;/p&gt;&lt;p&gt;I asked &lt;a href=&quot;http://gusmueller.com/blog/&quot;&gt;Gus&lt;/a&gt; if he thought I should do an Acorn plugin (and described what I was trying to accomplish). See, years ago I wrote a little plugin for a little company called Adobe, for their little app called Photoshop (v.4, I think). The money was good, and we still have the B&amp;W G3 and 17&quot; display that they sent me along with the check. Anyway, I figured if I could write a Photoshop plugin for Adobe, I could write an Acorn plugin for my own use, right? Right!?&lt;/p&gt;&lt;p&gt;Gus said I would be better served writing a Core Image Filter. It's like a filter/plugin, but it's for the OS instead of a specific app.&lt;/p&gt;&lt;p&gt;I didn't make time to work on it until today. It took a couple of hours to find the right documentation and actually write the filter. Gus had sent me the heart of the filter in the form of a single, very short function that just manipulated the alpha value of a pixel based on the channel's combined r/g/b values.&lt;/p&gt;&lt;p&gt;Apple's docs for this stuff are surprisingly bad. I found one tutorial that helped a bit, and then in the end I just had to try a few things to make it work.&lt;/p&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;!--div.demoWrapper {	position: relative;	width: 630px; 	top: 1em;	left: 1em;	height: 418px;	overflow: auto;}div.imageBlock {	width: 206px;	position: absolute;}div.imageDisplay {	margin: 6px;	padding: 0;	text-align: center;}div.imageBlock.bga div.background {	background: url(http\://media.macrobyte.net/white_to_trans/Background%20A.png);}div.imageBlock.bgb div.background {	background: url(http\://media.macrobyte.net/white_to_trans/Background%20B.png);}div.imageBlock.bgc div.background {	background: url(http\://media.macrobyte.net/white_to_trans/Background%20C.png);}div.imageDisplay div {	padding: 2px;}div.imageDisplay div.description {	background: #fff;	font-size: 9px;	font-family: helvetical, verdana, arial;}--&gt;&lt;/style&gt;&lt;!--[required_stylesheets]--&gt;&lt;div class=&quot;demoWrapper&quot;&gt;	&lt;h4 style=&quot;text-align: center; margin: 0;&quot;&gt;Three Images, Three Backgrounds&lt;/h4&gt;	&lt;div class=&quot;imageBlock bga&quot;&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20A.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;Plain black and white image, no transparency.&lt;/div&gt;		&lt;/div&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20B.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;White converted to 100% transparency. The 'halo' comes from the light gray pixels that smooth out the black lines when the image is over a white background.&lt;/div&gt;		&lt;/div&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20C.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;Image after applying the 'White to Alpha' filter in Acorn.&lt;/div&gt;		&lt;/div&gt;	&lt;/div&gt;	&lt;div class=&quot;imageBlock bgb&quot; style=&quot;left: 206px;&quot;&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20A.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;Plain black and white image, no transparency.&lt;/div&gt;		&lt;/div&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20B.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;White converted to 100% transparency. The 'halo' comes from the light gray pixels that smooth out the black lines when the image is over a white background.&lt;/div&gt;		&lt;/div&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20C.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;Image after applying the 'White to Alpha' filter in Acorn.&lt;/div&gt;		&lt;/div&gt;	&lt;/div&gt;	&lt;div class=&quot;imageBlock bgc&quot; style=&quot;left: 412px;&quot;&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20A.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;Plain black and white image, no transparency.&lt;/div&gt;		&lt;/div&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20B.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;White converted to 100% transparency. The 'halo' comes from the light gray pixels that smooth out the black lines when the image is over a white background.&lt;/div&gt;		&lt;/div&gt;		&lt;div class=&quot;imageDisplay&quot;&gt;			&lt;div class=&quot;background&quot;&gt;&lt;img src=&quot;http://media.macrobyte.net/white_to_trans/Macrobyte%20Logo%20C.png&quot; /&gt;&lt;/div&gt;			&lt;div class=&quot;description&quot;&gt;Image after applying the 'White to Alpha' filter in Acorn.&lt;/div&gt;		&lt;/div&gt;	&lt;/div&gt;&lt;/div&gt;&lt;br clear=&quot;all&quot; /&gt;&lt;p&gt;So what does it do, exactly? Well, the idea was to display black-and-white line art so that it would look &quot;good&quot; on any background (not just white). In Photoshop, the easiest way to do this is to copy the artwork to the alpha channel, invert the channel (100% -&gt; 0%, 0% -&gt; 100%, 25% -&gt; 75%, etc.), go back to the main image (either the RGB channels or the Gray channel) and bring the brightness way down and the contrast way up so that any pixels which were anything other than pure white are now pure black.&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(Why? Because their &quot;gray&quot; levels will now be opacity levels, so they will blend against any background. What was light gray is now solid black but mostly transparent.)&lt;/p&gt;&lt;p&gt;That's how I'd do it in Photoshop. Now I can do it in Acorn with a single click. :-D&lt;/p&gt;&lt;p&gt;If you want it, feel free to &lt;a href=&quot;http://media.macrobyte.net/white_to_transparent.plugin.zip&quot;&gt;download a copy of the filter&lt;/a&gt;. Copy it to /Libryar/Graphics/Image Units/ or ~/Library/Graphics/Image Units/. I've used it in Acorn, Core Image Fun House, and Quartz Composer… so I can assure you that it works on my machine. ;-)&lt;/p&gt;&lt;p&gt;Update: If you install it, you'll find it in Acorn under the Filters-&gt;Stylize menu. Maybe not the best place for it, but I'm not sure where it should be.&lt;/p&gt;</description>	</item><item>	<title>FlyingMeat Releases Acorn 1.0</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6053/trackback</trackback:ping>	<link>http://www.truerwords.net/6053</link>	<pubDate>Mon, 10 Sep 2007 12:30:20 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6053</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6053#msg6053</comments>	<category>Technology</category>	<description>&lt;p&gt;&lt;img src=&quot;http://www.truerwords.net/6053/enclosure/acorn.png&quot; height=&quot;128&quot; width=&quot;128&quot; align=&quot;left&quot; alt=&quot;acorn.png&quot; border=&quot;0&quot; style=&quot;margin-right: 0.5em;&quot;  /&gt;Big &lt;span style=&quot;font-size: 150%; font-weight: bold;&quot;&gt;congratulations&lt;/span&gt; to Gus on the release of &lt;a href=&quot;http://flyingmeat.com/acorn/&quot;&gt;Acorn 1.0&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Acorn is a new image editor. It's not really going up against Photoshop (because that would be, uh... &quot;nuts&quot;), Gus is just trying to fit it in somewhere between iPhoto's very limited (or complete lack of) editing tools and photoshop's do-everything approach.&lt;/p&gt;&lt;p&gt;You can even write &lt;a href=&quot;http://flyingmeat.com/acorn/plugin.shtml&quot;&gt;Acorn plugins&lt;/a&gt; in Python or Objective-C.&lt;/p&gt;&lt;p&gt;&lt;i&gt;(I wonder if I could talk him into... nah, I shouldn't ask. ;-) I'm sure he'll think of it on his own anyway. (And right now, he surely needs some time to recuperate...) &lt;b&gt;Update:&lt;/b&gt; Ooh, now I have ten Acorn licenses to auction off, as well. Thanks, Gus.&lt;/i&gt;&lt;/p&gt;</description>	</item><item>	<title>No More Logitech Keyboards</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6046/trackback</trackback:ping>	<link>http://www.truerwords.net/6046</link>	<pubDate>Mon, 03 Sep 2007 14:11:32 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6046</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6046#msg6046</comments>	<category>Technology</category>	<category>Equipment</category>	<description>&lt;p&gt;Mikey, our Blue and Gold Macaw, got to Corinne's external keyboard *again* (a wireless Logitech that she uses with her PowerBook). It's like her beak was designed for taking keys off of keyboards. She scoops them off incredibly quickly, and usually just tosses them to the side and goes for the next one.&lt;/p&gt;&lt;p&gt;Sometimes she mashes them for a couple seconds before tossing them. The mashed ones can't be put back. Now Corinne's keyboard is pretty screwed up... there are some keys she just can't use, so she has to reach up and use the key on the main keyboard (which is also missing some keys for the same reason).&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.truerwords.net/6046/enclosure/ape_install.png&quot;&gt;&lt;img src=&quot;http://www.truerwords.net/6046/enclosure/ape_install.png&quot; height=&quot;232&quot; width=&quot;336&quot; align=&quot;right&quot; alt=&quot;ape_install.png&quot; border=&quot;0&quot; height=&quot;232&quot; style=&quot;margin-left: 0.5em;&quot; width=&quot;336&quot;  /&gt;&lt;/a&gt;Saturday we went to Staples to buy her (Corinne, not Mikey, though I'm not sure that's a valid distinction) a new keyboard. They had one Microsoft model, more than a dozen Logitechs, and one or two others. We bought two Logitechs: one Desktop Wave to replace my ancient &quot;split design&quot; Ortek, and something cheaper for Corinne (because of the danger of Mikey attacking it again).&lt;/p&gt;&lt;p&gt;We're returning both keyboards. Logitech actually installs &lt;a href=&quot;http://en.wikipedia.org/wiki/Application_Enhancer&quot;&gt;Unsanity's Application Enhancer&lt;/a&gt;! That's &lt;b&gt;insanity&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;It's too bad... I quite like the feel of the Wave keyboard. I'd have liked it more if it had a split layout like my Ortek (to which I'm returning, until I find something better), but I do like the &quot;wavey&quot; layout. And I wouldn't mind having some media keys on my keyboard.&lt;/p&gt;&lt;p&gt;But... APE? Give me a break, Logitech.&lt;/p&gt;&lt;p&gt;Oh, there were other problems, also. Corinne's keyboard didn't sit level, so it bounced/rocked a little while she typed. Also, I don't need the whole Wave combo of keyboard and mouse. The only device for which I'd give up my Kensington Expert Mouse trackball is the wireless version of same. After buying this Wave, I found that Logitech sells a wired version of the keyboard, by itself. (Unfortunately, that doesn't help with the APE issue.)&lt;/p&gt;&lt;p&gt;No more Logitech keyboards until they stop installing APE.&lt;/p&gt;</description>	</item><item>	<title>PMC Software Auction 8: Web Developer's Paradise</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6040/trackback</trackback:ping>	<link>http://www.truerwords.net/6040</link>	<pubDate>Tue, 28 Aug 2007 17:40:46 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6040</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6040#msg6040</comments>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<category>Programming</category>	<category>Web Sites</category>	<description>&lt;p&gt;The eighth auction is running, and is called “&lt;a href=&quot;http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;ih=011&amp;viewitem=&amp;item=320152686343&amp;rd=1&quot;&gt;Mac Software Bundle: Web Developer's Paradise&lt;/a&gt;.”&lt;/p&gt;&lt;p&gt;This is the most ‘focused’ auction to date. These are tools for web (site or app) developers, and include high-end apps like BBEdit for source editing, Coda and Sandvox for designing, SQLGrinder for databases, Interarchy for FTP, and Screen Mimic for screencasts. (I do this work for a living, and seriously wish I had all of these apps!) Also included Daylite and Billings, to help on the business side of being a web developer.&lt;/p&gt;&lt;p&gt;Yeah, ok, that last sentence sounded like a lame attempt at marketing, but it wasn't. I'm serious. I don't have Coda, Sandvox, SQLGrinder, or Screen Mimic, and could certainly use them. (So maybe it's not a good idea for me to sell a sweet bundle like this to my competition!)&lt;/p&gt;&lt;p&gt;Two last details: there's no reserve this time, and it's a seven day auction instead of five.&lt;/p&gt;</description>	</item><item>	<title>The Best and the Worst Part of this Job...</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6028/trackback</trackback:ping>	<link>http://www.truerwords.net/6028</link>	<pubDate>Tue, 21 Aug 2007 20:48:40 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6028</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6028#msg6028</comments>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<description>&lt;p&gt;The best part of managing &lt;a href=&quot;http://www.truerwords.net/fundraising/pmcsoftware/&quot;&gt;this project&lt;/a&gt; is all the cool software I get to play with. The Mac really does have a lot of excellent stuff written for it.&lt;/p&gt;&lt;p&gt;The worst part of managing the project is that I can only play (I mean work) with all this cool software for a few minutes.&lt;/p&gt;&lt;p&gt;The first auction is about to close, and a friend is finally looking it over and saying, &quot;Ooh! I didn't know that was in there! Ooh, I want that. And that!&quot;&lt;/p&gt;&lt;p&gt;Yeah. Me too. Down, Seth, down.&lt;/p&gt;&lt;p&gt;(Years ago, my brand new eBay account was suspended because I bid on something Corinne was auctioning. I wanted it for the business, and if I could get it for a good price the business would have bought it from her. I didn't know that you couldn't do that. As soon as I clicked the &quot;bid&quot; button, both of our accounts were disabled. Oops.)&lt;/p&gt;</description>	</item><item>	<title>GarageSale and the PMC Software Auctions</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6026/trackback</trackback:ping>	<link>http://www.truerwords.net/6026</link>	<pubDate>Sun, 19 Aug 2007 01:25:30 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6026</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6026#msg6026</comments>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<category>Programming</category>	<description>&lt;p&gt;I'm taking a  minute to post a big &quot;Thank You&quot; to the folks at &lt;a href=&quot;http://www.iwascoding.com/&quot;&gt;iwascoding&lt;/a&gt;, the makers of &lt;a href=&quot;http://www.iwascoding.com/GarageSale/&quot;&gt;GarageSale&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;They didn't &quot;just&quot; donate five licenses of GarageSale to the auction. They also gave me a license of my own to use for the auctions, AND... no, wait, this deserves it's own paragraph.&lt;/p&gt;&lt;p&gt;AND... they added a feature to GarageSale specifically because I needed it!&lt;/p&gt;&lt;p&gt;Here's the deal: if you're doing charity auctions on eBay, you need to have an account with &lt;a href=&quot;http://www.missionfish.org/&quot;&gt;MissionFish&lt;/a&gt;, who guarantees that the charity receives the money. When you create the auction, you need to provide your Mission Fish info, choose your charity (out of a list of thousands), and specify what percentage of the final sale will go to the charity.&lt;/p&gt;&lt;p&gt;It's a serious pain in the neck, just like everything else related to setting up an auction on eBay (IMO).&lt;/p&gt;&lt;p&gt;With GarageSale, though, it's easy. They remember my MissionFish account in the prefs. They remember my choice of charities. I can create new auctions almost instantly, based on previous auction templates. Plus, the software has this practically endless list of aucton styles!&lt;/p&gt;&lt;p&gt;This project will always be a huge amount of work, but I'm whittling away at the process and it's growing easier all the time. GarageSale and it's charity-friendliness is my number-one biggest time saver, though. (Next year, my Rails app for managing all the data for this project will be the number one time-saver. I'm already using it this year, and it's saving me time, but I also &lt;b&gt;wrote it&lt;/b&gt; this year so the real savings won't start until next year.)&lt;/p&gt;&lt;p&gt;Um... &quot;P.S.&quot; Last time I did this, I got free copies of &lt;a href=&quot;http://www.knoxformac.com/&quot;&gt;Knox&lt;/a&gt;, &lt;a href=&quot;http://www.flyingmeat.com/voodoopad/&quot;&gt;VoodooPad&lt;/a&gt;, &lt;a href=&quot;http://www.flyingmeat.com/flysketch/&quot;&gt;FlySketch&lt;/a&gt; and &lt;a href=&quot;http://www.flyingmeat.com/flygesture/&quot;&gt;FlyGesture&lt;/a&gt;, but I forgot to thank Marko and Gus. Thanks guys!&lt;/p&gt;</description>	</item><item>	<title>First PMC Software Auction: Deluxe Mac Software Bundle for Business</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6020/trackback</trackback:ping>	<link>http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;ih=011&amp;viewitem=&amp;item=320148900035&amp;rd=1</link>	<pubDate>Thu, 16 Aug 2007 20:59:40 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6020</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6020#msg6020</comments>	<category>Business</category>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<category>Operating Systems</category>	<description>&lt;p&gt;&lt;a href=&quot;http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;amp;viewitem=&amp;amp;item=320148900035&quot;&gt;&lt;img src=&quot;http://media.truerwords.net/images/ebay/gs/deluxemac-1187299937-239.jpg&quot; align=&quot;left&quot; border=&quot;0&quot; height=&quot;446&quot; width=&quot;292&quot;&gt;&lt;img src=&quot;http://www.truerwords.net/6020/enclosure/logoEbay_x45.gif&quot; height=&quot;45&quot; width=&quot;110&quot; align=&quot;right&quot; alt=&quot;logoebay_x45.gif&quot; border=&quot;0&quot;  /&gt;The first PMC Software Auction is &lt;b&gt;FINALLY&lt;/b&gt; live!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;There are twenty-one apps in the bundle (a few more than &lt;a href=&quot;http://www.truerwords.net/6017&quot;&gt;I listed last night&lt;/a&gt;). Very low opening price, and the reserve is a lot less than I'm hoping for, too.&lt;/p&gt;&lt;p&gt;It's hard to say for sure, but I would guess that this bundle would appeal to anyone who runs their own small business. Self-employed &quot;contract&quot; workers (people like me, for example).&lt;/p&gt;&lt;p&gt;As a reminder: all of these apps (and over 100 more) were &lt;a href=&quot;http://www.truerwords.net/fundraising/pmcsoftware.html&quot;&gt;donated&lt;/a&gt; by their authors for these auction. There's some award winning software in there, and lots of just generally-useful stuff.&lt;/p&gt;&lt;p&gt;As this is for charity, I tried to find a balance between promoting the bundle (on eBay) and saving money. The more I save, the more will go to the PMC. But if it doesn't sell for a good price, that will have been a mistake.&lt;/p&gt;&lt;h3&gt;Psst. Spread the Word. &lt;i&gt;Pass It Around&lt;/i&gt;&lt;/h3&gt;&lt;p&gt;So, I need your help (dear reader). Please tell everybody about these auctions. &lt;s style=&quot;color: #666; font-size: 90%;&quot;&gt;You could send them to my home page, or to &lt;a href=&quot;http://www.truerwords.net/index/channel/SoftwareAuctions&quot;&gt;this weblog which only talks about the auctions&lt;/a&gt; (and will list each of them as they go live). If you use NetNewWire or GoogleReader, you could even subscribe to the &lt;a href=&quot;http://www.truerwords.net/index/rss/channel/SoftwareAuctions&quot;&gt;news feed (RSS) for the auctions blog&lt;/a&gt;.&lt;/s&gt; &lt;b&gt;Update:&lt;/b&gt; &lt;a href=&quot;http://www.truerwords.net/fundraising/pmcsoftware/&quot;&gt;Send them here, please.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now that the first one is up, it will be a lot easier for me to do the rest. I plan to run 3-4 auctions at once, with different software in each auction. The successful auctions will be repeated.&lt;/p&gt;&lt;p&gt;This will only work if people find out about it. If I have to put money into promoting the auctions, the charity gets less.&lt;/p&gt;&lt;br clear=&quot;all&quot;&gt;</description>	</item><item>	<title>How well do you know Prototype?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6015/trackback</trackback:ping>	<link>http://thinkweb2.com/projects/prototype-checklist/</link>	<pubDate>Mon, 13 Aug 2007 01:35:14 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6015</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6015#msg6015</comments>	<category>Technology</category>	<category>DHTML / AJAX</category>	<description>&lt;p&gt;&lt;a href=&quot;http://thinkweb2.com/projects/prototype-checklist/&quot;&gt;thinkweb2.com&lt;/a&gt; posted a great set of examples of better ways to take advantage of Prototype in your own javascript code.&lt;/p&gt;&lt;blockquote cite=&quot;http://thinkweb2.com/projects/prototype-checklist/&quot;&gt;	Here, I've collected most common use cases that do	&lt;strong&gt;NOT&lt;/strong&gt; use all of prototype's capabilities and their	simple solutions. I hope this will be a basic checklist to go through	when developing for your next project.&lt;/blockquote&gt;&lt;p&gt;Excellent list. If you don't work with Prototype on a regular basis, or you do but you haven't paid attention to everything it can do, read this. It could save you a lot of typing, headaches, and time.&lt;/p&gt;</description>	</item>	</channel></rss>