Wait on the multicast – got me a Mighty Mouse

Well, I picked up a new Mighty Mouse that was on hold for me from my good
friends at Westworld
and have been trying it out for a bit.

Truth be told, based on the reviews at places like Engadget
and others, the reviews tell you pretty much exactly what you’ll get
and what sort of experience you’re in for. So it’s all down to opinion
on what you think of it.

For a 1.0 piece of hardware, it’s Apple through and through. It’s got
those touches of elegance and a good helping of innovation, but maybe
some of it has a bit of rough edge to it. If you’ve ever acquired a
first release of one of their hardware platforms right out of the gate,
you know what I mean.

I think it’s a fine mouse. Maybe a touch pricey, but the feel of that
scroll wheel ball and the integration with Mac OS X is
very well done. The tiny little sounds created for the ball and the side
button pair are signature subtle but sufficient. It does have the issue
that you pretty much have to lift your left-click finger(s) off the
surface to get a right-click, and that to my taste, the side buttons
require a bit too much pressure to activate, but overall it’s very nice,
and for the average non-USB Overdrive using Mac user, this is a worthy
upgrade from the one-button or from the average Logitech optical scroll
mouse. When it does go wireless, I might need another one. -)

If you get a chance, try one out. I think it’s a personal taste, but by
the new control panel allowing things like the middle button/ball to
active the dashboard and the side button pair to active the application
switcher, it’s a mouse-only experience for surfing in a lot of cases
now. And coming from this keyboard-shortcut addict, that’s actually kind
of cool. If you want to really kick it, go with the USB Overdrive add-on
that is now supporting the Mighty Mouse, or really go nuts and get a
googol-buttoned USB input device with the Overdrive software. -)

Podcasting a fad eh?

Wow. How the media is doing everything to get air and mind time in and
around the whole iPod and Apple. Now podcasting, having hit the top of the
media meme and stampede within a year of debut, it’s now accused of waning
as quickly and thinning ridiculously rapidly to only a few elite ‘casts.

Wow. Again. How the heck is that news? That’s what always happens, but
with the normal myopia defined by what I believe to be western thinking
of “winners” and “market leaders”, these same reporters probably don’t
think that we can have more than the top two auto companies in the
world, or more than one computer operating system, or to bring the
analogy closer to home, independent music labels and specialty markets.

Podcasting is going exactly where the music industry is going, but with
a bit of luck, will also give rise to vectors of content review that
aren’t major labels or media outlets, and point the way for the
post-MPAA/RIAA world in having independent review “clusters” giving
reviews of content along the lines the editor likes. Then you find an
editor you have similar taste to (or perhaps multipler editors, and
possibly through an editor-directory for yet another meta-organizational
layer) and that gives you a recommended list of content to check out and
possibly subscribe to.

Hopefully the rich diversity will survive as well as it has in the music
industry. iTMS features some indie labels in the Canada store at least,
and I tripped on the group “A Northern Chorus” which is fairly mellow,
but melodically and rhythmically intricate to a good extent, and having
a very cool and blended sound. Very neat stuff. iTMS just had them as an
indie feature. That’s a start.

Another aspect is multicasting…. if anyone remembers the old “Geek of
the Week” multicasts out of MIT, tag me an email at dallas at hockley
dot ca. That’s another idea around blogs and podcasts coming together
that’s running through my head. Live blog debates online via multicast
with a question period. Dynamic seminars…. why not?

So… the new iBook…

Yes, a new iBook. Gratis.

Basically, the G3 iBooks that came out in the last series of G3s had a
slight engineering issue in the hinge. The cables to the video were
pinched tight or at least firmly in the hinge from the mainboard. Over
time, this causes the wires to lose the insulation to friction and
ultimately, the video wires short with the backlight wires, and well….

So anyway, I bought the AppleCare extended warranty in the first year I
owned it, and on top of that, there is an extended motherboard
replacement program from Apple to take care of this problem on the
series I had. While it’s inconvenient when it goes, I got used to
backing it up somewhat regularly, and I felt Apple was being fair in the
warranty replacement policies.

So, that said, it happened a second time (yes, about once a year). And
again it went in to get fixed. And it came back. The local dealer here
pointed out that I also had blemishing on the display, which I noticed,
but didn’t think much of. They noted that the level of degradation it
was displaying was also worth a replacement, and ordered the part. Ok,
that’s all good and fair. Wonderful.

Unfortunately, the new motherboard had a thermal issue that it would
overheat under load and lock up before the fan would kick in. That was a
component defect as well. So it was limping along, which got most of the
things done, but not much programming and no gaming. It’s a hobby
computer, so that was OK.

Apple at this point noted that I was under AppleCare, and had
essentially three motherboard failures and a pending display
replacement. Anybody can do the math and see that despite the fact I do
take good care of the laptop, this was costing them money, and starting
to grate on me. Then they did something that will likely keep me with
Apple and buying AppleCare warranties for a long, long time.

The replaced it. The local dealer pleaded the case, but ultimately, it’s
up to Apple, and the Canadian crew decided it made sense. Possibly they
were running out of the G3 parts by this point. In any case, Apple
didn’t just fix the problem, they made it right. That’s a rare
thing these days I find. And by replaced I mean I now have a G4 1.33 Ghz
iBook, with Airport Extreme, not a new 900 MHz G3 iBook. I had to give
up the RAM upgrade I had and wait two weeks without a system, but Apple
treated me with utmost respect and care in this matter I feel. They’ve
won a long-term customer from a first-time buyer. Now, I’m a big Apple
fan for a long time, but this treatment speaks more to the company than
the product. I’m impressed and very, very thankful to the crew at Apple
and here in Calgary at WestWorld computers. Thank you all!

Your mileage may vary, and I would never expect or feel Apple was
obligated to do this sort of thing. I was owed a fully-functional G3
iBook under AppleCare. That’s it. They went above and beyond, and
deserve a LOT of praise and respect for doing so in my opinion.

So in my way of saying thanks, I offer up this public thanks and
recommendation of Apple, and further, I ordered and am awaiting a new
Mac mini for my wife to replace the old Windows system she’s been coping
with for far too long. 1.42 Ghz SuperDrive to replace an old PIII-450
Mhz CD-RW. And most importantly to me, and Apple system to replace a
windows system that for home use, iLife ‘05 is a rocking good home media
authoring system we can have fun with the videos of the kids with.
iMovie in ‘05 is worth a whole heap of praise itself. -)

Another Bloged upgrade…. another date whoops… but this time my fault

Well, I just upgraded to the latest bloged 0.7 (good job Henry and
everyone). Seems to be pretty decent. The editor has a few graphical
hiccups that might be my system, but I’ll fiddle with it and see if it’s
worth reporting more formally. Overall the program looks a lot better, and
feature-rich, but mostly just a lot easier to do some of the simple things.

That said, I’ve had a good summer thus far, and now I think it’s time to
hack the 5 or so items out that I’ve been pondering. I’ll hopefully get
to that this weekend. The first one will be around my iBook, which I
restored from backup a few weeks back, and that caused my last two
entries to be recreated from the web publish version as they were not on
the backup I pulled from.

So while I’m going to cause a bit of a rash of postings, and hopefully
start getting a bit more regular and frequent on the musings, it’s a lot
of pent-up stuff. Some of it hopefully good reading for the web

Tiger part 2 — Farewell oh wondrous uControl!

Well, they FINALLY did it in the OS. In Keyboard & Mouse System
Preferences, there’s a neat little button in the lower left of the
keyboard screen saying “Modifier Keys…” That little gem has the ability
to swap and/or remap Caps Lock, Control, Option and Command to any of the
others or to No Action. So I no longer have ANY caps lock key (Clouds
Open, Angels Sing praise) but the emacs hack that I am, I have a properly
positioned Control key. -)

uControl has a lot of other features, but really I never used them to any
great degree (horizontal trackpad scrolling occasionally, but I don’t miss
it). So while I so completely appreciated all the work the coders did on
that product in all the wonderful ways it did it, I’m glad that I don’t
rely on a third party kernel extension to ditch the stupidest idea in
keyboard design in history (promoting the caps lock key from it’s
typewriter-historic exile in the far lower left).

Minor nit, on this old iBook, the iTunes dashboard widget is useless
performance wise. I still much prefer the “hit the + button” on iTunes to
get the mini view and keep it on top but mostly out of the way. Plus I
keep trying to move my head to get rid of the “glare” on the glass of the
iTunes widget. DUH. Little too shiny that one.

Tiger Time

Ok, it’s been a long hiatus. And I know at least one reader hit the blog
thanks to the almighty Google (thanks for the email Darcy!) Motivation
visited me thanks to the wonders of FedEx yesterday. Tiger, pre-ordered at
first chance while I was overseas in Geneva, was delivered exactly when it
was promised, on the day of release.

So, after dutifully backing my faithful iBook up (really, I did) I did an
upgrade style of install, with no incident (well, one tiny one, which I’ll
note later) and was off and running with the latest of Apple wonders in
Operating Systems. The glitch? Well, I didn’t upgrade Saft before
upgrading to Tiger, so Safari borked a bit on startup until I disabled it
(it froze when presenting the “Saft doesn’t work with this version of
Safari” dialog). Since then, all is well. Impressions? Cool. Some of the
graphical candy (ripples in the dashboard, some of the smooth animations
in transitions) aren’t enabled on my 900 MHz iBook G3, which probably is
to keep things snappy on the older hardware. I’ll try later with the
Quartz Extreme enabling via the debug tools to see how that goes.

Big things? As advertised actually. Spotlight and Dashboard. I’ve been
very pleasantly surprised with Dashboard. Great built-in widgets, but
already over 50 third-party widgets available from the Apple download site
(UPS/FedEx tracker and a WiFi hotspot catalog are tops in that category
for me). Very quick, fast, beautiful and useful little tools. The stock
and weather work just fine in Canada (well, some obscure Canadian venture
stocks don’t report correctly, but the TSE stuff does). And Spotlight.
This thing is already changing the way I work on a computer. It’s so
completely integrated, it’s outstanding.

Pretty intelligent out of the box, and if you want a really good solid
overview of it and other Tiger features, the lad over at Ars Technica did
a great job. He notes that you can’t add to files in the metadata. I’d say
only partly correct. In the file info in Finder now, there’s a new bit
called “Spotlight Comments”. This data doesn’t go into the new inline or
fork metadata on the file, but actually adds new index terms directly into
the store.db file maintained by Spotlight. So for John Siracusa’s scenario
of putting files into a project for smart folder, you can do it, not
seamlessly, but reasonably conveniently. Open the file info in the finder
(Command-i) and add in a comment such as “Project: moogfoo”. Any spotlight
search for “moogfoo” will find this file now. Again, the data isn’t
associated with the file itself in the metadata fork, so there’s some
disconnect and possibility of it wandering away from the file, but even
that is very rare. I can move the file around in the Finder, rename it,
and it stays correctly associated (thanks to the kernel level
integration). This gets a long way towards John’s metadata vision, which I
think is pretty darned correct in the Right Thing™ sort of way. In the
mean time, this partial hack works pretty well for adding stuff in. That’s
it thus far. I’ve been digging into just how powerful Spotlight is so much
that I haven’t gotten to much deeper.

Mail IS different, but it took be about one blink to get into it. I’m just
not that much of a visual nitpicker (NOT a visual artist) so I think I
adapt easier than most. Feel free to email some comments or questions and
I’ll do my best to respond either in email or the blog. dallas (AT)
hockley dot ca

XML programming languages????

Ok, WTF? Guy Steele Jr. is a pretty bright guy. I’m just getting into LISP
beyond the lightweight knowledge I had for tweaking emacs, and I have a
glimpse of what he’s talking about in LISP with extending the language.
Heck, it goes WAY beyond that. The article I refer to by Mr. Steele is here

There’s a really good quote about LISP, of which I dug up an incarnation
by John Foderaro here.

“…Lisp is a programmable programming language. Not only can you
program in Lisp (that makes it a programming language) but you can
program the language itself.”

Steele figures that the language will represent as XML due to the
popularity and tools available for it. XML will represent the structure
and higher abstractions in the language, and the syntax and onscreen
representation will become merely a view on the structure represented in
the XML. I think I get where he’s coming from, and there’s some merit
there, but I think that’s like saying C++ macros are as powerful as
defmacro in LISP. XML is hierarchical. It’s not freely associable, and
can’t being to represent effectively or efficiently something on the
order of what a language such as LISP does. There’s a disconnect in
level of abstraction and power there that I can’t effectively explain at
this juncture, but it’s there.

Programmers are starting to understand higher and more powerful levels
of abstraction, design, and systems. I think more people would grasp
LISP at a deeper level now than when it was introduced. I also think
that by and large, most developers still fundamentally won’t get it. The
majority of developers, even GOOD developers, just don’t think that way,
which is closer to why LISP, especially LISP in the fullest sense, just
didn’t go mass-market the way C and C++ (and Java) did.

I think Steele has a kernel of a good idea, in that it seeks to get the
structure, intent and design of the program into a form that can be
manipulated as the proverbial model in the MVC, and allow us to make
that view into a variety of representations beyond our convential view
of syntax. On that level, I completely agree that we need such a system,
but there’s a lot of groups trying to do that, and it’s complex.
Reducing it to XML is like saying the BNR of the system is all that’s
represented. That’s not a higher level. That’s machine code. We need to
be thinking at a higher level than that. We don’t need a representation
of our languages to be some slick transformable version of pretty. We
need those ideas and modules to be represented as groups and modules,
and ways of working with those groups and modules the way we work with
strings and ints. Steele has the right grit in the idea, especially with
the intro about the UNIX command line. But the power there is that those
strings and such are usually themselves the higher chunks of ideas, and
using those tools on basic sentences and dictionaries or using them to
format, sort, edit and update cross-references and bibliographies is
equally simple.

The difference in my mind is that the higher abstraction is that chunk
that the computer isn’t dealing with the in the case of the command
line. The chunks the filters and programs process are arbitrary
complexity. We need the system for defining, manipulating the
association of the filters, of the filters themselves, and of the
behaviour of the shell itself. That’s a big step above where we’re at,
and it’s what I would call System Syntax, as opposed to Language Syntax.

It’s there. You can see the outline by the topics that seem to be
gaining steam in our craft. Domain Languages. Language Oriented
Programming. Model Driven Design. Unlike 4GL and CASE tools, we are
approaching it as building layers of abstraction as opposed to the
ultimate syntax processor and generator. We’ve got the syntax processors
and generators in languages, compilers, virtual machines and runtime
environments. Components were clumping the syntax bits together. We
still don’t have a way of clumping ideas and processing chunks together
the way you can abstract an entire category of algorithms with a LISP
macro. It’s a totally different level.

Maybe Steele’s approach is a first step, or at least another path to
wander down to better understand the problem and find a solution. I just
think it’s somewhat the wrong direction, but hey, he’s got more cred
than I do. But I still trust my instincts.

Got a comment on this? Sorry, but the bloged system I’m fiddling with
doesn’t deal with that. Email me instead for now at (dallas (A) hockley
(DOT) ca). If I actually GET some comments, I may look into a comment
system as that would be an indicator this went beyond a diary. -)

Keep on thinking!

Mono on Mac with NAnt even…

Well, I finally had another shot at getting Mono on Mac OS X to run NAnt
and do something useful… and guess what? Success!

Now, the gritty details…..

I am using the latest mono framework for Mac OS X, which is 1.1.2 from
the devleopment build. I don’t know if that’s required, but Mono is a
bit thin to begin with on Mac, so the latest doesn’t hurt too much.

Also, I’m using nAnt-0.85-rc1, which is the latest release candidate
snapshot. That’s more out of want than need, as we’re moving to 0.85 at
work, and it’s a Good Thing™ to be up to speed on the tools you make a
living off of. -)

So there is some hope. Haven’t got Cocoa# or Gtk# installed or built
yet, but at least with NAnt actually functioning, there is a little hope
now without days of pain and file lists (no thanks, better things to do).

Of course, there is one trick that was causing much of the pain.
pkg-config. If you use Fink, you’re probably getting the fink pkg-config
that by default is in /sw/bin. When you’re running NAnt, you want the
path of /Library/Frameworks/Mono.framework/Commands to be before that
one, as there is a pkg-config there that deals with it. I have no idea
how the two interact or relate, and I’m just going to wrap the NAnt in a
shell script that mods that path for it to run. I have a lot more useful
stuff as part of Fink that I value more than mono on a Mac. -)

Mono on the Mac…. some success

Well, after the Nant frustration (still no luck there BTW), I dug in and
tried to do something useful anyway getting this stuff running.

NUnit works very well. The mono binaries can be used as-is, bypassing
needing a NAnt build tool to assemble it.

For some simple stuff that doesn’t need a big freaking build system like
NAnt (you know, like more than about 5 classes :^) ) this with mcs and
mono can work OK. I’ve only used the command line and developed non-GUI
classes, but it does seem to be working OK.

The next step is that Ant itself has .NET tasks. I’ll give that a shot
and see if it Moofs. -)

I still much prefer Java and/or Objective-C to this stuff, but it never
hurts to know a few more platforms.

Mono on a Mac….. sort of

Well, I’ve been mucking with .NET at work for a while now, but on the Mac
at home I’ve been Java and Objective-C for the fun stuff. I decided that
it would be interesting and useful if I could try out at least SOME of the
things at work on the Mac at home. Good theory.

The mono package for OS X 10.3 works decently well actually. mcs (the C#
compiler) seems to handle the bulk of really simple examples, and mono
(the runtime) can execute the same stuff. So far so good. Now to try the
heavier lifting.

Start with the tools. NAnt. Crap. Full stop. This thing will not compile
under Mono on Mac (Fileset # of args invalid) and the precompiled
binaries will not run on mono on the Mac (reflection exception). Haven’t
tried NUnit, but without NAnt, doing much of anything useful will be a
bit of a pain.

NAnt is a hell of a tool. But there’s certainly something odd about the
defacto open source build environment that would not compile under the
1.1 framework at all, and that won’t cleanly compile or run under an
otherwise seemingly decent version of mono. Heck I got the database
connection and ADO.NET stuff working to Postgres without any issues at
all. What code-fu is NAnt doing that makes it so ill-tempered?

Ah well. Back to Java and Objective-C goodness. I can always VPN to the
office and remote desktop to do the .NET stuff. It’s sure not worth the
effort at this point to muck with it on the Mac. It’s just not mature
enough yet for anyone except the people who want to build it. I hope
they continue, but I’ve got little enough time and too many projects on
the list to add mono. Sorry. And don’t even get me started about that
abysmally documented effort of DotGNU. Great idea. Make it a fink
package or some sort of package that works. Setting up darwinports is an
adventure in mailing list scouring. ARGH.