May 31, 2005

Maneki's

Mmm. Some absolutely wonderful sushi tonight at Maneki's. Jeffer hasn't had any in several years, and it really doesn't take much of an excuse to get Nathan and I out to have some.

Posted by joe at 10:37 PM

May 30, 2005

UTF8 encoding with WSMethodInvocationCopySerialization

Yeah, it's another geek/tech oriented post. Bail now if you don't care.

So I figured that in my digging around with the code generated by WSMakeStubs, I could find a reasonably serialized XML snippet to use for diagnostics. I was half right...

Down in the WSGeneratedObj.m code (in the GetResultDictionary method, if you're curious), I added the following:


NSData * serializedRequest = WSMethodInvocationCopySerialization([self getRef]);
NSLog(@"DATA: %@",serializedRequest);
NSString * s = [[NSString alloc] initWithData:serializedRequest encoding:NSUTF8StringEncoding];
NSLog(@"String attempt: %@",s);
[s release];
[serializedRequest release];

And I got something back! The NSData serialization is a propertylist.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>MethodName</key>
<string>GetMemberByState</string>
...

I'd rather hoped it would be the XML snippet that would get shoved down the pipe to the receiving SOAP server. Ah well. Guess we'll be sticking with the tcpdump invocation I blogged about the other day.

Posted by joe at 04:16 PM

Portland - a very walkable city

While I was in Portland last, my goal was to really get to know the downtown area and some of the nearby neighborhoods. To me, this means walking it. I never really get a feel for an area until I've walked through it. Portland makes it really, really easy.

This particular shot was in the old town area of Portland, sort of the north end of their downtown core, near where it starts to get - well - a little shabby and run down. That is until you hit the edge of the Pearl, which is sort of clear from it's obvious burst of investment and newly renovated buildings.

I wish I'd been a little faster with my camera, because the reason for the photo was actually a fellow standing out on that little balcony with the open door, holding a conversation with someone below. The stance was great - open, conversational - it was something that was perfectly comfortable for him, and it gave an air of livability to this building.

Posted by joe at 02:44 PM

May 29, 2005

Water

We got out on the water this afternoon for a great tour and fiddle about.

We got together with some friends (Nathan, Leah, Jeffer, and Vicki) and rented an electric boat and toodled about the Lake (Union and Washington!) for quite a number of hours. It wasn't terribly fast, but it was really comfy and it was a delightful trip out on the water. Even without a huge amount of power, it could stir up a few bubbles as we moved about.

Posted by joe at 09:25 PM

debugging SOAP calls from WSMakeStubs

I've been spending some of this memorial day weekend working on a project that's been nagging after the back of my skull for a while - getting a Cocoa application to work with a .NET WebService over SOAP. Frankly, it's been darned tricky and I've not yet accomplished it - but I am also trying to be very thorough about learning all the details, as opposed to just hacking something up that works and saying "yeah, that's a one off".

So without further ado, I wanted to share some tips and tidbits.

First, the MacOS has an inredibly important debugging tool in it's archive for helping you do exactly this sort of thing - which nobody has really seemed to blog or written much about: tcpdump.

Once you get through the initial coding pain, you get the SOAP fault messages, and invariably what you need to do next is get a sense of what actually got sent and received. I have not yet found a way to get that programmatically from inside the CoreServices framework - although I have a few suspicions. What I did instead was bang around in tcpdump and ethereal land until I spotted the section of the tcpdump man page that showed I could use the option "-A" and get the ascii dump of the flow. All MacOSX systems have this built in, so if you're coding on the Mac, you've got this tool.

sudo tcpdump -i en1 -A -s 5000 tcp port 80

Let me run through and explain:

You'll need "sudo" unless you've done some permission hackery, because tcpdump puts your network card into promiscious mode, and you need root permissions to do that.

The "-i" option tells the computer which network device to listen on. I use the airport with my iBook, so it's "en1". A quick look at the output of "ifconfig" will give you a hint, but in general it's "en0" for the onboard ethernet, and "en1" for wireless. All bets are off if you have more network devices of course...

"-s" sets the length of data that you'll capture out of the packet. This doesn't need to be larger than the MTU setting for your machine, which is probably 1500, but I got in the habit of just grabbing a whole bunch of bits - so I use 5000.

"-A" is the magic gem. tcpdump is meant for recording packets, and this is the option to try and spew the output into ASCII format for us mere mortals to read.

"tcp port 80" alerts tcpdump that you only wish to look at packets on the "tcp" (vs "udp") transport, running on port 80. If you're talking to a webservice on port 8080, you'll need to change this number. Hopefully that's obvious.

The output can be really messy to read, but at least it's visible. I've put the results of a SOAP request I made in a text file for your gander if you care.

And a note. If you're using Apple's provided WSMakeStubs, it has a subtle bug that not so politely bites you in the ass when you're working against a service developed with ASP.NET. Most specifically, it doesn't correctly send "SoapAction" in the headers. There's an exceptional post on the topic in the Cocoa-dev archives, but here's the gist:

WSMakeStubs creates four files. One of which (WSGeneratedObj.m) is the Cocoa object wrapper engine around the C framework. I've been spending a lot of time trying to work with this framework, and it really does work very nicely for the simpler cases of web services. The only real exception is this very annoying bug.

If you look down around line 175 of the file, you'll see the following:

NSString* soapAction = @"SOAPAction";
NSDictionary* headers = [self copyHeaderDictionary:1 extraVals:&soapAction extraKeys:&soapAction];

What's not immediately obvious is that the declaration for soapAction was previously defined in the method as a variable being passed in. The quick answer to make this work correctly is to change these lines to:

NSString* soapActionKey = @"SOAPAction";
NSDictionary* headers = [self copyHeaderDictionary:1 extraVals:&soapAction extraKeys:&soapActionKey];

So at this point, I've determined that I can really use the code from WSMakeStubs without substantial modifications to get them to work all pretty with .NET web services. Interestingly, I've found that coding to those services looks like it takes extra work from lots of platforms - as I also fiddled with SOAPpy - a web service framework in python.

If I were writing both ends from scratch, I can assure you I'd go for a MUCH simpler technology (XML-RPC or REST if it were appropriate). And I think that much of the reason SOAP hasn't taken off is because it takes all kinds of work to get the platforms to interoperate - which rather defeats the purpose, doesn't it?

So hopefully this makes the Google archives and helps someone else out. It's also spurring me to write up an article on how to use the WebService C framework directly. Seems like a bloody shame that you can't quickly whip up an awesome Cocoa interface to a .NET web service. Maybe I can help make that a little better...

Posted by joe at 02:54 PM

May 28, 2005

Er, oops.

Well, I haven't a clue how I managed to do this, but I seem to have inadvertantly removed damn near all the headers from my Foundation framework in /System/Library/Frameworks.

That was unnerving as hell - I was popping up a quick little application to try something out on the Desktop (I usually use the laptop), and all of a sudden there's like 57 errors all bitching about "Can't find Foundation.h".

Well, the good news is I have more than one Mac at home, so it was fairly quick work to snag those very headers from the laptop and slap them in place. I diff'd the ones that were there - and everything looked hunky dory with em, so I did a live drop-n-run replace.

The only thing that didn't quite jive was the Foundation binary itself had a different checksum from the one on the laptop. I wasn't quite brave enough to switch that out, but the headers seem to have resolved the problem.

I still don't know how, or when, I screwed THAT up.

Posted by joe at 07:18 PM

Riots

No, no big riots (that I know of) in Seattle on memorial day. I meant riot of color.

As we were walking home from a liesurely morning of taking in Queen Anne avenue and having a bagel sandwich for a late breakfast, I stopped to admire the yard. It's an incredible riot of color, of which I can take no real credit.

The architect of this riot, amused at me taking her picture, and meanwhile getting a little of the front of the house. You can't see it, but the open hole where the plant theives took the "white plant" has been filled with other plants this morning. (It's the area just to Karen's left and tucked in to that corner.

The real riot is the yard as you walk up the street. Yeah, corner house - and I know I need to do the trimming around the fire hydrant (I told you I wasn't able to take much credit!). All the yellow, orange, and red are poppies. The fringe of blue (that doesn't show up so well in this photo) is cornflower. I haven't a clue what the purple things are, but they're sort of pretty.

Looking from the other side out...

Posted by joe at 01:20 PM

details of a reel mower

After having lived a few years with a reel mower, I still really like them. It's that "Doing good for the environment" thing where you know you're not burning gas or anything for the pleasant repast of a nicely trimmed lawn.
That all said, on some days I do rather long for the vegitation rending, rock slinging gas-powered mower of old... Don't even get me started on how cool those brush hogs are, slinging around heavy chains with an overpowered two-stroke gasoline engine...

So tonight (yes, tonight - about 9pm) I cut the back yard. It's been too long (again), and the grass was doing that "laying down" thing instead of nicely standing up and getting sheared by the revolving blades of the reel mower. I did it after the sun was officially down because Gus brought this unnatural heat to the area. That being said, I'm now feeling philosophical about advice on using a reel mower - so I'm going to share. Feel free to mark this up in Del.icio.us with nice meta tags and stuff. I recommend "reel mower awesome advice".

There is a length that is optimum for mowing with a reel mower - and it amounts to about once a week here in Seattle, which I never do. Then there's the "hard" - where the volume of grass fiber getting sheared is just really difficult to keep a nice steady slow push. That's at the two week mark with reasonable waterings. And then there's the insane level - where the meadow that is your backyard just lays down as you try and mow it.

For you lawn geeks out there, the way to get the absolutely best cut is to slowly and consistently push the mower through the grass, the blades not being higher than about 2/3's up the reel itself. With really low grass, it feels like you're not doing anything. With higher grass, you notice it. And keeping a nice consistent velocity is actually damn difficult.

Then there's the tricks for the insane level of grass - where the blades are in the 14" high range. Some of the tricks I've found:

1) get a very good light weight reel mower.

This may sound stupid, but a lightweight reel mower makes a truly huge amount of difference.

2) push from your center of gravity.

That means hands just above your hips. And in heavy lawns you'll periodically get stalled up as the mower binds with too much to shear.

3) For those nasty twiggy things that grow, a quick jerk to spin the wheels of the reel in opposite directions (spin the reel right or left) will often do the trick.

It gets the blades rotating really fast for a short period of time, and then rotates the whole mower around 30 to 45 degrees, which is often enough for the bent stuff to get caught in the reels and sheared down nicely. I sometimes find that when I'm tired, spinning one of the wheels with my foot (drawing it backward so I'm not shoving my toes into the blades), will do the trick when combined with rotating the handle around with my arms.

4) Don't run.

You'll want to. Mowing is boring, and if you run - it'll go faster, right? Yeah, but the blades will spin too fast and a lot of the grass that could get cut just gets pushed around instead. Slower gets it.

5) Multiple passes with time in between. Time is something like 15 to 20 minutes.

That whole plant thing. Step on it, and it bends down, but then the amazing mechanics of plant-dom manage to bring those suckers upright again. I've found after giving an initial pass with the mower (especially since I never do it when it's easy), there's a fair bit that you just miss. Maybe the wheels of the mower pushed it down. Maybe you just trod it down. Whatever. It's still at a good length to get nipped, and giving the area 15 to 20 minutes is often the trick to let it stand up just enough that another nice slow pass will get the rest.

6) If if feels like you're still cutting when you walk over an area, you aren't done.

Combine this especially with item 5 above. You can tell when the blades are shearing. Aside from the nifty little spray of grass confetti, it does take some muscle power to push those rollers forward. And if they're shearing, it takes more.

And for all this great advice, please don't look at my back yard. It looks like an 8 year old just gave the dog a "hair cut" with a pair of blunt-nosed scissors. It's going to take more than 30 minute for the grass to stand back up enough for me to shear more of it down. And I thought about doing it now, but my neighbors probably wouldn't like to hear even the reel mower bouncing around at midnight:30 out their bedroom window.

Posted by joe at 12:29 AM

May 27, 2005

I've been terribly spoiled by python and ruby

Let me start off by saying that I don't have a thing against statically typed languages, and I actually really do appreciate static type checking when I'm working on a component of a really huge library.

Which leads, of course, to the opposite. I've become terribly, terribly spoiled by my work in Python and Ruby of late. Good lord! I spent hours today tracking down what I'm going to call the "stupid little things" of Java. Those nessecary evils that when you're used to the language and in the groove, you don't even think about. Like the bits where you need to dump something to a file, but the method on the object you have just gives you an OutputStream. It's not hard to find, and I'm sure a huge number of you just thought "well, duh - you just ..." It didn't actually take me hours to solve that, but it felt like I was spending hours of time working my way back and forth through the various permutations of casting things and converting objects (ArrayLists to Lists, HashMaps to Maps to Sets to get an iteration... not counting the fact that it's not guaranteed to be in order) Like I said, the little things.

Even still, I made good progress on some code at work today, but I'm also realizing just how much faster it is to knock something out in Python. So now I'm asking myself "Well, dummy, why didn't you just use python in the first place?" - quickly correlated with "it's not too late to change you know..."

Bah. We'll see.

For now, I've a three day weekend without any Java. I may fiddle a bit with coding, but if I do it'll probably be Cocoa and pushing the bits around with the web services frameworks or Core Data and trying to get a reasonable handle on that. I'm becoming quite the master of the quick test project to try out an idea - they're littering my home directory now.

Posted by joe at 10:25 PM

Saturday Market

Portland went to a fairly significant amount of trouble to really let visitors know about it's "Saturday Market" (which seems to run through Sunday too, by the way). It was a neat affair that reminded me of Columbia's Art in the Park, except that it was all in very orderly canvas booth/shelters, not in a park, and had far superior food vendors all over the place.

While I wouldn't (and couldn't) spend my whole day at the Market, it was a neat market and I'd definitely go back. If you're looking for some original pottery/ceramics work, woodwork, or blown glass - it's a little market heaven. But probably the neatest thing about the whole market was watching the people. You could tell there were the regulars, the locals (not always the same), and the vibe between the merchants and the local market organizers (with their every present clip boards) was low-key, friendly, and really quite a joy to watch.

Posted by joe at 10:16 PM

May 26, 2005

Chinese gardens

Jeremy was telling me about the Japanese gardens that I apparently completely missed when I was in Portland. Downtown there's this little one-block area that is a Chinese Garden that was just absolutely beautiful.

The price of admission was $7, which at first seemed a bit steep to me, but I really enjoyed the beauty of the place, so I guess it was worth it. I'll blow $7 at a coffee house without much thought, so I don't know why I'd balk at a square block of beautifully maintained garden.

Posted by joe at 05:38 PM

May 25, 2005

Cast Iron Heat

The Clyde hotel was a neat old hotel, with a sort of strange layout to the bathrooms. There was one bathroom between two hotel rooms, that had all the looks of being shared. We were introduced to the concept that since we rented the room, we got the bathroom - and that we should lock the door from the bathroom leading to the other room. If that room was let for the weekend or something, they would use a shared bathroom and get a decreased rate.

So the bathroom had a retrofitted big old cast-iron claw-foot tub. But the nifty part was the bathroom heater. Not very fast, but boy could you keep that room cookin' if you wanted to!

Posted by joe at 10:25 PM

May 24, 2005

Hey Mom! Call Karen

One of the stranger uses for a blog, I'm sure. But I know Mom's reading and waiting for some of those Portland pictures, and I haven't a clue what her current phone number is since she's out gallavanting about California.

And Karen yelled at me for not getting the phone number when she called me to wish me a happy birthday. Isn't that mean? So this is to "make it better".

nyah nyah.

Posted by joe at 07:09 PM

Pics from Portland

A few pictures from Portland that just caught my eye.

It's really sort of comforting to know that Portland has the same catty-wampus street layout which results in strangely shaped buildings. You really don't see many like this anymore, although I've always thought they were really neat. It's on the corner of Burnside and something, but I can't remember where or make out the text in the image.

One of the particularly awesome things about downtown Portland is their block size. Yeah, sounds kinda weird, but having a 200 ft block instead of a 400 ft block really makes a hell of a difference when you're walking around. I don't even know that we have 400' blocks (some urban planner knows, I'm sure - I've never measured it).

And in the middle of one of those blocks is La Terrazza, that nifty little italian cafe we ate at twice while we were there. I am asuming that it's living spaces above the restaurant proper - but the whole thing was really vertical. Most of the tables were in a space directly above where you ordered and the open kitchen. That all made it kind of neat, although I would imagine it can be viciously hot some summer evenings in there. I went to take a picture of the place, and the exterior sort of exuded that same vertical feeling.

Posted by joe at 07:03 PM

May 23, 2005

This way to a geek hideaway

The elephants are on Park St, just outside Powell's Technical Books, and they just happen to be pointing pretty much towards the store. I've about 17 pictures that I like from my Portland meanderings, which I figured I'd spray up here.

I've liked the elephants for a while - a monstrous bronze statue gone green, surrounded by even more green. When you walk into this area from other sections of the city (like the sort of dessicated blocks of old-town), it's really an impressive surge of just raw living greenness.

Posted by joe at 10:15 PM

Crane gantries

Crane Gantries

Looking up from a tour boat (in this case the Argosy tour from the day we went out to watch the tugboat races and stuff)

Posted by joe at 05:42 PM

May 22, 2005

behind a frieght train

It's clear what the priorities are for the rail lines when they hold up a passenger train for a freight train. Actually, I don't blame em - even though it meant a 4 hours train trip from Portland to Seattle instead of the more normal 3+something hours.

The trip home was really nice, and I continue to enjoy taking the train to Portland (and back) just because it's so comfy to let someone else do the driving. That and you can really get up and walk around (somewhat carefully anyway) and stretch pretty much any time you care to.

I spent a fair bit of the trip home reading a book I'd been meaning to get for ages, and found at Powells: Theory of Fun for Game Design by Raph Koster. It's a really intriguing book, and doesn't have really anything much to do with Game Theory (which I was reading the other night with a fit of insomnia).

Posted by joe at 11:21 PM

a tad damp

It's one of those liquid sunshine days in Portland as we wrap up our stay here. A few minutes ago, we ducked into the Portland Coffee Shop at SW Broadway and SW Alder St. I've got to say, if you like a really rich Breve - this is place to stop by. They've got heavy cream under the counter, not the half-n-half stuff that you'd usually get at Starbucks or the like.

I've made it a point to NOT go to anything familiar this trip, and it's been really rewarding. Of course, the exception to that rule has been Powells, but then you can't really expect miracles from a book junkie you know...

Speaking of other nifty places we ran into, Karen and I really enjoyed dinner at La Terrazza last night. It's sort of a mixture between cafe style and sit-down, but the food was very nice, exceptionally quick service, and the folks there were extremely friendly.

Oh yeah, happy birthday to me!

Posted by joe at 03:54 PM

May 21, 2005

Now that's just plain amusing

Yeah, I'm reading a little while the laptop charges. So I went to the Seattle PI interview excerpts from E3. The PI (Todd Bishop) is interviewing Robbie Bach (head XBoxer at MS), and the following question was posted:

Bishop: I talked with Sony executive Kazuo Hirai, and he said they do see online gaming becoming a somewhat more centralized system with the PlayStation 3. And at their briefing this week, they put up a slide that called it the PlayStation Network.

Bach: Let's put that in context. We've been writing real code and delivering a service for three years. We have 2 million subscribers. They have a slide.

I can't tell you how that made me smile. So many, many times people are asking small developers "Well, don't you see Microsoft as competition?", "What if Microsoft does X...", that sort of thing. It just makes you want to shout. And where they're the underdog, they're gettin' hit with the same thing.

To be fair, they are way ahead in providing a centralized online service for gaming, but there's no way I'd discount Sony out of the market on that count alone.

Posted by joe at 11:54 AM

NW 18th Ave & NW Glisan St

After wearing out my eyes at the Saturday market in downtown Portland, I've hopped onto various public transit items and ended up in the Nob Hill area (I think), and started walking south, back towards the core.

I stopped in a coffee shop when it started to drizzle a little heavily, and found that they both had free wireless and a wonderful strip of electrical all around the inside wall. So now I'm recharging the laptop a bit, enjoying a lovely breve, and figuring out where I'm heading next.

The nob hill is a neat area, with lots of turn of the century houses that have made a really quite elegant transfer into apartments, duplexs and such. Back towards the core, it's a lot more built up into larger apartment buildings and all sparkly loft buildings in the pearl district. There is construction ongoing at what looks like it will be an incredibly lovely park at the corner of NW Northrup and 10th Ave NW. It's a place I want to come back and see in a year or two.

Where to now? Ah, the choices...

Posted by joe at 11:37 AM

May 20, 2005

Clyde Hotel, Portland

We're hanging out in the Clyde Hotel in Portland, OR for the weekend. Karen's teaching tomorrow, and I'm planning on goofing. I was last in Portland for an OSCON a few years back and really enjoyed the city. I'm looking forward to meandering about tomorrow at liesure.

The train made for a lovely trip down this afternoon, and I mostly slept to be honest. Didn't realize how tired I was until I was slouched in the seat, head resting on my chest, with Karen saying something to me when I realized that I'd completely nodded off and hadn't a clue what she was talking about. She took it very graciously.

We grabbed a bite and wandered a bit, of course taking the quick walk through Powells to get our bearings again. I've got plan how I'm going to fill that suitcase you know...

I think my big goal for tomorrow is to get down to the Saturday market near the river. That and some coffee shop time - gotta try the local stuff! I'll hold off on serious bookstoring until Karen's freed up from teaching. And it's not really very far away - all of two blocks from the hotel.

Speaking of, the Clyde is a neat place. It has an old style, my first thought as I came in was "Wow, very european". The folks watching the lobby were very friendly. And they have free Wifi to compliment that wonderful old-style charm as well. It's basically on the edge of the Pearl district, and literally two blocks from Powells. That's got to recommend it too. :) We thought about Hotel Lucia, and I suspect that Karen had really wanted to get a room at the Mark Spencer. Karen liked the older style of this place, and apparently the Mark Spencer was booked - so the Clyde it is.

Posted by joe at 09:47 PM

Its one of "THOSE" nights

freakin insomnia.

Hey - here is a picture of one spacecraft taken from another - around Mars.

Oh - and dummynet is embedded in MacOS X... Although that would make a fairly expensive router or bridge.

I don't care for insomnia, and I get it occasionally.

Even reading Game Theory isn't helping much.

Posted by joe at 01:36 AM

May 19, 2005

notes from the scratchpad next to my desk

I've been working on two items at the office that I think I want to cobble together into something more real and post it up here (or on it's own page) - someplace so when folks like me are searching Google for some ideas and tips, they'll find it.

The first is converting Visual Studio build setups to use NAnt. I'm pretty familiar with Ant, having used it and CruiseControl both previously and with excellent success. But getting into the details of NAnt has been amazingly painful. The documentation isn't nearly as complete, and at least with our setup, the nifty tools to help create build files has been almost completely a bust. That being said, I've learned an awful lot about reading the XML format of .csproj files and converting that (by hand) into NAnt build setups. I think some proper notes on it are in order, for the next feller to find.

The second is setting up a machine to act as a simulated 56k dialup connection. Now that may sound really strange, but it's surprisingly difficult to find an analog phone line in the modern office - either because of VoIP or because all the phones are some custom PBX strangeness. Getting a phone line for constant testing is an option, but it's a $30 a month option. Again - not much, but when you could spend $50 for a junker PC and a couple of nic's, why bother? The only trick is getting the recipe to install something to do that 56k bottleneck magic.

It just so happens that I learned about dummynet at my last gig, but lots of folks find FreeBSD rather intimidating. Now there's actually quite a bit of information out there on using dummynet (and ipfw) to do all sorts of nifty traffic shaping, but nobody has really scrawled out a recipe for making a one-machine 56k (or whatever) dialup simulation. I think that's probably pretty worthwhile, so I'll kick out my chickenscratch notes when I've completed the project.

Posted by joe at 11:54 PM

Music Baton

Okay, I'll report:

Music Volume
13Gb, 2984 Songs. Yeah - I'm the lightweight compared to Byron or Gus.

The Last CD I bought
Gaelic Storm : Tree

Song playing right now
nope, nada - zip

Five songs that are somethin' to me
Pur Natus est Nobis (Chant)
Flight of the Cosmic Hippo (Bela Fleck)
Red Haired Mairy (Dervish)
Green Island Lullaby (Vienna Teng)
Solsbury Hill (Peter Gabriel)

But I'm not passing on the baton to nobody, cause you guys all have way more music than I do...

Posted by joe at 09:29 PM

May 18, 2005

Development documentation update

Ah, now that's just sweet.

One the features that I've been hoping and waiting for finally kicked in for the first time - automatic update of developer documentation from the mothership!

As I was fiddling with XCode today, the little pop-up window came up and said "Hey Joe, where you going with that gun in your hand..."

Ok, maybe not.

It actually asked if I wanted to automagically get the latest developer docs. It required a login to ADC (no problem, I have that account) and now it's updating on my machine.

In the meantime, I'm having a grand ole time banging my head against web services support and making that integration kick between .NET web services (which all seem to have complex input types, no matter how simple you make 'em) and the WebServices framework. WSMakeStubs is proving to be a great learning tool, but it's clear I'll need to modify the code a bit and not just rely on the basic stub generation because the API against which I'm beating requires some additional SOAP headers.

I think I'll go pick on some simpler API to learn how this whole thing works, then I'll come back and attack the more complex fellow I'm fiddling with now.

Posted by joe at 06:17 PM

May 16, 2005

Now that's what I was waiting to hear...

Word from E3 is that at least the most popular XBox 1 games will be made compatible with XBox 360, probably through the use of emulation software.

Ah, that's what I was waiting to hear...

Now I just need to figure out what we're going to do to improve the sound at home without spending a bundle...

Posted by joe at 09:12 PM

May 15, 2005

IT Conversations and new tech

It's my writing day. So I'm writing.

A couple of nights ago I listed to Peter Yared on ITConversations about ActiveGrid - an intriguing set of technologies that I hadn't paid a whole lot of attention to. In just listening to his roll, I thought that maybe their company had a bit of an odd take on what the role of open-source was to play in this game, but if his crew has really made some compelling tech, well - I'm not going to complain.

One thing I'll easily agree on is that J2EE and all that "stuff" went way to heavy weight. Yared made some amusing comments on how the official Java folks kept recreating the Apache Jakarta wheels, with just a slight twist. Yep. So what's the point in that exactly?

So maybe I'll have to go check out this ActiveGrid stuff and see what's in there. Probably about the same time that I'll be doing a little Ruby on Rails to see how that works too.

The other IT Conversation that was really intriguing was Kim Cameron talking about this InfoCard thingy that's sounding like a Passport v2 effort from Microsoft. There's some detail on Alex Barnett's blog, but really the conversation on ITConversations is the thing to listen towards for some general ideas. I don't know how Microsoft will do in the details, but Cameron sounds like he's done the right kind of thinking on the outside of it at least.

Posted by joe at 02:18 PM

Mike Ash Dashboard Rant

It's making the rounds, so I went and read Mike Ash's Rant on Dashboard.

The direction he's coming from is, well, very different from the way I'm seeing dashboard widget development.

These widget critters are javascript web applications given reach down onto the desktop level with a couple of interesting object tidbits being made available if a programmer would like. Mike relates this as "basicallly, a pretty wrapper around WebKit", which is also reasonably close. And then he goes right down into territory I didn't get. He immediately starts comparing the whole development environment for widgets (non-existant) to the Cocoa / Desktop Application development environment.

The mac has several web development environments, and none of them are really provided by Apple. I mean, yeah - sure, you can write javascript in XCode, and it probably has some nice hack to do syntax coloring and stuff, but the whole development environment is focused around C and Objective-C first, with the barest smattering for java. (when compared to eclipse anyway). So why would you expect that all of sudden it's going to be an awesome web development system?

I can see a complaint that Apple hasn't provided a sweet, awesome, web development environment for free - but then, "Macrodobe" has a pretty good bit of code out there for just that. I couldn't even begin to say anything about his complaint on using the widget.system() call - that could easily be quite valid. But going from those two basic pieces to the statement "The Dashboard environment is simply a gigantic step backwards in almost every way." is just beyond me.

He first calls out that it's all web development, and then cites how it doesn't have built-in development tools, a buggy API call, no guaranteed control over the UI look of a browser based application, and poor localization assitance and then claims it's a huge step backwards.

Uhm. Huh?

Then again, maybe he was just having a really, really bad day and needed to just vent. Heh. Not like I've not done something similiar a time or three.

Posted by joe at 02:00 PM

XBox 360 - why I'm in "wait and see"

I'm a pretty big fan of the XBox, which may be relatively surprising as I'm not generally a huge fan of Microsoft. I never owned a console game prior to XBox, and I'll easily admit that one of the biggest things I'd been looking forward to was Halo - which is what introduced me to the Xbox and that whole setup.

Since then, Microsoft has clearly made back their "hardware loss" on the console itself - I've purchased quite a pile of games over the past three years. And yes, including Halo 2 (although I'm still annoyed that I couldn't play Co-op in Halo2 over Xbox Live).

So it's not surprising that I was out scanning for information the morning after Microsoft's big "release" on the MTV thing. I don't watch TV, but it didn't take long to catch the specs and then Scoble posted a link to a video about the new Xbox 360 critter. The raw compute power in this thing is just damned impressive. By all rights, I figure this system has just about enough power to give real-time video effects a just-under-complete-cinematic quality. And they have taken some clues from Sony - Microsoft is including the potential, if not the built in pieces, to have a video input mechanism. It will be really interesting to see what comes of that, just all in it's own space.

(As an aside, I know a lot of people are freaked out about having a camera viewing them all the time, but an unobtrusive and non-linked video (i.e. it's not sending it's feed out anywhere) has some really incredible potential for some new interface mechanisms that have only begun to be investigated. It's gone beyond simple color matching and into the realm of heavy duty computer vision technologies. Right now games are driving it, but soon... well, who knows.)

It was actually watching this video that's made me think "I want to wait and see what's going to happen". Microsoft is supposed to be releaising this thing for holiday 2005 sales. Ok, nice. Good business decision for MS. But what they aren't saying is whether or not I can play my older games on the new system. That's bothersome, and something that Sony is doing very well. I'm not saying it's easy - just that the "no mention" is disconcerting, and waving me off a bit. The Seattle PI has an article by Todd Bishop that calls this out very explicitly.

Some of the things they did say about how it was so cool actually turned me off. I don't give a shit about changing faceplate colors. Or really about "buying" lots of things over some XBox-live enabled marketplace. I would like to be able to record video for later viewing - and I know it's capable of it. If they'll enable a PVR like functionality is completely uncertain. The audio/video chat stuff is neat, and I like that functionality now, but I don't know how well it's all going to work. Would I be able to maintain an ambient connection with family in Missouri using this thing? I can with iChat right now...

So the end result is that I'm not raving to get one of these things right off the bat. I'm not raving for a Sony Playstation either (although those cell processors seem really cool!). And I'm clearly outside the mainstream audience that they're aiming for with this kind of technology.

Posted by joe at 01:35 PM

Tug boat races

Karen and I spent most of the day down at the waterfront today, enjoying the atmosphere and indulgences of the 21st annual tugboat races as the Port of Seattle strutted it's stuff and folks were out to have a good time.

Now racing these things is, well, a bit odd. But I suppose that if someone makes something that moves, someone else will try and race 'em.

I didn't actually watch the races all that much, but it was neat seeing all the tugboats, wandering through the maritime museum there, and getting a free tour on one of the argosy boats. I got some really neat pictures of the cranes from the water that I'll post a bit later.

Posted by joe at 01:13 AM

May 12, 2005

A huge Thank You to Brent Simmons!

Quite the day!

First off, a HUGE thank you to Brent Simmons of NetNewsWire fame for coming and spending the evening talking to our XCoder group. We had a pretty normal attendance at the group - maybe 14 folks. It was a great open discussion, and a nice break from our current routine of going through "The Book" while getting everyone up to speed with programming in Cocoa.

The conversation sort of wandered in and out of technical stuff, and it made me wish I'd invited both Brent and Sheila for the discussion.

And while all this was going on, I hadn't even realized that they released version 2.0 of NetNewsWire. So of course I took a few minutes to go get the latest bits from their site and install it. I had to close the laptop pretty quick though, otherwise I would have been browsing all the feeds that I hadn't yet seen instead of talking with Brent!

Posted by joe at 09:44 PM

May 11, 2005

pier in port townsend

Yeah, more lines. That and piers fascinate me. They're such an akward and established interface between man, land, and water.

Posted by joe at 11:27 PM

May 10, 2005

lines

I snapped this photo while we were in Port Townsend simply because I liked the look of all the lines.

Posted by joe at 06:36 PM

May 09, 2005

ambient displays

I've been thinking about some of the ambient display mechanisms that can be implemented of late. I have a metric boat load (yes, that's a very technical term) of data to convey and I'd like to convey a few pieces of it in a quick, constantly available manner. So the question is - how.

There's the binary "yeah/boo" sort of thing you can get with a lava lamp (or pair) - made popular with the continuous integration sorts of setups. Unfortunately, some of the good stuff I want to display is more of a gauge sort of thing. The ambient dashboard is one possible device, but it doesn't have a quality that I'd really like to have: easy visibility to 10+ people across a distance of 20' or so.

I've thought about the old "reclaim a 17" monitor and set it's resolution low" sort of thing - just burn the phosphors and you can get some decent function pretty effectively. And that's really about where I'm leaning. I did some searching around to see if there was anything like a large digital sign, but nothing was effectively available that I could see that wasn't either "You drive it with your own video electronics" sorts of stuff or big-ole LED display boards. I keep hoping that e-ink would commercialize their technology such that I could purchase a display that I could just hook into a PC with a VGA cable. No such luck. They keep having these announcements and press, but I'm not seeing anything get off the ground that I can purchase as an end consumer and use as a big poster-board display on the wall. Back in 2000 and 2001, there were several announcements and prototypes. I'm still not seeing it available though.

While e-ink is still floundering in getting something out the door, their competitor Gyricon Media seems to at least have some products available. I'll have to see where they land out, but it at least looks promising. And if all else fails, I can always burn phosphors...

Posted by joe at 11:27 PM

In other news...

In other news, while we were tromping about the beaches north of Port Townsend, we spotted this little birdy having a low-tide lunchtime snack. Karen and I tried to get a little closer for a better photo, but he spooked and we lost it.

Posted by joe at 07:17 PM

MU Professor Ed Brent

A professor (Ed Brent) from University of Missouri (my alma mater and past employer) made the stunning bastion of technical news USA Today with an article about having software grade papers. As you might expect, it's exceptionally light on real technical detail, but interesting in concept.

I don't know if I buy the quick USA-Today premise of software grading a term paper, but I could envision an impressive tool that might help students normalize their english towards a norm using statistical language analysis.

Posted by joe at 07:15 PM

May 08, 2005

Port Townsend

We spent most of this weekend in Port Townsend, WA. Over on the peninsula and up a bit from Seattle - still down in the sound, but very ocean oriented.

We stayed at Fort Worden, which was an emplaced artillery position in the past and is now a state park. You can rent some of the houses on site for fairly cheap, and there's all sorts of trails to beaches that are super easily accessible. I thought maybe we'd get some kite flying in, but Saturday wasn't very windy so we spent it mostly wandering about.

We took an easy time back, stopping the old town section of Port Townsend for breakfast, and ultimately got caught up in wandering around and looking at artwork and beads. Karen snuck out without too many more beads for her stash, and it made for an interesting afternoon.

Posted by joe at 07:01 PM

May 06, 2005

dashboard sample code

Yeah, you can all view Dashboard widgets pretty directly and see sample code, but Apple's posted up some nice examples for those of you interested in this sort of thing.

Fader - fading elements
Profile System - get system profile info
Scroller - scrolling about
Stretcher - resizing a widget

Posted by joe at 03:36 PM

Firefly

Not having cable and generally not watching TV means that I miss out on a few things. I'm making up some of the references using Netflix, but it's not always immediate with what's "happenin" in the world of broadcast, so I'm usually a bit late.

With the recent trailer for Serenity getting so much noise, I finally resolved myself to finding the series Firefly and checking it out.

What I can't quite figure out is why it was cancelled. It's not a compelling show on the order of the Soprano's, but it's an exceptionally fine piece of episodic science fiction, and far and away superior to a huge amount of other TV out there. Then again, I don't tend to watch TV, so I could easily be biased.

I have Karen hooked on it now too - which is almost a shame since the storyline was really quite cut off in terms of the arc of character development and realization that I'd hoped to see. But I have hope for the movie, and I'm anxious to see what comes from it.

Posted by joe at 09:58 AM

May 04, 2005

To all you folks at Apple - thank you, this is excellent work

I have been settling in with Tiger over the past days. Sometimes spending a lot of time with it, and sometimes brushing past and moving on quickly. Pretty much my standard mode of operations.

I'm surprised to find myself really liking Dashboard. And I'm also convinced that it's not just "a Konfabulator rip-off". The core tech of how it works is so similiar as to be almost identical, but putting it into Expose was a master stroke of effectiveness. I hadn't realized that I wasn't using Konfabulator (yes, I bought it a ways back) because it cluttered up my visual space, but that was pretty much the core of it.

The UI components are, well, pretty hard to get used to. I'm not sure what I think of the UI in Mail, so I'm trying to give it more time. The icon in a button thing - well, that just really doesn't do much for me. I'd rather have an icon, or a button. Not some bastardized mixture of the two. Heh - now watch me completely change my tune in another 6 months. The little clock-like progress indicators in Mail are really neat though.

I do wish that Rendezvous didn't need to get it's name changed. Bonjour sucks as a name.

Had to do some fiddling with Unitkit to make it all "go". Not having write access to /usr/local was annoying enough that I just changed the ownership on it and said done. Unitkit is working nicely now.

Posted by joe at 11:44 PM

python pieces

It's been a python couple of days for me, and the really interesting thing is I didn't expect it.

Used to be that when I needed to hack something out really quick to prototype, convert some data, or wedge a shim into some process I would use perl. I knew it reasonably well, and because I was familiar with it's quirks, it was that kind of insanely fast to develop with language that you get used to using in "all the dark corners". (I am still convinced perl keeps most of the internet moving.)

But I found, over the past few days, that Perl isn't the tool that readily snaps into my hand. python is the hammer I'm swinging now. And that's actually pretty surprising to me.

Now that's not to say that I'm making nice "pythonic" things, nor am I being particularly elegant about the code I'm swagging out (it's the rough sketching after all). It is simply effective, fast, trial and error code. Being able to pop open an interactive shell and start querying the variables you have and what methods each object can invoke interactively - well, that's a hell of a toolset. And I have learned, after more than a few left turns, that if you're doing python on Windows, you might as well go get the ActiveState installer and run from there. It's open and it is immediately complete. I'm sure that I'll just show my complete windows ignorance, but I had NO idea that you could query into SQLServer (using an ODBC connection) and get results back via python's DBI interface. Man, that is making my life SO much easier at the moment. That and cPickle.

I'm not even sure where Perl stopped being the language that I swagged things out. Maybe at the last job, where I really got into python on a day to day basis. Maybe it's just lack of use of Perl over a few years.

Posted by joe at 12:18 AM

May 01, 2005

Seattle Trafffic dashboard widget

Yeah, I just had to do it:

Seattle Traffic Dashboard Widget

It's completely unfancy, and doesn't do half the nice things you'd expect a proper "widget" to do really, but it's there and available for those of us in Seattle who want to see how the traffic is doing on the bridges.

Posted by joe at 10:14 PM

readline and docutils in tiger

Since I've been doing a ton of stuff in python, it's getting a fair bit of attention immediately upon the install of Tiger on my iBook.

So far, I'd recommend installing readline support right off the bat. There's a great hint at MacOSX hints that shows you how, but for summary sake:

python `python -c "import pimp; print pimp.__file__"` -i readline

Works great on tiger.

I've also snagged and installed pyObjC, docutils, and the most recent ReSTedit.

Posted by joe at 02:28 PM

Tiger - wow...

Yesterday was installing, today was (and is) learning.

I ceased my various experiments and fiddling when Randy (a friend from Missouri) came back from his hike out on the Peninsula. We spent the rest of the evening chatting about technology, university politics, and driving forces in central IT at large Universities. I saw him off this morning to return the rental car and head back to Missouri, so I was back at the experimenting again.

First, there is a truly HUGE amount of information that's just flooded out onto the net. Everyone's talking about this thing or that thing on their blogs, but the flood includes MacOS X hints (changing the PhoneBook widget to use Google maps instead of MapQuest), a pile of documentation from Apple (Sync Services, Quicktime, Core Data, Dashboard, Automator, and XCode 2.0), and tutorials at Cocoa Dev Central (Building a Core Data application and Core Data Class Overview).

More reading that I can swallow in one sitting.

I think I'll re-iterate the coolest little feature that I found listed on the net today - in any Cocoa application, mouse over a word and hold down Command-Control-D and the word will highlight and then display an overlaid lookup from the built-in Oxford English Dictionary. Is that cool or what?!

Posted by joe at 01:04 PM