Posts

RavenDB on Mono

Well, RavenDB IS possible on mono. So i'll be focusing on that for a bit. RavenDB on Mono

Raven DB

Bah Humbug. According to the Raven Folks, it will not run on Mono at the moment. Raven DB

Mono on Shared Hosting at DreamHost through FastCGI | blog.Tiaan.com

Mono on Shared Hosting at DreamHost through FastCGI | blog.Tiaan.com I have successfully implemented Mono on Dreamhost. I actually used the instructions from blog.tiaan.com but I had to export the paramaters as their respective variables in the session. I used the information on the mono-project.com and their lighttpd to do that. I will be trying out RavenDB on my latest project and I really want to use dreamhost as my host.

Unobtrusive JavaScript: I am a convert

Before I talk about Unobstrsive Javascript, let me give some background on my relationship with javascript. When I started learning web application development, I wasnt new to development, i came from Desktop Java and C++ MFC development. I was introduced to technologies such as Servlets, XML, XSTL, HTML, (early) CSS, and of course Javascript. The first thing I learned about Javascript was not to use it. Enter Unobtrusive JavaScript I am now sold on using javascript, but Unobtrusively. I think that this is one of the best web development methodologies that I have seen in a few years. I am already spinning from the AJAX shock, and coming to terms with Javascript as a first class language. But I could not shake the feeling that javascript is secondary, not primary to web development. Unobtrusive JavaScript (as well as AJAX) as made me see javascript for what is really is, a very powerful and useful first class higher level langauge. First class, meaning it stands along ...

Linq To SQL and Change Tracking

I have been using Linq To SQL in a project recently. Linq is a great way to traverse through a collection of objects. Its a very nice utility and can get rid of those unsightly nested foreach loops with if/elses in your code. Linq To SQL is also a nice basic Object Relational Mapper. The issue is "when the rubber meets the road", as it were. Linq seems a slight bit incomplete. Take this example: A simple ChangeLog class. It has an Enum ChangeLogStates that has 4 states, Created, Modified, StatusChanged (a disposition), Shelved(basically deleted). Now, i could do an ChangeLog.add(LogStates.Created/Modified/Changed/Shelved,Object Key, strDescription) to every line of code where there is a change in the database....everywhere i insert, update the underlying entity. But Using the beauty of OOP and Linq to SQL, i can impletement the Datacontext's insert and update partial methods: partial void insertLinqItem(LinqItem item); partial void updateLinqItem(LinqItem item); in...

The Infamous "Clear All Controls" , Generics Style

In the ASP.NET world, its invaluable to be able to clear all controls on a form, or disable all controls, or even reset the controls to a default state. I am going to show you an awesome way to do it, Generics Style. We will be building this using a method that takes in a Generic Type of Control, and a /// /// Excellent Method to abstract and add into the Helper classes : Using Generics /// /// private void ManageControls (Control parent, Func del) where Gen : Control { foreach (Gen c in parent.Controls) { if (c is Gen) { del.Invoke(c); if (((Control)c).HasControls()) ManageControls (((Control)c), del); } } } ManageControls (parent, x => x.Items.Clear()); ManageControls (parent, x => x.Text = "");

Fix for the 500 Internal Server Error after the upgrade to Rails 2.0.1

After trying to find an answer, i found one at http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done from blog comment #83. Apparently there is a need to seed the session key in the session, with a 30+ character string. In your config/enviornment.rb within the Rails::Initializer.run do |config| / end block add the following: config.action_controller.session = { :session_key => "_myapp_session", :secret => "Any 30+ character string will do here, so choose whatever"} Hope this helps. Enjoy Rails 2.0+