Programing BIO


  BIO ?

Web 上で良く見かける「bio」という単語。いわゆる、「プロフィール」というような意味だと認識
してましたが、あらためて英和辞典を引いてみると・・・あれ?

単独では見つからず、正確を期する為に Web上のいくつかの「英和辞典」を使用してみました。
ところが、思ったような結果を返したのは一つだけ。細かい事ですが、こういうのって後々使って
行く上では大事ですよね。

で、意味はと言うと。

  

《口語》 (特に,短い)伝記.
BIOGRAPHY の省略形
  

どうやら、BIOGRAPHY ではちょっと堅苦しくなるようです。


  全ての始まり・・・・ X1

初期型のテープバージョンです。今だに、モニタだけは持っていてきちんとテレビは映るはずです。

・・・あれは、たしか大学の4年くらいの時だったと記憶しています。
友人の家へ遊びに行くと、なにやら彼のようすがいつもと違うように
感じ、ほんの少し違和感を覚えました。

それはなにやらあわただしく、また、それでいて満足感のあふれる
ものである事が彼の表情からも伺えます。そして、いつものように彼
の部屋へ続く2階への階段を彼の背中を見ながら上って行きます。

彼は何も特に言ってません。また、私も部屋へ着けば解るのだろう
と思っていました。

そして。

目の前に現れた濃い紫色をした見慣れぬ物体が・・・・・

X1 でした。




すぐ欲しくなりました。今考えれば他人が持ってるものをなにがなんでも
欲しがる小さな子供のような感情を持った人生最後の日だったのかもし
れません。

しかし、それがその後の人生を決定付けてしまいました。

  最初の言語 ・・・ Hu-Basic

私が夢中になったのは、ゲームでは無く 「プログラミング」でした。もちろん超がつく
初心者。キーボードを触るのも初めて。今のような漢字はもちろん使えず、後に表示
はグラフィックで作る事になるんですが・・・でかい。

記憶はテープ。BASIC のロードにすらエラーが出る事もあります。それでも 「プログ
ラミング」
という言葉さえ知らないまま、できる限りの事はしたと記憶しています。

ただ、今のように基礎知識も何も無い状態なので物事の根本的な理解では無く
体で覚えてました。「こうやったら、こうなる」的な連続でした。ですから、応用が
全く効かない状態です。

この後、普通の会社に勤めて(1年)そこで PC8801mk2 と出会い、やがてソフト
ウェアの会社に入り、やっと MS-DOS と出会うのですが・・・・そのあたりまでは
ずっとそんな感じでした。

やはり、まともな「プログラミング」を知るのは「開発」という中に身を置いてからです。

  BASIC BASIC BASIC

しばらくの間、2年くらいでしょうか。MS-DOS 上のBASIC と格闘しました。マシンは
会社のカラーから「Olivetti」というメーカです(マシンの呼び名は記憶の彼方)。

BASICで作るのですから、入力サブルーチンから表示サブルーチン、印刷サブルー
チンも全て誰かの手組み。それらを共通化して使ってたのですが・・・・

いまでこそ当たり前の基本的な事。「部品化」という「開発」では永遠の基礎となる概念
とそこで出会いました。自前でやたらだらだらとコードを書いてた「アマチュア」からの脱
皮です。それは自分自信はっきり意識していました。

「そうか・・・・こうするのか・・・・なるほど」

の連続です。これはエレガントなコードを書く事よりずっと重要な事だと思っています。
そして、繰り返しと改良のみが前へ正しく進むポイントであり、かつ地道な努力によっ
てしか成されないという事をいまだに痛感しています。

BASIC は今までに多機種も含めて色々やりましたが、「開発」となれば当てはめ方は
同じ。今現在に至っても「開発手法」ってのは当時とそんなに変わらない気がします。

(唯一 Quick Basic でやったグラフィック系はちょっと違ったかな?)

  そして COBOL

我ながら、笑っちゃいますが今めったに役に立たない知識をかなりの量習得した時期です。
3、4年やってたでしょうか。

ACOS-2/EF ( S410 )
ACOS-2/EVP ( S3300 )
OS400 ( AS/400 )

自分で言うのもなんですが、ACOS は制覇しました
ほんと、笑っちゃいます。あまり役に立たない(^^;

言語は COBOL COBOL/S IDL2
IDL2 を使用したプロジェクトをまかされた時はかなり会社に貢献したはずです。
慣れぬ人前での IDL2 に関する(いかに IDL2はすばらしいかを)発表を某K○ES
の大きな会場で発表させられた時は胃が痛かったです。



それでも経験として今でも通用するのは、早くからリレーショナルデーターベース
という概念を頭に叩き込んだという事と、セッションを意識したオンラインプログラム
のコード作成を延々とやって来た事ですね。結構財産になってます。Windows
になった時や、C でデータベースを使う時期には特に違和感は感じなかったです
から。


  超基本 "C"

当時汎用をやっている時、C のプロジェクトチームがあって、それを横目でみながら

「やりたいなぁ・・・」

と思う日々が続いてましたが、ごく自然とそっちへ行っちゃいました。

自分としては我が「プログラミング人生」はここから出発したと思ってます。今でも C
はさん然と輝く「明星」ですね。でも、知らない人に今から覚えろ・・・・なんてのは無
理だと思ってます。

「C を覚える」というのは、文法を知っていて、API を知っていて、コードが書ける・・・
というのとはちょっと違うと思ってますから。これは、それなりの自己犠牲とチャンスと
才能が無いと「覚える時間があるくらいなら、今必要な知識を得ろ」と言いたいですね。
それほど昨今の情報量は凄いですから。


  まずは UNIX

これはたまたま始めた時期のプロジェクトがそうだっただけなんですが、今思えば
ついてました。普通のなんでもやってる受託開発会社で UNIX をそうそう扱えるは
ずが無いからです。当時は会社も好調で、EWS まで買ってくれました。殆ど私専用
「おもちゃ」と化してましたけれど。

まだ経験不足から X-window のプログラングは無理でしたけれど、curses 使って
普通のノーマル画面のシュミレート関数作って異マシンで作ったソースの実行テスト
なんかをお遊びでやりながら、実際の開発にいそしんでました。

本来のマシンは Olivetti で、データベースは Informix。 EWS にDB は無かったの
で自作の index file system 作って代用。そういや、それで新人の教育なんかもや
ってたような気もします。



本筋からそれましたが、本来のプロジェクトは UNIX-C によるシュミレーションシステ
ムです。パラメータを入れてどうのこうのする「金融関係」のお仕事。画面ハンドリング
はメーカから提供されたライブラリを使用。DB は Informix ですが、一癖あって提供
されるインターフェースが簡易言語からしか無く、C から呼べなかったので 簡易言語
のC への変換ソースを読んで必要な部分を抜き出して使いました。

ま、結局リンク時の関数の名前の問題とかあってメーカに対応はさせたのですけれど。

  青本、vi、#define、レコードサイズ

UNIX は1年程でしたが、当時やってた事を思い起こすと出て来るキーワードです。

「青本」は正式名は忘れました。みんなが「青本」と呼んでいたので今だに表紙
のタイトルも思い出せませんが、UNIXの本としては「バイブル」的な存在だったと
思います。C の書き方はその本で覚えたのでは無いのですが、「イザ」という時に
ヒモを解くと、たいてい解決していたのを覚えています。

「vi」は体が覚えてしまうと便利なエディタですが、他のエディタが使いにくくなると
言う弊害がありますね。ですから、思い出として結構インパクトあります。

「#define」は多用しました。汎用で「マクロ」はかなりやってそれなりの成果を開発
で上げていたのであたりまえのように「雛型」作成用として使いました。当時外注に
も出していたので、かなり成果が上がりました。絶対に C は個人に好き勝手に書
かせてはダメですね。



データを定義するのに、struct を使用する訳ですが、当然その前にデータ設計が
あります。で、プログラムにする(.h)段階で結構その定義を間違う人が多く、また設
計変更や、設計での記述ミスとかが重なってデータがずれるという事が良く起こり
ました。

簡単なプログラムですが、struct を定義したテキストからレコードサイズや各項目
の位置や大きさを出力するプログラムを作ったら、みんなに感謝された・・・という
のが「レコードサイズ」です。

  PC9801 スーパーテクニックとの出会い

既に C はそこそこ書けるようになっていましたが、それだけです。ところが、この本
は衝撃的でした。およそ考えられるPC98 で可能なテクニックの殆どが記述されて
おり、それらを使った自作ライブラリを作るきっかけとなりました。

当時の PC98 を考えた時、アセンブラはある程度不可欠でした。アセンブラだけで
ガンガンコードを書く必要はありませんが、最低限の知識をもって自由に書ける必
要があります。当然自作ライブラリでは「インラインアセンブラ」を多用しており、ス
ーパーテクニックから引用した部分もあります。

しかし、「インラインアセンブラ」だけでは十分で無く、EXE との連携としてプログラム
のエントリポイントとしての COM を MASM で書く必要がありました。

結局アセンブラをかなり覚える事となり、シンボリックデバッガによるアセンブラデバ
ッグにもかなりの時間を費する事となったのですが、とても楽しい時期ではありまし
た。

  パソコン通信

開発と直接関係あるわけではありませんが、「フリーソフト」という範疇では無視できない
存在だったので、始めました。nifty とはその時からの付き合いです。

当時通信速度は 2400 でした。最初はモデムの設定とか頭痛かったです。こういう分野
ではしろうとでしたし。とりあえず、とある BBS にサインアップして「書き込み」というものを
始めたのですが、これが結構為になります。

第1に、「他人を知る」という意味では当時の BBS というものはある意味では最高の場所
です。また、「書く」という訓練によって文章が格段にうまくなって行きます。3年程の間書
きつづけたので、自分ではかなり有益だったと思っています。

それから、フリーソフト作者としていろいろアップロードしました。当時のフリーソフト雑誌に
も写真入りで何度か掲載され、多くの経験をパソコン通信経由でさせてもらったと思って
います。



VECTOR のCD に載せていただいたおかげで、インターネットになるまで CD が出るたび
にタダでもらっていたという余禄もアリです。

当時のフリーソフトは、PC98 限定がほとんどなので今はつかえませんが、以下のような
ものです。

[フルマウス・フルグラフィック]
RDMP (データ定義ファィルによる、各種データをレコードとしてメンテナンス)
FDMP (汎用バイナリデータエディタ)
READ (雑誌には、「福袋」なんて書かれてましたが、MS-DOS での グラフィク Shell です )

[Win16]
Winread (ファイラ ++ アルファ)

[DOS]
Former (レーザショット用 簡易定義言語・・・・これは実際の開発で使って感謝された)

  MS-DOS to Windows

この間は3年程ですが、この最後のほうにバブル崩壊がやって来るんですよね・・・

それはともかく、MS-DOS ベースでは「トリプル・アイ」「HISAM」というツールで開発
を続けてました。ですが、某住〇ゴムとかの仕事が多かったので PC を中心とした多岐
に渡るハードやソフトを利用した開発をしていました。

DOS の画面にビデオ画像映したり、ピアツーピアのネットワーク作ったり、当時としては
珍しかったディスク交換のできるハードディスク使ったり、RS-232C で計量器とのインタ
ーフェイス作ったり・・・・、目新しい事の連続でした。

もちろん Netware も後半では社内でのみ導入されました。「こんな便利なものは無い」
とまじめに思いました。現在はさておいて(^^

Netware は今でも使っていますが、古い当時のバージョンのままです。が、低レベル
のマシンでも特に問題無いパフォーマンスを誇っています。「SALVAGE」という便利な
ものがあるし、結構好きだったのですが、やはり過去の遺物と言われてしまうと返す
言葉が無いです。インストールは1回やったきりですが、結構やっかいではありますし。



で、Windows 3.1 へと時代が移って行くのですが(今考えると短い期間です)、「開発
言語」
として C を使うという意味において、Windows というのは開発者に荷が重かった
ようです。もともと、DOS の C といっても「書ける」というだけの人が殆どだったので、
Windows 3.1 での開発はやっていません。

ただ、個人的にはかなり制覇したと思っています。題材とした絶好の「ファイラ」を作る事
によって殆どの API は試しました。Winread は、Win16 ですが、いまだに開発メンバ
のデフォルトのファイラとなっています。「長い名前」が使えないですが、ファイル毎のコ
メント機能があるので、「開発」するぶんにはルールさえ決めてやれば問題は出ません。

LZH にも対応していますし、エディタの Mifes に特化した機能もあるので結構使いつづ
けられるものだと、我ながら感心しています。




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[personal]
claudebot
24/04/17 06:13:42
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube