<?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 2013 seth@macrobyte.net</copyright>		<generator>Conversant's Weblog II plugin</generator>		<category>Technology</category>		<item>	<title>The Friends We Never Meet</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6399/trackback</trackback:ping>	<link>http://www.truerwords.net/6399</link>	<pubDate>Thu, 06 Oct 2011 12:47:34 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6399</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6399#msg6399</comments>	<category>People</category>	<category>Technology</category>	<description>&lt;p&gt;I have so many things I'd like to say about last night's news. So many people with a more direct connection to Steve Jobs are saying their piece right now that my saying anything at all feels a bit silly.&lt;/p&gt;&lt;p&gt;So be it. I'll keep this short.&lt;/p&gt;&lt;p&gt;My connection was nearly life long — 30+ years — but very indirect. I saw him in person once, but never met him. My first mac was a 512 Ke in late 1985 or early 86, but I fell in love with the 128 when I saw it at a computer store sometime in 1984. MacPaint was on the screen, and someone had drawn an elephant.&lt;/p&gt;&lt;p&gt;For years I'd been programming in basic on a TI 99/4A, then on various Commodores. Seeing my first mac was like... something from the future. Mind boggling, even for an eleven year old.&lt;/p&gt;&lt;p&gt;Anyway, we all knew this day was coming. For most, since the the resignation in August. For others, since the WWDC. That was mine. I'd been watching his stick figure's shaky walking on the stage for at least an hour, saddened at how thin (gaunt) he was…&lt;/p&gt;&lt;p&gt;Then came the moment that told me he was resigned and knew his end was coming. He was talking about how much he loved the company he had built, and his voice cracked, and his eyes got shiny, and he looked very old and frail and sad.&lt;/p&gt;&lt;p&gt;I've watched people — friends — die from cancer. It's horrible. And I saw in his face that he knew, just like they knew.&lt;/p&gt;&lt;p&gt;There's so much more I'd like to say. Comparisons with exceptional people I respect from history and how rarely and brightly their lights shine, so rarely that we can name many of them even hundreds or thousands of years later. Or the fleeting nature of life, and how important it is that we do our best with what time and resources we have.&lt;/p&gt;&lt;p&gt;But mostly, since I learned in a text message from Corinne that &quot;Steve Jobs died&quot;, I've been thinking about friends we never meet. People we interact with every day but in a very one-sided way, and how they can be important to us without them ever knowing it.&lt;/p&gt;&lt;p&gt;And how it hurts to lose them, even if they were never really there.&lt;/p&gt;</description>	</item><item>	<title>The New BostonGlobe.com</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6398/trackback</trackback:ping>	<link>http://www.truerwords.net/6398</link>	<pubDate>Mon, 12 Sep 2011 17:34:16 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6398</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6398#msg6398</comments>	<category>News</category>	<category>Technology</category>	<category>Web Sites</category>	<description>&lt;p&gt;I'm beyond impressed with the &lt;a href=&quot;http://bostonglobe.com/&quot;&gt;new Boston Globe&lt;/a&gt; web site. It's the best I've ever seen. Congrats to @beep and the rest of the designer/developer team. As +Craig Hockenberry said on Twitter, other newspapers are going to look at it and either realize they need to imitate it, or they'll keep dying.&lt;/p&gt;&lt;p&gt;If you have a big monitor, resize your browser window from very narrow through to full screen. Go very slowly, and watch as the layout adapts to the new size, every step of the way. The images resize, the number of columns will change from 1 to 2 to 3, each column's width changes... it's brilliant.&lt;/p&gt;&lt;p&gt;(What I've mentioned here is just the first-glance stuff. Look around, the attention to usability and detail is intense.)&lt;/p&gt;</description>	</item><item>	<title>Web Development Class with Ethan Pride</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6388/trackback</trackback:ping>	<link>http://www.truerwords.net/6388</link>	<pubDate>Fri, 11 Feb 2011 19:33:10 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6388</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6388#msg6388</comments>	<category>Ecclesia</category>	<category>People</category>	<category>Friends</category>	<category>Technology</category>	<category>Eric &amp; Bonny</category>	<category>BBEdit</category>	<category>DHTML / AJAX</category>	<category>Web Sites</category>	<description>&lt;p&gt;For a few months now I've been teaching Ethan how to develop a web site, including HTML, CSS, JavaScript (soon), and content management systems.&lt;/p&gt;&lt;p&gt;We meet once a week.&lt;/p&gt;&lt;p&gt;(This post was a demonstration for him on the benefits of a CMS.)&lt;/p&gt;</description>	</item><item>	<title>Happy New Year!</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6387/trackback</trackback:ping>	<link>http://www.truerwords.net/6387</link>	<pubDate>Sat, 01 Jan 2011 06:08:20 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6387</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6387#msg6387</comments>	<category>People</category>	<category>Macrobyte</category>	<category>Friends</category>	<category>Biology</category>	<category>Business</category>	<category>Family</category>	<category>Software Auctions</category>	<category>Technology</category>	<category>Corinne</category>	<category>Shane</category>	<category>Mom</category>	<category>Dad</category>	<category>Jed</category>	<category>Sarah</category>	<category>Art</category>	<category>Gramma &amp; Grampa</category>	<category>Mike &amp; Shannon</category>	<category>Lauren</category>	<category>Richie</category>	<category>Darren &amp; Angi</category>	<category>Eric &amp; Bonny</category>	<category>Gary &amp; Ellyn</category>	<category>Steve Davis</category>	<category>Greg Pierce</category>	<category>Jim Roepcke</category>	<category>Rich Siegel</category>	<category>BBEdit</category>	<category>Conversant</category>	<category>DHTML / AJAX</category>	<description>&lt;p&gt;Ten years? Really?&lt;/p&gt;&lt;p&gt;In 2001 my work life was all about Conversant, my personal life was all about Corinne, Shane, and a house full of cats and birds.&lt;/p&gt;&lt;p&gt;I don't remember much about 2002, except that I reconnected with Steve Davis, someone I've known practically since I was a baby. We've always had our faith in common, and found that now we also have our bikes.&lt;/p&gt;&lt;p&gt;Two years later Shane was gone. That's all that year (2004) was about. Nothing else mattered. Hanging on to Corinne, propping her up, making sure she understood how much I love her and need her still, and trying to help her cope with a pain that defies belief.&lt;/p&gt;&lt;p&gt;2005 was a pretty big year. It included the release of Firefox Hacks (my first time in print!), tutoring the Pride kids (Avonlee and Ethan) in math, the PMC and its software auctions, the main author of Firefox Hacks (Nigel McFarlane) committed suicide, Corinne and I met the crew of the Atlantia, Jed moved in with us, I made friends with Jimmy Lehn (morning DJ at a local radio station), and we celebrated Thanksgiving at the Westerly WARM shelter. Finally, 2005 was the year I first started playing with Prototype. (Wow, i can't believe it was that long ago.)&lt;/p&gt;&lt;p&gt;In 2006 I met Greg Pierce years after he had worked for me at Macrobyte, my friend Darren and his wife Angi brought home their adoptees from Nepal, I wrote the &quot;custom events&quot; code for JavaScript that is *still* being used on Apple's web pages, attended the first Rails Conf, and I finally got to meet and begin forming a friendship with Rich Siegel and started working on language modules for his company's main software product, BBEdit. Jed left us, and headed for British Columbia and the woman he would eventually marry. Finally, we met Mike and Shannon late in the year.&lt;/p&gt;&lt;p&gt;2007 was unreal. If not for the pictures, most of it would be forgotten. I helped man the booth for Bare Bones at MacWorld Expo. Mike and Shannon moved in with us. Lauren was born! Mike and Shannon went away for a while. We did our best with Lauren and truly, completely fell in love with her. Visited her parents a lot. Finally met Jim Roepcke and Sean McMains at the second RailsConf (while Corinne stayed home with lauren). Jed married Alycia (and I got to attend, way out there in B.C., while Corinne AGAIN stayed home with Lauren), my grandfather turned eighty, Jed and Alycia came out for a visit (and haven't been back since), Corinne and I celebrated our tenth anniversary, and my sister and brother-in-law had their third daughter.&lt;/p&gt;&lt;p&gt;Shannon came hom again in January of '08. Lauren started walking and talking, and turned one. We got news (on the day Shannon came hom) that the house was being sold so we'd have to move (after ten years). Corinne, Ellyn and Lauren went to FL (Lauren's first plane ride). Richie (Shannon's eldest) came to live with us. My parents came to live with us, for a few months. I went to FL in October with Ellyn and the grandparents to pack them up and move them to Ellyn's house. The year ended with a terrible sprained ankle and a move from Mystic to Westerly.&lt;/p&gt;&lt;p&gt;In January of '09, Mike came home and the family was all back together. Unfortunately, in June they all left again. The relationship slowly thawed, but then in September they disappeared to North Carolina without warning and we thought they (especially Lauren) were gone forever. We got a ten day visit with Lauren in October, but taking her home was the second most difficult and painful thing I've ever done.&lt;/p&gt;&lt;p&gt;2010 started out with a brief visit from the Deanes, but after that the contact (via Skype or telephone) dwindled to nothing within a few months. I entered a serious depression (my first), which I tried to fill or bury with World of Warcraft. In March a rainstorm tried to wipe RI off the map, and in May I was brutally attacked by some blood clots that came from nowhere and landed in my left lung (killing part of it). In June, the Deanes moved back to the area, and we got regular visits with Lauren again. It took her a few minutes to remember us, but once she did it was like we were never apart.&lt;/p&gt;&lt;p&gt;As I write this, Lauren and Corinne are sleeping in my bed, above my office, just a few feet right over my head. I don't know what changes are coming our way next, but right now we have joy and I'm taking nothing for granted.&lt;/p&gt;&lt;p&gt;Happy New Year, everybody.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;</description>	</item><item>	<title>Sudoku</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6363/trackback</trackback:ping>	<link>http://www.truerwords.net/6363</link>	<pubDate>Sat, 21 Nov 2009 19:47:34 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6363</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6363#msg6363</comments>	<category>Games</category>	<category>Technology</category>	<description>&lt;p&gt;I used to do Sudoku all the time, but I lost interest around the time &lt;a href=&quot;http://www.truerwords.net/lauren_deane.html&quot;&gt;Lauren&lt;/a&gt; came into our lives. Coincidentally (?), I'm back into it again.&lt;/p&gt;&lt;p&gt;&lt;i&gt;(Oh, what's Sudoku? It looks something like a crossword puzzle, but it's all numbers. 9x9 grid, divided into nine 3x3 sections. To finish the game, every row, column, and 3x3 section must have all of the digits 1-9. There's no math involved, other than being able to count to 9. There is some real logic involved, though.)&lt;/i&gt;&lt;/p&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://www.truerwords.net/6363/enclosure/Sudoko%20Companion%20Daily.png&quot; height=&quot;716&quot; width=&quot;604&quot; align=&quot;center&quot; alt=&quot;sudoko companion daily.png&quot; name=&quot;Sudoko%20Companion%20Daily.png&quot;  /&gt;&lt;/div&gt;&lt;p&gt;When at my computer I use &lt;a href=&quot;http://www.verek.com/sudoku-mac.html&quot;&gt;Verek's Sudoku Companion&lt;/a&gt;. It's freeware, though it didn't used to be: I had to pay for my copy. (Verek is no longer in business, though, so I'm glad they're giving the app away.)&lt;/p&gt;&lt;p&gt;Sudoku Companion gives you all the options I think you might need in a computer-based version of the game, other than an &quot;I give up just solve it for me&quot; button. It offers six levels of difficulty: Easy, Medium, Hard, Fiendish, Insane and Sudoku of the Day.  I'm not sure where the Sudoku of the Day comes from, but everybody running the app gets the same one on the same day, so it's a nifty way to have a little friendly competition. A timer at the bottom of the window tells you how long it's been since the game started, and the timer pauses if the game isn't frontmost (so if you take a break, the timer stops). You can also create your own sudokus, and save/share them. (It's very difficult to create a good one, though.)&lt;/p&gt;&lt;p&gt;I can usually complete an 'insane' sudoku in about thirty minutes. The dailies are usually forty minutes to an hour.&lt;/p&gt;&lt;p&gt;If you like sudoku and you're on a mac, go &lt;a href=&quot;http://www.verek.com/products/sudoku_companion/SudokuCompanion_1.4.8.dmg&quot;&gt;get a copy of Sudoku Companion&lt;/a&gt; (that's the direct download link). Do a couple warmup games, and then try &lt;a href=&quot;http://www.truerwords.net/6363/enclosure/Sudoko%20Companion%20Daily.png&quot;&gt;Sudoko Companion Daily.png&lt;/a&gt;. It's the most difficult sudoku I've ever played, and took almost two hours to complete!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;</description>	</item><item>	<title>Three Legged Stool</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6358/trackback</trackback:ping>	<link>http://www.truerwords.net/6358</link>	<pubDate>Tue, 03 Nov 2009 21:50:51 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6358</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6358#msg6358</comments>	<category>Business</category>	<category>Technology</category>	<description>&lt;p&gt;Retail software is a three legged stool.&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;User Interface&lt;/li&gt;	&lt;li&gt;Engineering&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Right?&lt;/p&gt;&lt;p&gt;Oh, what? There are only two legs there? Huh. What's missing?&lt;/p&gt;&lt;p&gt;Marketing is the third leg. Very rare is the product that can succeed without it, no matter how well crafted. (Yet so many try.)&lt;/p&gt;&lt;p&gt;More on this soon. Something very big is brewing.&lt;/p&gt;</description>	</item><item>	<title>PMC Fundraising: Winding Down</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6346/trackback</trackback:ping>	<link>http://www.truerwords.net/6346</link>	<pubDate>Fri, 11 Sep 2009 19:15:20 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6346</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6342#msg6346</comments>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<description>&lt;p&gt;My PMC fundraising efforts are winding down for the year. We've raised almost $18,000!&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;$12,851.76 on &lt;a href=&quot;http://www.pmc.org/profile/SD0086/&quot;&gt;my account&lt;/a&gt;&lt;/li&gt;	&lt;li&gt;$4,200 (approximately) on &lt;a href=&quot;http://www.pmc.org/profile/DS0188/&quot;&gt;Dave Schlageter's account&lt;/a&gt;&lt;/li&gt;	&lt;li&gt;$650 on &lt;a href=&quot;http://www.pmc.org/profile/CR0028&quot;&gt;Chris Rawson's account&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;That all adds up to 17,751.76.&lt;/p&gt;&lt;p&gt;We've delivered 228 bundles so far, and still have another 28 somewhere in the pipeline (either waiting for payment or we're waiting for registration codes).&lt;/p&gt;&lt;p&gt;(I keep saying &quot;we&quot; because Corinne and Cindy are still helping me.)&lt;/p&gt;&lt;p&gt;We're going to keep accepting offers for a few more days.&lt;/p&gt;&lt;p&gt;On the technology side, I'll mention that this morning I totally rewrote the code which decides if a bundle will be accepted. In the process I made it fairer, and lowered the price points at which an offer will be accepted.&lt;/p&gt;&lt;p&gt;It's all based on percentages. First it divides your offer by the total retail value of your bundle to get the bundle's &quot;offer percentage.&quot; So if you offer $50 for a bundle that's worth $100, the bundle's offer percentage is 50%. Then it figures out the minimum percentage we'll accept for that bundle, based on the following rules:&lt;/p&gt;&lt;ol&gt;	&lt;li&gt;&lt;p&gt;There's a minimum offer percentage, let's call it min_pct. Any offer below that is rejected.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;There's a maximum offer percentage (max_pct). Anything at or above it is accepted.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Small bundles (where the retail is at or below a certain threshold, min_ttl) must be at or above max_pct.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Large offers (retail above a certain threshold, max_ttl) must be at or above min_pct.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;For bundles whose retail value is between min_ttl and max_ttl, it figures out what percentage to accept. It's a sliding scale based on where the bundle's retail value falls in the range between min_ttl and max_ttl.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;There's one last complication: if the bundle included any &quot;rare&quot; apps, then the required percentage is raised by a certain amount. An app is rare if there is only one left.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Follow all that? Hey, even if nobody else cares, at lest this will serve as a good refresher on the math in that code, the next time I need to update it.&lt;/p&gt;&lt;p&gt;Now go &lt;a href=&quot;http://pmc.truerwords.net/bundles&quot;&gt;build yourself a bundle&lt;/a&gt; before we shut it down for the year! Most of the titles have not sold out.&lt;/p&gt;</description>	</item><item>	<title>Mac and iPhone Application Bundles for the PMC</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6342/trackback</trackback:ping>	<link>http://pmc.truerwords.net/bundles</link>	<pubDate>Sun, 30 Aug 2009 19:39:17 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6342</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6342#msg6342</comments>	<category>News</category>	<category>PMC</category>	<category>Software Auctions</category>	<category>Technology</category>	<description>&lt;p&gt;I'm raising money 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; again this year (duh), and doing it the same way as last year (and the year before, and two years before that). What method is that? I ask lots of developers (companies and individuals) to donate copies of their Mac apps (and iPhone, this year), and then &lt;a href=&quot;http://pmc.truerwords.net/bundles&quot;&gt;I sell them in bundles&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Some developers donate five copies, some one hundred. Some tell me I can have as many as I want.&lt;/p&gt;&lt;p&gt;I don't really sell them, either. I give them away as thank you gifts in exchange for making donations to the PMC via my fundraising account. The “buyer” builds their own bundle out of the big list of available software, then sends me an email to tell me about it, including how much they'd like to pay.&lt;/p&gt;&lt;p&gt;The project is a huge amount of work. Everybody gets a response, even those offers that are turned down for being too low. An accepted offer involves LOTS of email:&lt;/p&gt;&lt;ol&gt;	&lt;li&gt;in: initial offer&lt;/li&gt;	&lt;li&gt;out: your offer is accepted, please make donation&lt;/li&gt;	&lt;li&gt;in: donation receipt as proof of payment&lt;/li&gt;	&lt;li&gt;in: “What’s taking so long?”&lt;/li&gt;	&lt;li&gt;out: acknowledgement of receipt, “please be patient”&lt;/li&gt;	&lt;li&gt;out: one registration request for every app in the bundle, sent to the donors&lt;/li&gt;	&lt;li&gt;in: one app registration per app in the bundle&lt;/li&gt;	&lt;li&gt;out: “Thank you for your donation, you can download your software here…”&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;i&gt;(That's just the simple ones. Some bundles have twice as many messages, due to questions or problems.)&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Between sending out all those messages, there's a database that needs to be maintained to keep track of everything. Apps are reserved for a “buyer” so that we don't agree to a bundle and then run out before we can fulfill it. Registration codes have to be copied into the database when they come back from the developers/donors. The buyer’s contact info needs to be entered before we ask the app donors for registrations.&lt;/p&gt;&lt;p&gt;It's a lot of work. I used to do it all myself. I put the project off this year because I absolutely dreaded doing it all again.&lt;/p&gt;&lt;p&gt;To my rescue came Corinne Dillingham (my wife) and Cindy Compton: both have volunteered many hours on this project to help me deal with all this email, via a shared gMail account.&lt;/p&gt;&lt;p&gt;Corinne's helping me because she loves me and knows this is important to me. Cindy's helping because she's been bitten by cancer herself, and is still fighting it... she bought a bundle last year, and this year she's in the trenches with us.&lt;/p&gt;&lt;p&gt;Unfortunately the project has one major flaw: it's far too much work! I keep streamlining the process, but no matter how smooth I make it, it's all still being done manually. Three people can't possibly keep up with dozens or hundreds of people making offers all at once. We fall behind. We run out of apps but the &lt;a href=&quot;http://pmc.truerwords.net/bundles&quot;&gt;bundle builder&lt;/a&gt; still lists them as available because we don't even know we're out yet, as they are &quot;taken&quot; by email which is still in the queue. So, we keep getting more offers for apps that have sold out.&lt;/p&gt;&lt;p&gt;Clearly, I'm doing it wrong.&lt;/p&gt;&lt;p&gt;The donors have been very generous in covering our oversells. &lt;i&gt;(Thanks guys and gals!)&lt;/i&gt; Still...&lt;/p&gt;&lt;p&gt;This is the last year I'm doing it like this. Let me say that again: this is the last year I'm doing it all this way.&lt;/p&gt;&lt;p&gt;This is clearly a great way to raise money for the PMC. Last year I raised over $14,000, and most of the work was done in just a couple of weeks. This year looks pretty good too. It's just too much work!&lt;/p&gt;&lt;p&gt;That doesn't mean I'm quitting. It just means that I need to finish my &quot;PMC app&quot; (the database app we use behind the scenes) and make it a full web-app, like a storefront, and fully automate the process.&lt;/p&gt;&lt;p&gt;If I don't have it working (at least crudely) by the time PMC signup opens in January, then I'm not signing up.&lt;/p&gt;&lt;p&gt;There, I said it. It's scary, but true. I've just given myself a deadline.&lt;/p&gt;&lt;p&gt;I'll have more to say about this. I know how I want the app to behave, how it should work. I just need to make it happen, and still get paying work done in the process.&lt;/p&gt;&lt;p&gt;Wish me luck! I don't want to give up the PMC, but there's just no way I'm doing it like this again next year. I'm quite pleased with how this has grown and improved over the years, but it's time for it to move up to another level or be allowed to die.&lt;/p&gt;&lt;p&gt;In the meantime, though, &lt;a href=&quot;http://pmc.truerwords.net/bundles&quot;&gt;go buy a Mac or iPhone software bundle&lt;/a&gt;! We'll continue accepting bundles for at least another week or two.&lt;/p&gt;</description>	</item><item>	<title>Bare Bones Released BBEdit 9.2</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6303/trackback</trackback:ping>	<link>http://www.truerwords.net/6303</link>	<pubDate>Thu, 07 May 2009 22:02:19 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6303</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6303#msg6303</comments>	<category>Technology</category>	<category>BBEdit</category>	<description>&lt;p&gt;&lt;a href=&quot;http://www.barebones.com/support/bbedit/arch_bbedit92.html&quot;&gt;BBEdit 9.2&lt;/a&gt; was released today.&lt;/p&gt;&lt;p style=&quot;font-style: italic;&quot;&gt;(Sorry about having two BBEdit-related posts in a row like this. I have other things to talk about too, trust me. I'm just warming up again.)&lt;/p&gt;&lt;p&gt;I played a small part, again. Most of my time was spent on the brand-new Lasso module. There are 168 changes in the official change notes. (There were actually a lot more than 168 changes, trust me.) The excerpt listed below includes those I'm particularly happy about or with which I was personally involved.&lt;/p&gt;&lt;p&gt;The blue stuff, below, is what I worked on or was somehow directly involved with.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;Additions&lt;/h3&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;✫ BBEdit now has a “Sleep” command. ✫&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Lasso is now a fully supported language, with syntax coloring, functions listed in the function popup, and automatically generated fold points.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;There’s a new color setting in the Text Colors preference: “Numeric Constants”. This can also be adjusted on a per-language basis in the appropriate language’s settings (in the “Languages” preferences).&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Added a feature to the language module interface for giving the module control over resolution of include file references.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt;The Menus preferences now has a group of commands so that you can assign keyboard equivalents to operations in FTP/SFTP browsers, if desired.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt;There’s a new setting in the “Editing” tab for language-specific preferences (Preferences -&amp;gt; Languages): “Tab width”. Edit the value here to set a language-specific value for the default tab width. &lt;i&gt;(I —&amp;nbsp;and probably others — requested this.)&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt;✫ BBEdit now implements the necessary hooks so that the following JavaScript functions now work when using “Preview in BBEdit”: window.alert, window.confirm, window.prompt, window.onbeforeunload ✫&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Disk browsers can now explore tarballs (.tar, .tar.gz, .tgz files). When an eligible file is in the listing, it will have a disclosure triangle next to it. Twist it open to reveal the files and directories within. As with other items displayed in disk browser listings, you can view files in the editor view, or double-click them to open in a separate window for editing.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Changes&lt;/h3&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;✫ The internal mechanics and UI presentation for recent items have been overhauled. ✫&lt;/p&gt;		&lt;p&gt;I love this one, as the redesigned &quot;Open Recent&quot; menu item is much more usable.&lt;/p&gt;	&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixes&lt;/h3&gt;&lt;ul&gt;	&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed a bug in the ActionScript function parser. No longer tripped up by a function return type of * (which is the explicit way of typing something as “untyped”).&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed a bug which allowed ActionScript’s get to be recognized as a function-starter in JavaScript files (similar to the function keyword).&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed possible cause of a crash related to populating the function popup in JavaScript files.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed missing fold widgets for fold ranges containing a single line break.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed crash when JavaScript functions with assigned names, such as foo.bar[bat] = function() {...}, were not in a recognized/expected form.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed bug in which using “Save As” did not change the document’s language if the default was something other than “(none)”. This change also addresses a bug in which the document’s language wasn’t recalculated if the file’s name changed on disk.&lt;/p&gt;&lt;/li&gt;		&lt;li&gt;&lt;p&gt;A variety of changes have been made to reduce application startup time.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed a bug in the Ruby module which would cause a multi-line, general delimited input string (%+string+) to fold incorrectly (the closing fold point was one character too soon).&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed a bug in the Ruby module where Begin/End blocks could cause fold points to be be placed at seemingly random places in the document.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed a bug in the Ruby module where complete for or while loops, written on a single line and within curly braces, could throw off the folding for the entire document.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;Fixed a bug in the TeX module in which a $math$ section within a {required param}, where the $math$ section contained a closing curly brace (e.g. \caption{foo $i_{0}$ foo}), would confuse the parser. This tended to manifest as incorrect autofolds and improper indentation in the function popup.&lt;/p&gt;&lt;/li&gt;		&lt;li class=&quot;imadethis&quot;&gt;&lt;p&gt;The Ruby module will no longer detect regular expressions as the first token immediately after a string or another regular expression. This resolves a syntax coloring bug found with the syntax used by the Merb framework (which uses an overloaded ”/” method.)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Now go buy a copy. Or two. &lt;i&gt;Please.&lt;/i&gt; More sales at BB means more work for me. (Blah blah blah |BEdit Disclaimer|)&lt;/p&gt;</description>	</item><item>	<title>Apple's Changes Can't Rattle These Bones</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6302/trackback</trackback:ping>	<link>http://www.truerwords.net/6302</link>	<pubDate>Mon, 04 May 2009 22:44:16 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6302</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6302#msg6302</comments>	<category>News</category>	<category>Customers</category>	<category>Macrobyte</category>	<category>Technology</category>	<category>BBEdit</category>	<description>&lt;p&gt;Last week I got an email from John Mello, a reporter working for &lt;a href=&quot;http://www.macnewsworld.com/&quot;&gt;Mac News World&lt;/a&gt;. He asked if, as a BBEdit user, I'd be willing to be interviewed for a story he was writing about &lt;a href=&quot;http://www.barebones.com/&quot; title=&quot;Bare Bones Software, Inc.&quot;&gt;Bare Bones&lt;/a&gt;. I said yes, and later we talked on the phone for about a half hour.&lt;/p&gt;&lt;p&gt;The article is now published, entitled &lt;a href=&quot;http://www.macnewsworld.com/rsstory/66968.html&quot;&gt;Apple's Changes Can't Rattle These Bones&lt;/a&gt;. Kinda clever.&lt;/p&gt;&lt;blockquote cite=&quot;http://www.macnewsworld.com/rsstory/66968.html&quot;&gt;	Among BBEdit's merits cited by the code warrior are its support of multiple languages, syntax coloring, code folding and &lt;a href=&quot;http://en.wikipedia.org/wiki/HTML&quot;&gt;HTML&lt;/a&gt; editing and preview, as well as speedy performance and powerful search features. Not only can it perform a search and replace on multiple files, but it will display the results of a search in a separate window for easy review and manipulation. &lt;/blockquote&gt;&lt;p&gt;Hey he called me a code warrior. That's so much nicer than &lt;a href=&quot;http://www.truerwords.net/5773&quot;&gt;code monkey&lt;/a&gt;! (I'm mentioned by name a couple paragraphs earlier.)&lt;/p&gt;&lt;p&gt;The article is, um… a bit fluffy. It never claims to be otherwise! You can't do a one-page &quot;company profile&quot; as hard news.&lt;/p&gt;&lt;p&gt;He never mentioned my rant about &lt;a href=&quot;http://www.truerwords.net/5172&quot;&gt;email clients&lt;/a&gt;, even though we talked about them extensively. (No surprise he didn't mention it, I really do rant.) I &lt;b&gt;was&lt;/b&gt; slightly surprised to find that he never mentioned my &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;relationship with the company&lt;/a&gt; (which is currently on hold, but hopefully not for long...). &lt;a href=&quot;https://twitter.com/SeanMcTex/status/1699565489&quot;&gt;Sean was surprised, too.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;A significant point I made in our conversation (&quot;interview&quot;) that I honestly thought he'd cover: all the editors give you a decent space to type your code. You don't differentiate editors based on which one gives you the best typing experience. Know what I mean? All of the good editors provide a decent space for entering your text. What matters to me is all the other stuff that I expect of my editor: language support, syntax coloring, code folding, performance and — perhaps most important of all — really powerful search and replace.&lt;/p&gt;&lt;p&gt;Anyway, I don't seem to get into the news these days for anything except 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;, so it was cool for that alone, if nothing else. :-)&lt;/p&gt;</description>	</item><item>	<title>MarsEdit 2.3 Is Out</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6298/trackback</trackback:ping>	<link>http://www.red-sweater.com/marsedit/new.html</link>	<pubDate>Tue, 24 Mar 2009 14:57:43 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6298</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6298#msg6298</comments>	<category>Technology</category>	<description>&lt;p&gt;Red Sweater has released &lt;a href=&quot;http://www.red-sweater.com/marsedit/new.html&quot;&gt;MarsEdit 2.3&lt;/a&gt;! (Congratulations, Daniel.)&lt;/p&gt;&lt;p&gt;Obviously I haven't been writing much, lately, but that has to change if I'm going to do the PMC software bundles again this year. Maybe I'll start using MarsEdit and &lt;a href=&quot;http://www.barebones.com/products/bbedit/&quot;&gt;BBEdit&lt;/a&gt; together again.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/39257754@N00/3323574177&quot; title=&quot;View 'DSC05235.ARW' on Flickr.com&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3487/3323574177_4728d6345a_m.jpg&quot; alt=&quot;DSC05235.ARW&quot; border=&quot;0&quot; width=&quot;240&quot; height=&quot;161&quot; align=&quot;left&quot; style=&quot;margin-right: 6px;&quot; /&gt;&lt;/a&gt;The new MarsEdit's biggest new feature is probably it's support for Tumblr, but that doesn't affect me. What I'm happiest about is the improved Media Browser. It already hooked up to Flickr, but Daniel put some work into optimizing the experience when choosing photos to include in posts. That's handy for me, since I include so many pictures of the kids. :-)&lt;/p&gt;&lt;p&gt;Speaking of the kids, here's a recent favorite picture of Lauren. Just because.&lt;/p&gt;&lt;br clear=&quot;all&quot; /&gt;</description>	</item><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>	</channel></rss>