My presentation slides from speaking at SXSW V2V in Las Vegas this week. The official description is below and they are producing a video so I’ll either update this post or add the video as well.
Proprietary to Open Source: Giving Away $6M is Harder Than You Think
After 15 years running a successful business, Ed Schipul released the source code for his proprietary software, Tendenci, to the world. Foreseeing the impact the cloud, mobile, and GIS, Ed knew he had to change his business model or become irrelevant. Open source was the path to future sustainability and innovation.
There were however, seemingly insurmountable challenges. Tendenci 5, the first open source CMS platform for nonprofit organizations, had to be completely rewritten from .Net, ASP and SQL to Python, Django and PostgreSQL. From Github to cloud software, he had to choose all the tools to put in place to support his rewritten product and new architecture.
Lessons learned from the transition include the importance of testing and how to make your application’s architecture more scalable as well as what open source tools have proved to be most valuable. Ed will share his reasons for thinking that all of this is the best choice for both the product and the development community.
See more at: http://schedule.sxswv2v.com/events/event_V2VP29570#sthash.SM08HnZT.dpuf
“You’ll never see a U-Haul behind a hearse.”
– Denzel Washington (quote via James)
Notes from the dungeon: ImageMagick and Redmine 2014-03-23
# abbreviated notes on installing redmine gems with imagemagick on ubuntu 12.04
# some of the following notes came from http://www.underworldproject.org/documentation/LibpngDownload.html
# which is an open source library for subsurface exploration like “magma” (yes, I said “magma”)
tar zxvf libpng-1.6.10.tar.gz
# imagemagik still doesn’t install the gem. Found this on StackOverflow but lost the link:
apt-get install graphicsmagick-libmagick-dev-compat
/rant/ – global variables like PATH are needed. Windows has the registry. In this case for ImageMagick to work with PNGs we need to tell it the home globally defined as PNG_DIR. There are several ways to do this in unix and in Ubuntu/debian. I personally don’t like variables stuck in .bashrc if the variables are really user specific. The .bashrc for your profile is NOT global. And skeleton profile files for unix named user profiles are a one-time thing that you can’t update everyone globally later once their profile is created. GLOBAL_VARS in .profile or .bashrc make (specifically you the network admin) your life convenient. But it’s not all about us. .bashrc variables or custom entries in /etc/hosts suck. Magical profile specific path variables break the python rule of “no magic” which means that in every other way they completely suxor. Let’s be honest – it just tempts you to run applications as root, right? None of us have ever seen that. HmmmmHMMMM? /end-rant/
Better option: profile.d applies to all bash prompts as well as any GUI that gets launched so it is currently my preferred method. (note “preferred methods” for me frequently last either 48 hours or 20 years, one or the other. Educate me if you have a better way.)
In this case we need to specify one variable only. But it will expand so let’s do it the right way. We’ll make a .sh file in /etc/profile.d. In practice I usually put these with my project without execute rights and then sym link them into the /etc/profile.d/ folder with “chmod +x myscript.sh” etc…. But to keep it simple – let’s just make our shell script as follows.
sudo touch redmine_globals.sh
chmod 755 redmine_globals.sh
sudo nano redmine_globals.sh
# for bash put this in the script file
# exit. or call it manually with “source /etc/profile.d/redmine_globals.sh”
PROGRESS? Let’s check it.
NOoooooOOOOOoooo… Alas I still get a fail when I refresh the redmine page on the availability of ImageMagick. Major FAIL. I read a bunch more as it still didn’t work. Found this command and it executes properly.
sudo apt-get install libmagickwand-dev
#but did it work? Hmmmm.
bundle install --without test development
# still no
# Then tried this:
sudo apt-get install imagemagick libmagickwand-dev ruby-rmagick
root@redmine:/var/data/redmine# touch tmp/restart.txt
I have absolutely no need to calculate anything about magma. But it holds a sacred place in my mind and while fighting with RMagik gems I found a few helpful notes on the underworld site (like sub-surface GIS people, not the Mafia. Sheesh.)
Thus I recommend you check out just how far the open source community has come in terms of GIS and ESRI including subsurface water simulation, magma and much more. Check it here: http://www.underworldproject.org/models.html#Magma
how to backup or backup and sync users in gmail using gmvault.
Mac or Linux – although I think on my Mac.
Best to do it in a virtual environment, by which I mean virtualenv
sudo easy_install pip
sudo chown -R venvs/gmvault
#make the virtual environment
# this just gives your regular user access to the directory tree because sudo gets old
sudo chown -R eschipul:wheel venvs
# You should now see (venv) in front of your prompt
# I had downloaded the file, which is hard to find BTW, to my Downloads folder so I had to move it.
mv ~/Downloads/gmvault-v1.8.1-beta-macosx-intel.tar.gz /venvs/gmvault/
tar zxvf gmvault-v1.8.1-beta-macosx-intel.tar.gz
./gmvault sync email@example.com
# you have two options – you can use oauth which I did. Or if you are doing a scheduled sync
# restoring a gmail account looks like this:
./gmvault restore MYNEWfoo.firstname.lastname@example.org
After having recently moved google apps accounts from the domain schipul.com with an alias for our tendenci.com emails, to reverse it to be tendenci.com with aliases from the schipul.com domain, I wanted to help you avoid some pain.
First – there is no easy way to do this. There is a planning doc from google apps, but google apps and google analytics aren’t even on the same page. (Trust me, we got so frustrated that we finally conferenced google in with google and listened to two highly intelligent people contradict each other. #sigh).
I don’t intend this post to be a “how to migrate your google apps domain to a new one” but I can at least hopefully help you on a few particular items. Consider this a “stuff to look out for” post with the usual YMMV caveat.
- There is no “switch” to change primary google apps domains.
- As of January 2014, the only way to do it is to DELETE your primary domain and wait for google to “fully delete it” (whatever that means) and add it back to your new google apps domain. Probably best to keep a primary that isn’t on google.
- Analytics is tied into a gmail, either gmail.com or google apps account. Given you probably don’t want to lose analytics and PPC for 1 to 5 days, move this one a week ahead of time at least. How? Get this.
—– to change google analytics master accounts you have to update each one individually. Really fun for an agency with a few hundred accounts under management. Thus DO THIS FIRST. If I could do it again I’d go with email@example.com and move everything over there instead of waiting out even the removal of an alias from the primary.
- You have to remove the alias domain fully before you can add it as a new google apps domain. This includes removing it as an alias from deleted accounts, which requires restoring the account, removing the alias, deleting the old account again which resets the “up to a week to delete” clock for the deleted account. /~slams head on desk~/
- Removing the alias domain is hard. Searching for the alias won’t show everything. you basically have to check every group, user, resource (shared calendars) etc to see if they have it as an alias. And they probably do because you set it to automatically add that alias to all resources in the domain like google prompts you to do.
First make a backup. More on that below. AFTER backing up the accounts, even if it doesn’t get docs and calendars etc, migrate. Well, sort of.
For us, we used backupify to move our google app accounts content
Side note I also used Backupify to backup my facebook pages before requesting a merge and that was also delayed. However, I believe Backupify rocks, but gmail and facebook don’t make it easy. I couldn’t find a better solution than backupify so they get a tip of the hat from me.
Back to backupify and google apps – it does NOT move the domain or create a new app account, it just moves “most” and “some” and “tries really hard” to move the data. Works fine for the young guns but if you have 15+years of emails it won’t move it all no matter how long you wait.
Out of sequence, but see the next post on backing up your google app emails for deleted accounts or your larger accounts as backupify can’t migrate those. You have to backup and restore. Or backup and don’t restore. A great chance to start over. See next post.
To be the best in the world takes just a bit of obsessiveness. I’m cool with that.
THE PAGANI HUAYRA IS THE FASTEST ROAD CAR EVER AT THE BBC TOP GEAR TEST TRACK
Mr. Horacio Pagani CEO and Chief Designer of Pagani Automobili:
“We are delighted by this result and it makes us proud. We knew the Huayra had a fair chance of being quick but the time scored was beyond our expectations and we give credit also to an amazing drive by the Stig. But, on top of that, we are delighted that the audience has appreciated our efforts in trying to make a car that conveys not only cutting edge technology and state-of-the-art engineering, but also the continued pursuit of making every single piece beautiful and functional at the same time. I would like to thank all our partners, without them it would have been impossible to achieve such an incredible result”.
I especially like the “thank all our partners, without them it would have been impossible to achieve such an incredible result” because that is so true. And yet frequently unspoken in the entrepreneurial community.
NOBODY does it alone. It takes lots of help, and friends, and family, and luck, and timing, and most especially – the stamina to work 80 hour weeks for 10+ years or more. Because if you love what you do, it isn’t work, it’s life. And life is meant to be full of meaning. And when you know that what you do is meaningful, from meaning you find happiness.
Mediocrity is lame. The definition of success is internal and it changes over time. For example….. (sorry, saving that for the next blog post….)
For his entire life, Golson’s had the raw ability to simply throw the ball, never using the laces of the football to guide his mechanics. Left alone by the Irish staff, Whitfield has gotten Golson to change a life-long habit by helping the young quarterback understand why using the laces is important.
“I said, ‘Listen, I understand, it’s remarkable what you do without them, and you’re going to need that, because sometimes you’re going to need that when you’re under the gun.’” Whitfield explained. “Then, we sort of talked about why the strings are there, and they’re there to help us, and they are there to kind of easy things out, and they allow us to do X, Y and Z with the football.”
– Keith Arnold