# Thursday, 08 May 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, 08 May 2008 10:28:38 (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback
# Tuesday, 06 May 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, 06 May 2008 21:41:07 (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Monday, 05 May 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, 05 May 2008 15:27:20 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, 04 May 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, 04 May 2008 21:07:32 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, 02 May 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, 02 May 2008 11:19:30 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, 01 May 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, 01 May 2008 11:40:50 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, 27 April 2008

http://www.iasahome.org/image/image_gallery?img_id=2017

LAST CHANCE FOR $100 OFF! REGISTER BY April 30th

36 Sessions for $350? The ITARC brings dozens of speakers from New York and around the world together to ensure that architects in the region get the training and education they need. We have tracks for enterprise architects, infrastructure architects, software architects and senior developers.

The IASA is an non-profit international association of IT architects, which is why we have worked so hard to provide such a low cost, high caliber event. Want to become a speaker someday? How about influence the agenda at a major conference to cater to your exact needs? Getting involved with the New York ITARC is how you can do both as this conference will be held yearly. So attend this year and speak the next!

The conference only holds 250 so get registered today.

ITARC 2008 Agenda - Check out the latest speaker additions

Featured Keynotes:

Noteable Speakers:

Early bird pricing ends April 30th so click here to register online.

Registration

Register before April 30th to receive a $100 discount. IASA members receive an additional discount in addition to the early bird special:

Register before April 30, 2008
Register after April 30, 2008

IASA member

Non-member

IASA member

Non-member

A group discount of 20% is available for groups of 6 or more. Contact 512-615-7900 to take advantage of the group discounts.

Click here for the event website.

Click here to register online

Click here to register by check.

Questions or comments? Please contact:: CynthiaRubio@IASAhome.org

posted on Sunday, 27 April 2008 10:35:53 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, 24 April 2008

Speaking at the NYC SQL Server User Group tonight on Database Design Patterns, the popular TechEd Session. Click here to register.

Meeting Location:
Microsoft New York City Office
1290 Ave of the Americas
Sixth Floor
New York, NY  10104

Meeting Time: 6pm.

Topic:

Database Design Patterns: Architecting the Right Data Model for the Right Application

Description:

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 and not the other way around.

posted on Thursday, 24 April 2008 09:45:00 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Wednesday, 23 April 2008

Microsoft released a tech preview of Live Mesh for developers today. Live Mesh is a software-plus-service platform that enables your PC and your other devices to “come alive” by making them aware of each other through the Internet. I was invited to the beta and so far I have been using the storage features and synchronization services. (Think of a Live Mesh aware TV set top device and season 4 of Lost downloaded on my PC.)

I can see road warriors like myself using Live Mesh quite often, all you have to do is upload a Word document to your virtual desktop and then it will be automatically be kept in sync on every machine and device I have. As long as it runs Microsoft operating systems, a limitation I can live with. (But support for Mac is coming soon I hear.)

While the marketing engine of Microsoft seems pointed to the consumers with their XBoxes and PCs, I think this software+services approach represents a change in direction for Microsoft. Using the software (Office 2007 + Vista) and the services (Live Mesh's synchronization and discovery services) developers can build some really cool business applications.

Not only can you sync documents and files, but you can also sync applications (via a two-way RSS or Atom feed). Once again Microsoft is showing its strength with the developer community. For example, a Web developer can build an app using any programming language and then sync that application across multiple devices and even other applications. 

Contrast this to what Google is doing. Google is trying to bring all of your applications from the desktop to the cloud. Microsoft is trying to get you to keep your desktop applications for their rich features and leverage the cloud for storage, synchronization, and collaboration. Microsoft is not pretending that we have uber powerful and cheap PCs and is using the cloud for infrastructure.

Will Live Mesh make Microsoft a player? Ray Ozzie thinks so. He has said that Microsoft now has to build software+services with a connection between devices (and their data) and people.

Its' a great time to be a developer.

posted on Wednesday, 23 April 2008 12:56:57 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback