Ubuntu phone on way – I really hope this is the beginning of something really good:
In the Zen of Python we are taught that complex is better than complicated. Which is fair enough if we understand the terms as follows:
It is ok if something is complex so long as it is not complicated.
complex: composed of many interconnected parts; compound; composite
complicated: difficult to analyze or understand
Any decent web framework is going to be a bit complex becauise of all the moving parts it has to handle. But it should make sense and be logically structured enough to avoid being overly complicated.
I upgraded to Utopic (Utopic Unicorn a.k.a 14.10) and eclipse wouldn’t complete loading anymore. Solution:
Download latest plain vanilla Eclipse from the standard downloads page. And feel free to donate something too.
chown -R root:root /home/username/eclipse && mv /home/username/Downloads/eclipse /opt
ln -s /opt/eclipse/eclipse /usr/local/bin/eclipse && exit
Start by running:
It didn’t even break PyDev so my luck’s finally turning ;-).
Newer Ubuntu versions are less dramatically new these days, which is probably a good thing, but I like to take them for a spin anyway – old habits and all that. One nice change since the days of Dapper Drake is the ability to boot off a usb stick – much easier than having to burn CDs. On my laptop, I get to the boot menu by pressing the Esc key soon after booting and then selecting the USB stick to boot off. But there can still be problems. In particular, I was receiving the error message:
gfxboot.c32: not a COM32R image
Turns out you need to press the tab key and then type in “live”. Obvious really (not) Ubuntu 14.04 LTS live USB boot error (gfxboot.c32:not a valid COM32R imag).
Another good thing about modern Ubuntus is that they generally work out of the box just how I like them. I remove items from the launcher, shrink the icon size and add the Show Desktop icon to the launcher (under System Settings > Appearance), and I’m almost good to go. There is still one thing that takes a bit of fiddling – adding the ability to minimise on click (Ubuntu 14.04 Adds ‘Click to Minimize App’ Option to Unity Launcher).
Step 1: Open Ubuntu Software Centre
Step 2: Install CompizConfig Settings Manager
Step 3: Open Ubuntu Unity plugin
Step 4: Launcher > Minimize Single Window Applications (Unsupported)
On the one hand the version changes aren’t as exciting as they used to be, but on the other, it’s never been easier to check them out.
I’m now a fan of Heroku. How cool is it to be able to deploy a Python app to free hosting?!
But in spite of great docs at Getting Started with Python on Heroku there were a few issues I had to handle. The main problems were because the instructions assumed you wanted to start with their demo app and not your own – which meant that they only explained things like requirements.txt and Procfile after you needed to have already made them (they were already present in the demo version).
Note – I am already familiar with git so I don’t explain that here – see Starting a simple Flask app with Heroku for more fleshed-out instructions.
Anyway, here is what I needed to do at the start:
1) Change the
app.run(host='0.0.0.0') line to
port = int(os.environ.get("PORT", 33507))
Otherwise the app would fail because of a problem with the port when I ran
heroku ps:scale web=1
Starting process with command `python main.py`
Web process failed to bind to $PORT within 60 seconds of launch
2) I really needed to use virtualenvwrapper and create a requirements.txt file e.g.
cd <folder with code in it>
Otherwise heroku wouldn’t know what dependencies my app needed fulfilled to work successfully.
To update requirements.txt after changes,
cd <folder with code in it>
pip freeze > requirements.txt
3) I needed to make a Procfile:
web: python main.py
Note, this was a toy flask app so not using gunicorn etc. Probably should look into that later:
4) Setting debug mode off probably isn’t essential for deployment but probably a good idea anyway:
app.debug = False before deploying.
Some other points: when developing on a different machine, I needed to supply my public key to heroku from that other machine (Permission denied (publickey) when deploying heroku code. fatal: The remote end hung up unexpectedly).
heroku keys:add ~/.ssh/id_rsa.pub
And the full sequence for upgrading your app after the prerequisites have been fulfilled is:
- Make sure you have the port set for heroku
- Then git to local repo
- Then git push to heroku
- Then run
heroku ps:scale web=1again
- Revert from the heroku port back to local for local testing and dev.
heroku addons:add redistogo
To add redis support – NB need to register credit card to use any add-ons, even if free ones.
Yes – I know, there are better alternatives to IDLE out there, but I am used to it for quick and dirty changes to python files (I use eclipse + pydev for more serious work). And I am increasingly making the switch to Python 3. So when I double click on a py file, odds are I want to open it with IDLE for Python 3 not Python 2.
Start by making sure you have a desktop file like the following:
gksudo gedit /usr/share/applications/idle-python3.4.desktop
Name=IDLE (using Python-3.4)
Comment=Integrated Development Environment for Python (using Python-3.4)
Then make the desktop entry the default for python files:
Note – no trailing semi-colon.
And in Linux Mint:
identify appropriate .desktop file
add the appropriate .desktop file reference at the front of the python line as appropriate.
First a disclosure – I will be getting two free e-books for promoting the Packt Sale ;-). But I wouldn’t bother writing this up unless I thought Packt books would be of some value to me – so that makes it a genuine endorsement. For reference, here are the three I’m weighing up:
- Learning IPython for Interactive Computing and Data Visualization
- Git: Version Control for Everyone
- Responsive Web Design with jQuery
Apparently the deal is:
- Unlimited purchases during the offer period
- Offer is automatically applied at checkout
I procrastinated a bit so there are only a couple of days left (ends 26th March). So be fast! Here’s the promotion link
Existing documentation for installing iNZight on Ubuntu covers a wide range of possible scenarios in Step 1. For my own specific case, however, I needed to translate it into a series of precise step-by-step instructions.
So here are the instructions that worked for me for Step 1. Once that is done, just follow steps 2 onwards in the official docs.
STEP 1 STEP-BY-STEP
It is probably best you don’t already have R already installed. And if you’re using iNZight, you probably won’t. But if you do, purge it! Installation may or may not work depending on the version of R you install so remove one source of difference from what the support people will have tested.
ctrl-alt-tto open terminal window
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
sudo gedit /etc/apt/sources.list
and then append
deb-src http://cran.stat.auckland.ac.nz/bin/linux/ubuntu saucy/
Note: must have trailing slash (/) at end
- Click on “Save” button on toolbar or enter ctrl s on keyboard to save
sudo apt-get update
sudo apt-get install r-base
- Open R by typing R into terminal
- From R prompt:
update.packages(ask = FALSE)
y to everything
to quit the R prompt.
- Then follow steps 2 onwards in the official instructions …
Get the appropriate version of the VirtualBox extension pack installed – I found the correct version in here: Download VirtualBox (Old Builds): VirtualBox 4.2
Add self to vboxusers group as per Set up USB for Virtualbox. Must reboot for change to take effect.
sudo usermod -aG vboxusers
Then follow the additional steps. For Windows XP at least, must add a filter before opening so that the USB is recognised by the File Manager and displayed as an extra drive.