Desk in Japan at home

June 24th, 2009

As I need to be confortable when working at home (or when playing games), I bought a desk and a computer.

Hardware specs:

  • CPU: Core i7 920
  • RAM: 8GB DDR3
  • Hard disk: same disks as in France (3.3TB)
  • GFX: nVidia 9800GT

And the result.

My desk at home with the computer

My desk at home with the computer

Buying and building a computer from scratch can be rather expensive, however it is sometimes required, and is probably less expensive this way than by plane with the outrageous 70 euro per kg imposed by Air France.

3G in Japan with EMobile on Linux

June 21st, 2009

Thanks to EMobile, for a rate as low as 6700円/month, it is possible to have full unlimited 3.5G access (7.8Mbps) almost anywhere in Japan (currently covering 90% of Japan according to their website).

This comes with a D02HW 3G modem. What’s so good with this modem? Pretty easy: connect it on windows. It is detected as a CD-ROM drive at first, and you get the drivers CD just by plugging the usb key. Once you install the driver, you get an application you can run, and you just have to click one button to get online.
So, plug the USB modem, installation program is launched thanks to autorun, install, reboot (heh it’s win32), and get online.

On Linux, it’s not that easy.

First, the fact that this modem identifies itself as a “mass storage device” by default doesn’t makes things easy for linux. You need to manually load the usbserial driver by providing it with vendor/device settings. This is pretty much anywhere.

modprobe usbserial vendor=0x12d1 product=0x1003

With this command (use rrmmod first if you already had usbserial loaded) you’ll get 3 new serial devices (or less, according to some sources on google). The most important one is the first one: ttyUSB0 (unless you already got other usb serial devices).

Now you’ll need a pppd chat script. This one is pretty much easy too in theory, however I felt into a problem that no other source on internet fixed. I first copied my script I use for Orange France, however I didn’t know the APN for EMobile, and it resulted into me being unable to connect at all.
So, here is a chat script that will work and set the APN too:

TIMEOUT 5
ABORT 'BUSY'
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT '+COPS: 0^M'
'' ATZ
SAY "Checking if we have network...\n"
OK-AT-OK AT+COPS?
'+COPS: 0,' ''
OK "ATE1V1&D2&C1S0=0+IFC=2,2"
OK "ATS0=0"
OK AT+cgdcont=1,"IP","emb.ne.jp","",0,0
SAY "Connecting to GPRS/EDGE/UMTS/3G/3G+ ...\n"
OK ATD*99***1#
CONNECT ''

Save it for example as “emobile.chat”. Now comes the pppd command line. The one I use:

pppd connect 'chat -e -s -f /root/emobile.chat' /dev/ttyUSB0 460800 \
        modem user em password em \
        nodetach debug nolock defaultroute usepeerdns usepeerwins \
        noccp

usepeerwins is pretty much useless, but helps avoiding race condition on some modems according to pppd’s manpage (including Huawei E220, which is D02HW’s chipset according to lsusb).

Those options are verbose (you’ll get a lot of stuff you don’t care about when running pppd), and pppd won’t go in background once connected. This allows you to ^C the connection easily.

Arrived in Japan

June 18th, 2009

Can’t post pictures yet as currently 1MB transferred costs me over 13 euro, but I’ll have a real internet connection soon :D

4chan.org getting exposure

June 8th, 2009

As you probably noticed during the past months, more and more light has been given to 4chan.org, which might be called “root of all evil” by some.

Recently, the Time 100 list contained “moot”, the initiator of 4chan (who gets himself known as “Christopher Poole”. While I cannot affirm anything, “Poole” is most likely a reference to the “Pool is closed” meme, which came from a mistake between poll and pool) because of what looks like a hack. Following this, 4chan got increasingly coverage by medias, especially on the “Porn Day“, when tons of pornographic content was uploaded to YouTube (and which is likely to happen again next year).

4chan is also known to be linked to Anonymous and the war against Scientology.

This site has been around for a long time, and is just a place where people can post messages and pictures. Various “boards” exists (most famous being /b/, the “random” board where everything can be posted) covering many subjects like animes, trains, etc…
What made 4chan become the 4chan it is now is probably the fact that moderation is quite selective. Only a few kinds of posts are getting deleted (mostly pedophilia, and other illegal things of the same kind) and most other statements can exist, including racism, animal cruelty, death threats, etc…

Because of its increased exposure, 4chan is also getting targetted by spammers, with is quite successful on other boards than /b/ (where posts tend to disappear after a few minutes at rush times).

From times to times, someone’s post or something gets elected to the rank of “meme“, and will then exist for eternity, getting ready to get displayed in any situation, related or not. Memes have become an alternate culture, where people not aware of those are outcast (usually “newfags”) and have only two choices: leave or adapt.
While some memes are pretty much innocent, others can be seen as offensive by some people. There is no formal way to make a “meme”, it only depends on how many people will adopt something, and use it (for example, when closing a poll, 4chan administrator moot wrote “pool is closed”, leading to a famous meme).

Sometime someone will even write something like “Today I will take a gun, go there and kill everyone in sight, then kill myself”. This kind of post is common on 4chan, and is sometimes followed by real action, leading the original poster being acclaimed as an “hero”.

To sum it all, 4chan is a place where anyone can anonymously write about what they think, who they want to kill or are about to kill, what they think of various minorities, making contests of most shocking pictures, post tons of pornographic contents or requesting it, initiate DDoS attacks, etc… and getting aclaimed for it by other people, and sometimes even getting support.
This might sound like hell for some, or heaven for others, and while some might think “free speech”, it is not either (a “normal” post will not get any support, and will quickly fall to last page, then get 404′d). This does not give to the world a nice image of America, however any action against the site will most likely result in unforeseen consequences.

All memes must not be thought as bad either, as you can get nice things like some cheezburger (this is unfortunately too commercial now).

Saving a Seagate disk

April 29th, 2009

Today at work, we had a broken seagate hard disk (”BSY” status), we decided that we needed to save it because we felt the data in there was important.

Fun was there, as well as some work for a geek armed with a business card, some wires and a torx screwdriver.

Hard disk and the usb serial adapterTools used to save the hdd

五OS Success on Panasonic CF-R6

April 26th, 2009

After a few weeks of porting 五OS to 64bits and finally managed to get it running on QEmu, I tried running the resulting OS image on a real piece of hardware: my Panasonic CF-R6 from GeekStuff4U.

Of course as I don’t want to bother yet with USB drivers (that’s next in line in the TODO list, but for now we can somewhat survive without), I decided to use our blkdev/bios driver (legacy 16bits driver via BIOS interrupts, using core/x86emu 16bits emulator).
Same with graphics mode, don’t have a Intel driver yet, so we’ll use display/vesa_legacy 16bits driver (which also makes use of core/x86emu 16bits emulator to get graphics adapter’s bios working).

At first, I found out that the new compact bootloader wasn’t working properly. This was fixed by enabling Unreal Mode (a way of tricking the CPU into thinking ds and es segments are really mapped in 32bits mode while still being in 16bits mode).
The next problem I encountered was when the “hard disk” (the usb drive, in fact) was detected, we couldn’t display the size. I tracked this to some weird bug in our current printf() implementation that makes a real system freeze when displaying a float (it works seamlessly on virtual system). Removing the display of detected disk size fixed this problem too, but it’s not a permanent fix.

Once those two points were fixed, everything else worked. I could access our marvelous “shell”, type commands (I issued “lsmod”, “cat sample.txt” and “modp misc/helloworld”) and see that it was good.

My RTL-8139 network controller was detected and module nic/rtl8139 loaded, IPv4 enabled, and most things were working. I believe the next step will be to test the scheduler, optimize it, and start working on the TCP stack. At the same time, a cache system at VFS level and another at block device level should be implemented using a kernel generic cache allocator (that will automatically free physical pages when memory is needed), process switching should make use of CR0.TS to know when we need to switch MMX/SSE2 context, and the keyboard input should be improved.
At the same time, a generic HCI stack is needed for USB, and OHCI/EHCI/UHCI should be implemented (something has been started, but it’s far from complete).

Thanks for everyone who has been providing support to the project, I hope to be able to provide more impressive news soon ! :)

五OS revision 651 on CF-R6Previous tests for Revision651 on CF-R6

日本語にしよう

April 12th, 2009

僕は日本語はまだあまりよく出来ません。漢字は知らないけどコンピュータのおかげで、何となくできる。。。

ま〜〜〜〜〜
だから多分間違えてると思う。。

とりあえず、これは僕の初めての日本語のポストです。

僕は6月18日、日本に行きます(仕事関係の理由で)。こんな外国人ですが我慢してください。

自己紹介:僕は23歳のフランス人。今はパリに住んでいる。日本語の勉強はずっとしたかったけどマイペースだから何もしなかった。どうして日本語喋れるかな。。。それは僕にもよく分からない。
仕事はコンピュータ関係(プログラマ);目的は世界征服。

IRC, and 90 days to Japan

March 20th, 2009

As of today, it’s exactly 90 days before I get in Japan. Exciting, but before anything it’s tiring. Still a lot of things need to be done (stopping contracts, selling stuff, finding a way to send the stuff I keep to Japan, etc) and it’s not going to get easier as the date gets close.

Anyway I’ll also introduce a little too I made for the IRC Network: a status image. You just use http://gg.st/status/default/nickname.png in an image and get something nice like:

As you can probably see, it says if I’m online/away/offline, handles nickname groups (with IRC services) and is realtime.

Leaving France

March 9th, 2009

Many people around me knew about it. I want to leave France, and I want to leave quickly.

I got various reasons, including the fact that I can’t stay in place, and the fact that the move was interesting.

No final decision was taken before March 6th as I was waiting for a reply (which never came), so the final decision is now taken: I’m moving to Japan.

The deal is pretty simple, the company I work for (Nexway) has agreed on taking me in Japan instead of France. This will greatly help for some projects I’m working on within the company, both in terms of access to documentation/skilled people and in terms of motivation.

The move is planned for June 17th (arriving in Japan next day) and will include my cat, my hard drives (no computer as it’s too big/heavy), and many things.

Port knocking, how would I do?

March 2nd, 2009

As I saw some articles which seems rather unexact relating port knocking, I would like to add some parts of my own idea about this.

First, port knocking is not meant to be used alone…

Even if you use your daemon’s default port (let’s say port 22 for sshd), port knocking can protect you more than you can even imagine. Let’s take the following setup:

  • SSHd running on port 65122
  • Connections to port 65122 are replied with “connection refused” (via an icmp target rule)
  • In order to “open” port 65122, connection attempts must be made to ports 22448, 44228 and 22884 in this order. Any other order will blacklist the IP attempting to connect for 1 hour
  • More than 5 attempts to connect to port 65122 within 20 minutes will result in 1 hour blacklist

Now, if you’re that smart, just try to find your way in without the “passphrase” (which is 22448-44228-22884-65122). If you do too many attempts, you’ll end blacklisted. Let’s say you found out that port 65122 gets you banned when you connect, and have determined that you can make up to 5 attempts in 20 minutes. Let’s also say you know you have to knock exactly 3 ports to be able to connect.
You then have to test 65536^3 = 281474976710656 combinations, and can only test 5 in 20 minutes, that would require 70368744177660 minutes (133882694 years or so).

I can assume no decent system will be up for 133882694 years without any shift into security settings. You can parallelize that with different source IPs, but it will still last too long against people shifting every 3~6 months.