setting up vmware fusion 7 for tendenci development

Tendenci install docs – latest version – are in the git repo here:  Please note that Tendenci is a FAST moving project and you should update your install before submitting issues given the rapid pace of change.

I am adding this as a blog post instead of a help file as things change so quickly it might be outdated in a week. Anyway, part 1 of probably several on setting up vmware fusion with Ubuntu 14.04 to develop Tendenci Open Source Software for Non Profits and NGOs. (disclosure – I work there, blah, disclaimer, blah, etc….)

First – install vmware Fusion 7. They have a 30 day trial so you can start with that.

Second – download ubuntu 14.04 from the official distro. Given Ubuntu appears to be heading towards the dark side lately, you will be fine just using Debian Linux as almost all commands are identical. In fact as one of the lead developers on Tendenci I can tell you I’ll be testing it on Debian, CoreOS in Dockers.

(As an FYI – you can also spin up a demo site of tendenci right now at if you just want to kick the tires. But I’d much RATHER see you join the community to provide future-tools to change the world.)

Now in pictures setting up vmware with ubuntu (14.04.2 and 14.04.3 are both fine – 14.04.3 will save you time on updates. So do that first after install:

sudo apt-get update && sudo apt-get upgrade -yy



  1. 3-vmware-fusion-tendenci



This is mostly a useless graphic saying to install your preferences as you see fit. Other stuff happens before and after this. Carry on.



Not a useless graphic. VMware’s console is a pain so you are definitely going to want to have openssh installed. 9-vmware-fusion-tendenci



more stuff8-vmware-fusion-tendenci

confirm you did stuff


now do more stuff – in this case install vmware tools so you can share the file system and don’t have to suffer through VI/Nano or whatever. Sublime is way better.


In this image it says “reinstall vmware tools” but on yours it will probably say “Install vmware tools” – pick that one.

Next, what SHOULD be simple is definitely NOT simple. You have to configure Ubuntu guest machine to support vmware tools. Vmware exposes the tools into the guest OS but you still have to mount the drive, install, configure. What a pain in the arse. Anyway, Some helpful commands and from there you have to google your way.

Note at this point I’m assuming you are SSH’ed into your VM on the local and have done a “sudo su” so you are operating as root.

In the properties of your virtual machine make sure the CDROM drive is set to “mount”. In the guest OS you should then be able to do this:

sudo mount /dev/cdrom /media/cdrom/


cd /mnt/
cdrom hgfs

This mounts your drive from vmware into the host. The fact that you don’t have a cdrom drive on a mac is irrelevant – it still maps it and gives you access to source files for vmware.

Next add your debian package keys or nothing else will work. Again, it is up to YOU to check if the paths are still correct as time changes everything. As I type this today these are correct

wget -qO - | sudo apt-key add -
wget -qO - | sudo apt-key add -

Verify they installed correctly

apt-key list

Add/create your files. Maybe check if they exist first so you don’t overwrite but the basics are:

touch /etc/apt/sources.list.d/vmware-tools.list
nano /etc/apt/sources.list.d/vmware-tools.list

Next edit your vmware-tools.list file to include the repo

deb precise main

NOTE- if you aren’t on “precise” that won’t work so check your distribution (‘trusty’ etc…). Now install.

apt-get install open-vm-tools-deploypkg
root@tendenci:/# cd ~
root@tendenci:~# ls
root@tendenci:~# cd vmware-tools-distrib/
root@tendenci:~/vmware-tools-distrib# ls
bin doc etc FILES INSTALL installer lib
root@tendenci:~/vmware-tools-distrib# ./

From there I take all of the defaults except for this one which I answer yes (it’s just vm after all.)

Would you like to enable VMware automatic kernel modules?
[no] yes

Check your mount points if needed

ls mount-point

If everything worked, which is unlikely out of the box as vmware has unfortunately not gotten along with Mac’s lately, but hey, if you got lucky you should now have a mounted drive at

cd /mnt/hgfs/ with vmware in it.

NOTE – several points in there, it doesn’t hurt to reboot your vmware host os. I apologize for not being more precise in this post but I know if I get the basics out there google or ddg will solve it for you. That is my only goal – to point you in the right direction if not perfect.

Lastly if the above, or a derivative of the above worked, then you should be close to doing something like this.

Clone the git repo down to your mac. For me I put it on my Mac in ~/Documents/code/webapps/repos/

then inside of the guest machine, assuming the above worked for you (test test test people) then you should be able to FIRST install tendenci the normal way using the instructions here

THEN, and only THEN, move your dist repo on the host (after you can pull up the site in a browser) to a different folder and sym link in your cloned repo.

For my dev environment this is done with:

ln -s /mnt/hgfs/webapps/repos/tendenci/tendenci /usr/local/lib/python2.7/dist-packages/tendenci

I’ll try to tighten these instructions up over time but wanted to get them out there as I honestly lost hours and hours getting just the basics working with VMWare. I get that it is faster than vagrant, but almost not worth the grief with the difficulty of getting the vmware tools working.

Helpful source links used in the creation of this wonderful blog post. Categorize this one as “something is better than nothing” and use your google fu (or is it “foo”?) to fill in the details. I’m only sharing it because my google fu ain’t bad, and it was a challenge for me. So…. helpful further links:

Tendenci issues:

VMWare file sharing:

Ask Ubuntu notes:

amazon’s proposal for low airspace limits hobbyists

Not sure I can get behind this proposal by Amazon’s Drone Project to further divide the sub-500 foot of shared airspace. RC hobbyists flying planes, helicopters and now drones have always been able to fly up to 500 feet. While it is a good thing that Amazon Prime Air is starting the conversation on drone airspace, I’m not a fan of Amazon’s proposal which is basically “low budget drones must be below 200 feet”.

Welcome to the drone party new-guy-Amazon, but as a refresher, I should mention it was hobbyists’ innovation with RC aircraft that created the drone revolution in the first place! This solution doesn’t fly with us:


If I want to park a fleet of medium altitude drones over my farm to monitor irrigation, who are you to tell me to stay below 200 feet?

I do agree with this comment from the article:

“In the United States, there are approximately 85,000 commercial, cargo, military and general aviation flights every day,” Amazon said. “This number is likely to be dwarfed by low altitude [unmanned drone] operations in the next 10 years.”

Innovation will be stifled if the people can’t operate in the traditional sub-500 foot zone. We don’t all have octocopters like this Amazon PrimeAir Drone.



No question, your video on Amazon PrimeAir is cool.

Now how about playing nicer and coming up with drone flight standards so small and large players can work together. Because this is cool too.


And delivery isn’t the only use for drones as evidenced by this chapter in the book Drones for Dummies. The screen shot below is of a golf course taken by my drone a while back. And I was standing at the top of a hill.


Was I over 200 feet when I took that photo? That depends on if you measure from the altitude of the first hole or the hole I was at when I launched the drone. GIS is not reconciled on a flat plane.

Maybe the goal of a drone flight is to capture a video of work of art before it gets torn down. Let’s hope the artists keep their work small instead of creating a vortex through an entire house. Er… wait. Too late.

5th Ward Jam

All I’m saying is that it isn’t that simple Amazon. You can’t chop up the 500 foot air space when it is already too small. Think bigger. For example

  1. ask for the 500 to 1000 foot zone for high speed commercial use
  2. require any aircraft in this space to follow standard aircraft rules but scaled down to plus or minus 50 feet. 550/650/750/850 (source)

For VFR traffic above 3000ft AGL, flying a heading of 000º to 179º you must fly an odd thousand plus 500ft (3,500 – 5,500 – 7,500 etc…) and if you are heading 180º to 359º you must fly an even thousand plus 500 (4,500 – 6,500 – 8,500 etc…). Following this simple rule will keep VFR traffic flying opposite directions separated by 1000ft.

Example Drone Avoidance

Odd hundred plus 50 for eastbound traffic. (e.g. 550, 750)

Even hundred plus 50 for westbound traffic (e.g. 650, 850)

High speed VTOL traffic 950

Multirotors must move starboard to avoid winged craft

Multirotor craft must fly in the direction of onboard lights (front back even if theoretical) when maneuvering over 5 knots

All drones must drop below 500 in the event of manned craft in the area and enter a holding pattern

The waterways are flat after all, and yet somehow big and small boats are able to navigate together just fine using a few rules of the road. (Alternatively we could disrupt commerce if we wanted to by requiring any boat less than 100 feet long to actually be a submarine. There is that option I suppose.)

My point is it can be done without being a bully about it.

Now, I’m off to start a kickstarter for help launching my Faraday Cage Drone Catcher.  It is a “10 foot diameter faraday cage blanket meant to be thrown over a drone to safely disable it and stop all communications with remote controllers.” The Faraday cage blanket would enable selling Amazon drone parts on the black market. How? Well, first you buy the faraday-blanket, then wait for a neighbor’s Amazon PrimeAir delivery. Then you run in and throw a blanket on the drone. Part it out undetected. Voila!

Is the Faraday Cage Drone Catcher a civil rights issue or theft? Let’s go with civil rights for $1,000 Alex. After all, if Amazon can steal 60% of the air space for their fancy drones, then can’t we steal 60% of their actual drones and call it even?

I mean, how else are we to afford the fancy electronics needed to fly in what used to be our air space? And surely nobody has thought of catching drones like we catch cows in Texas – a cross between a lasso and frisbee golf called the Faraday Drone Catcher. We can organize events – call them “Catch a Drone Day” and redistribute the parts to poor rural areas after flashing the electonics. #heh

#ShareTheAir #obviouslySatire #butThePointIsReal


sublime text 3 packages – knowledge share

Rebuilt my laptop and have been reconfiguring and upgrading stuff ever since. I forget how much customization goes into a dev box. These are mostly notes to myself but if they help someone else, cool.

You can get sublime text 3 at – it is my text editor of choice. And like wordpress plugins or tendenci add-on modules, it is extensible. Make it do what you want, right?

ST3 packages and installing them is a bit different from sublime text 2 so I thought I would share what I had to do to get things installed.

Go to this link
Then copy the code on the left on that page
Open the sublime console by typing CTL+` (that last thing is a “tick” mark – top left on a mac keyboard)
Paste the code you copied into the sublime console and hit enter.
Then restart sublime text 3.

Next hit COMMAND+SHIFT+P and type in “Package Control: Install Packages”
You should now see a list of packages to install.

Some common plugins that don’t require much thought to decide on. After that install what you need, but no more, to keep things tidy and fast.

Makes HTML look pretty and easier to work with by color coding.

Python Improved
To make this your default Python, open a `.py` Python file.
Select `View -> Syntax -> Open all with current extension as… -> PythonImproved`
and you should be all set.

Color Highlighter
Shows CSS codes in the color that is chosen FFFFF for example.

Shows changes since your last commit by putting small visual cues on the left hand side.


Screen Shot 2015-08-15 at 2.00.23 PM


Search for more packages here:  They have some good ones for css and less/sass/etc… I’d look for the ones with the MOST downloads as an indicator of if it is a stable plugin.

stop wordpress page comment spam

Page spam (not posts, but specifically “pages”) is out of control. Usually when I see a pattern like this, I’m not the only one experiencing it. So here is how to stop the seo spammers from adding comments to pages on your wordpress site. Because even if the spam filter stops them, you still have to clean that junk out.

  1. Login to your wordpress blog
  2. Hover over “Theme” and select “Editor” from the flyout menu
  3. Look for the “page.php” template on the lower right hand side.
  4. Remove this block of code and update.
    // If comments are open or we have at least one comment, load up the comment template.
    if ( comments_open() || get_comments_number() ) {

Move on down the road page-spam free.

Who was the villain, the mob or the monster?

Pitchfork Mobs Frankenstein

Mob rule from the movie frankenstein. Who was the villain, the mob or the monster?


Mob rule from the movie twitter/facebook/snapchat. Who was the villain, the mob or the monster?

What is a group. From Swati Gautam on slideshare.
What is a group. From Swati Gautam on slideshare.

We all bind together as a group, but don’t always share the same values.


When we band together but don’t share values, we have low cohesiveness and act as a mob. Queue case studies here.

Slideshare stills from Swati Gautam on Group Dynamics on slideshare.