Thursday, August 11, 2005

The developer community in Latin America is astounding and much larger than most people outside of LATAM might imagine. INETA LATAM makes up over 25% of all of the INETA member groups worldwide. Their latest newsletter is out and is full of so much information about events, their speaker bureau, new MVPs in Latin America and so much that is going on ni the community. INETA NORAM has been looking to LATAM for a long time for their incredible formula for building this community. Here is a link to the newsletter in English and in Spanish.



www.acehaid.org
Thursday, August 11, 2005 12:41:37 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I am very excited that it is now about 98% certain, but not official yet, that I will be speaking at [this space intentionally left blank]. But I can't blog about it yet - not until it is 100% official. Uggh.

Stay tuned! :-)



www.acehaid.org
Thursday, August 11, 2005 10:37:11 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Wednesday, August 10, 2005

Well, I should clarify that as future Microsoft Web Development tools. But this session, as blogged by Microsoft's Mikhail Arkhipov is definitely going to be on my hit list! ASP.NET: A Sneak Peek at Future Directions in Web Development and Designer Tools Speaker(s): Omar Khan, Rob Mauceri (read more..)

[A DevLife post]



www.acehaid.org
Wednesday, August 10, 2005 9:13:26 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I just noticed a few new things that Google is giving me with the google toolbar.  Not sure how long they have been around. Perhaps it just popped up because someone suggested I look at my page ranking and when you do that, the control becomes more interactive with Google. Though I think I had the page ranking collector turned on since day 0 (by default), even though I never exposed it on the toolbar.

Anyway, Spell Checking! It will spell check anything  you type on a web page. I've tried it out, though not pushed the envelope with it, and found it to be pretty cool. That will be great for writing comments on people's blogs or if you blog directly online.

Another thing I noticed only yesterday was that when I was highlighting a word in a web page and right click for the context menu, Google Search is an option on the menu. That is really handy to.

 



www.acehaid.org
Wednesday, August 10, 2005 7:43:51 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, August 09, 2005

I will get this to work! Currently I have to be logged in as an administrator to get SqlDependency to work. I have tried giving a variety of notification related permissions in the database to my lowly user login, but to no avail.

I just came across this - oh, what a shocking place to find the info  in the documentation for VS2005! :-) I must have come across it early on before I understood what the heck I was reading. Now it makes sense to me though and these looks like some good clues!

Security

The dependency infrastructure includes a client-side listener that is contacted by the server to send notifications. This listener is protected by Code Access Security attributes and by authentication. For more information, see SqlNotificationPermission Class and SqlNotificationAuthType Enumeration.

Code Access Security Assertions

The listener infrastructure enables the listener to listen on TCP ports or HTTP ports depending on which system is running. To use the listener, which is necessary to use SqlDependency, the caller must have SqlNotificationPermission. The use of the SqlNotification request is independent of the dependencies and listener infrastructure on the client. Therefore listener permission is not required.

I know that I did grant Query Notification permissions to my lowly user account ( as a test) and also QueryNotifcationErrorsQueue as the exception instructed me to. I also opened up some of the recommended array of ports (which at the time was supposed to be a bit of a hack fix).

Still I never got it working.But I am definitely adamant about succeeding at this! So I will be sure to post my solution when I get there.



www.acehaid.org
Tuesday, August 09, 2005 9:24:39 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I had the most fun interruption today. Four of the girls who live on my street (ages about 8 - 11 and two are only visiting) wandered up my driveway in hopes of playing with my dogs. You have to understand, I have no kids, so there is never enough of this in my life. I allowed myself a good two hour break while we played with the dogs, drank pink lemonade, brushed the dogs and cat and naturally, all four of them drew pictures and practiced their handwriting on my tablet pc. Ahhh summer. :-)

They promised to come back when the heat wave breaks to come bake cookies with me. That is *my* idea of fun!



www.acehaid.org
Tuesday, August 09, 2005 3:00:18 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Finally!

And here's a synopsis of her travails since she has ordered it...



www.acehaid.org
Tuesday, August 09, 2005 2:49:55 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Once upon a time, my mother was flying somewhere - long flight, maybe cross-country. When she got on the plane, she was really tired, found her seat and fell right asleep. At one point she woke up and the person in the seat next to her offered her a newspaper. WIthout looking up, she said, "oh no thanks. I'm so tired, it would make me cross-eyed to read right now." The man retracted the paper, got up out of his seat, gathered his things and as he went up the aisle to request another seat looked back at my mom. Of course, he was cross-eyed.

This is not a joke or an urban legend. It's a true story. And I'm afraid it might be a family jinx. What's worse for me, is when you are trying to make someone feel better, but still saying *just* the wrong thing and only making it worse. It takes me a while to realize that it's time to just shut the heck up.

This happened years ago on a week long cycling trip in the colorado rockies. There were1600 riders of varying skill. At one point, I was climbing up a mountain pass road and passing someone - a woman who was probably a good 20 years older than me. But hell yeah, she was rockin' on up that mountain. I always felt bad passing people (because it sucks when people pass you and you are working as hard as you can). I said something as I passed that I had completely meant to be encouraging. I probably should have either said "hello" or just nothing at all! The woman was a complete stranger and whatever words I chose had a very different meaning to me. She approached me a few days later and was very aggressive in telling me how I much had insulted her. She actually made me cry. (Though I didn't do that in front of her) I was trying to be nice and a) made her feel bad (which I truly hated since it's something like my job in life to try make people happy) and b) got yelled at for being a bad person. This was six years ago. It still upsets me. On the same trip, I did have a few women actually thank me before they went home for one thing or another I had done during the week that had meant a lot to them. But it's that one woman who I made feel bad, bad enough to really give it to me, I will never live down. Rich says I'm ridiculous to let stuff like that bother me, but it's just my nature.

Anyway, I guess sometimes it's better to shut up since you don't know a person's entire story.



www.acehaid.org
Tuesday, August 09, 2005 11:56:05 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Having recently read the fantastic novel, GraceLand, I am really enjoying Dare Obasanjo's posts from his visit home to Lagos, Nigeria. The book takes place in the 70's and early 80's. Much (I can't emphasize that enough) has changed since then!

From Dare's Blog: Week 2 , Week 1



www.acehaid.org
Tuesday, August 09, 2005 11:18:09 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Mike Gunderloy is hosting another developer contest, with a great array of sponsors (read: prizes!). The contest is based on developing something (tool, utility, full app) with VS2005 and submissions are due on the magic day of November 7 (Release Date!)

Check it out here



www.acehaid.org
Tuesday, August 09, 2005 9:43:49 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

One of the many topics I cover in my ADO.NET 2.0 talk is about the ability to modify the rowstate of unchanged rows with SetAdded or SetModified. If you have never been in a position where you wished like crazy that you could change the row state, or if you don't understand the semantics of DataRowState and how importing, adding or merging affects it, then these features don't really make a lot of sense.

Moving datarows around is not the only time I imagine you might have a need to affect the rowstate, but I wanted to just point out a few of the nuances of moving rows.

When you add rows using the DataTable.Rows.Add method, the rowstate of the added row will be Added (regardless of what its' original state was).

When  you import a row, the row's current state will be imported with it.

Merge is the same as import in regards to the affect on rowstate. Merge just imports a whole bunch of rows at once. So, it, too, persists the row state.

In the demo I have for SetAdded and SetModified, I have two sets of data. One dataset coming from a local database and another coming form a web service. I append the 2nd set of data to the first using the Merge function. Then the next step is to update my database and I want the newly merged data to go in the database as well as any changes to the original set of data. In the demo, all of those new rows from the web service do not get uploaded because their rowstate was "Unchanged". By using the Merge function, the rows were not flagged as "Added". This definitely is a surprise to some people when I do that demo because many do not grok the differences between Import/Merge and Add.

Here is a Data Points column by Joseph Papa from a 2003 issue of MSDN Magazine that explains how rowstate is affected. After reading that, it might make more sense why having the ability to affect the state of the rows is a useful thing. SetAdded and SetModified are two functions that you do not want to use unless you definitely know what you are doing.



www.acehaid.org
Tuesday, August 09, 2005 7:54:49 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I did one of my favorite talks (What's new in ADO.NET 2.0) for my favorite user group (VTdotNET) last night. This is the 5th time I have done this talk since March and these guys and gals asked me questions that nobody had asked before (and I didn't always have the answer) as well as made a lot of interesting observations. I learned a lot. I am excited about digging down a little further into ADO.NET. Because of the discussion, the session went way too long, which is fine for me (I can talk about this stuff all day and night) but really not fair to many of the attendees who get tired and can't absorb any more after a while. The ability to have this type of interaction without a hard time constraint is what is really awesome about speaking at user groups vs. at conferences. But I think I have to figure out how to balance that a little more without having to cut the talk short.

It's a broad topic with a lot of ground to cover, but I have actually had to do in one hour once. So I know it can be done!!

I got a very nice email from a first time attendee in which he said "It seemed clear to me that the community and the relationships you've built, are such that people are keenly interested in each other's work and in each other's learning.  From that aspect alone it's a pretty remarkable users group."

This is the kind of feedback that really makes being a user group leader extremely rewarding. And I think that all of the members should feel equally proud.

One big lesson that I have to remember: Have someone else be the user group leader for the night. It's just too hard for me to run the meeting and focus on the talk as well. I needed someone to take care of me, make sure I had water, got fed, run the raffles, prepare and do the business meeting, etc. Next time! (Which may be next month if our tentative speaker, Dr. Neil Roodyn, is not able to trek all the way across the country in between PDC and the MVP Summit.)



www.acehaid.org
Tuesday, August 09, 2005 7:14:29 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I have not looked at all at the strongly typed datasets in .NET 2.0, so when Dave Burke started talking about DataTableAdapters last night, I thought he was talking about the DataTableReader. He was pretty adamant. We gave him a hard time  - it was late, we were punchy. What can I say. In reality,  I just had no clue. So Dave now has a post explaining all about the TableAdapter here!



www.acehaid.org
Tuesday, August 09, 2005 6:57:00 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, August 08, 2005

Lucky lucky Microsoft. MSDN Canada just snatched up John Bristowe as a Developer Evangelist. I have been constantly impressed by Bristowe since I first met him. He knows it too - I think I embarrass him sometimes. Heh heh heh. John is an awesomely nice person with an amazing brain.

Read more about it here

Yeah that's right - not even on John's blog. He is way to freakin' humble. There is one more piece of news I'm still missing out on from him....



www.acehaid.org
Monday, August 08, 2005 10:40:52 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Did I forget Peter Jennings' announcement that he had lung cancer? Or did I somehow think it was in really early stages or that he would beat it? (probably the last) I was really startled and saddened to hear the news this a.m. that he died last night. Peter Jennings was definitely an American (though Canadian) icon.



www.acehaid.org
Monday, August 08, 2005 11:01:53 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, August 07, 2005

I have been experimenting with VirtualEarth to understand the structure of the map image.

The map image is made up of tiles (map.tiles). It basically builds a grid of image objects. Each quadrant of the grid is a tile and literally points to an image file (png) on the VirtualEarth website. The tile object has a lot of members, the most important one to me is the property "f" which returns the uri of the image that makes up the tile.

The tile size and number of tiles that make up the image will vary based on the zoom level of the map. Then the tiles are placed in a DIV that  has a hidden overflow which is why you can grab it and move it around within it's bounds. If you want to see this, look for map.element.outerHTML while debugging.

When you request a map from Virtual Earth, it returns the html that makes up the map. This is a DIV with a whole bunch <img> tags pointing to the various urls of the images at VirtualEarth that make up the map. For example: "http://tiles1.virtualearth.msn.com/tiles/r02211.png?g=1".

You can see this DIV within the "map.element" object.

Since VirtualEarth works out the html in advance and returns it to us, we just get back the DIV and the images with their positions. Since the solution I am working on to ink enable this stuff requires that I know how to rebuild them, I will have to create a little function to determine what the dimensions of the resulting "grid" are. I have gotten 3 x 5, 3 x 4 and 2 x 2 so far. So I can't count on a pattern.

One other thing that I can tell you is that so far I have not found any property or method that will return the image data of a tile. So after an enormous (you don't even want to know...) amount of experimentation, I have found the best way to get at this data (since I need it for my solution) is to build a web service that streams the image data back to me. Dr. Neil appreciates the irony of this, because Virtual Earth is built on MapPoint web services  - so I am writing a web service to wrap a web service!



www.acehaid.org
Sunday, August 07, 2005 8:44:35 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, August 06, 2005

From Via Virtual Earth

Test the methods of the Map control

I have added this test page to the Gallery that shows methods on the Mapcontrol and how to use them.

Now all we need is for someone to do the same thing for the VE.js scripts.

Anyone feel like they want to do this?



www.acehaid.org
Saturday, August 06, 2005 3:06:35 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, August 05, 2005

VirtualEarth is interesting but quite undocumented when it comes to developing against it. Luckily, Neil Roodyn (that's Dr. Neil) has had a great head start with Virtual Earth and has created the Virtual Earth developer center “ViaVirtualEarth”. There are already some articles on getting started and a ...[read more]

[A DevLife post]



www.acehaid.org
Friday, August 05, 2005 4:51:05 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Larry Osterman has a pet peeve that I have ranted about in the past: the use of the word "ask" as a noun that has proliferated at Microsoft when people are talking about budgets and more.

There is a really fun discussion going on in the comments of this blog post - up to 42 comments at the moment. So if you like language, you will definitely enjoy reading or even participating in this conversation.



www.acehaid.org
Friday, August 05, 2005 3:08:54 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Avonelle Lovhaug has been waiting for her Lenovo for a long time! And she's not alone. But this is not stopping people from glomming on to the tablet that will finally make the mark for TabletPCs on the end user market. According to this eweek article: “The ThinkPad Tablet has sold so fast since its introduction that Lenovo quickly ran out of stock ... [read more]

[A DevLife post]



www.acehaid.org
Friday, August 05, 2005 2:58:04 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  |