« April 2004 | Main | June 2004 »

May 29, 2004

2 rocking tools from roy

I plan on installing and using these both. There's feedster, and then there's a dataset viewer. I can only jump on the feedster thing because I know I will regret not doing so next time I need to change urls. But the dataset viewer, boy howdy. Just yesterday I was pressing all those little plus signs, trying to figure out where the data was (or why it wasn't there, more like). Some object models are circular where you can press the plus sign indefinitely and never get to an item. Can't remember the error message now, something like "Can's access indexed value," when that's exactly what I was drilling down to see. This could change, well not everything, but lots of things about how I program.

outlook and ie misnomers

I couldn't be the only person who has caught the cognitive dissonance of pressing the "Start" button on windows xp and observing the following app names and descriptors pinned to the start menu:

Internet
Internet Explorer

E-mail
Microsoft Outlook

When I hit the start menu I'm thinking about a task. Usually that task is either browsing the internet, or checking mail. I'm sure my brain is becoming permanently unwired because (here's the dissonance): I use the browser to check mail, and outlook to view the internet. Bwa ha ha ha this is somebody's idea of a funny joke I'm sure.

May 28, 2004

webservice references

You know why my web service was returning a string last time? Because I hadn't deleted the reference and added it again. Oh lord, the lost time figuring that one out.

The other big curveball was I had to return an XmlNode in the first place in order to make InfoPath happy. Of course I haven't checked to make sure InfoPath is happy yet, but I have a web service that returns an XmlNode and we can read and write to the file that the service manages.

The other thing not to forget is when you're looking for that streamreader and streamwriter code, don't ignore the flush and close options. I know it's gross, but if it's in there from the beginning you won't have to reboot to debug it later.

May 27, 2004

databinding

Back to the old grind of retrieving xml data from a web service and somehow displaying it in a listbox. I keep rehashing how to do this, seems I can't remember. The basic code snippet is:

foreach(DataTable dt in newDataSet.Tables)
{
foreach(DataRow dr in dt.Rows)
{
foreach(DataColumn dc in dt.Columns) //pick a column
{
newArrayList.Add(dr[dc].ToString());
//dc.ToString();
}
}
}

I include the commented line because it's what you'd expect to put in, but it's wrong.

Not that my code is working yet: seems the web service returns a string instead of an arraylist. Hmmm.

May 26, 2004

are we over it yet?

Funny, I should be obsessing over completely different things. I should be obsessing over a) the prospect of losing a good tennant, and b) the prospect of my contract at MS ending soon. But since I was obsessing over jobs and money and "the property" ever since 9/11 it all seems so, I don't know, "oh one." I know these things are important and life will seem seriously broken if I can't shore them up somehow. However they're not occupying my mind at all. Transcendent Zen or sheer stupidity, time will tell.

Instead, here's what's really on my mind:
1) Completely ready for my packaging retreat. Today I had to park on level "X2" which is not nearly as cool as it sounds. While waiting for the elevator, I noticed the cigarette butts in the ashtray thing which is part of the metal garbage can they have in the garages at MS. Say what you want to say about cigs, they immediately bring to mind the kind of life where skinny people wearing black and drinking cappuccinos write poetry in black-bound sketchbooks while speaking lucidly on topics like ingmar bergman. It's a package, and by the time you're my age you realize you have a choice of packages. The cigs just reminded me I have a choice. Of course my package will involve a spec portfolio and passing my C# exam. But maybe I can do the skinny and black thing too, perhaps catch a few films (but bergman? ewwww).
2) The neighborhood is going to hell in a handcart, and I have no idea why. I want to offer a solution other than calling 911 every 5 minutes and sitting on my porch with my police log and my binoculars. Is it possible it's a war zone because we can only "fight crime?" How can I offer something people need (like hooking up well-deserving folks living in cramped section 8 housing with the 3 abandoned houses on the block) rather than focusing on getting people in trouble? How can I have a guaranteed chance of success with this, rather than just throwing effort down a time consuming hole? Unfortunately I'm still in the research stage. It doesn't help that many people at MS live in la la land (otherwise known as the "Eastside") where the streets are clean, the houses are new, the schools have way too much money, and everyone is civil. I can't say it doesn't tempt me sometimes.

Oh, and the reason for my writing this entry. Is it just me, or are people completely prepared to shift gears right now. For example, I found out about Lenn through Heather's marketing at MS weblog. Lenn is my new hero (sorry Joel, not enough angst). And then there's Secret Geek who I found out about from Kathleen Dollard. I would love to know what inspired this post, and I have it favorite-d because a simple subscribe to rss doesn't do it enough justice somehow. With that said, I swore when setting up this weblog I wouldn't re-hash the 90s for everyone here. At least, not until I buy some stock in the kleenex corporation, because there would surely be a run on it. So I won't. Once someone blithely pointed out to me "Everyone has a dot-com hangover of some kind" and I wanted to throttle them. The point when you are in the midst of grief is to continue to view it as unique. Talk like "it happens to everyone" is misplaced and condescending, no matter how true it is. Now almost 5 years later I'm ready to hear everyone else's story and look for similarities. Perhaps I'm getting over it.

May 24, 2004

regulating progress bars

Permit me to think like a user here, instead of a programmer. I've said this before, but it's worth saying again. Progress bars should be regulated like a public utility. They should be measured like the dispense rate at the gas pumps or at the butcher's scale. There should be a little sticker next to each one that tells the user who inspected it last, and what date.

Is it just me, or would you agree that ever since progress bars were invented, 99% of actual time goes into waiting for the last 1% of the progress to finish. Right now I'm installing MSDN in order to use help for Visual Studio. It says "Removing Backup Files... this should take several minutes." It has. My beef is that the progress bar shows only one tick left, out of oh perhaps 30 ticks total. I'm not picking on MSDN. Everyone does this. Of course I know why. My point is just because everyone else does it (shows a progress bar), doesn't mean you have to blow your credibility with your user with your app as well by leading them down the same garden path.

Speaking of credibility, I have a great time reading gapingvoid. For a while I only got the cartoons, but recently I reformed and now have the full rss including commentary. The company has some business cards you can order that are decidedly not for business. I'm keeping it in the back of my mind for my 6 month packaging retreat. You thought I was kidding about that! Yes, 6 months just working on how things look. What a loonybird.

May 20, 2004

xpath cheat for infopath

I found this great cheat if you keep getting errors in infopath and you think for sure it's your xpath expression barfing on you at the last minute.

There's this cute control called the expression control. Add it to your form - you can delete it later. Adding this control brings up a teensy dialog letting you select parts of your data sources (just like the taskview) and bringing them up as an expression. By default it's in dummy mode, where the expression is just a repeat of the name of the node you selected. But! After doing this, take the dialog out of dummy node by clicking the "xpath" box. Bravo, it changes into an always-valid xpath expression.

The only trick is if you're using the code in script, you have to preface that string with //. Don't ask me why.

Tip provided via this newsgroup.

And my resulting eureka moment, with lots of help from practically everyone here at MS (shouldn't be so hard).

pursuit of wha?

This made me laugh today. I read a blurb about Mac Office 2004. It reads:

"Microsoft Office 2004 for Mac helps Mac customers get in touch with their inner business suit to take care of business more efficiently, leaving more time for the pursuit of passions. "

a) The first thing I notice is the implication is that using software, or taking care of business for that matter, is not a thing that you can be passionate about as a customer. Basically our whole objective is to ditch the office (and Office) and get as close to a girls-gone-wild type of spring break image as quickly as possible. Much hanging out of the tops of sunroofs, etc.
b) I almost missed the crack about our inner business suit. This is very funny - there is old school business eg Darrin Stevens, where you will have the same job forever, and possibly the same briefcase. Then there is new school business which requires a lot of surfing and 1099 forms. I'm not convinced that Darrin was as unproductive as people assume. You could call him a dinosaur, but they became extinct via a geothermal event, not because they were unproductive. In general I think it's unfair to herald the surfer dude for no reason other than his fashion choice: he's not a more productive human being.

May 19, 2004

too hard


Yup, it is way too hard to get going with infopath programming. Another brave blogger chimes in with more eloquence.

Instead of beating my head against bad references and namespaces, I thought I'd have a wimpy programming day by doing cosmetic improvements to a sharepoint WSS site via frontpage. That's like a whole nother world of hurt, it turns out. Marginal progress. Almost got completely stymied if not for this kb article which Mike Walsh pointed me to via the newsgroup. Feuf.

May 18, 2004

princess

BBQ smells from somebody's catered meeting are wafting through the hallways. My guess is beef ribs, baked in a chafing dish with lots of juice. But no matter, I'm enjoying a smoky black eyed pea soup from au bon pain which they serve in the cafe. They let you put parmesan on your soup for no extra charge.

Today I'm trying out a different grocery delivery service. I got dinged on the return policy for Safeway, so this time it's Alberson's. Better interface on the web page, at least, and better delivery time choices.

My neighbors who might choose to spend their money on old english rather than grocery delivery will certainly think a princess lives in my house.

May 17, 2004

over my head

Oh, I see: InfoPath is based on Xdocs, or is it Xpath? Either way, it's important to understand that this is a programming environment and not a little frontpage or winforms type wysiwyg tool.

I'm working on copying a piece of text from one place to another. If I get lucky and that works out, I'll update the underlying xml. Meantime lots of postings to newsgroups and going through tutorials just in hopes that the right information will leak into my brain. It's a little discouraging that none of the InfoPath samples contain a "Save Changes" button on the form, it's all "Send Email about These Changes" or some such nonsense. Even worse, many forms have a print-and-sign premise which just flies in the face of why we're all here. I'm suspecting I'm asking for the moon.

May 14, 2004

object model

Okay I admit it, I'm completely dependent on IntelliSense. That little dot that makes it all worthwhile. So when it comes to making InfoPath do what I want, I thought for sure I had a flawed reference or something. Nope, it's just that there's no IntelliSense for InfoPath scripts yet. How in the world could this fall off the priority list? The object browser is not equivalent. It's like saying why do you need roadsigns, you have a map in your hand, don't you? It's like having a great map but no roadsigns on the streets. I've completed many a project without forming a 3,000 foot view of the object architecture I'm working with. And let's be honest - some of those architectures are pretty baroque.

Anyhoo, I finally posted a request out of desperation on the newsgroup microsoft.public.infopath, I hope someone reads and responds.

May 13, 2004

filing

It's impossible to design without immersing yourself in the problem set. That was one of my problems in working on jukebox, I had a particularly small CD collection and had to rely on others to validate that the genre/artist/album concept can scale. If I ever worked on windows, I expect to get busted because I keep a flat list of files inside my documents and use a filenaming schema for organization. No folder villages here. But now I know better, and would happily change my own filing style to mimic others and answer the challenges they must face. This is harder than it sounds, I know: eventually you start thinking of data in a certain shape, the brain takes shortcuts, next thing you know you're on the wrong bus because you forgot to switch to "bus stop - bus number - get on" instead of "bus stop - bus arrival time - get on."

I'm reviewing a service for my family's use that stores files for you. Paper files, the ones that come in boxes. They take your boxes, store them, and if you want anything pulled you just ask. You use those cardboard banker's style boxes that use hanging files and manila files, but are easier to lift than a file cabinet. I got to this decision point because a) suddenly spending $60 a month to store this stuff, b) giving up on the fantasy of having a T-rex size scanner parade into my home on little legs, swallow all my files, and spit out CDs accurately categorized while burping. There is some indication that the file service in question would be less money that a storage bin, and certainly more functional if done the right way.

Here's the catch about moving forward with this: The service has four levels of categorization for retrieval purposes only. You can label the box. Then once inside the box, you can label nestings up to three deep. If you have a box marked 2003 finances, the interior green hanging folders could be Retirement, Taxes, Income, Expenses. Underneath one of those you can have a manila box folder such as Fidelity. Then there's only one level left: you could use it in case you have two Fidelity accounts in the retirement folder, perhaps Roth and Traditional. This seems a suitably rich limitation, but I wanted to throw it out there as a requirement.

The quality of any filing system (in otherwords, metadata schema) can be measured by the accuracy of retrieval (in otherwords, search results). We can't just bring our boxes over as-is and expect any query to the service to work. A sample query we're experiencing right now: "Pull up all receipts for the car in the months between June 2003 and April 2004. We're particularly interested in the fuel pump and the engine blocks. We forgot the bank we ran the purchase through, as well as the name of the service station or the month in question. Also bring up a couple of check imprints for the water damage for the house. We forgot the amount. The payee will be sdf sdfrtv." That's an actual query. Our accountant wants it. If we find this, it means real money to us. The question is, how much work do we have to do to the existing messy file boxes to make this sort of query retrievable?

Perhaps the scanner is a better idea after all...

The silver lining is in solving this problem, a real-world, immersive problem, I can hopefully carry those concepts over to other systems I design.

May 11, 2004

sure I have it, it's filed under "very misc."


I installed a program from Disney called "Magical Gatherings." Essentially it's IM for a group of people trying to organize a trip. I thought it did something else, or I wouldn't have installed it. However, now that it's there, I almost appreciate how it loads up every time I boot, as if to remind me that I still haven't bought tickets yet. Almost.

I canceled Netflix, and they did offer me the "we want you back" rate of 14.95 or so. I didn't take it, mostly because it's become a chore to pick out videos. The recommendation engine doesn't help, because I've recommended myself into a corner. Apparently if you love movies xyz and hate movies abc, there exists exactly zero movies their engine can recommend to me. So I'm left to my wits, which I've already proven cannot pick a good movie out at a video store either. No, I'm using the money to buy cable, which will probably ruin my life but there it is.

The cafeteria at building 50 is a lot better than building 32, so I'm cooking less and less. Also, the conference rooms are more secluded, so I'm not teased so often by the buffets. I'm going to have to come up with a new tagline for this weblog, but will any of you put up with a new folder?

Security at Microsoft is very tight. Every time someone holds the door open for me, I am punished by a demand for my keycard and having to fumble through my bag to find it. This is always from a person who works there, not a security guard or anything. It's gotten to the point where I will dally and look out the window rather than tailgate someone into the building - just let the machine scan my purse for the card, it knows it's in there. But this avoidance is as antisocial as it gets.

I've had the fake horn solo for "Wouldn't it be good" stuck in my head all day. They couldn't get enough of it at the bridge, they had to end the song with it as well, during the board fade. Remember when you could board fade without people laughing at you?

May 09, 2004

mother's day evils and plusses

evil things that happened today:
- big list of errands and home tasks that need to happen NOW and no ability to do them
- food schedule completely off synch with my family, so everyone wants to watch me eat and I don't wanna
- cash machine ate my cash card for no reason
- really hot and bright out, broken air conditioner
- tap water at home is suddenly an unsightly color, is this why we're all sick? oh great
- absolutely bored and irritable with everything

on the plus side:
- able to hang with musicians at a concert, drinks afterward, and a party after that, great to feel like I have a life
- installed notepad2
- found foodblogs.com
- found sqljunkies.com who overlaps my two areas of interest
- uh, I get to code some more tomorrow

May 07, 2004

"Yes, it's a hack, but it's a hack based on the latest Microsoft technology." She said, with a straight face.

Boy is InfoPath cool. And yes, it's only around as an adjunct to SharePoint. But this in no way diminishes it's coolness! One thing you definitely have to try is the new Service Pack they have out, which allows you to post and retrieve data from web services. Too confusing? Spend the day walking through this great tutorial they have, and all will become clear. I love this kinda stuff, it's right up my alley. I don't much care about bit shifting or traditional programming things, but if it solves a business case and I can maintain the code, this makes me very happy.

Which, of course, is a slippery slope right into hacking. The other thing I did today was pop open the guts of a powerpoint file when you've done a "Save As" to html. What I want to do is dynamically change the color of certain boxes in the display, based on a list. If an item on the list is in the display, I'd like the fill color to change to yellow, for example. Once I get my main plumbing bolted in, this shouldn't be too hard. The title.htm file that's created contains a shape ID as well as the text (so you can verify if that's the ID you want, based on your list). Then, once you have your ID, move on over to title.xml and find that ID. Change the fillcolor = "yellow" and you're done. Oh, I'll also have to handle dynamic display and possibly file management, plus concurrent users. Hmmm. Anyway, I expected this to be harder.

Now I just need plumbing in order to try this stuff out.

storage

While reading Adrian Bateman, I was reminded of the uncanny surge in the topics of filing and personal information management in various techie blogs (you know who you are). They all credit David Allen, which is great, and his blog is one of the first ones I turn to hoping he's made a post every day.

I'm a little confused though. What is so great about filing? We're all aware of the value of digital information versus analog. Why put ourselves on a paper diet, and a MB diet (for outlook, for example) when the real problem is a) digitization in the first place, and b) metadata once it's in the digital state.

Essentially I don't see the whole thing working long term until we have places that will do scanning en masse, replacing a filing cabinet with a few DVDs, AND that information is searchable, AND we can easily change metadata once they're digitized, including both our archives and our outlook e-mail. What I'm saying is that the garbage can is a kludge set up because we don't have good enough digitization and metadata tools.

mt plugins

I got a great referral from Joy at cleverhack about installing Jay Allen's spam comments blocker. So now it's installed. I'll see how it goes and let everyone know.

Like David Davies, I'm interested in following comments I leave on other folks's blogs in a more consolidated way. However I'm not using Radio, so I can't use David's tool, and the mt plugin list is not very meaningful. I'll leave this for another day.

And by the way, David, we just had our naming summit last night. This is where we get a sitter, have a nice dinner, and go over the shortlist for names for our new boy. In actuality, my dh had to pull an allnighter, so really we looked at my shortlist and pocketed it with confidence that something would happen sometime. Ah, summits, they always work out that way. Anyhoo, I just have to ask, what were your mom and dad thinking? We're so phobic about the Gregg Grigg factor that we've ruled the letter G out completely as a criteria for a first name. I mean, three Gs is enough for anyone. Oh well, at least it's catchy.

The nice dinner was at JaK's Grill in Issaquah, which is everything people say it is. Nothing much to look at, and the steak is worth a plane trip. Is it possible for a steak to be "refreshing?" Honestly, I must have been short a vital nutrient because I literally felt refreshed. Hmmmm.

May 05, 2004

airport art

They've been building on the Sea-Tac airport now it seems like forever. What I hoped for was an old-fashioned (meaning sixties) ideal of kicking back in an airport lounge, drink in hand, watching the planes take off and land through the windows. It's obvious they intend on windows, but they're all boarded up and have been forever.

My good friend has written the soundtrack for a movie documenting the creative art that will go in this space. So I went to the screening, not knowing what it was, and was very surprised to be inspired by the subject matter, a dreamer with grey hair in her 50s who painted the entire spirit world in glass, then watched as the construction guys hoisted it into place. It seemed impossible that it could work, but there it is, and on June 12 we get to see it at a community open house the airport is hosting before the terminal closes for ticketed passengers only on June 15.

Seattle Art Museum (Movie Event)

Cappy Thompson

SeaTac South Terminal

When can we see it?

May 04, 2004

comment spam

I know what you're thinking: nothing much must have happened today if she's talking about comment spam. However: there is only one source I have for comment spam. It's one company, or organization, or website seeking referrals. They keep rotating IP addresses, so IP banning doesn't work. Has anyone found a good way of proactively preventing comment spam that refers to a specific website? Is this a movable type thing, that other blog systems are immune to?

Probably a continuously running Perl script could take this out so I never have to delete it directly, but it would be great to have a cleaner solution

May 03, 2004

calendars and work life balance

So many ways to slice the world up: why is xyz happening? The answer depends on how you slice it. You could say xyz is happening because of class, or race, or gender, or coke vs pepsi. Some concepts work better at slicing than others, some fail quickly (the simple existence of rc cola refutes one concept already). The one concept that just keeps on succeeding for me these days is male/female. It's not really on my mind, it's just when it comes down to interpreting events it make a pretty clean slice.

Let's take this request from Ray Ozzie last year for some progress on standards and functionality with calendaring. I found it by way of this post by Westin who's a SharePoint guy. The upshot is that some stuff has happened, mostly by the iCalendar team, and some stuff has stalled. The dream of integrated calendaring is still - might I say MORE - elusive than anything else that might need integrated (media files, contact lists, e-mail). The reason why I say it's MORE elusive is the gender factor. Calendaring is the major tool for solving work life balance issues. It's all you have to work with, really, mapping out your time because as everyone knows it's finite on a daily as well as lifetime basis.

So, in order to put Calendaring on the front burner in terms of development, it has to be a need recognized as urgent by the startup developers with the idea. I can't tell you how many times people have told me there is no business case for integrated Calendaring, choosing instead to pursue other items to integrate instead. That fact, combined with my assertion that men are less sensitive to work life issues in general, (someone please refute me!) leads me to say: Calendaring integration will likely only be solved by a female developer. And that, is why the solution is so far away.

May 02, 2004

cooking boycott over

Boy was it bad last week. At least two days my entire caloric intake came from Starbucks. No, I didn't just caffeine out all day, just show up and buy breakfast and lunch to go, then wimp out and not feel like anything for dinner. That's just sad. My issues of "Food and Wine" might as well roll over in their magazine racks.

On Thursday last week I had Safeway deliver a pile a groceries to my house. The last time I did that sort of thing was back in the HomeGrocer days. I had a pretty good experience with Safeway, although I'm not sure they understand what "no spots" means for the bananas. It gave me a serious head start for recovering from empty fridge syndrome. But curiously, it wasn't quite enough. I also had to drop a bill at Cash and Carry, the big grocery secret around here.

Cash and Carry is a lot like Costco used to be, back in the good old days before they got all customer focused. You've got the flat style carts that are impossible to steer. You don't get bags, but old fruit boxes to take your stuff home in. Then, there's the incredibly bizarre selection. An entire aisle devoted to espresso add-on syrups, for example. But if you know what they do have, you know they have it cheap and it will be well worth your while. Cheaper than Safeway even. Very cheap. If you're living off $200 a month food budget, then save up for three months and you'll do yourself proud at the C and C.

Tonight I'm making burritos, a whole flat of them, with Spanish rice, cheese, pinto beans, and a tri-pepper sauté. Also I'm finishing up a Mediterranean pasta salad with sun dried tomatoes and kalamata olives. Already I have a pile of teriyaki chicken in the fridge - nothing better than cold chicken once it starts getting hot.

Hopefully this will make the week ahead easier food-wise.

May 01, 2004

saga of exhilarating progress

I think I wrote about this once before. Once a developer sent me a progress report entitled "saga of exhilarating progress.doc" Hmm, perhaps the words were separated with underscores. Anyway I think he was being a little facetious, don't you?

My own saga for yesterday was truly exhilarating. The first thing I did was borrow my officemate's phone to call the helpdesk with advice on sharepoint. That was painful. Yes, they do hosting. No, they don't provide any configuration advice. No, they don't support SPS. What does no support mean if they'll set it up for you and host it for you but then don't let you ask any questions? Yes, that appears to be the deal. Any referrals? No. It was like talking to jabba the hut. Provided a small overcaffienated undernourished kid on the phone can be described as jabba. Anyway, my officemate had a good laugh but I had to kick this thing into high gear.

My other dead lead was I had an open ended question posted to the sharepoint alias newsgroup thingy. Nobody answered. So I trolled through the postings and personally mailed anyone who had ever answered a question coherently on the forum. Then I started mailing folks who had asked similar questions before, to see what became of their project. While those answers were rolling in, I mailed folks from the credits section of the Bill English book I purchased. You know, the section where he thanks the following people at MS for their help? Apparently they still work here. So after sending out perhaps 30 specific and personal requests for information, even on a Friday I started to get answers.

Consensus: I should do my own hosting, since helpdesk will just give me vanilla config.
Consensus: I should opt for SPS because searching is king. I realize that searching will only be king if metadata is king too, so that will require custom web parts.
Consensus: I should use my current machine as a dev box, running XP and VS, then transfer over code to the server to see what worked. The server needs to run Windows Server 2000, SQL Server, and of course SPS.

This seemed to be a solid plan, and I found a server lying around the lab and commandeered it. On Monday I get to install stuff. It's almost like being a real developer, installing wacky stuff like OSs and server software.

I do need some serious advice on virus software and backup strategy though.