<?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/frontier</link>		<description>The online journal of Seth Dillingham: faith, family, code, cycling, joy, and pain.</description>		<language>en</language>		<copyright>Copyright 2008 seth@macrobyte.net</copyright>		<generator>Conversant's Weblog II plugin</generator>		<category>Frontier</category>		<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>MySQL in Frontier, and Conversant!</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5966/trackback</trackback:ping>	<link>http://www.truerwords.net/5966</link>	<pubDate>Fri, 15 Jun 2007 20:04:04 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5966</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5966#msg5966</comments>	<category>Technology</category>	<category>Conversant</category>	<category>Frontier</category>	<description>&lt;p&gt;&lt;a href=&quot;http://tech.groups.yahoo.com/group/frontierkernel/message/3199&quot;&gt;MySQL&lt;/a&gt; is now supported by Frontier (the open source version). Took a little longer to settle down than was first expected, but it looks like it's ready for testing in teh real world now.&lt;/p&gt;&lt;p&gt;What's that mean for, uh, me? Well, &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt; is still written on top of &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt;. We'd like to change that. In fact, there's a third party that has expressed some interest in Conversant, but that absolutely requires a migration plan. In plain (but still somewhat techie) English: the first step of any migration plan for moving Conversant from Frontier to another scripting language (Python or Ruby) is to move all of the data to MySQL.&lt;/p&gt;&lt;p&gt;Conversant already has support for non-Frontier databases, but there hasn't been a good connection between Frontier and MySQL until now so there hasn't been any good way to store message and user data in a relational database. That has now changed.&lt;/p&gt;&lt;p&gt;So my next step is to merge the MySQL code from the main Frontier branch into the Conversant branch. Then I'll finish two Twine MySQL modules: one for users, one for messages. When those are done... well, then it's time to start testing Conversant running with MySQL databases. That's exciting!!!&lt;/p&gt;&lt;p&gt;(To be clear: I had nothing to do with Frontier gaining MySQL support. That was done by David Gewirtz.)&lt;/p&gt;</description>	</item><item>	<title>How to Serve Compressed Data with mod_gzip and Apache 1.3 on Mac OS X</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5777/trackback</trackback:ping>	<link>http://www.truerwords.net/articles/web-tech/serving_compressed_with_mod_gzip.html</link>	<pubDate>Fri, 17 Nov 2006 01:04:09 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5777</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5777#msg5777</comments>	<category>Essays</category>	<category>Technology</category>	<category>Conversant</category>	<category>DHTML / AJAX</category>	<category>Frontier</category>	<category>Mozilla</category>	<category>Web Sites</category>	<description>&lt;p&gt;Some of us have recently been discussing the size of the &lt;a href=&quot;http://prototype.conio.net/&quot;&gt;Prototype&lt;/a&gt; library, my preferred library for DHTML/AJAX). Proponents of some of the other libraries play up their smaller file sizes, and it's true that this is a real issue for some people.&lt;/p&gt;&lt;p&gt;This little essay/how-to explains the basic ideas (the what, how, and why), and then walks you through setting up Apache on Mac OS X, to enable mod_gzip and serve compressed content. If you skip the editorial content and just follow the steps I've outlined, you should have everything up and running in fifteen minutes or less.&lt;/p&gt;</description>	</item><item>	<title>Frontier Developer Preview Release 2</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5530/trackback</trackback:ping>	<link>http://www.truerwords.net/5530</link>	<pubDate>Fri, 26 May 2006 19:20:34 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5530</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5530#msg5530</comments>	<category>News</category>	<category>Technology</category>	<category>Conversant</category>	<category>Frontier</category>	<description>&lt;p&gt;The &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt; developer's group has produced the next &lt;a href=&quot;http://frontierkernel.org/download&quot;&gt;Developer Preview release of Frontier&lt;/a&gt;. Actually, Thomas Creedon deserves most of the credit for the release itself: he assembled everything and put an awful lot of time into the browser-based installer.&lt;/p&gt;&lt;p&gt;Lots of new features and bug fixes in this version, and it's even a Universal Binary for the Mac OS X!&lt;/p&gt;&lt;p style=&quot;font-style: italic&quot;&gt;(The &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt; branch of Frontier is kept in lock-step with the main 'trunk' of Frontier. I believe most of the Conversant servers 'out there' are running the Conversant-equivalent of this Developer Preview Release 2.)&lt;/p&gt;</description>	</item><item>	<title>An Old New Member Helping with the Frontier Kernel</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5503/trackback</trackback:ping>	<link>http2groups.yahoo.com/group/frontierkernel/message/2389</link>	<pubDate>Wed, 10 May 2006 21:47:49 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5503</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5503#msg5503</comments>	<category>News</category>	<category>People</category>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;Doug Baron just &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/2389&quot;&gt;announced his presence on the Frontier Kernel mailing list.&lt;/a&gt;&lt;/p&gt;&lt;blockquote cite=&quot;http://groups.yahoo.com/group/frontierkernel/message/2389&quot;&gt;	&lt;p&gt;Andre just stepped in to help close the loop that Seth opened last week when he dropped me an email out of nowhere. I fished his &lt;b&gt;&lt;i&gt;[that is, Seth's --ed]&lt;/i&gt;&lt;/b&gt; message out of my Junk mail folder, and a flurry of email exchanges later I find myself here, introducing myself to the list. :)&lt;/p&gt;	&lt;p&gt;	Reading the names of recent senders makes me feel as though I'm already amongst friends: Henri Asseily, David Gewirtz, David Gewirtz, Scott Lawton, Seth Dillingham, Andre Radke, Matt Neuburg. Greetings to all of you. To those who don't know me, I was one of the lead developers of the Frontier kernel, but have not been involved with it since before it went open source.&lt;/p&gt;	&lt;p&gt;	My intention in joining this list is primarily to make myself available to developers who need help working with the kernel. Time permitting, I may contribute to the build. In any case, I look forward to re-connecting with Frontier and this community.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Don't know who &lt;a href=&quot;http://www.chilehead.com/blog/index.php?blog=5&quot;&gt;Doug&lt;/a&gt; is? He's the person second-most responsible for the existence of &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt;, after &lt;a href=&quot;http://scripting.com/&quot;&gt;Dave Winer&lt;/a&gt;. Doug programmed the kernel from 1990 through sometime in the early 2000's. (I did a search in the source code: his initials appear 4,314 times!)&lt;/p&gt;&lt;p&gt;He was a huge part of the community, and universally liked.&lt;/p&gt;&lt;p&gt;I find that I'm still quite attached to Frontier, in spite of my long term intention to the contrary. Having realized that, and that I was learning quite a bit about lower-level programming by working on the kernel, it was clear that what I really want is for the kernel to keep improving. For that, we need more volunteers, which would have to come from the pool of (old) Frontier users.&lt;/p&gt;&lt;p&gt;That happens to be a group of people I understand quite well. Among other things, it's a group that has a collective (if small) emotional scar over the perceived &quot;loss&quot; of Frontier and the amazing community that had built up around it in the 90's. Virtually everyone in the community has moved on... and bringing any of them back would be difficult.&lt;/p&gt;&lt;p&gt;Doug is likely to be a great resource for the current, small group of kernel developers, even if he never gets very involved in coding. (He'll be the &quot;Oracle at Austin.&quot;) Anything beyond that — like actual coding time or drawing in more of the &quot;old ranch hands&quot; — is gravy.&lt;/p&gt;&lt;p&gt;Blah blah blah... my point is that I've accepted a personal mission with the Frontier kernel. I want to build up a bright new community like we had in the late-mid 90's, around a &lt;b&gt;modern&lt;/b&gt;, ever-improving Frontier. Doug's joining the group is a big, important first step.&lt;/p&gt;</description>	</item><item>	<title>What Was His Name?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5493/trackback</trackback:ping>	<link>http://www.truerwords.net/5493</link>	<pubDate>Wed, 03 May 2006 21:13:06 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5493</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5493#msg5493</comments>	<category>People</category>	<category>Technology</category>	<category>Frontier</category>	<description>&lt;p&gt;To all of the &lt;b&gt;old&lt;/b&gt; &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt; users who happen by here in the near future:&lt;/p&gt;&lt;p&gt;Back in the good old days (early &lt;a href=&quot;http://community.scriptmeridian.org/&quot;&gt;ScriptMeridian&lt;/a&gt; days, perhaps even the Frontier-Users / Frontier-Talk lists), there was an attorney using Frontier who used to participate on the lists with us. He wasn't really a guru, but he was smart and he participated fairly regularly.&lt;/p&gt;&lt;p&gt;Anybody else remember that? (And something is tickling my brain with the idea that he may even have been running for some local office at one point or another during that time period.)&lt;/p&gt;&lt;p&gt;What was his name!? This is really bugging me. I've recently been in touch with another old friend from those days — one of the oldest of the old timers, in fact — but neither of us have managed to come up with this gentleman's name.&lt;/p&gt;</description>	</item><item>	<title>&quot;Issues&quot; with Conversion of Character Sets</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5481/trackback</trackback:ping>	<link>http://www.truerwords.net/5481</link>	<pubDate>Tue, 25 Apr 2006 23:50:16 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5481</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5480#msg5481</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Operating Systems</category>	<category>Programming</category>	<description>&lt;p&gt;(Is there any geekier topic..? Ahem.)&lt;/p&gt;&lt;p&gt;A couple people have been testing Frontier's new character set conversion features, &lt;a href=&quot;http://www.truerwords.net/5480&quot;&gt;as described here&lt;/a&gt;. One of the testers said that it works, &lt;b&gt;but&lt;/b&gt; the conversion from &amp;quot;macintosh&amp;quot; to &amp;quot;iso-8859-1&amp;quot; has a problem: some single characters are replaced with multiple characters in the output.&lt;/p&gt;&lt;p&gt;Here's an easy example:&lt;/p&gt;&lt;div style=&quot;white-space: pre;&quot;&gt;	- text is in &amp;quot;macintosh&amp;quot; encoding	- text contains character 183: ∑	- text is run through the new convertCharset verb		&lt;code&gt;string.convertCharset( &amp;quot;macintosh&amp;quot;, &amp;quot;iso-8859-1&amp;quot;, '∑' )&lt;/code&gt;	- the result is: &amp;lt;sum&amp;gt;&lt;/div&gt;&lt;p&gt;I responded that the iso-8859-1 character set doesn't contain that particular character, so Apple had two options: they could put in a bogus character like Microsoft's converter does, or they could put in a series of characters which actually mean the same thing as the original character. They chose the latter: &amp;lt;sum&amp;gt; for ∑, &amp;gt;= for ≥, etc.&lt;/p&gt;&lt;p&gt;Yes, this sacrifices round-trip fidelity, which at first blush seems like a big mistake, a real issue. One can't convert mac-&amp;gt;ansi-&amp;gt;mac and end up with the original string.&lt;/p&gt;&lt;p&gt;But really… who cares? Is it that important, in the real world, that you be able to convert a string through a chain of character sets and end up back where you started? &lt;i&gt;(Note that Frontier actually converts a *&lt;b&gt;copy&lt;/b&gt;* of the original string… it's up to the scripter to replace it if so desired.)&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Isn't it more likely that you're converting a string to another character set because you actually *&lt;b&gt;need&lt;/b&gt;* the string in that other character set, probably because someone needs to be able to read the text on another platform?&lt;/p&gt;</description>	</item><item>	<title>New Character Set Features in Frontier (Done!)</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5480/trackback</trackback:ping>	<link>http://www.truerwords.net/5480</link>	<pubDate>Tue, 25 Apr 2006 23:46:07 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5480</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5480#msg5480</comments>	<category>Technology</category>	<category>Conversant</category>	<category>Frontier</category>	<category>Operating Systems</category>	<category>Programming</category>	<description>&lt;p&gt;As I've hinted at a few times, I spent a lot of time in the last few weeks working on text encoding issues. Specifically, in the Frontier kernel, I hooked up the OS API's for converting text between character sets (macintosh, iso-8859-1, utf-8, utf-16, shift_jis, etc., etc., etc.)&lt;/p&gt;&lt;p&gt;Thanks to some help from a few people — especially Jim Correia, someone with some Hard Core experience in this area — everything is working on both platforms. Excellent!&lt;/p&gt;&lt;p&gt;On Windows, I had to actually learn a little about COM programming. (Really, I'm not kidding.) Frontier is now a real COM client (at the kernel level), just so that it can ask the OS for a list of the character sets available on the machine.&lt;/p&gt;&lt;p&gt;I don't really enjoy windows programming, it makes me feel greasy and out of my element, but I must admit that I &lt;b&gt;*did*&lt;/b&gt; enjoy seeing it work the first time. It's especially gratifying to see the feature working on both platforms. Also in this case I didn't really have a choice: we needed this 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;, and most of the Conversant servers run on Windows.&lt;/p&gt;</description>	</item><item>	<title>A New Conversant Branch?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5449/trackback</trackback:ping>	<link>http://www.truerwords.net/5449</link>	<pubDate>Sat, 01 Apr 2006 19:55:23 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5449</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5449#msg5449</comments>	<category>Macrobyte</category>	<category>Technology</category>	<category>Conversant</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;The following is a copy of &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/2050&quot;&gt;a letter&lt;/a&gt; I just sent to the Frontier-kernel developers' mailing list.&lt;/p&gt;&lt;p&gt;(This is no April Fools Day joke, I promise!)&lt;/p&gt;&lt;blockquote cite=&quot;http://groups.yahoo.com/group/frontierkernel/message/2050&quot; style=&quot;font-size: 92%; border: 1px solid #999; border-left: 2px solid blue; padding: 1em;&quot;&gt;&lt;p&gt;	Hi all,&lt;/p&gt;	&lt;p&gt;	I've been maintaining my own local branch of the kernel with the changes we need for Conversant. &lt;/p&gt;	&lt;p&gt;	The only significant difference between the trunk and my copy is one verb group (builtins.conv) with a single verb (compileString). The other differences are all to resources, either to support the extra verb group or to change various static strings in the app (like the name and version number).&lt;/p&gt;	&lt;p&gt;	More parts of Conversant can/should/will be kernelized, so the number of verbs in that group will grow with time, but that's all there is for now.&lt;/p&gt;	&lt;p&gt;	It's been Macrobyte's plan, from the very beginning, to release Conversant as open source. Now I'd like to follow through with that by setting up a conversant branch on the sourceforge-hosted svn repository, and maintaining the source code there rather than locally. This code would be available under the same license as the rest of the Frontier kernel, of course.&lt;/p&gt;	&lt;p&gt;	Does anyone have any significant objections, questions, or concerns before I proceed with this plan?&lt;/p&gt;	&lt;p&gt;	Now the FAR bigger problem for me is actually the Conversant-related .root files. This is a totally HUGE amount of data, much bigger than everything in Frontier.root and MainResponder.root. These should all go into the repository also (probably as another branch, like Thomas did with Frontier's .root files), but I haven't yet figured out how to handle root updates with a cvsSync-based system.&lt;/p&gt;	&lt;p&gt;	(Perhaps I'll actually do everything twice: check all changes into a root updates server, AND check the changes in with cvsSync. Honestly, I haven't spent much time investigating this yet.)&lt;/p&gt;	&lt;p&gt;	Anyway, I hope and assume that my plan is ok with everybody, but please speak up if I'm mistaken.&lt;/p&gt;	&lt;p&gt;	Thanks,&lt;/p&gt;	&lt;p&gt;	Seth&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;We'll see what happens. I'm not anticipating any problems, but who knows? Not knowing is why I asked in the first place (and is why I probably shouldn't hav ended the letter by saying that I &quot;assume&quot; the plan is ok with everybody, since asking shows I wasn't assuming that at all!)&lt;/p&gt;</description>	</item><item>	<title>Updated the string-wrapping functions</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5423/trackback</trackback:ping>	<link>http://www.truerwords.net/5423</link>	<pubDate>Tue, 21 Mar 2006 20:07:35 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5423</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5416#msg5423</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;I'll keep this one short: I've updated both of the usertalk-based stringwrapping functions today. Thomas Creedon found a bug which affected bothversions, so I had to update them both.&lt;/p&gt;&lt;p&gt;If no more bugs are found, then these are the versions which I'll based thekernel code on in a couple of weeks.&lt;/p&gt;&lt;p&gt;(Oh, they're here: &lt;a href=&quot;http://www.truerwords.net/articles/ut/replacing_string_wrap.html&quot;&gt;future replacement forstring.wrap&lt;/a&gt;and the &lt;a href=&quot;http://www.truerwords.net/articles/ut/wrapping_quoted_text.html&quot;&gt;brand newstring.wrapQuoted&lt;/a&gt;.)&lt;/p&gt;&lt;p class=&quot;note updates&quot;&gt;Update: Grr. Fixed the link.&lt;/p&gt;</description>	</item><item>	<title>Wrapping Quoted Text in UserTalk: string.wrapQuoted()</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5422/trackback</trackback:ping>	<link>http://www.truerwords.net/5422</link>	<pubDate>Tue, 21 Mar 2006 00:48:38 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5422</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5421#msg5422</comments>	<category>Technology</category>	<category>Email</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;Yesterday I mentioned Frontier's string.wrap, and asked for help testingthe replacement I've written for it.&lt;/p&gt;&lt;p&gt;A related problem is wrapping email-quoted text: you know, the text thatbegins with &quot;&gt;&quot;. It's not the same as wrapping regular text because youdon't want the quote delimiters to appear anywhere but at the beginning ofthe line.&lt;/p&gt;&lt;p&gt;I've created a new Frontier (UserTalk) script which currently lives atworkspace.stringWrapQuoted(). I'd like some help testing it, just like thelast one. Once I'm confident that it works correctly, I'll kernelize it(rewrite it in C) and release it to the open source project. It's finallocation will probably be string.wrapQuoted.&lt;/p&gt;&lt;p&gt;The full script and testing instructions are on their own page:&lt;a href=&quot;http://www.truerwords.net/articles/ut/wrapping_quoted_text.html&quot;&gt;Wrapping Quoted Text with UserTalk&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I'm looking for testers. If you have a copy of Frontier, Conversant,Manila, Radio, or the OPML Editor, please give it a whirl!&lt;/p&gt;&lt;p class=&quot;note updates&quot;&gt;Update 3/21/2006: Fixed the link.&lt;/p&gt;</description>	</item><item>	<title>Replacement for Frontier's string.wrap function</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5417/trackback</trackback:ping>	<link>http://www.truerwords.net/articles/ut/replacing_string_wrap.html</link>	<pubDate>Mon, 20 Mar 2006 03:46:19 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5417</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5416#msg5417</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;Frontier's string.wrap is a nearly useless verb, and is especially weirdbecause it does the opposite of what its name suggests: it actually &lt;b&gt;un&lt;/b&gt;wrapsa wrapped string. In other words, you pass it some text, like an email withhard returns at the end of every line, and it strips out the hard returnswithin the paragraphs and leaves the double-spaced paragraphs alone.&lt;/p&gt;&lt;p&gt;I'm working on a new version of this function that attempts to mimic thestring-wrapping features in the better text editors like BBEdit orMailsmith.&lt;/p&gt;&lt;p&gt;Rather than waste a ton of space on my home page and the RSS feed with this,I've put the full story on it's own page, &lt;a href=&quot;http://www.truerwords.net/articles/ut/replacing_string_wrap.html&quot;&gt;Replacement for Frontier'sstring.wrap function&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I'm looking for testers. If you have a copy of Frontier, Conversant,Manila, Radio, or the OPML Editor, please take a look at that page and letme know how it works for you, ok?&lt;/p&gt;</description>	</item><item>	<title>VeriSign Buys Weblogs.com for $2.3 Million</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/5142/trackback</trackback:ping>	<link>http://www.truerwords.net/5142</link>	<pubDate>Fri, 07 Oct 2005 15:30:06 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/5142</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=5142#msg5142</comments>	<category>News</category>	<category>Technology</category>	<category>Frontier</category>	<description>&lt;p&gt;&lt;a href=&quot;http://weblogs.com/&quot;&gt;Weblogs.com&lt;/a&gt; -- which isessentially a &quot;weblog update pinging services&quot; -- &lt;a href=&quot;http://infrablog.verisignlabs.com/2005/10/weblogs_20_1.html&quot;&gt;has been purchasedby VeriSign, Inc.&lt;/a&gt;, for $2.3 Millionfrom Scripting News, Inc (ie, Dave Winer).&lt;/p&gt;&lt;p&gt;In my opinion, this is mostly -- well, at least half -- about thedomain name. That's a very, very good domain name, obviously.&lt;/p&gt;&lt;p&gt;The service it runs is important, that's true. There are lots of secondaryservices that check the very long list of recently updated weblogs on anhourly or daily basis. As the number of weblogs has grown over the years,the load on that server has grown by several orders of magnitude, to thepoint that it's almost unusable by people sitting in front of theirbrowsers: the only 'clients' patient enough to use it are the services thatping it and the automated scripts that check it.&lt;/p&gt;&lt;p&gt;So, Verisign paid a couple million dollars for one of the most valuabledomain names imaginable. The domain name comes with a service they'll haveto run themselves which can't generate any cash on its own. They claim thatthey're going to maintain the service as &quot;open and free,&quot; which is actuallythe only way it could be done (*nobody* would pay to ping). With arelatively small investment (less than $100K), they could/should/will setup a new ping server that can handle the load and not require constantbabying.&lt;/p&gt;&lt;h3&gt;My Prediction&lt;/h3&gt;&lt;p&gt;Unfortunately, knowing Verisign -- part of one of the most hated companieson the internet -- they will screw this up completely. Perhaps they'llrequire free registration before your weblog can submit pings, or they'llchange the ping API. Maybe they'll come up with some even more clever wayto totally annoy the weblog-publishing masses. People will react in horrorthat they've broken something so important, but eventually Verisign willreveal just how they plan to make money with this domain name andeventually people will shut up.&lt;/p&gt;&lt;h3&gt;Congrats&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;http://archive.scripting.com/2005/10/07#whatADay&quot;&gt;Congratulations to Dave, though!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now he has enough money (again) to do whatever it is he's planning withhis outliner, or to go back to driving around the country, or to startpushing the next XML dialect that everybody will use and most of thedigerati will hate. :-) Maybe he has something else up his sleeve! Ashe's made clear over the years (today being a good example), the mancan talk an awful lot without ever telling us what's really going on inhis head.&lt;/p&gt;</description>	</item><item>	<title>Setting Attributes on Elements in Frontier's Compiled XML</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4843/trackback</trackback:ping>	<link>http://www.truerwords.net/4843</link>	<pubDate>Fri, 03 Jun 2005 18:33:12 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4843</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4843#msg4843</comments>	<category>Technology</category>	<category>Frontier</category>	<category>XML</category>	<description>&lt;p&gt;Ugh, the subject is a mouthful, but the topic is very simple if you know Frontier at all.&lt;/p&gt;&lt;p&gt;To any Frontier developers who read my site but may not be paying attention to the kernel developer's mailing list: could you take a look at &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/1059&quot;&gt;this message&lt;/a&gt; and tell me if you see any problems with my little suggestion?&lt;/p&gt;&lt;p&gt;Please, no ranting about... well, anything. It's a given that this is a feature we should have had yesterday.&lt;/p&gt;</description>	</item><item>	<title>Dave Winer's Software, Users, and Fiftieth Birthday</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4765/trackback</trackback:ping>	<link>http://www.truerwords.net/4765</link>	<pubDate>Sat, 30 Apr 2005 23:13:17 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4765</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4765#msg4765</comments>	<category>Essays</category>	<category>News</category>	<category>People</category>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<category>Radio</category>	<description>&lt;p&gt;Years ago, some of us on the old Frontier mailing lists would complainthat &lt;a href=&quot;http://www.scripting.com/&quot;&gt;Dave Winer&lt;/a&gt; wrote his softwareto work for him, specifically. It did exactly what he wanted, how he wantedto do it. Frontier. The Website Framework (Frontier's original static webCMS). Manila. Radio. Some feature requests would make it into the software,but anything more than an inch to either side of Dave's focus had nochance. You had to write it yourself.&lt;/p&gt;&lt;p&gt;Support for using the existing features in ways he didn't anticipateusually got the same lack of interest, or confusion, or even, occasionally,hostility. (&amp;quot;Why would you want to use it that way!?&amp;quot;)&lt;/p&gt;&lt;p&gt;That drove me nuts, at the time. It's like we were all being allowed toplay with Dave's toys, but only so long as we played with them his way.&lt;/p&gt;&lt;p&gt;Some of you are nodding your heads, remembering those days. Some of you areprobably also shaking your heads (at the same time?), thinking this is anattack on Dave. It's not. Keep reading, you'll see this is about users, andeven my own education.&lt;/p&gt;&lt;p&gt;Over the years, I've come to see things in a slightly different way. Daveloves the users -- I truly believe that -- just not necessarily&lt;b&gt;*his*&lt;/b&gt; users. When Dave has an idea, a vision, he pushes his softwarein that direction with single-minded ferocity and the force of a hurricane.His users -- meaning, those using his software -- either go with him orblow away. (Consider the transition from Frontier as a Mac scripting systemto Frontier as a web development platform.)&lt;/p&gt;&lt;p&gt;His software is just that: his. It's how he expresses his ideas. Dave is --or at the very least, he thinks of himself as -- the software industry'sUncle Dave. His users aren't those people using his software. His users arethose people using his ideas. XML-RPC. Weblogs for everybody. RSSeverywhere.&lt;/p&gt;&lt;p&gt;He isn't always right, his ideas aren't always the best, and hisimplementations almost never are. They are often inspiring, though.Programmers look at what he's done and are inspired to write somethingbetter, faster, more scalable, more thorough. But they don't get it. &lt;b&gt;*Ididn't get it.*&lt;/b&gt; Dave's output isn't his software. His software is justan example, the implementation of whatever idea he was focused on.&lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&quot;&gt;Atom&lt;/a&gt;folks think that with Google behind them, they'll beat Dave because hisformat (RSS) isn't as good. The spec isn't as well written, theformat isn't as flexible, and there is no tightly-coupled API (atom is botha format and a publication API). They're probably right about the facts.&lt;/p&gt;&lt;p&gt;But! If, ten years from now, there are one hundred million or a billionAtom feeds and RSS has gone the way of HTML 3.2 (not likely), who has&amp;quot;won?&amp;quot; Would there be an Atom if Dave hadn't worked with Netscape on RSS,or pushed back so hard against the insanity that was RSS 1.0?&lt;/p&gt;&lt;p&gt;Certainly not.&lt;/p&gt;&lt;p&gt;Nor would there be a &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt; without Frontier's originalMainresponder-based discussion groups. &amp;quot;They suck,&amp;quot; said I, and &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources, my company.&quot;&gt;Macrobyte&lt;/a&gt;(at the time, Brian Andresen, Art Peña and myself) believed we could dobetter. Conversant has been evolving ever since. (That's a terribleover-simplification, but this isn't a history of Conversant.)&lt;/p&gt;&lt;p&gt;Seen that way, we look like nothing more than a swirly little storm thatspun off the side of Hurricane Dave. (As does the current Userland, actually,and a few other companies and applications.) There would be no Conversantwithout Dave and his annoying, unscalable, made-to-run-his-way software.The expression of Dave's needs, Dave's ideas.&lt;/p&gt;&lt;p&gt;Dave turns fifty on Monday. This is Dave the man, not Dave the hurricane.Dave the man that's missing his Uncle Vavavoom, and is surely thinkingabout his own mortality.&lt;/p&gt;&lt;p&gt;So, I just want to say, &amp;quot;Thank you, Dave!&amp;quot;, and let you know that whileothers may appreciate you for your &lt;a href=&quot;http://archive.scripting.com/2005/04/27#When:6:37:54PM&quot;&gt;abrasiveclarity&lt;/a&gt;,I prefer the hurricane of ideas and the constant focus on us, youridea-users.&lt;/p&gt;&lt;p&gt;Oh, and &lt;a href=&quot;http://archive.scripting.com/2005/05/01#aBirthdayRequest&quot;&gt;Happy Birthday, Dave&lt;/a&gt;.&lt;/p&gt;</description>	</item><item>	<title>A Better Way to Bring Frontier to the Front...</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4738/trackback</trackback:ping>	<link>http://www.truerwords.net/4738</link>	<pubDate>Mon, 18 Apr 2005 11:14:29 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4738</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4737#msg4738</comments>	<category>Technology</category>	<category>Frontier</category>	<description>&lt;p&gt;Andre had a better way to bring Frontier to the front: &lt;code&gt;Frontier.showApplication()&lt;/code&gt;&lt;/p&gt;&lt;p&gt;It's a noop on Mac (which is strange), but was added to the Windows open source code last year, at Dave's request, to allow the startup script to decide whether or not the app should be shown when it launches. In other words, Dave already asked for this solution once, and got it.&lt;/p&gt;&lt;p&gt;I don't have a glue script in my Frontier.root for this verb, so I didn't know about it. (Dave has said basically the same thing.)&lt;/p&gt;</description>	</item><item>	<title>How to Bring Frontier or Radio to the Front on Startup, on Windows</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4737/trackback</trackback:ping>	<link>http://geeks.opml.org/2005/04/17#a23</link>	<pubDate>Sun, 17 Apr 2005 23:22:12 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4737</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4737#msg4737</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<category>Radio</category>	<description>&lt;p&gt;&lt;a href=&quot;http://geeks.opml.org/2005/04/17#a23&quot;&gt;Dave Winer wants to know&lt;/a&gt;how to bring Frontier to the front on startup, on Windows:&lt;/p&gt;&lt;blockquote cite=&quot;http://geeks.opml.org/2005/04/17#a23&quot;&gt;	&lt;p&gt;In the spirit of documenting our programming work openly whenever	possible, here's a question for Dave Luebbert who is working with me on	the outliner, and anyone else who's inclined to poke around the	Frontier source.&lt;/p&gt;	&lt;p&gt;	When the program launches it's only accessible through the Windows	system tray. This behavior makes sense for Frontier and Radio, but not	for the OPML editor.&lt;/p&gt;	&lt;p&gt;	It should come to the front when it's launched. I tried adding a call	to Frontier.bringToFront to the startup script, thinking that would do	it, but it doesn't.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;One possible solution, totally script based, is to just ask the OS to openthe application for you a second time. I figured this out (years ago) whenI noticed that double-clicking Frontier's icon on the desktop will reliablyopen Frontier's MDI window if the application is already running. (The rootof the problem Dave's trying to work around is that launching Frontier onWindows doesn't result in a window, you just get the little mini Frontiericon in the system tray.)&lt;/p&gt;&lt;pre&gt;&lt;code&gt;launch.application( Frontier.getProgramPath() )&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That's all it takes. Just put that in a startup script (you can actually call it whenever and however you want.)&lt;/p&gt;&lt;p style=&quot;font-style: italic;&quot;&gt;I'd really like to know if this doesn't work for someone. Please let me know if you have problems with it.&lt;/p&gt;&lt;p&gt;Unfortunately, it looks like he's going with a modification to the kernel.I didn't think that's what he wanted, but maybe this ultra-mini how-to willbe useful for someone else, someday.&lt;/p&gt;</description>	</item><item>	<title>dbSpy: Database Analysis for Frontier</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4673/trackback</trackback:ping>	<link>http://flip.macrobyte.net/software/dbSpy</link>	<pubDate>Tue, 29 Mar 2005 18:12:40 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4673</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4673#msg4673</comments>	<category>People</category>	<category>Technology</category>	<category>Philippe Martin</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;&lt;a href=&quot;http://flip.macrobyte.net/software/dbSpy&quot;&gt;dbSpy&lt;/a&gt; is a newGuest Database analyzer for &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt;and &lt;a href=&quot;http://radio.userland.com/&quot; title=&quot;Radio Userland&quot;&gt;Radio&lt;/a&gt;, by &lt;a href=&quot;http://www.spicynoodles.net/&quot;&gt;Andre Radke&lt;/a&gt; and &lt;a href=&quot;http://flip.macrobyte.net/weblog&quot;&gt;Philippe Martin&lt;/a&gt;.&lt;/p&gt;&lt;blockquote class=&quot;quotedText&quot; cite=&quot;http://flip.macrobyte.net/software/dbSpy&quot;&gt;	dbSpy is a low-level database analysis tool for Frontier. It provides	information about the structure and the contents of a GDB, in the form	of a Frontier hierarchy of tables (detailing used, free or orphaned	nodes and other similar information) and optionally in the form of a	graphical representation of the GDB.&lt;/blockquote&gt;&lt;p&gt;Unfortunately, the web page doesn't yet say &lt;b&gt;why&lt;/b&gt; you'd use it.&lt;/p&gt;&lt;p&gt;In late December, 2004, the Frontier-Kernel list was discussing problemswith root-file (database) corruption and bloat. Dave Winer explained whathe had been seeing on one of his machines. Andre responded with &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/722&quot;&gt;adescription of a tool&lt;/a&gt;he had partially completed:&lt;/p&gt;&lt;blockquote class=&quot;quotedText&quot; cite=&quot;http://groups.yahoo.com/group/frontierkernel/message/722&quot;&gt;	&lt;p&gt;I wrote a Frontier tool some time ago that understands the low-level	database format and knows how to scan through a root file by visiting	all blocks either in sequence and also according to the table	hierarchy.&lt;/p&gt;	&lt;p&gt;	I basically started out with re-implementing the window.dbstats verb	in UserTalk. The idea was to be able to analyse corrupted roots and	to eventually develop strategies to fix them even if doing a Save A	Copy from within Frontier was no longer able to do so, but I never	got that far.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://flip.macrobyte.net/software/dbSpy&quot;&gt;&lt;img width=&quot;133&quot; height=&quot;103&quot; border=&quot;0&quot; align=&quot;left&quot; src=&quot;http://flip.macrobyte.net/292/enclosure/dbSpyScreenshot_s.jpg&quot; alt=&quot;dbSpy graphical overview&quot; style=&quot;margin-right: 0.5em;&quot; /&gt;&lt;/a&gt;dbSpy is a more complete version of Andre's tool, but now it includesa very pretty (and useful), html-based, graphical overview of the database. (It reminds me a little of the disk-overview image provided defrag tools like Norton Utilities.)&lt;/p&gt;&lt;p&gt;To paraphrase Andre, its purpose is to analyze the low-levelformat of corrupted or bloated databases, to help the operator (programmer)learn what went wrong and what might be fixed (or fixable) in the kernel toprevent it from happening again.&lt;/p&gt;</description>	</item><item>	<title>Dave Apologizes, Seth Considers, Nothing Changes</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4624/trackback</trackback:ping>	<link>http://www.truerwords.net/4624</link>	<pubDate>Tue, 15 Mar 2005 22:44:44 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4624</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4624#msg4624</comments>	<category>People</category>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;&lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/885&quot;&gt;Dave Winer has apologized&lt;/a&gt;for -- essentially -- &quot;being mean.&quot;&lt;/p&gt;&lt;p&gt;Here's the story. Early this year we had a little -- very little --community of developers just barely starting to coalesce around the newlyopened (open source) Frontier kernel. Unfortunately, nobody from Userlandwas participating in that effort: they have their own license, and chose topursue their own development efforts rather than join the open sourceproject. Our changes would exist only in the open source version, and theirchanges would only be found in their commercial version.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://frontier.userland.com/discuss/msgReader$13915?mode=day&quot;&gt;Brian Ablaza asked&lt;/a&gt;about bug fixes in the two different versions, and which one he should use.His question was asked on Userland's own message board. Scott Young (theboss at UserLand) responded with a non-answer.&lt;/p&gt;&lt;p&gt;&lt;ahref=&quot;http://frontier.userland.com/discuss/msgReader$13927?mode=day&quot;&gt;David Gerwitz called him&lt;/a&gt;on it. &lt;a href=&quot;http://frontier.userland.com/discuss/msgReader$13928&quot;&gt;Scott responded&lt;/a&gt;to David, but still without really answering the question.&lt;/p&gt;&lt;p&gt;Finally, &lt;a href=&quot;http://frontier.userland.com/discuss/msgReader$13931&quot;&gt;Scott stopped&lt;/a&gt;beating around the bush:&lt;/p&gt;&lt;blockquote cite=&quot;http://frontier.userland.com/discuss/msgReader$13931&quot;&gt;	&quot;UserLand will continue to release its own version of Frontier bundled with 	its products.&quot;&lt;/blockquote&gt;&lt;p&gt;David obviously &lt;a href=&quot;http://frontier.userland.com/discuss/msgReader$13936&quot;&gt;didn't like that answer&lt;/a&gt;.Besides his response there, he &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/856&quot;&gt;posted a pointer&lt;/a&gt;on the kernel developers mailing list. That's when I involved myself, posting&lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/857&quot;&gt;one message to the yahoo group&lt;/a&gt;, and &lt;a href=&quot;http://frontier.userland.com/discuss/msgReader$13937?mode=day&quot;&gt;two&lt;/a&gt; &lt;a href=&quot;http://frontier.userland.com/discuss/msgReader$13956?mode=day&quot;&gt;messages&lt;/a&gt;to Userland's board.&lt;/p&gt;&lt;p&gt;Dave Winer's response? He &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/863&quot;&gt;called us names&lt;/a&gt;.I &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/864&quot;&gt;didn't like that&lt;/a&gt;very much, but at least I made my point without losing my temper.&lt;/p&gt;&lt;p&gt;Unfortunately, I believe Dave's insulting tone (there were more messages,as you can see if you follow that thread on the developer's list) squashedthe list. Many of us went through this back in the late 90's, and justdon't want to do it again. At least, I know I don't.&lt;/p&gt;&lt;p&gt;Now look at the &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/messages/856&quot;&gt;messages posted in the last sixweeks&lt;/a&gt;.Go back &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/messages/826&quot;&gt;even further&lt;/a&gt;if you want. There are spaces, here and there, with very little activity,but generally you can see that things are getting done. Flip was &lt;a href=&quot;http://sourceforge.net/tracker/?atid=687798&amp;group_id=120666&amp;func=browse&quot;&gt;organizingthe bug reports&lt;/a&gt;,some others (myself include) were fixing bugs and adding some smallfeatures. We were starting to self-organize. As you can see, though, thingsdied almost completely after Dave's last messages on February 9 and 10. Onevery brief discussion of tcp.ftp limitations, and then nothing.&lt;/p&gt;&lt;p&gt;Now he apparently wants us to start all over again. After his apology, hejustifies his behavior by saying that we weren't doing what he wanted:&lt;/p&gt;&lt;blockquote cite=&quot;http://groups.yahoo.com/group/frontierkernel/message/885&quot;&gt;	&lt;p&gt;First, I'd like to apologize for using the term &quot;drama queens&quot; to	describe the people who were lobbying UserLand to do something	related to this project. It was over the top. I'm sorry I said it.&lt;/p&gt;	&lt;p&gt;	&lt;em style=&quot;font-weight: bold;&quot;&gt;I really want to get something going here, and going back to UserLand	was not going to help that.&lt;/em&gt; The way to go is to start slowly and get	some releases out, improve the kernel in small ways, get some successes	under our belt, learn from them, and then do it again.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;(Emphasis added.)&lt;/p&gt;&lt;p&gt;Now, it's no secret that &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt;is (still, presently) built on Frontier. I have good reasons for wanting tosee something happen with the open source project, so I have good reasonsfor thinking about what Dave said. He isn't hiding the fact that he wantsus to help him, for his sake. He wants his community built around hisoutliner, which specializes in his file format (OPML) and serves a markethe's helping to pioneer (podcasting). Though much of what 'he' wants to dohas nothing to do with Conversant, any improvements made to the kernelcould also help with Conversant.&lt;/p&gt;&lt;p&gt;On the other hand, there's a lot of history to be considered. If I'mvolunteering my time, I definitely don't want to feel like I'm working forDave.&lt;/p&gt;&lt;p&gt;I haven't decided what to do yet, besides think out loud right here.&lt;/p&gt;&lt;p&gt;For now, I'll continue on the path I've been on for months: working on myown version, privately. Use our fixes and conversant-only features in ournon-distributed versions of Conversant. When I do something worth sharing,like &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/823&quot;&gt;these items&lt;/a&gt;,I'll certainly continue to share them with the community.&lt;/p&gt;&lt;p&gt;However, it's going to take more than a half-hearted apology (immediatelyfollowed by a justfication) to really get me &lt;b&gt;involved&lt;/b&gt; again. I can'tspeak for others, of course... but then, perhaps their silence is speakingfor them.&lt;/p&gt;</description>	</item><item>	<title>Scripting for Production Automation - Seybold Seminars '99</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4582/trackback</trackback:ping>	<link>http://www.truerwords.net/4582</link>	<pubDate>Thu, 24 Feb 2005 16:53:06 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4582</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4582#msg4582</comments>	<category>Macrobyte</category>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;In March of 1999, I was on a panel at Seybold Seminars in Boston on the subject of &lt;a href=&quot;http://seminars.seyboldreports.com/1999_boston/conferences/58/58_transcript.html&quot;&gt;Prepress Production Automation&lt;/a&gt;. It was really a Mac-specific panel, and I was there mainly as the Frontier guy.&lt;/p&gt;&lt;p&gt;I went into that panel with a fully-prepared presentation, only to find that they wanted to be informal... that's why my little &quot;speech&quot; section has such a light, semi-goofy overtone.&lt;/p&gt;&lt;p&gt;The best thing to come from that experience was a fantastic metal coffee mug, given to all speakers that year. I've never seen its equal!&lt;/p&gt;&lt;p&gt;(I just found that transcript, that's the only reason for the link.)&lt;/p&gt;</description>	</item><item>	<title>Frontier and the New Userland</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4547/trackback</trackback:ping>	<link>http://www.truerwords.net/4547</link>	<pubDate>Wed, 09 Feb 2005 12:31:31 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4547</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4547#msg4547</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;David Gewirtz has posted a &lt;a href=&quot;http://frontier.userland.com/discuss/msgReader$13936&quot;&gt;most excellent message&lt;/a&gt; on Userland's message board, regarding the state of Userland's support for the open source project.&lt;/p&gt;&lt;p&gt;He's blunt but not too harsh, and backs up his words with the money his company spends on Frontier and Manila.&lt;/p&gt;&lt;p&gt;We discussed this a little on the Yahoo Groups list that's used by the project developers. &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/857&quot;&gt;Here are my thoughts.&lt;/a&gt;&lt;/p&gt;</description>	</item><item>	<title>Updated Frontier's Script Profiler</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4491/trackback</trackback:ping>	<link>http://www.truerwords.net/4491</link>	<pubDate>Mon, 10 Jan 2005 16:23:15 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4491</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4491#msg4491</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;This weekend, I updated &lt;a href=&quot;http://kernel.scripting.com/&quot;&gt;Frontier's&lt;/a&gt; script profiler to track script performance in milliseconds (thousandths of a second) instead of ticks (sixtieth's of a second).&lt;/p&gt;&lt;p&gt;While I was in there, I added a clock.milliseconds() verb.&lt;/p&gt;&lt;p&gt;The combination of all the optimizations we're doing and the speed of modern computers has rendered ticks a lot less useful than they used to be. For an example, consider the following code:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;local ( secs = 10 )local ( targTicks = clock.ticks() + ( secs * 60 ) )&lt;br /&gt;&lt;br /&gt;loop	if ( clock.ticks() &gt;= targTicks )		break	i++&lt;br /&gt;&lt;br /&gt;msg( i + &quot; calls in &quot; + secs + &quot; seconds.&quot; )&lt;/pre&gt;&lt;p&gt;After this runs on my Mac G4/450, the value of i is approximately 140,000. On my Athlon, the value of i is about 1,400,000.&lt;/p&gt;&lt;p&gt;My point is that, like clock.ticks itself, most of the verbs in Frontier run in less than one tick. Since the profiler was only measuring ticks, it was sometimes difficult to see where the performance bottlenecks were. If one of the verbs in your profile table always runs in less than half of a tick, odds are good that more than half of the calls to that verb will never even increment the profiler's tick counter. This makes it very easy to completely miss real opportunities for script optimization.&lt;/p&gt;&lt;p&gt;Improving the profiler's granularity from ticks to milliseconds makes the profiles more useful and trustworthy because they're more precise.&lt;/p&gt;&lt;p&gt;Andre and I agreed that we'd like to see it taken all the way to microseconds. Unfortunately, at 1,000,000 microseconds per second, some of the slower verbs (like string verbs operating on very large strings, or verbs which must visit very large tables) would run a significant risk of over-running the limits of Frontier's maximimum long value. Being told that a verb run in -1,874,936,265 microseconds isn't particularly helpful. ;-)&lt;/p&gt;</description>	</item><item>	<title>Showdown: string.patternMatch vs. re.match</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4473/trackback</trackback:ping>	<link>http://www.truerwords.net/4473</link>	<pubDate>Thu, 30 Dec 2004 12:55:48 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4473</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4473#msg4473</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;Certainly not for the geekless among my readers: I've just posted a short review of three methods for &lt;a href=&quot;http://www.truerwords.net/articles/ut/patternmatch_vs_rematch.html&quot;&gt;seeking for a simple pattern in a string&lt;/a&gt; in usertalk.&lt;/p&gt;&lt;p&gt;This leads directly to my next post, coming soon...&lt;/p&gt;</description>	</item><item>	<title>Frontier 10: Being Involved (Long and Rambly)</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4454/trackback</trackback:ping>	<link>http://www.truerwords.net/4454</link>	<pubDate>Tue, 14 Dec 2004 13:42:25 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4454</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4454#msg4454</comments>	<category>Macrobyte</category>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;After Frontier's source was released, I wrote about &lt;a href=&quot;http://www.truerwords.net/4263&quot;&gt;my thoughts&lt;/a&gt; and feelings on the subject. I couldn't afford to get involved with it but I was happy it was done, my huge (emotional and professional) investments in Frontier, etc., etc., etc.&lt;/p&gt;&lt;p&gt;&amp;quot;Blah blah blah.&amp;quot; That's what it amounted to.&lt;/p&gt;&lt;p&gt;In late &lt;ins&gt;September&lt;/ins&gt; (edit: this said December. Duh.), I decided to join (and lurk on) &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/&quot;&gt;the developer mailing list&lt;/a&gt;. The list is quiet, and for awhile there wasn't much to catch my attention. That changed when they started discussing tests and optimizations. (I'm freaky-addicted to both of those things. I love writing test scripts, and I can lose myself in code optimizations for days at a time.) Andre wants to optimize Frontier's handling of large tables, and needed a test script to look at the current performance, so he'd have some hard numbers for comparing with whatever he does to the kernel. I wrote the test code, and a few revisions based on group feedback (especially his).&lt;/p&gt;&lt;p&gt;Don't worry, I wasn't just feeding my addiction. Any significant improvement to performance could and should have a direct affect on &lt;a href=&quot;http://conversant.macrobyte.net/&quot; title=&quot;Macrobyte's Groupware and Content Managent software&quot;&gt;Conversant&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;In November, &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/388&quot;&gt;Andre asked&lt;/a&gt; if anyone was interested in working on some of Frontier's string verbs. He described how many of them could be significantly &lt;span style=&quot;font-style: italic;&quot;&gt;optimized&lt;/span&gt;. Shoot, there's that word again. I resisted at first, but eventually the itch needed to be scratched, and I took a stab at it.&lt;/p&gt;&lt;p&gt;This was the first C coding I'd done in a couple years. Andre helped a lot with my first task, &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/527&quot;&gt;string.mid()&lt;/a&gt;. Next up was &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/526&quot;&gt;string.delete()&lt;/a&gt;, and I needed a little help from him and a little from Brian Andresen because I was confused over operator precedence. (Which comes first: pointer dereferencing or pointer addition? Ack! Solution: use parens.) Finally, I optimized &lt;a href=&quot;http://groups.yahoo.com/group/frontierkernel/message/522&quot;&gt;string.nthField()&lt;/a&gt;, string.nthWord(), and string.firstWord(), and by then I didn't need any help at all. (Note: links point to messages describing the before-and-after test results.)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A day of testing Conversant with these improvements (plus a switch to the newer PCRE verbs instead of the old regex DLL) revealed a very nice boost in Conversant's performance. Depending on a number of factors like server load, page size, and page complexity, I saw improvements of 10% to 50%! In other words, if rendering and serving a page took 1.0 seconds before the optimization, it would take somewhere between 0.5 and 0.9 seconds afterwards.&lt;/p&gt;&lt;p&gt;This was too good to pass up, so after some more stability tests I upgraded all of &lt;a href=&quot;http://macrobyte.net/&quot; title=&quot;Macrobyte Resources&quot; target=&quot;_top&quot;&gt;Macrobyte's&lt;/a&gt; production servers. Lots of people have commented on the speed boost, so I'm glad I did it.&lt;/p&gt;&lt;p&gt;A bug in Frontier's dialog boxes on the Mac (any dialog with a text field, like the Find/Replace window, or the window opened by dialog.ask()) finally annoyed me enough that I fixed it. Now, when a dialog is opened, the contents of the text field are pre-selected. (This was a very small bug.)&lt;/p&gt;&lt;p&gt;The upgrade on the servers introduced a strange bug that went unnoticed for days. Eventually, I realized that there was something wrong with the PCRE verbs: they were unable to insert just a single backslash into the result via the replacement pattern.&lt;/p&gt;&lt;p&gt;What, I'm speaking greek? Maybe this will help. This worked:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;local ( s = &amp;quot;ab&amp;quot; );regex.subst( &amp;quot;(a)(b)&amp;quot;, &amp;quot;\\\\1\\\\\\\\\\\\2&amp;quot;, @s );dialog.notify( s )&lt;/pre&gt;&lt;p&gt;The notification window would show &amp;quot;a\\b&amp;quot;. However, this didn't work:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;local ( s = &amp;quot;ab&amp;quot; );s = re.replace( re.compile( &amp;quot;(a)(b)&amp;quot;, &amp;quot;\\\\1\\\\\\\\\\\\2&amp;quot;, s );dialog.notify( s )&lt;/pre&gt;&lt;p&gt;That way, the dialog would show &amp;quot;a\\\\b&amp;quot; (two backslashes).&lt;/p&gt;&lt;p&gt;I surprised myself by finding and fixing this one in just a few hours, too. The function in the kernel that scans the replacement string is supposed to treat two backslashes as a single escaped (literal) backslash. Instead, if the backslash wasn't escaping a named or numbered pattern group reference (like \\1 or \\g&amp;lt;foo&amp;gt;), each backslash was treated as a literal. With that fixed, the weird bug &amp;quot;in Conversant&amp;quot; was gone, too.&lt;/p&gt;&lt;p&gt;Anyway, I've decided that contributing to the kernel in ways that will help Conversant (or any of my clients) is a very good use of my time. (Just need to remember to keep it balanced! It would be easy to &amp;quot;play&amp;quot; with the kernel all day...)&lt;/p&gt;</description>	</item><item>	<title>How Does TLS Affect the Open Source Frontier?</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4320/trackback</trackback:ping>	<link>http://www.truerwords.net/4320</link>	<pubDate>Wed, 20 Oct 2004 07:38:49 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4320</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4319#msg4320</comments>	<category>Technology</category>	<category>Frontier</category>	<category>Programming</category>	<description>&lt;p&gt;In response to my story about the transfer of TLS from Macrobyte to UserLand, &lt;a href=&quot;http://archipelago.phrasewise.com/2004/10/20#When:8:26:56AM&quot;&gt;Daniel Berlinger asks&lt;/a&gt;, &lt;q cite=&quot;http://archipelago.phrasewise.com/2004/10/20#When:8:26:56AM&quot;&gt;Is there any impact on the open source release of Frontier?&lt;/q&gt;&lt;/p&gt;&lt;p&gt;My answer is, &amp;quot;probably not, but I don't really know.&amp;quot;&lt;/p&gt;&lt;p&gt;UserLand didn't release Frontier as open source, Dave Winer did. My understanding (which may not be accurate) is that UserLand simply has a special license to sell Frontier as Manila. If they chose to contribute TLS to the open source project I'm sure they'd get a lot of thanks and appreciation, but by NOT doing that they have an advantage over the open source version to offer their paying clients.&lt;/p&gt;&lt;p&gt;Appreciation doesn't pay &lt;a href=&quot;http://jake.userland.com/&quot;&gt;Jake's&lt;/a&gt; or &lt;a href=&quot;http://www.tomalak.org/&quot;&gt;Lawrence's&lt;/a&gt; salary, and UserLand is a new company struggling through it's first year of &quot;startup.&quot;&lt;/p&gt;</description>	</item><item>	<title>TLS is Now UserLand's</title>	<author>seth@macrobyte.net</author>	<dc:creator>Seth Dillingham</dc:creator>	<trackback:ping>http://www.truerwords.net/4319/trackback</trackback:ping>	<link>http://www.truerwords.net/4319</link>	<pubDate>Tue, 19 Oct 2004 19:08:18 GMT</pubDate>	<guid isPermaLink="true">http://www.truerwords.net/4319</guid>	<comments>http://www.truerwords.net/fullThread$msgNum=4319#msg4319</comments>	<category>Customers</category>	<category>Macrobyte</category>	<category>Business</category>	<category>Technology</category>	<category>Brian Andresen</category>	<category>Frontier</category>	<category>Programming</category>	<category>Radio</category>	<description>&lt;p&gt;Way back in the early history of the world (late 2002? early 2003?), one of &lt;a href=&quot;http://macrobyte.net/&quot;&gt;Macrobyte's&lt;/a&gt; clients needed to serve secure web pages from &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt;. We tried -- in vain -- to make it work correctly with IIS, but it just wasn't stable enough.&lt;/p&gt;&lt;p&gt;So, we implemented a tool known generally as TLS, but which was officially called &quot;Macrobyte Resources TLS,&quot; for &lt;a href=&quot;http://frontierkernel.org/&quot; title=&quot;Frontier scripting system. Open source.&quot;&gt;Frontier&lt;/a&gt; and &lt;a href=&quot;http://radio.userland.com/&quot; title=&quot;Radio Userland&quot;&gt;Radio&lt;/a&gt;. &lt;i&gt;By &quot;we,&quot; in this case, I mean Brian Andresen. He did all the hard work. I acted like a client, just testing, providing feedback, and asking questions.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;TLS itself wasn't our creation. The IETF did that, it stands for &lt;a href=&quot;http://www.ietf.org/rfc/rfc2246.txt&quot;&gt;Transport Layer Security&lt;/a&gt;. We 'simply' implemented a solution for Radio and Frontier, so they could act as TLS clients and servers.&lt;/p&gt;&lt;p&gt;In the late Spring of this year, &lt;a href=&quot;http://www.userland.com/stories/storyReader$214&quot;&gt;UserLand Software purchased TLS&lt;/a&gt; from Macrobyte. Today they finally announced it, and opened up &lt;a href=&quot;http://tls.userland.com/&quot;&gt;their TLS site&lt;/a&gt; to the world.&lt;/p&gt;&lt;p&gt;OK, with all that background out of the way... how's this for a lame-o quote?&lt;/p&gt;&lt;blockquote style=&quot;margin-left: 1.0em; border-left: 1px solid blue; padding-left: 1.0em;&quot;&gt;	&quot;I'm quite pleased that UserLand has taken over TLS,&quot; said Seth	Dillingham, President of Macrobyte Resources. &quot;This shows a	commitment to enhancing the tools available to their developer	community, and a genuine interest in offering and promoting secure	web sites and services. With TLS now being managed, distributed,	and updated by UserLand, it's sure to become a key component in	the UserTalk developer's toolbox.&quot;&lt;/blockquote&gt;&lt;p&gt;Whoo-ee, the things we'll say for the sake of business! It's all true, and I really did write that myself, but... who talks like that!? Makes me sound like a marketing person trying to talk like a geek. (Instead of the other way around?)&lt;p&gt;</description>	</item>	</channel></rss>