November 8, 2005
spout
Have I missed anything?
I’ve noticed that various prolific bloggers feel the need to tell me that they’re going to stop blogging for more than 24 hours. That’s one of the things I love about RSS readers: no matter how long someone goes away, so long as I’m subscribed, I here their every utterance.
On the other hand, what I’ve come to hate about RSS readers is that nothing gets by me. Keeping track of absolutely everything was exhausting, so I went cold turkey. I’ve been off #R since I repaved my machine a coupla weeks ago. I still surf to slashdot.org about once/day, but that’s it. No Scobelizer. No Don. No Ian. No Dilbert or Gizmodo or any of the 100s of other items in my OPML that I can’t even remember. No RSS reader of any kind.
So far, I’m enjoying the extra time on my hands. Have I missed anything?
October 31, 2005
spout
What’s a group of geeks called?
Sloth of bears.
Army of ants.
Murder of crows.
Tribe of monkeys.
Embarrassment of richest.
What about geeks? Conference? Shy? Intelligence? Slather?
P.S. this site on collective nouns has a bunch of fun ones. I think I like “smack of jellyfish” best…
October 26, 2005
spout
The Most Amazing Consumer Experience
I just had the most amazing consumer experience and I just had to share it.
I was looking for the local Mom & Pop computer store in my area and I stumbled across www.puzzlecomputers.com. His site doesn’t mention a store, but I left him a message asking if he could upgrade my computer or point me at the local Mom & Pop. Not only does he do that kind of work, but he came to my house, picked up the two computers I wanted to use as parts, e.g. case, RW-DVD, HD, etc, recommended and purchased the new motherboard, CPU, memory and quiet power supply, put them all together (including modifying my old proprietary Dell case to fit), brought the whole thing back to my house and then spent another hour installing another HD I had lying around. The specs on the parts were 1GB of RAM (upgradeable to 2GB), 2.8GHz AMD processor and ABIT motherboard with all the trimmings.
The whole thing, parts, labor, delivery, etc. cost $400. Plus, he hauled away the extra parts so I don’t have to look at them. And when the drivers didn’t install right away, he was available for phone support.
Highly recommended. I wish all my consumer experiences were like this one!
October 24, 2005
spout
WF Activity Context
I was playing around with a state machine workflow in WF and ran across something that I didn’t except. Apparently if you have a an activity that can be other than a singleton, e.g. inside of a loop or as part of a state machine workflow, then an activity can not be accessed by it’s workflow instance variable. For example, the following works just fine in a sequence workflow:
public partial class Workflow2 : SequentialWorkflow {
private void code1_ExecuteCode(object sender, EventArgs e) {
// Retrieve Comment property from typed event sink (generated by wca)
string comment = this.eventSink1.Comment;
Console.WriteLine("Order approved w/ comment= {0}", comment);
}
} However, in the case where the activity can be executed more than once, it’s my understand that each time through, there’s a new activity object that’s different from the named activity associated with the workflow. To get a hold of the current activity, you have to traverse the activity tree, which you can access in a code activity via the sender’s parent property:
public partial class StateMachine1 : StateMachineWorkflow {
void code2_ExecuteCode(object sender, EventArgs e) {
// Retrieve Comment property from typed event sink (generated by wca)
Code codeActivity = (Code)sender;
IOrderService_Events.OrderApproved eventSink2 =
(IOrderService_Events.OrderApproved)(codeActivity.Parent.Activities["eventSink1"]);
string comment = eventSink2.Comment; // eventSink1.Comment will be unbound
Console.WriteLine("order approved w/ comment= {0}", comment);
}
} I haven’t figured out whether this makes sense to me yet, but that’s how it is. You can get the code here.
October 24, 2005
spout
Typed WF Communications Details
If you downloaded the samples from my previous two forays into WF communications programming, you probably couldn’t get them to build. The problem is that when I packaged things up, I removed the bin directories. I haven’t figured out just why this causes everything to stop building, but with the help of Dennis Pilarinos, I rearranged the two projects into three:
communications interface (CommunicationLibrary): the data exchange service interface definition, compiles into CommunicationLibrary.dll
communications activities (WorkflowProject1): uses a pre-build step to generate the typed activities generated from the communications library using the wca tool, references CommunicationLibrary.dll and compiles into WorkflowProject1.dll (nice name, eh? : )
application (EventSinkAndMethodInvoke2): the app that uses the typed activities, references both CommunicationLibrary.dll and WorkflowProject1.dll
It’s only by separating the communications activities into a separate assembly that things can build and rebuild reliably. You can download the newly configured code here. Enjoy.
October 21, 2005
spout
I’m starting to speak in numbers
Someone posted an URL to a mailing list I'm on. My response to his post was "404." I bet you know what I meant w/o thinking about it. He knew and responded as if I'd written in English. This reminds me of the old joke about the guys that'd be around each other so long, they replaced back the same old jokes with numbers and make each other laugh. It's a funny old world.
October 17, 2005
spout
Web Services and Data Binding?
What does it mean to bind to a web service? It's not hard to think of taking the result of a web service and binding it as input to some set of controls, but what about changes to that data? Should data from web services be read-only, requiring an explicit call to add, remove or update or should their be some standard WS-CRUD standard? What do you nice folks do?