Planet
Shadow Logs - HOWTO: Linux Container (LXC) on Fedora 12
Those who are familiar with BSD Jails or Solaris Zones might be quite familiar to the concept of OS-level virtualization. The Linux world have several options for this, such as the User Mode Linux (UML), OpenVZ, Linux Vserver, and most recently, Linux Container (LXC).
Unlike the other alternatives, which requires specially patched kernels to run it, LXC got fully functional in the upstream kernel since 2.6.29, which is a plus as it made it easier to deploy it in many prexisting distros which ship 2.6.29, including Fedora - without messing around with the distro packages.
In this HOWTO, I'll guide through the process of deploying your own LXC in Fedora 12, with NAT to libvirt's virbr0
Preparation
(ping me if i forgot to add any packages)
start libvirt so that virbr0 is configured
mount control group in /cgroup
LXC Fedora Script
The
You can grab the script in my FedoraPeople GIT repository here : lxc-febootstrap
Download the script and save it somewhere in you system path.
Creating the Container
The script would install the container rootfs in /var/lib/lxc/rootfs/. So make sure you have enough free space to store it (around 400MB for the base bootstrap). You'll also need approximately 400MB in /var/cache/lxc for the reusable vanilla copy of the rootfs.
Answer the questions from the script, and wait until the process is done. At the end of the process, the script would ask for a password for root. Set it.
Controlling the LXC Container
You can start the container using:
You can start the container in background using:
Stop it using:
Destroy it using:
Connect to a console of the LXC using:
Networking
The
The default configuration of virbr0 (if i'm not mistaken) is that it have dhcp and routing already configured for virtual machines that utilize it. So, networking should JustWorks (unless I missed certain steps in this guide, currently it worksforme).
Thats it .. Enjoy and Happy Hacking :D

Unlike the other alternatives, which requires specially patched kernels to run it, LXC got fully functional in the upstream kernel since 2.6.29, which is a plus as it made it easier to deploy it in many prexisting distros which ship 2.6.29, including Fedora - without messing around with the distro packages.
In this HOWTO, I'll guide through the process of deploying your own LXC in Fedora 12, with NAT to libvirt's virbr0
Preparation
yum install libvirt lxc
(ping me if i forgot to add any packages)
start libvirt so that virbr0 is configured
/sbin/service libvirtd start
mount control group in /cgroup
echo "none /cgroup cgroup defaults 0 0" >> /etc/fstab
mkdir /cgroup
mount /cgroup
LXC Fedora Script
The
lxc rpm provides a script named lxc-fedora to aid creation of lxc container. However, when I tried it, it doesnt quite work. After some googling, I found this guide http://blog.bodhizazen.net/linux/lxc-configure-fedora-containers/, of which, based on it, I've updated the lxc-fedora script accordingly to make it work using febootstrap.You can grab the script in my FedoraPeople GIT repository here : lxc-febootstrap
Download the script and save it somewhere in you system path.
Creating the Container
lxc-febootstrap create
The script would install the container rootfs in /var/lib/lxc/rootfs/. So make sure you have enough free space to store it (around 400MB for the base bootstrap). You'll also need approximately 400MB in /var/cache/lxc for the reusable vanilla copy of the rootfs.
Answer the questions from the script, and wait until the process is done. At the end of the process, the script would ask for a password for root. Set it.
Controlling the LXC Container
You can start the container using:
lxc-start -n <containername>
You can start the container in background using:
lxc-start -d -n <containername>
Stop it using:
lxc-stop -n <containername>
Destroy it using:
lxc-febootstrap destroy
Connect to a console of the LXC using:
lxc-console -n <containername>
Networking
The
lxc-febootstrap script have been configured to make use of libvirt's virbr0. It is a virtual bridge, so treat it like any other networking bridge in Linux. The default configuration of virbr0 (if i'm not mistaken) is that it have dhcp and routing already configured for virtual machines that utilize it. So, networking should JustWorks (unless I missed certain steps in this guide, currently it worksforme).
Thats it .. Enjoy and Happy Hacking :D

Shadow Logs - FOSS.Org.MY Meetup : March 2010
FOSS.Org.MY (formerly: MyOSS) Meetup is BACK!!!! with a new name, and a new format, and new timing!!
We will be having Lightning Talk session after the speaker's talk, if you have anything to share, do contribute to the Lightning Talk.
Facebook RSVP of this event
Full event details, including map
We will be having Lightning Talk session after the speaker's talk, if you have anything to share, do contribute to the Lightning Talk.
==================================================
Open Source Software in Digital Content Creation
==================================================
A general overview of OSS used in Digital Content Creation industries with a focus in animation production from small personal projects to Hollywood production.
==================
About the Speaker
==================
Victor Yap helps companies build cost-efficient production workflow for 3D animation. His current project migrates open source solutions, with programs like Blender to a constantly developing 3D animation environment. Blender is a strong open source contender to mainstream programs such as Maya and Softimage. Armed with an Electronic Arts degree and deeply involved with Open Source Software (OSS) development since 1996, he presently dedicates himself to using open source as a tool for digital content creation. True to the spirit of OSS, he wants to share his experiences, insights and knowledge with everyone.
======
When:
======
Saturday, 20th March 2010
======================
What - Meetup Agenda:
======================
2:30pm - 2:45pm : Registration
2:45pm - 3:00pm : Opening by the organizer
3pm - 4pm : Talk
4pm - 4:30pm : Lightning Talks
4:30pm - 5:00pm: Breakout Session
=====
Cost
====
Free of charge (gratis)
=======
Contact
=======
Mohd Izhar Firdaus Ismail
izhar@foss.org.my
+60172792765
======
Where
======
iTrain (M) Sdn Bhd,
Unit E-7-1, Block E, Megan Avenue 1, 189 Jalan Tun Razak, 50400 Kuala Lumpur, Malaysia
================
About the Meetup
================
This meetup is possible due to the support and facilities provided by iTrain Sdn Bhd (http://www.itrain.com.my/)
Facebook RSVP of this event
Full event details, including map
Shadow Logs - Wizardpen for F12
Updated the wizardpen RPM - added patch for Xorg 1.7. (Yup, i'm 4 months late :P)
Src.rpm here: wizardpen-0.7.0-2.fc12.src.rpm. It worked for me, but your mileage might vary.
Src.rpm here: wizardpen-0.7.0-2.fc12.src.rpm. It worked for me, but your mileage might vary.
Shadow Logs - Event Report : IIUM FOSSDay 2010
Event date: 19th Feb 2010
Location: International Islamic University Malaysia (IIUM)
(I know, I tend to be lazy to write reports, anyway , here goes)

Back on 19th Feb 2010, Fedora-My was invited to IIUM FOSSDay 2010 to give some talks and to handle an installfest. Me (fas:izhar), and Snittit/Zul (fas:sniffit) , Rizal and Meng went there representing Fedora-My.
Sniffit handled the installfest, and I gave a talk based on Shakthimaan's I want 2 do project, tell me what 2 do slides and also a general FOSS talk which introduces what is Free Software and what is Open Source (slides)
Crowd for the talk was rather large, around 20-30 people, and for the installfest was, there was around 10-20 people , came and go. Bunch of Fedora 12 LiveCDs was given out to the crowd during the event, especially to the installfest attendees.

Besides us, the PCBSD-My group and OWASP-My group was there too, giving talks throughout the event. Overall it was a great, got to met some new faces in the local FOSS scene, and lets hope they'll be more involved in the future and lead the future local FOSS scene.

the geeks
Photos of the event available in the this gallery in Fedora-My website. Credits to Rizal for the photos.
- End Of EventReport -
Location: International Islamic University Malaysia (IIUM)
(I know, I tend to be lazy to write reports, anyway , here goes)

Back on 19th Feb 2010, Fedora-My was invited to IIUM FOSSDay 2010 to give some talks and to handle an installfest. Me (fas:izhar), and Snittit/Zul (fas:sniffit) , Rizal and Meng went there representing Fedora-My.
Sniffit handled the installfest, and I gave a talk based on Shakthimaan's I want 2 do project, tell me what 2 do slides and also a general FOSS talk which introduces what is Free Software and what is Open Source (slides)
Crowd for the talk was rather large, around 20-30 people, and for the installfest was, there was around 10-20 people , came and go. Bunch of Fedora 12 LiveCDs was given out to the crowd during the event, especially to the installfest attendees.

Besides us, the PCBSD-My group and OWASP-My group was there too, giving talks throughout the event. Overall it was a great, got to met some new faces in the local FOSS scene, and lets hope they'll be more involved in the future and lead the future local FOSS scene.

Photos of the event available in the this gallery in Fedora-My website. Credits to Rizal for the photos.
- End Of EventReport -
Shadow Logs - ctypes : Loading simple C library in Python 2.5+
Just discovered this when I was glancing through the pystream (a CUDA library for Python) source codes.
In Python2.5+, it is possible to directly load simple C shared libraries from Python without the need for writing C wrappers for it. (SWIG or manually writing one). This can be achieved using the Python ctypes module.
Lets take a simple example:
Compile it as a SO library (ref: Writing and using shared libraries):
Now we got an SO file with a test function, lets load it in Python
Hope this would be useful to someone.
More details : http://docs.python.org/library/ctypes.html
Happy Hacking :D
In Python2.5+, it is possible to directly load simple C shared libraries from Python without the need for writing C wrappers for it. (SWIG or manually writing one). This can be achieved using the Python ctypes module.
Lets take a simple example:
/* test.c */
int multiply(int a,int b){
return a * b;
}
Compile it as a SO library (ref: Writing and using shared libraries):
gcc -c -fPIC test.c
gcc -shared -fPIC -o libtest.so test.o
Now we got an SO file with a test function, lets load it in Python
In [1]: import ctypes
In [2]: libtest = ctypes.cdll.LoadLibrary('/path/to/libtest.so')
In [3]: libtest.multiply(30,99)
Out[3]: 2970
Hope this would be useful to someone.
More details : http://docs.python.org/library/ctypes.html
Happy Hacking :D


