Wednesday, January 18, 2012

Wikipedia goes dark in protest of SOPA, how to get around this

I admire Wikipedia for raising awareness to this issue, and if you found this blog through searching, then you already have been made aware.

If there is something you absolutely must see on Wikipedia during the blackout period, here's how you can get around it.

Drag the link below to your bookmarks bar.

Show wikipedia content

Load up the Wikipedia page you want to see. You'll probably be able to see it for a brief second until it's covered up by the SOPA information.

Once you have the page up, click on the link that's on your book mark bar.

Essentially, it just removes the SOPA overlay and then shows ALL hidden elements... even elements that are normally supposed to be hidden.  I didn't really feel like spending too much time getting it to work elegantly for only needing this for a day, but it certainly does the trick.

Monday, January 16, 2012

Learning new web frameworks

So in case you didn't already know, I'm a web developer and have been doing it for over 10 years now and still really love it.  It's always changing and there's always new things to learn and new challenges and the web is relevant to me and almost everybody else.

The majority of my career has been around Microsoft based technologies such as ASP and Currently, I've adopted Microsoft's MVC framework and really love it.  It makes sense and is easy to use.  The razor template engine is really great too.

However, I wanted to step out of my comfort zone and learn some new frameworks, see what they do differently or better, and allow me to experience new languages.

I first started off dabbling in Python and using the Django framework.  The language is nice and I was pleased with the framework, but wasn't really impressed with the performance. Also, not a lot of major sites have adopted it so it doesn't seem to be gaining a lot of popularity.

Then I tried out Spring MVC which uses Java.  From what I read, I thought I was going to like it, especially with Spring's built in DI framework and various other components, but it took too long just to configure a project and get it going.  There was way too much configuration, and I prefer convention over configuration. Also, the template engine I didn't care for much and would have had to rely on a third party template engine like Apache Tiles to effectively create templates. Importing tags and the tag styles remind me of web forms, which I liked initially due to the ease of use and reduced coding, but then you lose flexibility and control of the rendering.

Then I looked into the Scala language which is a nice blend of OOP and functional programming.  It can be compiled against the JVM or .NET CLR, which is nice since you can still use all the Java libraries out there.  C# has some functional paradigms such as lambda expressions and the ability to treat functions as variables using the Action and Func types.

Two frameworks that I've looked into for Scala are the Lift and Play frameworks. Play also supports Java, but for the Scala version, uses a Scala based template engine that out performs the Groovy template engine that Play uses by default for the Java version.  Lift looks promising and is currently used by FourSquare, however, the documentation is lacking and incomplete, with many pages still saying "TODO".  Both frameworks also allow you to save changes and go without having to recompile and re-deploye/restart your app.

I decided to invest my time learning Play since it has a style that I'm familiar with and has better documentation at the moment.

What is your favorite framework and language to use for web development?