無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

中の人の徒然草204

みんなおはよう♪今日も学習に燃えているインドリです!今やっている学習は、大まかに言うとバイナリだと思います。バイナリ関係は凄い忍耐力が必要とされます。というのも、作業そのものが細かいし、修得したところで直ぐには役に立たない技術だからです。でも私はそういうのも好きです♪システム構築などの規模の大きなものを作った時の派手な快感とは違った、地味で渋い快感が得られます。
バイナリ技術を役に立たないという人も居ますが、こういった細かな技術力の積み重ねが大きな差を生みます。バイナリも積もれば山となるですね♪昨今は特にそうです。油断していると抽象度の高い、原理が分からない技術が沢山出現します。抽象度の高い技術は効果も派手で、修得するのが比較的容易なのでそっちに目が向きがちです。でも、抽象度の高い技術って色々新しいトラブルを生むんですよねー。その原因を探る時頼りになるのがバイナリです。皆様も暇な時にバイナリ技術を修得する事をお勧めします。
別窓 | 日記 | コメント:27 | トラックバック:0 | ∧top | under∨
<<中の人の徒然草205 | 無差別に技術をついばむ鳥 | 中の人の徒然草203>>

この記事のコメント

このコメントは管理人のみ閲覧できます
2009-05-24 Sun 17:24 | | #[ 内容変更]
私好みの内容でした。
このブログも技術提供を目的としており、その情報を自由に使用してくれてもいいと思っています。
しかしながら、やっぱり悪事だけは嫌なので、クラックとかハッカー的な危ない技術は掲載しない事にしています。
最終的には、初心者でも気楽にこれる技術者の憩いの場にしたいです。
2009-05-24 Sun 19:51 | URL | インドリ #-[ 内容変更]
昔から思っているんですが…。

インドリさんの言う「バイナリ」の定義をわかりやすく教えてください。

一般にbinaryは「二つのもの、2変数」といった意味です。
なので、インドリさんの言う「バイナリ」が私には意味がわからないのです。
2009-05-25 Mon 01:14 | URL | れい #BqEwgRj.[ 内容変更]
> 昔から思っているんですが…。
>
> インドリさんの言う「バイナリ」の定義をわかりやすく教えてください。
>
> 一般にbinaryは「二つのもの、2変数」といった意味です。
> なので、インドリさんの言う「バイナリ」が私には意味がわからないのです。

ここでは、ソフトウェアの低レイヤの技術を駆使したプログラミングという意味合いで使っています。
低レイヤとは、CPUが解釈する機械語レベルに近い事をさしています。
色々な書籍(例えばBINARY HACKS)でもこういうふうに使われています。
言葉は生き物ですから基本的な意味から発展した様々な使われ方をしています。
こんな感じで・・・
Aさん「このバグの原因がどうしても分からないorz」
Bさん「こうなれば、もうバイナリレベルまで降りていかないと駄目だ。」
Aさん「えー!バイナリまで降りていくんですかorz」
2009-05-25 Mon 08:01 | URL | インドリ #-[ 内容変更]
僕も、れいさんと同様の感想を持ちました。

バイナリという言葉は、広い意味を含みすぎているので、表現がわかりにくい気がします。

コメントでのインドリさんの事例は、会話の前後の流れからバイナリコードを解析することを表現していると理解できます。

しかし、バイナリデータ・バイナリサーチなどバイナリという単語には他にも様々な意味があるので、単に「バイナリ」という表現だけを使うことで、読み手に誤解を生ませてしまう危険性があると思います。

たとえば「今僕はパソコンについて勉強しています。パソコンは奥が深くて難しいです」と表現された時、パソコンの使い方を勉強しているのか、パソコンの仕組みについて勉強しているのかがわかりにくいですよね。
でも「パソコンを使う」という表現は一般的です。

バイナリについても、上記のパソコンのような使われ方になってしまっているように感じました。
2009-05-25 Mon 11:20 | URL | R・田中一郎 #-[ 内容変更]
こんにちわ田中さん。こっちでは初めてですね。
コメントの内容について答えます。
私は意図してその様に使っています。
日記という事もあり、具体的な学習内容を言うつもりはありませんし、
バイナリ全般の修得を目的として学習していますのでこういう風な表現にしております。
2009-05-25 Mon 12:41 | URL | インドリ #-[ 内容変更]
バイナリ全般の習得ですか。
それはまた広い範囲で勉強されているのですね。
どうも、余計なことを言ってしまったようです。
2009-05-25 Mon 13:36 | URL | R・田中一郎 #-[ 内容変更]
> どうも、余計なことを言ってしまったようです。

いえいえ、そんな事ございません。
また遊びに来てください。
2009-05-25 Mon 13:52 | URL | インドリ #-[ 内容変更]
>Aさん「えー!バイナリまで降りていくんですかorz」

それって「どんだけ〜」って感じですね。

そこまで行くとプログラムのバグと言うよりコンパイラのバグですよね。
電機メーカー製のコンパイラを使っていたころはそういったこともありましたし、アセンブラのコードを見たりしてました。
しかし、今時の言語でそれは無いと思うのですが。

知らない技術(バイナリ)を習得をすることは悪いことではないですが、他に手を広げる前にやるべきことがあると思うのですが...
2009-05-25 Mon 15:30 | URL | あるまじろ #ykf0353g[ 内容変更]
コメント有難うあるまじろさん。
これはあくまでも持論ですが、今でもバイナリは重要だと思います。
例えば、.NET系言語でもILを学んでおくとよいでしょうし、Javaに関してもバイトコードを覚えておくといい事あると思います。
休日はこういった知識を学ぶのに適していると思います。
ただし、業務上やるべき事がある人は別です。
先ずはそっちを学習するべきです。
かく言う私も仕事の依頼が来るたびに復習しています。
なので、平日は依頼内容に沿ったものを学習しています。
そして、そのストレスを解消するためにバイナリを満喫しているわけです。
あるまじろさんが仰る「他に手を広げる前にやるべきこと」とは自分の業務の事ですよね?
2009-05-25 Mon 16:39 | URL | インドリ #-[ 内容変更]
質問主が引き下がった後で申し訳ないけど、素朴な疑問。
R・田中一郎さんがあのように質問した後で、敢えて「バイナリ全般」と言うのは、「バイナリコードに限らないバイナリ全般」ということですか?
その全般の中にはバイナリサーチも含むのですか?
もちろん、バイナリサーチもコンパイルすればバイナリコードになるから云々…という意味ではなく(それは結局バイナリコードのみについて論じているにすぎません)、言語が定まらない状態での抽象的なバイナリサーチアルゴリズムとバイナリコードを同列に論じる、ということですか?
2009-05-25 Mon 17:08 | URL | aetos #-[ 内容変更]
こんにちわaetosさん。

>言語が定まらない状態での抽象的なバイナリサーチアルゴリズムとバイナリコードを同列に論じる、ということですか?

同列には論じませんがアルゴリズムは学ぶ気満々です。
抽象的なアルゴリズムはバイナリとは違いますが非常に心惹かれます。
数学を修得してThe Art of Computer Programmingを完全理解する事も私の目標に入っています。
The Art of Computer Programmingのコードをx86で実装したり、LISPで実装してみたり、色々したいです。
2009-05-25 Mon 17:15 | URL | インドリ #-[ 内容変更]
> ここでは、ソフトウェアの低レイヤの技術を駆使したプログラミングという意味合いで使っています。
> 低レイヤとは、CPUが解釈する機械語レベルに近い事をさしています。

ふーむ。
やはり理解できません。
ならなぜ「低レイヤ」と言わないのでしょうか?
違う言葉を使うと言うことは、そこに何か違いがあるということですよね?

しかし私は「バイナリ」という単語を「2つの、2値の、2進法の」以外で用いている例を知らないので、そのニュアンスの違いが全くわかりません。

> 色々な書籍(例えばBINARY HACKS)でもこういうふうに使われています。

Binary HackもThe Art of Computer Program(全巻)も手元にあり、既読です。
しかし残念ながら、インドリさんの言っている意味で使われている例を見たことがありません。
「2進法で記述された」という解釈ではありませんか?

もし「低レイヤ」という意味で使われている文があれば教えてください。

> 言葉は生き物ですから基本的な意味から発展した様々な使われ方をしています。

この意見には私は大反対ですが、それは以前にどこかでやったので、今回は無し。
ただ、(インドリさんだけではなく社会全体への不満の表れとして)文句を言わせていただくと、「『言葉は生き物』とか『愛は生き物』とか『PCは生き物』とか、勝手に生物を作るなー!!お前は神か!!」

> Aさん「えー!バイナリまで降りていくんですかorz」

「2進法レベルまで降りていくんですか」とか、
「1か0かを考えるレベルまで降りていくんですか」
という解釈では抜け落ちているニュアンスがありますか?

バイナリと言うと、私にはどうしても2成分合金とか2項係数とか、「2」ばかり頭に浮かぶので、話の理解がかなり困難です。

R・田中一郎さんの
> バイナリという言葉は、広い意味を含みすぎているので、表現がわかりにくい気がします。
もちょっと納得し難い。

「bin=2」+「ry=形容詞化」なので、「2つの・2値の」というそのままの語義と、それから派生したいくつかの名詞があるだけで、非常に狭い意味しかありません。

binary file(バイナリファイル)は「2進法で書かれたファイル」
binary search(バイナリサーチ)は「2つに分ける分割統治法による検索法」
binary arroy(バイナリアロイ)は「2成分からなる合金」
binary star(バイナリスター)は「2連星」
binary sex(バイナリセックス)は「オスメス2種類の性システム」

もう、それ以上ないというくらい明確な定義だと思います。

OED(Oxford English Dictionary)も、広辞苑も、日本国語大辞典も、手近にある辞書全てしらべましたが、「低レイヤ」という解釈は載っていません。

「2進法レベルの」という意味を「低レイヤ」と誤って理解しているのではないでしょうか?
「バイナリ」の語義は「2」が重要で、「低レベル」という意味はありません。
2009-05-25 Mon 22:12 | URL | れい #BqEwgRj.[ 内容変更]
れいさんへ
BINARY HACKSを持っているのなら見て下さい。
最初の方に書いています。
2009-05-26 Tue 06:22 | URL | インドリ #-[ 内容変更]
これは親切心なのですが、言葉の正確な定義に拘ると本質を見失いますし、他人に嫌がられますよ。
もともと情報処理技術は、芸術・科学・技術により構築されているといわれるぐらいの技術です。
ですから、オブジェクト指向の様な曖昧な用語が沢山あります。
さらには、Web2.0の様な誰も正確な定義を知らない擁護まであります。
それらの用語全てをれいさんの様に拘っていれば、決してよい結果を生みません。
それに何度も言っていますがこれは「日記」です。
日記に単語の解釈について延々と言われても・・・
あと、言う方は簡単ですが、逆に御聞きします。
ブログに何故そこまで求めるのですか?
私は仕事でこのブログを書いているわけではありません。
それに、曖昧な自然言語を使って、誰一人として文句の出ない文章を書くことなぞ不可能です。
こんな調子ですと、誰もブログをしなくなるでしょう。
あなた方は日ごろ正確な情報発信といっておりますが、こんな態度では情報発信をする人が居なくなります。
正確なを厳密に突き詰めていくと全ての文章に不備があります。
専門書すら例外ではありません。
全ての落ち度が無く文章を書くことが可能なのかよく考えてみてください。
2009-05-26 Tue 06:40 | URL | インドリ #-[ 内容変更]
れいさん

>R・田中一郎さんの
>> バイナリという言葉は、広い意味を含みすぎているの
>>で、表現がわかりにくい気がします。
>もちょっと納得し難い。

言葉が足りませんでしたね。

バイナリという言葉単体ではなく、バイナリ〜というように、何かの単語と組み合わせて使うことが多いので〜

というような意味で書きました。
「バイナリ」という単体の言葉は、れいさんの仰る通りだと思います。
2009-05-26 Tue 09:07 | URL | R・田中一郎 #-[ 内容変更]
こんにちは。

>「バイナリ」の語義は「2」が重要で、「低レベル」という意味はありません。

確かにそうかもしれませんが、私の場合は「バイナリ=機械語」なので低レイヤは成り立ってしまいます。
機械語に触ったことのあるい人間のだからでしょうか。

>あるまじろさんが仰る「他に手を広げる前にやるべきこと」とは自分の業務の事ですよね?

業務の事を言ったわけではありません。
今までの流れを見ていて、「技術の前にコミュニケーションを覚えれば?」と思ったわけです。
その為にかなり損をしているのではないかと思います。
気を悪くしたらごめんなさいね。
2009-05-26 Tue 11:37 | URL | あるまじろ #ykf0353g[ 内容変更]
いくつか質問させてください。

>確かにそうかもしれませんが、私の場合は「バイナリ=機械語」なので低レイヤは成り立ってしまいます。
>機械語に触ったことのあるい人間のだからでしょうか。

つまり、機械語がわかる人は「バイナリ」という表現を普通に使うという認識で良いでしょうか?

僕は、機械語について詳しくはありませんが、機械語って16進数を 2 つ組み合わせた値をニーモニックに対応させて表現しますよね?

で、ニーモニックが羅列してある状態が、アセンブラソースになります。

バイナリを学ぶとは、上記のどの部分を指すのかが僕には理解できません。
アセンブル時に変換されるニーモニック対応表を記憶して16進数ダンプを直打ちできるようにすることを「バイナリを学ぶ」というのでしょうか?
2009-05-26 Tue 12:14 | URL | R・田中一郎 #-[ 内容変更]
>つまり、機械語がわかる人は「バイナリ」という表現を普通に使うという認識で良いでしょうか?

私の環境ではそうでした。他もそうなのかは判りませんが。

>バイナリを学ぶとは、上記のどの部分を指すのかが僕には理解できません。

私もこれはわかりません。
アセンブラ<->機械語の変換は表に基づいて行えば難しくありません。
学ぶほどのことではないと思いますが。

しかし、高級言語から機械語またはアセンブラへの落ち方を知っていればメリットはあると思いますが。
「参照渡し」とかいろいろとね。
2009-05-26 Tue 12:48 | URL | あるまじろ #ykf0353g[ 内容変更]
インドリさんは、読者に思いを伝える気がないのね。
読者を否定して書く日記なら公開する意味はないし、公共リソースと呼ばれますよ。
公共ブログはチラシの裏ではありませんよ。
2009-05-26 Tue 14:50 | URL | ん #-[ 内容変更]
>公共ブログはチラシの裏ではありませんよ。

私の認識では「チラシの裏」でもあります。
なぜ個人ブログにそこまで求めるのでしょうか?
あなたはそう言い切れるほど完璧なのですか?

何度も言いますけど、不満があるなら見なければいいのです。
他にもブログはたくさんあるでしょうに。
2009-05-26 Tue 22:48 | URL | pinkey #mQop/nM.[ 内容変更]
流れをぶった切るようで申し訳ないんですが、
日記の本文は適切な位置で改行してくれないでしょうか。
若干読みにくいと思いましたので。
2009-05-26 Tue 22:50 | URL | (´・ω・`) #n/WlIE.A[ 内容変更]
私、炎上させているように取られてしまいましたか。
ちょっと文章が断定的だったり批判的だったり、きついのは私の悪い癖のようで、あちこちで失敗して謝ってるのですが、なかなか治らないですね…。
すみません。

私は今は「正確に書け」と言いたいわけではありません。
言葉に拘っているつもりもありません。

言い訳させてください。

インドリさんの過去の発言に「バイナリ」という単語が非常に多い。
しかし、私の知っている「バイナリ」という単語の意味では文意が通じないことが多い。
私は「バイナリ」の普通の意味は正確に理解しているつもりです。
とすると、インドリさんは何か「思い」があり、それを表現するために「バイナリ」という単語を使っている。
そこには通常用いられない重要な意味があるはずだ、と推論したわけです。

それを知りたい。

しかし「バイナリの意味がわからないから誰にでもわかるように説明して」というとまた「日記なのに強制するな」と言われてしまいそうだなと、奥ゆかしさを発揮して「定義を教えてください」と質問したのですが、なんか軽く返されてしまったので…
「いやそんな簡単な思いで『バイナリ』を使ってるんじゃないでしょ?なんか言いたいことあるんでしょ?!」と、ついついきつい口調になってしまいました。

無理に奥ゆかしさを作ると良くないですね。
今までのナシ。最初からヤリナオシます。
------
バイナリが大事というのは何回も聞いたが、私には「2進法が大事」「2成分が大事」「物事の両面をみることが重要」という意味にしか読めない。
何か言いたいことがあるように見えるので、私にわかるように説明して欲しい。
------

> それらの用語全てをれいさんの様に拘っていれば、決してよい結果を生みません。

言葉に拘りが多いほうかもしれませんが、今は言葉については拘っているつもりはありません。

インドリさんが「何を言っているのかわからない」ので、それを「理解したい」と思っているだけです。
ただそれだけですが、インドリさんの思いを知るためにはインドリさんの「言葉を聞くしか手段がありません」。
私は理解が遅いですし、行間を読んだり空気を読んだりできませんので、何回も質問しないとわかりません。
その結果、「言葉に拘っているように見える」かもしれません。

私の質問が嫌なら、アクセス禁止にするか(IPはころころ変わりますが「れい」というハンドルでしかコメントしません)、「俺の言葉が理解できない奴は不快になるから読むな」と言ってください。

インドリさんを不快にしてまで理解しようとは思いませんので、以降は質問しません。

------
あるまじろさん。
> 確かにそうかもしれませんが、私の場合は「バイナリ=機械語」なので低レイヤは成り立ってしまいます。
> 機械語に触ったことのあるい人間のだからでしょうか。

機械語ってmachine code(マシン語)ではありませんでしたっけ?
私も随分前にハンドアセンブルしたりエディタでマシン語直打ちしたりしましたが、「バイナリ=機械語」という認識はありません。
xxxx.bin、xxx.datといったファイルや、アプリケーションのデータファイルなどもバイナリファイルであると思います。

なので、
バイナリ≒バイナリファイル=2進法で記述されたファイル∋機械語実行ファイル=executable file
という認識です。
2009-05-26 Tue 23:47 | URL | れい #BqEwgRj.[ 内容変更]
R・田中一郎さん。
> バイナリという言葉単体ではなく、バイナリ〜というように、何かの単語と組み合わせて使うことが多いので〜

いま読み直していたら、やっと「広い意味を含みすぎている」の意味がわかりました。
「バイナリデータ・バイナリサーチ」とか例が下に出ているのに…

圧倒的に読解力が足りていないです。
すみません。
2009-05-26 Tue 23:58 | URL | れい #BqEwgRj.[ 内容変更]
機械語は2進数というより16進数の方がしっくりきます。


以下余談

「不満があるなら見なければいい」という意見はごもっともですが、ブログなんだから「自分の考えを記すだけで、不満が書き込まれるのが嫌ならコメント受付しなければいい」というのが先かと思います。

エントリーごとに、コメントを受け付ける/受け付けないの設定ができるんじゃないの?
2009-05-26 Tue 23:59 | URL | ラフィン #-[ 内容変更]
沢山のコメント有難う。
一気に返します。

あるまじろさんへ
やはり弄くった事のある人にはバイナリが通じるみたいですね。よかった。

・田中さんへ
その通りです。バイナリは伴って使うことが多いですね。

んさんへ
伝える気持ちはあります。
ただ、個人情報や研究内容は明かしたくないだけです。

(´・ω・`)さんへ
ごめん。これからはもっと改行します。

pinkey さんへ
私もそう思います。

ラフィン さんへ
私はコメントを拒否したいのではなくて、もっと気楽に楽しんで欲しいのです。
5月中のこのブログの有様を見ていただければその意味はわかって貰えると思います。

れいさんへ
私は「機械語を扱う時」「バイナリデータを扱う時」の2点もバイナリと表現します。
というのも、CPUにとってはデータもプログラムも全てがタダのバイナリだからです。
この点が非常に重要です。
バイナリは確かに意味が広く、仕事で正確に伝えたい場合は、どの意味でのバイナリかは文の前後で明記します。
しかしながら、この日記が伝えたい事は、どのバイナリが自分にとって必要なのか考えて学習しようという事なのです。
曖昧に書くことにより、読み手に考えを促す目的で使用しています。
それに加えて、私自身がバイナリ全般を学んでいるので限定する文を付け加えると、逆に意味が正確でなくなります。
それで、今回もバイナリを広義で使っています。
2009-05-27 Wed 08:21 | URL | インドリ #-[ 内容変更]
余計なことを申すようですが、今回の場合
「バイナリ関連技術」とすれば問題がなかったような気がしています。
プロの方に偉そうにすみません。
2009-05-27 Wed 08:37 | URL | とおりすかり #4oZy3F2E[ 内容変更]
∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |