Posts

Vagrant - Error: Failed to mount folders in Linux guest. This is usually beacuse the "vboxsf" file system is not available.

Image
I have installed VirtualBox on Mac OSX and was getting this error on the command "vagrant up" [default] Mounting shared folders... [default] -- /vagrant Failed to mount folders in Linux guest. This is usually beacuse the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was: mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` /vagrant /vagrant mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` /vagrant /vagrant  The fix for this is destroy the VM that was created just now, just us vagrant destroy to destroy this VM. And then give the following command vagrant plugin install vagrant-vbguest And now when we create a VM using vagrant up, we get the shared drive created without any issues and we 

Vagrant - Simplified and mastered!

Image
What is this Vagrant? Official definition of it is:- "Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximise the productivity and flexibility of you and your team." Quite simply Vagrant is a tool using which we can create Virtual machines programatically, its like an API! Brushing up quickly! Virtual Machine   is quite simply a "Virtual" or emulation of a computer, a smaller bits of a server  etched out of a powerful machine with huge hardware resources. Like for example suppose I want a Ubuntu, CentOS and Windows machines to test something and only have a fully loaded Mac, I can install a "Hypervisor" on my Mac and create Virtual Machines or VMs with 1GB of Memory each, a share of my processor and harddisk and then install different kinds of OSs each and run them all simultaneously having my own networ

Some Google Apps Calendar, having fun with your users!

Several of my users have been reporting issues with their calendar entries and room bookings missing mysteriously, here is a neat and simple trick to see the deleted events or all events that are suppose to be there  https://www.google.com/calendar/feeds/ email@domain.com /private/full?start-min= 2014-01-23 T00:00:00&start-max= 2014-01-24 T23:59:59&prettyprint=true&showdeleted=true&showhidden=true just replacing the above three creates a RESTful request which helps us to get an atom feed with *all* the events in the calendar, showdeleted and showhidden parameters are set to true.  email@domain.com ==> is the email id or the calendar id of a resource and the start and end date. 

Unix cheat sheet

Inspite of years of working on Unix and Linux I still wasn't confident if I knew enough and hence read it in these holidays and I see that we can get our way through these amazing OS using the below commands:- The OS uses the Filesystem to store data on the harddisk. They are different types of file storage, NTFS, FAT and etc.  Commands to get your through! pwd ==> Prints the working directory you are in.  ls ==> just to list the files and directories, flags -l  => output in list format -a => show the hidden files -h => output is more human, that is easier to understand  cd ==> Change directory  find location -type f -name filename   ==> to find the file that you have been looking for. parted for partitioning ext4 mkfs ==> to create filesystems echo $PATH  ==> print the path env ==> to list the environment variables of  ps -efl  ==> to print the details of the process that are running ps $$ ==

Accessing the Google APIs using Oauth 2 in Python

Image
In its simplest form, Oauth is as in this document I had created earlier. Oauth is such a simple protocol and so much of fuss is being made about it, its so simple that you can understand it even by reading its Specification  documentation ! Below pic shows the flow +--------+ +---------------+ | |--(A)- Authorization Request ->| Resource | | | | Owner | | |<-(B)-- Authorization Grant ---| | | | +---------------+ | | | | +---------------+ | |--(C)-- Authorization Grant -->| Authorization | | Client | | Server | | |<-(D)----- Access Token -------| | | | +---------------+ | | | |

Agile Python Development and the Laundry list

We need method to the madness! There are apparently two, one is waterfall and the other agile When? Manifesto for Agile Software Development was produced in February, 2001. Why Agile? Is more pragmatic, as it knows that not everything can be documented at the beginning of a project. But it does put in place some rigorous  checks to accommodate these changes! So that any change can be accommodated, with good communication, iterative design and development.  Agile development can be applied in any project, both testing tools and build automation tend to be very language specific. Python too has these tools. Jargons again! Agile methodologies  XP - Extreme programming -- focuses almost exclusively on the developer and development techniques DSDM - Dynamic Systems Development Method -- focuses completely on processes there could be many more. Spirit of it from manifesto! Individuals and interactions over processes and tools Working software over compreh

Google APIs for python - don't feel unfortunate anymore if you have to work on these

Image
From the past 4 years I've been unfortunate enough to work on Google API's which are those for which even Google cannot search their documentation, may be because it doesn't exist, stackoverflow no matter how much it overflows cannot give us anything much on these. Below is the summary of all my experience to crack the Google APIs. I've spent days together to crack one thing at times and I wished I had known these tricks so that it wouldn't have taken me this long. So firstly try to read as much as possible from the getting started guide. This will take you to a world of links, go to those link and grab in what ever is possible (don't worry if you don't understand anything). [trade secret of software engineers is make the simple sound as complex as possible, and intimidate others!] But the world of python is different!  " Simple is better than complex." -- zen of python So the magical commands in python are :- dir() type() help() (k