I just upgraded to BlogEngine.net 2.8 as it contains a fix for broken links from Facebook. There were a couple of hitches that I'll share in case they help anyone else.
I messed up the first upgrade attempt because the updater utility updates the source folder (containing the newly downloaded 2.8 code) instead of the destination folder (containing the current version of your blog). This is a little odd and the result is I uploaded an unchanged instance and then embarrassingly complained the the Facebook bug hadn't been fixed. It had, just not in the folder I was expecting. I probably didn't pay enough attention to the instruction video.
Having got that out of the way I discovered that new posts were appearing with a bad link (to /.aspx instead of /blog-title.aspx). I rarely post using the editor as I have a home-grown post by email service running. After a bit of digging it turns out that prior to 2.8 you could leave the slug empty when creating a post but now this results in the bad link. Luckily there isn't much effort require to fix this, you just need to set the slug before saving the new post:
if (string.IsNullOrWhiteSpace(post.Slug))
{
post.Slug = Post.GetUniqueSlug(post.Title, post.Id);
}
In the middle of playing with this my live site died and started returning a 500 error. No amount of uploading the working local copy would fix this. Happily Server Intellect have outstanding support and restored a working backup for me in the middle of the night. Thanks chaps!

I’ve just released Catfood Earth for Android 1.10. You can control the center of the screen manually (the most requested new feature) and also tweak the transparency of each layer and the width of the terminator between day and night. It also starts a lot faster and has fewer update glitches. Grab it from Google Play if this looks like your sort of live wallpaper.
Inexplicably .NET 2.0, 3.0 and 3.5 are not installed by default in Windows 8 and can’t be installed using the redistributables that worked with previous versions of Windows. You have to go digging in Windows Features to get anything older than 4.0.
The Last Policeman by Ben H. Winters
5/5
Stonking police procedural set in the months leading up to a global catastrophe.
More...
Book Reviews, Tweets, catfood, Android, .NET, C#, daniel suarez, windows, challenge, transitioning, decentralized, gruesome, wallpaper, service, tuesdays, twitter, policeman, developers, orchestra, bernal, curiosity, picture, decision, panorama, security, explore, webcamsaver, network, descent, software, catfood, associated, sending, litigation, support, choosing, technica, happy, apparently, #fb, #rofl, #360pano, #todo, #IPAday, #IPADay
I was a little saddened to read today that Diaspora is transitioning over to some form of community manged slow death. I joined a pod a while back and was pretty impressed with the design. It was very similar to Google+: clean, nice features, nobody home.
I've also joined app.net. The concept here is a social network that you pay for, so the owners are aligned with the interests of the users and developers rather than advertisers and lame brands. I wish app.net well, but it's not the future. Best case (and it's not a bad one) it could be the new WELL - a community that people care enough about to pay for (I was on the WELL in the early 90's, splitting the tab with a friend so our handle was abft, account built for two). If that is the direction it goes in then simply having a slightly longer post limit than Twitter isn't really going to cut it. And cool as it might be most people aren't going to pay for a social network.
Any attempt to displace Facebook has to solve the problem that anyone interested in sharing anything with anyone else is already using Facebook. The only platform that is in any sense comparable is email. So someone needs to make email into a social network.
This could be an interesting startup. Create some account - social@newco.com - anything you send directly to that address is a post. Anyone you copy is a mention. Reply to a thread with this email address included and you're replying on the social network as well. Anyone copied on such an email gets invited to the network if they're not already.
You've got a killer viral component and an instant social network that is supported on every platform with no investment needed. Everyone has email, and everyone is a member as soon as they claim their email address or get included in a post.
Maybe someone has tried this already and I just haven't seen it. I'm half tempted to have a crack at it myself.
What would be more interesting would be layering a social protocol over email, and implementing that protocol by proxy on top of email providers that don't or won't support it. This creates a core social service practically out of thin air. Facebook and Twitter are the new AOL and CompuServe. There has to be a way to leverage email into a free and open alternative.

I've wanted to play with Twilio's voice and SMS service for a while and finally got the chance at an all night hackathon.
Twilio is almost perfect. Very easy to use, well documented and generous with a self service free trial. They give you enough rope to fully build out a client before you need to think about paying them.
I gave up on AT&T's platform after navigating a bazillion forms before discovering they wanted $99 before I could even get a taste.
The one hitch with Twilio is that the voice transcription they offer is appalling. Just absolute gibberish. Unless it's just my accent, or the hackathon whisky. Seems to be a common complaint though and so to take my IVR app further I'd need to bolt in another solution. A pity given how much Twilio gets right.
Here’s how to share a picture to Facebook, Twitter and so forth from MonoDroid:
Java.IO.File cache = ExternalCacheDir;
if ((cache == null) || (!cache.CanWrite()))
{
// no external cache
cache = CacheDir;
}
Java.IO.File tempFile = new Java.IO.File(cache, "temp.jpg");
using (FileStream fileStream = File.OpenWrite(tempFile.AbsolutePath))
{
_currentBitmap.Compress(Bitmap.CompressFormat.Jpeg, 85, fileStream);
}
Intent shareIntent = new Intent(Intent.ActionSend);
shareIntent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(tempFile));
shareIntent.PutExtra(Intent.ExtraText, "Some text - appears in tweets, not on facebook"));
shareIntent.SetType("image/jpeg");
StartActivity(Intent.CreateChooser(shareIntent, "Share Image");
A fun mix of Java and C#. The directory got me to start with so check to see if the ExternalCacheDir is available and if not fall back to the internal CacheDir. Frustratingly Facebook doesn’t pick up on the text associated with an image regardless of the intent ExtraWhatever specified.

I’ve just released a WebCam app for Android. It’s based on WebCamSaver but allows you to control the webcam – you tap the edges of the screen to pan, pinch to zoom in and out. A fun little time waster.
This is the first app I’ve released using Xamarin’s MonoDroid framework. This integrates nicely into Visual Studio and allows you to program an Android app in C#. This is fantastic for productivity and code reuse and I enjoyed the process a lot more than previous work I’ve done in Java / Eclipse. The main drawback is that the framework adds around 5MB (significant for mobile) and the documentation isn’t always the best, especially when you search for something and find out you’ve been dumped into iOS reference material. Digging around the sample code and cross-referencing the official Android documentation helps a lot. I’m going to take a stab at something a little more ambitious next…
.NET, C#, catfood, android, monodroid, xamarin, webcamsaver, webcams, c#, .net, catfood
I’ve stubbed my toe on this a couple of times, so here is the magic incantation:
using (SmtpClient smtp = new SmtpClient())
{
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.Credentials = new NetworkCredential("email@gmail.com", "password");
// send the email
}

Catfood PdfScan 1.40 is a small bug fix release. PdfScan converts documents to PDFs with the help of a flatbed or automatic document feeder (ADF) scanner.