Sql Server 2008, Intellisense and Backward Compatibility
08 May 08 01:28 PM | William | with no comments

Whitney is a little disappointed that the RTM version of Sql Server 2008 will not support backward compatibility with respect to intellisense...

The conversation related to what I felt was misinformation in various places about whether or not IntelliSense would be backward compatible.  Currently, CTP6 will support IntelliSense against a SQL 2005 or SQL 2000 instance.  This was exciting to me as I tend to work in multiple revs of the product.  As it turns out, the RTM version of SQL 2008 WILL NOT support this behavior.  Here is Eric's statement to why that is the case:

He's got a petition going to try to get the Sql Server 2008 team to include it at one point or another.  There's no shortage of items on the wishlists of Microsoft products, especially something like Sql Server 2008.  They look to the community to help determine what's going to make the cut, so if you care about this feature, take a few seconds to let the team know your opinion. There are no guarantees but they care very much about what customers want and this is one avenue to communicate with the directly.

 

 

let the team know your opinion. 

Filed under:
LINQ Gotcha
07 May 08 08:00 PM | William | 3 comment(s)

After a long hiatus, I was trying to figure out something cool or at least interesting to blog about.  I was having trouble figuring out what I wanted to write, but then one after another, I got a ton of ideas.

One thing I wanted to do for my current project was finding out if a specific ConnectionString was present in the <ConnectionStrings> setting of a .config file. This is a big oversimplification but it's close enough to explain. So I wrote the following:

var myVar = from cs in ConfigurationManager.ConnectionStrings
            select cs;

 foreach (var Mine in myVar)
 {
       Console.WriteLine(myVar);
 }

I knew the second I tried to write a where clause that there was a problem b/c intellisense wasn't showing anything I expected. When I tried to display some of the properties in the foreach loop, nothing was visible. I knew something was wrong. So I tried to compile and got the following error:

Could not find an implementation of the query pattern for source type 'System.Configuration.ConnectionStringSettingsCollection'.  'Select' not found.  Consider explicitly specifying the type of the range variable 'cs'. 

Well, that was helpful b/c I knew at least the problem was with the  range variable .  I wasn't sure what type of collection the ConfigurationManager.ConnectionStrings  property was so I decided to look it up just to be sure. (I also just wanted to make sure it was in fact some type of collection or another. I couldn't imagine that it wouldn't have been, but just wanted to make sure for purely superstitious reasons) Ok, so it's a ConnectionStringsSettingsCollection , nothing surprising there. Digging deeper I saw that ConnectionStringsSettingsCollection inherits from ConfigurationElementCollection . At that point, it all became crystal clear for I saw the following in the class definition:

public abstract class ConfigurationElementCollection : ConfigurationElement, ICollection, 
    IEnumerable

Do you see the problem? There's an IEnumerable but no IEnumerable<T>   . You see, the collection implements the non-Generic IEnumerable but not the Generic IEnumerable. Hence, a explicit range variable is in order to make this work.  I know I know, that's exactly what the error message recommended, but I didn't understand why at first and wanted to dig deeper into it. So bascially, here's what was needed to make it work.  Simply use the Cast<T>   extension method on the collection and well, that's it.

ConnectionStringSettingsCollection cfg = ConfigurationManager.ConnectionStrings;

var myvar = from cs in cfg.Cast<ConnectionStringSettings>()
                  select cs;
foreach (var mine in myvar)
{
    Console.WriteLine(mine);
}

Of course, you could just cut out some of the bloat and address the collection directly

var myvar = from cs in ConfigurationManager.ConnectionStrings.Cast<ConnectionStringSettings>()
            select cs;

foreach (var mine in myvar)
{
  Console.WriteLine(mine);
}

Whenever Intellisense doesn't do what you're expecting it to, that's the first tipoff something is wrong in your query.  Although my days of 2 day work weeks have come to an end temporarily, I'll try to find some time to blog the rest of what I was working on - there's so much you can do with LINQ that I often overlook.  And this is the first time I've come across the explicit range variable issue but I'm guessing it'll come up again, particularly if you use LINQ regularly.

 

 

 

Seasons changing again.
29 March 08 01:06 AM | William | 5 comment(s)

Things have been pretty hectic lately so I haven't really kept up with everyone as much as I'd like to.  The big announcement with me is that I'm leaving Magenic and taking a new position much closer to home.  I've really liked most every company I've worked for over the years, and have always made a lot of friends at work.  Magenic has been a lot different.  As a Magenic employee, you frequently hear about the Magenic 'family'.  Many times such phrases are little more than campy soundin cliche's.  I can honestly say though, it's been completey different at Magenic.  It really is as close to family as you can get without the real thing and it's a huge bummer leaving.  The problem is, i've been living a duel existence.  I work in Atlanta, have a residence here, but I live in Greenville.  Atlanta traffic is something to behold so unless I leave really early Friday's, I end up with maybe 2 hours with the Family on Friday, all  day Sunday, and then about 1/2 day Sunday.  Although I agreed to travel as much as needed, Magenic was aware of my situation and really went out of their way to minimize travel for me. In my tenure, I've only had one real travel gig and that was only 5 weeks. I had a few small ones, but they were two or three day engagements. Throughout all of this, I've been busy doing work for Microsoft, work which requires me to be in Redmond regularly. I've been tech editing books pretty much consistently and I'm in the process of writing another book.  All of it added up to a really busy private life.  Kim has been a saint about the whole thing but we all have our bending points. 

So today was my last day at the company.  Sunday is my last day at my current residence.  I'll certainly be around Atlanta regularly so I'm not leaving in any permanent sense.  And  b/c of what I'll be doing, I'll have a lot of free time.  Sahil had been instrumental in convincing me to go independent and i finally stepped up and did it.  I have a lot to learn about the whole 'running your own business' aspect of consulting, but to be honest, I'm a really late bloomer in that regard and it's about time I did it.

I was spending most of tonight getting ready for my code camp presentation tomorrow all the while packing and trying to get out of here.  I probably should have just hired movers but like cutting my own grass, moving is one of those things I always insist on doing myself.  If I keep up that philosophy though, I am pretty sure I have maybe 2 more moves left in me in this lifetime, b/c moving Sucks.

Anyway, as I was getting everything moved, everything started to sink in.  When I first came to Magenic, I was really scared of being a little fish in a big pond, and I was.  B/c of really helpful co-workers and really supportive management, I was able to build up my skills pretty quickly.  After 6 months I won Magenic's Consultant of the Quarter award which was a big honor for me.  Shortly thereafter I was promoted from Senior Consultant to Principal Consultant.  With that came the position as Technology Evangelist which really added a high cool factor to an already cool job.  When I first got to Atlanta, I hated it. I love big cities and have lived in a few, but I felt totally overwhelmed. Traffic was like nothing I've ever experienced and it seemed that you had to plan your day around traffic.  It was hard to make committments to be anywhere in the morning, afternoon or early evening b/c of traffic.  One flat tire on the side of the road magnified by rubbernecking could turn a 15 minute trip into a 1 1/2 one.  And there was always a flat tire or police officer pulling someone over.  Rubbernecking is a scourge and I don't know what can be done about it, but it has to cost zillions of dollars in lost productivity.  The weird thing too is that EVERYONE acknowledges how wrong it is. Everyone says it's terrible and everyone says they don't do it. Yet every time there's a guy pulled over on the road, traffic will be backed up for 5 miles or more so there's a disconnect somewhere. (Reminds me of the "Kids peeing in pool paradox".  Every time I mention that I don't go in public pools where there are children I get asked why. I say 'b/c kids pee in the pool. I'm sure adults do as well, but you just *know* that kids are doing it.  Immediately, people with children say "Well, my child would never pee in the pool!"  So self-reports indicate that absolutely 0 people's children pee in pools, yet there's a lot of child pee in pools, so where does it come from?  Same phenomenon seems to be in place with rubbernecking).  Anyway, I ended up getting a place with a great location, so I missed traffic both ways other than getting out of the Perimeter on Fridays.  Little by little I went from hating Atlanta to really loving it.  Then it turned into my favorite city to live in.  And now that it's acheived that place in my heart, I've got to move ;-(  To that end, I'm quite sure I'll be back regularly - there's just too much I've gotten accustomed to doing here and greenville is cool and all, but it's not Atlanta.

If you want to get a hold of me, you can use the Contact link above and shoot me your email address, I'll get back to you from there.  You can also reach me at Facebook , LinkedIn, or Twitter.

Anyway, I'll be fully moved in this weekend and Kim and I will be tying the knot shortly.  Since I'm going to have a lot more free time, I'll be able to blog all the different 3.5/LINQ/ Entity Framework/Synchronization Services stuff I've been working on and hopefully will be able to get back into the newsgroups a lot more consistently.

As much of a bummer as it is to leave Atlanta, I've always liked Greenville and I'll be able to see Paul and Jason a lot more, not to mention my friends in Augusta like Ben. Brian and Andy.  All in all this is going to be a good move, but leaving a city you love and a job you love in a company you love is never easy.

And by the way... although we have a pretty high volume of applications, Magenic is always looking for passionate and talented professionals.  If you are in the Atlanta area and looking to get into consulting, or looking to work for a company that will really help you develop your career, Magenic is definitely a place that you'll enjoy. I'd be glad to get you introduced if you have any interest there so just drop me a line if you want.

Grand Theft Auto IV
28 March 08 05:38 PM | William | with no comments

A really compelling trailer for it is available at Amazon.

The Associated Press' Double Standard
17 March 08 09:46 AM | William | with no comments

Exhibit A 

Whether it's legal, illegal, moral, immoral or whatever, it's not a good idea to post stuff on the internet if you don't want people using it without your approval.  The main reason is that if someone does use it against your wishes, it's really hard to detect in most cases.  By the time you do, it could have been indexed and copied so many times your head would spin. On top of it, attempts at making people take things down usually end up backfiring. Like many bloggers, I've personally found my posts on other people's blogs where they are taking credit for it. It used to annoy me.  Then I got ot the point that I figured it's not worth fighting b/c it would require a lot of ongoing energy.  My way of dealing with it is usually to create variable names or comments that are self referencing - so basically I give myself the link back.  If I wrote something though that I wanted to control, it would not be posted on my blog.

 Personally, since I make my living selling intellectual property, I have a tremendous amount of respect to other people's IP.  On the other hand, the doctrine of Fair Use is necessary and life without it would not be good.  It seems too often there are two extremes that people operate in.  On the one hand, if it's on your site, no matter how much legal verbiage you surround it with, they act as though they can take it and do with it what they please.  On the other hand, you have folks that post stuff that people reference which clearly falls under the domain of Fair Use and they start making all sorts of noises about it.

 If I can digress for a minute.  Most of us will require the services of a lawyer at some point or another. When a relative dies, when you buy a house, when you for a corporation etc, you'll typically want to enlist the services of an attorney.  On the other hand, most run of the mill folks only have limited dealings with an attorney (cost alone prohibits using a lawyer frequently).  I"ve had to use a laywer for a few different things in life but in each case, I needed on for different tasks. I don't ask the guy who did my house closing to run a patent search for me.  So I, do not have "a lawyer".  That brings me to my little rant point....  "You'll be hearing from my lawyer".  Whenver I hear this (I've only heard it twice in reference to something I did, but I've heard people in line at the Verizon store say that twice, and have heard people threaten it on other occassions to random people"), I always think "WTF Ever".  To have "my lawyer" typically means that you keep him on retainer.  Very few people have enough legal dealings to warrant keeping a lawyer on retainer for indefinite periods of time. So when I hear that, It warrants only a chuckle.  Even if you really do have a lawyer, you just sound stupid making such threats. If you are really going to get a lawyer involved, just do it.  And whatever you do, don't send ridiculous absurd threatening emails where you threaten frivolous litigation where you mention your big city lawyer over and over again, especially when you don't have a  lawyer, lied about everything in your email and don't have the money or grounds to file litigation. You'll just make a fool out of yourself.

 Ok, anyway... I think you ought to play it one way or the other, but you can't have it both ways. In order for a site like http://www.snappedshot.com/ to do what they do (Criticize and point out inaccuracies with photo journalism), they really need to show the images at hand. They don't charge money and they aren't presenting it as their own.  But if they just referred to the photos at hand, it would really diminish the effect. If they linked to the image, several problems would present themselves as well. But for the Associated Press to say he has no right to do this, and then go and snake "Kristins" photos, that's pretty shameless. Clearly they have a legal department and he doesn't. So they thought they'd just bully him around with their big city lawyers (unlike unemployed nuts who can't live without borrowing money from people and not paying them back). When they needed some images for their story though, they had no problem swiping them. And they were definitely under copyright so they engaged in sheer hypocrisy by doing this. 

Filed under: ,
Silverlight for Windows Mobile
17 March 08 09:16 AM | William | with no comments

Speaking of new features that should help Windows Mobile remain the dominant player in the market, a mobile version of Silverlight is going to be coming down the highway .

The good news:

  • Expected release is Q2 - 2008
  • You can use Expression Blend to develop it with.  So you won't need a new or additional IDE

The bad news:

  • It will be Silverlight 1.0

I know, the teeth on that horse you gave me are a little crooked.  Response time is really going to be the big factor here... if it's fast and works right, this is going to be a huge, HUGE, feature that will open many doors to mobile development. 

The Microsoft® Windows Mobile Line of Business Solution Accelerator 2008!
17 March 08 09:04 AM | William | with no comments

Rob Tiffany has got the details... . 

The main features include:

  • Intelligent resolution awareness
  • Synchronization Services
  • Windows Communication Foundations "Store and Forward"
  • MapPoint
  • LINQ
  • Custom Controls
  • Managed Stored Procedures and Triggers
  • Notifications and Online Help
  • Language Switching and Localization

Some of these (WCF, Synchronization Services) are a lot more thrilling than others but all in all it's a great step forward.  With that said, I think MS really needs to work on a few things. When the iPhones first came out, I was lucky enough to have one sent to me.  I liked it but didn't go gaga over it. After two days, I decided to sell it.  I think UI wise, it was far ahead of a typical SmartPhone although the PocketPC edition phones gave it a lot better run for the money.  But I know that my opinion is not typical. In fact, most iPhone users who have used or use Windows Mobile are really adamant about the superiority of the UI and usability.  I think some of that is b/c they are comparing a 500.00 phone with a much cheaper one in many cases but across the board, the iPhone does probably have the advantage.  Having started to toy with the iPhone SDK, I have to admit it's fairly easy to pick up (nowhere near as easy as the Compact Framework) so once more applications come out for it, it will make it all the more attractive to mainstream users.  I have a lot of faith in Microsoft though and nothing would please me more than for Windows Mobile 7.0 to work so well that my obnoxious iPhone owning friends will have to pipe down about the greatness of the iPhone.  The accelerator however, is definitely a step in the right direction.

Whitney Weaver is now blogging
11 March 08 05:38 PM | William | with no comments

My friend and co-worker,Whitney Weaver is now blogging at the Magenic blog site. Actually, he's been blogging for a little while now, I've just been a bum and not updated my blog in a while.  Although he's certainly an up and coming programmer, Whit's main area of expertise is data, so if you're a data guy (or gal), you should check out his site

Interesting Mac iBook story
11 March 08 05:16 PM | William | with no comments

Every time I hear about the TSA, I become more and more convinced that if Darwin's theory is correct, the TSA will cease to exist before long.  The latest 'can they really be this stupid?' incident has to do with a Mac Airbook.  At first I started thinking along the lines of a corollary to Chris William's 'Grandma Theory'. Maybe the TSA officers weren't dumb and clueless, maybe they were just older and technologically illiterate.  But that can't be the case here b/c they clearly know enough about technology to know what a hard drive is and what ports are.  They knew enough to think there's something fishy about a computer without a disk drive and ports.  That made me start to envision a Cliff Clavenesque know-it-all who is a self-proclaimed computer whiz - trying to look smart in front of his/her peers.  It's kind of hard for me to imagine that a TSA agent, unless they just started (and his comments indicate more than one TSA agent was involved), hasn't come across an iBook by now.  At a minimum you'd think they would have come across some really thin/small computer that wouldn't have had a disk drive in it.

"I'm standing, watching my laptop on the table, listening to security clucking just behind me," Nygard recalls of the situation. "'There's no drive," one says. 'And no ports on the back. It has a couple of lines where the drive should be,' she continues."

Assuming the reports are true and accurate , this would be hysterical if these people weren't 'protecting' our country (and at ridiculously high union wages).  My personal experience with TSA is a lot different.  While they are often strange, bitter and/or incompetent, they don't seem technologically clueless. I have a travel bag that I keep my Ultra-mobile, my Zune, Phone, Headphones, USB Hub, a trackball and a few other misc items in.  It always causes them to run it through the machine a few times (even when I pull just about everything out).  But usually, after they see what all the stuff is individually, they either make some gadget geek joke or ask about one of the items (the most common one is asking if my Zune is 'the new iPod').

 

 

Filed under: , ,
This has got to be mighty embarassing for Microsoft
10 March 08 09:35 AM | William | 1 comment(s)

Some negative internal reviews on Vista

Filed under:
I'd just close the hole...
08 March 08 09:15 PM | William | with no comments

There are often times that I read something, typically involving a lawsuit, that I'm shocked people push. Often they are so embarassing, I'd probably pay extortion money to keep the crap quiet if someone threatened to go public about something I did.  But instead of trying to keep it quiet and just fixing it, they involve lawyers and threats.  NewsFlash - threatening bloggers and web sites backfires.  I can say unequivocally, if I was the one that created something this widely used, that brough in this much money and had such a glaring security flaw , I would just fix it quietly.  I wouldn't want my name associated with something this moronic and sloppy.  I'd be paying bribes to the owner of HowardForums to have him keep it quiet, not threatening him and attracting attention.  Actually, I'd do neither. I'd thank him for helping me create a more secure system (then I'd fall on my sword in ritual suicide b/c Gawd this is embarassing)

Going to court high on crack
22 February 08 09:58 AM | William | with no comments

I know this is just one of those judge shows, but man, it's hard to watch.

Filed under:
More Posts Next page »

This Blog

News

    William G Ryan William Ryan Bill Ryan W.G. Ryan Charles Mark Carroll Charles M Carroll
    My Blog Juice Microsoft MVP
    Bill Ryan W.G. Ryan William Ryan
    Cuckooz' MySpace Page View Bill Ryan's profile on LinkedIn
    My Profile on Twitter
    Please note that this is my personal blog and the opinions expressed are my own. Also, comment moderation is about one of the least important things in my life so please keep that in mind. I can't vouch for the authenticity of any of the posters so please don't hold me accountable. And whatever you do, don't pretend to be Noted Option Strict Off expert and AspFriend Charles Mark Carroll when you post. Doing so will lead him to become apoplectic and write absurd accusatory posts about me that are as coherent and thought out as they are factually correct. He does a stellar job proving his reputation is well deserved and he doesn't need any help from you making himself look foolish. If I have to listen to him banging his spoon off of his high chair one more time, I'm going to burst into flames so please don't make that happen!

    My other sites

    Cool Stuff

    Book Stuff

    Security

    ORM

    Data Access

    Funny Stuff

    Compact Framework Stuff

    Web Casts

    My KnowledgeBase Articles

    My MVP Profile

    Design Patterns

    Performance

    Debugging

    Remoting

    My Fellow Authors

    My Books

    LINQ

    Misc

    Speech

    Syndication