Month: 2002/04
-
2002 April 30
-
Wil Wheaton vs Soul Coughing - FIGHT!
I &heart; the Internet and weblogs. What happens when one of my favorite bands' main man, Mike Doughty, and one of my favorite ex-Star-Trek-survived-the-80's actors, Wil Wheaton, collide in blogspace and discussion groups? Well, first no one believe's it's really Wil Wheaton posting to the DG. But then, when everyone realizes that yes, in fact, it's him, Mike himself posts the moral of the story:so the flip side of the don't believe what people tell you on the internet lesson is--you know, people on the internet might actually be who they say they are. how bout them apples? Not to have a Jerry Springer moment here, but: Yes, how about them apples? It's the new internet, where some people really are who they say they are, even if possessed of some vague degree of celebrity. And not only that, but your ears turn red and ring when someone's talking about you. Now, maybe if I say Wil Wheaton's name three times in a Beetlejuician manner, he'll show up over here too. :) [ ... 172 words ... ]
-
2002 April 29
-
RDF, whitelist spam filtering, and personal metadata
Okay, I'm done thinking and writing about REST for the time being. I think I understand it, but it doesn't seem to light any fires for me yet. I'll just stuff it away into my utility belt and keep it in mind in case the need for a REST-headed screwdriver comes up, or until I discover that my RPC usage causes cancer. What's much more exciting to me at the moment is whitelist-based spam filtering, and even more so is using RDF to share whitelists. I really need to look more into this FOAF thing over at rdfweb.org. One project I've been mulling over is how to replace something like my user info page at LiveJournal with something web-wide and decentrallized. RDF seems like a lead on that for a shared data format for personal metadata. I want the friends and friends-of, and especially the interest links that let you pivot on interest phrases to view a list of others who list the same interest phrase. [ ... 228 words ... ]
-
REST, Part the Third.
Here I am, a Busy Developer trying to work his way up to being a real Computer Scientist. In doing this, I subject myself to things like RPC vs REST. I see apparently intelligent people vehemently disagreeing about something, I figure there's something to it. This may be naive. I hope that by hurting my brain with this noise, I might take some of the hunch out of my back that gets me just one more caveman level up the evolutionary chart. I hope you all don't mind hearing my grunts and unks. Dave linked to me with an Oy. Was that from my quoting of a quoter quoting? Or is that an Oy on this REST thing getting all outta hand? :) Well, here it goes again: I found Gordon Weakleim linking to me from my referrers (yay for referrers!), where quotes someone on a discussion forum as having said "REST, I'm afraid, is unlikely to get anywhere until it is presented in a more utilitarian fashion. It feels much too much like a philosophy or religion or something." And I agree with this, too. I got introduced to XML-RPC via simple toolkits and real problems solved with satisfaction, and I'm learning SOAP slowly the same way. Gordon also captures some of my other sentiments. I think I get REST now. Maybe. Between my last post on REST and finally finding and reading Paul Prescod's "REST and the Real World", I feel somewhat illuminated. I also feel very, very behind. This has all probably been covered ad nauseum on mailing lists I haven't read yet, but this is what I thought on Paul's article:Using someone else's [RESTful] web service requires you to understand their data structures (XML vocabulary and links between documents). . . . RPC APIs merely hide the problem behind an extra layer of non-standardization. First you must figure out the method names available. Then you must still figure out the data structures that may be used as parameters. And then behind those data structures is the implicit data model of the web service. Hmm. Yes, in an RPC API I have to supply my customer with my method definitions-- including their names, parameters, and return values. This seems directly comparable to supplying my customer with all the URIs exposed by my app's resources, as well as the data structures used by them. How are these cases so very different?There is no free lunch. The biggest problem most will have with REST is that it requires you to rethink your problem in terms of manipulations of addressable resources instead of method calls to a component. I don't want to rethink my problem, at least not without a clear payback. When I first learned to rethink my problems in object oriented programming, I got immense payback. I haven't seen the clear payback case for REST yet. So far, it looks like an interesting abstraction with a lot of vagueries, name calling, and intimations of harm and danger. Of course you may actually implement it on the server side however you want. But the API you communicate to your clients should be in terms of HTTP manipulations on XML documents addressed by URIs, not in terms of method calls with parameters. My customer doesn't want to mess with this, and doesn't want to learn about it. Your customers may well prefer a component-based interface to a REST interface. Yup, they do. My chances of altering their behavior is slim to none-- at least not without a clear case of payback to present. Programmers are more used to APIs and APIs are better integrated into existing programming languages. For client-side programmers, REST is somewhat of a departure although for server-side programmers it is not much different than what they have been doing for the last several years, building web sites. The server-side programmers I work with have been building CGIs and various server-side things which treat URI's as mere gateways onto their applications. REST is pretty different than what they've been doing for the last several years. REST is about imposing a programming discipline of many URIs and few methods. RPC allows you to structure your application however it feels best to you. Let it all hang out! If a particular problem can be solved with RPC, and future extensibility and security are not going to be issues for you, you should certainly use the looser approach. I still don't see the payoff of few methods with many resources versus many methods with few resources. Either way, should I change my application in the future I'll need to supply my customer with new data descriptions, or with new method descriptions. How does REST make me magically extensible? Am I not seeing something? The security angle I can sort of see, given the already built-in ability of web servers and firewalls to control HTTP methods and URI accesses. But, most times I want my application to manage its security and access control, not the web server or firewall. Maybe this is a flaw in my application. Anyway, the simplicity of REST feels like a possible elegance to me, which I like. Elegance feels warm and fuzzy, not itchy. XML-RPC is obviously a bit of a workable hack. Being able to RESTfully reduce my app down to database-like access via a web of URI resources seems neat. But, the whole REST thing feels like an inside-out turn of many things. This is not useful to me unless I can find some abstraction or toolkit to help me wire my apps up to things in the REST way. XML-RPC was quick for me to get hooked on, since it was a mostly drop-in solution with me writing only a few wrapper methods. Now that I understand REST better, I see that I could possibly do most of what I do with SOAP and XML-RPC in a RESTful manner with a bit of brain bending. It reminds me of threaded versus async / event driven programming. But I don't know why I should bother: I'm still looking for the payback of REST and I'm still looking for the danger inherent in the RPC model. [ ... 1046 words ... ]
-
2002 April 26
-
REST: What's it good for? Part Deux
Chris Heschong writes: Ken ?MacLeod notes that, in regards to REST, "the only thing holding us back is a marshalling standard." I'd be a lot happier with REST implementations if this were the case. (Whew, I think I need a convention for quoting quoters. Maybe a new language. I seem to remember hearing on the Todd Mundt Show that the Turkish language has a facility for specifying whether something you're saying originates with you, or whether you heard it from someone else...) Anyway, since Ken ?MacLeod had taken the time to respond in some detail to a post I made asking about REST not too long ago, I thought I should come back around to it. So I think my first confusion was with marshalling. This is why I like XML-RPC: I don't worry about much. As a client, I give it a URL and a method name, and then throw a pile of parameters for the method at it. As a server-side method, the server gives me parameters when it calls me, and I throw back a return value. The server takes care of turning the XML into my arguments, and my return value to XML. In all the languages I've worked with it in (ie. Perl, Python, ?UserTalk, and AppleScript), this works conveniently well. I never actually pay much attention to the XML in XML-RPC. So, I was very confused in reading a few things about REST and not seeing much mention of this, other than along the lines of "Oh, well, you could go ahead and use XML-RPC libraries to build messages if you wanted to." Which begged the question for me: Why not just go the whole hog and use XML-RPC? (Or SOAP, for that matter, but that's another holy war I'm avoiding for the present context.) Okay, so REST isn't about marshalling parameters. Then what is it about? Well, I think a bit more reading and Ken's response to me have helped illuminate me a bit. The REST point seems to me to be that all operations being attempted by Web Services can be distilled into a few actions: retrieve, create, update, and delete. REST says that these fundamentals are already defined as GET, POST, PUT, and DELETE, respectively. I think. Is this right? So, I apply these verbs to URI nouns. To concretize the concept: I recently wrote & exposed an XML-RPC API to a scorekeeping component on one of our promotions. Some of the methods of this API were along the lines of int points.get_points(string email), points.award_points(string email, int points), and points.create_points_account(string email). To make myself a new account I'd call points.create_points_account("deus_x@pobox.com") and then points.award_points("deus_x@pobox.com", 100) to drop myself some points in the scoreboard. Then, I would do points.get_points("deus_x@pobox.com") to check my score. I'm afraid this example is too simple. Jon Udell wrote that he wanted to see the "stock quote example" retired for being too simplistic to stress the technology in mental experiments. Hmm. Oh well, let's see where it goes. So, if I were to RESTify the above example, would the sequence of things be like a POST, PUT, and GET, all to a URL that looks something like: http://myhost/promotion/players/deus_x@pobox.com/points Whereas POST does the account creation, PUT updates the points, and GET of course grabs the points total? Okay, maybe POST needs to post to .../players/deus_x@pobox.com with a request body specifying "points", to create the new URI? The request body of the PUT should contain a points value -- positive for award, negative for debit? And if the thing needed more complex data, I could use something like XML-RPC to encode a data structure as arguments, or as Chris Heschong wrote, use WDDX? Do I get it? Hmm... okay, have to run to a meeting, but I wanted to post this and see if anyone could give me feedback on my understanding. I think I see how, if all resources are manipulatable in this manner, one could envision a more abstracted and uniform interface on web resources than a pile of published web services APIs. But... can it really be that abstracted? Hmm. [ ... 935 words ... ]
-
Hot patching, Radio UserLand, and not Microsoft
When I talk about Radio and my love/hate with it, this is one of the things I absolutely positively adore, fawn over, and plan to mimic in as many of my projects as I can where I can. Back when the Mozilla source code was first released, and I happened to be at a Q&A with some Netscape guys, this was the [#1](/tag/1) feature I pestered them to spend time looking into. John Robb of UserLand points it out, in relation to .NET:[Alchin said, "]The hot patching technology will not find its way into the upcoming .Net Server family, but we have made progress on reducing reboots.["] Radio already does this. Yes, yes it does, and this is dead sexy. I love that the system is put together in such a way that this is possible. My monitoring of the Radio.root Updates RSS feed reminds me daily of where my $40/year is going. Now, can we have Instant Outlines do this? :) Heehee. [ ... 295 words ... ]
-
2002 April 25
-
Thanks, kuro5hin. Decaf is bad. Caffeine is good.
I just had to link to this: A coder's guide to coffee @ kuro5hin I think I'm going to buy myself a french press tonight. Oh, and just for fun, visit The Caffeine Archive. [ ... 73 words ... ]
-
I wish Radio sent me blog URLs as referers on news aggregator hits
One more thing, directed at the Radio UserLand crew: With my recent discovery of and mania for referers, I've seen that Radio sends me people claiming to have come from http://radio.outliners.com/instantOutliner and http://frontier.userland.com/xmlAggregator, for I/O and news aggregation respectively. Here's a wishlist idea: Make Radio send the URL to the user's blog instead of URLs to UserLand documents. While the current referer URLs tell me why I'm getting the hit, I'd like to have a better handle on from whom the hit is coming. [ ... 85 words ... ]
-
Today's referers, PHP, and you! (Okay, maybe not you.)
Playing more with PHP, writing a replacement for ShowReferers. You can view the source of my first attempt ever at a PHP page, or view the results. I just replaced the front page sidebar referers box with an include to this page. Soon, I'll replace the entire front page template with one written in PHP, and I might add the sidebar stuff to all my blog entries. This is fun. :) [ ... 72 words ... ]
-
Playing with ZOE, some assembly required
Hmm. Okay, so Zoe looks promising, but.. umm.. I can't figure it out. I added an IMAP account. Stuff seems to happen, which ends up in a lot of ?FolderNotFoundException and ?OutOfMemoryError exceptions to my terminal. No mail appears on the front page. I tried changing my SMTP server to use Zoe, and then was going to foward email to import it as the FAQ suggests, but umm.. to what address do I forward it? Urk. This makes me feel dumb. [ ... 82 words ... ]
-
Tearing down fences around DecafbadWiki
Oh, and I bit the bullet and turned off the authentication requirement on the wiki. I've decided that ultimately I agree that LoginsAreEvil. I didn't really want to put up fences, or raise the laziness threshold. I mostly wanted to identify people, but I was mistaken. Now, I'd rather AvoidIllusion. There still are a few fences, however. My reasoning is that my use of this wiki slides into the realm of cheap content management, and I don't prefer public input on certain things. A few pages are access controlled, such as the wiki's front page and my home page. For this purpose, there's an alternate password-protected set of wiki commands. The non-authenticated are under /twiki/bin whereas the authenticated set are at /twiki/sbin. Just as easy as putting an 's' in the URL. Access to the authenticated commands doesn't necessarily mean you get to edit everything though. :) That's access control for you. Eventually, maybe I'll drop the access controls too. I was also thinking of moving out of TWiki for another wiki implementation like MoinMoin, too. Still tinkering. [ ... 1396 words ... ]
-
Can ZOE make my mail intertwingly?
Via Prof Avery, I just found ZOE.The goal here is to do for email (starting with your personal mailbox) what Google did for the web... The Google principle: It doesn't matter where information is because I can get to it with a keystroke. So what is Zoe? Think about it as a sort of librarian, tirelessly, continuously, processing, slicing, indexing, organizing, your messages. The end result is this intertwingled web of information. Messages put in context. Your very own knowledge base accessible at your fingertip. No more "attending to" your messages. The messages organization is done automatically for you so as to not have the need to "manage" your email. Because once information is available at a keystroke, it doesn't matter in which folder you happened to file it two years ago. There is no folder. The information is always there. Accessible when you need it. In context. Rock on! I'm either terribly unoriginal or my mind is being read or there's just a common Alpha Geek wavelength I'm tuning into. By the description, this is precisely what I wanted to do with a PersonalMailServer. Getting tired of making folders, filtering rules, and MailToRSS needs a bit more work and tweaking to be really useful. From the FAQ:Q: On which platform does ZO? run? A: ZO? has been known to run on the following "platforms": ... MacOSX 10.1.4, jre 1.3.1, Mozilla 0.9.9 ... Rock on.Q: How much does ZO? cost? A: ZO? is free of charge for personal usage. Keep in mind, that you are getting what you are paying for... ;-) Rock on.Q: Is ZO? open source? A: No. Awwww. That's no fun! I want to play! I don't see it within 5 minutes of installation, but I think this thing really really needs IMAP. IMAP would rock for both message import and external mail client access. But, from the author's terse response to this question, I'm imagining there are many who've asked it and he's tired of answering why he's not being trendy :) I guess I'll play and see what happens. [ ... 649 words ... ]
-
2002 April 24
-
On the destructive/constructive nature of news aggregation
Playing with a range of news aggregators once more, since Radio UserLand is making me itchy again. Pretty much the only ones I really like are Radio, AmphetaDesk, and sometimes Peerkat. For the last week or so I've been mostly alternating between Radio and AmphetaDesk. The difference in aggregation styles is interesting: While Radio slices and dices and aggregates feeds by items and serves them up to me in an interwoven chronological order, AmphetaDesk serves my feeds up to me whole and in order of feed modification. I'm not sure which I like more now. I like Radio's style, because I see what's new and only what's new. Usually. But, I like AmphetaDesk's style because I see everything, and have realized that I miss things with the rush of new items from all my feeds. For instance, if someone posts something once per day, I'll likely miss it with Radio unless I check every hour. But, with AmphetaDesk, I get to see what's new with every person or source whenever I check, and I only miss items if that feed has scrolled them off. Shelley Powers of burningbird.net wrote a bit about the context destroying nature that RSS and aggregators have on weblogs. I agree with her somewhat, in that pulling the words out of the surrounding context of the blog and its presentation and community has an altering effect, I wouldn't say that it destroys the weblog. For me, when I see something on my news aggregator, it's as if I'm overhearing it from another room. I don't get the whole context or see who else is listening or responding, but I hear the gist of something. And, when subscribed to 100+ RSS feeds, it's like I'm floating in this Nth dimensional space where I can overhear voices from hundreds of rooms without being overwhelmed. When something triggers some of my mental filters and watchwords, I click the link and delve deeper. There's no way, without an aggregator, that I'd be able to track 100+ people and news sources in a day. But, because I can, I've been able to learn and discover things and hear voices I never would have before. But, I think the way AmphetaDesk merges these sources might be a nicer alternative. By not chopping up the feeds, some intra-item context is maintained at least, so I can see developing trains of thought. Okay, must go back to work now. [ ... 1182 words ... ]
-
Yes, I actually do get out and have a life sometimes :)
Is it just me, or did my last entry make me sound like an obsessive, compulsive nerd? :) Funny, I don't think I am. If I am, it's fun anyway. And not all that expensive. And I actually do get out and do things and have a bit of a social life. Really, I do. Sometimes. Oh, and I just noticed my wiki was broken for editing. Gah, that was unfun. Fixed now. [ ... 74 words ... ]
-
On home servers and extreme personal PCs
John Robb writes about the next generation of PCs and such:Here is how I think the battle will evolve in the next five to ten years:... 1) A home server. This PC is always on and lives in a closet. It serves multiple users that connect to it using mobile wireless screens and keyboards. ... 2) An extremely mobile PC ala OQO. This PC will be attached to a single individual. ... This sums up much of what I've been anticipating and have found myself building. In the case of the home server, I have two of them actually. One is a headless Linux box behind a cable modem that has accumulated all sorts of autonomous functions: it gathers my mail from various accounts into an IMAP server that I access from everywhere; before I was using Radio UserLand, it used to host all of my news aggregation hacks; it controls and monitors all the X10 devices in my apartment (though these are dwindling away); and until my radio reception got bad when I moved, it used to record radio shows for me using a D-Link USB FM radio. I actually have a Mac at work that does that does that for me, and dumps the sound files to my server at home periodically. The other "home server" is a PC running Win2K with an ATI Radeon All-in-Wonder card. This machine is my PVR, recording to VCD the few TV shows I actually want to keep up with. That ends up being about 12 VCDs a week, counting all the episodes of Buffy that I capture. (Guilty pleasures.) I keep dumping more and more hard drive space into this machine, and use it as a general apartment-wide file server, as well as a dumping ground for stuff from remote when I'm out yet have net access. Occasionally I play Windows-based cames on the PC, but it mostly just sits there and does things. I would like to combine these boxes into one big Linux box connected wirelessly to my cable modem, sitting in my closet in my apartment, or if I had a house, across the basement from the water heater. I want this home server to be in the same class of appliances as the furnace, washing machine, and water heater. The only thing keeping me from dumping the Win2K PC is the PVR functionality I haven't bothered to try under Linux yet. In the case of my extremely mobile PC... Well, I'm still in search of this, and the OQO looks very very attractive. Lately, my mobile PC has been my iBook. In most of my usual haunts (home, work, coffee shop), my iBook is present and tends to have net access. I have scripts which auto launch some SSH tunnels back to my Linux server and mount shares on my Win2K box when I switch networks. It usually works. I have all my current developing projects on the thing, and I do news aggregation with Radio UserLand. Occasionally at home, the iBook is what I have with me in the living room, so with the A/V cable I use the iBook to play internet radio on my living room stereo, or I stream movies over my LAN from Win2K PC in the other room. But, what I really want is the Global from Earth: Final Conflict. I can't find a link or direct info on the thing as used in the series, but it's an amazing fictional device. Palm-sized with a pull-out screen, clips onto the belt. Has world-wide satellite video phone, global positioning, and seemingly endless PDA capabilities. I think I've even seen someone drop it into a cradle and pull up their work on a desktop PC. I've at least seen some general scenes like: "Hey, can you drop me a couple gig of that data onto my global so I can look at it later." Seems to have ubiquitous net access, even in low earth orbit. :) But until someone makes that, I'm going to eye that OQO up for awhile and see what people think. $1000 seems like a sweet price if I can run *BSD or Linux on it. Funny thing is, so far, I haven't spent very much money at all on all these things I have. They've all been acquired used or on sale or for free. Most all of it was cobbled together from scraps. Living in the future is fun. :) [ ... 743 words ... ]
-
The bunsen burners still burn and the beakers still... um... beak.
So I'm starting to play with PHP and working on rewriting my Movable Type templates as *.phtml. Having never really payed much attention to PHP, I'm amazed at how close it is to Perl (obviously on purpose) yet how much effort has been made to sand off the rough bits. Not sure how much I like it yet, but at least it's a familiar tune they're playing. The mildly annoying thing is that it's familiar, but there are just a few things I would habitually reach for in Perl that I haven't sussed out yet in PHP. Like autovivifying data structures. I abuse those constantly. I really need to wean myself away from that, methinks. One thing that I was pleasantly surprised to find is PEAR, "a framework and distribution system for reusable PHP components". Hello, CPAN, my old friend. :) Finding all kinds of things that are immediately useful, like a Cache I can use to more intelligently and easily do the output caching voodoo I do in the perl CGI widgets right now. You know, a lack of a centrallized CPAN-like system is what has kept me from leaving Perl for many other technologies. I really wish Java (CJAN?) and Python (CPyAN?) had one supported by their respective communities. It's just so nice to do a perl -MCPAN -e"install Date::Parse" and get what I need. Maintaining CPAN bundles for my perl software is tasty, too. Single-command installation of all my app's requirements, and sometimes I can roll it right into the app's installation itself. Mmm. Anyway, it's nice (to say it again) to have a running personal site to tinker with, now that I've gotten off my butt and done it. This laboratory is letting me manufacture reasons to play with tech I hadn't bothered with before. I mean, I've used ASP and JSP, and for most of the things I've done, I've grown a severe dislike for them both. I left the "Hey, you've got HTML in my code!" paradigm behind, wandered through that "Hey, you've got code in my HTML" model, and eventually settled on my standard pattern now:A central app logic controller takes in GET/POST data, dispatches to a method which processes the form data. That method then constructs data structures, which are in turn passed through a template engine to be rendered by a pile of templates independent from the controller. This, along with some very special self-assembling component-based automation sauce, is the core of what my employer's offerings run on. But, this has crystallized as a habit for me, and I've not even considered other possibilities for a long time. This of course has made everything look like a nail for this hammer I have. For example, while PHP is not quite the right tool for the things we're doing at my day job, it seems like a perfect option to quickly and easily replace SSI pages on my site with something meatier yet still simple to maintain and doesn't stink like ASP or JSP. I've also been looking at Cocoon, which if I can ever quite get in a groove with it, looks like a highly refined instance of my standard hammer. And then there's Radio UserLand. I love it and hate it. The hate mostly comes from the slower iBook on which I run it, I think. The bootstrappiness of it makes me itch sometimes, but other times that just makes it endearing. The whole self-contained development biodome it represents is pretty sexy, too. Speaking of autovivifying data structures... I just have to love a system which has a live, manually tinkerable giant outline/hashtree for a persistence mechanism. Next, I really want to swing back around to playing with Flash. Last time I did something major with it, I was making a game for my employer which really wanted to use web services but I hadn't known it yet. The game worked pretty well, but I want to see what it can do since last we met. First thing in mind that seems mildly nifty might be a slick, live updating lil "Recent Visitors" app for my front page. I'm really feeling what Jon Udell means when he writes about thinking by analogy. It's also something one of my favorite Comp Sci professors harped on, with regards to what makes a Computer Programmer versus what makes a Computer Scientist. A small part of his speech always pointed to the notion that a a programmer is almost always pragmatic, memorizing the patterns and greasy innards of whatever tool he or she uses daily. On the other hand, the scientist is an explorer and finds joy in confusing him or herself by finding the universals and generalities across a range of tools. In the end, the programmer becomes specialized in a limited domain, while the scientist knows can pick up just about anything that comes along. And sometimes, many times, the scientist makes new tools for programmers to specialize on. I want to be and am working toward being a scientist. More soon. [ ... 991 words ... ]
-
2002 April 23
-
Sort me to the top, baby.
Also, I just realized that the title of my weblog here alphabetically trumps most other weblogs. [ ... 17 words ... ]
-
You are a beautiful and unique snowflake, to me anyway.
Prof Avery writes:Bad enough that the IM blog idea isn't new, the 0xDECAFBAD guy beat me to "404 Correction" in a Personal HTTP Proxy via Google's Cache. Oh well, guess there's only one thing for me to do: quit whining and write the code... So I'm the 0xDECAFBAD guy now, eh? Hee-hee. Well, I haven't gotten around to writing the proxy yet, so you can beat me to that still. :) I've had a metric ton of good and sometimes new ideas throughout my relatively short life, but I have a habit of not getting very many of them done. That's where it counts, not necessarily in the novelty of the idea. I mean... just look at Microsoft. [ ... 248 words ... ]
-
2002 April 22
-
Blinded by mad science
This having a website to tinker with thing is kinda neat. Right now, I'm growing a nasty beasty using SSI and perl CGIs, just because it was quick and seemed like a good idea at the time. Obviously, now that I'm starting to get more than 2 visitors per hour, the SSI/CGI mix starts to slow things down. I do try a few smart-ish things, like making the CGIs do heavy lifting only once or twice per hour (at most) while spitting out cached results the rest of the time. But, there's still the overhead of external perl process launch. So, I'm toying around with the idea of using Mason, whose design and purpose I seem to finally get, or learning PHP, whose design and purpose I dislike as much as ASP and JSP but whose simple utility I get now. Nice thing is, my web host has both PHP and mod_perl installed for me, and I can toy with either or both. There are other things I might play with learning as well. These are all things that pretty much everyone has already gone through, but it's fun to grow a site by tinkering and see things pop up. I've been making and optimizing the same sorts of sites and applications for so long that I've started falling out of the loop on technologies not quite applicable to what I've been devoted to. This site of mine is proving to be a fun laboratory, complete with bunsen burners, Jacob's ladders, and those little curly tubes running between beakers. [ ... 260 words ... ]
-
2002 April 21
-
Linkbacks and viva le two-way-web!
Mark Pilgrim writes: IO is more controlled [than linkbacks] -- you have to subscribe to other people's feeds to read their responses -- and is therefore better suited for intentional collaboration. Auto-linkbacks are more about exploration and manufacturing serendipity. Must explore this further. This is why I went bananas with the referral links everywhere. Manufactured serendipity. The referrals do something that a weblog's comment feature just doesn't do. Dave & the Userland crew often assert that weblogs are better than discussion groups, for various good reasons. Radio UserLand shipped without a comment feature (although it has one now), which I assumed was because the UserLand opinion was that the convention to comment & respond to someone's weblog was to do it in your own weblog. The big problem I see, though, is that you're in your own bubble. If you have something to say about something I wrote, and you're not already in my RSS subscriptions, I'll never read you. If I don't know you already, chances are that I may not come to be introduced to you. The same goes for Instant Outlining. While I appreciate the intentional nature of this tech, and its strengths in avoiding spam, I want to meet you half way. I want to be surprised and have my ears get warm and turn red when you say something about me. Referral-driven linkbacks on all pages on my site do this. If you post to your weblog and include a link to me, then I hear about it the first time someone traverses that link. This, to me, is even better than the comment feature. And, as Mark Pilgrim observes, this is better that a single referers page because these linkbacks appear in context. The conversation is built up from links in place and on topic and where the action is. To me, this is the two-way web really in action [ ... 458 words ... ]
-
2002 April 19
-
Going bananas with the referers
Bill Seitz says I've gone bananas with this referers thing. And, well... yup I guess sticking it everywhere on my site qualifies. :) But, it was quick to write, and even quicker to rework since I just broke it away from using DBM files and switched to a MySQL table. (Wow, DBM files. One of those ideas that seemed cool at the time. A full-on Berkeley DB would have been better.) I'm pretty much going bananas all over the place lately with all these fun things going on around the net. I'm like a kid in a candy shop, or is that a bull in a china shop? Well, I'm far too skinny to be a bull. Sooner or later I'll settle down, but it's fun having a working website and mad scientist laboratory to play with after the past few years of being too much of a perfectionist. [ ... 212 words ... ]
-
Mach-O Mach-O Moz! I wanna use a Mach-O Moz!
Oh, and I have to say: This Mach-O build of Mozilla for Mac OS X rocks. It actually makes my little iBook feel zippy. Makes me wonder why they even bother with the other builds. Turn on the Quartz font rendering, and this will be the world's best, prettiest browser. Thanks to Mike James for the pointer! Someone else I wouldn't've found without referrals. [ ... 65 words ... ]
-
New and Improved! Now with nearly ubiquitous referral links
Well, I bit the bullet and pitched in the extra bucks to upgrade my hosting which, among other things, finally gave me an access_log. The first thing I did was install Webalizer over here. Should my access log reports not be public? Hmm. Well they are for now, if that becomes a problem, I'll put a password on it. The second thing I did was attempt to copy the Disenfranchised linkback act and make a wiki and SSI includable referers widget, which I'm calling ShowReferers. Mine's not quite so slick as their implementation, since with theirs you can construct your links to refer to paragraph numbers in a page so that a link back to you is injected right there on their refered-to page. The neat thing here, though, is that I stuck it into the view template for DecafbadWiki so that every wiki page will show referral links, if there are any. I also dropped it into the pages for each story on the weblog. (Which reminds me that I need to make the story pages nicer, since I hardly ever look at them but the referrals tell me that other people see them more.) I didn't quite get the value of referral links before, but I do now. :) [ ... 212 words ... ]
-
2002 April 18
-
Windowshading == outlining for window management
One brief thing: When I switched over to Mac OS X on my laptop and on my desktop at work, and I bought the WindowShade X haxie, and then installed PWM as my window manager on every X11-running machine I use (including the OS X boxen). I've come to this conclusion today: Windowshading is the outliner of window management. TY HTH HAND PDT [ ... 64 words ... ]
-
Need to learn more deep XML
OTLML makes me think that I need to play more deeply with XML. I need to learn XSL, how to use Xpointers, I really have to spend more time with RDF, and I need to work with SOAP more. I think I see the difference between things like RSS 0.92 and RSS 1.0, and between OPML and OTLML, now. Not quite sure if I can explain it precisely enough yet, but I have a slight groking of it. The upshot of it is that I really need to throw myself toward the side of latter in both cases. Back to work. [ ... 102 words ... ]
-
A menagerie of HexOddities
I've noticed that Dave's been getting some submissions of further HexOddities since he linked to me a few days ago. So, I've started collecting them. Feel free to come and contribute to the catalog. :) [ ... 36 words ... ]
-
Auto-backlinks from blog entries via referral logs
Now this is pretty cool (via Bill Seitz): Disenchanted has referral-based automatic backlinks. Funny thing is, since I started using the little SiteMeter web bug, I've been refreshing the referrals fun. But, constructing the referral report right in the entry is another sort of WeblogWithWiki-esque feature I hadn't even thought about. Now if only I had access to my access_log here. Maybe I'll be checking out another host soon. There's got to be a way to make this work with Movable Type and / or Radio UserLand. [ ... 88 words ... ]
-
Pipelining the web makes for messy URLs
Jon Udell wrote a few columns and weblog entries about pipelining the web, and the power of the URL-line as akin to a UNIX command line with pipes. His examples did nifty things with a publicly available XSLT processor to use an XSL stylesheet at one URL and an XML document at another to produce a new document. So, this is what I've been playing with a bit this week, expecially with GoogleToRSS and RssDisplay. But, this is what the URL looks like when I string the two together (line wrapping forced): http://www.decafbad.com/web-services/url-based/rss_display.cgi?xml_img=htt p://www.decafbad.com/images/tinyXML.jpg&src=http%3A%2F%2Fwww.decafbad.com% 2Fweb-services%2Furl-based%2Fgoogle_rss.cgi%3Fquery%3Dlink%3AXGnxCbayl9UC% 3Awww.decafbad.com%2F%26title%3DLinks+to+0xDECAFBAD%26description%3DTop%25 2010%2520Links%2520to%25200xDECAFBAD%26 What a pain this was to build. I had to make a little form in a throwaway page to trick my browser into doing the hard work. I suppose I could make a lil utility script to do the meta character escaping more easily. But, man, if people are already making fun of the punctuation and obfuscation possible in Perl, imagine what they'll say about scripts on the URL-line. (Assuming I'm not missing reams of existing ridicule already. :) ) Jon does make a note of this little problem, but I'm thinking it's going to be what makes me wrap up my URL-as-command-line experiments. What would this URL look like if it had 1 or 2 more levels of pipeline? I suppose I could, as he'd also mentioned, employ a few tricks like reducing script names and parameter names down to single characters, but then I'm sacrificing one of the virtues he'd mentioned: the human readable, self-documenting nature of URL-based services. Well, that gets scrapped at the first layer of pipelined URL indirection with the escaping of URL meta characters. Hmm... Still poking away at things, anyway. [ ... 285 words ... ]
-
Google Boxes? Permasearch?
In doing some poking around about REST, I'm trying out a topic-specific Google search in the wiki via GoogleToRSS and RSSDisplay. (Thanks for the pointers, by the way, Sam!) I called it a "permasearch", just because it's kind of a permanent search-in-residence. Basically a Google Box, only I didn't use RadioUserLand to make it. (That wouldn't've been as much fun, since Radio's already got verbs to handle it! :) Sometimes reinvention is fun.) I think I need to do some more homework on it to make it worth of a new name, like do searches when visitors aren't visiting it. (Currently, it updates at most once per hour, at least once per visitor.) Maybe do some time-series search differences... hmm, but what can one do with just the top 10 results? [ ... 132 words ... ]
-
2002 April 17
-
REST. What is it good for?
I don't get REST, specifically in the context of it being the RightThing to do web services. I see many vagueries about how it's "more scalable" and more "right" and better in theory and there's a big dissertation on it and everything. Eventually I will get down to reading it. On the surface, it seems like a big dud to me. But, it looks like a lot of smart people are into it, so I assume there's something to it since I don't know much yet. This is why I love Busy Developer Guides, by the way. They're for busy developers. Like me. I don't suppose anyone could point me to something that lays it out for me? Like... why is XmlRpc considered harmful by REST fans? And what's an example app I could use REST for that will just so obviously convince me that I need to drop my XML-RPC ways? [ ... 518 words ... ]
-
GoogleToRss seems broken now
Ack. Just when I was having fun playing with it, it looks like my GoogleToRSS toy is broken. Did I run out of plays for the month? Damn. I promise that it actually works, though :) [ ... 37 words ... ]
-
CNET Blast from the past
Personally, I think this is the funniest thing Google has reminded me of today: Readers shun browser-OS integration - Tech News - CNET.com. How I came up with a comparison between flushing toilets and Microsoft Internet Explorer, I'll never know. *whistle* [ ... 42 words ... ]
-
Google 2 RSS, 0xDECAFBAD style
Peter made a command-line tool called Google2RSS. Then, he mentioned that someone was thinking of making a Perl or PHP version of his tool. Well, I saw that Aaron made Net::Google, and I already had XML::RSS, so I figured I could make a Google to RSS widget in about a half hour. That was about right. The code is here: google_rss_cgi.txt, but I'm planning on making a semi-proper writeup for it in the wiki in a lil bit. Let's see if this vain Google to RSS feed works: [ ... 89 words ... ]
-
Disintermediating the Bestsellers List
This looks like the kind of bestsellers list I would like to pay attention to: Weblog ?BookWatch. I should also start noting what's in the stream of dead paper flashing before my eyes. Let's see if any of these pop up on the bookwatch... Currently reading:Fool on the HillThe Cluetrain Manifesto Waiting on the shelf:The Selfish GeneSmall Pieces Loosely JoinedThe Tipping Point On the shopping list:Flatterland: Like Flatland, Only More SoGodel, Escher, Bach Some of these, like The Selfish Gene and Godel, Escher, Bach, I've read before but have not yet actually owned. Time to read them again and actually have them on my shelf :) [ ... 107 words ... ]
-
I've been Dave-dotted.
Heh, nothing like a link from Dave Winer along with some very nice compliments to make my traffic spike up ten-fold. :) Thanks, Dave, for the kind words and the link. Oh, and I'm very glad you got the joke! [ ... 41 words ... ]
-
2002 April 16
-
Blogchat resurrected on decafbad.com
How's that for realtime? Just popped in over at blogchat.com, signed up for the beta, and now it's working here. Take a look over in the "Gadgets" section and click the Blogchat to spawn a chat window. Or, click here: Now I have to think about how to make it more prominent and inviting. [ ... 55 words ... ]
-
Blogchat needs resurrection
Hmm, this reminds me that I need to get Blogchat up and running again. Which I'm working on right now. :) [ ... 22 words ... ]
-
Perusing the referrals
It's a small bloggy world: I just noticed a few referral hits from Peter Drayton, whose book I just bought this weekend. Hi there! :) Now if I just had some .NET and C# love on my iBook. This seems like a vaguely heretical thought to me. [ ... 48 words ... ]
-
Yay, I'm a pioneer. Or indecisive. Or something. I dunno!
Bill Seitz' thoughtspace/wiki says about me: Probably the only person using RadioUserland, TWiki, and LiveJournal? all at the same time. Hmm... really? Weird. I've just been kinda sprawling out across as many technologies as I can, because it's fun to play. Hell, I have 7 species of wiki installed on my laptop (though not all in regular use of course). Wheee! [ ... 112 words ... ]
-
Reinventing wheels versus using the perfectly good set you have
In a column on Zope Lessons Learned, Jon Udell writes:It seems silly to recreate, in a scripting platform, services that already exist in the environment. On the other hand, since those services aren't guaranteed to exist in the same way in every environment, you can argue that the scripting platform should be self sufficient even if that means reinventing wheels... This is something else I've been thinking about with regards to the PersonalServer / DesktopWebAppServer I want to put together. Thing is, between the slice of a full peer I have at decafbad.com, and the full UNIX environments I have on my 2 linux boxen and one iBook, I have 90% of the environment I want already. I have databases, I have web and mail servers, I have WebDAV, and I have schedulers. Should I just say to hell with it and get on with writing the top layer? That is, the actual apps I want to run on this nifty personal server framework? I have been so far, and calling it "prototype". Telling myself that these little apps are just "playing around" for until I build a "real" desktop environment in which to host the apps. So why reinvent all the wheels to which Jon refers? Because they "aren't guaranteed to exist in the same way in every environment", and I would like to distribute and share my work to people who don't have a full peer, 2 linux boxen, and an iBook. So, I'd like this stuff to be a simple little wrapped up package that's easy to drop in on a Win32 box. Or a Linux box, or a Mac OS X box. So, in order to make a cross-platform PersonalServer, I have to reinvent the wheels and create a run-time environment that itself runs on all platforms so that I don't have to modify the upper layers of the app. Hmm... Or, I could just get to work within the excellent environments I already have, screw reinventing wheels, and actually create some apps that would be worth making cross-platform on some later date. :) Because the longer I work on reinventing wheels, the fewer things I have that are really any fun to play with in the end. Besides, who would I be kidding if I didn't admit that the stuff I'm playing with right now is for early adopters and AlphaGeeks? So why waste a lot of time making a pretty box with a bow now? MacOsX exists, and RadioUserLand exists, so I might as well stand on their shoulders. I wish I could find the permalink, but Dave Winer was talking about Open Source developers banding together on a mailing lists to "crush" a commercial product. He works toward the conclusion that this is stupid and useless, and that cooperation is more in everyone's interest. Not to be a dittohead in the Cult of UserLand, but they seem to be bearing this out. RadioUserLand is so open and inviting for tinkering that I think most of what I'd want from an Open Source clone is already there. Hell, I even prefer MacOsX over Linux now. Am I selling my hacker soul? I don't think so. :) Okay, okay, enough babbling. I'll forget about writing my OS-within-an-OS for now and write the apps on top of it. [ ... 552 words ... ]
-
2002 April 15
-
LiveJournal XML-RPC + metaWeblog API
Looking at the LiveJournal XML-RPC Protocol Reference again today. I need to make a metaWeblog API gateway to LiveJournal, now that I can supply arbitrary metadata and now include mood and music. Next stop would be to make a client that can exploit metaWeblog that feels like the LJ client. [ ... 69 words ... ]
-
A personal server & Multi-threaded vs Async / Event-driven programming
Okay after the vote of confidence from Sam Ruby about my thinking out loud about a "404 correction" proxy server, I've been thinking more about writing a Radio-like desktop app server. I want to do more than make a DesktopWebsite, though. I want to make a full-blown PersonalServer app, capable of hosting things like a PersonalMailServer and a slew of other little local web services & etc. I may end up giving up and working more within Radio, but as I noted before I have some issues with Radio's performance and stability, which though balanced by my appreciation of the elegance of the system, is being gradually outweighed by my fears of lock-in and pre-existing experience with other technologies. Then again, this thing probably won't replace RadioUserLand for me. I use it daily, I bought it, and it's not as exciting to reimplement what I already have. Unless it is exciting. Make any sense? So, speaking of technologies... which ones should I use to start working on a personal server? My main goals are mumbled over here. I've got a large amount of experience with Perl, and have written desktop apps with it for Mac OS X and Win32. I'm having more fun with Python, however, and though I haven't written the same apps I imagine that it's on par with Perl. The main thing I'm trying to decide right now is: multi-threaded vs async/event-driven. See, I need some sort of concurrency to handle multiple network server hits, multiple agents running, a scheduler, and whatever else wants to take up residence inside the PersonalServer. RadioUserLand, of course, has all of this. I've worked a lot with POE in Perl to make some event-driven multitasking apps, a few servers (HTTP, FTP, NNTP, etc) and a few things to replace a fleet of forked scripts. I've also started looking at Twisted in Python which I gather to be the analogous thing in their camp. Not the same, but they both are using the same basic idea of event-driven programs. The problem is that, to take code that you would have written for a forking or multi-threaded program, and make it play nice within the event-driven environment, there's a bit of re-think you need to do. Loops need to be broken up into procedures, turned into self-running events, etc. Hmm... trying to think of more re-think examples, but the main one I can think of is that long-running loops and processes need to be sliced and diced. I seem to remember more pain than that. Anyway, I'd rather use threads. In threads, there needs to be a bit of re-think too, in terms of protecting resources from concurrency, but at least the main logic of my code can remain straightforward. Perl doesn't have threads that I want to touch yet. Python has threads, but I'm not sure how kosher they are. Of course, there's always Java, but I want to avoid Java I think. Anyone tuned in out there with any thoughts? Mostly thinking out loud right now. [ ... 641 words ... ]
-
web bug / cgi-based access_log emulator?
I'm running decafbad.com on some pretty cheap hosting that gives me most of what I need, but it's missing one annoying thing: access_log. I'm playing around with Site Meter, but I do have my own CGI hosting (obviously), so I'd like to find something that can closely emulate an Apache-style access_log with web bug images. The Apache format would be nice because then I could use any of a number of standard log analysis packages. Referrers would be a problem, of course, but I think some Javascript could hack around that. Maybe I'll just end up writing it meself. Hmm.. Looking... (Or I suppose, if I wanted the access_log badly enough, I could upgrade my hosting.) [ ... 141 words ... ]
-
Need to turn my Subscriptions into a 'blogroll'
I need to turn my subscriptions list into a blogroll. Oh, and make sure that the subscriptions OPML doesn't contain any of my password-protected MailToRSS feeds. Also pondering doing some cute things, like maybe display a random subset of my reading list (since my blog+news RSS list is > 100 items), and maybe use RSSDisplay to pull in the headlines from a random RSS channel I subscribe to, and call it "Featured". Hmm. blogrolling.com would be hot if it accepted a URL to an OPML file. Maybe that's what I should do with my subscriptions-to-blogroll thing, kinda like I did with RSSDisplay. Yeah, I know RadioUserLand does or can do all of this, but I'm kind of in a mood to make a pile of small pieces to loosely join out here on decafbad.com. [ ... 289 words ... ]
-
More Google API musing -- "404 Correction" in a personal HTTP proxy via Google's cache
Hmm... now that I finally stopped babbling and read the docs, I just noticed that the Google APIs has methods to access their cache. Sounds like I need to write a personal HTTP proxy that includes "404 Correction" by consulting Google's cache whenever one encounters a 404. Could be a new project, too, since someone I was talking to wanted searchable personal web browsing history and I think a personal HTTP proxy could help with that. [ ... 157 words ... ]
-
2002 April 13
-
What to do about the Google API
I'm glad to see that I'm not the only one who doesn't quite yet get an immediate eureka about the new Google APIs-- searching in particular. Of course there are the non-web crossovers, like searching in AIM via googlematic, but this mostly makes me yawn. Yes, its fun and geeky, but yawn. This is not to say that the Google search API itself makes me yawn. What makes me yawn is anything that's just an alternative direct user interface on the service. Search from my IDE while I program? Eh, that's okay, but I could do that by just spawning a browser with a cooked URL and not have to re-engineer a UI do display the results. Display some results of a canned search in my weblog? Eh, that's cute, but I could do that with some simple HTML scraping and SSI, if I really really wanted to. Yeah, I know the web service makes that somuch easier, but the thing it makes easier isn't something I was really interested in the first place. Maybe I'm not interested because I don't get it yet, or maybe it really is just a novel triviality. No, what will make my overhead lightbulb spark up are applications which involve indirection. That is, some application which makes searches to answer some other question of mine. Search results used to spawn further churning. Or, search results as the result of churning. Google's suggestions are intriguing: Auto-monitor the web for new information on a subject; Glean market research insights and trends over time; Invent a catchy online game. But, these sound disappointingly close to a corp-speak shrug. Not that this is unexpected or a bad thing or a statement of derision. Their Alpha Geeks made the service available, and now its up to the world Alpha Geeks to turn it into magic. I'm just waiting and thinking though... the AG's are churning out all permutations of language bindings, alternative interfaces, and weavings of the service into other apps. This is the first stage of play. I don't know that I'll feel like playing much yet. So I'll watch, and maybe tinker a bit, but mostly be thinking about what the next stage of play will become. [ ... 518 words ... ]
-
2002 April 12
-
Novell's adventures in orange-and-white XML buttons
Dave says: Novell now has a white-on-orange XML button on its Cool Solutions home page. They've got more than that. In case you haven't seen it, they've got an entire fleet of Novell newsfeeds in RSS: http://www.novell.com/newsfeeds/ [ ... 37 words ... ]
-
2002 April 11
-
Google Web API is here
The new Google Web API is a mind bomb, but I feel a bit slow because my head hasn't raced out to find a bunch of nifty uses yet... it'll come to me though. And I'm sure I'll be seeing the other smart people on my aggregator start doing some amazing things. I haven't quite caught on fire with Dave's Google Boxes yet, but I feel a slow burn going. Long running searches. Changing results. Makes me itch. I guess a mind bomb wouldn't be a mind bomb if it didn't take a few to build up power. [ ... 99 words ... ]
-
Someone else using SSI as a CMS
From Mark Pilgrim, again:Not that you'll notice any difference, but I'm now using server-side includes to serve up several semi-static pieces of each page of this site, including the logo, the copyright notice, the footer, the CSS declaration, and most importantly, the blogroll. Funny... Is there something in the air? Not that I've talked much at all (if ever) with Mark Pilgrim, but these are all the same kinds of things I've been playing around with here. Maybe I should drop him a line :) [ ... 85 words ... ]
-
Is there reason in the masses, or only sheep going baa baa baa?
From Mark Pilgrim:CBDTPA looks destined to die a quiet death in committee. But if anything like this bill ever actually passes, our entire society will instantly turn into Cuba after the embargo, where everybody holds on to their pre-2002 technology, fixing it up year after year, decade after decade, rather than pay for new crippled technology. (In Cuba I believe it was cars in particular; for us it would be computers.) Funny, I have been considering exactly this. If all this DRM and "Secure" media gets legislated and forced upon the market, I'll likely not buy another electronic gadget for a long while, unless maybe it's a used pre-2002 device. Those, however will probably top the $1000+ range on eBay, unless resale is outlawed as well. Forcing copy protection and "secure" media and "digital rights management" onto the market is idiocy. We don't want it. Really. It doesn't make anything nicer for us, no matter how much you use fuzzy happy words like "secure" (who's secure? me? nope. my investment in books, music, and movies goes down the drain). And the stupid horror of it is... this will kill the market for technology toys dead. The current offering of electronic gadgetry is pretty nifty already. PCs are pretty damn fast now. I doubt the majority of people have outstripped the capabilities of the things they own now, if they have bought a PC, mp3 player, CD/DVD burner, PVR, or digital camera recently. If it turns out that all new stuff past a certain point has inconveniences and copy protection and requires more money to run and etc.. well, then I think people might just settle for what they have awhile longer. I really think that technolust and thirst for the next bigger and better thing will chill because it'd be more trouble than it's worth. My faith in the intelligence of my fellow Americans, especially my elected officials, is teetering now. I've been pretty optimistic. I thought they'd be smart enough to realize these things by now, I never thought they'd get this far. But seeing that the RIAA, MPAA, and all the other money bloated fuckers are actually being taken seriously and not laughed off Capital Hill have me seriously worried. The government got stolen a long time ago, and I never wanted to believe it. Grr. I just hope it hasn't slid over the cliff yet and all these bastards finally hang themselves with all the rope they've played out. I still hope that there's a sleeping giant of reason out amongst the sheep. [ ... 426 words ... ]
-
Really automated automaticwriter?
Crossposted from my LiveJournal: Checking out the info for the automaticwriter community again, and I'm thinking I might have an idea to try out. Not sure if it'd fit in the community, but I think it might. I need to find the algorithm, but I remember playing with some things that would analyze a body of my writing, looking for word and punctuation correlation and frequency. It could then to a cut up across that body of my writing, use the correlations, and throw a new bit of text together which sounded very surreal but still sounded uncannily like me. So that's one part of the idea. The other part is this: I monitor about 120 news sources on the web through Radio UserLand. What if I took a random sampling of content out of my daily stream and applied my writing style analysis to it to produce new content? That is, take the content of random writers in my news stream, but do a cut up and automatic re-assembly based on an analysis of my writing style. I'm sure it'd produce a lot of crap, and I might want to apply a little manual wrangling to things, but it might just produce some interesting results. [ ... 207 words ... ]
-
Sometimes I think Radio UserLand has too much bootstrap
Some grumbling before I hit the sack for the night. Since January, when I bought RadioUserLand, I've been getting sucked into the platform. I resisted at first.. I mean why learning another language, especially one bound to a single, commecial platform? Well, the more I played with it, the more the platform looked elegant, and the $40 I spent on it was chump change for what it can do. I can see the foot-in-the-door when I start thinking if there's a way we can use Frontier at work. So, I'm tinkering and playing... And I'm putting up with flakey things happening, which confuses me. Inexplicable delays, screen flashes, stuttery speed-up and slowdown of text entry. The PipeFilters app I'm working on is killing Radio on my iBook. Sometimes RadioUserLand crashes. I just can't see what's to exotic about what I'm doing in PipeFilters what would prepare me to think it would hobble Radio regularly. Sometimes, when testing PipeFilters, RadioUserLand somehow manages to bring my iBook to such a grinding, HD thrashing halt, that the CPU Monitor no longer scrolls and I can't even get response from the Dock to kill Radio. My only hope in this situation is to have a Terminal ready with a kill command typed out, launch the script in Radio that only sometimes offends, and then hit enter if things wig out, hoping that within the next 30-90 seconds the Terminal will be able to get a slice of time to eke out the kill command. Part of it might be the iBook itself. This thing, though pretty and nice, is just not meant to run OS X. It runs it, but I beat the crap out of it. It feels like a 486 laptop. I just switched to a dual 800 G4 Mac at work, and OS X is a dream there. Though... Radio still crashes from time to time. The more these things happen, the more it starts to make me think maybe I should cut loose soon and take what I've liked about Radio and do some wheel reinvention and cloning in the Python-based things I was thinking about. But I so want Radio to work well. It's got so many nice ideas in it. I'm just worried that there's too much bootstrap in there. [ ... 557 words ... ]
-
SSI, Sibling Blogs, RssDisplay, and Grousing
I feel like I'm discovering SSI again, as if for the first time. I'm using it around here to piece together a few pages with dynamic elements, among other things. Seems like all I need most times for this, as opposed to a more general web app framework or CMS. I'm sure eventually I'll get tired of it after having run into all the problems everyone else in the world has, and roll my own CMS again. Maybe this time I'll stop before I get to that point and adopt someone else's before I get down to wheel re-invention work. :) But it's so fun. Anyway, my latest tinkering with SSI can be seen on the right side of 0xDECAFBAD's front page: Sibling blogs. So far, I've got my LiveJournal blog over there, along with my RadioUserLand weblog. Maybe in listing a few headlines over there, I can entice a few readers to my other spaces. LiveJournal is where I do most of my general blogging, link posting, and general grousing. (I think that's my new favorite word) The RadioUserLand weblog is just an experiment at this point, but it may eventually consume the whole site. Basically, RadioUserLand is competing with server-side CGIs and SSIs at this point. Eventually, they will cooperate. After that, RadioUserLand may take over. Anyway, enjoy RssDisplay if you like-- you can either download it, or PipelineTheWeb and use it straight from my site. [ ... 239 words ... ]
-
2002 April 10
-
Via Eric Freeman's Radio Weblog:
Via Eric Freeman's Radio Weblog: Tim O'Reilly: So often, signs of the future are all around us, but it isn't until much later that most of the world realizes their significance. Meanwhile, the innovators who are busy inventing that future live in a world of their own. ... these are the folks I affectionately call "the alpha geeks," the hackers who have such mastery of their tools that they "roll their own" when existing products don't give them what they need. That's what I want to be when I grow up: an alpha geek. Well, I already am an alpha geek, only just in fairly obscure circles. Wherever I've worked, I've become the ToolBuilder. I'm the guy who takes the stuff we have that never quite all works together, and I weld it together into some freakish kind of A-Team nightmare that lets the team crash through the brick walls. And here at my current job, I've worked at seeing how far I can take the ThirdTimeAutomate rule. Where it's lead me (and this company) is to a component-based web application framework with automation support in building up the apps. I've gotten the system to the point that a Design Tech (HTML-guy) can crank out a dozen promotions with the system in a day, with a large degree of customization. Occasionally, a Software Engineer may need to toss in an hour or two to write a custom component subclass or new component. The components are built to be self-describing and, within certain circumstances, automatically collaborate. We can mix & match promotion aspects and they'll work to integrate themselves. The efficiency it's given us has allowed this company to survive the dot-com bust with a tiny number of employees and expense. Now that business is actually picking up, productivity is still so high that we don't need many more people yet. And it's kept me in a good job all through these rough times. It's really good stuff, and I'm very proud of it. In a way, it's the culmination of my last 8 years or so of work on the web. The problem is... This technology will likely never leave this company. I've spent my past two years refining it, and it will probably never be seen outside the 2 dozen or so employees of this company, only 3-5 of whom really know what it's about. Which brings me to things like this:Getting Noticed? from Eric Olsen (via Steve Ivy, et al.). "As the volume of blogs has ballooned well into six-figures, the need for links from ?star? blogs has become an absolute requirement to be noticed." But I think this is how things go in the world in general. It's a big, big place. To be noticed in it takes some work. So here I am, an alpha geek and a ToolBuilder spinning in my own circles, hope someday to have my name up in lights. http://www.decafbad.com/twiki/bin/view/Main/ReleaseEarlyReleaseOften [ ... 490 words ... ]
-
PipeFilters 0.3.7 published
Psst. Another version bump. Playing around with breaking filters out into their own definitions, to be referred to by the pipelines instead of embedded in them. This way, once I get around to doing the web UI to manage everything, I can have filter creation, acquisition, and trading all done separately from pipeline management. Haven't heard much feedback from anyone using the tool, if anyone's using it. So for now, it's a fun exercise in how to get a Radio Tool put together from A-Z. Still learning the idiom. And I like what I see thus far. Now if only I had a faster Mac and Radio didn't die on me as much. [ ... 114 words ... ]
-
Playing around with PipeFilter updates and the Memepoolizer
Awhile back, Aaron was playing with a Memepool-izing web service I whipped up from his code. Now I'm testing it out with my RadioUserLand PipeFilters tool: Four score and seven episodes ago our slayer brought forth on this continent a bunch of dead vampires, conceived in the hellmouth, and dedicated to the proposition that all undead are destroyed equal. [ ... 60 words ... ]
-
2002 April 08
-
PipeFilters v0.3.5 Released
Just published a new version (v0.3.5) of my RadioUserLand Tool, PipeFilters:Added a 'shortcuts' filter to use the new Shortcuts variant of the glossary.Virgin data contains pipelines using the new shortcuts filter (you may wish to copy some of them to your pipeFiltersData)Added a to-do list to the pipeFiltersInfoCleaned up a few installation bugsCleaned up a few bugs in pipeFiltersSuite.sendDataThroughPipeline()Unfortunately, no web interface to manage pipelines yet. [ ... 67 words ... ]
-
2002 April 07
-
From My Instant Outline @ 4/7/02; 8:58:55 PM
4/6/02; 6:51:52 PM by LMO -- Outline diffs and Jabber? Is Jeremy Bowers doing outline diffs as a Jabber conference? Screenshot (should open in browser)
- If so... WOW.
2002 April 06
coding opensource for profit
Over at weblog.masukomi.org, she's musing about how one would share the spoils of a software project, say one that was built in an Open-Source-ish way. Maybe a metered Web Service. Developer shares by which profits are broken up? How to allocate the shares? What should be given incentive? Hop on over there and add some commentary. [ ... 57 words ... ]
2002 April 05
Mother of all hello world for Cocoon 2
Is it just me, or is it mildly frightening that a Hello World app in any language or on any platform would call for 73 commits, 43 adds in CVS? Yes. It is frightening. But... look at all the features! (To be fair, yes I know that "hello world" is not the point. It's still funny.) On with further Cocoon newbee wandering... [ ... 63 words ... ]
More adventures in Instant Outlining.
Hmm, trying to see if my outline pings weblogs.com. (It does.) Seems like a neat idea to subscribe to io.opml as a buddy. Let's hope its not neat like digital watches. Also, I need me some automated outline log archiving and possibly some automated spool-to-weblog action going on here. Oh, and my Radio weblog was broken. Now its not. Spooky. [ ... 61 words ... ]
Hmm... need to simplify the site template
Some point soon, I think I need to meddle with the site templates again and strip every adornment. Make them as simple as possible. It's fairly plain now, but I need to get it minimal-yet-not-plain. Too much light makes the baby go blind. Or something. [ ... 46 words ... ]
DecafbadWiki RecentChanges in OPML
Here's my attempt at DecafbadWiki ?RecentChanges in OPML Dave wanted to see some OPML coming out of Wikis. This could be a start. It's a bit dirty right now, too, since I doubt that all the dates it outputs are kosher. Radio seems to consume it happily though. Next thing is that I want to OPML-ize a wiki page, using the headings (H1-H6) as cues for structure and each paragraph as child headings One hiccup though: My script had to be *.opml, just claiming to provide text/x-opml wasn't good enough to be transcluded here. I wonder: If I subscribe to this as a buddy, will Radio embolden it on new wiki pages? It does, indeed. But, of course, although it is transcluded into my instant outline, wiki recent changes do not embolden my outline. [ ... 191 words ... ]
Trying to post from my Radio UserLand instant outline
From Radio UserLand's Outliner @ 4/4/02; 10:24:32 PMOutlog Current status: Online, working. 4/4/02; 10:11:30 PM by LMO Were I insane (perhaps criminally so), and if I knew elisp in emacs better, I would stick instant outlining into Emacs' outline-mode. Then we might truly have the "emacs of outliners". Or something like that. 4/4/02; 9:22:13 PM by LMO My cats demand my popcorn. The two of them work in tandem, one distracting and the other snatching. Astonishingly, they share the spoils. 4/4/02; 9:14:24 PM by LMO Concering Arboretum, Mark Paschal says: "No matter what I do, Les Orchard has done it first." Heehee. Funny, I've never had that said about me before :) I always feel like I'm behind. But, Arboretum as "emacs of outliners" is a boast / pipedream. The current state of affairs is not quite that. At present, it's more like My First Cocoa Program [tm] Actually, I think a Python/Tk (or maybe some other GUI toolkit, say ?WxWindows?) would have a better chance at making it to being a cross-platform "emacs of outliners". 4/4/02; 7:51:13 PM by LMO Been sick. Have to recover. Too many exciting things happening. Many many things I want to pick up and run with. Instant Outlining Arboretum needs to do it. I want diff for outlines. It'd also be neat to do some mining to conserve my attention span. Has someone mentioned my name (or a given pattern) again since the last time I read their outline? Maybe bold and italicize my buddy's name to tell me that I'm really interested in what they just posted. In IRC, using X-Chat, the name of a channel I'm in turns blue on changes, and turns red on changes and a mention of my nickname.
- Link them live into my I/O, or allow others to subscribe to them.
- Will they bolden on subscribers' lists iff they change?
- It's been a little while, but I have been working on an outliner.
- This seems even more important now.
- I really like PipeFilters. Need to finish it, at least on the web preferences side of things. Do you like PipeFilters?
- I want IMAP support in Radio UserLand so I can use it as an email client, and possibly to MailToRSS within Radio.
- Firewall traversing RPC is dead sexy.
- Why do I like wiki?
- An interface which steps out of one's way is a productive interface
- Dead simple markup for humans
- Dead simple collaboration & versioning
- Dead simple, almost automated document structure
- ...and Cocoon
- Seems like a natural. Transform from human-oriented markup shorthand to an intermediate XML format and run from there with the transformations.
- ...and Python
- MoinMoin seems to have a bit of a primitive pipeline going on with formatter classes.
- ...and ?DocBook
- We want to collaborate on book authoring at work.
- ... and OPML
2002 April 04
Just upgraded to MT 2.0
Let's see if anything breaks. The textareas in ?OmniWeb are suckily thin, will have to fix that in the templates. Trying out the disabling of line break conversion: From Radio UserLand's Outliner @ 4/5/02; 12:35:49 AM Wiki Why do I like wiki? An interface which steps out of one's way is a productive interface Dead simple markup for humans Dead simple collaboration & versioning Dead simple, almost automated document structure ...and Cocoon Seems like a natural. Transform from human-oriented markup shorthand to an intermediate XML format and run from there with the transformations. ...and Python MoinMoin seems to have a bit of a primitive pipeline going on with formatter classes. ...and ?DocBook We want to collaborate on book authoring at work. ... and OPML Maybe along with Cocoon, make OPML one of the serializations, with hierarchy determined by a sections/headings analgous to HTML's H1-H4 and ?DocBook's sect1-sect4 [ ... 148 words ... ]
2002 April 02
decafbad is getting left out of the pipeline
No, 0xDECAFBAD is not dead... it's just been left out of my pipeline stream. I need to work it back in, otherwise this place will never do what I want it to. I've been doing most of my babbling over here on my Radio weblog and even more obscurely, over here in my Radio instant outline, not to mention over here on my LiveJournal. Need to get all my tools and channels straight. :) [ ... 75 words ... ]