Friday, August 16, 2013

Get a shell! -- シェルを獲得せよ!

Not the kind of shell you find in the ocean.

海で見つかるような貝ではないけど。

When a computer geek talks about getting a shell, he or she generally means a command line interpreter shell. This is where you type in a command and the computer figures out a response to type back at you.

コンピュータ業界のギークが「シェルを獲得」するようなことを言い出したら、その意味は「コマンドラインインタープリターのシェル」と考えていいでしょう。これは、命令の文字を打ち込んだらコンピュータが打ち返して表示する反応を計算してくれるところです。
Ah, but what good is a shell?

でも、シェルなんて、なんの役に立つのですか?

A shell is a kind of language to talk to the computer with. Many shells are also programming languages. (Don't confuse the window the shell is shown in for the shell itself.)

シェルと言えば、相手にしているコンピュータと対話するような言語です。シェルの多くはその上にプログラミング言語でもある。(シェルとそのシェルを見せてくれるウィンドーを勘違いしないでください。)

Anyway, when you really want to have fun with programming, you use a shell. It's part of the fun.

とにかく、コンピュータ言語で本当に楽しみたいときはシェルを使います。その楽しみの一部です。

There are essential conversations you can have with a computer in command-line shell that you just can't have in a graphical user interface.

コンピュータと、基本的で不可欠な話すべきものの中に、対話型文字命令接触面(コマンドラインシェル)内にできるのに、視覚接触面(GUI)上できないものがあります。

So, how do you get a shell?

それでは、シェルをどうやって獲得するのですか?

That depends on your operating system. Some OSses, like Android and iOS make it kind of hard to get a shell. Others, like pretty much any Linux OS or BSD OS, pretty much give you the shell without you even asking.

オペレーティングシステムによるのですが、アンドロイドや iOS のようなシステムならシェルを出すのをわりと難しくしてくれる。その反面、ほとんどのリナックスや BSD の場合は、まるでシェルを求める以前から出してくれているようです。

Unix/Linux/BSD


Unless you have X11 (so-called XWindows) running, with a desktop manager and a window manager set up, the first thing you see after login is most likely a shell prompt. There you are in the shell. Shells have been around a long time, but they are still quite useful.

エックスウィンドーズとよく言われる「X11」がインストールされて、デスクトップマネージャー及びウィンドーマネージャーも設置されていなければ、ログインしてすぐはシェルの話しかけプロンプトです。もうそのままシェルに入っています。シェルはずっと昔からあるものですが、今でも結構役立つのです。

If you have a desktop manager and window manager installed and running, look in your "Applications" menu for something like "Terminal" or "Xterm". If not there, look in the "System" or "Accessories" sub-menus.

デスクトップマネージャー及びウィンドーマネージャーインストール済で稼働しているなら、「ターミナール」や「XTerm」などのようなものを「アプリケーション」メニューの中から探せば良いです。そこには出てこなければ、「システム」や「アクセソリー」下位メニューの中にあるはずです。

Common desktop/window managers include KDE, Gnome, and XFCE.

よく見られるデスクトップ・ウィンドーマネージャーの中には KDE、 グノーム、 XFCE などがあります。

I personally prefer XFCE. It's clean and simple. KDE is quite usable, but has a lot of advanced gadgetry that might suprise you. Gnome is currently an attempt to look like the Microsoft Metro interface ought to. I do not care for it. But you might like it. It does take a lot of processor power and memory.

ボクにしては XFCE が簡単で使いやすい。 KDE なら利用性が良いけど高機能の小道具いっぱいでビックリすることもあります。グノームの現在は、毎苦労ソフトのメトロインターフェースがなったはずのモノのようなモノを目指して、ボクの好みと違います。お好みなら、どうぞ。グノームには高性能のプロセッサー及び大量の記憶が必要です。

I'll have to put up a post on installing Linux, and choosing and setting up a desktop/window manager combination sometime, I suppose.

いつかリナックスのインストールやデスクトップ・ウィンドーマネージャの選択、設置などについて投稿しないといけないでしょう。

Apple -- アップル


On Mac OS X 10.4 and earlier, look in the Apple "Application" folder, and look in there for the "Utilities" folder. Then look for an icon that looks sort of like a small computer screen, called "Terminal.app".  There may also be another shell application, called "XTerminal.app", if I remember right, which would also be okay. Double-click should launch them.

マックOSテン 10.4 以前は、アップルの「アプリケーション」フォルダの中に「ユティリティ」フォルダを探して、その中には、アイコンが小さいコンピュータ画面のようなもので「ターミナル.app」というプログラムがあるはずです。もう一つ、「XTerminal.app」というものもあるかも知れません。どちらでもいけます。ダブルクリックで起動できるはずです。

(There are several other programs in there that look like small computer screens. In particular, console.app is interesting, and you should learn to use it, but it is not a shell.)

(「ユティリティ」フォルダの中には他の似たアイコンのプログラムもあります。特に、「コンソール.app」が面白くて、役に立ちますが、シェルではありません。)

I haven't really used Mac OS X since 10.4, but I think the shell is still in the same place.

マックOSテン 10.5以降はあまり使っていませんが、置かれている場所が変わっていないように思います。

Classic Macintosh did not have a full shell. You could download a perverse super-shell called Macintosh Programmers Workbench, instead. Also, you could use an all-in-one IDE like Metrowerks Codewarrior. If someone asks me to, I might put up some posts on the subject.

クラシックマッキントッシュではちゃんとしたシェルがなかったのです。その代わりに、「マッキントッシュ・プログラマズ・ワークベンチ」というちょっと曲げた超シェルをダウンロードするようになっていた。また、 Metrowerks Codewarrior のような統合総合開発環境でプログラムを作ることはできました。誰かに頼まれたら、そういう話を投稿してもいいけど。

Microsoft Windows (unfree) -- 毎苦労ソフトウィンドーズ (不自由)


Microsoft also provided a perverse limited shell, up to around MSWindows 2000 and XP or so. Somewhere before MSWindows 7, they released their own perverse super shell. You can find them somewhere in the start menu, maybe under Accessories?

マイクロソフトも、およそエムエスウィンドーズ二千やXPまで、曲げて、性能のあまり良くないシェルを提供していました。エムエスウィンドーズ7ぐらいから、自分独特曲げた超シェルを出場させたのです。スタートメニューの中を探せば、もしかしてアクセソリーの下位メニューの中で、出てくるはずです。

I avoid using them because, well, as I said, they are both perverse. That is, they are different from the Unix/Linux/BSD shells in perverse and confusing ways. Official command-line shells tend to reflect the underlying operating systems.

2つとも仕様が曲げたものとボクは思います。確かに、ユニックスやリナックスやBSDのシェルから見れば混乱になるように違う点が多い。基盤になる操作系のOSの特質がコマンドーラインシェルによく見えてくるのです。

Microsoft Windows free -- 毎苦労ソフトウィンドーズ 自由


But we have other shells for MSWindows. The MingW and Cygwin projects provide shells ported from the Linux tool set.

しかし、エムエスウィンドーズには他のシェルもあります。MingwCygwin のプロジェクトはリナックスの道具箱から移植されたシェルを提供してくれます。

Mingw is smaller, but more oriented towards people skilled in computers. You can find the project here, with installation instructions here.

ミングダブリューの方は軽容量ですが、技術者向きです。プロジェクトがここです。インストールの英語の説明がここにあります。訳す機会があれば訳しましょう。今はグーグルなどで検索したら、自分の経験をブログで教えてくれる何人かの日本人がいます。

Cygwin contains significantly more useful stuff than MingW. So it takes longer to download and takes more space on your hard disk. The  project is here, and the installation instructions are here. Basically, you download the installer .exe, check the checksum (more things to explain) and run it.

キグウィン(シグウィン?)にはミングダブリューに入っていないいろんな便利なものが含まれている。その分、ダウンロードには時間がかかるし、ハードディスクの容量が必要です。プロジェクトはこちらにありうます。英語のインストールの説明はこちらです。グーグルなどで探せばキグウィン上の経験を教えてくれる日本人が出てきます。基本的に、ダウンロードしてチェックサムを確認して起動させると出来上がりです。(チャックサムの確認も説明しないと行けません、ね。)

If you don't have much hard disk space, MingW can be useful, as I explained once here. If you have more space, Cygwin is probably easier for beginners to work with. You can even load both if you want.

ハードディスクの空き容量が少ない倍、ミングダブリュが使えます。(かつて書いたそういう話をこちら で読んでいただけます。)空き容量が充分であれば、おそらくキグウィンのほうが初心者に使いやすい。まあ、面白かったら両方ともインストール可能です。

One example of the difference, if you want the arbitrary precision calculator BC, with MingW you have to download it from a different site, fix a bug or two, and compile and install it yourself, as I once explained here. (Good practice if you are ready for it, maybe a little scary if you are not.) With Cygwin, you can just download it and go.

どう違うかと、正確性の無制限電卓 BC をインストールしようと、MingWの場合は別のサイトからダウンロードして、バッグの1つ、2つ修正して、コンパイルしてからやっとインストールできます。(これもかつて英語でここで説明しています。こういう作業に用意ができている人には練習としては悪くないですが、用意ができていない人はためらうでしょう。)キグウィンの場合はダウンロードしてすぐ使える。

Thursday, August 15, 2013

But you need a compiler. Or an interpreter. Or something. -- やっぱり、コンパイラかインタープリタか何か要る

Yes, you do need some kind of something to run the programs on.

そう、ですね。何らかのなにかを持って、プログラムを稼働させるんですね。

Well, I think Microsoft has a trial version of VisualStudio or .net whatever that you can use free for a month, or something like that. But, ya know, Microsoft's tools are not what I call fun.

ええっと、マイクロソフトならビジュアルスタジオかドットネットか何かの一ヶ月ただで使えるトライアル版のような何かがあったような、と思って、ええ、まあ、けど、だってさ、あの道具は僕が楽しいと言えるものではない。

I suppose they're fun for people who think that watching their bank balance grow is more fun than watching a good football game.

まあ、フットボールの良え試合を見るよりも、貯金がたまるのを見る方を楽しく思うような人なら、多分マイクロソフトの道具を楽しく思うかもしれません。

If you enjoy having your manager breath down your neck for yelling for visible results while you slap things together that you don't really understand, well, go ahead, buy Microsoft's tools. And pay for the courses where they teach you how to use them, because the stuff you slap together without training falls apart as quickly as it goes together. And you still will be grinding away, putting results up too fast to understand what you're doing.

理解できるほどの暇がなく、モノを叩き組んでいるのを、上司がずっと観察して結果を叫び起こしている職場が楽しいなら、どうぞ、マイクロソフトの道具を是非買ってくださいい。その上、その道具の使い方を教えてくれるトレーニングも買っておいたほうがいいと思う。さもなければトレーニングなしで叩き組んだものは組み合わせるやいなや崩れる。そして、トレーニングがあっても、結局はずっと、理解できない内に結果を出そうとする骨引く作業がその結末です。

I don't want to do that on my free time.

僕は暇の時そんな事やりたくない。

Which is why I recommend a Linux (Debian, Fedora, Ubuntu, CentOS, etc.) or BSD (FreeBSD, NetBSD, OpenBSD, Dragonfly BSD, etc.) OS. All the tools are there, free for the downloading. And they are designed to be used with thought.

という事が僕がリナックス(デビアン、フェドラ、ウブンツなど)若しくはBSD(FreeBSD, NetBSD, OpenBSD, Dragonfly BSD など)を推奨するわけです。必要な道具はただでダウンロードできます。考えながら使うようにできている。

Apple's Mac also works, but it's something of minefield.

アップルのマックも巧く行く事はありますが、若干は地雷田のように感じる時もあるでしょう。

But if you insist on using a Microsoft OS, Microsoft Windows whatever, there are Mingw and Cygwin. (See mingw and cygwin on wikipedia.) (And I blogged sometime about using mingw, in particular, to get an infinite precision calculator on your PC. I'm going to repeat that in this blog, I think, for both Mingw and Cygwin.)

では、マイクロソフト社のMSウィンドウズオーエスはどうしても使うなら、Mingw 及び Cygwin というものはあります。(ウィキペディアmingwcygwin も参考できます。)(つい先、 mingw を使って桁数の無制限電卓をパソコンにインストールすることについて英語でブロッグしました。このブロッグで、 Mingw と Cygwin 双方とものインストールについて、その投稿を繰り返すつもりです。)

One of the primary tools is the shell, so let's talk about that next.

主役の道具の1つはシェルですので、その話に行きましょう

Yes, Virginia, programming really is fun! -- ほんとうですよ、ヴァジニアちゃん、プログラミングは楽しい!

Programming really is fun.

イヤイヤイヤ、プログラミングは本当楽しいですよ。

Maybe not in the same way as watching a good football game, but fun.

まあ、フットボールを見るとちょっと違う楽しさかもしれないけど、本当に楽しい。

Something like the way playing Bugdom is fun -- exploring, poking around in the library to see what things do, squashing bad bugs and learning from unexpected features.

バッグダムで遊ぶ楽しさに近いかな?探検、ライブラリにモノをいじって反応を見たりして、悪いバッグを潰したりして、予期もしない造作から教訓を受けたりして遊ぶような楽しみ。

Some programmers say that programming is an allegory of living.

あるプログラマによると、プログラムの作成は生きることに類似したもの、人生の比喩であるようなことを言う。

(Hmm. I just looked that up on the web to be sure I'm not the first person who has ever said that. I'm not, but Plato's allegory of the Cave shows high in the results page. Not entirely meaningless.)

(さて。自分以外にそう言うことを言っている人が居るかを調べるためにウェブで検索しました。居るのは居るけど、検索結果の一番に出たのはプラトンの「洞窟の比喩」でした。全く意味のない結果とは言えないんですね。)

Now, Microsoft, Apple, and Oracle would have you believe that programming is hard. Probably because they want an excuse to take your money. But you pay to watch professionals play football, so why should they worry?

否、毎苦労ソフトやアップル、それともオラクルも、プログラム作成が楽しいと思わせたくなさそうですね。むしろ、難しいと思わせたいようです。多分、「皆が楽しいだとわかったら、だれもこちらの方にお金なんかやってくれへんやろう」と思っているに違いない。だけどな、プロがフットボールを遊んでいるのを見るために我々がわざわざお金を費やすのがあれば、そんなこと心配せんでええとちゃう?

Well, this blog is yet another experiment, that will probably go in fits and starts, too. (Am I being wasteful of Google's largess?) But I hope to present enough of an introduction at an easy level to break down some of the prejudices people have developed about it.

では、このブロッグはまたもう一つの実験です。これも詰まったりするでしょう。(グーグルの恩恵を頂いて無駄遣いにしていますか?)しかし、プログラム作成についていろんな偏見ができつつ、その偏見を撤退させっる簡単の紹介を作りたいのです。

To start with, you need to think about your tools.

先ずは、道具について考えましょう