Saturday, April 29, 2006

Agatha is dying. She had two seizures yesterday..the second went on for 15 minutes. She shook and cried and it was heartbreaking. Then we called several vets. Our Hillsboro vet was unhelpful and too far away. Our Seaside vet had an emergency number that went to an answering machine. We called a vet hospital in Astoria and drove her there. We poured cold water on her to keeep her fever down, and she seizured the whole way. She’s there now, getting Valium intravenously. We visited her this afternoon. She looks bad, still twitching and scared. We’ll visit her this morning and ask that she be put to sleep.

She’s the best friend I ever had. I wish so very much that she could go more easily, but I think she suffered these last couple of days. We wanted to give her a chance to live a little longer. Because she had suffered. We had hoped she could have come home and be with us for a few days more. So that we could show her how much we loved her.

Agatha is my dog. We’ve had her for about 15 years, and she’s about 16. We found her back then abandoned in the park across the street.

4/29/2006 1:26:03 AM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, April 28, 2006

Again an old book … for old people I guess … anyway I’ve read it and still look at it. It’s the Developing XML Web Services and Server Components from Microsoft’s self-paced training kit.

Once again looking at the chapter on serviced components, I came across something I missed last time around. You know, I find this serviced component stuff and all .NET and COM interoperability confusing. I suspect it’s because I came to .NET without first going through COM as most people have.

I think of a serviced component as a .NET component that derives from SystemEnterpriseServices and that can use COM+ services; and that’s why you use them – to use the COM+ services.

Then, the book mentions dynamic registration (the CLR registers the assembly in the COM+ Catalog) and constrasts this with the command line utility regsvs.exe. And then comes this kicker: “On the other hand for COM clients you should register the serviced components manually by using the command line utility, regsvs.exe.” For COM clients? Why would a COM client ever want to use a serviced component? COM clients can get at COM+ services much more directly it seems to me.

I talk to some people about this, but apparently serviced components are not in the path most people around here travel on.

4/28/2006 10:13:22 AM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, April 24, 2006

This Kalani book … old  … I like it … MCAD/MCSD Training Guide (70-320): Developing XML Web Services and Server Components with Visual C# .NET and the .NET Framework

Chapter 7 is on Serviced Components. Here are some thoughts … take them with a grain of salt.

I think the only reason you want to use a serviced component is to access COM+ services, such as transactions, object pooling, and JIT. The Kalani book has an example (StepByStep7-1) that creates and uses a serviced component but uses none of these features. The example succeeds in showing you how to create and use a serviced component but fails in that there is no motivation for doing so. You keep loooking at the code and saying, Why do this?

The example goes on in StepByStep7-2 to get a strong name for the assembly and in StepByStep7-3 to install it into the COM+ catalog. Then, StepByStep7-4 show how to manage the component with the Component Services Admin Tool. But you know you never actually use this serviced component.

A serviced component doesn’t actually get used until StepByStep7-7. This step shows code that calls a serviced component made in StepByStep7-5, which is just like StepByStep7-1, except that it has a ClassInterface attribute and a custom interface. The serviced component derives form this interface as well as ServicedComponent. But again, the example uses none of the features that would motivate you to using a serviced component in the first place.

4/24/2006 3:11:59 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, April 04, 2006

Our study group has been taking some online tests. We’re going to stop. Scott has already passed the test (70-320); Steve and I will take it this month, and we expect to pass, but frankly at this point we’ve put in so much effort, we don’t care any more.

On one of the tests, we have 171 questions in the database. To test ourselves, we take a 50-question test. What this means is we select 50 questions at random from a database. The questions are then returned to the database and stand the same probability of being selected for the next 50-question test.

I was curious about how many 50-question tests I had to take to be confident that I tried out every one of the 171 questions. I wrote a C# program to calculate that, and the following graph shows my results.

random tests

Just to be safe I took one 171-question test (I got two wrong by the way). I was happy with that score, but I’m not sure how much it means any more. I’ve seen these questions so often by now that I recognize the answer without even having to read through all the question. I force myself to read all the question and reason out an answer, but unfortnately, I’ve memorized the answers by now, and so the test is not measuring knowledge any more.

The peak of the graph is at 15 tests. Here are the values around the peak

12       4280

13       7789

14       11100

15       12650

16       12624

17       11400

18       9449

19       7501

20       5814

21       4307

22       3178

23       2382

24       1653

 

I don’t know what the distribution is. It doesn’t look Gaussian; it’s not symmetric. I think it might be interesting to look at the equations in more detail to determine what distribution models the behavior best. Better, though, would be to look at the algorithm that chooses the questions and see what changes one could make to narrow the distribution. For example, one could weight the probability to preferentially select questions that have not been selected before.

 

4/4/2006 4:55:31 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [5]  |  Trackback
 Tuesday, March 21, 2006

It was last Friday night getting around 9:30, and it was time to take our old dog out. It takes us, Lory and I, longer to get ready than Agatha, the old dog. So I opened the front door and let Agatha mosey down the walk while I went into the garage looking for a flashlight and Lory rummaged through the hall closet looking for Agatha's doggie jacket; yes, it was cold this night.

Then, she was gone. Agatha, I mean. I ran up and down the driveway, looked up and down the street, ran through the house, crashed through our bushes. “Agatha,” I shouted. “Where is she?” I shouted again. Still no flashlight, and I gave Lory a penlight from my desk. We went from “Where is that damn dog?” to “Christ, the goddam dog is missing and where is that effing flashlight?”

By 4:30AM we were cold, saddened, and discouraged. We had walked and drove around the inner and out circles of our subdivision several times. We went down the asphalt trail by Rock Creek and took all the muddy side trips, down those slippery trails that ended in piles of trash and in one case an old cracked toilet.

We walked the length of Rock Creek Blvd back and forth several times all the way to Powerline Park. Sometimes we would walk with her that far. but she never went all the way to the park on her own. In fact the farthest she's ever gone on her own is like down our driveway, turn left and the 50 feet or so to the corner, and that was rare. I'd say in the 15+ years we've had her, something like 99.99% of the time, she's sniffed around our front yard bushes or waited impatiently at the foot of our driveway.

Past tense. Nostalgia. She was a good old dog. That was our mood during that last trudge home.

We slept a couple of hours and then walked some more. The animal shelter opened at 11AM and we were right there, reporting a lost dog. We left and then came back because we had put Washington Country for her license and then remembered that we had transferred her to Clatsop because in these, her autumn days, she spends most of her time at our beach house.. There was a woman there who looked at us strangely as if we knew her and had forgotten.

We called the Clatsop pound and yes (wow!) someone had reported finding her. On Route 26, near North Plains around 10PM. There was no way she could get there that fast; someone had to have taken and dropped her. The lady at Clatsop said well, they could be mistaken about where Agatha was found. She then put us in touch with a guy in Rock Creek, and he said he found her around Kiwanda, a few blocks from our house.

And so we drove to his place immediately; he was around Powerline Park. He was waiting outside with another guy, and Agatha was on a brand new leash. She looked good, alert and happy to see us. I put her in our backseat. I asked if we could give him a reward. He said yes, but that's not why he did this; it was cold, Agatha was a dog in trouble, and he was glad to help.

So Agatha is back. We just got back from a walk along Chapman Beach. There was a slight rain. Agatha was wearing her jacket, and I had my hood up. The wind and rain stir up the sand and stings your face.

I was thinking about walking Agatha back in Rock Creek the day after her ordeal. She likes to turn left at the end of the driveway and go down Rock Creek Blvd toward Kiwanda because I think there are more dogs and more smells down that way. But this night she very purposely turned right into the subdivision. Smart dog.




3/21/2006 4:19:38 PM (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Monday, March 06, 2006

Last time I included notes I made for the first ten chapters in the book Developing XML Web Services and Server Components with Visual C# and the .NET Framework by Amit and Priti Kalani.

I noticed as I reread these notes for the last study group meeting that I had a bunch of typos. I’ve updated my own copies but I decided not to update the copies on this blog. I mean I will update the copies if they change technically, but not for spelling and grammar as embarrassing as that might be.

I also completed notes for Chapter 11, Security Issues, and I’ve included that file in this entry.

320Chap11.ZIP (1.17 MB)

A while back I ported a testing application from Visual Basic .Net to C#. It’s since mutated much beyond the original port. The application presents questions and multiple-choice answers to the user. You get to take a test and grade yourself. The app reads an Access database for those questions and answers. Here’s the latest version of the app.

In the study group, we’ve copied a bunch of questions from the backs of books like the one mentioned above. We can give away the code for the testing app, but the database contains copyrighted information from books and so we can’t distribute that. I did make up a small database about Cannon Beach, Oregon that I included as a sample.

Below is a screenshot. Click on it to download a zip that contains a Windows setup for the testing program.

 

3/6/2006 2:24:19 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, February 27, 2006

For a little more than a year now (wow that long…) I’ve been reading and studying Web Services, Windows Services, .NET Remoting, and Component Services.

I’ve been meeting online with a couple of other guys. We’ve been reading a book called Developing XML Web Services and Server Components with Visual C# and the .NET Framework by Amit and Priti Kalani.

I like this book; it’s different from many of the other computer books I’ve read. It has a lot of examples, but the difference is more than that. The examples (they call they StepBySteps) are not there to illustrate the concepts; they are the concepts. Want to read about how to use IIS as an activation agent for remotable objects? Well, it’s StepByStep such and such on page such and such. There’s not a lot of text to read. Instead you read the code. And run the code, which is just fine by me. If I have any criticism of the book, it’s the same as my praise. You get good at doing what you want to do, but you’re not that articulate telling someone about it in words.

So you read something else for that skill. But you know, when you’re reading about some concept, you remember how that concept is implemented in a simple, straightforward example. Neat.

So I’ve made a bunch of notes about the Kalanis’ book. They’re really meant for the study group I joined, but if anyone else wants them, here they are. The Kalanis haven’t updated their book since the 1.0 Framework days, alas. My notes point out discrepancies between 1.0 and 1.1, but I make no comparisons with 2.0.

The book has 11 chapters. I have notes for the first 10 here.

320Chap1.ZIP (103.41 KB)

320Chap2.ZIP (855.6 KB)

320Chap3.ZIP (565.85 KB)

320Chap4.ZIP (917.64 KB)

320Chap5.ZIP (455.41 KB)

320Chap6.ZIP (420.13 KB)

320Chap7.ZIP (1.52 MB)

320Chap8.ZIP (1.14 MB)

320Chap9.ZIP (2.24 MB)

320Chap10.ZIP (3.19 MB)

2/27/2006 9:00:24 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, February 19, 2006

Today I joined to a live webcast a friend told me about.  It was put on by a group of amateur astronomers, but very interesting and professionally done. The title was Advanced Spectroscopy, so I didn’t really know what to expect.

It started off with a description of the speakers amateur setup – some amateur setup! I think there are some colleges that would consider themselves privileged to have such equipment.

Dale Mais was the speaker. He calls himself an amateur but I suspect the only difference between him and a professional is that he gets paid for doing something else. He was very knowledgeable and has published several astronomy papers.

http://www.mais-ccd-spectroscopy.com/

So what’s he doing? Let’s see if I can remember correctly, no guarantees however. Basically, Dale is measuring the emission spectra of  Mira stars, which are red giants and reside on the asymptotic branch of the Hetzsprung-Russel diagram. They’re also called long-period variable stars because their luminosity varies with a period of 100 to 1000 days or so.

He mentioned that contrary to what many popular publications say, heavy elements could come from such stars. Once people thought the Big Bang produced heavy elements and later suggested that they came from supernovae. But he says they can really be made in Mira stars and suggests some nuclear equations. Someone a while back detected an isotope of technetium in such a star (half-life is such that it had to be made in the star; could not be hanging around from formation).

He has an automated setup that can collect data all night long. He said he had 87 DVDs worth of data. Over 3.5 years he detected very few flares and estimates just one every 20 years per star. I guess not having a flare means that measuring emission spectroscopy is not that useful, so he concentrated on photometric measurements. He detected a knee in the luminosity curve of some Mira stars.

I don’t know if luminosity curve is the correct name for this, but I think the graph is like brightness vs. time where time is the period; and so you overlay the graph with each period, and for some stars you see a knee progress to the right and then reappear on the left. Other stars overlay the knee exactly.

Dale and a colleague are currently writing this up, but hoping to find a theorist to help them explain the knee. He suggested something like an oscillation that reflected off a stellar core.

The web conferencing software was www.ivocalize.com . It worked well, but it is not a desktop sharing program. Basically, it allows a presenter to share slides and talk. Attendees can write text messages or talk. Writing a text message seems to be considered more polite than interrupting.

I participate is some other meetings where we really do need desktop sharing. We want to share running programs and do collaborative debugging for example. For desktop sharing, I’ve used www.gotomeeting.com which is excellent. (It’s not free, but certainly affordable for a company, like $50 a month). We use www.skype.com for conferencing audio, which is free.

2/19/2006 3:09:27 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |  Trackback