Ok, so this wasn’t too hard, but there was a little hiccup and so I thought I’d briefly note down the solution.
The first step is to find the actual driver because the iP4500 model not listed in the standard set of drivers (at least not in mine). Choosing one of the other PIXMA drivers (like the 4100) will only result in blanc pages.
1) Find the drivers on the Canon website (google search for it. I would post the link but the page is currently not working for me, it did so a minute ago though).
There are two files, one is a common driver (file name: cnijfilter-common-2.80-1.i386.rpm) and the other one is the model specific driver (file name: cnijfilter-ip4500series-2.80-1.i386.rpm). They need to be installed in order, so I suggest you also download the instructions, a file called: guideip4500series-pd-2.80-1.tar.tar
The instructions are very clear and come in flavours for Fedora 7, openSUSE 10.3 and Ubuntu 7.04 (all the same file).
2) After the installation I tried to print but without success. Looking at the printer properties (Control Center – Printer – <printer name> (right click) -> Properties) I found the error message:
I did a google search, and the solution is the following (as found on Linuxuser LigLog).
Open a terminal and as root, type the following two commands:
ln /usr/lib/cups/backend/cnij_usb /usr/lib64/cups/backend/cnij_usb
ln /usr/lib/cups/filter/pstocanonij /usr/lib64/cups/filter/pstocanonij
/etc/init.d/cups restart and it should work.
See my former post on “How to access two GTK+ widgets from a single callback function (using libglade)” for a different way of achieving the same thing. However, the method described below is the official way of doing things and thus to be preferred.
GtkWidgets are derived from GObjects. They can be cast back and forth using the
GTK_WIDGET() macros. Use
g_object_set_data() to attach a gpointer and its key to a GObject of your choice (find the definition at library.gnome.org). The pointers can then be retrieved wherever the GObject that they have been attached to, is available. This is done using
g_object_get_data(). Attaching two pointers to two different GtkWidgets to the main window widget, will enable you to call on them from any callback function you use.
I hope the code below may be useful to some people. I am new to GTK+ myself so I am not sure whether this is the best solution, but it is certainly on of the better ones. Other solutions would be to use globals or possibly structs.
What the function does:
It is a simple callback function that has been connected to the GladeXML file by the following line:
glade_xml_signal_connect(gxml, "on_execute_recording_button_clicked", G_CALLBACK(on_execute_recording_button_clicked));
gxml is the main GladeXML file that was created using Glade-3. Look on Micah Carrick’s blog for information and tutorials on Glade.
glade_get_widget_tree() we can get hold of the GladeXML file inside the callback function without using globals. From there is it easy, we simply use the
glade_xml_get_widget() function to create the widgets we want.
Here is the code:
* Function aquires a handle on the GtkProgressBar and the GtkTreeView widget
* then calls a function that works on both widgets.
void on_execute_recording_button_clicked (GtkButton *button, GtkWidget *window, gpointer gptr)
GtkWidget *pbarWidget, *data_viewWidget;
gxml = glade_get_widget_tree(GTK_WIDGET(button));
pbarWidget = glade_xml_get_widget (gxml, "record_progressbar");
pbar = GTK_PROGRESS_BAR(pbarWidget);
data_viewWidget = glade_xml_get_widget (gxml, "data_view");
data_view = GTK_TREE_VIEW(data_viewWidget);
Check out the Processing project!
The website describes it as “[…] an open source programming language and environment for people who want to program images, animation, and interactions.” The things that have been done with it are truly amazing! Check out the exhibition or look at Daniel Shiffman‘s projects!
I am not a big fan of Adobe Flash, but this project is brilliant!! It allows you to create dynamic graphs for a website and unlike Java based applets, it loads quickly and without hassel, even on my Linux machine (Java applets currently not working for me). Go check out the demo at: http://flare.prefuse.org/demo/
SnOil is a physical display based on ferrofluids designed by Martin Frey, a researcher and artist from the Berlin University of the Arts (or “Universität der Künste Berlin”, for those of us who speak German :). It employs ferromagnetic fluid and a matrix of electro magnets to create a display where the individual pixels are shaped by raising the ferrofluid above the electromagnets.
How cool is that! You can play snake on it by using the built in tilt sensors! Check out the video on his website and see how it works.
I am using an interface from National Instruments for the General Purpose Instrumentation Bus (GPIB) and when I tried to execute the program in the terminal, I only got an “Aborted” message back. The program had been working before and still compiled without errors or warnings but it would not execute. The program terminated imediatey after it was called, before even entering main().
The problem lies with the ni-488.2 driver and may be solved by upating the driver. Every kernel update will result in the “Aborted” error reappearing. Every kernel update thus requires an update of the driver if you want to use the ni488 interface in your software.
The steps to take are similar to the initial installation. The following steps are quoted directly from the NI 488.2 README file:
1. Ensure you have installed kernel-source and kernel-syms packages
corresponding to the version of the currently running kernel. You can
determine the currently running kernel version by issuing the command
2. Change the directory to the
<version> corresponds to the currently running kernel version.
make cloneconfig as root to configure the sources for the
currently running kernel.
make modules_prepare as root to prepare the headers for
Now go to
/usr/local/bin and run the “updateNIDrivers” utility as root. That should update your NI driver and remove the problem.
zotero, very neat Firefox extension. It helps one to find and track bibliography references from the web and unlike one of the web-based services, it keeps the data on your hard drive.
Find it at: http://www.zotero.org/
or at: https://addons.mozilla.org/en-US/firefox/addon/3504
Today, while reading up on possible suppliers of HV-supplies, my Adobe Reader complained that it could not read part of a document without the Japanese language extension pack. Very conveniently the pop-up warning message contains the address of the adobe website where one can download the language extension for free (make sure you get the correct file for your version of acrobat reader):
Its a simple matter of unpacking the tar.gz file, entering the created folder (“JPNKIT” in my case) in a terminal window, switching to root and typing:
However, as part of the installation procedure, the install script asks for the correct location of your Adobe Reader installation. Now maybe it’s because I am not a linux Pro, but I did not know which directory the script was asking for. It was not the
/usr/bin/acroread path. After a very unlucky search on google for the correct path, I finally figured it out. The path to use was the following:
The installer finished and I can go on with my work. Maybe someone out there will find this post helpful.