<?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/bbedit</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>BBEdit</category>		<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>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>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>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>BBEdit 8.7.2 Released Today</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6114/trackback</trackback:ping>	<link>http://www.barebones.com/support/bbedit/arch_bbedit872.shtml</link>	<pubDate>Wed, 19 Dec 2007 20:02:19 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6114</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6114#msg6114</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>BBEdit</category>	<description>&lt;p&gt;&lt;a href=&quot;http://www.barebones.com/&quot; title=&quot;Bare Bones Software, Inc.&quot;&gt;Bare Bones&lt;/a&gt; just released version 8.7.2 of &lt;a href=&quot;http://www.barebones.com/products/bbedit/&quot;&gt;BBEdit&lt;/a&gt;. This is a free maintenance update for anyone who owns a license to 8.5 or newer. &lt;a href=&quot;http://www.barebones.com/support/bbedit/arch_bbedit872.shtml&quot;&gt;Here are the release notes.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I had a small hand in this update. In the release notes is a list of fixed bugs, two of which are mine:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;Fixed bug in which TeX syntax coloring would get out of whack if &quot;Color Math Strings&quot; was turned off and the scanner encountered certain constructs in the document.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;&lt;p&gt;Fixed bug in which the JavaScript function scanner could crash on certain malformed (usually because of in-progress edits) constructs.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There's lots more good stuff in store (way more than just bug fixes!), but some of the fixes in this release needed to get into people's hands sooner than later.&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(Remember the &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;BBEdit Disclaimer&lt;/a&gt;.)&lt;/p&gt;</description>	</item><item>	<title>Working On Tools</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/6002/trackback</trackback:ping>	<link>http://www.truerwords.net/6002</link>	<pubDate>Tue, 31 Jul 2007 21:17:03 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/6002</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=6002#msg6002</comments>	<category>Essays</category>	<category>Technology</category>	<category>BBEdit</category>	<category>Conversant</category>	<category>Frontier</category>	<category>Programming</category>	<category>Ruby</category>	<category>Ruby on Rails</category>	<description>&lt;p&gt;Immediately after &quot;retiring&quot; from the &lt;a href=&quot;http://prototypejs.org/core&quot;&gt;Prototype Core Team&lt;/a&gt;, I became active (for the first time!) on the group and finally did what I was there to do in the first place. The next version of Prototype (1.6) will have custom events. The custom events code in 1.6 doesn't look much like &lt;a href=&quot;http://www.truerwords.net/articles/web-tech/custom_events.html&quot;&gt;the code I described in my essay&lt;/a&gt; a year ago, but it's built on the same idea: piggyback custom events on one of the browser's built-in events. (The custom events code in 1.6 was written by a number of people, not just me.)&lt;/p&gt;&lt;p&gt;Anyway, the real point here is that I use &lt;a href=&quot;http://www.prototypejs.org/&quot; title=&quot;Prototype - a javascript library for web applications&quot;&gt;Prototype&lt;/a&gt; for nearly all of my web projects now, &lt;span style=&quot;font-weight: bold;&quot;&gt;and&lt;/span&gt; I contribute to its development. That's working on my own tools.&lt;/p&gt;&lt;p&gt;Plus, immediately after finishing my side of Prototype's new events code, I realized that the next version of Prototype didn't look quite right in BBEdit's function popup. (Some objects were listed as [anonymous] when they should have had names, and some class methods were listed as though they weren't contained by anything.)&lt;/p&gt;&lt;p&gt;So, I updated BBEdit's JavaScript module to fix that problem.&lt;/p&gt;&lt;p&gt;I'm rather proud of the JavaScript support in &lt;a href=&quot;http://www.barebones.com/products/bbedit/&quot;&gt;BBEdit&lt;/a&gt;, but (again) the real point here is that I love being able to work on my own tools! (See the &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;BBEdit Disclaimer&lt;/a&gt;...)&lt;br&gt;&lt;/p&gt;&lt;p&gt;The same is true for &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt;, which currently runs on &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt;, and which runs my site (and lots of others).&lt;/p&gt;&lt;p&gt;Being a tool-builder makes me feel like a real craftsman.&lt;/p&gt;</description>	</item><item>	<title>BBEdit 8.6.1 Released</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5845/trackback</trackback:ping>	<link>http://www.truerwords.net/5845</link>	<pubDate>Fri, 16 Feb 2007 13:46:19 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5845</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5845#msg5845</comments>	<category>News</category>	<category>Technology</category>	<category>BBEdit</category>	<description>&lt;p&gt;&lt;a href=&quot;http://www.barebones.com/products/bbedit/&quot;&gt;BBEdit&lt;/a&gt; 8.6.1 was (finally) released yesterday (8.6 was released the first day of MacWorld). By this point, it should be no surprise to any of the [tw] regulars that I had &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;a hand in this release&lt;/a&gt;, too. I like working with Bare Bones, and (more importantly) they seem to like me. Or at least my work. When I'm not breaking stuff.&lt;/p&gt;&lt;p&gt;Ahem. (When would that be, exactly?)&lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;http://barebones.com/support/bbedit/arch_bbedit861.shtml&quot;&gt;8.6.1 release notes&lt;/a&gt; have the full list of new features, so I'll just list the stuff I'm personally interested in, or which I was involved in writing.&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;&lt;b&gt;Support for .strings files.&lt;/b&gt;&lt;/p&gt;		&lt;p&gt;		This happened because a bunch of Rich's Smart Friends were hanging around the booth on the first day of MW, impressing me with their history. One of them whined about BBEdit not supporting &quot;strings files&quot; (which I hadn't heard of). That night, I whipped up a base implementation, filled it out a little more throughout the week, and had it finished a couple days after the show.&lt;/p&gt;		&lt;p&gt;		I was going to release it myself as a free download, but it turns out lots of Mac programmers wanted it, so BB decided to bundle it. :-)&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;&lt;p&gt;&lt;b&gt;Improvements in the TeX module.&lt;/b&gt;&lt;/p&gt;		&lt;p&gt;		I worked on the TeX module for 8.6, but TeX is a HUGE system. In fact, it's a whole family of huge systems (TeX, LaTeX, ConTeXt, BiblioTeX, etc.). Every time I look at it, I find more stuff we need to consider supporting in the TeX module. Most of those things are optional, &quot;would be nice&quot; features. The improvements that went into 8.6.1 were &quot;duh, this should have been in there from the start&quot; features. My bad.&lt;/p&gt;		&lt;p&gt;		Having said that (with tongue somewhere in the vicinity of my cheek), I will say that I'm rather proud of the TeX module. It has been a tremendous amount of work, but it has enabled TeX editing/navigation in ways that I haven't seen in other editors (and it's going to be even better).&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;&lt;p&gt;&lt;b&gt;Fixed a JSP-related hang.&lt;/b&gt;&lt;/p&gt;		&lt;p&gt;		I had nothing to do with this, but I did write the new Java module for 8.6 so I was afraid for a while that the hang was my fault. :-) (See previous comment about breaking stuff...)&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;&lt;p&gt;&lt;b&gt;Anything related to the Java module.&lt;/b&gt;&lt;/p&gt;		&lt;p&gt;		Adding support for Java's generics was especially interesting.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;&lt;p&gt;&lt;b&gt;Markdown Upgrades.&lt;/b&gt;&lt;/p&gt;		&lt;p&gt;		8.6 included a new &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt; language module. This was truly the most difficult language module ever. There may be no less parseable language in the whole world. (It's really a convenience language, designed for converting into HTML via script, piece by piece.)&lt;/p&gt;		&lt;p&gt;		In 8.6.1, I worked with &lt;a href=&quot;http://daringfireball.net/&quot;&gt;Mistah Grubah&lt;/a&gt; to get the last of the bugs and his personal nits worked out. John wrote Markdown in the first place, and in fact he warned me in advance that writing the Markdown module for BBEdit was going to be a huge challenge. (Also see &lt;a href=&quot;http://daringfireball.net/linked/2007/february#fri-16-bbedit_861&quot;&gt;John's funny blurb ★&lt;/a&gt;.)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description>	</item><item>	<title>What Is In that Bread Pudding, Anyway!?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5776/trackback</trackback:ping>	<link>http://www.glorifiedtypist.com/2006/11/bread_pudding.html</link>	<pubDate>Thu, 16 Nov 2006 16:08:26 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5776</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5776#msg5776</comments>	<category>Humor</category>	<category>Customers</category>	<category>People</category>	<category>Macrobyte</category>	<category>Friends</category>	<category>Technology</category>	<category>Rich Siegel</category>	<category>BBEdit</category>	<category>Programming</category>	<description>&lt;p&gt;By now most everybody &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;knows&lt;/a&gt; that &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources, my company.&quot;&gt;Macrobyte&lt;/a&gt; is doing some work for &lt;a href=&quot;http://www.barebones.com/&quot;&gt;Bare Bones&lt;/a&gt; on BBEdit. I've also become friends with Rich Siegel, the president at BB.&lt;/p&gt;&lt;p&gt;How did this come about? &lt;a href=&quot;http://www.glorifiedtypist.com/2006/11/bread_pudding_1.html&quot;&gt;Rich tells the story&lt;/a&gt; in short form, and along the way heaps praise on me, Corinne for her cooking, and even does appropriate obeisance before the telekinetic bread pudding.&lt;/p&gt;&lt;p&gt;Rich is awesome to work with, has proven himself a true friend on at lest one occasion already, and (frankly) I'm benefitting massively from his years of experience in this field. All this praise from him could go to my head, though, if I didn't know it was really the bread pudding influencing his thoughts. ;-)&lt;/p&gt;&lt;p&gt;My favorite line:&lt;/p&gt;&lt;blockquote cite=&quot;http://www.glorifiedtypist.com/2006/11/bread_pudding.html&quot; class=&quot;cite&quot;&gt;	&lt;p&gt;… she obviously enjoys cooking: big family events, small catering jobs, to say nothing of keeping Seth appropriately fed and watered. Which brings us to the &lt;a href=&quot;http://www.truerwords.net/5704&quot;&gt;sentient bread pudding&lt;/a&gt; … &lt;/p&gt;&lt;/blockquote&gt;</description>	</item><item>	<title>TextMate’s Undo, and the New Editor Wars</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5773/trackback</trackback:ping>	<link>http://nslog.com/2006/11/08/textmates_undo/</link>	<pubDate>Fri, 10 Nov 2006 16:18:05 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5773</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5773#msg5773</comments>	<category>Nits</category>	<category>People</category>	<category>Business</category>	<category>Technology</category>	<category>BBEdit</category>	<category>Programming</category>	<description>&lt;p&gt;Erik Barzeski on &lt;a href=&quot;http://nslog.com/2006/11/08/textmates_undo/&quot;&gt;TextMate’s Undo&lt;/a&gt;&lt;/p&gt;&lt;blockquote cite=&quot;http://nslog.com/2006/11/08/textmates_undo/&quot; class=&quot;cite&quot;&gt;	Recently I conducted another of these experiments. I got so far as trying to modify one of the files in the theme I use on this site. I typed a line or two, uploaded the changes, and realized I'd edited the wrong file. I hit cmd-Z to undo and… yeah. TextMate users know what I found. Undo only &quot;undoes&quot; one character at a time.&lt;/blockquote&gt;&lt;p&gt;I love it. Why do I love it? Check out this snippet from a chat I had with &lt;a href=&quot;http://greg.agiletortoise.com/&quot; title=&quot;Greg Pierce&quot;&gt;Greg&lt;/a&gt; back in July:&lt;/p&gt;&lt;blockquote class=&quot;cite&quot;&gt;&lt;dl style=&quot;font-style: italic;&quot;&gt;&lt;dt style=&quot;color: rgb(0, 0, 255); font-weight: bold;&quot;&gt;Seth:&lt;/dt&gt;	&lt;dd&gt;You had seven items. BBEdit can already do 6.5 of them, almost exactly the same way that TM does it. BBEdit's problem is that they don't present their features very well.&lt;/dd&gt;&lt;dt style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;Greg:&lt;/dt&gt;	&lt;dd&gt;y.&lt;/dd&gt;&lt;dt style=&quot;color: rgb(0, 0, 255); font-weight: bold;&quot;&gt;Seth:&lt;/dt&gt;	&lt;dd&gt;Actually, 5.5 of them. Their prefs are certainly more complex than TM's. They can reduce them, but they can't eliminate them.&lt;/dd&gt;&lt;dt style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;Greg:&lt;/dt&gt;	&lt;dd&gt;i'm not surprised&lt;/dd&gt;&lt;dt style=&quot;color: rgb(0, 0, 255); font-weight: bold;&quot;&gt;Seth:&lt;/dt&gt;	&lt;dd&gt;I can't stand TM's undo feature, though. Undoing one character at a time is nuts.&lt;/dd&gt;&lt;dt style=&quot;color: rgb(0, 0, 255); font-weight: bold;&quot;&gt;Seth:&lt;/dt&gt;	&lt;dd&gt;At least you can hold it down for fast repeat.&lt;/dd&gt;&lt;/dl&gt;&lt;/blockquote&gt;&lt;p&gt;All that just to point out that I've felt exactly the same way for a long time.&lt;/p&gt;&lt;p&gt;There's way more to this story, though. Erik's post touched off another battle in the editor wars, which have raged for decades. Unfortunately for Erik, it doesn't seem that he knew people would get so fired up about it. (See the comments on Erik's page.)&lt;/p&gt;&lt;p&gt;Allan, TextMate's creator, responded there on the site. As did a zillion other people. Back and forth, back and forth. Someone named &lt;a href=&quot;http://nslog.com/2006/11/08/textmates_undo/#comment-22044&quot;&gt;MJD said&lt;/a&gt;:&lt;/p&gt;&lt;blockquote class=&quot;cite&quot; cite=&quot;http://nslog.com/2006/11/08/textmates_undo/#comment-22044&quot;&gt;	Something that really turns me off TextMate is the way Allan Odgaard is constantly attacks BBEdit, Barebones, and Rich Siegel. There is no need for it. Especially the attacks on Rich. Try standing on the merits of your own program rather than belittling another.&lt;/blockquote&gt;&lt;p&gt;Allan and his friend &lt;span title=&quot;jacobulus?&quot;&gt;Jacob Rus&lt;/span&gt; both denied that Allan has attacked BBEdit, Bare Bones, or Rich.&lt;/p&gt;&lt;p&gt;Has anybody read Allan's weblog's version of an acceptance speech for his Apple Design Award? You could say this is his definitive link, it's where he tells the story of winning the award — an award which is a huge honor for any mac developer. In it, he points to a picture of himself that also happens to include a man getting sick, and he says, &lt;b&gt;&quot;no, the guy getting sick is not Mr. Siegel.&quot;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I know of plenty of other little bashes on BBEdit, Bare Bones, and Rich. Some published, some not, but that comment in his weblog post is probably the most telling. It looks to this outsider like Allan wants TextMate to succeed almost as much as he wants BBEdit to fail and Rich to be hurt somehow.&lt;/p&gt;&lt;p&gt;Allan: the mac platform is doing well, but the developer community is still pretty small. You have to assume that if you say something, it's going to be quoted and re-quoted. Is your business plan really based around mocking Rich, claiming that Bare Bones is just a sales-oriented company that contracts out all the hard work, and poking fun at other independent developers?&lt;/p&gt;&lt;p&gt;OK, I'm tired of this battle already. It's time for this &lt;i&gt;code monkey&lt;/i&gt; to climb back into his tree and finish the next language module.&lt;/p&gt;&lt;p class=&quot;note&quot;&gt;(Note: please see the &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;BBEdit Disclaimer&lt;/a&gt;.)&lt;/p&gt;</description>	</item><item>	<title>BBEdit 8.5.1's JavaScript Support</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5734/trackback</trackback:ping>	<link>http://www.barebones.com/support/bbedit/arch_bbedit851.shtml</link>	<pubDate>Thu, 12 Oct 2006 18:21:36 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5734</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5734#msg5734</comments>	<category>Technology</category>	<category>BBEdit</category>	<category>DHTML / AJAX</category>	<description>&lt;p&gt;&lt;a href=&quot;http://www.barebones.com/&quot; title=&quot;Bare Bones Software, Inc.&quot;&gt;Bare Bones&lt;/a&gt; just announced the release of &lt;a href=&quot;http://www.barebones.com/support/bbedit/arch_bbedit851.shtml&quot;&gt;BBEdit 8.5.1&lt;/a&gt;. This is basically a release of &quot;bug fixes and feature tweaks,&quot; but there's some cool stuff in there that some people will certainly enjoy playing with (myself included).&lt;/p&gt;&lt;div style=&quot;float: right; font-size: 80%; font-family: sans-serif; color: #666; width: 160px; text-align: center; border: 1px solid #666; padding: 0px 6px 2px 6px; margin-left: 1em;&quot;&gt;	&lt;a name=&quot;shots&quot;&gt;&lt;/a&gt;	&lt;p&gt;Comparison of the function popup for the same JavaScript file in 8.2.6, 8.5, and 8.5.1:&lt;/p&gt;	&lt;div&gt;		&lt;a href=&quot;http://media.truerwords.net/images/bbedit85/8.2.6.png&quot;&gt;&lt;img src=&quot;http://media.truerwords.net/images/bbedit85/8.2.6.small.jpg&quot; alt=&quot;BBEdit 8.2.6&quot; id=&quot;BBEdit826&quot; align=&quot;center&quot; height=&quot;200&quot; width=&quot;150&quot; title=&quot;BBEdit 8.2.6. Click for larger image.&quot; /&gt;&lt;/a&gt;		&lt;br clear=&quot;all&quot; /&gt;		&lt;div&gt;BBEdit 8.2.6&lt;/div&gt;	&lt;/div&gt;	&lt;br /&gt;	&lt;div&gt;		&lt;a href=&quot;http://media.truerwords.net/images/bbedit85/8.5.png&quot;&gt;&lt;img src=&quot;http://media.truerwords.net/images/bbedit85/8.5.small.jpg&quot; alt=&quot;BBEdit 8.5&quot; id=&quot;BBEdit85&quot; align=&quot;center&quot; height=&quot;200&quot; width=&quot;150&quot; title=&quot;BBEdit 8.5. Click for larger image.&quot; /&gt;&lt;/a&gt;		&lt;br clear=&quot;all&quot; /&gt;		&lt;div&gt;BBEdit 8.5&lt;/div&gt;	&lt;/div&gt;	&lt;br /&gt;	&lt;div&gt;		&lt;a href=&quot;http://media.truerwords.net/images/bbedit85/8.5.1.png&quot;&gt;&lt;img src=&quot;http://media.truerwords.net/images/bbedit85/8.5.1.small.jpg&quot; alt=&quot;BBEdit 8.5.1&quot; id=&quot;BBEdit851&quot; align=&quot;center&quot; height=&quot;200&quot; width=&quot;150&quot; title=&quot;BBEdit 8.5.1. Click for larger image.&quot; /&gt;&lt;/a&gt;		&lt;br clear=&quot;all&quot; /&gt;		&lt;div&gt;BBEdit 8.5.1&lt;/div&gt;	&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;note&quot;&gt;(Ahem. See my &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;BBEdit Disclaimer&lt;/a&gt;, please.)&lt;/p&gt;&lt;p&gt;As I've mentioned, I did some work for Bare Bones on the 8.5 release, and the same is true for 8.5.1 (just a small part of the total work, in both cases, but it feels significant to me). What I &quot;didn't yet get around to&quot; is that my favorite part of this project has been the new JavaScript support! I totally rewrote it from scratch for 8.5, and then enhanced it a bit for 8.5.1. (The story of how this came about is pretty cool, but there's no room for it here. For now, let it suffice to say that it involved food and a bit of personal challenge.)&lt;/p&gt;&lt;p&gt;The significant, JavaScript-related changes that a user would notice, between 8.2.6 and 8.5, include the following:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;More keywords are recognized and colored.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Much better detection of functions for the function popup menu.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Recognition of &quot;anonymous&quot; functions (again, for the function popup menu.)&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Folding. (I didn't write BBEdit's folding feature, I just hooked it up in the JavaScript support.)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Even before 8.5 had shipped, I was working on some improvements. I had this crazy idea that I could make BBEdit's JavaScript support as complete as possible, to the point that I would actually feel like it was &quot;done.&quot; (Is software ever done?)&lt;/p&gt;&lt;p&gt;Here's what was added for 8.5.1:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&lt;p&gt;Function names in the function popup are now &lt;b&gt;complete&lt;/b&gt;. That is, it doesn't just grab the last word of the name. (See the third picture &lt;a href=&quot;#shots&quot;&gt;on the right&lt;/a&gt;.)&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Folding improvements. Rather than adding automatic &quot;fold points&quot; only at the start/end of functions, they're added to all matched sets of {curly braces} that contain at least N lines (N defaults to 4, but can be set via a hidden preference from the command line).&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Object literals are listed in the function popup, if they have names. The names are found in the same way as function names, so long.dotted().names work, too. Plus, nested objects and functions are listed &quot;hierarchically&quot; in the function popup, and objects are marked with a special character so you can scan the menu quickly to find the objects you need.&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;Since &lt;a href=&quot;http://prototype.conio.net/&quot;&gt;Prototype&lt;/a&gt; is so wildly popular these days, we added support for Prototype's &quot;Object.extend&quot; as another way to 'name' an object.&lt;/p&gt;	&lt;p&gt;	Not clear on that one? Here's an example:	&lt;/p&gt;		&lt;pre&gt;&lt;code&gt;Object.extend( foo.prototype, { ... } )&lt;/code&gt;&lt;/pre&gt;	&lt;p&gt;	... produces an entry in the function popup menu called &quot;foo.prototype&quot;&lt;/p&gt;&lt;/li&gt;	&lt;li&gt;	&lt;p&gt;You can add arbitrary strings (&quot;place markers&quot;) to your JavaScripts, in comments, and they're added to the function popup. For example, this comment:	&lt;/p&gt;	&lt;pre&gt;&lt;code&gt;// #mark Hello World&lt;/code&gt;&lt;/pre&gt;	&lt;p&gt;	... causes a &quot;Hello World&quot; entry to be added to the function popup. I personally find this very useful for breaking a long file up into &quot;labeled&quot; parts. Plus, if the mark is just a single hyphen (so, &quot;#mark -&quot;) then a standard menu-separator is added to the popup menu.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There are tons of other little improvements in 8.5.1, unrelated to JavaScript. A few of them I worked on, most of them I had nothing to do with. (Meaning, of course, Bare Bones did it themselves.) For me, this is &quot;the JavaScript release,&quot; as I think this makes BBEdit a really great JavaScript editor. (But then, I &lt;b&gt;*would*&lt;/b&gt; think that!)&lt;/p&gt;</description>	</item><item>	<title>Codeless Language Modules and Regex Madness</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5715/trackback</trackback:ping>	<link>http://www.truerwords.net/articles/bbedit/codeless_language_module.html</link>	<pubDate>Sat, 23 Sep 2006 23:57:50 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5715</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5715#msg5715</comments>	<category>Technology</category>	<category>Brian Andresen</category>	<category>BBEdit</category>	<category>Regular Expressions</category>	<description>&lt;p&gt;I've posted a tutorial for &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/codeless_language_module.html&quot;&gt;creating your own Codeless Language Module for use with BBEdit 8.5&lt;/a&gt;. Along the way it also looks at a fairly advanced topic related to regular expressions.&lt;/p&gt;&lt;blockquote cite=&quot;http://www.truerwords.net/articles/bbedit/codeless_language_module.html&quot;&gt;	&lt;p&gt;Some of my work with &lt;a href=&quot;http://www.barebones.com/&quot; title=&quot;Bare Bones Software, Inc.&quot;&gt;Bare Bones&lt;/a&gt; and BBEdit 8.5 involved a lot of regular expressions. Version 8.5 now supports &quot;Codeless Language Modules&quot; with regular expressions for identifying significant parts of a file (strings, functions, comments). I helped a few people produce these modules for their own use. For example, there was one for a home-grown language that is intended to be used with &quot;Getting Things Done&quot; task lists, and another was for use with &lt;a href=&quot;http://www.newlisp.org/&quot;&gt;newLISP&lt;/a&gt; files.&lt;/p&gt;	&lt;p&gt;	The challenge with the newLISP language was to write a regular expression that could identify functions, the function's name, comments, and strings. Anybody who's ever seen any lisp code knows this means (among other things) looking at a lot of parentheses.&lt;/p&gt;	&lt;p&gt;	In fact, this is a task that true regular expressions aren't up to. Regular expressions don't do matched, balanced sets of characters like open and close parentheses, where the contents of the matched set is allowed to contain arbitrarily nested pairs of the same.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class=&quot;note&quot; style=&quot;font-style: italic;&quot;&gt;(There's even a sidebar with a link to a little essay/article by Brian Andresen which he posted here on [tw] (but which we agreed shouldn't go out in email) on the subject of regular expressions and context-free grammars.))&lt;/p&gt;&lt;p&gt;The tutorial walks you through most of the steps involved in creating your own language module for the newLISP scripting language. At the end there is a link for downloading the finished product, and another for a template file to make it easier to create your own language module.&lt;/p&gt;&lt;p&gt;Since it's a BBEdit-related tutorial, the new &lt;a href=&quot;http://www.truerwords.net/articles/bbedit/disclaimer.html&quot;&gt;standard disclaimer&lt;/a&gt; applies.&lt;/p&gt;</description>	</item><item>	<title>BBEdit Disclaimer</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5710/trackback</trackback:ping>	<link>http://www.truerwords.net/5710</link>	<pubDate>Fri, 22 Sep 2006 00:03:20 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5710</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5696#msg5710</comments>	<category>Technology</category>	<category>BBEdit</category>	<description>&lt;p&gt;Two weeks ago, Bare Bones released &lt;a href=&quot;http://www.barebones.com/support/bbedit/arch_bbedit85.shtml&quot;&gt;BBEdit 8.5&lt;/a&gt;. I wrote &lt;a href=&quot;http://www.truerwords.net/5696&quot;&gt;a short post&lt;/a&gt; about it then, and said I'd write a longer article later.&lt;/p&gt;&lt;p&gt;Unfortunately, I've come to the conclusion that I'll never make time to do a full treatment of all the stuff I like about 8.5. Instead, I'm going to write numerous shorter ones. That's probably a better approach overall, anyway.&lt;/p&gt;&lt;p&gt;For future reference, I plan to include a link back to this disclaimer on all of the forthcoming, BBEdit-related stories:&lt;/p&gt;&lt;blockquote class=&quot;disclaimer&quot;&gt;	&lt;p&gt;&lt;b&gt;Disclaimer:&lt;/b&gt; though I'm not an employee of Bare Bones, I was under contract with them for two months to implement some of the new features in in BBEdit 8.5. However, my payment for that work did not and does not depend on the commercial success of this release (it was a fixed fee)... which is a fancy way of saying that I'm not trying to promote BBEdit out of self interest.&lt;/p&gt;	&lt;p&gt;	I truly enjoyed working with the Bare Bones team and hope to do more in the future, but I'm writing about BBEdit here because I use the software every day and I'm quite fond of the new features. I'll be sure to point out when a feature I'm describing is something I requested, something I implemented, or just something I'm happy to have.&lt;/p&gt;	&lt;p&gt;	So please don't confuse my writing with any sort of marketing material. I won't claim to be &quot;just another happy user.&quot; I'm more like &quot;one part happy user, and one part happy developer.&quot;&lt;/p&gt;	&lt;p&gt;	Last but not least: even though I'm continuing to work with Bare Bones, I'm not seeking their approval for anything I write here.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Not everything I say about BBEdit is going to be positive. There are areas that still need improvement, and I don't plan to shy away from them. There are at least a couple things, in fact, that really bug me. But I also recognize that the only perfect software is the stuff that hasn't yet been written.&lt;/p&gt;&lt;p&gt;So... Why write about it at all, considering I'm still working with Bare Bones? Because I need to. I've been relatively quiet for the last couple of months because I didn't feel I should talk about what I was doing, yet. Now that BBEdit 8.5 has been released and they've moved to doing public betas, I need to start committing to &quot;paper&quot; what I've learned and been thinking about. (Perhaps I'll even tell the story of how this project came about.)&lt;/p&gt;&lt;p&gt;After all, that's sort of the point of this site.&lt;/p&gt;</description>	</item>	</channel></rss>