Mumble 1.2 on Ubuntu 9.10 – Karmic Koala

October 13th, 2010 | by | geeky

Oct
13

Here’s How:

sudo sh -c "\
  echo 'deb http://ppa.launchpad.net/slicer/ppa/ubuntu karmic main' \
  >> /etc/apt/sources.list.d/mumble.list"

sudo apt-key adv \
  --keyserver keyserver.ubuntu.com \
  --recv-keys 165B2836

sudo aptitude update

sudo aptitude install mumble

Why MCMC is impotent

September 15th, 2010 | by | geeky

Sep
15

Malaysian Communications and Multimedia Commission (MCMC) has the job as *the* steering force for Teh Internetz in Malaysia. As far as I remember they have the job of regulating the ISPs which they failed at miserably.

Somebody somewhere lately bestowed upon them the role of witch-hunters, moral-police, and National Hypocrites. Which is about all they’re good for anyway. But now they’re bitching about not finding proof? Did you morons even look? Why don’t you start right here, and here. And while you’re at it:

Fix Your Fucking Website

Do you guys understand just how embarrassing it is that the Communications and Multimedia Commission website does not work?

10 bucks says they’ll blame Indonesian hackers soon.

How to test your webcam in Ubuntu

June 8th, 2010 | by | geeky

Jun
08

Testing your webcam is done with mplayer, first though you’ll have to install mplayer as so:

sudo aptitude install mplayer

then fire up mplayer as so but in one line:

mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=200:device=/dev/video0 -nosound

And you SHOULD see your pretty face on the screen. Good Luck.

Collectd Python plugin

April 29th, 2010 | by | geeky

Apr
29

One of the most interesting development in collectd recently (4.9) would have to be the availability of a Python binding. You can find the man page here with some samples.

Another interesting feature available with collectd plugins is the availability to overwrite the `hostname`. This opens up a whole new page to collectd, including what I’m attempting right now which is active checks.

In any case, a sample python plugin which overwrites the `hostname` would look like so:

# Sample Python module to use python plugin 

import collectd

#== Our Own Functions go here: ==#
def configer(ObjConfiguration):
   collectd.debug('Configuring Stuff') 

def initer():
    collectd.debug('initing stuff')

def reader(input_data=None):
    metric = collectd.Values();
    metric.plugin = 'python_plugin_test'
    metric.type = 'gauge'
    metric.values = [100]
    metric.host = 'OverwritenHostname'
    metric.dispatch()

#== Hook Callbacks, Order is important! ==#
collectd.register_config(configer)
collectd.register_init(initer)
collectd.register_read(reader)

Lets assume a few things here:

1. Collectd installation:
/opt/collectd/current/,

2. python plugins
/opt/collectd/current/share/python/.

3. plugin file python_plugin_test.py will be in
/opt/collectd/current/share/python/python_plugin_test.py

The relevant corresponding config in /opt/collectd/current/etc/collectd.conf would look something like:

LoadPlugin python
<Plugin python>
  ModulePath "/opt/collectd/current/share/python/"
  LogTraces true
  Interactive false
  Import python_plugin_test
  <Module python_plugin_test>
    Test "This" "are" "the" "inputs"
  </Module>
</Plugin>

Dont forget to test your plugins by running sbin/collectd -C  etc/collectd.conf -T If this causes nothing to be printed on the STDOUT, that means your plugins are good.

N900 development Part 2

March 2nd, 2010 | by | geeky

Mar
02

Before you continue on reading, understand that a prerequisite is for you to start with part 1 and especially Maemo’s Getting Started guide.

For this guide, I’ll be showing how to create multiple widgets in one window. The code from Maemo provides you one window with one widget (the button). You cannot add on more widgets to the example just like that. Adding >1 widget to a HildonWindow will still allow the program to compile, however if you run it you will have to expect an error message that looks something like “… as a GtkBin subclass a HildonWindow can only contain one widget at a time; it already contains a widget of type …”

So the alternative is to create one vBox (or hBox) and pack all other widgets (including other hBox and vBox) inside of it. The end result from the sample should be an applicati
on with an interface that looks like this

3-button hello world app on N900 emulator

3-button hello world app on N900 emulator

The blog formatting makes it a bitch to paste my code here, so just download the code into scratchbox environment with something like this:

wget http://dartarrow.net/wp-content/uploads/2010/03/hworld.c

You should now be able to compile the program with the following line:

gcc hworld.c `pkg-config hildon-1 --cflags  --libs` -o hworld 

Execute the programe

 ./hworld 

And voila.

Take note of how the hbox is prepared and then packed into the vbox. Understanding the interaction is key to your own gui development with C, GTK, and Hildon.

Credit where credit’s due, I stole and modified the code from Maemo’s Wiki

N900 Development Part 1

February 28th, 2010 | by | geeky

Feb
28

This section shows you how to get started (Your baby steps in N900 development starts by starting up the environment. And gettin some sample codes from the community).

Development for Maemo currently utilizes GTK, so if you’re planning on developing something for Maemo devices I’d recommend you start here and then proceed to the Maemo Wiki.

Step 1 in development is setting up the SDK which can be done by following the guide here or here

If you’ve already done that, then start up Xephyr (and here’s how). From a terminal first startup the SDK

sudo sh -c 'echo 0 > /proc/sys/vm/vdso_enabled'
Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb & 

Go into scratchbox

/scratchbox/login 

Switch to the x86 environment

sb-conf se FREMANTLE_X86 

export the display and start up

export DISPLAY=:2
af-sb-init.sh start 

You will get a screen that looks like this
xephy-n900. Remember to click, click + drag and just play with it as much as possible to just make sure you get familiar with the interface :)

You can then look through this pseudo-maemo-emulator for applications you can install. You can start with the sample widget – the process of which is nicely documented here. Or better yet, write (and compile) your own obligatory Hello World program as documented here

Maemo SDK installation on Linux

February 17th, 2010 | by | geeky

Feb
17

There are 3 Options on how to install the Maemo 5 SDK,
1. The GUI Installer (recommended)
2. Script based installer.
Instruction for both can be found here
3. Manual installation

This is a Manual Installation instruction, covering the installation of Scratchbox, Nokia + Maemo binaries and Xephyr X server – which are the prerequisites for development. The host machine here is Debian based machine. so k/ubuntu will work. I’ve tried this on Kubuntu 9.10 with a 32-bit architecture and can confirmt that it works. I can’t guarantee you it will work on a 64-bit machine.

  1. Install Xephyr
  2. sudo aptitude install xserver-xephyr

  3. Download / Install scratchbox
  4. Note: before you start, take note that scratchbox installs by default in “/scratchbox” so make sure you have about 4GB’s in your “/” partition.
    sudo sh -c 'echo "deb http://scratchbox.org/debian/ maemo5-sdk main" > /etc/apt/sources.list.d/scratchbox.list'
    sudo aptitude update
    sudo aptitude install scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486 scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https

  5. Setup Scratchbox
  6. in the terminal, first make user you are logged in as your default user. Not the root user. And type:
    sudo /scratchbox/sbin/sbox_adduser $USER yes
    sudo ln -s /scratchbox/users/$USER/home/$USER /scratchbox/users/$USER/home/user
    This is optional, But I’d do it anyway just in case : sudo sh -c 'echo "nameserver 8.8.8.8" >> /scratchbox/etc/resolv.conf'
    sudo sh -c 'echo "nameserver 8.8.4.4" >> /scratchbox/etc/resolv.conf'

  7. Setup Mamemo Packages
  8. You will need to ensure:
    1. your group membership is registered in the current terminal
    2. VDSO support is disabled,
    to do so run these in the terminal: newgrp sbox
    sudo sh -c 'echo 0 > /proc/sys/vm/vdso_enabled'

  9. Log into scratchbox environment
  10. /scratchbox/login If this works, you will be inside of the scratchbox environment; and you will see something this in the terminal: [sbox->:~]>

  11. Configure the scratchbox x86 and armel target as such:
  12. sb-conf st FREMANTLE_X86 -c cs2007q3-glibc2.5-i486 -d perl:debian-etch:doctools:svn:git -t none
    sb-conf st FREMANTLE_ARMEL -c cs2007q3-glibc2.5-arm7 -d qemu:perl:debian-etch:doctools:svn:git -t qemu-arm-sb
    it is safe to ignore the warnings here.

  13. Now download the rootstraps:
  14. wget http://repository.maemo.org/stable/5.0/armel/maemo-sdk-rootstrap_5.0_armel.tgz http://repository.maemo.org/stable/5.0/i386/maemo-sdk-rootstrap_5.0_i386.tgz
    If networking doesn’t work inside of scratchbox, check your DNS server settings. Unfortunately there’s no `ping` inside of scratchbox so the only way to do this is to edit /scratchbox/etc/resolv.conf from OUTSIDE of scratchbox and paste the following:
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    From inside scratchbox, paste the same lines to “/etc/resolv.conf”

  15. Now switch to the x86 target and install the binaries,
  16. sb-conf se FREMANTLE_X86
    sb-conf rs maemo-sdk-rootstrap_5.0_i386.tgz
    sb-conf in -edFL

  17. Add the nokia repos
  18. You’ll need to do some apt trickery here for maemo related items. So first accept the EULA here and copy the URL, paste the it into /etc/apt/sources.list (inside scratchbox) and then:
    apt-get update
    fakeroot apt-get install maemo-sdk-debug nokia-binaries nokia-apps
    Keep the url, you will need it later on in this installation

  19. fix the scratchbox symlinks
  20. According to the instructions from maemo you will need to remove a symlink and replace it with a folder so do this in the terminal: rm /targets/FREMANTLE_X86/opt
    mkdir /targets/FREMANTLE_X86/opt

  21. repeat the same for armel architecture
  22. At this point the x86 target is setup, you will need to do the same for the armel target.
    edit the file /etc/apt/sources.list and paste the URL that you got previously after agreeing to the EULA
    sb-conf se FREMANTLE_ARMEL
    sb-conf rs maemo-sdk-rootstrap_5.0_armel.tgz
    sb-conf in -edFL
    apt-get update
    fakeroot apt-get install maemo-sdk-debug nokia-binaries nokia-apps
    rm /targets/FREMANTLE_ARMEL/opt
    mkdir /targets/FREMANTLE_ARMEL/opt

  23. Startup Xephyr, with the x86 targets pointing the output to it
  24. export DISPLAY=:2
    af-sb-init.sh start
    And from OUTSIDE the scratchbox environment: Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb & And you will be greeted with a very reassuring emulator-like environment emulating the Maemo 5 on a Nokia N900 :D

DailyChilly recovery after pwned

February 14th, 2010 | by | geeky, non geeky

Feb
14

Disclaimer: I’m not encouraging breaking and entering or defacing other peoples websites. Regardless of how dumb they may be or how tempted you are to show your l33t-ness
So the Daily Chilli was pwnd at sometime before Sun Feb 14.

Daily Chilli in all its pwnness

Daily Chilli in all its pwnness

This was taken from my Mum’s PC on her brand new Zen theme. Don’t laugh. This was about 12:30am

Daily Chilli Downtime message. Uber coolness

Daily Chilli Downtime message. Uber coolness

Screenshot from my N900. Timestamp is about 1:30am

Daily Chilli - Reinstallation of the CMS

Daily Chilli - Reinstallation of the CMS

By this time I was on my Laptop, and was trying to see if they got their site backup, and was greeted with this. If you notice, the only thing I’d be able to click is “Next” so I did.
Joomla DB installation? I think...

Joomla DB installation? I think...

I can’t imagine what the administrators must be thinking, doing this so publicly on a public website. The only thing I could deduce was that the sysadmins sucked. Which could only mean one thing. There will be a phpMyAdmin somewhere. So I looked for in the standard locations and found
yes. we all need phpMyAdmin (PMA). Definitely.

yes. we all need phpMyAdmin (PMA). Definitely.

Compaq CQ40 Wireless Driver

February 11th, 2010 | by | geeky

Feb
11

This did not work out-of the box for me with Kubuntu 9.10.
`lspci` showed me that the wireless device was:
03:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
This is messed up. The driver provided by the manufacturer worked fine with the previous kernels and the previous releases of kubuntu (kernel 2.6.28 ). After some googling I found a broadcom driver in the Ubuntu ‘restriced’ repos which is provided by the package `bcmwl-kernel-source`.

So if you have the “restricted” repositories turned on in your machine this will work fine. You’ll just need a reboot sudo aptitude install bcmwl-kernel-source

What you need to know about the Nokia N900

February 8th, 2010 | by | geeky

Feb
08

Alright my full post on this is really long so here’s a minified version with links to the full text. I never wanted this to be a simple list, because I don’t feel it does justice to the product. So if something mentioned here is new to you, find time to read the full text.

1. the Nokia N900 is not a smartphone read more…
2. It’s not meant to give you “web-like” experience read more…
3. It is not sexay read more…
4. It uses a resistive screen read more…
5. The display is almost entirely landscape read more…
6. The Hardware Keyboard is pretty small read more…
7. Choices of available apps are small and scattered read more…
8. Social Media integration isn’t quite there yet read more…
9. TFT LCD and not AMOLED read more…
10. OGG support is not default read more…
11. The MyDocs partition is on vfat read more…
12. Pluging in the N900 to your laptop will unmount ‘MyDocs’ read more…
13. The Battery life is just as expected (approx 6 hours). read more…
14. It runs on the `armel` architecture and not `arm` read more…
15. Multitasking is awesome read more…
16. The peripherals included are of pretty high quality read more…
17. The hardware is deceptively great read more…
18. Almost anything from linux – now at your palm read more…
19. Yes a terminal comes preinstalled read more…
20. You really own your phone read more…