My Best Teaching Is One-on-One

一対一が僕のベスト

Of course, I team teach and do special lessons, etc.

当然、先生方と共同レッスンも、特別レッスンの指導もします。

But my best work in the classroom is after the lesson is over --
going one-on-one,
helping individual students with their assignments.

しかし、僕の一番意味あると思っている仕事は、講義が終わってから、
一対一と
個人的にその課題の勉強を応援することです。

It's kind of like with computer programs, walking the client through hands-on.
The job isn't really done until the customer is using the program.

まあ、コンピュータプログラムにすると、得意先の方に出来上がった製品を体験させるようなことと思います。
役に立たない製品はまだ製品になっていないと同様です。

Friday, March 22, 2013

Free C on MSWindows -- MinGW -- エムエスウィンドーズ用の自由型C言語 -- ミン・ジー・ダブリュー

I do a lot of my programming work in C. That tends to make it inaccessible to many most of the people I associate with in the real world. (Ergo, disconnected from most of the people in my network.)
ボクのプログラミング作業は、C言語が結構多いのです。したがって、実世で関わっている多く殆どの人に対してはボクの作品などが難解な未知の世界のモノになってしまうのです。つまり、ボクのつながりに繋がっていないのです。

Which is frustrating. But there's something that might help (a little).
気に掛かるものです。しかし、状況を少しぐらい良くするものがあります。

I'd known about MinGW (Minimalist GNU for Windows) and CygWin (Cygnus tools for Windows) for quite a while, but it was only recently that I tried MinGW to solve one of the problems I have trying to help the PC club at the school where I have taught for the last five years.
結構昔から民事、エッと、ミン・ジー・ダブリューやキグウィンではなく、シグウィン(つまり、エムエスウィンドーズ用の小型GNUツールチェイン及びシグナス社のエムエスウィンドーズGNUツールチェイン)については知っていたけど、手を付けることは考えていなかった。しかし、この先の五年間ほど勤めてきている学校のコンピュータ部の応援関連、問題となっていたところの解決に、ミン・ジー・ダブリューを最近使って見ました。

[A little note here, I am currently (May 2015) recommending CyGwin instead of MinGW for beginners. Install and use is similar.
注意してほしいことがあります。2015年現在は、ミン・ジー・ダブリューよりもシグウィンの方を、初心者にお薦めしています。インストールも使い方も似たものです。
--Joel Rees 20150530]

C is about the most essential tool in programming. Absolutely fundamental.
プログラミングには不可欠と言える道具があれば、C言語うです。基本の基礎です。

But it is hard to get system administrators to let you put a compiler on your workstation, if your job does not seem to require it. Compilers cost money, but that's not the problem. The Intel processors and the MSWindows OS still do not properly protect the system from the adventuresome user, and compilers allow the adventuresome user to go adventuring in the system.
しかし、仕事に特に用が無いように見られると、システム管理者に頼んでも、ワークステーションにCのコンパイラをインストールさせてもらうのが結構難なのです。難しいです。コンパイラなんか高額ですけど、価格は特に問題でもないのです。インテルのCPU及びエムエスウィンドーズのオペレーティングシステムは、システムを冒険心を持つユーザから守るのが苦手です。安全対策がちゃんとできていないところが多いのです。コンパイラをインストールすると、冒険家がシステムのアチラコチラに探検しやすくなるのです。

C is considered especially dangerous because of pointers.
ポインターというものがあるから、Cが特に危ないと思われるのです。

Anyway, C is scary. So sysadmins don't help you get it. In fact, they may scream if you follow these instructions on your work PC. But C is important if you want the freedom to use your tools well, and if you want to teach the fundamentals of computer science in a relevant way.
まあ、とにかく、怖いです。要するに、シスアド方は手に入れるのを応援してくださらないのが多いのです。実際にところ、作業場のパソコンに、このブログの説明にしたがってやってみると怒鳴られる確率が少なくないのです。しかし、道具を使いこなす自由度には価値があればC言語は必要な技術です。また、コンピュータ科学の基礎を役立つものにするように教えるつもりなら、なおさら必須です。

Anyway, this is something you can do at home on you own PC. And it may help at work if there is a way to get the system admins to allow its installation.
とりあえず、家のパソコンにはいい手があります。また、システム管理者からなんとか許可を得るのが可能ならこれは役立つのです。

MinGW is small. You can download quickly, or carry it around on USB media, and install it quickly. You can even run it from USB media. The footprint is minimal, so it doesn't leave much behind. Especially, it leaves very little at all behind when MSWindows OS systems are set up to restore the system configuration to the official state at boot-up.
ミン・ジー・ダブリューは小さいです。短時間にダウンロードできます。又、USBの媒体に持ち運べて素早くインストールできます。置く場所が大きくなく、アンインストールするならほとんど跡を残しません。エムエスウィンドーズが起動時にシステムを元の状態に戻す設定をしていると、ほとんど何も残りません。

Of course, you shouldn't install it at work without permission, but it's small enough and clean enough that your system administrator may be willing to let you.
勿論、許可なしインストールはダメですが、小さくて影響が少なく、システム管理者はやらしてくれるかも知れません。

So, it provides one potential solution to one part of the problems faced when trying to teach the kids in the computer club how to really use computers. It also may allow me to distribute tools I build for teaching that I write in C. (I plan to write more on that on my Math and English [or maybe programming fun] blog.)
では、これで児童にコンピュータの本格的な利用を教えようと、出てくる問題の一部は対処できます。ボクの場合は、自作の、C言語で開発している教育用の道具を配布するのを可能にしてくれるかも知れません。(詳しいことは後に、ボクの数学と英語[もしかしてプログラミングの楽しみ]のブログにまた投稿するつもりです。)

(The other big problem is the students' interest. You can't force interest in programming, and trying to make it artificially more interesting than the latest youtube video or free on-line game tends to teach them the bait, not the real reward. Solving this problem just requires patience and creativity and time spent getting to know the students.)
(その残りの大きい問題は生徒の関心を引っ張ることですね。プログラミングに興味を強制することは無理ですし、流行りのユーテゥーブ映像や無料オンラインゲームよりも面白みを無理矢理に創りだそうと、本物の報いのプログラミング術の代わりに、その褒美にしているつもりの餌物を教えてしまうのです。実は、忍耐と想像力それに、児童を知りあって、一緒に時間を過ごすことよってこの問題を解決できます。)

Once you have the permission issues settled, installing MinGW is actually pretty straightforward. The project hosts their distribution on SourceForge, at http://sourceforge.net/projects/mingw/ (But you really want to check the link on MinGW's pages, of course. Search for it with your trusted search engine, satisfy yourself you are going to the right place to download the real thing.)
許可の問題をクリアしたら、そのインストールの手段はそれほど複雑ではない。プロジェクトはソースフォージの http://sourceforge.net/projects/mingw/ に掲載して公開配布しています。(日本のソースフォージにすると http://sourceforge.jp/projects/mingw/ ですが、自動的にできたページですのでそれほどの情報がありません。ちなみに、自分で MinGW のサイトに行って、リンクを確認して下さい。自分の信用できるサーチエンジンを使って調べて、本物のダウンロードページに行っていることを確認して下さい。)

Hosting on SourceForge gives a project's potential users some level of confidence that the project is not bait for installing malware, but, ultimately, you have to judge the danger factors for yourself.
ソースフォージに掲載するのは利用者になろうと考えているユーザ方に、プロジェクトが悪用ソフトウェアの釣り餌ではないことについて、ある程度の確信を与えるのにしても、自分でその危険性を判断しないと行けないのです。

They have a GUI installer, so you can download that. Look for the "Getting Started" link. On that page, find the link to "mingw-get-setup.exe". (It will be the same file as you will find on the installer section of the SourceForge download files page.)
グラフィカル感覚のインストーラはあります。それをダウンロードしていいです。"Getting Started" のリンクを探して下さい。そのページには "mingw-get-setup.exe" へのリンクを探したら良いです。(ソースフォージのダウンロードページのインストーラセクションで見つかるファイルと同じです。)
 For comparison, the url I have for the getting started page on the MinGW site is
http://www.mingw.org/wiki/Getting_Started
and the link for the Installer download files at SourceForge is
http://sourceforge.net/projects/mingw/files/Installer/

確認するために、ボクが指摘したい MinGW サイトの getting started ページのアドレスは
http://www.mingw.org/wiki/Getting_Started
ですし、ソースフォージのインストーラファイルのダウンロードページへのリンクは
http://sourceforge.net/projects/mingw/files/Installer/
です。一方、日本ソースフォージサイトの MinGW のこのページ
http://sourceforge.jp/projects/mingw/
の「Windows」リンクはこの同じグラフィカルインストーラです。

The graphical installer is small, so it doesn't take long to download, and it manages the rest of the download for you. The rest of the download does take about ten minutes to a half an hour if your computer is reasonably new (within the last five-ten years) and your internet connection is reasonably fast (1 Mb/S or better).
グラフィカルインストーラは小さく、ダウンロードは長時間がかかりません。その後のダウンロードはインストーラに任せて良いです。あまりのダウンロードの分は10分〜30分ぐらいかかります。(コンピュータが十年以内古くなくて、インターネットへの接続が現代的の最低1メガビット・秒の速度よりも早い場合なら。)

(Click the information button (i in a circle) on the files page in the sourceforge project to show the checksums, if you plan to check those.
(チェックサムを確認するつもりの場合はソースフォージのファイルページのの丸に「i」情報ボタンをクリックして良いです。

There's a chicken-and-egg problem with getting software to check the checksums. I suppose I should do a write-up on gnupg, too, to show how to start the bootstrap of trust at a different site.)
チェックサムを確認するソフトウェアを獲得することに、鶏と卵の問題があります。 gnupg の使い方を説明する投稿を私が書くべきです。ね。信用の関係をまた異なるサイトでブートストラップ法を案内すべきです。)

If you click the download link, you get an executable, so you don't have to unzip it. If you want to check the checksum, you should do that before you launch the executable the first time, of course.
ダウンロードリンクをクリックすると稼働可能ファイルを受け取ることになりますので解読は不用です。ただし、チェックサムを確認するつもりなら、無論、インストーラを稼働させる前に確認すべきです。

The installer has the usual stuff explaining what it does, and asking if you really want to install. Read it. If you are not familiar with the GPL license, go to the license pages on gnu.org and get yourself comfortable with the license terms.
インストーラは通常の「ご使用にあたっては」の説明が出てから、「本当にインストールしますか」と聞きに来ます。頑張って目を通して下さい。 GPL の利用許諾条件はあまり詳しくない場合は gnu.org のライセンスページを是非、参考して下さい。よく考えて、意味を充分理解して、納得できてからご利用になっていただきたいのです。

If you have questions about the license, more reading is available at the Electronic Frontier Foundation and the Free Software Foundation.
この許諾書について質問が出てきたら、 Electronic Frontier Foundationウィキペディアの記事)及び Free Software Foundationウィキペディアの記事)のサイトで更に詳しく案内してくれるのです。

Check the certificate. It something looks funny, ask someone. MinGW has a mailing list. (If you ask me here, I'll try to respond, but no guarantees that I'll get back to you very soon.)
証明書を見て下さい。何かおかしいと思われるなら誰かに聞いて下さい。 MinGW はメールリストがあります。(ボクにも聞いていただいてもいいですが、ご返事を指していただきたいのですが、どれほど速やかにできるかは、ごめんなさい。約束できません。)

If you don't feel comfortable, take your time. Back out of the installer. Think about it. Wait for someone on the mailing lists to respond. Patience is part of the cost of freedom.
納得できないならじっくりと考える間を設けて下さい。インストーラから後進して脱出して、必要ほどの考察をおねがいします。メールリストなどの返事を待って下さい。自由の一つのコストは忍耐です。

If you decide you are ready, launch the installer again and proceed to the dialog about which components to install and where. Leave the place (path) to install to as it is, unless you really know you want it somewhere else. (If you know such things, you aren't bothering to read this, now, are you?)
もし納得して、用意ができたと思われるなら、また起動して、何の部品をどこにインストールするかのダイアログまで進めば、インストール位置、いわゆる「パス」=="path" をそのまま置きましょう。(本当にその意味がわかって、別の場所に置きたいなら、この説明をなぜ、わざわざ読む必要があるかが、気になるはずです。)

At the package selection dialog, you want the C package, of course. You probably want C++ too, unless you know you don't. Select both.
パッケージ選択ダイアログに来たら、勿論言語のパッケージをダウンロードしたいのです。用がないとわかっていなければ、C++のパッケージも欲しいと思います。とりあえず2つとも選択したらいいです。

Unless you know you don't need msys, you need it. Select it.
そして msys のパッケージは必要だと思うべきです。確実の不用だとわかっている場合以外は選択して下さい。

The MinGW developer toolkit is likely to be useful, too, and doesn't take that much time or space, I'd suggest getting it, too. If you want to compile anything big you will need it. Yes. Select it.
さらに、MinGW developer toolkit の開発者用の道具箱も役に立つはずです。それほどの時間も場所も食わないので選択するのをお薦めします。大きいプログラムをコンパイルする時には絶対に欲しいのです。選択して下さい。

Ada, Fortran, Objective-C? Select them if you think you might be interested, and can stand five to twenty more minutes of download/install time. Or you can get them later with the mingw-get command-line package tool. (Which I describe a bit below.)
他の言語の AdaFortranObjective-C については、面白いと思われるなら選択してもいいでしょう。さら5〜20分掛かるだけです。また、後にコマンドラインのツールの mingw-get を使ってダウンロードできます。(以下は少しだけ触れますが。)

Hit the proceed button and wait. At the end, it asks if you want the shortcuts installed. You probably want at least the one in your "Start Menu". Check that.
進むボタンを押して待ちましょう。終わったら、ショートカットをインストールして欲しいかを聞きに来ます。少なくとも、スタートメニュに入れるのをお薦めします。ここにチャックを入れれば良いです。

Click finish.
完了のボタンをクリックします。

There is some talk in the documents about modifying your system path in the control panel. Unless you know you need to, don't. Sure, it's fun to run a C compile from the MS-shell command prompt, but you don't need to do that right now.
説明の文章にはシステムパスの変更についての説明がありますが、特に用がなければ、変更なしでそのまま使うのをお薦めします。正にマイクロソフトのシェルのコマンドプロンプトからコンパイルを開始させるのが自慢できるかも知れませんが自慢だけのための面倒は今要らないでしょう。

Once you have it installed, you can go to the Start menu and find MinGW, and start up a MinGW shell. (You did select msys, didn't you?)
インストールを完了してから、スタートメニュの中に MinGW を見つけて MinGW のシェルを起動させることができます。(msys を選んでいるでしょうね。)

You can type in your helloworld.c program using MSWindows's own Notepad text editor accessory, or you can use vim (You did install the developer tools, didn't you?). Well, okay, if you are still reading this blog instead of playing with exploring MinGW, you probably want to type in your first program with Notepad, not vim, but finding where to save it is a bit tricky.
ここでは、エムエスウィンドーズのノートパッド文字エディターを使って helloworld.c のプログラムを打ち込んで良いです。それとも、 vim を使っても良いです。(Developer tools も選んでいますね。)まあ、まだ遊べだしている、探検しだしているのでなければ、 vim よりもノートパッドの方が楽でしょうが保存する場所を見つけるのはちょっとコツがあります。

If you left the install path as the installer suggested, your msys shell's home directory for you is at
インストーラの推薦の位置にパス("path")を置いているならば、 msys シェルのホームディレクトリは
c:/MinGW/msys/1.0/home/username  
にあります。

(The version may progress from 1.0 sometime. The username will be your MSWIndows login user name.) That's where you should save your first program. (Oh, and get used to the slashes. MSWindows will show them as it does, yen sign in Japan, backslashes most other places in the world. msys will show the path name separator as Unix would, with a forward slash.)
(いつか、バージョンが 1.0 から上がっていくでしょうけど。ユーザ名はエムエスウィンドーズのログイン名になっているはずです。)この位置に最初のプログラムを保存すれば良いです。(ああ、そうです。スラッシュに慣れるしかないのです。エムエスウィンドーズはエムエスウィンドーズのまま、日本では半角の"¥"、世界のほとんどでは半角の"\"で表示し続ける一方、 msys はパスの区切り文字を Unix の世界に従って、正スラッシュの"/"の半角文字で表示します。)

Not sure what program to type in for your beachhead program? Here's a variation on the typical helloworld.c program:
浜攻撃のプログラムとして何を打てばいいかまだ迷っていますか?以下の典型的な「世界、よ!」のプログラムのちょっと変えたものが良い、かな?
-----------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>


int main( int argc, char * argv[] )
{
 
  printf( "The compiler is working.\n" );
   printf( "1 + 1 = %d\n", 1 + 1 );
   return EXIT_SUCCESS;
}

-----------------------------------------------------------

Save it under your msys home directory, as something like "testing.c".
msys のホームディレクトリの下に "testing.c" のような名称で保存して、

Then go to your msys shell and type in
msys シェルに行って
ls
と打ち込んで、エンターキーを押します。
and hit the enter key. It should show the name you saved the source under in the file listing.
ファイルリストの中に保存した名前を見せてくれるはずです。

Now assuming you saved it as "testing.c", type
それで、 "testing.c" という名前で保存した場合、
cc -o testing -Wall testing.c
と、打てば良いです。

If the compiler gives you warnings and errors, check what you typed in the program source. If the compiler says nothing, it worked. Check the results by typing "ls" in the shell and hitting enter again. You should see the executable object, testing.exe in the list, along with the source file.
コンパイラが警告やエラメッセージを発生してくれるなら、打ち込んだプログラムソースをもう一度確認して下さい。しかし、何の文句が発生されない場合は完成です。結果を確認したいので、もう一度シェルに "ls" を打ってエンターキーを押と、リストの中に、ソースファイルと一緒に testing.exe も出てくるはずです。 

Now try running it. Type 
さて。起動させてみましょう。 
./testing
and hit Enter.
と打ち込めばエンターを押しましょう。

If it prints out what the source would lead you to expect it to, you have a functioning C compiler. Cool enough, hey?
ソースから見て期待するメッセージが出てきたら、利用可能なCコンパイラがコンピュータにインストールされています。カッコエエ、かな?いや、素晴らしいことです。

Now, about the mingw-get command. Let's get a list of components. type:
では、 mingw-get の命令はどうしましょう?部品をリストアップしましょう。次の命令を打ち込みましょう。
mingw-get list

(I don't know the difference between list and show yet.) That scrolls by too fast to get a good look at. Try this, instead:
(今のところ、ボクは list と show の引数の違いがわかれりません。)アアアッ!スクロールが早い!何が入っているか読めない。ヨッシ!次の命令をやってみよ。
mingw-get list | less

You can hit the enter key or the spacebar to scroll through the output.
これでエンターキーかスペースバーを押すとリストの出力を少しずつスクロールして行けます。

If that's still too much trouble, or if less somehow didn't get installed, try this:
それはまだ面倒なら、あるいは less はなんとかインストールしていない場合は
mingw-get list > packagelist.txt

and open packagelist.txt with Notepad or vim. That allows you to look at the packages available.
と打って、この命令でできるはずの packagelist.txt を Notepad 若しくは vim でを開けば良いです。ゆっくりとダウンロード可能なパッケージを閲覧できます。


You can get the documentation manual pages for installed packages by doing "mingw-get install" on the package from the command line. After the download, it will complain that the package is installed, and then it will proceed to install the manual pages. Which is just what you want.
インストール済パッケージの説明書の man ページをインストールするにはコマンド行から "mingw-get install" を送ることができます。ダウンロードが済んだら mingw がパッケージがもうインストール終わっているのだ文句を言って man ページをインストールしてくれるのです。これで結構です。

Let's check by looking at the man pages for vim:
vim の man ページを出して確認しましょう。
man vim 

If less or man or something else important didn't get installed, or if you need man pages, scan through the packagelist.txt file I just told you to create, find the package name for it, and mingw-get install it. For example:
less とか man など、大事な物や、他の man ページなどがちゃんとインストールされていない場合、先ほどの作り方の説明の packagelist.txt ファイルを見て、そのパケージ名を探して、 mingw-get インストールしましょう。例えば、
mingw-get install msys-less

will install less if it hasn't been installed, and it will install the man pages for less either way.
とすると、 less のインストールができていなければ、 less をインストールします。どちらにしても、 less の man ページもインストールしてくれるはずです。

And, of course, there's the help option, to find out what else you can do with mingw-get:
それで、 mingw-get で他にどんなことができるかを見たいでしょう。ヘルプを出しましょう。
mingw-get --help

That should get you started with MinGW.
英語はちょっとつらいけど、これで MinGW を始めることができます。

You can also compile, test, debug, and maybe install software you pick up the source code for elsewhere, of course.
いろんな所で拾えるソースコードをコンパイルしたり、試用したり、修正したりできます。場合によってインストールもしたいでしょう。

My asm68c and bif-c projects compile okay, but they seem to have some issues in addition to the bugs I'm already trying to make time to fix.
ボクの asm68cbif-c プロジェクトはコンパイルしますが、只今対処中のバッグ以外に何らかの不具合あるらしい。さて。

Especially, you can compile and install the *nix basic calculators in the bc package.
特に薦めたいのは *nix 世界の基本電卓の bc パッケージをコンパイルしてインストールできます。

bc is way cool.
bc はすごいです。

No comments: