February 4, 2012

Top Blog Voting : Cast Your Vote

vote-for-me-e1303746179672Once again the time has come in the year when vSphere-land.com does their voting for Top VMware/Virtualization blogs.

I am a firm believer in voting for who you love so head over and take the quick couple minutes to choice your favorites. If something I have done on Nickapedia.com has been cool, useful, or inspiring then showing me through a vote would be awesome.

Here are some of the most popular posts I have done in the last year:

But, even if I don’t make your list. Vote anyways – this is a great way to provide feedback to bloggers.

.nick

Quick Update : UNF version 1.701

I got some feedback that some users running Snow Leopard were crashing every time they started UNF.

Turns out there was a method being used on a Cocoa control that required changes made in the 10.7 SDK. I rewrote the function to not need the method and have released a new version (version 1 build 701). All download links are updated but you can download the new version here:

UBER Network Fuser 1.701 Download

Lion users don’t need to update.

Thanks,

.nick

Breaking new ground : An UBER Tool for the Mac

Screen Shot 2012-01-10 at 12.45.45 AMA few months ago I bought my first Mac. I had been a hardcore Windows workstation kind of guy. And being a C# coder in the late hours of the night it was all I needed. But, after seeing my former teammates (vSpecs) using their sexy Mac Books I finally made the switch. I picked up a Mac Book Air and from the minute I started using it, fell in love with everything about it.

Because of this switch I have come to learn the things that the Mac (and Lion) do really well with some things while Windows does better with others. For almost all of my UBER projects I use my beefy Windows workstation running VMware Workstation to setup my lab/dev environments.

But, recently I started trying to move over to my Mac and using VMware Fusion to build lab virtual machines for developing. And to my surprise I found that things in the Fusion world aren’t quite the same as for Workstation. Namely, the networking options are rather limited. By default you only get the choices of three networks 1) DHCP w/ NAT  2) DHCP and 3) Bridging to a physical interface. For me that meant that I couldn’t get a network without DHCP (important if you are testing it) or create multiple isolated networks like I could on Workstation.

So I went digging and found that at one point someone has written some slick scripts to allow for custom multi-network setup but it stopped being updated after Fusion 2. I also found that VMware has some KB articles on how to hack your way to adding networks. But neither was very easy to do or dealt with modifying the VM’s well.

So I decided to fill this gap myself. Over the Christmas holiday I worked furiously to make this and now I am proud to present the next UBER release and my first project in the Manic Innovation Challenge: UBER Network Fuser (UNF)

UNF is a native Mac OSX application supported on Snow Leopard and Lion that allows you to add additional networks to VMware Fusion, customize their settings, and easily change network selection for any Fusion VM’s. I designed it to be simple to use and be similiar to how VMware Workstation network editor works.

Screen Shot 2012-01-10 at 12.46.01 AMHere is the full feature list:

  1. Allows up to 10 additional custom networks (total of 12)
  2. You can enable/disable DHCP, NAT, virtual host adaptor on any network
  3. Protects and provides rollback of default Fusion settings
  4. Allows dynamic changes of network membership with Fusion VM’s
  5. You may alias networks with custom names (even Workstation doesn’t do this)
  6. Tested and confirmed that VLAN tagging works as expected within private networks
  7. Saves configuration per user (names, paths, etc)
  8. Integrates with Apple’s Security framework for elevated privileges when needed

 

I created a video to demonstrate how it works below:

And to download (free as always) use the link below:

Download UBER Network Fuser 1.0 – DMG for Snow Leopard & Lion (Updated link to new 1.701 version)

 

This is my first release in the Manic Innovation Challenge. It is written in Objective C & C and uses the Cocoa and Security frameworks. Challenge-wise it was definitely an experience learning and writing an app in Objective C in  few weeks. But, it was crazy fun and I have all kinds of cool ideas for the Mac now.

Also, this marks post #100 for me in the 2.3 years I have been running Nickapedia.com. Being that it is also my birthday I am considering today a good day.

As always please test and play with it and let me know with some comments below.

.nick

The next iteration : What I learned & what you can expect

DriveHonestly I think the only reason I started this blog what as a holding spot for crazy things I wrote/built in my spare time. I never thought people would actually pay attention at first. Now I look back and realize that while I have stayed pretty true to that original course in some aspects, things have evolved a bit also. Going from customer, to vendor as part of sales org, to being part of engineering/R&D product development has changed my perspective and interests.

And honestly I don’t know where I will end up in 2012. But I have made myself a goal for self development that I am hoping will both challenge myself and encourage others to challenge themselves.

I am going to be taking on (what I call) the Manic Innovation Challenge in 2012. In simple terms and with simple rules to follow I will attempt to create something unique and creative using as wide a variety of frameworks, codebases, and presentation methods as possible. My goal is to release one example each month with a stretch goal of one example every two weeks.

All this work will be in my spare time unless it is also an EMC supported example. I have a couple crazy ideas kicking around in my head and one midway to completion.

I will also be starting a new series of commentary posts focused on what I see are cool trends in modern information technology at a very geek-centric level. My goal on these is brevity and something to hook you into exploring more on a topic.

Ultimately this blog has been a massive outlet for my personal development and I want to extend that in 2012 even further. Thanks for reading this so far and hopefully I can find a way to keep your interest this coming year.

.nick

The late recap post : AKA Top 7 things I learned in 2011

2011 was a banner year for me in accomplishing great things and learning new lessons. To recap my 2011 I thought I would share:

 

 Top 7 Things I Learned in 2011

 

1. I must be doing something right

This is the obligatory stats part of my list. Comparing 2011 to 2010 I doubled my visits, unique visitors, and pageviews. Time on site went up about 33% per visit which may just be because I cleaned up the look and made it easier to find stuff. The most interesting thing is my traffic has been much higher in the last half of this year. It is yet to be seen if I can keep this up in 2012. [Read more...]

Proving a another guy’s point : MacBook Air & Node.js as a Webserver

Ok, this is a real quick example of someone else’s idea. Namely Christofer Hoff of Juniper (infamous blog & twitter account) who in response to my tweet about my MacBook and a webserver (I am a Mac-newbie). Suggested I try using Node.js.

beaker_being_beaker

At first I was a little taken back. I think @Beaker thought I didn’t get the point (and I don’t more than I do).

beaker_being_beaker2

So I *cheated* and just turned on Web Sharing with the good tips from my other twitter buddies. But the Node.js idea bugged me because technically Chris is right. It should work fine.

So I did it. I installed the Node.js package for OSX (been using the Linux version) and fired up TextEdit and wrote this simple bit of code:

var http = require('http');
var fs = require('fs');
var path = require('path');
var rootpath = "/Users/lynxbat/Webroot";
 
console.log('*Starting');
http.createServer(function (request, response) {
 console.log('Server started');
 var pathToFile = rootpath + request.url;
 console.log ('File was requested: ' + pathToFile);
 path.exists(pathToFile, function(exists) {
 if (exists) {
  fs.readFile(pathToFile, function(error, content) {
   if (error) {
    response.writeHead(500);
    response.end();
   } else {
    response.writeHead(200, { 'Content-Type': 'application/x-gzip' });
    response.end(content);
   }});
   } else {
     response.writeHead(404);
     response.end();
   }});
}).listen(8010);
console.log('Server running at http://127.0.0.1:8010/');

I fired up the server:

node webserver.js

And opened my Safari browser to request a file I had dropped in my root directory.

Screen Shot 2011-12-19 at 4.18.55 PM

Which works perfectly. Output on cli:

*Starting
Server running at http://127.0.0.1:8010/
Server started
File was requested: /Users/lynxbat/Webroot/node-v0.6.6.pkg

Now in my case I am using the Webserver to hand out packages for installing as a local mirror for some VM’s I am building (big demo for Jan). So I hardcoded the MIME type and left response encoding unset. If you were looking to properly serve you should perhaps add some logic for switching types and responses based on the file extension. Kind of like a proper web server works.

So Chris was right. This works. Though I think proving him right probably isn’t a good habit to pick up.

.nick