I just bought a "Brother DCP-385C" printer.
After going to the constructor's website, I downloaded 4 packets
(2 for the scanner, 2 for the printer). I did what they advise to install
them and everything was fine after this!
So, Brother doesn't muck about Linux and Linux users.
A big thank you to Brother and all its employees.
I will definitely recommend their products to my friends.
How to have a Japanese desktop on your Linux/Ubuntu box?

Here is what I did in order to have an English-installed system be like a complete japanese one for specific users.

I installed all of these packages (with aptitude install):

language-pack-gnome-ja
language-pack-gnome-ja-base
language-pack-ja
language-pack-ja-base
language-pack-kde-ja
language-pack-kde-ja-base
language-support-extra-ja
language-support-fonts-ja
language-support-input-ja
language-support-ja
language-support-translations-ja
xfonts-intl-japanese
xfonts-intl-japanese-big

Some other packages will be installed due to dependencies found by aptitude.
Then, for the users who want to have their GUI all in Japanese, just put the following line in their ~/.profile file:

LANG=ja_JP.UTF-8

I use this for my Japanese learner user account, and some Japanese friends using my computer use it also in their user account and are perfectly happy with it.
Here is a list of books I think anyone should read if he/she is serious about becoming a professional software engineer.
People come out of university with or without having read some of these books, I met someone who after several years as a professional programmer didn't know what was a hash table... These books will allow you to go far beyond what you learned during university:


  • Books about learning to program:
Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)
by Harold Abelson, Gerald Jay Sussman
Comment: "A great book to learn computer science from the very beginning."

The Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt, David Thomas
Comment: "All the good programming practices are inside."


  • Books about the Unix way of doing things:
The Practice of Programming (Addison-Wesley Professional Computing Series)
by Brian W. Kernighan, Rob Pike
Comment: "Beautiful code in there."

The Art of UNIX Programming (Addison-Wesley Professional Computing Series)
by Eric S. Raymond
Comment: "Very deep overview of what makes the unix style, strength and beauty."

In the Beginning...was the Command Line
by Neal Stephenson
Comment: "A science-fiction writer has his words to say on the traditional and most efficient way to interact with a UNIX machine. I loved this book, it is so true."

Unix Power Tools, Third Edition
by Shelley Powers, Jerry Peek, Tim O'Reilly, Mike Loukides
Comment: "Learn tips and tricks from top experts.
And don't forget to share experience with your colleagues: at some point this is one of the best ways to progress in UNIX / Linux.
"


  • Books about projects and life in a company:
Peopleware: Productive Projects and Teams (Second Edition)
by Tom DeMarco, Timothy Lister
Comment: "Whatever the technology, what's important is your people. Learn how to build and keep highly efficient teams through this book. One of my favorites."

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
by Frederick P. Brooks
Comment: "A classic."


  • Books about security:
Beyond Fear: Thinking Sensibly About Security in an Uncertain World
by Bruce Schneier
Comment: "Very high level security course."

Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition
by Bruce Schneier
Comment: "The bible of the OpenBSD developers.
Starting from the very first pages you will learn an unbreakable encryption algorithm: the one time pad.
"


  • Books on A.I. / Robotics:
Artificial Intelligence: A Modern Approach (2nd Edition) (Prentice Hall Series in Artificial Intelligence)
by Stuart Russell, Peter Norvig
Comment: "A reference book, covers also some robotics vision-related topics.
Drawback: only US-focused. Research from any other country is never mentioned.
"
Thursday, Mar 5


  • Books on specific programming languages/libraries:
Programming in Haskell
by Graham Hutton
Comment: "Good introductory book to Haskell and functional programming"

C Pocket Reference
by Peter Prinz, Ulla Kirch-Prinz
Comment: "short and clear."

C++ Pocket Reference
by Kyle Loudon
Comment: "Definitively shorter than Stroustrup's."

STL Pocket Reference
by Ray Lischner
Comment: "I really dislike the STL online documentation.
This book will answer your questions sharply and seat on your desktop.
"

Awk
by Edgar Aho
Comment: "awk stays one of my preferred unix tools."

sed & awk
by Dale Dougherty, Arnold Robbins
Comment: "If you want to upgrade your shell scripting skills without having to dive into Perl, this is the book."

My .Xresource file:

Emacs.toolBar:off
Emacs*font:9x15
Emacs*foreground:Wheat
Emacs*background:DarkSlateGray
;; My ~/.emacs config file

;; comfortable code
(global-font-lock-mode t)
(setq transient-mark-mode t)
(show-paren-mode t)
(column-number-mode t)

;; allow using a wheel-mouse
(mouse-wheel-mode t)

;; M-g does something useless by default
(global-set-key "\M-g" 'goto-line)

;; reverse of \C-c\C-c (comment out region)
(global-set-key "\C-cu" 'uncomment-region)

;; easy acces to cursor position saving into registers
(global-set-key "\C-xp" 'point-to-register)
(global-set-key "\C-xj" 'jump-to-register)

;; enable upcase-region command C-x c-u
(put 'upcase-region 'disabled nil)
(put 'downcase-region 'disabled nil)

;; silent bell
(setq visible-bell t)

;; enable use of the emacsclient command
(server-start)

;; ocaml mode
(setq load-path (cons "tuareg" load-path))
(setq auto-mode-alist (cons '("\\.ml\\w?" . tuareg-mode) auto-mode-alist))
(autoload 'tuareg-mode "tuareg" "Major mode for editing Caml code" t)
(autoload 'camldebug "camldebug" "Run the Caml debugger" t)

;; got from: http://www.cgd.ucar.edu/cms/processor/archive/samples/\
;; unsupported/processor-tools.el
(defun kill-trailing-whitespace ()
"Eliminate trailing whitespace"
(interactive)
(save-excursion
(goto-char (point-min))
(while (re-search-forward "[ \t]+$" nil t)
(delete-region (match-beginning 0) (point)))))

# my ~/.bashrc config file

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history.
export HISTCONTROL=ignoredups
# ... and ignore same sucessive entries.
export HISTCONTROL=ignoreboth

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
;;
*)
;;
esac

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ] && [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
fi

# personal stuff after here ---------------------------------------------------

alias rm='rm -i'
alias mv='mv -i'
alias ll='ls -l'
alias la='ls -la'
alias lrt='ls -lrt'
alias igrep='grep -i'
alias svnstat='svn status | egrep -v "^\?"'
alias svndiff='svn diff | kompare -o -'
alias emacs='emacs --fullheight --geometry 80'

# edit within a server emacs
function em () {
emacsclient --no-wait $*
}

# list haskell source files
function hsls () {
find . -regex ".*\.hs"
}

# grep in haskell source files
function hsgrep () {
grep $1 $(hsls)
}

function hsigrep () {
grep -i $1 $(hsls)
}

function hsagrep () {
agrep -3 $1 $(hsls)
}

alias ocaml='rlwrap ocaml' # adds line editing to the ocaml interpreter

export EDITOR=emacs
export PAGER=less

# svn side-by-side diff
function sbsdiff () {
svn --diff-cmd "diff" \
--extensions "--suppress-common-lines -y --width=160" diff
}
a list of open source project ideas
  • PON: make the unix 'pipe' call work over the network (last time I ckecked there was a Ph.D. or training subject like this at Andrew S. Tanenbaum's laboratory)
  • SafeStrLib: a simple C library for strings (a friend of me advised to look at the GNOME library instead)
  • Unpiggyfy: cf. http://savannah.nongnu.org/projects/unpiggyfy/


LINUX SOFTWARE ENGINEER

currently living in Tokyo

Date of birth: 1980
French
national
contact e-mail:
f.b-w [at] laposte.net

Professional goal

Software engineer: I like to work in small teams involved in
delivering high quality software.

I am deeply interested into system programming, artificial
intelligence and robotics.

I am a great fan of the open source movement and tools.

Alternatively, I could also teach (Linux, C or Java programming) or even perform
Linux system administration (would need mentorship for complex
network administration or very large scale sites).

I arrived in Japan on the 1st of January 2009. I hold a
working holiday visa (allowing full time employment) and target to
live during years in Japan.


Work experience

  • 2009 :
    Starling Software, Tokyo. I worked as a freelance programmer
    on an algorithmic trading engine written in Haskell
    (strongly-typed and purely functional programming language) under
    Ubuntu Linux, 2 months.

  • 2008 :
    INRIA, Orsay, France. Design and implementation of a Desktop Grid
    simulator
    , final project demo for the grid4all European project
    (distributed video transcoding on top of nodes from the
    French grid5000 infrastructure), Java, Bash and many open
    source tools under various Linux environments, 11 months.

  • 2006 :
    IAS, Orsay, France. Ground segment software for the Planck European
    space project, C under Linux with a soft real-time
    constraint, involved network programming, 18 months.

  • 2005 :
    "FrĂȘt SNCF", Paris, France. Rule-based programming
    of the core billing engine, ILOG JRules and Java under Windows XP,
    13 months.

  • 2004 :
    IRIT-UPS laboratory, Toulouse, France. Correction and extension of a
    multi-agents constraint solving engine, Java under Eclipse
    and Windows XP, 2.5 months.

  • 2004 :
    BEV Development S.A., Paris. Realization of a real-time tracking
    system for simple objects, C under Mandrake Linux, 2.5 months.

  • 2003 :
    "National Institute of Advanced Industrial Science and
    Technology", Tsukuba, Japan. Correction and extension of a
    simultaneous localization and map building software for a
    mobile robot, C++ under Red Hat Linux, 6 months.

  • 2001 :
    LAAS-CNRS, Toulouse, France, robotics and artificial intelligence
    team, conception, realization, test and tuning of an embedded
    software
    for 2D map building on a mobile robot with a
    sonar belt, C under Red Hat Linux, 4 months.

Diplomas

  • 2003-2004 :
    Master's degree in Artificial Intelligence ("DESS IA"),
    Paris 6 university, with honors.

  • 2001-2003 :
    Bachelor of Science in robotics, computer science and
    artificial intelligence ("IUP GMI"), Toulouse 3
    university
    .

  • 1999-2001 :
    two years university training specialized into computer science
    ("DUT informatique"), Toulouse 3 university.

Technical knowledge

  • Languages :
    Java, Haskell, C++, C,
    Objective Caml, Python, Prolog, Bash, Motorola 68000 assembly
    language (would be interested in Scheme/Lisp, Ada).

  • Design :
    UML.

  • Operating systems : Linux/Unix and the GNU software tool-chain
    (valgrind, gcov, gprof, gdb, CVS, subversion, doxygen, emacs, sed,
    awk), beginner with OpenBSD. Able to do Linux system administration.

  • Various :
    JUnit, log4j, Netbeans, Eclipse, DESMO-J (a framework for
    Discrete-Event Modeling and Simulation).

Extra curricular activities

Aeronautics
(gliding license, beginner in para gliding), cinema (Asian and
artistic cinema), literature (science-fiction fan).

Languages

  • French:
    mother tongue.

  • English:
    fluent, 830/1000 at the TOEIC test in 2001. Used daily at work since 2006.

  • Japanese:
    Japanese Language Proficiency Test (JLPT) level 3
    received in march 2009. I did 2 months intensive Japanese at
    Shinjuku Nihongo Gakko during January and February 2009 in Tokyo.