はてなキーワード: アセンブラとは
毎日仕事ができなくて凹んでます。元増田の2年目が羨ましいです。
研究室では解析アプリケーションを作るのにC,C++,Fortranをいじってました
また趣味でサーバの立ち上げやWeb系のJavascriptやPHP,Pythonなどもいじっていました。
まったく違う。組み込みとWebとアプリケーションで文化が違ったわけです。
ここからはあくまで私の体験ですが…
まず、組み込み系はハード(接続図)を読めないと話になりませんでした。
CPU、FLASH、SRAM、FPGA、CPLD、アナログ回路、バッファ、それらをつなぐバス、電源、接点、コネクタ、スロット、A/D、D/Aなどなど、
これらがどうつながってるか意識しなくてはいけません。SoCとか行っても接続図読めないと意味ありません。
次に、FPGA・CPLDの設計があります。言語はVerilogかVHDLです。Xilinx、Altera、Actel等のデバイスに書き込みます。
PLDって言うのは言語で書けるハードです。似ているようでCPUと違うので設計にはスキルが必要です。
この段階でシミュレーション(modelsim等)をしてもらいます。
次にCPUです。言語はC,アセンブラ、C++です。でもほとんどがCです。デバイスはルネサスのSHとかです。自分はここで見習いをしてます。
CPUに直接入ってくる信号(接点・バス等)もありますが、前述のFPGA・CPLDから入ってくる信号のほうが多いです。
で、アプリケーション・Web系と何が違うかといえば、ものすごい短期間にいろんなことが起こります。
リアルタイム処理っていうのでしょうか。割り込みとか聞いたことありませんか。
要はOSがないので自分でなんでも考えなきゃいけないわけです。
CPUの検証はMISRA-Cや専用のカバレッジテストツールで行います。
接点の調整とかLCDパネルとかメンテナンスのツールだとかがないと装置に指令を出せません。
これらにもCPUが入っているわけなので別にコードを書く必要があります。組み込み系の仕事です。
これは言語でかけるリレー回路です。リレーってのはスイッチです。
スイッチを操作することで接続されている機械を操作(電源の入り切りとか)します。
これもCPU,PLD等とは全く違う方式(ラダー)で書きます。十分組み込みの仕事です。
ユニット試験では通っても、組み合わせ試験で動かないというのは100%あると思います。
試験の仕事じゃないと思われるでしょうが、自分はここも立派な組み込み系の仕事だと思ってます。
などなど一言で組み込み系の仕事といってもいろいろあるわけです。
上の中の2つ3つを仕事に使えるレベルまで持って行くには10年、20年はかかると言われました。
ここで表題の件なのですが、元増田の人は経験8年なので、例えばFPGAを8年やってきてCを書けと言われても大変だと思います。
特にその後にWeb系の仕事(これも一言で表すにはいろいろジャンルがあると思いますが)をされてきたとのことなので
いろいろとあったのだと思います。逆にずーとやっていた分野のことを任せるといいかもしれません。
まずどんなことをやってきたのか聞いてみたほうがいいと思います。
さらに言えば
if( ptr != NULL ) は 本来 cmp eax,0に展開されるべきだが(最適化を無視すれば)
if( ptr ) は 正しく test eax,eax を意味している。
つまり、 意味論的には、 if( ptr != NULL ) と if( ptr ) は別物で アセンブラ的には if( ptr ) って書けよと。
もっと言えば、直近でptrを演算していれば 最良の最適化ではtestすら抜けるかもしれない。
というのが本来 アセンブラをより簡易に書くC言語系列の宿命のはずなんだが、なんか、アセンブラを無視してC++言語が改造されていくなぁと
ちょっと思った。
なぜ NULLが0でなければならないか?
if( ptr != NULL ) つまり if (ptr) に最適化される命令のアセンブラ展開は
test eax,eax;
je label;
に展開されるが
if( ptr != 1 ) つまり 0以外への比較のアセンブラ展開は
cmp eax,1;
je label;
に展開される。test 命令は実質 AND命令 論理積 であるが CMP命令は実質比較演算子。
今は どちらも 1サイクル未満の命令なので どうでもいいことではあるが 当たり前だが CMPよりTEST命令のほうが 軽いので
CPUへの負荷をきにして、歴史的経緯で 0 が採用されている。
また、NULLは初期値になることが多く 0 にしておいたほうがメモリ的にもお得。
http://anond.hatelabo.jp/20130223090512
三行でまとめると
PSのビジネスモデルを振り返ってみるのだが、この切り口から行くとPSはSONYの半導体戦略、そしてSONYは製造業と言う性質とと切っても切れない関係がある。
利用上の注意
なおすべて妄想となっておりますので、これを真に受けて被った損害などについては一切責任を取れません。皆様におかれましてはその旨ご了解のうえご覧いただけますよう、よろしくお願いいたします。ご協力頂けない場合につきましては、いい歳こいたアラフォーの髭ヅラ男が涙目になると言う非常にウザイ状況が発生することとなり、誰も得をしません。ご理解とご協力をお願いいたします。
SONYがゲーム機を一緒につくろうと言って任天堂に近づいたものの交渉が決裂してできあがったのがPSであったわけだがこれが大ヒット。
さらにPSでは、内部で使われている半導体を自社設計・自社かそれに近いFabで作る事によって
など副次的な効果もあり、さらに「SONYの旗艦」といったイメージを作り上げることができた。この他に、CD-ROMを手がける部門や、SONYのCDプレス工場部門等々、PS景気により、直接的なPSによって生み出される効果以外に、PSという揺るぎない需要が存在する事で、設備投資などに積極的になれたといった効果がうまれた。
初代は始めどこまで意図されいたかは不明だが2台目ではそれらの経験が生かされる事となりより強化された。まず一番は半導体工場で有り、旺盛なその需要と、それによって得られた利益を投資に回し新プロセスを開発、シュリンクすることによって最終的な黒字を目指すことで赤字で販売をスタートすることとなる。
ゲームハードは赤字でも、ソフトが売れれば黒字。こんなの当たり前だろ、と言う話であるが、総合情報機器メーカであるSONYでは少し事情が異なる。これは、ソフトウエアライセンス事業による利益によって、間接的に半導体生産の設備投資を補填すると言う形を意味する。もちろんそれ以外にもSONYの製造部門にもPS2が赤字でも販売すると言う行為によってもたらされる間接的な利益が流れた。
ご存じの通り、PSは我が愛する芸術品たる至高のゲーム機Dreamcastを完膚なきまで叩きのめし世界最高の企業セガをプラットフォーム業から引きずり卸しパチンコ屋に買われる所まで追い込む等大成功をとげた。そしてゲーム機生産により、SONYの製造業部門を引っ張っていくという当初の見込みは大成功した。
PS3の時代になると、パソコンの旺盛な需要の元、急速に進化した集積回路は、プロセッサの新規開発コスト、さらに半導体のプロセス開発に必要な資金が膨大に膨らむという現実に、様々な企業が立ち向かうよう時代が来ていた。世界の巨人たるIntelと、それ以外という構図が生まれ、世界中でFabの統廃合が進んでいた。
その中で目をつけられたのがゲーム機という存在である。パソコンに対抗できるほどの膨大な需要を生むゲーム機は、薄利という性質を持ちながらも数が出るため、生産設備を拡大しやすくプロセス開発の資金を捻出する事に有利であった。さらにSONYは、ゲームハードウエアが、当時のパソコンなどに比べて圧倒的に高い性能を持っていなければ存在価値が無い、と言う観念を持っていた。これはかつて任天堂がもっていた思想であった。
さらにIBMなどの思惑とも一致、開発がされたのがCell B.E.であり、この存在がPS3を生んだ。そう、ここまで来てSONYは、半導体のためにゲーム機をデザインしたのである。
もちろんこの説にはいろいろな異論はある。しかし俺は順序としては、ソニーグループ全体の長期的な戦略にPSが生む半導体工場の増設という戦略が大規模に組み込まれていたのは間違いないのでは無いかとみている。そこで完成したマシンは、化け物であった。現在まで続く潮流であるGPGPU的な動作もこなすCell B.Eがもたらす高性能と、高い拡張性を備え、既にゲーム機では無いとまで言わしめるものができた。この性能は当時の最新鋭コンピュータを大幅に上回るものであった。
しかし……。GPGPUの概念は早すぎた。性能を引き出すことが、当人であるSONYでも難しかったのである。そしてこれはミドルウエアや開発ツールの乏しさにも繋がる。そのためスタートアップに失敗した。この失敗は、PSがゲーム機として優れていなかった、あるいは、他者装置に負けた、と言う意味で失敗では無い。製造業としてのSONYが、自社の思惑通りに事を運べなかったと言う事での失敗である。
結果SONYは、PS3の需要を当て込んだ生産設備をリストラ・売却するなどの対処をを迫られる。さらに韓国勢などの追い上げ、AV市場の急速な変化、SONY本体の体力の低下、パソコンの高速化などにも影響を受けることになる。
PS3そのものは、OSの改良、ミドルウエアや開発ツールの向上などにゆっくりではあるが立ち上がってきたが、製造業としてのSONYがPS3に期待した効果は得られず、ハードウエア屋、製造業がみた夢はここに破れた。
さらに時代は動き、集積回路は、Intelがプロセスで1世代以上先を行き、それ以外はすべて後から追うという構図が完全に定着してしまった。SONYも、SONYの半導体と言えば、集積回路ではなく画像素子、と言う時代が来て久しい。世界中で半導体製造業者の統廃合は進み、国内半導体産業は衰退した。新プロセス開発の難易度や、集積回路の大規模化から来る開発コストの上昇はいかんともしがたくなっていた。
ゲームが必要とするスペックはもはや飽和している。少しでもリアルに、少しでも高性能にと言う方面はすでにマニアのものだけになってしまい、それら需要だけで、そのとき販売されているパソコンを上回る高性能チップを開発、載せるコストを満たすことはできなくなっていた。具体的に言えば、ウルトラハイスペックの、GeForece GTX SLIクラスにも勝ちうるGPUを、専用設計でオーバーヘッドを極力少なくすることができるとはいえ新規設計することが難しくなっていたのである。さらにはゲーム機業界ではスペック競争を離れた任天堂がWii、あるいはDSを生み出し、ケータイ、そしてスマフォとと言う存在がカジュアルゲーム市場をかっさらうようになった。特に日本では据え置きゲーム機がリビングルームに置かれ、パーソナルな空間に置いてゲーム機は携帯ゲーム機になったのである。
そして決定的だったのが、ゲームエンジンの躍進と越境であろう。従来はゲームエンジンや製作環境はゲーム会社の門外不出のものであった。しかしそれらが会社を通じて流通し始め、さらには専門業者も現れるようになったのである。
家庭用ゲーム機と言えば、ゲーム機の性能を引き出すためにソフトごとにアセンブラで最適化チューニングを施す。それを行っても常に動作が一定になることがメリットとして、パソコンに比べてゲームは常に一定の動作をすることが担保できるためにゲーム製作に専念することができた。しかし、パソコンは十分に高性能になった。家庭用ゲーム機も十分に高性能になった。その結果、チューニングを行わなくてもそこそこの画面が作れるようになってきたのである。そこで余った能力はゲームエンジンのオーバーヘッドを許容するようになり、ゲームエンジンの躍進に繋がった。さらにゲームエンジンはプラットフォーム間の差異すら吸収し始めた。あるゲームエンジンを採用すれば、あまり手間をかけること無く、パソコン版、PS版、XBOX版、Wii版と複数プラットフォームで出せるようになったのである。これは、ゲームエンジンが新たなるゲーミングプラットフォームとして君臨する可能性を示唆していた。
しかし、チューニングなどといった、ユーザとは直接関係の無い部分に手間をかける必要が無く、作ったゲームがどこでも動く。これはクリエイタとしては非常にありがたい事なのでは無いか?
ビジネス書に出てくる例えがある。ユーザはねじ回しが欲しいのでは無い。ねじを回したいのである。同じように、客はゲームがしたい、もっといえば楽しいことがしたいのであって、別にゲーム機が欲しいわけでは無いのである。クリエイタはゲームを作りたいのであって、ゲームハードウエアを使いたいわけでは無いのである。ここに合致したのがクロスプラットフォームなゲームエンジンであり、そしてこれらはクリエイタに作りやすい環境を提供し始めた。さらにゲームエンジンは新たに現れたライバルである、タブレット/スマートフォンにも対応している。
しかしゲームエンジンの躍進は、プラットフォームビジネスの崩壊を意味したし、PS3は性能を引き出すには高いレベルの専門的チューニングが必要であった。しかしゲームエンジンはそこにコストを払う事を選択せず、PS3は高い性能を持ちながらも、それ以外のあまり高性能ではないプラットフォームとほぼ同等、せいぜい高解像度のテクスチャーに入れ替えられた程度のゲームしか提供されない、と言った事が発生するようになっていた。
そしてPS4が出た。
PS4は有り体に言って、x86-64アーキテクチャのコンピュータに、OpenGL/CL対応のGPUを搭載した、本質的にはそこらのパソコンと変わらない構成である。
さらに言えば、最新のCorei7+GeForce GTX…と行かなくとも、そこらのパソコンに較べ、性能は高くない。しかし、根本的にゲーム専用機が持つ、汎用パソコンには無い特徴
を備えている。さらには、GPUを扱いにくくする要因の一つとして上げられる、GPUとCPUのメモリ転送をほぼ考えなくて良いと言う仕様を打ち出してきた。これはCellとCPUのプログラミングが分断され、非常に開発を困難にしていたPS3の反省をダイレクトに生かしてきたと考えられる。これはAMDが出していたコンセプトだ、と話題に上がるが、あくまでもパソコンの話であって、ゲーム機の分野では少なくとも、PS2がプログラミングが困難な部分を、高速なバスで繋ぐことで隠蔽するよな仕様であったように記憶している。
さらにx86-64アーキテクチャにしたことで、ゲームエンジンがPC向けエンジンの次に、素早くPSにも対応できる素地を整えた。Power向けに施す必要のあるチューニングを不要にしたのである。従来はパソコンで開発されたクロスプラットフォームのゲームは、パソコン向けと、家庭用ゲーム機向けの2種類作られた。そして家庭用ゲーム機向けは往々にして、ターゲットとなるハードウエアの中で一番性能の低いところに合わせたデータで作られた。平たく言えばPS3の方がXBOX360よりもはるかに映像表現は優れているのに(※ただし使いこなせれば) XBOX360との差異はテクスチャやムービーの解像度程度の違いだけになってしまう事を意味していた。しかしx86-64にしたことで、家庭用ゲーム機向けに統一してダウングレードされたデータからPS版を生成させるのではなく、パソコン向けのデータから生成させた方が早いと言う状況を作り出し、他の家庭用ゲーム機にくらべてアドバンテージを得ようとしているのでは無いだろうか。これはPS VitaがARMを採用したことも同じ事である。
さらに、SONYは、PSVitaから進めてきた戦略として、自社による強力にプラットフォーム感の差異を吸収するミドルウエア群…これはゲームエンジンと読んでも良いのかも知れないが…を提供してくるだろう。x86ならば従来の資産を生かすこともできるし、世の中に出ているコンピュータ向けのライブラリも利用できる。急速に開発しやすい環境を立ち上げているのではないだろうか。これはゲームエンジンにより脅かされる、プラットフォームビジネスへの対抗措置でもあるだろう。
これにより「雑事に捕らわれること無く、ゲームの楽しさ・表現そのものに専念する」と言うクリエイタの夢を叶えるハードウエア、それがPS4であろうと思う。
平たく行ってしまうと、自社の半導体商売が死んだことにより、その死絡みから解き放たれたPSは、クリエイタ主導でゲームを作ると言う根本に立ち返って作ったのがPS4だ、と言う話である。
しかしこれだとハードウエア、製造業の夢はどうなってしまうのだろうか?そしてユーザは別にクリエイタの夢などはどうでもいい。下手をすると高性能なハードウエアを所有していると言う欲を満たせなくなる分だけこちらの方がまずいかも知れない。それをどうカバーするのか?と言う話になる。
SONYは、次世代戦略として明らかにソフトウエア重視に舵を切っている。SONYは今、収支から見ると製造業では無く金融業であるが、その次に利益を生み出しているのは音楽・映像ソフト部門とゲーム部門である。
まずはここを潰してしまっては会社として立ち行かなくなる。それはまずい。ではどうするかというと、従来の「製造業としてのSONYを強くするために、PSの需要を利用する」のではなく「コンテンツ・製造複合体としてのSONYの核にPSを据え、関連商品を生み出す形で恩恵を得る」と言う形に舵を切ってくることになる。PS3でも一部行われているが、たとえばPSのリモートプレイを可能にするパソコンやタブレット、PSを再生装置としてコンテンツを供給できるメディアサーバといった具合である。
しかしこれらに対応させるために大切なPS本体の魅力を失わせては困ると言う事は強く意識されなければならないし、意識されていくだろうと思う。
ユーザの夢は、将来的には作りやすいゲームプラットフォームが生み出す新しいコンテンツという形で満たされることになるだろうが、直近では、ソーシャルへの展開という形で示されていると思う。将来的にはいかにコンテンツを集められるかと言う事にかかっている。が、ぶっちゃけていうとユーザから見たら、これほど夢の無い話は無いと言わざるをえない。
今回発表されたタイトルのデモなどは実際にはチャンピオンで有り、実際にプレイして得られるのはPS3とそれほど感覚的に、革新的に良くなったと感じる部分は薄いと思う。この点で、PS4は、PS3と実働コンテンツはそれほど変わらないと思っている。マイナーバージョンアップ程度。パソコンがWindows XPで評価が固まったようなものである。これはおそらく次に発表される新型Xboxでも同じだ。任天堂は少し別格の応えを出したが苦戦している。
かつてセガが出した芸術品とも言える至高のゲーム機、DreamcastはOSにWindows CEを搭載した。プロセッサこそ独自であったがそれは当時のWIndows CEではあたりまえであり、むしろそこにWindowsと言う汎用のソフトウエアを利用したことで非常にゲームが開発しやすく、PCゲームが移植しやすい環境を作り上げた。それらはアーケードのnaomiプラットフォームや、ワンチップで埋め込まれたパチンコなどで今でも生き続ける。
任天堂がWiiUでコントローラに画面をつけDreamcastに追いついたように、SONYは、PS4で作りやすいゲーム機という点で追いついたと言える。
またしてもセガは早すぎた。時代がセガに追いついていなかったのである。Dreamcastはその名の通り「夢を投げる」存在であったのだ。
「ポインタが理解できない派」はそれができないから理解できないんだよ。
俺は学校でアセンブラもやったしポインタが解らないなりに勉強しているうちに突然ひらめいたクチ。
「なんでこんな簡単な事が解らなかったんだ!」ってね。
今時のパソコンをいきなり与えられた人(普通はそうだけど)は、そもそもポインタなんて機能が何故必要なのか理解できないと思う。
JavaとかPerlとかVBとかは、扱いたいデータを直接切り貼りするだけでプログラムとして成立するし、それで十分なわけで。
そのレベルでコンピュータの仕組みや、メモリの使い方を理解する必要性は、普通は全く感じられないからね。
それにポインタを意識しながらプログラミングするというのは、前述の演算に必要なデータ構造に加えて、メモリ管理上のデータ構造も扱うという、2重のデータ構造を考えないといけない。
これはプログラム初心者には全く想像できない領域だし、そうそう簡単な事じゃないと思うわ。
ましてやC言語の*pとp[]の交換性が、基本環境依存のデータ型のバイト長をいちいち把握しながらポインタ演算してアクセスなんて面倒でしょうがないから結構必須とか、そもそもポインタ演算を使いこなせればハードのリソースをビット単位で搾り取れて、それをアセンブラよりはシンプルかつ抽象的に実装できるC言語は非常に効率がいいとか、まず理解不能でしょ。
そんなことが必要な分野が世の中にはあるという現実すら知らないだろうし。
尤もマイコンキットから入って「メモリにデータをロードして、そのデータのメモリ上の格納場所がCPUから分かるように(ry」というアプローチなら、ポインタを使う以外に方法が無いので嫌でも覚えるだろうけど。
見出しはこれ http://anond.hatelabo.jp/20121219191602
http://toro.2ch.net/test/read.cgi/unix/1288765389/232
232 :名無しさん@お腹いっぱい。:2012/03/25(日) 15:05:26.72 今月はじめ、職場に新しいPC(Pentium4の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要がありOSにオープン系を採用するのは 聞いていたのですが、搬入されたPCのダンホール箱に乗っかっていたのは UNIXのインストールパッケージでした。 「うへぇ~、よりによってUNIXかよ」 デバイスドライバがない、コマンドが変・オプションがない、X環境が古い、 今の奴は日本語入力大丈夫なのか(Wnn/Canna/kinput2)、将来の64bit移行はどうなのか、 今時のネットで必須のflashのプラグインは存在するのか不安はつきませんし、 非メジャーなのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一CADなどのエンジニアリング環境が充実していたUNIXは大学など 教育機関に浸透していて、日本のUNIX界に多くのバカを輩出しました。 これから私は、おそらくそういうバカが、makeしてもemacsが入らない、 TeXが入らない、コンソールでEUCは使えないのか、Rubyが使えないのかなどと、 サバ管気取りの偏ったどうでもいい我侭を言い出し、(だから鯖にするんじゃねーよ、 鯖の常識で話すなつーのに)それと戦わなければならないのでしょう。 そして時代によって決着している、過去10年のUNIX界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではPlamoでもDebianでもRedHatでもKondaraでも Slackwareでもなんでもいいですがメジャーかつ現行のLinuxにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1355909018/4
4 :名無しさん@お腹いっぱい。:2012/12/19(水) 18:44:07.79 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、複数マシンでファイルを共有するのは 聞いていたのですが、起動したマシンの/etc/fstabの項目に書かれていたのは nfsという文字でした。 「うへぇ~、よりによってNFSかよ」 ファイルロックすると刺さる、ファイルを消したのに.nfsXXXが残る、 今の奴はACL大丈夫なのか、ファイルのCapabilityに対応してるのか、 今時のLAN上で使ってもセキュリティは大丈夫なのか不安はつきませんし、 ユーザーが減ってるのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れてすりこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一ローカルディスクかネットワーク上かの区別なく透過的にファイルに アクセスできたNFSは大学など教育機関に浸透していて、日本のストレージ界に 多くのバカが輩出しました。 これから私は、おそらくそういうバカが、ファイルに書き込んだら所有者がnobodyに なっちゃったよとか、タイムスタンプがずれるよとか、NFSv4にしたらマウント できなくなったよとか、TCPよりUDPの方がオーバーヘッドが無い分速いはずだよね などと、鯖管気取りの偏ったどうでもいい我侭を言いだし、 (だからNFS鯖にするんじゃねーよ)それと戦わなければならないのでしょう。 そして時代によって決着している、過去25年のNFS界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではSambaでもNetatalkでもFTPでもなんでもいいですが 安定してユーザーが多いファイル共有システムにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1351627596/3
3 :名無しさん@お腹いっぱい。:2012/10/31(水) 10:57:28.82 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要がありOSに*BSDを採用するのは聞いていたのですが、 搬入されたPCのダンホール箱に乗っかっていたのはFreeBSDのインストールパッケージ でした。 「うへぇ~、よりによってFreeBSDかよ」 カーネルが変、日本語環境がない、ソフトが変・揃ってない、今の奴は 日本語文字コード大丈夫なのか(utf-8)、x86_64環境は大丈夫なのか、 今時のネットに繋いでもセキュリティは大丈夫なのか不安はつきませんし、 非メジャーなのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れてすりこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一PC98環境が充実していたFreeBSDは大学など教育機関に浸透していて、 日本のFreeBSD界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、ポーツ(笑)でemacsが入らない、 TeXが入らない、コンソールでEUCは使えないのか、Rubyが使えないのかとかなどと、 鯖管気取りの偏ったどうでもいい我侭をいいだし、(だから鯖にするんじゃねーよ、 鯖の常識で話すなつーのに)それと戦わなければならないのでしょう。 そして時代によって決着している、過去20年のFreeBSD界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではUbuntuでもdebianでもFedoraでもRHELでも OpenSUSEでもなんでもいいですがメジャーかつ現行のLinuxにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1209056071/887
887 :名無しさん@お腹いっぱい。:2012/10/21(日) 11:56:55.61 今月はじめ、職場に新しい組み込みマシン(ファン付きだけど結構省スペース構成)が 入りました。多分私が開発全般をまかされそうな雰囲気です。業務的にとある 構造分析やシミュレーションなど行う必要があり、プログラムにアセンブラを 使用するのは聞いていたのですが、添付のサンプルソースコードからチラッと 見えたのはsethi %hi(hoge),%o0という命令でした。 「うへぇ~、よりによってSPARCかよ」 長くなるバイナリーコード、奇数アドレスワードアクセス不可、使いにくい レジスタウィンドウ、今時の素早いコンテキストスイッチに対応できるのか不安は つきませんし、今の若者はこんなCPU使わないので人材も少なくソフト開発も大変です。 おそらく導入に際して、大学など教育機関で最初にSPARCに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、32bitCPUでRISCでM68K系よりも高速で動作したSPARCは 大学など教育機関に浸透していて、日本のCPU界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、16bitイミーディエイト値すら1命令でロード できかないのかよとか、関数呼出しのたびになんで約100バイトもスタックフレームが 要るんだよとか、フラグレジスタの読み出しがなんで特権命令なんだよとか、 %g0ってレジスタ値変わらないし壊れてるよ、初期不良で交換だよとか、 アセンブラ通気取りの偏ったどうでもいい我侭を言い出し(だからSPARC使うんじゃ ねーよ) それと戦わなければならないのでしょう。そして時代によって決着している、 過去25年のCPU界隈のくだらないそれらの議論が再現され、それに巻き込まれるの でしょう。もう今からうんざりです。 だからお願いです。教育現場ではi386でもi568でもi686でも x86_64でもなんでもいいですが現行のCPUにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
前のはこれ http://anond.hatelabo.jp/20121219191602
http://toro.2ch.net/test/read.cgi/unix/1036951410/601
601 :名無しさん@お腹いっぱい。:2012/07/10(火) 15:04:00.62 今月はじめ、職場に古いパソコン(i486DX2の結構ローエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要がありハードにパソコン系を採用するのは聞いていたの ですが、搬入されたパソコンのダンホール箱に印刷されていたのはPC-9801という 文字でした。 「うへぇ~、よりによって98かよ」 NetBSD/OpenBSDインストール不可、Solarisも不可、SATA-HDDからブートできるのか、 今時のLCDディスプレイにつながるのか、FreeBSD9.xは対応してるのか、 今時のネットに繋いでもセキュリティは大丈夫なのか不安はつきませんし、 非メジャーなのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一コンソールでの漢字ROMによる日本語表示ができたPC-98は大学など 教育機関に浸透していて、日本のパソコン界に多くのバカを輩出しました。 これから私は、おそらくそういうバカが、makeしてもemacsが入らない、 TeXが入らない、firefoxは使えないのか、Rubyが使えないのかなどと、 サバ管気取りの偏ったどうでもいい我侭を言い出し、(だから鯖にするんじゃねーよ、 鯖の常識で話すなつーのに)それと戦わなければならないのでしょう。 そして時代によって決着している、過去20年のパソコン界隈のくだらないそれらの 議論が再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではPC/ATでもSPARCでもPA-RISCでも PowerPCでもなんでもいいですがメジャーかつ現行のマシンにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/992942337/737
737 :名無しさん@お腹いっぱい。:2012/09/16(日) 16:27:31.40 今月はじめ、職場に新しい組み込みマシン(ファンレスの結構省電力構成)が入りました。 多分私が開発全般をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、プログラムにアセンブラを使用するのは 聞いていたのですが、添付のサンプルソースコードからチラッと見えたのは LD A,(HL)という命令でした。 「うへぇ~、よりによってZ80かよ」 アドレッシングモード皆無、リロケート不可、使いにくいインデックスレジスタ、 今時の関数引数のスタック渡しに対応できるのか不安はつきませんし、 今の若者はこんなCPU使わないので人材も少なくソフト開発も大変です。 おそらく導入に際して、大学など教育機関で最初にZ80に触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、8bitCPUでi8080上位互換でi8085よりも多くのツギハギ命令を追加拡張した Z80は大学など教育機関に浸透していて、日本のCPU界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、ADD A,(HL)はできるのにADD B,(HL)は できないのかとか、相対アドレスのCALL命令はないのとか、 スタックフレームポインタとして使いたいのにLD HL,SPっていう命令ないじゃんとか、 アセンブラ通気取りの偏ったどうでもいい我侭を言い出し(だからZ80使うんじゃねーよ) それと戦わなければならないのでしょう。そして時代によって決着している、 過去30余年のCPU界隈のくだらないそれらの議論が再現され、それに巻き込まれるの でしょう。もう今からうんざりです。 だからお願いです。教育現場ではi386でもi568でもi686でも x86_64でもなんでもいいですが現行のCPUにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1011306728/134
134 :名無しさん@お腹いっぱい。:2012/07/15(日) 14:17:53.53 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、X Window System上のアプリケーションを 使用するのは聞いていたのですが、OSを起動して黒いバックに白い文字だけの 英語の画面に表示されていたのはlogin:というプロンプトでした。 「うへぇ~、よりによってxinit方式かよ」 CUIログインなんて古い、コマンド入力なんて古い、今の奴は日本語入力設定大丈夫 なのか(XMODIFIERS)、今時のマルチシート環境に対応できるのか不安はつきませんし、 xinitユーザーが少ないのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にxinitに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、X11で唯一$HOME/.xinitrcを手書きするというCUI的方法で環境設定できた xinit方式は大学など教育機関に浸透していて、日本のX11界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、GNOME/KDEはどうやって起動するのか、 ウィンドウマネージャを終了したらXごと落ちたとか、ck-xinit-sessionはないのか などと、X11通気取りの偏ったどうでもいい我侭を言い出し(だからxinit方式にするん じゃねーよ)それと戦わなければならないのでしょう。そして時代によって 決着している、過去25年のX11界隈のくだらないそれらの議論が再現され、 それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではgdmでもkdmでもwdmでも xdmでもなんでもいいですがグラフィカルなディスプレイマネージャにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1094041299/383
383 :名無しさん@お腹いっぱい。:2012/07/12(木) 19:20:13.06 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、制御コマンドとしてシェルスクリプトを 使用するのは聞いていたのですが、そのファイルを開いて1行目に書かれていたのは #!/bin/tcshという文字列でした。 「うへぇ~、よりによってtcshかよ」 ファイル記述子のリダイレクト不可、クオートのネスティング等に無理あり、 今の奴でさえシェル関数は使えないし、パイプラインの終了ステータスもおかしいし、 今時の担当者が扱ってセキュリティは大丈夫なのか不安はつきませんし、 スクリプトとしてのcshは嫌われるのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にcshに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、シェルで唯一aliasやhistoryやジョブコントロールの機能が使えた cshは大学など教育機関に浸透していて、日本のシェル界に多くのバカを輩出しました。 これから私は、おそらくそういうバカが、$*でスペース入りファイル名が扱えないとか $<でファイルから読めないのかとか、if文の条件式のコマンドでリダイレクト できないのかなどと、シェル通気取りの偏ったどうでもいい我侭を言い出し (だからcshスクリプト書くんじゃねーよ)それと戦わなければならないのでしょう。 そして時代によって決着している、過去25年のシェル界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではbashでもzshでもkshでもashでも Bourne shでもなんでもいいですがBシェル系のシェルにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
続く。
http://anond.hatelabo.jp/20121024004748
以前、"he doesn't use struct or union?"と書いて、ここの住民に糞味噌に言われた人です。
#が、この一言で何が言いたいか分からなければ、プログラマーとしては最低ランクだと思うよ。
俺の場合は、
1. C勉強開始
2. PC-9801でスプライト動かした段階で息が絶える...orz
3. 放置
6. アセンブラとかZ80、8086、386、486の勉強開始
8. OOの何がいいのか理解できたヽ( ゚∀゚)/
9. Javaで書いたソフトが雑誌で紹介されたり、賞を取ったりした
12. 振り返ってみると、全ての知識が有機的に結合されている!!!頭の中でCを簡単なアセンブラに(Javaの場合はバイトコードに)変換できるのが大事だったんだね!!!
13. 就職
14. 転職
15. 就職
16. 転職
18. 転職
19. 離職
現場はゴミみたいなコードを書く人とかゴミみたいな設計をする人で精神を痛められます。
ITは辞めた方がいいよ。
#これも後で消す。
もともとコンピュータ、電気、機械系が好きで小5あたりからプログラミングを始めた。その後コンピュータにも詳しくなり、小学校卒業する頃にはHTML書いて自分のwebサイトを作って公開したりしていた。中学の頃から二足歩行ロボットに興味を持ち始めて。マイコン(PIC)や電子回路などをネットや本で独学した、周りにロボットに詳しい人が居ないので独学には苦労した。
そして中学を卒業する頃には電子回路やマイコンをある程度理解してサーボモーターを制御するプログラムぐらいなら作れるようになっていた。アセンブラやC言語のポインタもこの頃には理解していた。
しかし機械設計の知識がなかったり、工作機械も手元になかったりしたので、この時点でロボットを作ることはできなかった。そこでロボットを作るノウハウや工作機械があるであろう高専を受験した。それとロボコンにも参加してみたかった。
結果はタイトルの通り。ショックだった。
マイコンも電子回路も理解しているのに、落ちたことを受け入れられなかった。
ちなみに自分は軽いコミュ障なので小学、中学と友達は多くはなかった、高専なら話しの合う人がたくさん居るだろうと思ったのだが残念ながら行くことはできなかった。 だが浪人する勇気もなかったので、仕方なく近くの進学校に通うことにした。
今思えば浪人してでも高専に行くべきだったと思う。
高校では普通科のせいもあって話の合う人は一人も見つからず、3年間ずっと一人だった。
高専に落ちたショックや友達ができなかったことなどが影響して、成績は最悪だった。中学での成績は上位だったが、高校では最下位。中学との成績の落差も精神的に落ち込む原因となった。学校行くのがいやになり、夜にこのまま寝て目が覚めずに死ねたらいいのにと思うようになった。
その現実から逃れるように、何か電子工作をしたりLinuxについて独学したりした。電子工作の作品についてはニコニコ動画に動画をアップした。Linuxについても詳しくなりちょっとしたWebアプリも作った。今のメインPCのOSはLinuxだ。
高校3年の時に一番レベルの低い工学系の大学の入試問題の過去問をやってみたが、ほとんど解くことができず大学受験も絶望的となった。その頃から学校を休みがちになり軽い鬱状態に。
なんとか卒業することはできたが、進路は決まらなかった。決まっていたとしても半鬱状態でまともに通えなかっただろう。
今高校を卒業して引きこもり1年目。高校卒業時よりは元気になってきた。
本当は大学でロボット関係の研究もしたかったし、プログラミングやロボットの話のできる友人もほしかった。
プログラミング苦手って言ってる人が理系の大学行ってたりするのを見ると、自分はなぜ行けなかったのだろうと思いつらくなる。勉強すればいいだけのことだが、もう高校のせいで勉強がトラウマになり、まともに勉強できなくなってしまった。
高専受かっていたらこんなことにはならなかった。
このお話はたぶんフィクションです。実在の個人や企業とはあんまり関係ありません。そういうことにしろください。
10年前、20代になったばかりの頃の僕は、今思えば本当に最低な生活を送っていた。高校を中退し、実家とは疎遠で、友達もなく、金もなく、夢も希望もなく、ただバイト先と自宅を行き来するだけの毎日。いつも視界には霞がかかったようで、底の見えない空虚さだけが僕の心を支配していた。
それでも趣味らしいものはあった。オンボロマシンにRedHatを入れ、ダイヤルアップの細い回線で自宅サーバを立て、Perlでガラクタのようなプログラムを動かす。そんな子供じみた遊びだけど、プログラムを組んでいるときだけは空虚さを忘れ、画面の中に没頭できた。
ただ、そのときの僕はもうすでにいろんなものに打ちのめされていて、若者にありがちな全能感などというものは霧散していた。自分がプログラミングで何かを成すだとか、それを仕事にしようなんてことは一切頭になかった。このまま夢も希望もなく人生を終えるのだと、そう思っていた。
それでも転機は訪れる。
勤めていた工場で派遣切りにあった僕は、「働きたくないでござる! 絶対に働きたくないでござる!」とか言いながらニート生活をしていた。そろそろ翌月の家賃も払えなくなってきたころ、派遣会社から電話がかかってきた。「プログラム開発の仕事があるんですがやりませんか?」と。そういや履歴書だかスキルシートだかに、Perlがどうたらとか書いたっけ。実務経験もない中卒に仕事まわすとかwww ……とは思ったものの、このままでは本気でホームレス一直線だったので引き受けた。
派遣された先は従業員数10人くらい、パートさん含めても50人くらいの小さな会社だった。現在手書きの伝票でやっている処理をWeb化したいのだという。システム担当者はおらず、事務員さんがExcelやAccessを使える程度。すべて僕一人でやらなければならない。マジか。
ともあれ、まずはサーバである。後々の運用を考えるとLinux系は使えない。事務所の片隅に放置されていたWindows 2000マシンにApacheを入れてそれでよしとした。
次はデータベース。でもこの頃の僕は「正規化ってなんれすか?」というレベルだったので基礎から勉強した。なんかMySQLってのがいいらしい→社長に申請→「今Access使ってるからそれでいけ」→「はい」→パフォーマンスの面で問題出るだろうなとは思ったがしょうがない。
次は言語。最初はPerlで書こうと思ってたけど、PHPってのが流行ってるらしいのでこっちにした。ウホッ! いい言語……。
そして業務内容を把握するため、現場をあっちこっち駆けずり回りながらヒアリングする。ときには部長から愚痴を聞かされ、ときにはパートのおばちゃんから誘惑され、そんなこんなを繰り返し、仕様をつめていく。
そして数ヶ月かけて開発したシステムの稼働である。そのときのことは今でも忘れない。
現場の人がラインからデータを入力する。サーバにデータが送られてくる。別の事業所からも送信されてきてる。問題ない。事務員さんが伝票処理を行う。問題ない。すげえ、ちゃんと動いてる。お遊びで作ったプログラムではなく、本当に本気の業務用プログラムである。それを僕が1人で作ったのだ。このプログラムで業務がまわり、利益を生み出すのだ。社会に対して、何らかの作用を及ぼすのだ。僕みたいなクズにでも、そんなことが可能だったのだ。
そのことに気付いたときの感動を、僕は今でも忘れない。
それからちょっといろいろあって、ホームレスになった。うん、急展開なのはわかってる。でもこの間のことは語ってもあまり面白くないし、公序良俗に反する話もあるのでざっくりはしょる。どうせフィションなんだから細かいことを気にしてはいけない。
話を戻そう。
ホームレスになってからの数日はひどい精神状態だった。足元から世界が崩れていく感覚。視界がぐにゃりと歪む。帰りたい。でも帰る家がない。だからホームレスというのか……というトートロジーを何度繰り返しただろうか。
もうあまり覚えていないけど、このときの僕は本当にもう何もかもどうでもよくなってたと思う。ただ、自分の全財産がバッグ1つしかないということに対する心地よさ、開放感があったのはよく覚えてる。そんな状況で地べたに座り込んで見る風景。きっと、今はもう見えない。あの頃の僕にしか見えない風景が、そこにはあった。
いろんな人と出会い、流れ流れて、最終的に西成のあいりん地区にたどり着いた。関西圏の人には説明不要かもしれないけど、よく言えば日雇い労働者の街、ぶっちゃけて言えばホームレスのメッカである。今はもう綺麗になってしまったし、治安もそこそこよくなったけど、僕がいた頃はまさに「カオス」としか表現のしようがない状況だった。
どこから持ってきたんだといいたくなるようなガラクタばかりを並べた泥棒市。簡素な骨組みにビニールシートをかぶせただけの飲み屋。「ないかーないかー」と声が聞こえてきたので見てみると、警察署の近くなのに道端で堂々と丁半博打をやっている。コンビニのトイレの張り紙には「トイレが詰まる原因になるので注射器を捨てないでください」とある。いやトイレが詰まるとかの前に気にすることがあるだろ。ケンカなんて日常茶飯事。頭から血を流したおっさんが普通に歩いてる。数百人規模で並ぶ三角公園の炊き出しは圧巻。四角公園の炊き出しでは誰もいない場所にワンカップの瓶とかがたくさん並んでる。何かと思って聞いてみたら「あれで並んどることになってん」と返ってくる。学食の席取りルールみたいだ。ああもう全然書ききれない。
でも一番印象に残っているのは、南海線の高架下、うず高く積まれたゴミ山の前でガラクタを解体していたおっちゃんのこと。奇声を発しながらハンマーを振り下ろしていたおっちゃん。その両目は、これ以上ないほどにキラキラと輝いていた。その鉄屑を売った金でビールが何本買えるか皮算用でもしているのか、あるいは幸せになる魔法の薬でもキメているのか、そのときの僕にはわからなかったけど。
そして、人生を投げ出していた僕に付き合ってくれたおっちゃん、あなたのことも忘れません。モーニングをおごってくれて、いろんな話をしてくれて、聞いてくれて、役所の福祉課まで連れて行ってくれたおっちゃん。あなたがいなければ、僕は今でも西成でぬるま湯の日々を送っていたかもしれない。
いろんな人に助けられて、ホームレスの施設に入ることになった。舞洲という人工島にあるのだけど、これがまた周囲に何もないのだ。スポーツ関連施設、ゴミ処理場、物流センターが点在するくらい。コンビニ1件ありゃしない。だけど施設での生活は意外にも楽しかった。2段ベッドが6つ並んだ12人部屋。むさくるしいけど、みんなバラエティに富んでいた。刑務所上がりのいかついおっちゃん、虚言癖のひどいおっちゃん、ほとんど一日中寝てるじいちゃん、薬のフラッシュバックがひどい兄ちゃん。そんな人達の中で過ごせば、自分がどれほどクズであっても気にならない。やはり僕はこちら側の人間だと再認識した。
市街地にある施設へ移ってからはいろんな仕事をした。生駒の山奥にドブさらいに行ったり、事務所移転のバイトで腰をやってしまいそうになったり、なんやかんやあったけど、長くなるのではしょろう。結局のところ、またプログラマをすることになるのである。
そろそろ身バレしそうな領域に入ってきたのでここでもう一度強調する。このお話はたぶんフィクションです! たぶんフィクションです! 大事なことなので2回言いました。
そう、またプログラマとして働くことになった。今度は従業員数300人くらいの大きな会社である。日本人なら誰でも知ってるであろう大企業の子会社ということもあり、本社からの出向社員は東大京大卒当たり前みたいな状況。そんな人達の前で中卒の僕が前に座ってプレゼンやら仕様検討会やらをするのだ。何の罰ゲームだよ……。
最初に思ったのは、「ここにいる人達は育ちがいい」ということだった。みんな礼儀正しい。喋り方や立ち居振る舞いまで、今まで僕がいた世界とは何もかもが違っていた。まるでドラマに出てくるような「ちゃんとした人生を送っている人達」だ。そんな人達に囲まれていると、「生きていてごめんなさい」と言いたくなる。本当に。
他に驚いたこと。社内で連絡を取り合うのにメール使ってる。やばい。社内メーリングリストとかもある。やばい。定期的にミーティングとか勉強会とかもする。なにそれ怖い。自分がいっぱしの社会人になったかのような錯覚に陥る。ちょっと前まで西成でゴミ拾いのバイトしてたのに。「勘違いするんじゃない! 西成の日々を思い出せ!」と何度も自分に言い聞かせ、自我を保った。
とはいえ、萎縮してばかりもいられない。気付いたことはどんどん提案した。あちこちに散らばっている共通の処理をライブラリ化したり、サーバで負荷がかかっている部分を改善したり。却下されたものも多かったけど、採用されたものもそれなりにあった。業務の改善案を考えるのは楽しい。誰かがプログラマの三大美徳に「無精」を上げていたっけ。極度のめんどくさがりで、楽をするための苦労は惜しまない僕には、こういう仕事は天職なのかもしれない。
システム開発の方も順調に進んでいた。この頃はMicrosoftですらWeb版のOfficeを出すような状況で、デスクトップアプリに比べても遜色ないレベルのWebアプリがどんどん出てきていた。この会社で開発しているのも、そんなAjax技術を多用したWebアプリだ。JavaScriptを用いた本格的な開発に最初はとまどったけど、書けば書くほど言語が自分の手に馴染んだ。クロージャ、prototypeといった基礎をちゃんと学ぶと、書けるコードのレベルが段違いに上がっていくのが楽しかった。
仕様にもこだわった。実際に使う人がどんなふうに操作するのか、何度も何度も脳内でシミュレートし、どんなUIが最適なのか、データ構造はどうするべきか考え、実行速度とメンテナンス性の板挟みに苦しみ、何度も何度もリファクタリングを繰り返す。
そのとき開発していたシステムは、メイン画面でほとんどの処理を行うタイプのものだったのだけど、そのメイン画面のJavaScriptコードは最終的に1万行を超えた。もうこの頃にはJavaScriptでのオブジェクト指向的な開発手法というものも自分なりに構築されつつあった。そしてこのカチャカチャとした手触りの、安物のオモチャのような言語は、僕の一番好きな言語になったのだった。
そんなある日、僕が作ったシステムのメインユーザーである他部署の偉い人が来て、開口一番こう言った。
この機能が素晴らしい、とか、あの発想はなかったわ、とか、とにかくべた褒めして、そして去っていった。機能追加要望の前口上だと思って身構えていた僕は拍子抜けした。「あの人が他人を褒めることなんてめったにないよ、すごいね」と近くの席の人が言う。
どこにもはまることのない歪な歯車。その僕が、社会という大きな機械の中に組み込まれる音だったのだと思う。まあすぐに外れてしまうのだけど。その一瞬だけは、僕は確かに社会の一部になれたのだ。
これからどうするか? 今の技術力ならそれなりのところに就職できるかもしれない。でも僕にはやってみたいことがあった。半年かけて海外を旅するのだ。
今、僕の手元にはまとまったお金がある。こんなのは人生で初めてのことだ。そして僕は今、どこにも所属していない。どんなところに行ったっていいし、何をしたっていい。この先、そんな状況がどれだけあるだろうか? 人生長いのだ、そりゃあ何度だってあるかもしれない。でも今回やりたいことをやらなかったのなら、僕はきっと何度だってやらずにいるままだろう。
もちろん怖くなかったわけじゃない。なにせ海外なんて行ったことがなかったのだ。ずっと極貧の生活をしてきた僕は、国内旅行だって満足にしたことがない。
いろいろと考えた。ない頭を使って考えた。自分の英語は通じる? 病気になったときは? 荷物をなくしたら? あれこれ考えると心配事ばかりが頭をめぐって、わけがわからなくなる。
最終的に決定打になったのは、自分が何も持っていないという、この状況だった。
そう、僕は何も持っていない。家族も友達も、夢も希望も。だけど、そんな人間だからこそできることがあるんじゃないかと思ったのだ。何も持たないからこそ、どこにだって行けるし、何にだってなれる。それはタロットカードの「愚者」みたいなものだ。愚かな者は恐れも何も知らぬからこそ、無限の可能性を秘めている。
心を決めたら後は早かった。
パスポートを取得した。航空券を手配した。住民票を海外転出した。トランクルームを借りた。住んでいた部屋を引き払った。
空港へ向かう電車の中で、懐かしい感覚に襲われた。あの日、ホームレスになったばかりのころの感覚。世界が足元から崩れていく感覚。でもあのときとは決定的に違うことがあった。それは、今回は自分が望んでこうなったのだということ。流されるまま生きてきた僕が、初めて自分の人生に対して主導権を得た。それだけが決定的に違っていた。それだけで十分だった。足の震えは、これからの旅路への、期待に対する震えなのだった。
自分とは異なる人種、異なる言語。街の看板すらまともに読めない。レストランの注文すらおぼつかない。ちょっと電車に乗るのも大仕事だ。それでも時間をかけてひとつひとつなんとかしていった。
見知らぬ街の匂い、喧騒、バケツをひっくり返したようなスコール、旅の中で出会う怪しい人、優しい人。僕の前でたくさんの風景が流れていく。
川辺のレストランで昼ご飯を食べた後ボケーッとしていると、猫が膝の上に乗ってくる。動くのもめんどくさくてボケーッとしてたら日が暮れてた。そのまま猫と一緒に晩ご飯を食べた。そんな日もあった。
長距離列車に乗っていたとき、車内食にピーナッツバターのようなものが付いていたので、普通にパンに塗って食べた。でも梅干的なものだったらしく、めちゃくちゃ酸っぱかった。「すっぱ! すっぱ!」とかやってたら向かいの席の女の子が爆笑していた。僕も笑った。そんな日もあった。
最初は少し移動するのにも大変な思いをした。でもいつの間にか、ローカルバスに乗って気ままに旅するようになっていた。
たどたどしかった英語も、日常会話程度なら普通に喋れるようになっていた。
いろんな国のバックパッカーにもたくさん出会った。お互いつたない英語でやりとりするのも楽しかった。今度は彼らの国にも行ってみよう。だからいつか世界一周に出ようと、僕は心に決めた。
こんな旅に出たところで自分は何一つ変わらないと思ってた。でも、何かが変わってきている。それが何なのかはわからない。たとえば図太さだったり、適当さだったり、そういうのもあるのだけど、何か違う。それよりもっとプリミティブなもの。感情になる前の感情、行動になる前の行動。マグマのような熱量を持ったドロドロとしたものが、自分の中に渦巻いているのを感じる。それがいつ形を成すのかはわからない、今はまだ。だけどいつかどこかで、忘れた頃にひょっこり出てくるんじゃないかと思う。そのときを楽しみにしていよう。
そして夢のような日々は終わる。
日本に帰ってきたとき、手持ちの金は10万以下だった。部屋は解約していたので住むところもなかった。普通にホームレスだった。僕は焦らず慌てず、西成へ向かった。
しばらくはドヤ(安宿)に泊まった。一番安いところなら500円から泊まれる。西成はいいところだ。
前の会社から戻ってこないかと誘われたけど、「働きたくないでござる! 絶対に働きたくないでござる!」と言って断った。
いや働きたくなかったのは本当だけど、もう1つ理由があった。職業訓練で組み込み系を学ぼうと思っていたのだ。
スマートフォン含むタブレット端末の市場がこれからも拡大していくのは間違いない。そうすると必要になってくるのは組み込み系の知識。いやアプリ作るだけなら必要ないかもしれないが、そういった知識があれば、自分ができることの幅がぐんと広がると思う。
それに、今の僕には基礎的な力が圧倒的に足りない。すべてを独学で、我流でやってきたけど、やはり限界を感じる場面が多々あった。だから今回ちゃんと体系的に学んで、足元を固めようと思ったのだ。
結果的には正解だったと思う。本当に基礎の基礎から学べた。
ブレッドボードを用いて回路を組むところから始まって、アセンブラ、C言語、組み込みLinuxでのデバイスドライバ開発、アプリ開発。これまで高級言語の十分に進化しきった部分にしか触れてこなかった僕にとっては、どれも難しかったけど、どれも面白かった。これからどういう道に進むかまだわからないけど、ここで学んだことは絶対に無駄にならないと思う。
そうして職訓で勉強するかたわら、悶々と考えていたことがある。世界一周についてだ。
今はまだ金もないし、そんな金を稼げるあてもないのだけど、いつか(たぶん10年後くらいには)行こうと本気で思っている。
ルートだけでも今から考えておこうと思って、いろいろと旅程検討アプリを試してみたのだけど、どれもいまいち使い勝手が悪い。海外のものも含めて探しまくったけど、自分が思うようなものは見つからなかった。
だったらもう自分で作るしかない。せっかくだから就活のときにポートフォリオとして使えるよう、ちゃんとしたWebアプリを作ることにした。
最初の1ヶ月は地図APIの選定と、検証コードを書き捨てるだけで終わった。
2ヶ月目は基礎部分の構築だけで終わった。
3ヶ月目に本気を出し、ほぼできあがった。
そしてベータ版をリリースした。 http://planetter.com/
それが先週の話。
だからこのお話はここで終わりだ。正確に言うなら、ここから先の展開はまだわからない。
10年間を振り返ってみて思う。あの頃と比べて、何か変わっただろうか?
家族や親類とは縁が切れたままだし、いまだに人付き合いは苦手だし、金はないし、夢も希望もない。それは今でも変わらない。ただ、あの頃あれほど感じていた空虚さは、跡形もなく消えている。
西成の高架下で見た光景を思い出す。ガラクタを解体していたおっちゃん。あのキラキラした目。たぶんあの瞬間に僕は、自分にとって一番大切なものは何なのか、心の深い部分で理解したんだと思う。
世界一周だなんだというのも本当はどうでもいい。僕はただ、いつだってドキドキしていたいのだ。
初めて人を好きになったときの気持ち。知らない街で暮らし始めたときの気持ち。そして、プログラムが思い通りに動いたときの気持ち。
それを持ち続けていたいのだ。いつだって新しい世界にワクワクしていたいのだ。
ふと目を閉じれば、まぶたの裏に映る、あの日のメッセージ。
"Hello world!"
このお話はたぶんフィクションです。実在の個人や企業とはあんまり関係ありません。でも、ここに綴った僕の想いは、ノンフィクションです。
串打ち三年、割き五年、焼き一生 つって、一生勉強なんて 職人業界では 常識だったんでは?
言い方変えると、たとえば10年でもう勉強しなくていい=40になっても30のやつと同じ。ってことだよな。簡単に言うと。
つまり、新しいやつが来るんだから、年寄り要らない。って事になるじゃねーか。
一生勉強が必要なら、60まで成長し続けられる=若いもんには負けないって事になるが
10年で終わるなら、10年したら 若いやつと差がない=若いヤツのほうが給料が安い=若い奴に負けるだぞ。
勉強しないで、若い奴に差を付けられる(自分のほうが上)って どんな業界だ? 談合とか年功序列って言わないかそれ? 老害って言われると思う。
IT業界で古い知識といえば、アセンブラ とかがあるが・・・まぁ、あって役に立つとは言わないが、あって困るものでもないだろ。そこそこ使いはするよ。
ポインタの何が難しいかって、あれは実装としてはアセンブラで言うところのただの間接アドレス指定に過ぎないのに規格上はそれを前提としていないので説明が抽象的なものにならざるをえずわかりにくいのと、文法がややこしくて初学者を混乱させるという2点があるから。まぁ規格は規格としてひとまず置いて実装を教えこめば解決するし、文法は改善しようもないので用例をひたすら覚えれば済むので、そこを抑えておけば覚えることができるはず。
とはいえそれでも挫折する人が多いのは事実。これはC言語設計者が悪いといえば悪いんだけど、その悪い言語が世の中で一番普及しているのだからなんとかして慣れるしかない。もちろん逆に言えば覚えれば多少は人に勝ることができるのだから、覚える価値はあると思う。たぶん。マシンのリソースが少ない分野ならまだポインタは使う必要があるしね。
前回の記事はまとめサイトに掲載されたりTwitterで拡散されたりしていた。
今回はその続き。
http://anond.hatelabo.jp/20111219120206
まとめサイトに掲載されたときにも元教員からコメントのあったとおり。
2年間でどのような像に仕上げようかという目標がない。
資格系の学校の場合、あるのは検定に合格させるという目標だけ。
だから、授業の半分以上は検定対策。
これで授業が面白いはずがない。
実務を縮小した課題をしているだけ。
作業はするけど、提出さえすれば単位は取得できる。
詳細は「芦田の毎日http://www.ashida.info/blog/cat34/」を参照。
言っていることは過激だし現場の苦労は知らないと思うけど、おおむね同意。
午後のプログラム言語は選択式だけど、半数以上の学校はCASLII(アセンブラ)で受験する。
なぜか。学生が長文を読めなくなっているから、ステップ数が少ない言語を選ぶ。
当然、就職には役立たない。
基本情報を取得しているからといって、プログラムができるとは限らない。
あとは、遊び程度にC言語をやるぐらい。
一部の人気学科(看護等)以外は、全入時代。一条校ではないから、補助金もでない。
一人あたり、年間で100万円。入試は面接だけ。学力試験はしない。
オープンキャンパスに○回以上参加でその面接すら無くしている学校も。
当然、学生当時の担任も在職している。元担任には頭があがらない。
古くからのやり方が変わるはずもない。
もちろん、ここに書かれていることが該当しない学校もたくさんある。
いちおう横になるけど、Sandby Bridge以後は 数値演算系は256Bitのレジスターが追加になっていて
アセンブラ書けばベクター系は早くなったりするとか 細かい機能はついてたはず。
GHzだけが、速さじゃないからね。クロック下がっても専用命令が付けば早くなるし。
カンファレンスでインテルの人が突っ込まれてたけど、クロック上がっても、命令にかかるクロック数が多くなれば遅くなるし。
結局ベンチマーク次第。だとおもう。
念のために言っておけば、OSとアプリが別コアになれば、早くなることはあると思う。4コアまでいるか?といわれると、微妙だが。