Musings, Written on Infinite Tape

Thursday, April 13, 2006

Moving...

I want to do some nicer formatting and control for my images from photography, so I'm shifting this blog over onto my new wordpress setup. http://www.infinitetape.com/wordpress/

Wednesday, November 09, 2005

SQL Server 2005 for Developers

I really enjoy Euan Garden's talks. I know a fair bit about SQL05 already, but how can you miss the guy in the Hawaiian shirt.

He had some video looping when I came in. One was apparently from the SQL Server 05 launch event last week. The promo video included the crew at Orange County Choppers and their 'experience' with the tool. Mikey: "SQL Server is .... more ... better than Oracle." Apparently, they had a contest to give a custom Microsoft bike to the best transition project from Oracle to SQL05. The winner had a 9TB database that they migrated.

Camtasia and VPC do not get along. The demos will be on the blog. http://blogs.msdn.com/euanga.

He has 60 slides. Anyone want to see them? No? Go figure.

Euan shows off the Management Studio. Pretty graphs showing resource usage across the server, sizes, etc., all built into the Studio. Trace rights are now a grantable right, so you don't need to be sysadmin to use Profiler. There is more security control, but alas it's now more complex.

"I wish we had Intellisense in T-SQL. Oh wait, I'm the one who cut that feature. I really regret that every time I have to give a demo."

He mentioned that it's a bad idea to prefix your user stored procedures with sp_. That's not something I'd heard of before, but I found some more info here.

Integration services inside Studio. He's using the neat graphical workflow stuff to pull the classic Paradox FishFacts demo db into SQL05. You need a couple of tricks. Use the Jet engine for input with Paradox 5.x as the External Parameter and the folder for the database in the path. Connect the Source to a Sql Server Destination node and hit run. All done. The integration services engine is so powerful that they're developing an 8 day training course.

Next year, there will be a Reporting Services Express server that comes with SQL Express, including a lightweight report builder. The restriction is that the data for the reports must come from the local SQL Express instance. Report Builder lets the dba/developer define a metamodel for end users. This metamodel understands the relationships in the db, hopefully preventing the users from creating huge, bad queries. The Report Builder control understands anything in a DataSet object, so you don't need SQL Server to use it.

Effective xUnit Testing

It was really hard to get out of bed this morning. I skipped breakfast and went right to my first talk.

Charlie Calvert was talking about using DUnit and NUnit to do unit testing.

(work in progress)

Tuesday, November 08, 2005

Vendor Reception and Meet the Teams

The vendor reception was set up with a variety of food buffets scattered around the exhibit hall. Not a bad idea, except that the room is barely large enough to hold the exhibits, let alone food and diners. The food was mediocre, though not as bad as the cheap sheet pizza they've had for this event the last two years. The desserts were great!


I can't really say the same for the Meet the Teams. Last year, they did the Delphi team as a casual, science-fair layout. You could visit with any of the groups within the Delphi team in a casual forum. They tried it this year for all the teams, but they did it in a relatively small room (smaller than the exhibit hall, with a lower ceiling), so it was very noisy. And, we were all standing, so there was no way to stay comfortable.


I did get to ask Randy to clarify a couple of things. First, they do have a WinForms client, and they seriously thought about releasing it this year. However, they determined that it would be too confusing to have three different clients for Windows, so the elected to hold it back. He said they'd revisit that when they retire the Win32 client, based on how good the CPC looks when it finally has all the features of the Win32 client.


We also talked about using .NET for Alternate Property Editors. That's in the works, but even better, they've already got an implementation for faster APE display now, without the form server. For simple workflows that don't need a lot of heavy logic or external calls, you can design your workflow in an XML based format, and the client can render from that source. This is the same technology that the Web client uses.

Tiny Lab This Year

 Posted by Picasa

Developers, Sugar, and Marketing

 Posted by Picasa

Randy Listens to Bug Reports

 Posted by Picasa

StarTeam SDK New Features

The R2 release adds several new SDK Features.


SDK apps now have access to the credential storage system in the StarTeam toolbar. The server object has new static and instance methods to let you determine if a cached authentication is available and allow you to log in using the stored credentials. You can't actually get the credentials in your code, but you call do server.autoLogOn() to use them. Randy mentioned that there are anti-spoofing mechanisms in the toolbar to prevent people from getting at your credentials.


There are a new series of objects collectively known as the CheckoutManager that give you access to capabilities previously reserved for Borland apps. For example, you can now enable MPX checkouts from the SDK. You can also get checkout events and exceptions. You can route checkouts to java or .NET streams rather than files. You can intercept the data, munge it with a Filter, then pass it back to the SDK (carefully...if you're doing MPX, your filter needs to be thread-safe, as the downloads can be happening in parallel). And, you can cancel a long set of downloads at any time.


There's better support for dealing with Not-In-View items or folders. There's also work in progress for the client and SDK to notice the difference between Not-In-View and Deleted-From-Project (aka Obsolete). Currently, the SDK can't tell the difference.
You can now do eventing without MPX, sort of. The SDK provides you with classes to handle the polling you would normally do in the background with heavy optimization.


Randy dropped a couple more hints. The new merge tool will definitely be useable from the SDK. They also have a WinForms implementation of the CPC in house, and they're debating what to do with it. They're looking at doing view merges in a temporary workspace, allowing you to build and test your merged code before committing it to the repository. Sweet.

New Features in CaliberRM

The new Tracer allows you to trace from Caliber into StarTeam, against any of the objects that live there. The new Publisher allows you publish Caliber requirements into StarTeam requirements, and then keep republishing them as new baselines are created. The updates change the original StarTeam requirements rather than creating new ones. You can also customize the field mappings.

There will be a CaliberRM 2005 R2 SP1 in about 90 days. It will add a first-class integration for Test Director and Quality Center. Tests will show up in the traceability matrix. Published requirements will come over as native TD/QC requirements, including the tree structure.

In 2006, they plan on adding improved baselining as well as making usability refinements.

New Features in StarTeam

John Sileski talked a lot about the 2005 and 2005 R2 features. I already knew those, so I'm going to skip them. There are some good things coming, though.

The VS2005 integration is 'coming soon'. I'll find out more tonight. There will be a stronger integration with Test Director and Quality Center.

There is a huge new focus on the SCM functionality. For the past year, they've been focused on doing integrations with the other Borland products. Now, they turn back to the core. The next major release will come next year. Atomic transactions and commit sets. Better view merging tools. Eliminating the Win32 client, and bringing all the functionality to the new multi-platform client. They are running a field test, and I intend on getting involved. Of course, if I do, there are likely things that I can't say anymore.

Oh, and they're replacing Visual Diff and Merge. They're developing a brand new tool, based on some heavy-duty algorithms (some of which they licensed), and accessible via the SDK. It's about time!

Question: Will there be updates to the EA workflow designer?
Answer: No, but there may be new features introduced as part of CoreSDP.

Question: Now that there's a .NET SDK, can we do custom forms in .NET rather than Java?
Answer: Not yet, but we plan on fixing that.

Question: Are you really killing off the Win32 client?
Answer: Yes

That last one left me with some trepidation, but I got the 2005 R2 version of the CPC, and they've fixed a lot of my issues with it. Maybe I'll try using it for a while.

It's Hard to Get a Picture of Marco

The man just doesn't seem to stop moving. :-) Posted by Picasa

New Features in Together

This had me confused. The vast majority of developers at the show are Delphi programmers. So, why is the lion's share of Together and CoreSDP effort focused on Java?


Oh, and if you're a JBuilder user, you're out of luck for Together 2006. They scrapped it in favor of the Eclipse version.


The 2006 versions bring support for UML 2.0. The .NET versions now support LiveSource technology for both Delphi and C#, in BDS or VS.NET. The VS2005 update is coming in Q1 2006. The version that will bridge between UML and Microsoft's new DSL modeling language should be out in Q3 2006.


Performance for the VS.NET version should drastically improve, since it now shares the code base with the Delphi integration.

Michael Swindell on the Capabilities of BDS

 Posted by Picasa

Opening Session

Ended up at breakfast an hour early, and I gave a demo of our software to Joe Hendricks of Thoughtworks and Marco Cantu (yes, that Marco). Joe wants to introduce me to John Kaster tonight at the vendor show, which I guess is a good reason to stick around for it rather than just wander off to Metreon.

This would have been live, but they shut off the WiFi in the room. No, I don't know why.

9:05 AM
David I takes the stage. This conference is all about the developers.
Chief marketing guy on stage. One year ago, the SDO vision was launched. We're going to show the 2006 tools, as well as the future vision. Tomorrow, Boz will show us Tempo and 'project Maya', a new system for requirements engineering (different from requirements management). Core SDP is the entire suite, multi-language, multi-platform, based on Eclipse.
9:15 AM
New president and CEO (as of today!), Tod Nielsen. Software developers rule the world.
Mission: Deliver business value through successful software projects.
9:22 AM
David I again.
Customer of the Year: Cintas Corporation & Visa International Asia Pacific
Partner of the Year: EDS
Borland Technology Partner: AutomatedQA Corporation, Raize Software, Extended Systems, BuildForge
9:30AM
David I. 'Who wants to see some source code?' Huge roar.
'Who wants to see some Java source code?' Small applause and some groans. :-)
Charles Overbeck and Ken Chan, JBuilder R&D.
JBuilder has a "Peers" window, which integrates a IM client in the IDE. Can share a live coding session. This includes the GUI designer. Diffs are shown within the IDE coding window, rather than in a separate app, including recent history (without source control involved) and including remote edits.
9:40 AM
David I: 'Who wants to see some Delphi and C++ code?' Huge roar again.
Michael Swindell: 'Delphi AND C++ Builder' -> Borland Developer Studio. Also Delphi for .NET and C#Builder, all in the same IDE. Faster IDE performance (big applause). "VCL Live Guidelines", another good steal from Apple's XCode. More built in refactoring tools. Quality Central access within the IDE. StarTeam and Caliber integrations. Full Together featureset for Delphi.NET and C#, including LiveSource diagrams.
The Caliber support in the IDE allows you to insert the requirement text as a comment in the source file, and you can do a Requirements~Update to pick up any changes.
Borland is now using Caliber and StarTeam for their internal use.
10:12 AM
Allen Bauer: Chief Scientist for Delphi IDE.
Live templates dynamically insert code. (I'm not sure if that would be helpful or irritating.) Ok, maybe it is helpful:
Type in C++
switch (BorderStyle)
and get
switch (BorderStyle){
case bsSingle: break;
case bsSizable: break;
...
default:
}
It can also automatically declare variables if you forget, running the refactoring tools in the background. The Delphi IDE will let you declare a variable anywhere in the code, and when you finish with the declaration, it will move it up into the var section.

David I... I must be at BorCon

 Posted by Picasa

The Giant Letters! Sponsored by Microsoft!

 Posted by Picasa

Yes, It's a Software Conference

 Posted by Picasa

Monday, November 07, 2005

Tasty...

....but a bit out of focus. I was too tired and sore to go out Monday night, so I ordered in from the Japanese restaurant on the corner of the hotel. Great accompaniment to a Colts win! Posted by Picasa

Reading Tea Leaves

Reading Tea Leaves is a talk that was first given by Danny Thorpe in 1999, and it used to be a 1-hour session. Today, we did four hours worth, and it was still a bit rushed. For those who don't know, Danny is the lead coder for the Delphi compiler, including its refactoring into a .NET compiler. He also wrote the old Tomes of Delphi books. This guy knows his stuff. Side note, the Delphi compiler is 3.5MLOC.

Key number one: you need to separate what you know you wrote from what it's actually doing. To be effective, you have to forget that you wrote the code.

Multiprocessing is the biggest potential hurdle for developers in the future. Since processors are not going to get much faster, you're going to encounter more cores. So, if you've got a mutlithreaded app, you must test with multiple CPUs where your app is sensitive to contention. You can get away with HyperThreaded if you don't care that your on-chip cache is shared. You can get away with dual-core if you don't care about PCI bus contention. Going from 1 processor to 2 is the big jump...n-way is only incrementally harder.

He described a scenario where he's seen a user move the mouse rapidly and crash the software. Now, he underestimated just how rapidly. This must have been a Quake player, because they shook the mouse so fast that the message queue ran out of memory. Yikes!

I don't want to cover everything, because you really need to hear Danny speak. (I'll relay more to my coworkers in my trip report.) Here's some highlights:
App disappears? Likely, you overflowed the stack and the object whose exception handler was supposed to be called is actually already gone or corrupt. If Windows can't locate a valid exception handler, poof!

Bug only shows up when you turn on Delphi's compiler optimizations? Turning on optimization causes the compiler to do lifetime analysis on local vars, holding them in registers where it can. Sounds like you forgot initialize a variable later in the method, where the compiler has mapped that variable into a register that was already used further up and probably non-zero.
CPU view is your friend. If you see an address in $004nnnnn, it's probably data in your code. $7Cnnnnnn is Windows code.

Need to inject code into a process? Send a system-wide message (like change wallpaper or resolution, etc.) that gets sent to all top-level windows. This will cause your dll to get loaded into every process that message hits. Great for hacking network games...not that Danny would do something like that.

I've got 3 more pages of notes. Come to the conference next year if you want more.

Danny Shows Off the CPU View

 Posted by Picasa

Use Case Modeling

The alarm sounded too early, at least from my perspective. My adventures last night left me energized, which meant I didn't get to sleep until closer to midnight (sleep+24 hours).

I wandered downstairs about 45 minutes before the morning session. Since there was no conference session today, the line at the restaurant was quite long, so I hit the deli instead. Now, this is still inside the hotel, so don't think this is like the deli in Palm Springs with the wonderful breakfasts and desserts. No, this is your choice of day-old mixed fruit and stale bagels. I grabbed some yogurt and the 'breakfast sandwich'...a croissant with sliced ham and american cheese, expertly microwaved to order while in plastic wrap, creating a greasy mess. Ugh.

The Use Case session was only moderately interesting. It was a basic introduction to use case diagramming, setting you up for all the wonderful tools that Borland offers, though not in a sales-pitch sort of way (thankfully).

I think the things to take away are that people should be aware of the basic diagrammatic grammar (so we can communicate in a common language), and they should use the use case diagrams as a magic mirror. They are a transform that you can use to discover what plain text may not be able to express. Whether the end result stays as a diagram or goes back to text is up to you.

One interesting fact that dropped: remember all that talk about SDO tools from last year. You know, the future vision for their suite? Well, at least for now, it's all based around Java and Eclipse. If you're in Win32 or .NET, you're out of luck, at least for the forseeable future.

Con Lunch


This looks tasty, but somehow, they always manage to remove any flavor at these events. Posted by Picasa

Mmmm....

 
 Posted by Picasa

Traveler or Tourist?

"Be a traveler, not a tourist." That's the tag line of Tony Bourdain's current show. He goes traipsing around strange countries, looking for what's good (read particularly odd to outsiders) for locals, not the average tourist. His intent is to show that tourist fare is primarily homogenized garbage, leaving you without a real feel for the country or its people.

I spoke with my father a few weeks ago, and he related his stories of business trips to San Francisco from decades past. His key piece of advice was to not walk anywhere. The people who were actually walking at night were the ones that had nothing better to do and no place else to go. He described his brief attempts at being a walking traveler in SF to be an exercise in (sometimes-scary) oddity. There were people who scared you off with odd demeanor, as well as those with outrageously large odor radii. Of course, my dad at the time was walking back to the hotel with as much alcohol as he could carry, at the order of the company-owner's-son-slash-VP for a customer party.

So Sunday night I had a dilemma. Do I venture out on foot to find a meal, or do I hide in a taxi? I wanted to get a feel for the place, but I probably look like a slow moving gravy train to the wrong sort of people, and I'm on my own. I decide on a hybrid approach. I've been wanting to try Roy's since my last trip to San Jose. So, I made a reservation, figuring that I'd get in less trouble if I had a targeted destination in mind. I memorize the turns on my map, as there were only 2 of them, and headed out. I carried only my phone, license, corporate card, and a handful of dollar bills in case an impromptu tip was required.

On the cab ride in, there were some pretty scary folks on the street, and this was daytime. This was maybe a step beyond what I've seen on the far south side of Chicago or in DC. I figured I would just march straight ahead with a purpose. When I stepped out of the hotel, I was pleasantly surprised. The area it's in is the 'Union Square' part of town, which means it's where the high-end shopping is. On my walk, I passed places like Tiffany and Bulgari. The streets traffic was reminiscent of Michigan Avenue in Chicago...a couple of panhandlers but nothing out of hand.

Until I unknowingly passed the restaurant.

The more gleaming facade gave way to an environment where the old, established businesses were struggling, and many others had already given up under the crusing weight of city real estate. There was nothing flashy, just honest. A nice little Japanese place, family owned, that looked far more welcoming than the sterile joint inside the hotel. A Thai place filled with local couples. The local bookstore, independant after all these years. Now, I won't lie to you, there were some shadows down the alleys. I was definitely off the designated path for outsiders. But, it was well populated and friendly on the street without being cloying and commercial.

I did find my way, and I had a spectacular meal. The sashimi plate with house sake was tempting, but I knew I should have my mind clear to walk back. I instead started with Lobster Potstickers, which were interesting but ultimately a diappointment. The outer shell and peanut sauce drowned out most of the subtle notes of the lobster. The main course was a local halibut, pan seared and served with a dashi creme fraiche. The fish was fresh with a hint of sweetness, with the dashi (bonito broth, likely first pass) adding a rich, salty accent. This was accompanied by a rice pilaf made with short, red Himalayan rice with a pleasant, mixed texture. A side of string beans added a strong, earthy counter to the overall richness of the meal. There was also a blanched leek, which I felt only distracted from the rest of the course.

Now, before I even started on my entree, the waiter asked if I wanted dessert, because it would take 20 minutes to hand prepare. I ordered the chocolate lava souffle, which came served on a splash of raspberry reduction with a scoop of vanilla. There are only a handful of ingredients here, but the execution was flawless, including the fresh-from-the-oven molten chocolate core. At the end, just to remind you of the link to the everyday sundaes, there were slivers of ice cream cone hidden under the vanilla.

When the dessert arrived, the waiter brought me a handful of treats on a side plate. He said he had forgotten to bring me a second piece of bread, so he made these as an apology. I should ask busy waiters for bread more often, I suppose. Some fresh berries, along with two tarts and two cookies, all bite sized. The first tart was a standard lemon cream. The second, which I thought was chocolate, turned out to be hazelnut, a nice surprise. A pinwheel cookie, which expected to be chocolate and vanilla, turned out to be chocolate and orange zest. And this finished with a deeply caramelized coconut cookie. This was a wonderful meal compared with the hurried two-slices-of-chicken-on-white I had grabbed from the picked over feeding line as I rushed into the hotel.

On my way back, I took another wrong turn. (Stupid streets that don't meet at right angles...) I was tired and wanted to get back (sleep+21 hours), but I also was curious about what I might find. Unfortunately for the adventurous, all I found were more chain shops, though I now know where the Walgreens is for some Advil, and where Ghirardelli is for Marti's chocolates.

So am I a traveler or tourist? Well, I never was brave enough to wander into one of those out of the way places, but I probably wouldn't have any trouble doing so. That said, this is still the US (sort of), and I'm not sure I'd be so brave if I weren't speaking the language. Only time will tell.

Using StarTeam Effectively

This was an odd session. The room was full, about 25 people. The speaker, Scott Green, started off with a lot of what I considered to be pretty basic stuff. This was listed as an intermediate session, wasn't it? He actually walked through all the options in the client, explaining what they did. Wasn't it obvious?

After the first hour or so, I was ready to write this off as a refresher course. It was obvious from the "how long have you used StarTeam" survey that the only people in the room with more experience than me worked for StarBase or Borland. The teacher, an ex-StarBase guy, obviously knew his stuff, but he wasn't very smooth, which made the experience more frustrating.

Once the first break came, it was like a switch was flipped. Everyone gathered on their own into little groups to discuss things in more detail, and they did so spontaneously. this was the mental wakeup call I needed. Some good discussion, some caffeinated beverage (I'm at sleep+16 hours now), and some friendly people in an environment that would allow us to laugh about our big mistakes. When the break ended, Scott mentioned that one of his conversations is that users aren't being trained well enough to realize that file status actually work, which is why people use the file locks to go back to 'SourceSafe mode'. There were a few people in the room like that, and you could see the light bulbs turning on.

Things continuously got more interesting. The speaker started going into the ten types of views, along with the business cases for using them. While he wasn't always totally clear with his points, the crowd was awake enough to draw the necessary details out of him with a good discussion. At the end, the topic of backup came up. The discussion came down to myself, Scott, Steve Reynolds, and Joe Schulz. People are still fascinated that you can move to a 0-downtime model.

Quote of the session: "Hokey-Pokey Build Process". This technique is where you use moveable build labels or promotion states to include or exclude items. You put the CR in, you take the CR out, etc.

Sunday, November 06, 2005

Trips are Never Smooth

Wake up at 5 am. (Ok, really woke up at 3am because of the big storm.) Shower and dress. Drive down to the airport. My low fuel light turns on just before I get in the parking lot. Something else to take care of when I get home.

The American counter is all hosed up. It took me 30 minutes to check in. Ran into Frank while I was there, and we actually were on the same connecting flight to Dallas. Of course, he was in first class, row one, so we didn't talk much. He was visiting Fullerton and Brea.

Flight left a couple minutes late, but not bad. There was a college soccer team heading home from Terre Haute, with all the bluster of a typical soccer team. They were a fun bunch.

Finally got some (bad) food at DFW. There's a new tram at the airport. Their innovation is apparently that seats are no longer necessary. That, combined with a very jerky track (given that it's brand new), made for a jerky, uncomfortable ride. Then, the plane we were waiting to board didn't get in until 30 minutes after we we're supposed to board. Whaddya know, they had to fly around the big storm. Is it that hard to anticipate these things.

Then, we sat on the runway for more than a half hour (or so...I fell asleep) waiting for clearance to leave. Ooof. So, that put me into town more than an hour late. The typically-agressive cab drive got me to the hotel with 45 minutes to spare before my first session. Would have been quicker, but there were three cars broken down on the expressway near Monster Park, including one that was very much on fire.

The Typical Room

 Posted by Picasa

Sunday, July 17, 2005

Tournament for Charlie

Played in the PokerStars "Tournament for Charlie" today. It was a $20 buy-in event for charity to honor Charlie Tuttle (Who's he? http://msn.foxsports.com/other/story/3710354). I figured it was a good chance to practice against some experienced players, including some of the well known bloggers and at least one star that I recognized (Wil Wheaton, who's a very skilled player). Can't say that it went well. I finished in 131st out of 145. Granted, this was my first online tourney aside from play money games, but good grief! Looking back over my hand history, I got nothing but junk. My best high card hand was A-Qo, and two of the three pocket pairs I got I won before the flop . They were low pairs, so I bet 3xBB ($60 at the time) and nobody took me up on it. The other pair was 7's, and I lost to a guy who made top pair with Jacks on the flop.

Oh well. It was for a good cause. I'm observing Wil now, and he's gone from 210 to 2100 in about 8 hands. He started with a nice double up on A-10 vs A-9.

People are coming over tomorrow night for a home game. Can't say I've gained any confidence from today's experience.

BTW, finished Potter #6 yesterday in one sitting. The ending is like a boot to the chest. It's a well written book without all the whiny behavior from the last one, but she's clearly setting up for the last battle. She could have left out the Peter Parker moment in the last few pages. By putting it there, you can almost guarantee that arrangement won't last. I'm not sure Voldemort is still going to be considered the most evil character after this.

TMBG

Went an saw They Might Be Giants at the Music Mill the week. The music was great. The organization was spotty. The gap between the opening act (Corn Mo) and TMBG was over 40 minutes. This made the night seem a lot longer than it was. They did a good mix of stuff from various albums, including a couple off their childrens' albums. Kathy described Corn Mo best...a mix between Meat Loaf and Jay (as in Jay and Silent Bob).

Monday, May 23, 2005

Been a long time...

Guess I should write something here. Yes, I got the Mac mini. It took three weeks, but I've been using it, and it's pretty nice. They got me with the halo effect, too. I picked up an iPod last weekend. I'm a sucker for shiny toys.

So, what do I think? I love the user experience, though I wish it were a bit peppier for WoW. The game is playable but not much more. I picked up a USB-midi adapter so I could hook up my old keyboard. Now I just need to find some time to mess around in GarageBand.