Sunday, October 23, 2005

Rwarr, attack!

As you can tell, I've been trying to crush Grunwald under a wall of bugs lately.

He closes most of them the same day or the very next. The guy's got to get a new past-time hobby or something!

I'll have to admit I'm kind of disappointed with Boodle in comparison: #develop 2.0 is way more feature-packed than I had ever expected it to be. Aside from it not being able to do debugging - some kind of bug in the way Boo generates.pdb files when running under .NET 2.0 - its a pretty powerful development platform. Now its a project that's wedged between MonoDevelop (s'alright) and #develop 2.0 (the BFG of free .NET IDEs), and I'm not sure what to do with it.

As I expected, botty still hasn't delievered on the NAnt backend, so we're still stuck playing with SQL for the backend, which was just a temporary hack that was supposed to hold a few days so I could implement some stuff around the basic project model, but its held for almost three weeks now.

So, pretending to know what I'm doing for a moment, I've been thinking the past week if we should reposition Boodle as a simple Boo source editor with basic project support. Once you start reaching out for advanced features like NAnt and debugging, then its time to go to #dev or MonoDev. Its really no contest between Boodle vs #dev 2.0 or Boodle vs the newest MonoDevelop SVN releases, and I don't see it happening any time soon.

The only niche' it seems to really occupy is 'simple source editor,' and even in there its already got competition: Sciboo was announced on the Boo Lang list a few days ago! I think in its current form Boodle is better than Sciboo, for now, though. ;)

I've still got time to think things through before I start hacking on Boodle again. Its been another one of "those weeks" where everything is due on either Monday, Tuesday, or Wensday. Again. They were synchronized when they gave out assignments, and synchronized when those assignments were due, it seems.

Clever bastards.





Friday, October 21, 2005

What the hell is Flock?

I just saw this on Slashdot today:


daria42 writes "The much-hyped Flock, a new browser based on Mozilla Firefox and integrating features like RSS feeds, blogging tools, the del.icio.us social bookmarking and Flickr photo sharing services has just launched a public developer preview to the world. Flock is being driven by a team of developers being led by Bart Decrem, a well-known open source developer who co-founded the ill-fated Eazel project back in 1999 and has been involved with both the Mozilla and GNOME foundations. On his blog this week he says Flock won't be forking the Firefox codebase."

Slashdot | Firefox-based Social Browser Flock Launches


So I went to the Flock site.


Our code couldn't wait any longer to be free!



But! This preview ain't for the faint of heart! If you're the bleeding-edge type and don't mind a few scrapes and busted knees from time to time, feel free to give it a whirl.



We've got interesting ideas in this thing. We want to know what we've done right how we could improve. And we've got a lot of work ahead of us!



So if a bucket of source code and developer binaries sound enticing, head over to our Developer page now.

Flock


Ok. But the website doesn't explain what the hell thsi thing is, so there was only one thing to do: download and install.

Its apparently just a heavily modified version of Firefox, built around social blogging and stuff. Weird. Whatever. I'm posting this using the builtin blog editor, though. There's not a lot of options here, to be honest. The AJAX-based Blogger posting system seems a little bit better.

Here's some amusing quotes from Channel9 and Slashdot:



It looks pretty, but I'm not sure what the hell it is or its supposed to do. They don't explain it on their site, either.



Worst marketing ever. =D

Flock, who's gonna use it?


Re:cutting edge?
(Score:5, Insightful)


by TeacherOfHeroes (892498)
on Thursday October 20, @11:07PM (#13841874)




Every once in a while someone makes a +5 Insightful comment about how there should be a version of Firefox with the more popular extentions built in so that the average user gets more functionality and doesn't have to do all the work themselves.

Finally someone does it, and people are quick to start belittling it for not being something fantastic and earth shattering. It said straight up that it was based on Firefox.

It's not doing anything nasty like Netscape did, so this just means that there are more alternatives out there. Last time I checked, that was considered to be good around here.

Slashdot | Firefox-based Social Browser Flock Launches

I could see this being extra handy if I blogged more options. We'll see what happens.

(two minutes later, and I'm still trying to figure out why Flock won't post to my blog even though it autodetects the settings.)


I've just given up on getting Flock to post it and just cut-pasted the HTML code directly into Blogger's interface. *shrugs*

Wednesday, October 12, 2005

A boodle screenshot.


Nothing new here to most of us, but some people aren't using Boodle very much, so here is a screenshot of revision 80.

Sunday, October 09, 2005

My Windows Vista Wishlist (half-assed)

Things I would like to see in Windows Vista.
  • Integrated Smart Upgrade technology:
    • Right now applications are so disorganized with the way they check for updates. Some plunk something in the start menu's "Startup" that checks for updates, some applications have it coded right into their core, and other applications... sheesh. Its a pain.
    • Some applications just say, "hey, wtf, there's a new app, now why don't you GO ALL THE WAY TO MY HOMEPAGE AND DOWNLOAD/INSTALL IT ALL YOURSELF, K THX" Yeah. Thanks, you lazy bastard.
    • I want to see a unified control panel for all this: I want an API to code against to register my application, and then the user can set how and when he wants Windows Vista to check for updates to my application. Then Vista prompts him to download and run an installer executable specified by an update.ini (or whatever) file located on a remote webserver. Hell, if it could be done, it would automate the install/upgrade process silently, and allow the user to degrade back a version by keeping around old .msi install scripts for X many versions.
    • Someone has to shepard this update madness into one less than insane bundle. Windows Vista is the perfect opportunity to do this.
    • I have like a kajillion fucking Java WebStart app entries in my Control Panel Add / Remove thingy. Fuck. Thanks, Java. Thanks a lot.
  • A better way to navigate through the "Start" menu Application Folders.
    • *Anything*. Seriously. Maybe just a better way to navigate through application folders in general.
  • I would like a better way to manage how applications and what applications are run at start-up. Every application does this in a little bit different way: some are in the 'Start' menu, some use the registry, some... some... agh. I 'specially hate applications that are auto-start but I can't track down how to stop the functionality due to the application's bad UI or whatever.
  • The start menu's "most recently used application" list doesn't notice if a short-cut no longer points to a file. I broke jEdit awhile ago (thanks for installing into a new directory, you bastards), and haven't bothered with it since, but the icon is still there.
  • Nothing bothers me more than the naming scheme, "Corporation --> Product Name" used in start menu entries. Damn it, that's metadata stuff right there. Half the time I barely know who wrote what application, so I'm constantly popping through 'new' corporation entries looking for the app I just installed.
Rant, off!

Wednesday, October 05, 2005

Boodle improvements.

Finally got around to doing some optimization on BooStyler to make it run faster. A lot faster.

I spent a few hours staring at the code and tweaking it a little. Completely worthless adjustments. Couldn't find out why it was still so slow.

Finally got a REAL profiler - I normally just insert timer functions, but Boodle is a growing project, gettin' big, and that was gonna be a no-no.












So I download JetBrains dotTrace, have a little look-see, and wtf? Magic. I see I'm spending a bulk of the time during styling in a duck-typed closure I never even bothered checking out. I alter the closure to use static typing and wham, instant speed-up by an order of 2 magnitudes. Boodle doesn't choke on medium-sized files anymore! The profiler actually pointed out a few more hotspots that should be looked at, non-styler related, so I should get around to doing that before the profiler expires.

Its a nice piece of work that JetBrains has here, but its a bit lacking on features and it only shows .cs / .vb source files - kinda sucks. I'd rather it show any source file, sans colorization, or allow for colorization using syntax files. Seriously, anything is better than nothing.

Its way out of my price range, though - like a kajillion dollars too much. I'll be sad to see it go once the trial expires, but I couldn't justify the cash spent when I've got so little of it.

His worse day tops mine by like 10x

[23:01] the first was because we have to use this stupid graphing software that to my knowledge is only in the physics computer lab, and it turns out that lab requires you to pay money to print. so i go there the morning before the lab, and i have no cash on me. but i cant pay cash anyways, i have to pay "bevo bucks", which i can purchase online, except they dont take visa online
[23:01] i had enough change to print, but they dont take cash, they require bevo bucks
[23:01] so that assignment was late

... some minutes later ...

[23:05] we do the lab on computers, so hypothetically i could just email / put it on a floppy drive, right?
[23:05] wrong, because they dont have internet or floppy drives
[23:05] they DO have usb drives, but it is a mac and it wont take my usb stick
[23:05] FUCK THIS SHIT
[23:06] its like an island of stupidity, cut off from contact with the rest of the world

Saturday, October 01, 2005

More work on Boodle; mysterious Boo bugs.

Some more work on Boodle has been done - its mostly under the hood stuff, like an SQL-based back-end for project support. Hopefully this means project support in general once a user interface can be hooked up to it.

In doing a project the "size" of Boodle I've noticed what appear to be deep, lurking bugs in Boo that I'm unable to reproduce as simple test cases: many of them appear to be caused by the interaction between the modules that Boo generates. I've been trying to keep track of them by marking them as "BOOBUG," but I've only been doing that sparingly - when I'm pretty sure that it isn't just part of my bad code.

Here's one of the more annoying one that crops up occasionally (across two or three seperate projects):

for item in input:
#BOOBUG: Another one I can't reproduce.
#Accessing anything in "item" causes null ref exception.
print item.LexicalInfo

Its not that LexicalInfo is null and I'm trying to manipulate it; its that accessing any member of "item" causes an abrupt null reference exception. I believe I worked around it last time by simply declaring item as duck, but its still a pretty disconcerting thing. In the case of Boodle it wasn't necessary because that code block is obsoleted - I never got around to checking it into SVN 0 but its still there so I can keep track of those BOOBUGs in case I ever figure out what's going on.

#BOOBUG - something to do with interacting with other classes that use private stuff.
#Can't track it down right now, sorry.
buffer = main.GetBufferInfo(main.GetSelectedTextControl()) as BoodleBufferInfo

This one bothers me quite a bit, because its a situation where Boo's type inference fails completely: instead of assigning "System.Object" to buffer it actually assigned a type of "unknown" to buffer, which is a mystery that is beyond me. The cast apparently makes things work, so its nothing impassable, but it is annoying.

The hard part about debugging these kinds of problems is the way the compiler fails - there's not enough detail in the exception, like where it occured, or what kind of node it occured on, or where in the *BOO* source code the exception was emitted. If you *really* want to debug it you have to start sliding Console.WriteLines everywhere in the main Boo source. Well, that's what I do, considering I've never gotten dbgclr to load up the Boo assemblies and show its source code properly.

I'm just kind of hoping most of these issues "magically" go away, and that metaboo has a stronger foundation than the current Boo implementation.