Tuesday, September 10, 2013

Python Tip: Thanking People is Important

Thanking people for the time they spend on helping you is important.  Email is great, but impersonal.  Consider taking the time to write a hand written message in a real card.  It's the personal touch that counts -- showing that you really thought about it and appreciate their efforts.

Tuesday, September 3, 2013

Sunsetting Mach-II

Rather than leave things in an uncertain state, we feel it is best to announce that the current team behind Mach-II will no longer be working on or supporting Mach-II moving forward.


Peter, Matt, and Kurt have all moved away from CFML to other technologies: Peter and Matt to Python and Django, Kurt to C#. Since we are no longer doing CFML development and our time will be filled working in and contributing to projects in our new primary languages, we are no longer able to effectively develop and support Mach-II.


Mach-II is a stable, mature framework and is used -- and will continue to be used -- by a large number of organizations for their most mission-critical CFML applications. Current Mach-II applications will continue to run just fine of course, and if Mach-II does everything you need it to do there’s no reason to stop using it. The code will remain in its current state on GitHub (https://github.com/Mach-II/Mach-II-Framework) permanently, so it will always be available for you to use.


The beauty of free and open source software is that just because the current team supporting Mach-II is stepping away from the project, that doesn’t necessarily mean Mach-II dies. In addition to being able to continue to use Mach-II, you are also free to fork Mach-II and improve and evolve it as you see fit. Since we will no longer be maintaining Mach-II we will not be responding to pull requests back to the main repository, but if anyone is interested in taking over active maintenance of Mach-II please feel free to contact us.


Finally, we would like to express our extreme gratitude to everyone who contributed to Mach-II over the years. Contributions large and small -- from minor edits to documentation, to helping by testing your applications on new versions of Mach-II, to major code contributions -- were all vital to the success of Mach-II over the years. To all Mach-II users and contributors, our deepest and sincerest thanks.


Happy Hacking!


Peter, Kurt, and Matt

Installing VPython (Visual Python) on Linux

VPython on Linux is a pain to install because they recommend using WINE or compiling from source.  I was able to compile from source but it took over an hour to compile a special patched version of wxPython and then compile that into VPython.  It was a less than "fun" experience and requires knowledge of compiling.  I discovered this during Kirby Urner's Leveraging Python tutorial at DjangoCon US 2013. So I set out to find a better way with fellow attendee German Larrain.

We're waiting on a pull request to the main GitHub repo that fixes our problems however we figured out a way to install VPython using PIP.  Its as easy as using PIP ability to install from a GIT repo.  In the meantime, you can use German's fork of VPython at GitHub:

sudo pip install git+git://github.com/glarrain/vpython-wx.git

Edit (Nov. 2013):

The pull request mentioned above has been merged into the main VPython git repo.  However the installation instructions have changed due to the addition of the Numpy package and on my system I needed to install a newer WxPython (which much have been installed on my old system and why it wasn't on the original instructions).

Here's how I installed WxPython 2.9.4 on Ubuntu 13.10 (saucy -- no deb was available yet).  I couldn't get 2.9.5 to build on my system - it kept failing in the make process at random places. You do need GTK2 dev package (as indicated as the first command) if you do not have that installed yet and the gstreamer base dev package (second command).  If you get errors about missing .h files, then your system is missing a -dev version of some package that is indicated.
sudo apt-get install g++ libgtk2.0-dev freeglut3-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev python-dev libgtkglextmm-x11-1.2-dev libboost-python-dev libboost-signals-dev libboost-python-dev libboost-thread-dev tk
wget http://downloads.sourceforge.net/project/wxpython/wxPython/2.9.4.0/wxPython-src-2.9.4.0.tar.bz2
tar -xvf wxPython-src-2.9.4.0.tar.bz2
cd wxPython-src-2.9.4.0/wxPython
python build-wxpython.py --build_dir=../bld

Note the output that say something like -- we will need this later:
To run the wxPython demo you may need to:
 - set your PYTHONPATH variable to /home/peter/wxPython-src-2.9.4.0/wxPython
 - set your LD_LIBRARY_PATH to /home/peter/wxPython-src-2.9.4.0/bld/lib

Note that Numpy will take some time compiling all the C code on your system. I have an i7 with 8 cores it took a few minutes -- may look like it hangs, but be patient. Also, it may take some time for PIP to download the tarball depending on your internet connection speed -- it may look like it hangs downloading, but again be patient.
sudo pip install numpy
sudo pip install https://github.com/BruceSherwood/vpython-wx/archive/master.zip

At this point, we need to create .sh executable to run vidle.  Create a file named vidle.sh with the following text (replace paths with the stuff we noted above) and ensure this file is executable (chmod 777 vidle.sh).
export PYTHONPATH="/home/peter/wxPython-src-2.9.4.0/wxPython"
export LD_LIBRARY_PATH="/home/peter/wxPython-src-2.9.4.0/bld/lib"
python /usr/local/lib/python2.7/dist-packages/VPython-6.03-py2.7-linux-x86_64.egg/vidle/idle.py