Saturday, December 17, 2011

Tapkan Top Three of 2011

Well yet another new year is upon us, I would like to share with you my list of top three. It certainly has been a productive year and without further due, here is my list:

ipad2_picture

1.  iPad 2

Got my mine a few weeks after the initial release and had it inscribed as well (being geek), but it certainly has been a game changer in many ways I consume news, read books and communicate. The battery life, size, weight, and dimensions are almost perfect. The only gripe I may have is the screen resolution. The Retina display for the next generation of iPad will be very nice. The other nice thing going for iPad is the corporate executives are all over it and they are forcing the corporate IT to adopt and accommodate them in the network. I am certainly taking advantage of this, even though I am not an executive. This is certainly not the case with Android tablet at this time.

With the acquisition of my iPad in mid April, I stopped buying physical books. Thanks to O’Reilly Media and their facebook page, I acquired legally a slew of technical books. The Amazon Kindle for iPad is sufficient but there is also room for improvement. I did test drive the Amazon Kindle Fire for the weekend, but being an iPad user, it was not the same. And it should not be (perhaps you may argue), it is an “e-reader”. Anyway, if you are in the market and can afford one, I would highly suggest in getting an iPad.

2.  Ubuntu (Desktop + Server)

ubuntu-logo-apr08

I have been dabbling with the Linux distributions for awhile, started back in early 2000’s with the SuSE, which got acquired by Novell. I have a dedicated machine running SuSE for many years, but just over a year ago, I switched to Ubuntu, starting with 9 (I think), but 10.04 was a great stable release. I had been mostly running desktop editions but recently I also started using the servers, as part of my job. I am impressed by the features, the performance.

Being open source is both a blessing and curse, when it comes to desktop though. One can easily ditch Windows or Mac OS’es if there were support for certain applications, but there is always a need for Windows and Mac OS since not everything is available. I really like to see cloud based storage and computing environments support Linux flavors. Netflix, Amazon Kindle Reader and Evernote. If you’re reading that goes out to you. Get on aboard!

3.  VMware vSphere Hypervisor™ (ESXi)

vmware-esxi-client-connect

Hypervisor! Huh, what is that? Well, that is about virtualization, my friends. I am not going to discuss what virtualization is here, but if you are developing and writing software and targeting many other platforms, you have to know about this stuff. I had been dragging my feet in getting a decent hypervisor because of time and resources and the difficulty of perceived configuration.

esx21admin_architecture

Fear no more! ESXi is a breeze to install and it is FREE (so is Ubuntu) for one server up to 32 GB of RAM. As recommended by two partners at work, we downloaded and installed on one Dell T310 server (initially 8 GB of RAM, then we upgraded to 32 GB). I have been concurrently running 3-4 configurations with very little contention. Although I really have not done any bare metal comparison but they run quite decent. A subsequent system crash at home (my poor Ubuntu desktop on DIY hardware ;-( created an opportunity to try it at home/office, and it certainly changed my computing landscape. FTW! I have consolidated my old VHDs onto vmWare and haven’t looked back. Go check them out!

xmas-tree

What an amazing year with certainly sad news! “Staying foolish, staying hungry”[Steve Jobs], looking forward to 2012… Seasons’ Greetings Everyone!

Happy Coding,

Baskin

direct links:
[1] http://www.apple.com/ipad/
[2] http://www.ubuntu.com/
[3]http://www.vmware.com/products/vsphere-hypervisor/overview.html

Friday, September 9, 2011

Case for Cloud/Online Storage and why you need one

Increasingly with the information and content we generate we rely on various devices to store our digital data. Recently this has been emphasized with the fact that we all use some sort of digital medium at an increasing rate. The content we generate on a day-in/day-out basis is not always in our control and this can become an issue when the content leaves our hands or when you lose it unexpectedly.

For example, I typically use external HD's in various sizes to move content around and archive. As early as few years back, I have purchased a 160GB Seagate Travel drive, then got a few more later 250GB to 320GB. Couple of months back I purchased a 2 TB Western Digital driver for a little over $100. Now just yesterday read about Seagate's announcement of availability of a 4 TB drive. As you see capacities are growing, but our digital media are getting scattered than ever. Oh, don't forget the fact that these devices can and will fail...

So what are the alternatives? In the last six months or so, as part of my job at Imation, I have been involved in planning, configuring, and testing various cloud storage technologies and benchmarked a few along the way. These include Mozy, CrashPlan, Carbonite, Nine Technology, Remote-Backup systems, Backblaze, etc. I have done comparisons in terms of speed, back-end efficiency (as applicable, compression, deduplication), and of course, usability. All of them works and they do a decent job depending on your requirements and environment settings, your flavor of the OS, etc.

iCloud

Also Apple's iCloud is just around the corner if you are a Mac-Head. Google has started integrating its Android content with Google+ and I am sure Microsoft and others won't be too far behind by pushing their service users' digital content to their online services and applications.

But don’t wait! If you haven't checked out a cloud/online storage solution by now, you are certainly missing out and leaving yourself vulnerable to an unexpected external hard disk crash or lost media by any means (my dog ate my SD-card ;-). If you have tons of content and limited bandwidth, some do off-line cloud seeding which is a way to load your data off-line to their cloud. This involves shipping a physical medium to the cloud storage vendors’ site.

So go check out those and many other Cloud Storage Vendors and decide which one you like best. I have a few favorites and you should ping me if you want to hear about them. Meantime, do your homework and consolidate your digital content online. Concerned about privacy? Really? (just kidding, that is probably another blog post coming out later).

Baskin

Sunday, April 3, 2011

404–This is not the web page you are looking for

On a given website, not all users will type the right link, and your ASP.NET MVC pages will have the exact controller action to render a given view.  In such cases, you need a nice 404 page.  You can go as fancy as github’s 404.  Check this out.

github_404

You can achieve this and similar other errors tapping into the Application_Error handler in your Global.asax file:

1 protected void Application_Error(object sender, EventArgs e)
2 {
3 var app = (MvcApplication)sender;
4 var context = app.Context;
5 var ex = app.Server.GetLastError();
6 context.Response.Clear();
7 context.ClearError();
8 var httpException = ex as HttpException;
9
10 var routeData = new RouteData();
11 routeData.Values["controller"] = "Error";
12 routeData.Values["exception"] = ex;
13 routeData.Values["action"] = "http500";
14 if (httpException != null)
15 {
16 switch (httpException.GetHttpCode())
17 {
18 case 404:
19 routeData.Values["action"] = "http404";
20 break;
21 // implement other http statuses here as well.
22 }
23 }
24 IController controller = new ErrorController();
25 controller.Execute(new RequestContext(new HttpContextWrapper(context),
26 routeData));
27 }


Then add an ErrorController.cs file and implement the below:


1 namespace Http404NotFound.Controllers
2 {
3 public class ErrorController : Controller
4 {
5 public ActionResult Http404()
6 {
7 return View();
8 }
9
10 // implementation of other status can go here...
11 }
12 }

Using the new Razor syntax and file format, The Http404.cshtml can look like this:


1 @{
2 ViewBag.Title = "Http404";
3 }
4
5 <h2>Http404</h2>
6 <img src="../../Content/images/github_404.PNG" />
7
8

You can find more MVC Cook book recipes in ASP.NET MVC 2 Cookbook.


Happy Coding!