Archive for the 'howto' Category

FOSS in China: Hypotheses

Wednesday, August 6th, 2008

I have spent a bit over three months in China, trying to find out how FOSS is organised and how it’s different in China from what we see the West. When I met Basile two weeks ago in Beijing, we have come up with the following hypotheses:

  • Language is an impediment. Most FOSS activities take place in English.
  • There is no culture of innovation in China.
  • The discussion culture in FOSS projects is too confrontational.
  • FOSS is still too young in China to be successful.
  • There is only little support for FOSS in the Chinese software industry. Piracy has a negative effect on the creation of a proper software industry in general. Customers are not willing to pay for software.
  • Students don’t learn about FOSS at universities and hence don’t know about it.
  • Individuals can’t make money with FOSS in China.
  • Chinese government policies are not favourable towards FOSS.

These hypotheses are an extension to the ones presented in an earlier entry I have posted in February. They are specifically applied to China (because that’s the country I am currently studying) rather than Asia in general, though I do think that most of them could be applied to other countries like Thailand too.

Despite the fact that these hypotheses are rather negative in their formulation and might have some other shortcomings, I believe that they provide a good basis for further discussions. Also, hypotheses are there to be proved or disproved, they don’t need to be valid in the first place.

Why am I posting this?

Because I would like to get some feedback. I would love to know if there is something completely wrong with them, if I have totally missed the point, if I have forgotten something important, or anything else you have thought of while reading them. Please let me know :).

a tiny guide to IRC

Saturday, January 12th, 2008

I was a bit sick for the last couple of days and I still don’t feel like moving around too much tonight, so I figured I might as well come up with a useful blog post. So this is it: a tiny guide to IRC.

There are quite a few good IRC tutorials, but I thought that this might still be useful for someone. I am aware that I am a bit off-topic here, but I couldn’t think of another place to publish it (I know this should probably go in a wiki, unfortunately I don’t have access to one that is appropriate for this kind of content :) ).

The following commands have been tested on freenode, though they might work for other networks as well. I am using the brackets ‘[’ and ‘]’ as placeholders, so this is where your input goes.

talking to the nick name service nickserv

  • register your current nick name:
    /msg nickserv register
  • change your current nick name:
    /nick [nick]
  • recover your registered nick when someone else is currently using it:
    /msg nickserv recover [nick] [password]
  • each time you connect, sign in with your registered nick (most irc clients will do that for you):
    /msg nickserv identify [password]

getting an invitation and using it

  • get an invitation (this is normally done by either asking the channel operator personally to add you or) by sending a message to the channel operator [nick]:
    /msg [nick] [please add me to the channel]
  • invite a user to a channel (only the channel operator will need this command)
    /invite [nick] [#channel]
  • “show” your invitation before joining:
    /cs invite [#channel]

joining a channel

  • just type:
    /join [#channel]

talking to the channel service chanserv

Sometimes you will get the following message:

[#channel]: You need to be a channel operator to do that

These commands might be useful in that case:

  • get channel operator status:
    /cs op [#channel] or /mode [#channel] +o [nick]
  • remove channel operator status from [nick] ([nick] can be you as well):
    /mode [#channel] -o [nick]
  • give voice to [nick] (mainly used on moderated channels, use the option -v to remove voice from [nick]):
    /cs voice [#channel] [nick] or /mode [#channel] +v [nick]

other useful commands

  • change the channel topic:
     /topic [#channel] [this is the new topic]
  • Kicking users:
    /kick user [#channel] [reason]
  • Banning Users:
    /mode [#channel] +b [usermask] [reason]
    
    type "/userhost [nick]" to get the nick's usermask)

irc clients

(See wikihow for a more extensive list)

  • Linux: X-Chat, or the more convenient version XChat-gnome. Pidgin still has some issues with some of the IRC commands, so I’d wait for the bug fixes before using it.

Each IRC client can be configured to display a notification when someone is trying to contact you or even for some specific keywords. Other configuration options include:

  • Use your client with your registered nickname [nick]. Note: the password for your nickname is the nickserv password and not the server password, so watch out for a nickserv password field
  • Autojoin channels on connect: Try right-click on the channel name before starting your search the options menu.
  • No more excuses for not using IRC, innit?

    Web era information management

    Saturday, November 17th, 2007

    I just read the 2006 edition of “L’art de la thèse” by Michel Beaud with the promising subtitle “Comment préparer et rédiger un mémoire de master, une thèse de doctorat ou tout autre travail universitaire à l’ère du Net“. The book is really helpful when writing a thesis, especially as it helps you manage your time and resources. It actually even made me draw up a (kind of) tight schedule for the coming months. But frankly speaking, there is hardly any mention of the “ère du Net” in the book, unless you consider mentioning Google, Yahoo! and several french websites for PhD students as “web era” worthy.

    The book recommends to organise all information collected during research in specific directories on the computer and insists that the directory management is crucial. It doesn’t, however, mention any additional supportive software except for OpenOffice. At that point I would like to propose a (non-exhaustive) list of some “web era” alternatives which can improve if not boost the productivity:

    • Reference management software: Software that allows you to manage your bibliography and other references. Ideally, it lets you import bibliographical references from websites like Google Book Search, Amazon or others. Additionally, it is lets you edit notes, add related weblinks (e.g. the author’s blog), upload files and store them together with the references. Features like tagging, relations, and powerful search mechanisms are definitely a plus. The most important thing about reference management software is that it allows you to export your bibliography in a standard format (like BibTex) and add it to your thesis when you start writing. I recommend Zotero by the way.
    • Note-taking: When writing a thesis, notes are generally taken in a rather random and unorganized way. Therefore, what happens is that you need to reorganise your notes each time you add something. A personal wiki or anything similar allows you to tag and search your notes, so there is no need for reorganisation. A wiki will even allow you to store attachments (or Zotero backups) together with your notes. If your wiki is web-based it also lightens the dependency on your hardware.
    • Bookmarking: del.icio.us. I recommed to install the firefox plugin for del.icio.us as this will allow you to browse and bookmark simultaneously.
    • Todo lists: I am currently keeping my todo list locally in evolution where I can convert emails to tasks. Unfortunately, there is no feature to add a due date to a given taks though. Tadalist allows you to maintain simple web-based todo lists, Backpack is an improved version of Tadalist with Calendar and many additional features (but if you want to use the calendar you have to upgrade your account). Google seems to be implementing something similar for Gmail.
    • I am currently also using other tools like vym for mindmapping, Latex for editing and formatting (especially the memoir class is awesome), and this blog for testing my ideas, but I won’t mention these in detail as this might be a bit too nerdy.

    I believe many non-science students are either not aware of these tools or they feel not confident enough to use them. Anyway, I believe mentioning them in Michel Beaud’s book would distinctly improve it’s usefulness. Of course, tools change, as new ones enter the market and old ones disappear, hence: Why not provide a supplementary website to the book with up-to-date information?

    Building a Linux distribution

    Monday, November 12th, 2007
    “Think of all the activities that must be carried out for any work of art to appear as it finally does. For a symphony orchestra to give a concert, for instance, instruments must have been invented, manufactured, and maintained, a notation must have been devised and music composed using that notation, people must have learned to play the notated notes on the instruments, times and places for rehearsal must have been provided, ads for the concert must have been placed, publicity must have been arranged and tickets sold, and an audience capable of listening to an in some way understanding and responding to the performance must have been recruited.”

    Howard S. Becker, Art Worlds (1982), p. 2.

    One of the main concern of sociology of science and technology is to show that each product (with knowledge being the product of science) is the result of social cooperation and collaboration at each step of the production process. Understanding the production process in detail is thus crucial in order to retrace which (social) decisions have been taken at which point and how they have influenced the current state of the product. Applying Howard S. Becker’s description about the symphony orchestra concert to Redflag or Asianux will require a more thorough understanding of the activities which need to be carried out to build a Linux distribution with support for Asian languages.

    Redflag and Asianux are both Linux distributions, that is a composition of software built from the Linux kernel and a set of additional packages. These out-of-the-box applications allow users to easily setup and install Linux without going through the pain of compiling, installing and configuring all components from source, including the necessary drivers for a particular hardware. Information about how to build your own Linux distribution can be found here:

    HowTo: Installing Redflag Linux with VMWare on Ubuntu 7.10

    Monday, November 5th, 2007

    The following HowTo has been tested on Ubuntu 7.10 using VMWare Server 1.0.3 and Redflag Linux Desktop 6.0.

    Downloads

    Start with downloading the following components.

    Prerequisites:

    • Install build-essential (sudo aptitude install build-essential)
    • Install the xinetd server (sudo aptitude install xinetd)

    VMWare Server:

    Redflag Linux:

    Installation is easiest when you create a bootable CD image from the Redflag iso files.

    VMWare Installation

    The following description can also be found in the Ubuntu tutorials.

    • Extract all the archives to a directory (tar -zxvf VMware-server* ; tar -zxvf vmware*)
    • Run sudo ./vmware-install.pl
    • Select all the default options *EXCEPT* do not compile the modules at this point. (Do you want this program to try to build the vmmon module for your system? NO)
    • Apply the patch by running sudo ./runme.pl to build the vmmon module (answer YES to compile the proper modules).

    At this point, you are ready to launch the VMWare server by typing vmware. Probably, vmware will answer with a message saying that VMWare server is not properly configured. DON’T run the config script as indicated in the message, but remove the folder /etc/vmware/not-configured (sudo rm -rf /etc/vmware/not-configured). Then run vmware.

    Redflag Installation in a virtual machine

    As I couldn’t find a predefined virtual machine for Redflag, I had to create one by myself. The installation on a external hard disk failed twice, so I decided to first install it on my main hard disk and then copy the virtual machine to the external one:

    • Start vmware
    • Choose ‘create a new virtual machine’
    • Choose the operating system that will run in the machine (I chose RedHat Linux because it’s somehow related to Redflag, but I guess any Linux option should work).
    • Memory: Minimal memory requirement is 256M, I created a 500M virtual machine to be on the safe side.
    • Disk: Although Redflag Linux should be able to run on a disk of size 5GB, my first installation was disrupted with a size of 10GB because the installation process was running out of space. With 15GB everything ran smoothly.
    • Complete the creation of the new virtual machine.

    Now you can start installing Redflag on the newly created virtual machine:

    • Launch the virtual machine by choosing ‘power on this virtual machine’.
    • Type Esc while the machine is loading and choose to boot from CD.
    • The CD will then start booting and the installation process begins.

    Possible problem:

    • Anaconda fails to load. An error message saying exec of anaconda failed: Permission deniedinstall exited abnormally is displayed. This is a known issue with RedHat (which uses anaconda as well), see here.
      • try to launch the CD with the option linux allowcddma
      • if it doesn’t work (didn’t for me either), try linux ide=nodma which worked for me.