# Tuesday, May 13, 2008

Thursday, May 15, 2008
WPF Beyond the Basics: Playing Tricks with the Visual Tree

Subject: 
You must register at https://www.clicktoattend.com/invitation.aspx?code=126267 in order to be admitted to the building and attend.
The Visual tree is one of the core concepts of the WPF framework. All things visible in a WPF application are objects from the Visual tree. In this talk I'll give a quick overview of the Visual Tree and then get into interesting ways of manipulating it. We will also look into the styling and templating aspects of visuals. The ideas presented here should be immediately useful to custom-control developers and application developers in general. The session will be very hands-on with cool demos and live coding! The techniques discussed here were used in my blog posts on ElementFlow, GlassWindow, Drag 'n' Drop with attached properties, Genie Effect, etc.

Speaker: 
Pavan Podila
Pavan Podila has worked on a wide variety of UI technologies with current focus on WPF/Silverlight, Flash/Flex and DHTML. He has a Bachelors and Masters degree in Computer Science with specialization in Graphics and Image Processing. He has been working with .Net since 2004 and WPF since 2005. In the past he has worked with Java Swing, Eclipse plugins, AJAX UI frameworks and Trolltech Qt. His primary interests are in 2D/3D Graphics, Data Visualization, UI architecture and computational art. He blogs actively on http://blog.pixelingene.com.

Date: 
Thursday, May 15, 2008

Time: 
Reception 6:00 PM , Program 6:15 PM

Location:  
Microsoft , 1290 Avenue of the Americas (the AXA building - bet. 51st/52nd Sts.) , 6th floor

Directions:
B/D/F/V to 47th-50th Sts./Rockefeller Ctr
1 to 50th St./Bway
N/R/W to 49th St./7th Ave.

posted on Tuesday, May 13, 2008 7:38:08 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, May 12, 2008

You may already know this but the beta of .NET 3.5 SP1 and Visual Studio 2008 SP1 are out today. You can download and install the beta from here. See ScottGu's blog for some release and install notes here.

It fixes a lot of bugs and rolls up a ton of service releases, etc, but this is not your ordinary service pack. SP1 of .NET Framework 3.5 actually adds brand new functionality to the .NET Framweork. For example the ADO .NET Entity Framework and ADO.NET Data Services (formerly code-named "Astoria") both ship new with the .net 3.5 SP1.

This changes the definition of a "service pack" since we have new functionality added. Since these are new features it will not break anything old and it is ok to install over your current 3.5 installation. But we really have .NET Framework 3.75. Download and enjoy.

posted on Monday, May 12, 2008 2:46:37 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, May 11, 2008

About 13 years ago, Microsoft ruled the Earth. Windows 95 shipped to much fanfare and people were talking about a "monopoly" and how nobody could remove Microsoft from their top position- ever. Then came Netscape and the Internet, then the .com boom and then Google. Now everyone counts Microsoft out. (Mary Jo Foley and I don't agree, but that is a topic for another day.)

There was a time when GM ruled the Earth. Their market share was so dominate we could not envision a world without them. Their profits were larger than most European countries' GDP. First came the Japanese, then the Koreans (and soon the Chinese will come.) But the real death kill was the environment. Now everyone (including non-car owner me!) wants a Tesla. Now everyone counts GM out and they are probably right to do so. They will survive but struggle for relevance.

There was a time when AT&T ruled the Earth. They even had a real monopoly, but I am talking about post monopoly. They were big and had infrastructure and controlled a large portion of the long distance market. Then came Voice Over IP. Vonage was the early trend setter, then cable/fiber companies, then Skype. People keep asking me what my "work" or "home" phone number is and I say either call my cell or Skype me since I don't pay long distance or have a land line. Companies like VOIPo are just killing AT&T and other telcos. (Congratz to VOIPo for hiring such a smart CTO!) The telcos are now irrelevant. 

It has long been argued that this is all good. It is "Creative Destruction"  or the process of something new killing something old. The term was coined by Joseph Schumpeter in his 1942 book called Capitalism, Socialism and Democracy to be a "process of industrial mutation that incessantly revolutionizes the economic structure from within, incessantly destroying the old one, incessantly creating a new one."

The role technology plays in the process of creative destruction is simply amazing. I can list ten more examples but you get the point. I watch with sheer excitement when Microsoft feels that it has to "bet the farm" on some new technology or Google has to buy YouTube to stay relevant, or how they all bow to the Facebook alter (and Facebook will be made irrelevant by someone new just like Friendster and MySpace before it.) I love how 13 years go Yahoo was predicted to take over the world (along with Excite and others that have gone away) and now it is struggling for survival. My old employer Zagat is struggling to stay alive (I only half like that with my unexpired stock options still on the line <g>).

Technology is the most powerful creative destruction force and will continue to be so. The reason why I am not on the Al Gore bandwagon (despite my insistence of taking the subway everywhere) is because I have faith that the problems we are facing here in 2008 of the environment or health care will be solved with technology, motivated by the powerful market force of creative destruction. We now have a Tesla, the sexiest car on the planet. We now have targeted chemo-therapy based on your DNA, making it far more effective. What is next? I don't know but I sure what to watch it all play out.

posted on Sunday, May 11, 2008 11:55:21 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Thursday, May 8, 2008

Breaking new on CNN:

"Bill Gates one of the world's richest men, a philanthropist and humanitarian was denied an entry visa to Myanmar today in his effort to help with the victims of the Cyclone. The Military junta was worried Bill would try to buy the country. Bill Gates was very disappointed and was quoted as saying "I just wanted to help a few million people." So instead he decided to help a different million people, those who hate their friends sending them Twitter updates. Bill bought the company with some pocket change and closed it down to save humanity the pain of tech geeks micro-blogging about picking their noses. Microsoft's stock jumped 100% on the news."

Since Bill did not really save the world from Twitter, I will tell you why I don't Twitter.

1. Everyone wants to be a Microcelebrity. Get (micro) famous on Facebook, Flickr and Twiter? Only an ego the size of Silicon Valley thinks that people actually care about our daily lives. I know that I live a dull life and don't feel the need to boost my ego to Twitter and think that you actually care about it. I don't want to be a microcelebrity, if I can't get a role in a movie opposite Cameron Diaz, then screw it, I will just go back to what I am good at: writing code.

2. "I use Twitter so my wife knows if my flights are delayed." People who are way smarter than me give me this excuse. The only person who cares about your flight is the person who is picking you up at the airport, so why broadcast that to the whole community? Ever hear of an airline alert? Far more reliable then your 3G network. I use airline alerts and I take public transportation to and from the airport to offset the huge airline CO2 emissions.

3. "I use Twitter to update my status." What makes you think that anyone cares about your status? Also in the post 9/11 world, should you be broadcasting to potential criminals and terrorists your whereabouts? My DPE just checked into the San Francisco Marriott last night, maybe criminals want to go and rip him off (since they know he has iPods and expensive stuff with him due to his Twittering). Worse yet I travel to places where they kidnap businessmen for ransom or worse (like in Pakistan), should I updating my status to them?

4. "Twitter is good for Conferences." If you need to read Twitter feeds to know where the cool parties are, you should stay in your room coding and eating room service.

5. "Twitter is fun." Yes fun for people who would rather play baseball on an XBox than outside with a real ball. Twitter is a time suck and you could be using that time to ether be working (if you are Twittering at work) or just going and doing something fun. If you are doing something fun, disconnect and enjoy it. I don't care what you are eating for dinner, the score of the baseball game, or how is traffic on the I-95.

The last reason why I won't use Twitter is that it is going to fail. Meaning, micro-blogging may succeed and eventually I will have to do it  (but I have still resisted Facebook!), but Twitter won't be the platform we use. First of all it is slow and times out all the time since it is built on Rails and Rails just doesn't scale. Even if they rewrite the site, someone else will move in for the kill. Remember Friendster? They never overcame the damage of their performance problems. Second, most likely we will just alter our Blog feeds to have have micro-RSS feeds and anyone can build a client for it. No need for a central server.

posted on Thursday, May 8, 2008 10:28:38 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback
# Tuesday, May 6, 2008

We're looking to hire a few good .NET developers. Instead of the traditional way of sending in CVs (resumes), I figured we can do this Web 2.5 style. Resumes are so 20th century and Web 1.0. What can we learn about you with just a resume?

Below are 10 things I want you to send me: some easy, some hard, some fun, some coding challenges. There are no right or wrong answers this is just a way for us to get to know you. Some questions will take you 5 seconds, some may take you 5 minutes, and at least one will take you an hour (#7, but it is fun). I am looking for what drives you, where you want to go, and of course your approach to problems and how you craft a solution. For the coding questions, good coders are easy to find, I am looking for a coder who in creative (one guy once solved a TSQL problem better than the actual official solution and now I use his answer as the new solution) but also through. (Hint: check your own work a gizillion different ways, I have gotten compile errors back in the past!) I am also looking for some who takes pride in their work and goes the extra mile (or kilometer). (Hint: things like good Unit tests also give you bonus points.) After we get to know each other via this process, then I will look at your CV and we can do the traditional interview.

Good luck and HAVE FUN!

1. Send me a link to you online. Your web page, blog, MySpace profile, user group you are a member of, or a site that you worked on. Anything to get me acquainted with you. If you are reading this blog you already know me, so it is only fair. :)

2. List your top 5 values. (Why do you get out of bed in the morning? What makes you tick?)

3. List the top 3 blogs that you read and tell me why.

4. Tell me what programming language you want to learn next and why.

5. List the top 3 new features you want to see in the next version of the .NET framework (4.0) that has not been announced and tell me why you want to see them.

6. Write a short essay on the greatest failure (canceled or late project, bad code breaking the build the night before a major demo, etc) in your professional career.

7. Listen to this podcast. Reflect on it and give me your reaction to it.

8. Send me an ASP.NET project from Northwind that uses the Model View Controller design pattern. (Not the ASP .NET MVC framework.) Use the categories, products, and sales. Be creative. Bonus points if it is real easy to install.

9. A TSQL Challenge. Give me a script to solve the following problem. (Run this setup here.) There are no real wrong answers, but the more efficient and bulletproof the query is the better. No cheating and no cursors! Don't Google the answers (we'll know.) Assign rooms to classes based on capacity using the Classes and Rooms tables. Rules: each class should have a room (and NULL if a room is not available). No class can be in a room where there are more students than capacity. No room can be used twice.

The results of your SQL statement should be something like this:

image

10. Create a data driven ASP.NET page using the Telerik controls. Tell me something that sucks about the control you used. (I already know what is great about them.) Bonus if you find a bug. (We'll send you a .NET Ninja tee shirt if you do.)

posted on Tuesday, May 6, 2008 9:41:07 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Monday, May 5, 2008

After Microsoft walked away from its takeover bid (or maybe this is just a tactic) Yahoo's share price lost most of its takeover premium this morning and is trading about 15-20% below its closing price on Friday. (But still above the $19 it was trading immediately before Microsoft's offer.

So what is next?

Yahoo will try to do something. They fought hard to stay independent, but at what cost? Shareholders have already started to sue and the market is punishing Yahoo today. They can outsource their search to Google (like they did when Google started) and focus on using Yahoo's web properties' traffic to make money. Slash jobs by outsourcing search and increase your valuation.  Then if Microsoft comes knocking again, they can argue a higher valuation. But Microsoft most likely won't come knocking if Yahoo outsources search. (This of course if the US Congress allows the Google deal.)

Microsoft may make a move on AOL. While not as strong as Yahoo, AOL will come with the traffic to build out the Live platform and Time Warner really wants to get rid of AOL. I am not so sure that this will work, but it is possible. AOL brings far less to the table than Yahoo. I can see a MySpace play but that does not really look like it will make money, ditto for Facebook. Social networking may have the eyeballs but not the ad dollars.

That brings us back to what happened this weekend. Yahoo and Microsoft have no good options in front of them. Yahoo can't stay independent without a major change. Microsoft needs to push its ad strategy out to more eyeballs and Live is not cutting it. I think they will both be back at the table in a few months.

posted on Monday, May 5, 2008 3:27:20 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, May 4, 2008

image

I will be doing a make up session for the snowed out meeting last winter up at the Montreal Visual Studio User Group.

Conférencier: Stephen Forte, RD New-York, USA
Note: Cette présentation sera en anglais (yes my French sucks)

Architecting an application starts with the database. Different applications need different data models. Fifth normal form is great for an OLTP database but reporting databases need more of a flat denormalized structure and different web sites need several different types of data models: eCommerce sites need different data models than traditional publishing sites. You need to optimize your data model for your application’s performance needs. Concurrent users, Data load, transactions per minute, report rendering and query seek time all determine the type of data model you will need. See how different applications and different parts of an application can use different data models and how you can architect your database to fit into your application’s needs-not the other way around.

Address:

2000 McGill College, 4th floor

clip_image001

posted on Sunday, May 4, 2008 9:07:32 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, May 2, 2008

I have always watched the development community's fascination with Ruby on Rails with much concern. It seemed like it was gaining much popularity because it was easy to use and spit out web sites based on an easy to use framework rather quickly. What's wrong with that?

A lot. Rails makes it easy to build an application by drag and drop and stitch things together with some glue code. It gives you a platform for most of the plumbing and never forces you to understand the mechanics of objects or other more sophisticated coding techniques. This leads you to some fast and easy web sites that don't scale past the RoR framework. Great for a fun site or a prototype, but not so good if you need to scale past what the RoR framework has to offer.

Some sites are learning this the hard way. Twitter has had some major outages recently and some very public scaling problems. They are mostly a RoR shop and there are rumors that they are going to swap out RoR, rumors that they of course are denying. If Twitter moves away from Ruby, it could do much damage to Rails' adoption in the future at startups that have large aspirations. I am not saying that all of Twitter's problems are caused by RoR, some very large consumer facing sites are built on Rails, but rather are a byproduct of using an application framework to build a large public site (not to be confused with an API framework like .NET or J2EE). Rails gives you a framework and makes it simple to build sites that fit into that general framework. Once you step off the reservation, you are in for a world of hurt. If you are building a site that fits the Rail mold, then if you have good engineers you may be able to scale to a gazillion users, but you lost most of the ease of use of Rails by doing so. If you are building a site that does not fit the Rails mold, then you will have scaling issues, mostly because Rails was not designed to do what you want it to do.

Some in the rails community have broken ranks, the most entertaining one is Zed Shaw, a god in the RoR community, with his infamous exit rant Ruby is a Ghetto back in January.

What I am really saying is that there are no shortcuts. You have to learn how to code and use platforms that scale to the goals of your application. Sometimes this means writing your own code and object model and data access layer.

posted on Friday, May 2, 2008 11:19:30 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, May 1, 2008

Red Herring magazine, an influential .com survivor, compiles a list of the most important firms in the technology and bio-tech space. The companies that innovate and set trends and influence the market. This is like the Fortune 500 list but for tech. This is an important list, in the past Google and Amazon were at the top.

The List of the Top 100 European Companies is now out and Telerik is on that list. This great for Telerik of course but even better for the .NET community. First it shows that .NET is gaining more and more momentum when Red Herring awards a .NET component vendor as innovative, influential, and trend-setting. (They usually reserve those terms for open source.)

Second it show just how global our community is, Telerik is an Eastern European company with headquarters in Sofia, Bulgaria, and one of only three companies on the Red Herring 100 from the former Eastern Block. That a company's founders grew up under communism and then can be labeled by Red Herring as innovative and influential in our market is totally awesome. Shows you how technology (and .NET!) can change the world.

Congratulations to the .NET community and to Telerik.

posted on Thursday, May 1, 2008 11:40:50 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback