Daniel Cazzulino's Blog
-
How to serve private S3 content from a CloudFront private distribution via signed expiring Urls
For this walk-through, you’ll need the most excelent CloudBerry S3 Explorer. Somehow, these guys manage to support in the UI more stuff than Amazon itself does in its management console
. And you only need the free version.
-
How to apply build configuration transformations on non-web projects
This is a pretty common request, and the simple answer is available in SO: right after the C# targets import, add the following:
-
How to map a shared SkyDrive folder as a network drive in Windows
- Open the folder in the skydrive site using the browser (it would be under Shared menu on the left). The url will look something like: https://skydrive.live.com/?cid=529BD9445B66F60D&id=529BD9445B66F60D%21189#cid=529BD9445B66F60D&id=529BD9445B66F60D%21189. Now the “cid” query parameter in the URL.
- Right-click on Network (in windows explorer), then “Map Network Drive”
- Specify Folder as: https://d.docs.live.net/[cid]/[folder_name]. For the sample URL above, it would be https://d.docs.live.net/529bd9445b66f60d/CQRS (note the folder name isn’t in the URL, you need to know it beforehand, and it has to match what it’s named on the site).
- Check the “Use alternate credentials” option in the dialog:
- Click Finish. Enter your Live ID credentials when asked. Done!
-
A better way to encourage contributions to OSS
Currently in the .NET world, most OSS projects are available via a NuGet package. Users have a very easy path towards *using* the project right away.
-
You don’t need an IoC container or ServiceLocator for everything
Say you have a class that needs to collaborate with another, say a repository:
-
Event Centric: storing and consuming events
[Disclaimer: I don’t think this disclaimer is needed, but just to be on the safe side. The opinions expressed herein are my own personal opinions and do not represent in any way my company's view, that of any customer current or past, or any current, past or future project related to these concepts that I may participate in]
-
Event Centric: super-charge your model with domain events to enable business intelligence
I’ve shown in my previous post how interesting domain events can be mined using the Reactive Extensions for .NET. Now we need to raise those events when things happen to our domain. The typical way you’d publish events from your domain is simply adding .NET events. Say we have a Patient class, with a method Admit that causes the patient to be in the hospital and tracks the date when he was admitted:
-
Event Centric: finding key business value by leveraging domain events and reactive extensions
Reactive Extensions (Rx) is one of the coolest additions to .NET ever. However, they have been largely ignored by the mainstream, in a significant part because (IMO) it’s seen as a UI technique, with samples that show how to handle mouse moves, drag & drop and so on. Its focus on asynchronous programming too makes it look like a niche technique that might even be worth skipping over as we wait for C# 5.0 async keyword (see Mike’s blog entry on a possible clarification of where it might fit in the async world).
-
How to make object initializers more useful
Quite often, it's necessary to validate an object state when it's initialized. With constructor arguments, this is easy to do as it can be done at the end or beginning of the constructor code. With object initializers, it's nearly impossible, as there's no way to know programmatically when the object initialization is finished.
-
Cloud-aware music done right: Spotify is the iTunes, Zune, Amazon Cloud Player and Google Music killer
Oh boy, how I’ve been waiting for something like Spotify!!! Just got an account setup (like 10’ ago) and I’m already blown away by it. Everything I’ve always wanted, truly.