Archive for the ‘Review’ Category

August 27th, 2008

So I received an iPhone last week…

I have to preface what I am about to say with a couple of things:

  • I have a first generation iPhone
  • I do not have AT&T or any other GSM network
  • I am using this iPhone as a phone mostly as an iPod
  • I use Verizon Wireless as my cell phone provider

I have to say I am pretty impressed with the iPhone interface.  Alot of work has been done with the user interface and making the applications very useable.  But I have noticed the following problems, that wouldn’t nessisary keep me away from this as a phone, but would make me think twice about how usable it is from my point of view:

  • Microsoft Exchange support has been severely dumbed down, and forced in to the limited Apple model surround Mail, Calendar, and Contacts.
    • There are no categories for the Mail, Calendar, or Contacts.
    • There is no way to retrieve my tasks.
    • I use color coded calendar events for separation between Personal, IdeaPipe, and my Employer Voveo.  I have not been able to figure out the color coding that Apple seems to indicate on their Enterprise site.
  • No way to store and access files on the file system.  Which I use when I need a quick thumb drive in a pinch or to carry around presentations.
  • No Copy and Paste
  • Safari crashes under large downloads.  Especially on large pages that are not loaded via AJAX.  So it seems like buffering or rendering of complex web pages seems to be a problem.
  • No Flash or Java support on the “real web.”
  • Unable to make quick edits to Word, Excel, or PowerPoint documents, like I can do on a Windows Mobile device.
  • It is very hard to develop a native application for the iPhone if you don’t have a Mac.  (sort of expected this one though)
  • No voice command software to read calendar events, dial phone numbers, or call somebody out of your contact list.  (not that I need the last two in my current situation)
  • No supported way to tether the iPhone to your computer to use it as a modem.
  • As well as the numerous 3G problems that seem to occur because of an immature 3G network.
  • Security is a second thought behind neat usability features.

The iPhone is a wonderful device, but in my oppinion it is still on the level of a toy, because it is generations behind Windows Mobile and Black Berry with features that are needed and wanted as an average business user. And at least Window Mobile and Black Berry keeps their devices locked and passcode protected, which is another reason Enterprises were probably wise to wait on rolling the iPhone out. Apple’s Exchange integration also seems sort of half assed, and they should have probably spent more time on providing some of the more basic features such as categories and tasks instead of creating a horribly buggy semi-quazi competitor with their MobileMe service.

All in all there is no complelling reason to move away from Verizon Wireless at this time for me.

Tags: , ,

Posted in Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | No Comments »

August 14th, 2008

Is Stackoverflow.com really a Web 2.0 site?

I have been lucky enough to be one of the few and many people that have had the chance to preview the beta of stackoverflow.com. It has a very nice look and feel in my opinion and seems to work very well for an early beta. Jeff Atwood deserves major kudos. However I have had one plaguing question?

Is stackoverflow.com really a Web 2.0 site?

I started thinking about this question a couple days ago, because as many of you know I have my own project, that isn’t much different functionality wise than stack overflow. As I started cataloging everything that a Web 2.0 site is suppose to consist of, the more I asked the question what is a Web 2.0 site, and is stackoverflow.com really one?

Tim O’Reilly defines Web 2.0 as the following:

Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as platform, and an attempt to understand the rules for success on that new platform.

In my opinion a platform has the following characteristics and so does a Web 2.0.  There are probably many more, but these are the top 4.

  1. It must have a fluent interface.  (this is usually implemented through AJAX)
  2. It must have an externally available API.  (because a closed platform is what Web 1.0 was all about)
  3. Users can own data and have control over who sees it.
  4. It is an obvious advancement from the previous Web 1.0 version of the software if one exisited.

http://stackoverflow.com

Just as a precursor to the following discussion, I have never heard Jeff proclaim that stack overflow is a Web 2.0 site, so this is just my ramblings.  Jeff has also done an awesome job with the site in a short period of time so everything I am saying now will probably change in the future.

Stackoverflow.com has only really done #1 of the first 3.  However what I really want to have a discussion on is if it really has advanced it self enough beyond the old forum model to really be considered 2.0 worthy or is it just a display layer on the 1.0.  For all intents and purposes we are going to use the forums on ASP.NET for comparison.

  • Allows users to create posts? (both yes)
  • Allows users to create reply to the posts? (both yes)
  • Allows users to talk to each other? (asp.net only)
  • Allows users to rank posts? (both yes, but different mechanisms)
  • Allows users to rank replies to posts? (stackoverflow.com only)
  • Allows users to get a system ranking against other users? (both yes)
  • Allows users to tag posts? (both yes)
  • Allows users to tag replies? (asp.net only)
  • Allows users to mark a reply as an answer? (both yes)
  • Allows categorization of posts? (asp.net only)
  • Users aquire badges of honor in the system? (both yes)
  • Users can have a profile of themself and their activity? (both yes)
  • Can easily follow a posting? (asp.net only)
  • Can easily follow a grouping of posts? (asp.net only)
  • Allow users to delete posts? (stackoverflow.com only)
  • Allow users to delete replies? (stackoverflow.com only)

Using the above questions it makes stackoverflow.com look like it is playing catch up to the asp.net forums, which has had a 6 year head start.  But it still begs to ask the question is the technology and application of it worth of the title 2.0 or just 1.1?  I think Jeff needs to impliment the following beyond the typical forum to really claim that 2.0 title.

  • An external API (REST seems popular)
  • Become less of a destination and more of a service:
    • Render in other platforms. (Facebook and/or Open Social)
    • Allow posting and following via SMS and IM.
  • Allow users to follow certain tags, categorizations, users, etc. through RSS, JSON, XML, etc.

I do beleive that Jeff has a long way to go before stack overflow is considered an advancement beyond the standard forum, but if anybody can make that leap it is Jeff.

Tags: , , ,

Posted in Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 1 Comment »

July 26th, 2008

X-Files: I Want To Beleive… Meh…

Last night I saw the new X-Files Movie, I Want To Believe, and as a fan of the original series and movie, I had great expectations for this movie.  In the normal series and the first movie, Mulder and Scully were assigned by the FBI to investigate the X-Files, or cases that couldn’t be explained by normal science.  Which usually involved humans with special abilities, government cover-ups of paranormal activity, and extra-terrestrials.  However this movie didn’t have anything do do with any of that, and the script seemed more politically driven, than to actually answer questions from the fans of the original series, it didn’t even seem to be a continuation of the original series.

Plus I think most of the critics just phone this one in with a score of 3.3/5.0, it deserved a 1.0/5.0 and that was probably being generous.

Lets just say I went to see X-Files: I Want To Believe, and I really wanted to believe that the produces would do the original series justice, but the movie left me wanting to leave.

Warning Spoiler Alert If You Continue Reading

Read the rest of this entry »

Tags: , ,

Posted in Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 4 Comments »

July 20th, 2008

Do your self a favor get Opera 9.5 Mobile

I just downloaded Opera 9.5 Mobile for my Windows Mobile phone. And I have one thing to say. Wow! This brings a more standard compliant browser to your phone to replace the aging Pocket Internet Explorer. Opera 9.5 Mobile event beats the iPhone version of Safari in the ACID 2 and ACID 3 tests, so it is an amazing experience to finally get the full web, as it was intended, on my mobile device.

The features of Opera Mobile 9.5 will include the following:

  • Intuitive user interface
  • Tabbed browsing
  • Improved text wrap
  • Page overview, zooming and panning
  • Landscape mode
  • Save Web page for future offline access
  • Call phone number from Web page
  • Send link as SMS/MMS
  • Send image as SMS/MMS
  • Small Screen Rendering
  • Password manager
  • Web address input auto-completion
  • History and bookmarks
  • Copy text
  • Opera Widgets

The user mhalachev in the forums had the following to say about his first impression (and issues with the beta) of Opera Mobile 9.5:

- The default keyboard is altered when I start opera. (this one was quoted a lot of times, but it’s very important for be, because I use alternate IME with cyrillic text input)

- It is not necessary to pop-out the IME automatically every time, especially on devices with qwerty keyboard.

- When I double-tap to zoom-in outside of a paragraph, it always zooms to the top-left corner of the canvas and not to the point where i’ve tapped. I don’t know how you determine the exact size of the zoom-in area, but I’ve noticed that if the element is defined only with css properties (e.g. page header with backgroud-image) it zooms to the top-left.

- It would be nice if you implement the soft keys to do something (I’m running it on Kaiser, but most wm devices have softkeys too), like in Opera Mini, where I can access the menu via soft keys)

- It would be nice too if it’is possible to scroll and zoom with the d-pad, like in Opera Mini.

- The Kaiser has a Tab key on the sliding-out keyboard. (other devices have too) You may catch it and make Opera jump between page links, like a tab key on a “normal” PC.

- I liked the black theme on the first screenshots that you’ve posted in February. It will look good on the black htc theme. Think of making a theme, that takes it’s colors from the device’s theme.

- I have the Flash plug-in installed (Pocket IE displays flash), so I would like to see flash content in Opera. The kick-ass mobile browser will be that one, that displays flash content along with AJAX.

- Talking of AJAX, I would like to congratulate you for the support in Opera Mobile! It displays correctly various ajax-enabled sites, incl. the google reader for iphone etc. Various dom and dhtml gimmicks are rendered (almost) like on a desktop pc.

- I would also like to suggest once again to take some of the navigation and control options from Opera Mini (the softkeys and the d-pad), because they are very convenient while on the go, with one-hand operation.

So as you can see this is pretty typical beta software with the normal line up of things to do before the gamma release.  But I definitely recommend checking it out.  This is a video produced by Opera to demonstrate the features of this new release, in case you are not convinced yet.

The following are know issues with the current release, as noted by Opera:

  • ActiveX is disabled — Flash plugins and embedded video streaming do not work.
  • Custom IME’s (like HTC’s IME) will be buggy at best, not working at worst.
  • Not multilingual build — Only English is supported. Problems with other languages (and input methods) are not unexpected.
  • Installation on memory cards may cause problems.
  • Text wraps in overview mode.
  • Main testing has been done on English HTC devices (Touch Diamond, Touch Pro, Touch, Touch Dual, Touch Cruise, TyTN and Wizard) and Samsung i900.
  • We have got reports from some users that this build will disable the phones sounds/notifications.

Give it a try I know you will thank me.

Download: Windows Mobile 5/6 Pocket PC, version 9.51b1(Touchscreen-based devices only)

Tags: , , ,

Posted in News, Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | No Comments »

July 16th, 2008

Review of NDepend

When I was asked to review NDepend I didn’t want to do just another review.  Because there are plenty of great reviews and I would just be adding to the noise.  So I am going to use this time to give a personal story of how NDepend has helped me restructure some code I have been working on.

As you are probably aware I have been working on a start up, called IdeaPipe, we have been going full steam ahead since January 2008 to get IdeaPipe to the point where it is today.  Going at that break neck speed for almost 6+ months has left some raw spots in the code, that I have been putting off.  Because lets face it even though they are not optimal, they are returning the correct results.  Just like a rough draft for a book it is better to get all the way through it and get a good picture of the entire story as a whole, and go back and rework the spots that were created inorder to advance the storeline.  The same is true for software.

In large software projects you sometimes forget where these rough spots were and why you actually implimented something in a certain way.  Luckily for us we have tools like NDepend that provide base metrics telling you were you need to focus your work. 

One of the features that I loved the most in NDepend was this CQL (Code Query Lanauge) that allows you to run SQL like queries against your assemblies.  So if you wanted to find all the private variables that didn’t follow the rule of starting with “_” that is as easy as running a SELECT query in the command window.  The CQL is by far the coolest software feature that I have seen in a while.

Overall I give NDepend a thumbs up.  I do have one request for the good folks at NDepend and that is to intigrate all the windows in to Visual Studio to provide a seemless experience for us developers.

Tags: , ,

Posted in Programming, Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 2 Comments »

July 10th, 2008

iTunes 7.7 + Windows Vista x64 == OK

iTunes 7.7 has been released!

Windows Vista x64

I am happy to announce that iTunes 7.7 and Windows Vista x64 work well together. The Apple downloader even chooses the correct 64-bit version of iTunes through every browser that I have tried, so they obviously fixed something where you don’t need to download iTunes through the 64-bit version of IE. No word yet if the iPhone 2.0 or 1.0 will work with the 64-bit version of windows.

Whats New?

As far as I can see nothing is really new with the application.  The only noticeable things is that the “Games” menu item has now been changed to “Applications”.  So if you were expecting a huge jump forward in functionality you are going to be bummed.  Most of the changes probably went to support their new Mobile Me platform, push applications, and the iPhone 2.0.

Download

You can download iTunes in the normal places, either through your updator or from their website.  My recommendation is to wait to see, if you don’t need the new functionality.

Tags: , ,

Posted in Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 7 Comments »

July 7th, 2008

Ladies Night on Coder Journal

I received a ton of nice comments from Rob, John, Scott, and Phil related to my previous post, What Software Bloggers Do Girls Like Better? Phil even did a nice follow up post, with some good humor gloating, until the end where his wife let the air out of his sails; like only a wife can do.

The day I posted the article, Scott instant messaged me to say good job on the article. During the conversation he mentioned that I should compare the stats to Oprah.com as a base point for the other statistics. So naturally I thought this would be a good follow up article.

Usually to gauge the effectiveness of a relative score, like the percent of girls that visit your site, you need at least two points that fall on opposite ends of each other. These two points need to be based on similar vectors, in this case women, but are based on an outside source. Obviously Oprah is huge with women, so oprah.com is a natural choice for the high end, but I had trouble thinking of a super-nerdy site that would be suitable for the low end, but have enough traffic to give a good basis point. I finally settled on World Of Warcraft, worldofwarcraft.com, as my low end. Mostly because every time I think of WoW, I think of this South Park episode:

The results of this, non scientific, study was very disturbing. Mostly because about 3 out of 25 people who visit WoW on the internet is a female, which blows me away because I was expecting something like 1/50.

This means means the World of War craft beat out Jeff, Joel, and Scott, and Phil is slightly above the WoW site at about a 5% lead.

The numbers for Oprah was about what I expected, and probably align very closely to her TV numbers with about 85% of her viewers being female.

If anybody has a better website, than World of Warcraft, for me to compare these guys against please let me know.

Tags: , , , , , , ,

Posted in Programming, Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 1 Comment »

June 27th, 2008

Which Software Blogger Do Girls Like Better?

Today I received an invite to Google Ad Planner.  As I was playing around with this new tool, I was really blown away by how much information Google has collected on specific websites.  So much so that I wanted to share this tool with my readers, but I couldn’t come up with an interesting way to demonstrate the capabilities.  Until I started looking up some of my favorite bloggers and saw the almost embarrassing balance between females and males.

So today I am going to analyze

with Google Ad Planner, to find out who is more popular with the ladies, Scott, Phil, Jeff, or Joel.  I know this is one of those questions that has been hotly debated by nobody, but I thought it was a good mechanism to demonstrate what kind of information Google Ad Planner can show.

Please note that I wanted to also analyze, Rob Conery and Jon Galloway too, but their data was yielding results that I don’t think was accurate.  Possibly because Google didn’t have enough information to classify them yet.

What is Google Ad Planner?

Google Ad Planner is a free media planning tool that can help you identify websites your audience is likely to visit so you can make better-informed advertising decisions.

With Google Ad Planner, you can:

  • Define audiences by demographics and interests.
  • Search for websites relevant to your audience.
  • Access aggregated statistics on the number of unique visitors, page views, and other data for millions of websites from over 40 countries.
  • Create lists of websites where you’d like to advertise and store them in a media plan.
  • Generate aggregated website statistics for your media plan.

Get to it already, which blogger is it?

According to Google Ad Planner, from least likable by the ladies to most likable by ladies…  drum roll please… is…

3rd Place - Jeff Attwood

2nd Place - Joel Spolsky and Scott Hanselman

1st Place - Phil Haack

I am not sure how Google Calculates these metrics, but if I had to do an analysis, purely on speculation of why Phil Haack won.  I would conclude the following:

  1. Phil has a very nice and ascetically pleasing website, where the other 3 candidates have more of a utilitarian design.  (much like mine)
  2. Phil and Scott had pictures of them self on their frontpage and seemed to do better than Jeff and Joel who didn’t.  By a pure numbers game, Jeff and Joel should have been leading the pack because, they had a broader reach, and thus higher page ranks.
  3. The last one, which I think is most important for attracting the ladies to your blog is: Phil was the only blogger to post a picture of himself with his son, on the front page.

Hope you enjoyed this preview of Google Ad Planner, it has some really nice analytical features that will help anybody doing a high level comparison of demographics for different websites.

Note: I didn’t include my self in this analysis, because Google Ad Planner didn’t actually have an info sheet compiled for coderjournal.com.

Tags: , , , , ,

Posted in Programming, Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 14 Comments »

June 5th, 2008

Give Your ASP.NET Applications Velocity

Scaling ASP.NET Application just got easier with a new technology that Microsoft has just released that they have dubbed codename “Velocity”. This product is still in the early stages of development, but it is meant as a direct competitor against memcached. If you are not familiar with memcached, here is how it is described in Wikipedia:

memcached (pronunciation: mem-cache-dee) is a general-purpose distributed memory caching system that was originally developed by Danga Interactive for LiveJournal, but is now used by many other sites. It is often used to speed up dynamic database-driven websites by caching data and objects in memory to reduce the number of times the database must be read. Memcached is distributed under a permissive free software license.

So basically it allows you to create a distributed memory cache across your server farm, that allows any computer in the server farm to access the data in the cache. So there is no more issues with storing session data on server farms, or worrying about setting up common SQL stores of temporary data. This is also very practical for reducing database stress on Web 2.0 sites, many of the top Web 2.0 sites use this to reduce reads on the database.   The biggest user of memcached to date is Facebook.  This diagram below gives a basic idea of how distributed caching works.

Diagram of Velocity

There have been many Open Source projects for getting memcached working on C#, and most have been pretty successful, but because memcached was designed for the UNIX environment, porting memcached to a Windows Service has always lagged behind the actual releases of the required libraries to get memcached working. Enter Velocity, as the Velocity team describes:

Velocity is intended to provide distributed caching (in memory) for all .NET applications – from enterprise scale to web-scale. We believe that there are many applications that need a distributed caching mechanism, and that there is, therefore, a need for distributed caching as a core part of the .NET platform. We expect to have more integrated support for this functionality with other parts of the .NET platform in our upcoming releases.

There is also a pretty nice Velocity writeup on MSDN that goes in depth about how Velocity works as well as providing some basic code examples on how to get data into and out of your Velocity Cache. The current set of features looks pretty nice, and I can’t wait for Velocity to become more stable so I can introduce it in to the IdeaPipe mix.

Here is a breif overview of the Current Features:

  1. Support for different cache types, partitioned and local
  2. Support for different client types, simple and routing
  3. Load Balancing & Dynamic Scaling
  4. ASP.Net Integration, currently there is only a Session Provider
  5. Key and Tag based Access

And Beyond

  1. Availability - support for Failover when machines go down
  2. Replicated Cache - another cache type
  3. Embedded Topology - run the cache embedded within you application instead of as a cache service
  4. Notifications - Get notified when a object in the cache is updated
  5. Consistency Models - Support for both weak and strong consistency when doing reads/writes
  6. Native client access to the cache service (E.g - PHP, C++ etc)
  7. Manageability & Administration

Tags: , , , , , ,

Posted in ASP.NET, C#, Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 6 Comments »

May 27th, 2008

ASP.NET MVC Preview 3 Released

The ASP.NET MVC Team has released an refresh of MVC. To all those that are interested the new Preview Release is posted at:

http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=13792

The new release contains many new features over the 2nd Preview Release and the Interim Release from a month a half ago. In this post I am going to outline the features that are new from the Interim Release to Preview Release 3.

Action Method and Result Changes

As you remember from the previous release, you are now required to return an ActionResult. Many of the ActionResults were renamed to the following types:

  • ViewResult: Renders the specified view to the response.
  • EmptyResult: Does nothing. Returned if the action method must return a null result.
  • RedirectResult: Performs an HTTP redirect to the specified URL.
  • RedirectToRouteResult: Given some routing values, uses the routing API to determine the URL and then redirects to that URL.
  • JsonResult: Serializes the specified ViewData object to JSON format.
  • ContentResult: Writes the specified text content to the response.

There were also new helper methods added to the Controller class for these new ActionResult types.

  • View: Returns a ViewResult instance.
  • Redirect: Redirects to the specified URL. Returns a RedirectResult instance.
  • RedirectToAction: Accepts an action (and optionally a controller) and redirects to another controller action. Returns a RedirectToRouteResult instance.
  • RedirectToRoute: Redirects to a URL that is determined by the routing API. For example, this method lets you specify a named route. Returns a RedirectToRouteResult instance.
  • Json: Returns a JsonResult instance.
  • Content: Sends text content to the response. Returns a ContentResult instance.

One of the more interesting ActionResults is the JsonResult which returns a serialized form of your ViewData object using the JavaScriptSerializer class. I don’t know why they didn’t use the DataContractJsonSerializer, but the team probably had their reasons.

View Data Changes

There is also the addition of implicit conversion for Action methods that return anything other than an ActionResult.

If an action method returns null (or has a return type of void), the action invoker implicitly provides an EmptyResult instance, which does nothing. If an action method returns anything other than an ActionResult instance, the action invoker calls ToString(CultureInfo.InvariantCulture) on the instance and then wraps the return value with a ContentResult object, which writes the content to the response.

A Model property was added to ViewDataDictionary. For ViewDataDictionary, the type of this property is System.Object. For ViewDataDictionary<T>, the type of this property is T.

The ViewData property of ViewPage<T> is no longer replaced by T. In Preview 2, the MVC framework replaced the ViewData property with the specified strongly typed view data (that is, the T in ViewPage<T>). In Preview 3, the Model property of ViewData is set to the instance of type T.

Route Changes

An IRouteConstraint interface was added.

If a constraint value is specified as a string, the string is interpreted as a regular expression. If the constraint value is specified as an instance of IRouteConstraint, route processing calls the Match method of IRouteConstraint.

A new HttpMethodConstraint type was added, which changes the way you constrain routes on the HTTP method. Unlike previous versions of ASP.NET routing, in this release, the constraint name “httpMethod” is no longer special. Instead, use the HttpMethodConstraint to add a constraint based on HTTP verbs. The following example shows how to use the HttpMethodConstraint type.

routes.MapRoute(
    "route-name",
    "{controller}/update",
    new {action = "update"},
    new {httpMethod = new HttpMethodConstraint("PUT", "POST")}
);

Other Changes

The versions of the System.Web.Abstractions and System.Web.Routing assemblies that are included with the MVC project template have been changed to version 0.0.0.0. The versions that are included in the Preview 3 release are newer than those that ship in the .NET Framework version 3.5 Service Pack 1 Beta. Therefore, they were assigned a private version number so that no conflict occurs between the assemblies in this release and the assemblies installed by the .NET Framework 3.5 SP1 Beta release.

And a ton of bug fixes

So in conclusion the ASP.NET MVC team has released another great release. Many of the new features have been on the request list of many of the active MVC developers. I still have to try out a couple of my requests to see if they are included, but I will make sure to provide a new post with those details.

Update: ScottGu has just released his notes on the MVC Preview Release 3, which I must admit are more in depth than my own.

Update 2: I have also updated IdeaPipe to reflect the latest PR3 changes. It took me about an hour to go through all my code and then test it. I am pleased to report the default page is now working, so that you don’t need the Default.aspx page anymore.

Tags: ,

Posted in ASP.NET, C#, Programming, Review | kick it on DotNetKicks.com | Bookmark | View blog reactions | 1 Comment »