Esquire Theme by Matthew Buchanan
Social icons by Tim van Damme

03

Apr

goo.gl URL shortener

goo.gl url shortener is an extension which allows you to shorten the current website URL with the Google URL Shortener service http://goo.gl/. It’s trivial to use. ● Auto copy to clipboard …

02

Apr

goo.gl URL shortener

goo.gl url shortener is an extension which allows you to shorten the current website URL with the Google URL Shortener service http://goo.gl/. It's trivial to use. 
20110326222142
● Auto copy to clipboard ● goo.gl history ● Keyboard shortcut ● Context menu ● QR Code ● Highly customizable ● Incognito mode ● Share with your default mail client ● Share with many different services - Blogger - Delicious - Digg - Evernote - Facebook - FriendFeed - Gmail - Google Bookmarks - Google Buzz - Google Reader - Hotmail - Instapaper - LinkedIn - Mail - MySpace - Netlog - Orkut - Ping.fm - Posterous - Reddit - Read It Later - StumbleUpon - Technorati - Tumblr - Twitter - Yahoo! Bookmarks - Yahoo! Mai
If you are not interested in the keyboard shortcuts or you are worried for your privacy  you can install the lite version http://goo.gl/kZiQ

Howto: Install VirtualBox on Ubuntu

This tutorial shows you how to install Oracle’s VirtualBox on a Ubuntu desktop.
With VirtualBox, you can create and run guest operating systems (“virtual machines”) such as Linux and Windows on top…

01

Apr

Howto: Install VirtualBox on Ubuntu

Howto: Install VirtualBox on Ubuntu

This tutorial shows you how to install Oracle’s VirtualBox on a Ubuntu desktop.

With VirtualBox, you can create and run guest operating systems (“virtual machines”) such as Linux and Windows on top of a host operating system. 

In order to run VirtualBox on your machine, you need:

  • Reasonably powerful x86 hardware. Any recent Intel or AMD processor should do.
  • Memory. Depending on what guest operating systems you want to run, you will need at least 512 MB of RAM (probably more, and the more the better). Basically, you will need whatever your host operating system needs to run comfortably, plus the amount that the guest operating system needs. For example, if you want to run Windows XP on Windows XP, you probably won’t enjoy the experience much with less than 1 GB of RAM. If you want to try out Windows Vista as a guest, it will refuse to install if it is given less than 512 MB RAM. So you’ll need to set aside that much RAM for the guest operating system, plus the RAM your host operating system normally consumes.
  • Hard disk space. While VirtualBox itself is very lean (a typical installation will only need about 30 MB of hard disk space), the virtual machines will require fairly huge files on disk to represent their own hard disk storage. So, to install Windows XP, for example, you will need a file that will easily grow to several GB in size.
  • A supported host operating system. Presently, VirtualBox supports Windows (XP and later), many Linux distributions, Mac OS X, Solaris and OpenSolaris.
  • A supported guest operating system. An up-to-date list is here.

There are two ways to install VirtualBox: from pre-compiled binaries that are available for some distributions and come under the PUEL license, and from the sources that are released under the GPL. This tutorial will demonstrate both ways.

1. Installing VirtualBox From Precompiled Binaries

The VirtualBox binaries can be downloaded directly from http://www.virtualbox.org/wiki/Downloads, if the PUEL license applies. 

To install the VirtualBox .deb package, open up a terminal window and become root:

sudo su

Then install some prerequisites for VirtualBox:

apt-get install bcc iasl xsltproc xalan libxalan110-dev uuid-dev zlib1g-dev libidl-dev libsdl1.2-dev libxcursor-dev libqt3-headers libqt3-mt-dev libasound2-dev libstdc++5 linux-headers-`uname -r` build-essential

Next, go to the VirtualBox download page. Pick the right .deb package for your Ubuntu version and download it to your system:

cd /tmp
wget http://download.virtualbox.org/virtualbox/4.0.4/virtualbox-4.0_4.0.4-70112~Ub…

After the download is finished, you can install VirtualBox like this:

dpkg -i virtualbox-4.0_4.0.4-70112~Ubuntu~maverick_i386.deb

Voila! Now You can find VirtualBox under Applications > System Tools.

2. Installing VirtualBox from the Sources

If VirtualBox’s PUEL license doesn’t work for you, you prefer the GPL, or there’s no .deb package for your Ubuntu version, you can compile VirtualBox from the sources. The sources are released under the GPL.

To install VirtualBox from the source, open up a terminal window and become root:

sudo su

Then install some prerequisites for VirtualBox:

apt-get install bcc iasl xsltproc xalan libxalan110-dev uuid-dev zlib1g-dev libidl-dev libsdl1.2-dev libxcursor-dev libqt3-headers libqt3-mt-dev libasound2-dev libstdc++5 linux-headers-`uname -r` build-essential

The latest VirtualBox source can be checked out from VirtualBox’s SVN repository. To do so, we need to install Subversion first:

apt-get install subversion

Next, check out the VirtualBox source to the /usr/src/virtualbox directory:

mkdir /usr/src/virtualbox
cd /usr/src/virtualbox
svn co http://virtualbox.org/svn/vbox/trunk vbox

TheN, compile VirtualBox like this:

cd vbox
./configure
source ./env.sh
kmk all
cd out/linux.x86/release/bin/src
make
make install

Load the vboxdrv kernel module, and copy the VirtualBox files to appropriate locations on the disk:

cd ../
modprobe vboxdrv
echo vboxdrv » /etc/modules

cp -prf *.so /usr/lib/
mkdir /usr/local/virtualbox
cp -prf * /usr/local/virtualbox/
ln -s /usr/local/virtualbox/VirtualBox /usr/local/bin/VirtualBox
ln -s /usr/local/virtualbox/VBoxSVC /usr/local/bin/VBoxSVC

Next, create the group vboxusers and add a desktop user (e.g. guest) to it:

groupadd vboxusers
usermod -G vboxusers -a guest

Change the permissions of /dev/vboxdrv, so that it can be accessed by the vboxusers group:

chmod 660 /dev/vboxdrv
chgrp vboxusers /dev/vboxdrv

We don’t want the permissions of /dev/vboxdrv to be reset at each boot time, so we edit /etc/udev/rules.d/40-permissions.rules:

gedit /etc/udev/rules.d/40-permissions.rules

Add the following line to the end of the above file:

[…]

KERNEL==”vboxdrv”,                        GROUP=”vboxusers”,

MODE=”0660”

We’re almost there! Now all that’s left to do is create a menu entry for VirtualBox. Right-click on Applications and select Edit Menus:

1

In the window that pops up, select System Tools and then click on New Item:

2

In the Create Launcher window, fill in the following details:

3
  • Type: Application
  • Name: VirtualBox
  • Command: VirtualBox (pay attention to upper/lower cases — this is a command. If you don’t type it right, the application won’t start)
  • Comment: You can fill in anything you like or leave it blank.
  • If you like, you can also select an icon for the new application. This is optional. 

VirtualBox should now be found in the list of items under the System Tools menu. Click on Close to leave the window:

4

Then, you can find VirtualBox under Applications > System Tools:

5

This is what it looks like when VirtualBox is started:

Screenshot

 

 

 


 

22

Mar

I work at Apple as a manager at one of its stores in Japan. The earthquake hit while I was working on the first floor of one of their stores. As the entire building swayed, the staff calmly led people from the top 5 floors down to the first floor, and under the ridiculously strong wooden tables that hold up the display computers.
 
7 hours and 118 aftershocks later, the store was still open. Why? Because with the phone and train lines down, taxis stopped, and millions of people stuck in the Tokyo shopping district scared, with no access to television, hundreds of people were swarming into Apple stores to watch the news on USTREAM and contact their families via Twitter, Facebook, and email. The young did it on their mobile devices, while the old clustered around the macs. There were even some Android users there. (There are almost no free wifi spots in Japan besides Apple stores, so even Android users often come to the stores.)
 
You know how in disaster movies, people on the street gather around electronic shops that have TVs in the display windows so they can stay informed with what is going on? In this digital age, that’s what the Tokyo Apple stores became. Staff brought out surge protectors and extension cords with 10s of iOS device adapters so people could charge their phones & pads and contact their loved ones. Even after we finally had to close 10pm, crowds of people huddled in front of our stores to use the wifi into the night, as it was still the only way to get access to the outside world.

#urbancomputing

XXXXX, Great Tohoku Earthquake Survivor 2011 (via ericmortensen)

18

Mar

Lift vs. other web frameworks (e.g. Spring MVC, Grails)

Do Frameworks Spur Adoption of Programming Languages?

Original Post


Obviously, Ruby and Rails are tied together, but seeing the growth trends starting to separate is a good sign for Ruby as a standalone language.

What I did not realize was that m…

17

Mar

Do Frameworks Spur Adoption of Programming Languages?

Original Post

Obviously, Ruby and Rails are tied together, but seeing the growth trends starting to separate is a good sign for Ruby as a standalone language.

What I did not realize was that many people considered Groovy and Grails to be similarly tied. In my experience, Groovy has been used as a scripting language, but I have worked in heavy Java shops where Spring or Struts ruled the MVC world. After hearing some of the comments that outside of my world, Groovy is heavily tied to Grails, I did some digging. More than anything, it is obvious that I was missing a data point.

To illustrate, look at the job trends for Ruby, Rails, Groovy and Grails from Indeed.com:

As you can see, there are similarities between the Ruby/Rails pairing and the Groovy/Grails pairing. So, my apologies to all those people that complained, I was obviously wrong. Even though Groovy is tied to Grails, it is interesting that Groovy job trends are starting to distance itself from its Grails heritage. So, if the job trends are starting to separate, what does the relative growth look like:

This graph is interesting for two reasons. First, the Ruby growth and Rails growth trends are almost identical. I am not saying this proves my point, but the growth definitely looks correlated. The second reason this graph is interesting, is the disparity of growth between Groovy and Grails. Very surprising to me is that the Grails growth is ridiculous, while the Groovy growth is still showing a very rapid rise. This shows me that Groovy and Grails are being considered separately as opposed to the Ruby/Rails combination. This trend is something that should be watched over the next several months.

Of course, this comparison made me wonder about some of the other languages reviewed, specifically PHP and Python. Before I start looking at those trends, there is an excellent Wikipedia page that lists a bunch of web frameworks for various languages. So, I first looked at some of the popular PHP web frameworks, Zend, CakePHP and CodeIgniter. I noticed that there was no correlation between those frameworks and the growth of PHP. I found this a little odd until I reviewed the list of web frameworks on Wikipedia again. They listed Drupal and Joomla as frameworks, but they are really web content management systems (CMS). So, I decided to graph the job trends of the frameworks and the PHP-based web CMS applicationsWordPress, Drupal and Joomla:

Now that shows a little more correlation. As you can see, the web frameworks have limited demand when compared to WordPress, Drupal and Joomla. You can also see that there are similar growth trends between PHP and the web CMS applications. Granted, this is not a strong correlation, but there are some similarities. So, what about Python?

Here is what Indeed has for Python, Django, Zope and Pylons:

As you can see there is no relationship between the web frameworks and Python growth. Django seems to be the only framework gaining significant adoption as well, but it still does not show the same type of growth pattern as Python.

Overall, watching the growth of these languages is interesting. Seeing the growth of Ruby and Groovy slowly trend away from their web frameworks is a good sign for adoption of those languages. This means that people are starting to see them as being more of a general purpose language than the language used for a specific framework. The contrasting trends of these languages and those of PHP and Python show how the market can move in different situations as well. The growth of CMS applications like WordPress, Drupal and Joomla is due to the rapid growth of PHP itself, as well as the maturity of those platforms. So, sometimes a framework drives language adoption and sometimes the language can drive platform adoption.

Lift vs. other web frameworks (e.g. Spring MVC, Grails)

I’ve been using Grails for the past few months, and I really like it, specially GORM. Grails is currently on top of the latest cloud-friendly technologies, with features like native RabbitMQ messaging support, and turnkey GORM support for MongoDB and Redis. However, Groovy on Grails isn’t as popular in the NYC tech community as I thought. 90% of the developers I’ve come across in NYC use Ruby on Rails. Once I asked a web developer, “Why don’t you use Groovy on Grails instead of Ruby on Rails?” Guess what, the answer was, “What’s that? I’ve never heard of it.”

I started to have the feeling that Grails is far from reaching a critical mass, and it still remains obscure (in the past few months I had the opportunity to work with middle-sized companies and IT startups who were working mostly with the JVM stack, and only one person knew and used Grails). One of the comments I heard was “I tend to go back to Java, even reimplementing every app that needs further development in a plain Java framework - I think wicket and Seam.

 

Recently, I got interested in Scala and Lift. The fact that Twitter and Foursquare are using them now gives Scala and Lift even more presence in the blogosphere with lots of lovers and haters making the buzz. It is famous for being fast and scalable. However, the language seems somewhat hard to understand and learn for lots of developers (so maybe it will never gain mainstream status). Lift is little known and I have read some reports that it is better suited for small apps (less than 20 domain classes).

Recently, I got interested in Scala’s Lift. So I searched the web to get more feelings and takes on it. 

Lift vs. Other Web Frameworks

There is no best web framework around. It all depends on your needs. Get the right tool for the job.

Lift is one of the most secure web frameworks around because, by default, it’s resistant to replay attacks, cross site scripting, cross site request forgeries, etc. 

Lift’s comet support is the best around. 

Lift’s Ajax support is easier than any other web framework that I know of. 

Performance

Lift is said to be faster than Grails (Groovy is slow).  No benchmarks have been done against Spring MVC or Grails.

Usability 
Lift apps are going to be smaller and more maintainable than either Grails or Spring MVC apps, and because Scala is strongly typed, the compiler will help you. 

 

Architecture 
Keeping stuff around in XML rather than Strings and associating HTML elements with functions is considered by some people to be vastly architecturally superior to what Grails and Spring MVC do. 

 

Deployment 
No difference.  A WAR file is a WAR file. 

 

Miscellaneous

Where Lift doesn’t do better than other web frameworks is generally CRUD-related.  Doing CRUD apps in Lift is not the simplest thing in the world. 
But then, Lift is not tied to a single persistence mechanism (like Grails), 

+++

I have yet to look at Scala/Lift myself, but for now here is a JVM Web Framework Matrix, followed by some analysis, which are both interesting to look at.