Tao of the MachineProgramming, Python, my projects, card games, books, music, Zoids, bettas, manga, cool stuff, and whatever comes to mind. |
Front page Last 10 archives 2004-02-14 2004-02-21 2004-02-28 2004-03-06 2004-03-13 2004-03-20 2004-03-27 2004-04-03 2004-04-10 2004-06-05 Category archives bettas books CCGs Charm esoterica Firedrop games general ideas internet Kaa linkstuffs Lisp manga music Mygale Nederland nostalgia programming Python SGI switch Wax Zoids :: Search All posts ...by category ...by date ![]() :: About me :: Oasis Digital :: Resume :: GeoURL :: RSS :: Atom ![]() ![]() |
ItemListA forthcoming Firedrop content type will be ItemList. This can be used to make pages that contain, well, a list of items, like a FAQ. I intend to use it for a section with notes on various topics. A new Firedrop release, containing this new type, will hopefully be available soon. ...and integrating everythingThis is a different issue altogether (see previous post), but: would it be a good idea to integrate Sextile and the macro system? Sextile by itself is kind of incomplete... for example, it has no way to express URLs. Nor does it have special syntax for things like acronyms, paragraphs in certain styles, etc. For this, we use macros. The macro system does not really depend on Sextile... the macros (should) work just as well in other formats, including Textile, pure HTML, and any other format (as long as the macro syntax doesn't collide with the format's). Maybe the macro system should be a separate package (call it FooMacros for now, for lack of a better title). Then:
Hm. Doesn't seem like a great solution, but it's doable. Improving Sextile and Firedrop macrosWarning: incoherent rambling ahead... Firedrop is becoming more and more user-friendly. It grew a few simple but necessary features, like dialog boxes for confirmation, creating a "site", editing a post's categories, etc. It still lacks solid documentation, but that is getting better as well. Now that that is out of the way, I have to take a critical look at Firedrop's macro system, and Sextile. Started out as a lightweight, minimalistic alternative (some would say a "parody" :-) to Textile, Sextile is useful and relatively clean, but it has some serious limitations. For example, this MT-Textile page is full of things Sextile cannot do. That is where macros come in. Most of the items on the MT-Textile page mentioned can be done by adding the appropriate macro. #1 and #2, for example. #3 already exists. Most of the others can be implemented with macros as well. Alas, macros have their limitations too. One of the most glaring problems is that you cannot use a semicolon other than to limit arguments. You see, a macro like Quoting it might be a solution; writing
so in order to make this work, Sextile must ignore the Another problem is that macros cannot be nested. This is mostly due to the simplistic "parser", which just looks for the next Sometimes it's useful to span a whole block of text with a macro. For example, for syntax highlighting, or to create a table structure. I don't really think that nested macros are adequate for this. On the other hand, I don't want to make Sextile too convoluted, since that defies its purpose. If you have to learn lots of special syntax, then you might as well write straight HTML or XML. Eventually, I want the Firedrop & Sextile combo to be good enough to write documentation in it, or even a book. To do so, it must be capable of producing more sophisticated output than it does now. HTML tables, paragraphs using certain styles, etc. I wonder if I should try to "fix" macros and the Sextile format for this purpose, or look at something else entirely. For example, the Documentation content type could accept DocBook XML; it could generate a valid XML document simply by glueing the entries together, and generate HTML pages for online viewing. It's not really easier to type, though. Originally, when Firedrop was still on the drawing board, it was going to have its own flavor of HTML tags, called FHTML. With it, you could write things like Some <f-upper>Python</f-upper> code here: <f-colorize> x = f(42) + 1 </f-colorize> Eventually, I rejected the idea, because a markup language isn't really supposed to replace or transform text, and because there would be too many levels of text manipulation (several types of macros, FHTML, text formats...). However, custom tags would certainly be useful. Maybe macros can be expanded to do something similar? E.g. Some {+upper}Python{-upper} code here: {+colorize;python} x = f(42) + 1 {-colorize} or: {+table;2;4} {+row;1;1}Text in cell (1,1){-row} {+row;1;2}Text in cell (1,2){-row} {-table} ( Heavy use of this doesn't make text any prettier, but it would be very powerful, and has lots of interesting possibilities. Firedrop supports Atom 0.3...so this weblog now has an Atom feed as well. See the sidebar. It actually validates... for now. [updated Firedrop build notes] Updates...Progress on the card game can be found here. I worked out mechanisms for playing creatures, and battle. (Much like Magi-Nation, aside, but not exactly the same.) In other news, I'm currently working on making Firedrop more user-friendly. If nothing else, there should be an easy and straightforward way to create a site/weblog. Until recently, this wasn't a problem because I was the only person using it. :-) I haven't had really interesting content lately, from a Pythonic point of view. This is mostly because work has been picking up (note: this is an anti-complaint Groovy 1.0-beta-3 is out, by the way, I'm going to test it one of these days. New Firedrop releaseIn the meantime, I am still working on Firedrop. See the release notes. This is an experimental version that uses a new StatusDialog control, which may be wrapped into Wax sooner or later. Firedrop is still not very newbie-friendly, that is one of the most important things I need to work on next. Even a simple pseudo-wizard to generate default build.ini/build.py files, and templates, would be a major improvement. New Firedrop macro: mkcharTest test... Die Ärzte, Curaçao, hasta mañana, meeëter, Português, København, Linköping, ½ + ¼ = ¾, Århus, © 2003, à la mode; fünfzehn, fleißig, ... Special characters in HTML are nothing special. :-) However, I added a module to Firedrop that converts simple text to these HTML characters. For example, The Things and stuff...I uploaded some thingies to the download area... this includes development versions of Charm and Firedrop. These programs have been usable for months, but the problem was (and still is) that there wasn't sufficient documentation. Maybe I can get around to writing some, one of these days. I also uploaded the latest version of Wax, 0.1.32. Like I said before, there's also a wiki now, currently with a bare minimum of information.
The nice thing is that you can "isolate" certain behavior (methods and attributes) in an object, and then grant any other object access to this behavior by making the original object its parent. Objects don't have introspection, cloning facilities, etc, but you can add them at will whenever necessary. This allows for an entirely different design than traditional classes. Observations
Posted by Hans
Nowak on 2003-08-05 12:49:36
{link}
Categories: general, programming, Python, Firedrop Observations1. This seems like an interesting book. Comes with cards (I hope)... 2. Textile is causing more problems than it's worth. I am considering writing my own format, probably very minimal(istic), and then use macros for additional power. Reinventing one wheel, or two, three, what's the difference? 3. Firedrop2: I fixed the problem with macros that showed up unexpanded in RSS. A bleeding-edge version should be available soon. 4. Googling for 'python nederland' yields a bunch of crap. There's an opportunity here for Dutch Pythonistas... Update (2003.07.10): Hum, now *I* am the number one hit for 'python nederland'. That wasn't so difficult. I wonder if it's possible/viable/useful to make a page with Dutch Python resources? Deja vuFiredrop2 now supports macros. One of these days there will also be a development version available for download, but I want to write some (minimal) documentation first. The macro system is not all-powerful (there’s embedded code for that), but nifty and easy to use. More about this later. BugsOops, I just discovered a bug in how Firedrop2 handles permalinks. Let’s see if this fixes it… LinksAfter some more tinkering with the Firedrop2 code, it is now ready for some more web publishing. I am putting (parts of) my link collection online, mostly so I can reach important URLs from anywhere, rather than having to search through bookmarks scattered over 5 browsers. But others might find some of the links interesting as well. This is very much a work in progress. The collection will grow over time. Update. My resume is online as well. Test test...Testing 1, 2... let's see if this works in Firedrop2...Progress...Firedrop2 is coming along nicely as well. Maybe tomorrow I will be blogging in it, rather than in Kaa. Firedrop “1” and “2” have very different philosophies. Or rather, the first version didn’t really have a clear goal; it promised lots of power and flexibility, yet also tried to be very user-friendly. It’s not easy to blend the two. Firedrop2 is different. It is minimalistic, but not in a “let’s provide only a few core functions” kind of way. Rather, it sets up a basic frame for weblogging (and HTML publishing in general), and encourages people (programmers) to customize things by writing their own code. So, it’s not for end users anymore. It’s for programmers who like to customize their sites but do not want to reinvent the (whole) wheel. Firedrop2 provides a simple editor, and library functions to be used for (e.g.) archiving, generating HTML, embedded Python, macros (maybe), uploading, RSS, etc. It tries to make as few presumptions as possible. Where Firedrop1 used a number of predefined attributes (active, visible, categories, text format, etc), Firedrop2 only uses I want to create a version that works (to a certain extent), start using it, and then grow it to become more sophisticated. Where Firedrop took a long time to do anything useful, Firedrop2 may replace Kaa in a few days after its first prototype. (keeps fingers crossed) Put it on Wax... *Wax is coming along nicely. I whipped up a rudimentary GUI for Firedrop2 in 5 minutes. Here’s what the code looks like: FONT_COURIER = Font(“Courier New”, 10) class MainFrame(Frame): app = Application(MainFrame) The Wax controls are far from complete yet (for example, they don’t have any events at the moment), but they are already usable. And easy to use! Maybe I’m on to something here. It sure feels easy after spending some hours in .NET hell. ;-) Firedrop2 ideasFiredrop2 will be much more open than the first version (which is unreleased, in case you haven’t been following this). It will not attempt to control everything or to stop “users” from doing stupid or smart things. Simplicity counts, so here’s the current plan:
Let’s see if I can get this running soon. Shouldn’t take more than a day or so… I’ll probably need to do a little more on Wax though, before it can be used. Watch this space… *scratch*And now for an update on my projects… Firedrop is kind of stalled. Like a beached whale, it won’t move in any way, and even if it was in the water, it would still be a big ass boondoggle. (OK, my talent for metaphor isn’t always up to snuff…) Something went wrong along the way. It started out simple, but quickly grew in ways I didn’t really want it to. Maybe I should rethink my goals, and restart from scratch. What if we keep it extremely simple? Sort of like Blosxom… posts are just files. I can still do the attribute thing. I can also provide a primitive GUI, because we need some convenience when editing… I won’t go as far as requiring people to use a text editor (although they are of course free to do so if they want to). There would still be embedded code. Simple Textile support (like Kaa 0.9 has it), as well. Kaa is far, far from perfect, yet there are some things that it does better than Firedrop. I especially like how you can tell it that a post uses Textile, for example… just use a single ’#’ on the first line. In Firedrop, there are attributes that can be used for this, in several places. Not as easy. The new Firedrop should Keep It Simple as well. Since this will be a tool for Python programmers, maybe a simple API would be best. User/programmer wants something more than the system offers out of the box? It should be easy to write your own code that manipulates the entries. Hmm. We’ll see. Even now I have the feeling that the new ideas are still not simple enough. Enter minimalist mode… PyTextileMark Pilgrim: PyTextile. (Also see here.) I have been looking for a way to let people (optionally) write nodes in something other than HTML; this may just be what I need.How could it be otherwise?People have been asking about the status of Firedrop. When will it be ready? One answer can be found in the Tao of Programming:A manager asked a programmer how long it would take him to finish the program on which he was working. "It will be finished tomorrow," the programmer promptly replied.Truth is, at this point I don't know when it will be ready for us. I've been making some important progress lately... the Weblog part is almost usable, and I'm considering to switch to Firedrop, rather than using Kaa for my blog. (Converting your blog from Kaa to Firedrop isn't too painful... there's a script that does most of the work. When it's time, I will put a section on my page explaining how it works. You will have to edit your templates and embedded code in entries by hand, though.) The Weblog part (or "content type", to add more market speak to the mix) currently lacks category archives (and user-friendly category editors for that matter, but that is not restricted to Weblog) and RSS. The (node) editor is usable, but will benefit from some editor helpers, like Kaa has the 'bold', 'italic' etc. buttons, and the 'Edit' menu option. Uploading works but isn't "smart" yet. And, I'm nowhere near releasing a Mac version using Swing... currently it's all wxPython. Add user-friendly dialogs, better error checking, better database performance, new content types (FAQ, LinkCollection, StartPage, probably others), a decent macro/regex system, FHTML, ... and you'll understand why it might take a while before Firedrop is ready for prime time. In spite of that, I might release a development version, so people can see what's it all about, and give (hopefully constructive) criticism. Just don't start creating a site with it yet. (This time I mean it! :-) -- Generated by Firedrop2. |