This is an edited and expanded transcript of a talk I gave at Strange Loop 2014. The video recording (embedded below) has been watched over 8,000 times. For those of you who prefer reading, I thought it would be worth writing down the talk.
Databases are global, shared, mutable state. That’s the way it has been since the 1960s, and no amount of NoSQL has changed that. However, most self-respecting developers have got rid of mutable global variables in their code long ago. So why do we tolerate databases as they are?
A more promising model, used in some systems, is to think of a database as an always-growing collection of immutable facts. You can query it at some point in time — but that’s still old, imperative style thinking. A more fruitful approach is to take the streams of facts as they come in, and functionally process them…
View original post 7,677 more words
As you may or may not be aware Twitter updated their API and deprecated the old one. So now you can only access twitter feeds using oAuth authentication. If you are using latest version of Umbraco or .net4 with Umbraco you can make use of the excellent uTwit package created by none other than the legend that is Matt Brailsford.
If like me however you have some old Umbraco sites that you cannot for whatever reason upgrade to latest version of Umbraco or .net4 you can use my package TwitterOAuthOap. I am currently in the process of rolling it out to a few legacy sites and it works a treat!
Thanks to some feedback on an Umbraco forum post I have re factored my code and made use of Dependency Injection.
I am using the awesome ninject and if you use the nuget package manager it is so easy its un real.
So navigate to https://www.nuget.org/packages/Ninject.MVC3/22.214.171.124 you can see the nuget install command Install-Package Ninject.MVC3 -Version 126.96.36.199 so install that into your web project. This will pull down everything also in your app_start folder it will create a class NinjectWebCommon in there you have method
private static void RegisterServices(IKernel kernel)
You add your bindings there. Next update your surface controller mine looks like
private readonly ISearchService _searchService;
/// inject in this dependancy using ninject
public SearchFormSurfaceController(ISearchService searchService)
_searchService = searchService;
Its as easy as that. Now you too can be all hip and upto date with all the cool kids!!