The Gnupg Riddle — グヌーピージーの謎々

The Conundrum — How does one get a trustable copy of gnupg?
難問は、どうしたら信頼できる GnuPG を手に入れれるでしょう?

The theory — Bad guy hackers, or good guy hackers gone bad, (or the US’s NSA) might be doing sneaky things to get you to download something you really don’t want.
理論上は、悪奴職人たち、もしくは善良だったのに間違った道を選んだ職人たち(それとも米国の国立社会安定署)の方が狡く、人がダウンロードするつもりのないモノをダウンロードさせる悪巧みを練ってとします。

For example, say you want reallyusefulappoftheweek.exe. And you trust the author. So you go to famousdownloads.com and download it.
例えば、今週の非常に便利な「reallyusefulappoftheweek.exe」というアプリをダウンロードしたいとします。製作者も信頼しています。したがって、有名なダウンロード処の「famousdownloads.com」というウェブサイトに行ってダウンロードします。

But maybe some cracked-up bad-guys decide to poison the internet directory in your area for five minutes. And it’s your bad luck to try to go to famousdownloads.com in those five minutes. (Opened the window at the wrong time!)
しかも、(仮りに)気が狂った悪奴らが5分だけの間、ご近所のインターネット索引装置に毒情報を差し込み、悪運、 famousdownloads.com へ行くことにしていたその5分間でした。(まずいタイミングでその窓を開けてしまった。)

And you end up at badguys.com instead of famousdownloads.com, but your browser is telling you that you are at famousdownloads.com because of the DNS cache poisoning. And badguys.com even passes most of famousdownloads.com on to you as it is, so you don’t notice. It’s just the download button they grab and do dirty things with.
次第に、 famousdownloads.com ではなく、「badguys.com」へ到着します。到着しているのに、領域名索引の即参照装置が毒情報を受けているので、ウェブブラウザが famousdownloads.com であると知らせてくれるのです。しかも、 badguys.com の方は famousdownloads.com の内容をほとんどそのまま引き渡してくれるので、気がつきません。悪奴らがさわって汚しているのはダウンロードボタンだけです。

So, you end up with moneystealer.exe instead of reallyusefulappoftheweek.exe.
あげく、欲しかった reallyusefulappoftheweek.exe の替わりに、あなたのお金を他所へ持っていく「moneystealer.exe」というモノを手に入れてしまう。

Back in 2007, it was hard enough to do such things that most people who could do such things would be making better money doing legitimate work.
2007年に遡ると、こんなワザが難しく、出来る人は大概、妥当な仕事の方が儲かるのだった、

But it’s a lot easier now, the economy is just going down the tubes, and governments we once trusted have betrayed us. So what was unthinkable then is something we have to think about now.
現在に戻るともっと簡単にできるし、経済は悪化ばかりの傾向ですし、かつて信用していた政府に裏切られています。一昔考えられなかったモノはもう、考慮に入れなアカン。です。

What to do?
対処の手段は?

Well, first, quit downloading on impulse. Think before you click.
先ずは、刺激反応のダウンロードをやめましょう。クリックする前に状況を確認しましょう。

Second, get tools that can check your downloads. And only download stuff that gives you information you can check against.
その上、ダウンロードを確認する道具を手に入れるべきです。そして、確認できる情報が存在する条件のみでダウンロードします。

And there is the conundrum: Gnupg is a free-and-open tool that can tell you that what you downloaded really is what it was supposed to be. But Microsoft, in their infinite wisdom, won’t put that in your copy of MSWindows when they sell it to you. So you have to download it. But how do you make sure you don’t get trickypg.exe instead of gnupg.exe?
というこで、難問がわかります。ダウンロードした物が本当にダウンロードするつもりだった物になったかどうかを調べる Gnupg と言う自由に利用できる道具は存在しますが、マイクロソフト社の賢明さにしたがって、ご購入のMSウィンドーズオペレーティングシステムにそういう道具を見つけることはありません。システムソフトウェア及びコンピュータ本体を買ったままには入っていないのです。ダウンロードすることになります。けれども、ダウンロードするに当たって gnupg.exe の換わりに、悪用ソフトの trickypg.exe が手に入ったことではないのを、どうしたら確認できますか?

I mean, it’s not like the bad guys are going to actually name it trickypg.exe. Of course they’re going to name it the name you trust, instead. Outside of ignoring the obvious truth of what goes around comes around, they are pretty smart.
悪やつらは敢えて、 trickypg.exe のように分かるようなファイル名を付けてダウンロードさせてくれるわけにならへん。むしろ、皆の信用するファイル名を付けて、ダウンロードする人をだますつもりですね。無論のことですね。自分がやったことが自分に戻る事実を無視する以外は賢いやつらですから、ね。

Now, Microsoft does provide similar tools, proprietary tools laden with Microsoft-claimed Intellectual Property (TM), tools that don’t really cooperate with the free software world. Of course Microsoft is not going to intentionally help you get free from their monoculture.
やはり、マイクロソフト社は似たものをお提供してくださるのです。独自専用の道具です。マイクロソフト社が主張する「知的財産」(商標)満載です。自由ソフトウェア業界と協力しない道具です。マイクロソフト属単品世界からは、意図的にお客様たちを解放させることは無いでしょう。

So, what should you do?
さあ、どうしましょう?

Well, if you were using a Linux OS as your base OS, Linux OSses pretty much come with essential parts installed, and you can use the OS package tools to get the full package. The package manager itself should be using those parts. But that doesn’t help, if your computer boots up under MSWindows.
ご利用のオペレーティングシステムがリナックスの基盤の上に出来ている種類のOSの場合、こういう道具の必要な部分はインストール済みのまま出荷されている。パッケージマネージャの処理にその機能を既に使用していますので、充実した商品が必要な場合残りが無事にインストール出来ます。ただ、ご利用のコンピュータがMSウィンドーズの場合はリナックスと言ってもしかたがないでしょう。

(Apple? Their official marketplace is already pretty well guarded using some of these tools, and if you install Apple’s developer tools, you can get most of what I describe here. Just make sure you get the developer tools directly from Apple, not badguys.com.)
(アップル社は、その公式市場が既にその道具を利用していてまあまあ守られています。アップル社の公式開発道具さえインストールすると下記に説明する残りの機能をを無事に手に入れることが出来ます。ただ、その開発道具は直接アップル社から受けとるのよ。不意に badguys.com などからはダウンロードしないように気をつけてください。)

I’ll talk more about Linux in a separate post, but most of the world is still stuck in the MSWorld, so I’ll talk about the MSWindows experience first, here.
リナックスについては後に取り上げるつもりですが、今のこの投稿はMSウィンドーズ上の状況を宛て話します。世界の大半がまだMS世界に嵌っていますから。

This will take some time. That’s okay. Good things come to those who wait. It will also take some work and some thinking. You have no issues with that, either, right?
話が少々長くなります。若干の作業の手間もかかるし、能力も充てる必要です。大丈夫です。忍耐は道徳の一つです。我慢して待つのは報いが必ず出てきます。異論があるまい。

But read this all the way through once, then go take a break before you start.
まあ、話が長いと思ってくれてもいいですが、とにかく、これを一読して、ちょっと休憩してから作業にかかりましょう。

First, let’s go to the place that produces gnupg. We’ll look at their download pages, and then we’ll go to a mirror site to actually download. And we’ll get the information we need to check at the same time, because checking after the fact is better than not checking at all.
先ずは、 gnupg を提供してくれるサイトに行きましょう。ダウンロードページを見てからミラーサイトに行ってダウンロードしましょう。見ている序でに確認に必要な情報一先ず確報しましょう。終わってから確認は、まったく確認しないヨリはとにかく一つ増しなのです。

We have to start somewhere, so we’ll check after the fact, just this once.
どこかから始まらないと何も始まらないので、一度だけは確認を後にします。

Now, it so happens that the gnupg.org people have some friends who package gnupg especially for MSWindows. It always helps to get at least two opinions, so we’ll go there and download their tools, too.
因みに、 gnupg.org の連中には協力の連中もいます。協力連中はMSウィンドーズ専用に gnupg をパッケージ化してくれるのです。2ヶ所の意見を求めるのは賢明ですので、連中のところにも行ってダウンロードします。

Then we can use the one to check the other.
こちの方を使ってあちらの方を確認します。

Being able to check things against each other is what is cool about the many hands approach to software. If we depend only on Microsoft (or only on Apple or only on IBM, or Oracle, etc.), we really don’t have any options to compare against. It’s hard to meaningfully compare one opinion against itself.

In the open source world, there are many big guys and lots of little guys, and when someone decides that immediate gratification is better than protecting the world from corrupt empires and other evil bad guys, well, the dirty laundry tends to show up a lot quicker. There’s a lot to compare against.

It’s not perfect, but it’s better than the monoculture.

So, let’s get started. Make a new folder on your desktop or somewhere that you can find easily. Call it “gnupg_dls” or something you can remember. (Maybe even write it down? That’s your call.)

Now, let’s go where they make gnupg. You can, and probably should, look it up on Google or duckduckgo or Yahoo or Ask, whatever your favorite search site is. All the information the search sites give you can be confusing, but not having information is worse. Don’t trust a single organization. Don’t trust a single person, not even me.

This is the gnupg site according to me:

http://www.gnupg.org

If it changes, or if your search engine can’t find it, you should find out why. Asking questions is the responsible way to use the Internet — even though it takes time and patience and you are really wanting to download your reallyusefulappoftheweek.exe and start using it.

This is their current downloads page:

http://www.gnupg.org/download/index.html

And you need to look at their file integrity check page. It’s linked there on the download page, or you can currently find it at

http://www.gnupg.org/download/integrity_check.html

Look for the list of SHA-1 checksums. It looks something like this, but not these numbers:

34bffe2e0665f567159a7fc7d9141ae4e93e85c8 dirmngr-1.1.99.tar.bz2
e490d004488b5a2c5d2830f3b41ea1186a93a97e gnupg-1.4.98-1.4.99.diff.bz2
d17ecb9c0fa77825622b60f360c3dbdac489f150 gnupg-1.4.99.tar.gz
e3d32682c100d73c4ac64716d8c8120f6d383baf gnupg-1.4.99.tar.bz2
8e5b37cb98adb1d96887c7b2325a783f68a90749 gnupg-w32cli-1.4.99.exe
8edda696554a72627791a6f821711ce9ab641fb7 gnupg-2.0.99.tar.bz2
de38230b736e9fa153ccb43fd9d59a0683eb6e6e gpgme-1.4.99.tar.bz2
6cd1cd40b87ae46310a265ac900cc482054d38de libassuan-2.1.99.tar.bz2
5f3d21aa7fa5d5c3f0c8146db013a5a04dd6e715 libgcrypt-1.6.99.tar.bz2
4e37bdfca27686d73165a433bd2625763aee7da1 libgpg-error-1.12.99.tar.bz2
e30d7d419efe4ab9fc32037807403832b3f30449 libksba-1.3.99.tar.bz2
de0d9c781f98a2ec196d75cfd974a2180159ed2f pinentry-0.8.99.tar.bz2

Copy the line that says, “gnupg-w32cli” with a version number. (Well, you can copy the whole list, but the only one you need now is the one that says, “gnupg-w32cli”.)

Use the mouse to select that long base-16 number and the file name, use the mouse’s right-click context menu, and copy that line. Open a plain text editor. (Okay, even MSWord will work in a pinch.) Paste that line into an empty document and save it. Name it “gnupg_org.text” or something you can remember. Save it in the folder where you will save the program downloads.

Do NOT copy the numbers I show here. I just made them up so you have an idea what to look for. Copy the numbers from the gnupg web page.

One more place you want to go. Look for the signing key link on the integrity page. It’s currently at

http://www.gnupg.org/signature_key.html

What you want to copy from that page, the part you need looks like this:

pub 2048R/4F25E3B6 2011-01-12 [expires: 2019-12-31]
Key fingerprint = D869 2123 C406 5DEA 5E0F 3AB5 249B 39D2 4F25 E3B6
uid Werner Koch (dist sig)
sub 2048R/AC87C71A 2011-01-12 [expires: 2019-12-31]

The “2048R/4F25E3B6” is one part of the key that you need to pay attention to. The key fingerprint line is another. You probably don’t need the sub part. Copy that all, but keep the page open.

Now, download the MSWindows gpg application. (If you already downloaded it, that’s okay, too. You just want to make sure you get the checksum and the signing key.)

Wait, you don’t see the application? Well, you have to look on the mirrors page, and you want to find the closest mirror to you. There’s a link to the mirrors page in the side-bar, which is currently

http://www.gnupg.org/download/mirrors.html

In my case, I went to

http://www.ring.gr.jp/pub/net/gnupg/

and found what we want under the “binary” link:

http://www.ring.gr.jp/pub/net/gnupg/binary/

Get the “gnupg-w32cli” file with the highest version number, currently 1.4.16:

gnupg-w32cli-1.4.16.exe 18-Dec-2013 16:50 1.5M

Get the signature, too:

gnupg-w32cli-1.4.16.exe.sig 18-Dec-2013 16:50 287

Right click and save both of those in the folder you made for the downloads.

If the gnupg.org part of the link changes, you do need to find out why. If the links underneath gnupg.org change, maybe they’ve just changed things around, or maybe you need to ask your internet service provider (ISP) to check their domain name servers (DNS). And you can check on the gnupg.org mailing list, too.

I can’t tell you whether to ask or not. You have to decide for yourself. (I would probably ask, myself.)

We are a third of the way there. Patience.

The gnupg front page mentions

Packages for MS-Windows are available at Gpg4win.

Let’s go get that one, too. Click the link on their page. It’s currently at

http://gpg4win.org/

They have a nice big download button, and they tell you the sha1 checksum right there on the download page. And there are “check integrity” links everywhere, to make it really easy to find all the checksums and the keys.

The one question which you might have is “Which?” For now, just get the vanilla app.

Okay, you can get the full app, too. That’s up to you, but the steps below assume the vanilla app. At the current time, the version is 2.2.1, the file name is “gpg4win-vanilla-2.2.1.exe”. Copy the sha1 checksum line and paste it into the same text file document where you pasted the information from gnupg.org. Copy the key/fingerprint data, too.

Now, we are ready to take the plunge. Two-thirds of the way, and you have the two applications and the keys and checksums for them. Take your pick and launch the installer. I’ll start with gnupg.

Double-click or launch it from the command line. The setup dialog opens up.

It’ll probably ask you to pick a language. Unfortunately, Japanese was not in the list, so I picked English. Then there’s the welcome dialog. Read it. Don’t take these things for granted.

Click next and you get the license agreement. Basically, it says, this is free to use and modify, as long as you don’t try to claim other people’s work as your own, just because they are so radical as to offer it freely. Read the GPL license here if you haven’t read it yet.

If you don’t understand the license, well, the ride is over. Go back to your monoculture. Okay, I’m joking. You don’t have to go back to the monoculture (and it really isn’t yours, anyway).

I’ll take one more stab at explaining it, but please read it and try to understand it for yourself.

Free here is not about money. Nobody is offering free beer (or free root beer, or free apple cider) as an incentive to get you to agree to spend more money later.

Free here is about freedom. It’s a kind of gentlemen’s agreement. Anyone who gets this software is free to do a variety of things with it. Use it. Look inside it. Figure out how it works. (Most licenses try to stop you from even looking inside, much less from trying to figure out how things work.)

You can even look at the source code! That’s how liberal the people who make it are about “intellectual property”.

Just a couple of catches:

(1) If you pass it on to someone else, you have to let them know it’s under this free license. Don’t try to keep them from exercising their freedoms.

The people who make this like to have other people help make it better, you see, and people won’t help if they don’t know they are free to do so.

(2) If you modify it, you can use the modified version yourself, all you like. But if you distribute your modifications, (and this is where most penny-pinching accountants go crazy), you have to let others take the same kinds of liberties with your modifications as you took with what you got originally.

Someday, I’m going to try to argue that this is precisely why open is secure. Not here, this blog post is too long already.

Now, let me repeat. Most people will not bother modifying the program. Unless you are one of those one-in-a-thousand helpful types, you will not. That means the license says, go ahead, use it for free.

If you are one of the one-in-a-thousand, you may want to think more deeply before you modify it. I can’t make that kind of decision for you. But I’ll tell you that I use the GPL with much of my personal work, and it’s not because I’m some sort of loser with no self-confidence.

In the meantime, use gnupg for free. Using it is okay.

Okay, you’ve read the license. Click Next. Leave all the components selected if you have room on your hard disk. (If you don’t even have 5MB of room, you definitely need to move stuff off of it.)

Now you’ve checked your disk’s free space and it’s good.. Click Next. Select a language.

You can select Japanese if you want. (I did, but I can read Japanese.) Click next.

It says it will install in the “Program Files” directory. That should be fine, and, if it isn’t, you are the one who knows where to put it. If you do, tell it where. Click Next.

I know of no reason not to put it in your program menus. But you might. If you do, change that. Click Install. It shouldn’t take more than a minute or two, probably just a few seconds. Show details if you want, click Next and click Finish. And scan the README file.

Hmm. What gets installed to the program menu is a manual page, describing how to use it from the command line in technical English. I should have started with gpg4win.

Sorry.

Now we need to set the path.

If you erase all or part of your path, you’ll need to rebuild it. I can’t do that for you. You have to be careful here.

First, find where you installed gnupg. That’s probably “C:\Program Files\GNU\GnuPG”, if you didn’t change it. You might want to check in a file Explorer window. If you do, you can just select the whole path in the URL field and copy it.

On the desktop, right-click on “My Computer”. Click on “Properties”. Select the “Detailed Settings” tab. Wait, that’s not what it’s called in English. Click tabs until you find the one with the User Profile (Permissions?) button. But don’t click User Profile, click the Environment Variables button at the bottom of the dialog.

(Give me a break. I’m working from the Japanese version.)

With the Environment Variables menu up, select the line called “Path”. It looks something like

Path %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;

Click “Edit”.

Now, be very, very careful. Read the instructions first, all the way to the end. When you are ready, be careful. (Did I say that already?)

If you delete something in the existing Path, click cancel and try again.

Leave the Path name blank alone. Put the cursor in the lower field with a single click. This is the entry field that shows things like “%SystemRoot%\System32;”. Hit the “End” key on the keyboard, or use the right-cursor-arrow key to move to the end of that long list of places where executable stuff can be found. Paste or type the path to gnupg in at the end and type a final semicolon, something like

C:\Program Files\GNU\GnuPG;

It should look something like

C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\GNU\GnuPG;

although you probably have lots of stuff between powershell and gnupg.

Click the OK button to close this dialog, click the OK button to close the parent, and likewise the OK button on the parent of that.

Scary? Not really. Just remember to click cancel if you think you deleted something.

Now, we are ready to try it out. Open a command prompt window and change directory to the download directory. Type “cd” at the prompt, then a space, then go to the file Explorer window, go up a directory there, select the downloads directory where we have been saving things, and drag it to the command-prompt window. The result should look something like

C:\>cd “C:\Documents and Settings\myuser\Desktop\downloads”
C:\Documents and Settings\myuser\Desktop\downloads>

At the prompt, type

> gpg –version

and it should respond with the version number and license information. If it says it can’t find gpg, close the command prompt window and open a new one.

If it still says it can’t find it, try setting the Path environment variable again.

If you have to rebuild your Path variable, one possible way is to log out, create a new user, open the path variable there, copy it to a text file that you save on a USB drive or something, then log back in to your regular user and paste the line of paths back in where it belongs.

If you really get stuck, ask someone to help you. If you really can’t find someone in the physical world to help you, login here and post me a question. I’ll try to walk you through it.

Okay, for the 999 in a thousand who made it safely this far, let’s use gnupg to check gpg4win.

At the prompt, type

> gpg –help

Okay, that’s just to get a look at some of the things you can do. Now, just to refresh your memory about what is called what, type

> dir

2014/02/26 15:13 <DIR> .
2014/02/26 15:13 <DIR> ..
2014/02/26 15:02 1,263 checksums.text
2014/02/26 10:07 1,610,893 gnupg-w32cli-1.4.99.exe
2014/02/26 10:07 287 gnupg-w32cli-1.4.99.exe.sig
2014/02/26 10:14 4,100,424 gpg4win-vanilla-2.2.99.exe
2014/02/26 10:14 198 gpg4win-vanilla-2.2.99.exe.sig

Okay, now we want the message digests, so type

> gpg –print-md sha1 gnupg-w32cli-1.4.99.exe
gnupg-w32cli-1.4.99.exe: 8E5B 37CB 98AD B1D9 6887 C7B2 325A 783F 68A9 0749

You can copy (right-click menu, select area to copy) from the command prompt window, or you can use file redirection to make a text file:

> gpg –print-md sha1 gnupg-w32cli-1.4.16.exe > gnupgmd.text

You want to compare the two checksums. So open gnupgmd.text with your text editor and copy the checksum from the site into this file, add spaces every four digits, and you can check that they are the same, something like this:

gnupg-w32cli-1.4.99.exe:
8E5B 37CB 98AD B1D9 6887 C7B2 325A 783F 68A9 0749
8e5b 37cb 98ad b1d9 6887 c7b2 325a 783f 68a9 0749 gnupg-w32cli-1.4.99.exe

And now we’ll check the signing key:

> gpg –verify gnupg-w32cli-1.4.99.exe.sig
gpg: 12/13/13 17:52:15にRSA鍵ID 4F25E3B6で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません

Like I said, I operate in Japanese a lot. Translated, that says that the signature file was signed with the key ID 4F25E3B6, which is the short form of the fingerprint. We really want to check the long form of the fingerprint, but not yet. Between the key and the SHA1 checksum, we are pretty sure the file made it okay, and maybe has not been modified by bad guys.

Now we do the same for gpg4win:

> gpg –print-md sha1 gpg4win-vanilla-2.2.99.exe
gpg4win-vanilla-2.2.99.exe: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX

> gpg –print-md sha1 gpg4win-vanilla-2.2.99.exe > gpg4winmd.text

> gpg –verify gpg4win-vanilla-2.2.99.exe.sig
gpg: 10/08/13 00:31:48にDSA鍵ID EC70B1B8で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません

So, gnupg says both gpg4win and itself are okay. Now let’s see what gpg4win has to say.

Double click gpg4win’s installer, or start it from the command line. It goes through the same set of steps that we saw for gnupg. And, in fact, it installs in the same place by default, so we don’t have to mess with the Path variable a second time. (Phew!)

No. Wait. That actually means that some things may have gotten written over. Maybe we shouldn’t have let it install in the same place. But we can still use gpg4win, and it is called gpg2. So, let’s verify both downloads again with gpg2:

> gpg2 –print-md sha1 gnupg-w32cli-1.4.99.exe
gnupg-w32cli-1.4.99.exe: 8E5B 37CB 98AD B1D9 6887 C7B2 325A 783F 68A9 0749

> gpg2 –print-md sha1 gnupg-w32cli-1.4.16.exe > gnupgmd.text

and compare.

> gpg2 –verify gnupg-w32cli-1.4.99.exe.sig
gpg: 12/13/13 17:52:15にRSA鍵ID 4F25E3B6で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません

and check the key.

> gpg2 –print-md sha1 gpg4win-vanilla-2.2.99.exe
gpg4win-vanilla-2.2.99.exe: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX

> gpg2 –print-md sha1 gpg4win-vanilla-2.2.99.exe > gpg4winmd.text

and compare.

> gpg2 –verify gpg4win-vanilla-2.2.99.exe.sig
gpg: 10/08/13 00:31:48にDSA鍵ID EC70B1B8で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません

and check the key.

It’s the same software, but two different versions, compiled and packaged by two different groups. And the two versions verify each other, so we are pretty confident they haven’t been tampered with.

Now you have a tool that you can check the checksums and signatures of things you download. It’s not the most optimal method of bootstrapping your tools for this sort of work, but it’s way better than nothing.

You can download MinGW and/or Cygnus and check your downloads and and install them, and they have gnupg as well, and can give you a good counter-check, as well. (And I recommend precisely that, for several reasons.)

And you can download the install images for Debian or Fedora or Gentoo or CentOS or openBSD or what ever sounds interesting, and get yourself really free from Microsoft’s monopoly power over you.

You can also go back to gpg4win and get yourself a mail client that can send and recieve encrypted mail, by the way. But this blog post is now officially way, way too long.

reiisi について

Joel Rees is a sometimes English teacher and sometimes programmer working and living with his family in Japan. ジョエルリースという者は場合によって英語講師、場合によってプログラマです。家族と共に日本に住んでいて、日本で仕事をしています。 You can find some of my projects at ボクのプロジェクトのいくらかを http://sourceforge.net/users/reiisi and 及び http://sourceforge.jp/users/reiisi/ にてご覧いただけます。
カテゴリー: Computers, tools パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です