The situation is the following: you generate an eps file using matplotlib and then import it into a latex document which you compile to pdf. Some viewers have no problems with it, other's refuse to open it (old versions of chrome's viewer on macosx, for example). Furthermore, some latex compilers will crop / truncate the image when converting it to pdf as an intermediate step.
Higher much higher
The only blog not featuring an ipod.
How to solve the bounding box problem with matplotlib generated eps files
networkx gephi and graphml: missing node attributes
You are exporting graphml files using networkx, loading them into gephi and not being able to see all the attributes your node has?
read on!
There's one dirty secret of gephi: some attribute-id's of graphml files have reserved status.
The problem is, networkx's write_graphml function produces id's that, sometimes, fall into this category.
Here's the scenario:
You create a graph with networkx and put attributes into the nodes using them as dictionaries.
let G be some networkx graph object with num_nodes nodes and let attMatrix a num_attributes x num_nodes (numpy) matrix that contains some numbers you want to put on the nodes
V=G.nodes();
for v in V:
for i in range (num_attributes):
G.node[v][str(i)] = int(attMatrix[i,v]);
networxx.write_graphml(G, "myGraph.graphml")
It turns out, if num_attributes >=4 then there's going to be one attribute you won't be able to use.. the fourth. If you peak into the graphml you will see that that attribute is assigned id="d3" which gephi chooses to ignore.
The simplest workaround: open your graphmlfile and replace all id= with idd=
The slightly better workaround: open networkx/readwrite/graphml.py and change, in line 260 new_id = "d%i" % len(list(self.keys)) to new_id = "dd%i" % len(list(self.keys))
then reload networkx module and re-export (you might have to re-start python altogether). This makes more sense if you are going to be exporting more graphs.
There is, for sure, a better workaround: modify the write_graphml function so that it accepts this "d" or "dd" as a parameter. But that should be done by the networkx people, I guess.
Bias at its best
The set of numbers within [0,1] that are not normal has Lebesgue measure 0. Thus, if one picks a number in the unit interval at random, it is almost sure that it is normal. However, the set of known normal numbers (for which we know the decimal expansion, i.e. excluding those with an uncomputable one) is rather small. So, if mathematics is to be regarded as a sampling process, it is an extremely biased one.
Installing ctrax on Ubuntu 11.04 Natty OR Debian jessie / wheezy [Updated 2014.07.14]
Ctrax is a video tracking software developed specifically to track trajectories of fruit flies.
Currently (Jan 2012), there are packages available for Ubuntu 10.04. If you want to install it in 11.04 you can't use those packages, you will get an error. My solution is the following.
NOTES:
This solution also works "as is" on debian whezzy, using ctrax version 0.5.0-1_amd64.deb (July 2014).
If you are running debian jessie, you might run into a couple of problems, whose workarounds are marked in bold below.
1. First some prerequisites and one package you Can install:
sudo apt-get install equivs python-setuptools python-dev python-matplotlib python-scipy python-wxgtk2.8 libavbin0
Note: If you are trying this in debian Jessie, libavbin0 is not available for this version of the distro. You have to1. set up the sid repositories on your apt sources and run apt-get update2 install ONLY libavbin0, (apt-get install libavbin0)3. remove the sid repositories from your apt sources4. install the rest of the packages with sudo apt-get install equivs python-setuptools python-dev python-matplotlib python-scipy python-wxgtk2.8
2. Get the latest version of ctrax from here. I tried this on 0.3.0-1_amd64 and 0.3.2-1_amd64.deb and 0.5.0-1_amd64.deb
Place it in a certain folder, say ~/ctraxinst and
cd ~/ctraxinst
3. Now, since this package depends on some python packages which are not available (or not in the correct version) for 11.04, it is necesary to install them by hand:
sudo easy_install motmot.wxvideo
sudo easy_install motmot.wxglvideo
sudo easy_install motmot.wxvalidatedtext
sudo easy_install motmot.imops
4. This installs the python packages, the problem is that since they were not installed using the packaging manager, when we try to install ctrax it will report unmet dependecies. Here comes the dirty part, we will make some dummy packages and trick the packaging system into thinking this python modules are installed, well, not tricking because they actually are, lets call it, informing it of their installation.
mkdir fakes
cd fakes
equivs-control python-motmot-wxvideo
equivs-control python-motmot-wxvalidatedtext
equivs-control python-motmot-wxglvideo
equivs-control python-motmot-imops
This will create six files named as the packages, in side each of them is the information on the respective fake package, we just need to edit one line in each of them. For example
nano python-motmot-imops
and make sure the 8th line says:
Package: python-motmot-imops
(this means you have to replace the defaults with line
Now you can actually build the packages
equivs-build python-motmot-wxvideo
equivs-build python-motmot-wxvalidatedtext
equivs-build python-motmot-wxglvideo
equivs-build python-motmot-imops
this makes six .deb files which can be installed
sudo dpkg -i python-motmot-wxvideo_1.0_all.deb
sudo dpkg -i python-motmot-wxglvideo_1.0_all.deb
sudo dpkg -i python-motmot-wxvalidatedtext_1.0_all.deb
sudo dpkg -i python-motmot-imops_1.0_all.deb
5. And now you can install the ctrax file you downloaded
That should do the trick :)
NOTE: In Debian jessie you might get an error, when running Ctrax, about matplotlib not finding one of its libraries.
File "/usr/lib/pymodules/python2.7/matplotlib/backends/tkagg.py", line 2, infrom matplotlib.backends import _tkagg
ImportError: cannot import name _tkagg
I don't fully understand what the backends of matplotlib are, but one workaround for this is to use another backend. This can be done by editing matplotlib's config
sudo nano /etc/matplotlibrc
and changing the line backend : TkAgg so that it reads:
backend : QT4Agg
This should do the trick.
Xeon 5620 lm-sensors, problems with coretemp
I post this here because of lack of a better place to get it visible to search engines.
If you are trying to get lm-sensors to work on Debian with a E5620 Xeon or two, you will probably get an error about no sensors found (even after going trough sensors-detect). If you try to manually load the modules required, you will see that an error pops up when trying to load the coretemp module. Something about "devide not found".
The solution is simple, you must install kernel 2.6.37-2-amd64. This cannot be done if you are running either stable or testing. You must use the unstable repositories (http://jaqque.sbih.org/kplug/apt-pinning.html for a how-to) and from there install with apt-get install -t unstable linux-image-2.6-37-2-amd64
This new kernel has a new version of the coretemp module which is capable of dealing with these (not-so-)new intel models.
This might also be necessary for the newer high-end i7 as well as other 5600 series Xeon cpus.
Regards.