A Little History
So, this may sound simple, but I seem to be having one of those days where things just don’t seem to go as I plan. First, a little background. I’m planning on releasing an open source project on CodePlex in the not to distant future and one of the choices for version control is Mercurial (hg for short). Most of my projects have been in subversion, but it seems all the smart people I know have been moving to Git or Mercurial. Since CodePlex does not support Git, Mercurial it is. I like having a company I pay host my source control so if I have an issue, I have someone to contact. I chose bitbucket.org for this. They seem very well known with lots of positive vibes on the net.
(more…)
I’m just starting to use Windows Azure for a project and plan on using the Azure Blob Storage part. I won’t go into the details here, but let’s say I figured it out far enough so that I have pushed some piles of data into the blog storage. Now, I want to see them. I assumed that from the Azure portal, there would be some interface where I could see what I actual did and am being billed from. I posted to the forums and basically was told that’s not really the case. Here is the post with the answer saying you need some other software to do it (details below).
My friend RobinDotNet suggested I look at his article about how to use Visual Studio 2010 to view the blob storage. Sure enough, in VS, I can set my account and key in server explorer and see the blob storage! Thanks Robin.
(more…)
First, let me say I’m not a professional photographer or even a good amateur one, but I do take a lot of pictures. You can look up the spec on line, but basically, the Epic has a 5MP camera and the EVO has an 8MP pixel. I wish I kept some originals from the EVO but I did not.
My impression is that the EVO camera did a better job of making pictures in all kinds of light just look better. I could be wrong. I’m attaching a picture of a friend of mine I took and uploaded to facebook, first with the EVO, then with the Epic. The EVO was taken later in the day without so much sunlight.
By the way, my friend Terry is President of Undiscovered Country Tours and one of my best bike buddies. He runs awesome bike trips in California! You can find his site here: http://www.udctours.com/. If you are looking tour in California, you won’t regret it!
HTC EVO 4G
Samsung Epic 4G
I realize the pictures are no where near original size, but just to add some more detail, on the Epic, I had to overexpose the picture as much as I could and it still was a little dark. The EVO just seemed to work with no mucking around.
Also, for a more detailed review, check out here: http://www.digitaltrends.com/mobile/samsung-epic-4g-vs-htc-evo-4g/. They agree for some real reasons that the HTC EVO 4G Camera is better. I actually just read this (after I wrote the above) and they totally agree with me. Here is their quote: “Our test shots showed the Epic returning overly dark outdoor shots in comparison to the EVO 4G, even though they come closer to parity indoors”.
Hope this helps!
Normally, setting up Microsoft Exchange Server with a mobile phone is pretty straight forward. I just got the Samsung Epic 4G today (see my earlier post here: ( http://peterkellner.net/2010/08/31/sprint-samsung-epic-4g-first-impression/ ) and setting up Exchange was a little confusing.
I use GoDaddy’s Exchange Servers (hence the mail.ex1.secureserver.net), but the field Domain\Username through me for a loop. After some experiment, I just tried putting my email in there and, to my surprise, it worked. I don’t get why there is a leading backslash or the title Domain\Username but since my email is now working, I thought I’d share.

A Little History
Let me start off by saying that the HTC EVO has raised my expectations of what to expect from a smart phone. About two years ago, I switched to one of the first Android phones that came out. It had a very clunky keyboard slideout, it was very heavy, the interface was awkward and overall it was just not a good user experience. Even things like GMail did not work well. You could not do basic things like go from one email to the next without returning to the inbox first.
Fast Forward 18 months. I have a Palm Pre which I’m pretty happy with. It has a nice keyboard, nice email client for Microsoft Exchange, and though not many apps, it’s a pretty nice phone. It is pretty slow though. For example, sometimes a call comes in and the UI is so slow you can’t get it to actually answer the phone before it goes to voice mail.
Last Month, I took the plunge and bought the HTC EVO. I knew it did not have a keyboard, but I was hoping I could get use to that (not the first time I’ve been wrong). I did install a 3rd party application called SlideIT that did help some but still was not good enough. I made a huge number of mistakes in emails I sent out, practically to the point that I was about to put a message in my email signature saying “Sent using my Mobile SlideIT keyboard, pardon the mistakes”. I did not do that because somehow, as a technology guy, that just seemed wrong.
(more…)
Ever have a program come up and you can only see a part of and can’t move it? That use to happen to me with Skype all the time, but I think they must have fixed it. Just today, it happened again with ImgBurn.
So, off I go to my search engine to find the solution (which I keep forgetting). In a post on MSDN, Dave Bishop has the perfect answer. He says all you have to do is click on the icon of the program in the task bar, then, while holding the windows key simply press the arrow buttons to move the program where you want it.
Works perfect! Thanks Dave.

I’m constantly amazed by the insightfulness of ReSharper’s suggested refactorings (ReSharper is a Visual Studio Addin from JetBrains I use with C#). Today, I’ve been working on a threading problem where I’m getting crashes based on what seems like not proper locking across threads (they usually show up as some type of ugly update object or enum error).
My code starts like this:
public static List<DbProgressReport> DbProgressReportProperty { get; set; }
(more…)
So, you have a simple class that has a bunch public properties and you want to be able to use ToString() on it to show some data? It’s easy. All you have to do is override the ToString() class inside your C# code.
So, here is an example class that does that.
public class DbProgressReport
{
public string ScopeNameProgress { get; set; }
public string SourceOrDestination { get; set; }
public string TableName { get; set; }
public int TotalRecords { get; set; }
public int ChangesApplied { get; set; }
public int ChangesFailed { get; set; }
public int ChangesPending { get; set; }
public int Deletes { get; set; }
public int Inserts { get; set; }
public int TotalChanges { get; set; }
public int Updates { get; set; }
public DateTime LastChangeDate { get; set; }
public override string ToString()
{
string readableDbProgressReport =
string.Format(
"{0} ScopeName {1},Table {2},TotalRecords {3}"
SourceOrDestination, ScopeNameProgress, TableName);
return readableDbProgressReport;
}
...
Now, all you have to do when accessing this class is use the ToString property.
That is:
DbProgressReport dbProgressReport =
new DbProgressReport("source","scopename","tablename");
string str = dbProgressReport.ToString();
and the output will be:
source ScopeName scopename, Table tablename
Simple as that!
Hope this helps.
So, you want to add a couple extra parameters to an existing method in Visual Studio, while not having to change all your existing code to call the new method signature? It’s easy with CodeRush from Devexpress. In this post, I’ll start with a simple method and add some parameters to it, then do the magic refactor.
Here is the starting code.
public static int SynchronizeScopesAsyncStart(
int dbSyncPairId, string schemaName,
string connectionStringLeft,
string scopeLeft, string connectionStringRight,
string scopeRight, bool skipDbLogging)
{...
(more…)
In my previous post (http://peterkellner.net/2010/07/10/installing-umbraco-to-win7-step-by-step/), I detailed the steps to use WebPI to install a fresh version of Umbraco on a Windows 7 Ultimate 64 bit system. Now that I’ve done that, and played with it for a few hours, I’d like to start again with a fresh (no RunWay) set of data to play with.
I posted on the Umbraco forums and got some tips, but I thought I’d document the process here because I’m sure I’m going to be doing this again and thought it best to have some notes I can go back to (and that might help others newbie’s to Umbraco while I’m at it).
(more…)
I’m planning on launching some small consumer software products in the next couple months and to support this effort, I need to have a CMS, Forums Software, Store Front (Credit Card Processing) and Wiki solutions up and running. Since I’m a .Net guy, my first choice is to use Microsoft .Net technology, but if I don’t find anything there that suits me, off to the LAMP stack I go. It’s important to me that all of these are tied together with a single sign-on. It always irritates me when you go to a site and they make you first log in to the site, the create a separate login for forums. I will avoid that experience for my customers and users.
My Research
My research first started with Google/Bing type searches. That really leads me to many choices. Actually too many. Next, I go to my friend network. The first obvious person I turn to is Scott Cate because he seems to always have the best advice on this kind of thing. The guy is plugged into everything!
Scott give me a very strong recommendation to look at Umbraco. He says he is personally involved in writing code for that CMS, it’s very extensible, has a great admin UI and bottom line, is just good stuff. So, Off I go to http://umbraco.org.
(more…)
For the last few days, I’ve been using DevExpress CodeRush and am finding some very useful refactorings. Many I’m not blogging about, but there are a few that I really like. In this post, I’m going to show just two of those refactorings that have been making my code much nicer and easier to write. One is the “Introduce Using” refactoring, and the other is “Convert to Lambda Expression”.
Before I go into the details, I’d just like to disclose that when I was first writing the Silicon Valley Code Camp web site, I was an asp.net and c# newby. I’m not claiming wizard status now, but I have to admit that when I go back and look at some of the code I wrote back then (including what I’m showing below before the refactoring), it’s a little embarrassing. Silicon Valley Code Camp for me as “when I’m not doing real work” web site so I don’t really have the time to go back and clean things up. Now, with CodeRush, it’s easy to clean things up when I see them with very little effort.
(more…)
I’ve recently started using CodeRush with Visual Studio 2010 and am so far very impressed with the convenience it adds to coding. One thing that is very clear is that the creators of CodeRush are real programmers and look very hard for patterns that us developers are constantly doing. As I run into these things that get my attention, I plan on blogging them. Some are just earth shattering, and others, just nice to have. This particular one is a nice to have.
So, say you have code like this:
var sessionAttendeeOds =
new SessionAttendeeODS();
listSessionAttendees =
sessionAttendeeOds.GetByUsername(Context.User.Identity.Name);
(more…)
MSDN has a very nice article on how to create a windows service that hosts a Windows Communication Foundation (WCF) service. It explains all the details of doing this in a step by step fashion. One thing that I often find missing from these articles is the actual Visual Studio project that I can download and play with. What I usually do is put that together myself (which I’m sure is the author’s intent).
To save anyone some time who wants to do the same thing, I’ve created a VS2010 project from the example, added a very simple Windows C# console application that consumes the service, as well as made some small changes in a very nice Windows Presentation Foundation (WPF) calculator project so that the calculator does it operations inside the windows service rather than in the calculator itself.
In this article, I’ve attached the source code (with my small changes and additions) for you to work with and change as you like.
(more…)
Last week, while at Microsoft’s TechEd 2010, Mehul Harry, Technical Evangalist for Developer Express, interviewed me about our upcoming Silicon Valley Code Camp (of which Dev Express is a platinum sponsor). There was huge giveaway (for an expensive motorcycle) in the next booth so it was really noisy. Mehul had the recorder about 6 inches from my nose which made me pretty nervous. I think I’m moving my head so much because I was trying to get away, but there was not place to go.
Here is the link: http://tv.devexpress.com/#TechEd10PeterKellner.movie
(more…)
Yesterday, I spent the day building what I think are stantions (piles of blocks held together by mortar) to hold a house 5 feet above the ground. Through twitter, I saw a bunch of people from all over the country that were going to TechEd 2010 in New Orleans a day early to help in a Habitat for Humanity project. The group had created a web page called http://geekgive.org/Charity/habitat. I’ve always wanted to help on one of those type projects but never really figured out how to. This seemed like the perfect opportunity, and also, since some of my friends from around the country would be there also, I thought it would be a great time to catch up. What a great time and a great feeling to help.
As everyone knows, New Orleans was devastated after the kill hurricane went through. Many houses were just totally demolished. These Habitat for Humanity houses are designed to sit 5 feet above the ground on steel re-enforced concrete blocks. They can withstand 125 MPH steady winds with 200 MPH gusts.
(more…)
After my second year at engineering school (Cornell University), I spent the summer working in a dream job as an intern at the world famous Ford Design Center in Dearborn Michigan. The group I worked in was an elite group of engineers whose responsibilities were to figure out better ways to build the cars that would come out in 5 years. Literally, the sky was the limit for what we could do or propose doing. I remember one evening walking around the cars made of clay with Charlie Haddad who was the director of our engineering group. Charlie suggested I look at each car and think about what could be better. I remember him saying “just clear you mind and think, spend real time on it, don’t make it a passing thought”. Today, while staying at the Sheraton Hotel in New Orleans this week for Teched 2010, I believe I’ve seen one of Charlie’s students work. Let me explain more.
(more…)
For quite some time now, when I download file using IE8, the file finishes downloading and there is no pop up that allows me to open the containing folder, or open the file itself. I’ve had to navigate to the folder where I selected the download to go, then open it from there. This has been very annoying. I’ve looked around the internet for the reason for this with no luck.
(more…)
Should Your Application Run In The Cloud
I’m back and sitting in Steve Evans Session, Should Your Application Run In The Cloud. He’s now explaining how computers, since the stone age, have been running in hosted facilities where you had to worry about things like fire suppression. Steve is explaining the advantages of cloud computing.
Upfront costs are cheap ($.10 –> $1./hr)
Let’s Build a Ruby on Rails App Together
Kristen Hazard of SunToucher presented the basics of Rails starting from the beginning. She points out that most of the content at this event is .Net, but that doesn’t mean people are interested in other topics. Kristen let’s us know she’s totally excited about Ruby and Rails. She goes from creating a complete rails app by simply creating a simple command line, all the way through deploying the ruby app to a server with just a simple command also. Below show just what Kristen thinks of Ruby on Rails.
One more class on my agenda, GIT!
I love code camps! This is my first time to San Luis Obispo’s Central Coast Code Camp and I’m really enjoying it. It started last night with the presenters dinner at a great local steak house. Steve Evans, one of the camp organizers who invited me to this speakers dinner, got sponsors to pay for our food, go Steve! Steve has organized the night before at our code camp (Silicon Valley Code Camp) speakers presentation for the past 2 years and I hope he continue that for years to come.
(Steve Evans, One of the organizers and Scott Stanfield, CEO of Vertigo and presenter of HTML5 here)
Following a good night sleep, camp began early, 8:30 was registration.
Moving on to the opening ceremony…
Justin Couto President of Couto Solutions took care of business letting everyone know the lay of the land with the rest of us paying close attention.
The first class started at 9AM. I attended Scott Stanfields’s presentation on HTML5 (pictured below).
Then, I presented on OData and hopefully helped explain some of the Microsoft Acronyms (WCF Data Services, Astoria, ADO.NET Data Services, RIA Services, etc.) I build a twitter feed against a twitter call, and also build a simple WCF Data Service against our Silicon Valley Code Camp SqlServer Database and showed over 250 sessions that have been delivered.
Well, off to lunch now. I always plan on posting more, but likely, I’ll just post my session powerpoint and that will be it. So far, having a great time and thanks to all the organizers for putting on such a great event.