Freemedia in Australia

I haven’t been active with the Freemedia programme since moving to Australia towards the end of last year. I’ve been quite busy with university and settling down. Now that I’m no more new here, I’m going to try and restart my contribution to the freemedia program and send out DVDs here. The demands here are quite small if you compare them to the volume of requests that India receives. If you’re in Australia and need a home burnt Fedora DVD, drop me an email at ankursinha AT fedoraproject DOT org and I’ll get back to you.

I’m glad to see Frank and the other freemedia folks working to keep the freemedia program running. Thanks guys, you rock!

Nomination period for fedora elections closes today! Have you nominated yet?!

Attention all fedorians!

This is an urgent but gentle reminder that the nomination period for the elections ends today (November 13 at 2359 UTC). Please update the wiki page with  your nominations before the nominations period ends later today if you’d like to be considered and voted for! All the best!

Fedora Project Board (two seats)
FESCo (Engineering) (four seats)
FAmSCo (Ambassadors) (three seats)

I’d also like to remind you that that the questionnaire will close today as well: https://fedoraproject.org/wiki/F19_elections_questionnaire

Please regard this as critical:
– We currently have ONE nomination for FAmSCo (to fill three seats?), THREE for FESCo (to fill four seats?) and *NONE* for the Fedora Board (to fill two seats!).
– We have no questions in the questionnaire at all. 😦

Updating your BIOS when you’re not running Windows

Earlier today, I attempted to update my BIOS to the latest version that Dell provides me with. My system doesn’t suspend correctly, and this was an attempt at covering all my bases that Adam suggested in this bug report. Alas, it didn’t work – my system still doesn’t suspend correctly. Nevertheless, it did take me on a wild goose chase to figure out how to actually update the BIOS since I lack a Windows installation on my system.

What appeared to be the easiest way was using System Rescue CD. This didn’t work for me somehow. I don’t have any blank CDs around, and it wouldn’t boot from the USB that I created. I looked around to try and use it directly with Grub2, but it booted up a linux distribution while I need FreeDOS. I tussled a little with it and then gave up. I decided to use a FreeDOS live cd. Here’s a blog post where Derek’s created an image that you can simply dd on to your USB. It worked like a charm.

In a sentence: download the image, extract it from the bz2 archive, dd it to your pen drive, copy the BIOS exe file to it, reboot, run the BIOS update.

Simple isn’t it? Yup.

Beamer: making hand outs for your presentations

It’s often handy to create hand-outs for your presentations. (I need them for my master’s assessments at the moment). It’s really simple to make hand-outs. What we do is first create a presentation, like we normally do. Then, since the presentation generally contains overlays (the \pause command and more), we make another version where these commands are ignored. That’s the most of it. I go ahead another step and create another TeX file to print multiple slides in a single page.

As you’ll notice, between the presentation, and it’s hand out version, the only change is in the \documentclass options, where you add a “handout” option in the latter. Instead of copy pasting and keeping these two files in sync, a smart thing to do is to write everything other than the \documentclass line in another text file and then simply include it using an \input command in two files for the two versions.

So, the files you have are:

  1. mypresentation-src.tex: the file that contains your entire presentation, other than the \documentclass line
  2. mypresentation.tex: this file will contain the \documentclass line for your presentation
  3. mypresentation-hand-out.tex: this file contains another \documentclass line for your presentation’s hand-out version where overlays are ignored
  4. mypresentation-hand-out-print-multiple.tex: this file will generate a pdf file with multiple slides on a single page

This is what your mypresentation-src.tex file looks like (Observe the lack of a document class definition):

\usepackage{color}  

% links, urls, refs
\definecolor{links}{HTML}{2A1B81}
\usepackage{hyperref}
\hypersetup{colorlinks,linkcolor=,urlcolor=links}

% graphics
\usepackage{graphicx}

% algorithm
\usepackage{algorithmic}

\usepackage{textcomp}

% beamer theme
% use defaults for theme
\usetheme{Berlin}
\usecolortheme[RGB={41,65,114}]{structure}
\logo{\includegraphics[width=2.5cm,angle=0]{uts-logo.jpg}}

%% title %%
\title{Week review: October 2 2012} 
\author[Ankur Sinha]{Ankur Sinha\\UTS ID: 11484312}
\institute{University of Technology, Sydney}
\date{October 2 2012}

%% document begins %%
\begin{document}

%% title frame %%
\begin{frame}
\titlepage

\end{frame}

.....
..
..
...
\end{document}

This is how your mypresentation.tex file looks like:

\documentclass[usenames,dvipsnames,10pt]{beamer}
\input{mypresentation-src.tex}

This is how your mypresentation-hand-out.tex file looks like (Observe that the only addition is the “handout” option):

\documentclass[usenames,dvipsnames,10pt,handout]{beamer}
\input{mypresentation-src.tex}

This is how your mypresentation-hand-out-print.tex file looks like:

\documentclass[a4paper]{article}
\usepackage{pdfpages}

\begin{document}
\includepdf[pages=1-last,nup=2x2,landscape=false,frame=true,
noautoscale=true,scale=0.6,delta=5mm 5mm]{mypresentation-hand-out.pdf}
\end{document}

You need to compile the 3 TeX files (not the mypresentation-src.tex file). Note that the -hand-out-print.tex file should be compiled last, since it requires the hand-out.pdf file. It’s pretty simple. I ran in to all of this via Google of course. I just thought it’d be nice to have it all in one place. Hope it helps. Cheers!

Compiling the cp210x module for use with the NAO

I’ve been recently working on trying to get a NavChip to work with the NAO. (The NAO is very cool btw!) To start with, I was delighted to see that the NAO uses a Linux OS on it’s Geode processor. (The newer NAOs are using an Atom processor though) The issue was that this kernel that Aldebaran (the manufacturer) uses is customized. Specifically, it lacks the cp210x driver that the NavChip requires. I’ve been trying to build/compile this driver for the past week, and the one before. I’m really not a kernel developer. In fact, this is the first time I’ve come close to touching the kernel sources and well, running make!

Anyway, as a note to self (yes, another!), and as some documentation for folks who’d try to use the NAO with more hardware, here’s what I’ve done so far. I haven’t tested the final module yet, but it looks okay. I’ll only know tomorrow when I try it out on the robot if I were successful.

Download the Nao kernel from Aldebaran’s github. Please be careful. It has two branches. Download the one for your Nao: either the Geode or the Atom version. Download the cp210x source from the Silabs page. Untar it in your kernel source tree.

Get the kernel configuration from the Nao. It should be /boot/config on the file system. Copy this to your downloaded kernel source tree as .config (DOT config).

Run:

make oldconfig ARCH=i386 #My system is an x86_64, so the ARCH argument is needed

The Nao’s kernel is 2.6, so you need to use the Makefile26 file in the cp210x directory. Run configure. It’ll create a defaults.mk file. Modify this file to correct the KVER etcetera variables (You can also modify the configure script instead. Whatever you prefer):

# Makefile.config
# Automatically generated
KVER=2.6.29.6-rt24
KVER1=2
KVER2=6
KVER3=29.6-rt24
EXT=.ko
KOFILE=cp210x.ko
KDIR=/home/ankur/Documents/work/code/NAO/OS/linux-aldebaran
MODFILE=cp2101.ko
MODDIR=/home/ankur/Documents/work/code/NAO/OS/linux-aldebaran
PWD=/home/ankur/Documents/work/code/NAO/OS/linux-aldebaran/cp210x-3.1.0/cp210x

In the Makefile, under “default:”, I added ARCH=i386 (again, since my host is an x86_64). Now, just run

make

That should be it. Check if your module is okay using “file” and “modinfo”. It looks okay. I’ve got to try it on the Nao tomorrow though to confirm.

Using SURFmex with Octave

This isn’t so much as for others as it’s a “note to self”.

I’ve recently begun actual work at my research course. Obviously, I prefer to use Octave to Matlab. Here’s how to use the SURFmex toolkit for Matlab with Octave:
Download the source and unzip it someplace. You can get rid of the mexw{32,64} directories, since they’re binaries for Windoz.
Create a folder called mex, just to keep all our output mex files together.
Install the opencv-devel package. On fedora:
$ su -c 'yum install opencv-devel'
Then, compile the cpp files into mex files:
$ mkoctfile-3.6.2 --mex -v `pkg-config --libs --cflags opencv` surfpoints.cpp
$ mkoctfile-3.6.2 --mex -v `pkg-config --libs --cflags opencv` surfmatch.cpp
# Move them to your mex folder:
$ mv *.mex mex/ -v
You should now have two mex files generated:
[ankur@ankur SURFmex-v2(master *%)]$ cd mex/
[ankur@ankur mex(master *%)]$ ll
total 484
rwxrwxr-x. 1 ankur ankur 219400 Aug 22 11:20 surfmatch.mex
rwxrwxr-x. 1 ankur ankur 273339 Aug 22 11:20 surfpoints.mex
That’s pretty much it. All the hints were in the make.m file really.
To run one of the examples:
Copy an image to the examples folder and name it peppers.png. This appears to be one of the default images that matlab provides.
$ cd examples/
octave
octave>
octave> addpath ../mex  % add the mex files to path
octave> addpath ../common  % add the common functions to the path
octave> path % check your path
octave> small_example
Your screenshot won’t look like this. I’ve modified the example a little to use different images.
SURFmex example image

What have I been upto?

Quite a bit actually! I’ve recently moved to Sydney to pursue a Masters of engineering (research) course. It’s a two year course, which will probably be followed by a Ph.D. I guess I’m in this for the long haul now. I’ve been thinking of blogging since I got here. All the work and running around has sucked up all my time though. Today, when I finally decided to finish this task, I’ve forgotten everything that I wanted to write!

Firstly, Fedora related:

I was shortly away from Fedora. The entire period was weird, because I’m so used to working on random Fedora stuff, even if it’s just hanging out on #fedora. I’ve worked and finished up my backlogs: all my FTBFS bugs have been squashed. I’m reviewing libfreenect which is a great package for folks interested in using the kinect to do cool stuff. I haven’t been able to attend any of the APAC Ambassador meetings yet. The time zone makes them on Saturday afternoons. I’m either out or sleeping at the time. I’m looking to get back into marketing a little. Ruth is working to bring back marketing meetings, which is GREAT (Come join in!). I’m going to try to bring back the Fedora pamphlet which we’ve missed for previous releases.

Sydney related:

It’s a huge change from India. I mean, as I mentioned to bochecha earlier over the IRC, the streets are almost empty at times. That’s a rare sight in India. The place is a little expensive in comparison. (I’m still in the habit of converting my prices to INR. I’ll lose it in a while as I get settled.) The university has taken great pains to help us international students get settled too, so it’s all been smooth sailing really. The people here are really friendly, always ready to help :). Accomodation is generally a hassle, but I was brainy enough to get my hands on university housing as soon as I heard of it.
I’ve just only begun working on my thesis subject. It’s related to robot navigation. I still need to review literature in the field and find a gap I want to plug. I’m working on it. I get weird ideas all the time. It takes a while to follow them up and see if they’re feasible though (None of them have been feasible yet). I’m also helping with some research my supervisor’s other students have taken up related to intertial navigation systems. I need to use a sensor for this purpose. I really haven’t any background in electronics, but I’m learning quickly. The fedora electronics lab mailing list has been helpful too (Thanks!). Tomorrow I’m supposed to work with the NAO. It’s really great to be able to work with all this hardware. The one thing that bugs me is that most of this is properitory software/hardware. You need to purchase everything, from drivers, simulators, you name it. NAO is going to be open sourced according to this press release, but that’s the last I’ve heard about it. All the software and hardware specifications is still properitory and requires an NDA. (Interestingly, the NAO uses linux as it’s OS). They do support Linux, but the support is really limited compared to their support for Windows. Maybe we need to focus on research tools a little more? A majority of the researchers seem to use Windows with Matlab installs. (That’s irritating too). I’m trying to port all the existing Matlab code to C/C++ just so I can continue using my Fedora system.

I’ve fortunately found football and beer people, so I do have some recreation. There are music clubs etcetera that I could join too. I haven’t join any though, not knowing how much time I’ll have research in the future. I’m still scouting the area for cheap pubs that play rock though. I guess it’ll take me some time to find those.

My darling sister cooks and gives me tiffins every week, so I pretty much don’t have to cook or spend extra on eating out. Perks of having an elder sibling 😉

Ok. I can’t think of anything else at the moment! The post is random enough! Have fun! I’ll see you folks around Fedora! Cheers!