I've got three main projects and lots of little utilities that tie them together. They are River2, Radio2 and World Outline. River2 and Radio2 are at 1.0 level. Totally functional, polished UIs, but they're still being worked on. There will be new major versions. World Outline is rock and roll. But it's coming out soooo nice. I love this product like I loved outliners in the 80s and blogging tools in the 90s and 00s. As you might imagine, outlines play a big role in the World Outline. And when you can make an outline behave and look like an outline, well that's strictly good. In December I finally invested in making outline objects work just like outlines. That meant rolling up my sleeves and making no apologies for my Javascript coding. And it came out nice. Then I rested on that front for a while, let it burn in and dug some new holes over the holidays. Now on my todo list is to roll up the outline rendering tool so it's used to render other forms of outlines. And in my world, scripts are outlines. So what the hell, let's make it so that script code renders as an outline. There are good reasons to do this. For one it makes the code more readable. And I have lots of code. And I want to send pointers to code to Frontier newbies who are coming up now (yay!) and I didn't want to send them pointers to flat text. That would seem to miss the point. Yes? Yes! So here's an example of what a code object looks like now. As you might imagine, to expand something click the blue wedge. Text in italics are comments. One of the cool things about programming in an outliner is that the comments collapse up to a single line. So there's no penalty for explaining what's going on. As a result, some of the scripts in our world are really blogs! Here's an example, tcp.httpClient. It started out in 1998 as a utility to replace code that was being replicated all over the place. Over time we realized that this was a pretty central piece of code, and invested in it. And from time to time it needed a new feature or a new optional parameter. Naturally we documented the changes in comments at the top of the script. And because we love CSS you can control the look of code objects by editing the template. Here's the default template for code objects in the world outline. But I imagine that these templates will be traded like themes in Manila or templates in Tumblr. I love investing in template languages because it's where geeks and designers meet. Power meets power. (The template is an outline, so you should open it in an outliner that understands OPML.) And all this has Bootstrap baked in, and it surfaces at the top level. When this is done, I think it'll be the easiest and most powerful Bootstrap prototyping and design environment in addition to all the other stuff it does. Just wanted to mark this milestone here.... |