Wednesday, November 30, 2005

A Boo survival guide.

Over at boo-contrib, I've begun work on the Boo Survival Guide. Its not for newbies, and at the moment its pretty disorganized; its meant to be mainly a compedium of information on how to do things in Boo, rather than the basic mechanics of how a programming language works. That's why its called a survival guide, I guess. ;) There's a pregenerated PDF included and the OpenDocument files I used to build it in the same download.

Tuesday, November 29, 2005

Me vs my professor.

I had to do a little verbal kung-fu in front of my Linux Security/PHP class in order to save face a little over an hour ago. Here's my story:

A little introduction
Recently, it became required curriculum to take a "PHP and Linux Security" course. Never-you-mind the fact that we never had enough time to either go indepth in PHP or Linux Security very much during the session aside from a very broad and ultimately useless overview of both concepts. I'm not sure whose clever idea it was, but it wasn't a very good one to combine two completely different subjects into one amalgamation that can barely be taught in a semester.

So, the course has gone as I expected - slow, meandering, and without any real substance since its been divided between "Here's Linux" and "Here's PHP," and it comes time for final exams - except they're final projects instead, for some as of yet unnamed reason.

The Project
The professor seems very laid back, and in the beginning that was alright -we were verbally instructed to create a "PHP and MySQL" webpage, and then at the end he mentioned something randomly about homework. Yes, he gave homework the same day he told us about our final project, assigning them both to be due on the same day, which is of course an immediate priority conflict: one of them has to take precedence. They're not hard, per-say, but they are time consuming, an issue compounded by the fact that this isn't the only class I have to take. He is of course the only teacher still giving out homework so late in the term.

So, today was one of the alloted days to give presentations. Two people, who were obviously basing their presentation of existing PHP projects, went first: one smart foreign fellow was creating a CMS for the commpany he worked at to handle task tracking, and one other dude who had developed forum software for use with his associates. The rest of the projects were obviously from scratch and incomplete, judging by the quality of the one other I saw, and the people shaking their head and saying, "I'm not done yet" or "its not presentation quality." Hey, no sweat. We all have other classes, too, right?

The Presentation
Me? I volunteer. I'm done. I did the smart thing: I based my website off an existing template that came with the book for the course, whose author gave his blessing for modifications. I transformed one of the template sites to an ad-hoc image gallery, nothing really fancy but to be honest that's all I had time for, between those magical things called other classes.

So, when I'm done, what's the first thing he calls me on? You got it: the template. Well, that's great, except in his verbal "I-didn't-write-it-down-so-there's-no-proof" instructions he said we should consider using the examples in the book as templates. I can't quite tell him this to his face of course, because its incredibly insulting to call him out like that in front of the class, and the project is worth 35% of the final grade. I'm no sucker.

Gotta retaliate though (I have an ego), so I start quipping good development practices, like "a good programmer knows how to reuse code" and the typical, as the polite conversation almost turns into a debate. I had already queued up a logical argument on the issue of web development in general, when he suddenly distracts me with a copyright question. I hadn't removed the template author's copyright from the HTML page. I tell him its OK, since the author gave permission. He said I should have taken out the copyright notice. In hindsight I should have probably made a seperate 'credits' section and named him there, but I had more important stuff to do.

Still, totally caught by suprise by the nature of his comment, I mumble the knee-jerk, "Uh, questionably legal area?*" and the class starts an ad-hoc discussion about it. By then I had lost my opportunity to argue the issue of using a template in my favor, though the professor still looked pretty displeased when I got up to go back to my seat.

I believe I saved quite a bit of face, though.


In only two hours I'm probably going to have this same situation with another professor: the assignment didn't say to create our own data structures, so I logically used the tried-and-true STL data structures instead.

I've made a grave mistake assuming my professor's are all aboard the logic train.

*This is the only thing I remember from my CyberEthics class, even though the semester hasn't ended yet.

Boodle news update

I've finally updated Boodle's news page with something a little bit more concrete about the project.

I've been watching (and using) #develop 2.0 for awhile, and there's no beating it for IDE-style Boo support: at all. Or, at least, not with Boodle (on Windows) anyway, so I won't hold any delusions of grandeur. Its pretty obvious though that the Boo community now has an awesome IDE to take advantage of, since extending #develop 2.0 (as opposed to 1.1) is awesomely easy, and its got a rock-solid core that hasn't crashed on me since rev 5-something.

Hence, I'm "downgrading" Boodle to a very neat, tight text editor for Boo files with code completion and pleasant syntax colorization.

I'm not the type to look directly into the sun and pretend its a galaxy away.

Sunday, November 27, 2005

Migeul de Icaza on a "web aware" Gnome.

I was browsing Planet Gnome earlier and managed to catch a blog post by Miguel de Icaza on a web aware desktop.

As a follow up to yesterday's web-based desktop communication engine, I wanted to comment on a few ideas that we have been bouncing around.

Clearly the HTTP end-points on desktop applications would be useful to invoke an arbitrary set of methods on each application. I envision a system in which we can remotely manipulate desktop applications through HTTP. The same idea that I pitched a few years ago on top of CORBA.

The difference this time is that writing the client code is trivial, unlike the previous attempt where writing the client code to talk to a CORBA server was very difficult.

But in addition to this HTTP-based RPC interface, it would be nice to make the GNOME desktop Web-Aware.

Miguel de Icaza

It sounds like a pretty rocking concept, but I think he's missing the logical jump from a lot of seperate little webservers to one unified interface for working with your desktop.

How does he want picture sharing to work?
Here is where the problem arises: people want to look at the pictures right away, or they want copies of the pictures, or they want me to tag them or annotate them. All of those at once.

Miguel de Icaza

The Solution: F-Spot coult have a "File/Web Share" which would basically run an HTTP server. In the particular case of F-Spot it can just embed our embeddable web server and expose the pictures with an ASP.NET application.

Miguel de Icaza

Every application embed a webserver? That's going a bit overboard.

I think a web-enabled Gnome desktop would do better to have simply *one* web interface that other applications could plug into. Surfing to http://localhost/web could bring up a user interface that would have the most common modules visible by default - pictures, video, audio, files - with applications registering and providing their own modules on demand.

I think that would be a bit better than every application doing their own thing and getting it half-assed. It also lowers the barrier of entry from "embed webserver, design webpage, ..." to "register a module in the Gnome web interface and just start sending out HTML on demand."

Hell, it could even use REST for communicating user actions back to individual applications that've registered with the Gnome web interface.

Saturday, November 26, 2005

stupid website splash

Awesome. has a huge global map, this stylish image that stretches almost 600 pixels wide with all the major locations on the world present, and you can't use it to pick your region.


You click on the drop-down bar instead. That's innovative, huh?

You know what the best part is? When you click on a drop down item, instead of going to the site, you're presented with a button to click instead.

Do you know where it goes? To, HAR HAR HAR JOKES ON YOU.