スケルトン・エピ

letsspeakのブログです。

整理とか

昨晩はナチュラルハイで6時まで起きていたので、今日は割と眠いのだけれども、アウトプットしなさすぎて脳内にエラーがたまりつつあるので、世界改変を防ぐためにもここらで少し何か書いておこうという感じです。

最近書きたいなーとかやりたいなーとか思っていること

プログラミング学習系Youtuber

これはもう「プログラミング」「エンジニア」とかでYoutube検索してもらえればわかる通り、ほんと上部だけをくっちゃべってあわよくば囲って食って金をもらおうと思ってる人たちが多すぎて本当に辟易している。 本当に当人のことや将来の発展を考えるならば、コンピューターサイエンスだったり、初歩から応用、考え方の授業を動画にするべきだよね。っていいつつ自分も何もしていないのであれだなーとか思っていたけれど、きちんと文章化してみると囲って食って金をもらおうと思ってる人よりは全然マシじゃない?と思った。やっぱりアウトプットって大事ね。

インターネットの優しさの話

いわゆる炎上とか叩きってやつの話。まずメソッドとして目立ちやすくて共感を得る系のSNSでも共有されやすいのね。だからすごく目に入る。すごく目に入ると人の社会性なんちゃらの仕組みで自分も真似したくなる。だから悪意がなくてもどんどんそうなっていくのかなーとか。でも最近は増えに増えすぎて逆ポジとる人も多くなっていて、「流石にやりすぎじゃない?」とかねFF14関係のTwitterとかでそういう流れ一度みたりしていて、もしかするとネットの中に具体的なキャラクターや自己投影がされていけばされていくほど、こういうのは減っていくのかもしれないなーとか思う。

詳細設計の話

結局ゴールがどこにあるのかちゃんと決めましょうって話が結論。SIとか詳細設計とか自分も深層まで携わったことは多くないけれど、最近強く思ったことは将来的な改築を見越しているようなときは詳細設計する人にも高度な技術的知識が必要だよねと思う。というか詳細設計って結局「それを満たすようにただ作れ」っていうためにできたんじゃないかな。そうすると実際のコードの設計が低くならざるを得なくてそういう部分の負債を返すみたいな仕事を最近したりして思うところあった。特に最近の言語は昔の言語になかった機能とかが豊富だからそういう部分を考慮した設計が必要よねとか、「ただ作れ」じゃなくて作る人の能力を認めて任せられるならホワイトペーパーとかデータフローをきちんと図にするだけで十分じゃないとか。でもテストとかUI/UXまわりはある程度のセンスが必要でかなり個人差でるんだよね。自分は想像力結構高めで勉強もできたからわりといい線いってるとおもうんだけれども、個人差の壁って本当に難しいよね。

さてさっきの昔の言語似なかった機能とか〜の話、うまく説明できる例になっているかしらんけど、昔つくったカードゲームの「デッキ編集画面」っていうのがとても良い例で、「所持カード一覧画面」からも開けるし、「戦闘準備画面」からも開けたりするわけで、「戻る」とか「決定」ボタンを押した時の動作が「前の画面に依存する」わけ、まあそのくらいなら詳細設計にもわりとシンプルに定義できそうなもんだけれど、なんだっけな、わすれたけれど編集画面→ユニット選択→合成→ユニット選択みたいな感じでどんどん入れ子みたいに深くなる可能性があるわけ。あれ、この話だと本来したかったのは「ユニット選択画面」の話かもしれない。そうすると「戻る」の定義ってのは固定じゃないわけで完全に前の画面に依存するわけ。そういうのってプログラミング上は関数ポインタ、クロージャ、無名関数、ラムダ、なんでもいいやそういうの使うわけじゃん。これは一例にすぎないけれどそういうプログラミングパラダイムに根ざした設計って本当に詳細設計で正しく記述的できる?ってのは思うよね。

コスプレイヤーの話

なんかさいきんTwitterで可愛いコスプレイヤーを見かけるたびにフォローしてるんだけどタイムラインが可愛い女の子にあふれてしまって肉欲は満たされるけどどうも消化不良というか、そういう「可愛いバトル」って本当にこれどこまでいつまで続いていくの?大丈夫?ってなんか不安定な気持ちになるよね。

個人開発とかの話

最近全然個人開発できてないなーという状況で、家のMacでこんなにタイピングするのもこの文章が久々なんだけれどもいい流れの入り口になるとよいなー。

ブログ名変更と黒い画面を屠る会の設立のお知らせ

約2年半ぶりのブログ投稿になります。letsspeakです。

学級新聞を作って印刷してもらうのが楽しかったりして、昔からものを書くのは結構好きなタイプででした。 はてブの話題を見てあの記事に関連する内容を書きたいな〜とか、最近習得した技術についての内容を書きたいな〜とか思いつつも筆を執れないまま早くも2年半が経ちました。

2年半前といえば私がまだ自称フリーランスプログラマーを名乗る前ですね。

つい先ほどやっとブログを書きたい意欲が臨界点を超え、なぜこれまでブログを書いてこなかったか自省してみたところ、次の2点が大きかった。

1. ブログタイトルがダサい
2. 技術内容に対して通常の雑記がノイズになっている

ので、自称問題解決のプロとして、次のように対応しました。

1. → ブログ名を「スケルトン・エピ」に変更
2. → 技術内容のみのブログ「黒い画面を屠る会」を設立し、記事を移行

ブログ名「スケルトン・エピ」の意味

特に意味はありません。

トイレに入りながらなんとなく思いついた単語について、ユニークで無害であることを確認してそのまま採用しました。

強いていえば短くシンプルでユニークで万が一にもホットエントリーに上がってきた場合でも、「あ、このブログね」となるものにしました。それだけです。気が変わったら変える可能性があります。

黒い画面を屠る会」の意味

アインシュタインの電話番号というブログをご存知でしょうか。

ふざけた名前かつ技術的・理系的な要素を含んでいて大変素晴らしいブログ名だと思いませんか。

今回、これに倣って偉人の名前系も少し考えましたが、どう頑張ってもパロになる。もうこれには勝てないなと。惨敗です。

ということでこのタイトルにしました。

黒い画面、とても便利で確かにキーボードデバイスには最適化されていますし、自分も今となっては重宝していますが、初心者キラーかつミスり易いものがスタンダードになっていることに対しては、日々、極めて遺憾の意を表しています。想像力が足りていないクソザコナメクジが言いわk(以下自主規制)

以上、簡単ですがお知らせとなります。

映画「君の名は。」の話

細かい考察とかメタファーは大体だれか書いてくれると思うので省略、やっぱり見た後の取りつかれる感じ流石だなと思う。

わりと若い世代のリアリティのある生き方とか表情とか心象風景というか、新海ワールドの絵によってすごい説得力を持っていて、すとんと心に落ちる。

それから入れ替わった事は夢が覚めて時間が経過すると記憶が薄れていくとか、これは芯にある映像作品そのもののメタファーなんじゃないかなとか思う。これが何回も繰り返されるから視聴者もまるで自分が体験しているような感覚に陥りやすい状態となって、視聴後にここまで心酔してしまうのかなと思った。

彗星の奇跡については前にhuluで見た「ランダム 存在の確率」っていう糞映画があるんだけれども、この糞映画のおかげで、「彗星が来たんだからおかしなことが起こっても不思議じゃないよね」って気持ちで健やかに視聴できた気がする。

因みに今回初めて立川の爆音上映に行ってみたけれど、思っていたよりは音が大きくなかった気がする(爆音というよりは音量最大だった)ので他の映画館でも見てみて比較したいところ。音と映像や衝撃がリンクする箇所が多いので音が大きいことは割と価値がある映画だと思う。

何はともあれここ最近の映画の中でもかなりの傑作。
未視聴の方には非常におすすめである。

ブートローダーとカーネルローダー

ポトリスというゲームで「継続ハ力ナリ」という名前のプレイヤーがいて、仲間内では「継続はかなり」さんと呼んでいました。いつも丸太をやっていた消防士(当時50)のごんべえさん、元気でしょうか?ワシャシャシャシャシャ!

ぐだぐだOSプロジェクト

さて、VirtualBoxでOS動いたら楽しいじゃん?から始まったプロジェクトを始めて半月くらいが経ちました。

letsspeak/myos · GitHub

金曜日は色々とアルコール摂取が必要なので仕方ないとしても、なんとか生活習慣として根付かせようと頑張った結果、今日やっとカーネルに突入しました。

f:id:letsspeak:20151021233049p:plain

この画像にあるBheckkingのBの部分がカーネルが動いている証拠で、今のカーネルの仕事はそこで終了です。

生活習慣の中にきちんと趣味を組み込むとやっぱり人に話したくなるもので、カーネルローダーの話とかみなさんまったく興味はないと思いますし、聞き流すのが普通だとおもいますが、それなりに濃い話をできるというのはとても楽しいものだなと実感しています。

ふつうのプログラムの開発でにっちもさっちも行かず前に進めない状態というのは中々ないのですが、今回は本当に日進月歩でした。
つまらないメモですがこれまでのなんとなくの履歴を残しておきます。

ブートローダ

まずブートローダー。VirtualBoxでOSを起動しようとすると、まずBIOSが動きます。
BIOSフロッピーディスクドライブのブートセクタ512バイトを自動的に読み込んで中に書いてあるプログラムを実行してくます。

512バイトというと、アセンブラの命令で結構たくさんのプログラムが組み込めるように見えますが、なにせ初心者なのでできるだけ画面に文字を表示させて安心したいものです。

たとえば、現在の状況がわかるように"Loading Kernel Loader..."という22文字を表示させる場合、文字列を512バイトの中に組み込むので残りは490バイトという感じで減っていきます。手順が5段階で各手順の状況を出力すると512バイトのおよそ2割が文字列の情報だけで埋まってしまうのです。

また、単に文字列を表示させるだけでは正直中の状態がよくわからない!ということでAXレジスターの値を16進数で表示させるプログラムを組んで状態を見ながら開発を進めていましたが、後半になるにつれてどんどん残りのサイズが減っていきました。
最後は本当は必要な処理を一旦コメントアウトして、デバッグ用の16進数表示のプログラムを中に入れたりしながら、ブートローダーが完成しました。

現代ではこんな経験はたぶんここでしか有りえないと思いますし、作ったところで特に意味はないですが、1週間くらいでできる中々に楽しい経験なので、プログラマーには割とおすすめです。

カーネルローダー

ブートローダーの16bitの状態ではセグメントレジスタ(指定値を16倍にしてくれる)を利用しても0xFFFF0+0xFFFF=0x10FFEFつまり111kB分のメモリアドレスまでしかアクセスできないので、カーネルローダーの中で32bitに移行してカーネルイメージの読み込みを行います。

これまで利用していたBIOSの機能は16bit用のプログラムなので、32bitに移行してしまうとこれらが一気に使えなくなります。これがかなりの鬼門でしたが、実はVRAMの領域に直接アクセスして値を書き換えてあげると画面に文字を表示することができるので、それを利用して32bit用の独自の画面表示の仕組み(文字送りなど)を512バイトの制限に囚われることなく書くことができます。

A20やGDTの指定、意図しないEDXレジスタへの副作用(おそらく)など、鬼門となる箇所が非常に多く「なぜ動かないのかが分からない」という事態に何度もぶち当たりましたが、毎日継続しながら小さな可能性をひとつひとつ潰していくことでひとまずは何とかなりました。

カーネル

よーしカーネルローダーが終わった!あとはカーネルを動かすだけだ!
と思ってから1週間ほどカーネルローダーを直し、カーネル側のコンパイルにも数日かかりました。

自作のプログラムを動かす都合上バイナリの先頭からプログラムが始まっていなければならず、リンカスクリプトをうまく読み込ませてコンパイルさせることが必要になります。このあたりgccなど慣れている人なら簡単に終わるのかもしれません。

まとめ

以上、そんな感じでひとまずC言語に到達できました。
今後はC言語で基本的な仕組みを整えつつ、ネットワークまわりから1MB以上のデータを貰ってくる必要がありそうです。

プログラマーとしてアセンブラとかいう非生産的な言語には一種の憧れがありましたが、実際に使ってみると何の役にもたたないただのクソ言語だったと感じます。
おそらくアセンブラ機械語を書いていた大昔のプログラマーも「こんなん絶対別の記述したほうがいいだろ」とか頭の中に現代を描きながら悶々とプログラムを書いていたに違いないと思います。

なんだかよく分からない纏めになりましたが、
継続すればなんとかなるというところは大事にしたいなと思います。

P.S. valley of the cityで韓日ギルドのダブルを盗んだ時の快感を今でも思い出します。

モチベーション

先週、ニコ生でドワンゴの勉強会が放送されていてなんとなく見ていたところ、
いつも通りエンジニアくさい人が色々喋っている中でとても良いものを紹介していました。

John Resig - Write Code Every Day

<日本語版>snowlong.hatenablog.com

できれば動画かその時のスライドを合わせて見て欲しいのですが、

www.slideshare.net

まとめると、
生きる目標に対して日々の中できちんとマイルストーンを置いてそれを習慣化させればとてもハッピーという感じでしょうか。

それから例の火事動画の事件、
配信していたサイトが妙だと思ったら個人製作でした!

aquapal

ここに作者:くくさまの製作物、製作年が載っていますがすごいバイタリティです。
マビノギにくくられて隠れていますが、装備シミュレーターなんかは見た目も確認できたりする代物で人知を超えています。
コツコツ継続するのが大事なんだな、と感銘を受けました。


そんなこんなを受けてモチベーションを高めながら、
最近は Virtual Box で自作OSを走らせるべくアセンブラと格闘しておりました。

letsspeak/myos · GitHub

コスプレ衣装製作もしたいし、色んなWeb/スマホアプリ作りたいし、時間割ツールもつくりたい中、なぜこれに火が着いたのかまったくもって謎ですが、少なくともプログラムに触った人間として一度はアセンブラを書いておきたかったというのも事実で、とりあえずは良かったかな。と思っています。

現時点でアセンブラやOSの製作に関して思うことは、

  • ハードウェアアーキテクチャやOS周りは歴史が長すぎて覚える(覚えなくてもいい)仕様が非常に多い
  • アセンブラは想像以上にただのツールだった
  • レジスタ2個くらいあればなんとでも書けそうなのが凄い
  • PUSHさんとPOPさんすげー
  • それもハードで考えると仕組みは簡単そう(な気がする)
  • CPUも自作すればだいたいのことがわかるのかもしれない
  • 札幌に忘れたので本を買い直した
  • OSから解放されたと思ったらBIOSさんの上だった
  • ブレークポイントは今まで魔法だったけれど、機械語のバイナリにINT3を入れるだけなら技術的にはそれほど難しくないのかも
  • 全部自作でパソコンっぽいもの動かしたい
  • BIOSとかチップセットとかどうすんの
  • せっかくなのでアセンブラから中級言語を...
  • 楽しい!

といった感じです。

なにより大事なのはまず前を向くことなのかな、と思いました。

雑記

生きています。

animatorexpo.com

毎日数回リピートする程度にははまっている。
モーション担当の人がはっちゃけて初回から付けてきたと言っていた足上げステップが最強にかわいい。

www.youtube.com

そういえばCMで聴いたことあるなと思って久々に聴いたらいたく感動した。

どうしてこんなに悲しい感じに聴こえるのかとても不思議でなんども聴いていたところ、
ちょっとナウシカっぽいなーなんて思ったりして、
ああ音楽って結局のところ
人生でこれまでに聴いた音楽体験が元になっている部分が大きいんだなあ
と改めて思った。

極めて単純な思考実験

- 自分とはまったく国籍も世代も違うような人が同じ曲でどんな感情を覚えるのか
- まったく文脈のない支離滅裂な音をどう感じるのか

とかしてみるとやはり明確で、
音楽だけではなく文化たるものは全て
それまでに受け継がれてきた数々の作品からの流れの上で、
どのように時代に合うかでその作品の影響力、人に与える印象が決まるんだなあと強く感じた。
(そういう意味では作品の評価というものはいたく曖昧である。)

もちろん人間であるがゆえの共通のビートであるとか、
音楽理論に基づいた曲調であるとかそういうものを含めても、
やっぱり記憶から呼び出される体験には勝てないんだろうなあという感じ。

そういうのを踏まえると、
文化の延長を作るような仕事って本当に大変だなあと思う。

また逆説的に淘汰で考える(無数の作品から時代にあったものだけが残る)とそこにある胎動は
政治的経済的その他様々な要因をもとにうねりができているのか、
とても不思議でもあるし、
そのような偶然が作品を生むのであればそれを源流とした作品もまた偶然となり
奇跡の連鎖によるバタフライエフェクトのようなうんぬん。

いまだに電脳化の夢は忘れないけれども、
年をとればとる程、
人という器にどれだけ人が縛られているのかをひしひしと感じる。

素晴らしき Daito Music のキセキ

Daito Music とは

株式会社大都技研というパチンコ/パチスロメーカーの遊技機に使われている楽曲です。
特にボーカル曲の人気と完成度が高く、知る人ぞ知る名曲が多く生み出されています。
またそのほとんど全ての楽曲がiTunesStoreで配信されており手軽かつ安価に曲を購入することができます。
今回はそのなかでも女性ボーカル曲に絞って名曲を紹介していこうと思います。

そこにあるかも知れない・・・

すべてはここから始まった!

4号機の全国的なパチスロブームでは「北斗の拳」(Sammy)、「吉宗」(大都)の2台トップ機種が圧倒的な稼働率を誇っていました。
「そこにあるかも知れない・・・」はその吉宗という台でBIG中に聞ける曲です。

吉宗 サウンドトラック - そこにあるかも知れない・・・ 試聴
https://itunes.apple.com/jp/album/id371964353

吉宗 サウンドトラック

吉宗 サウンドトラック

  • Daito Music
  • Soundtrack
  • ¥600

当時は浜崎あゆみの ayu-ro mix などユーロビート調の楽曲が流行したタイミング。これにパチスロ人口が増えた事が重なり、完全に時代とマッチした楽曲が生まれました。吉宗ファンの間ではあの曲は実は浜崎あゆみが歌っている説、尼崎あゆみという謎のアーティストが歌っている説、大都の社員が歌っている説などの噂が流れました。

大都のすごいところは、これまでサウンドトラックなど殆ど出していなかった2003年、6月に台をリリースしてからわずか半年の12月3日にこのサウンドトラックをリリースした所だと思います。本業が違っただけあって、異業種での活動のフットワークが軽かったことと、サウンドチームの熱がとても高かったことが要因なのかなと思います。

また、各地のパチスロ店には景品としてこのアルバムが置かれていました。曲を気に入って、なおかつギャンブルに勝った人がすぐに買えるという好循環が出来ていました。

Distance

4号機規制がはじまりそうな時期に吉宗の後継機となる「押忍!番長」が4.5号機としてリリースされました。そこで登場したのが「Distance」です。「そこにあるかも知れない・・・」のファンは、この曲を聞いた瞬間に、「ああ大都の曲のクオリティは信頼できる」という確信を持ったに違いありません。

押忍!番長 サウンドトラック - Distance 試聴
https://itunes.apple.com/jp/album/id371966138

押忍!番長 サウンドトラック

押忍!番長 サウンドトラック

  • Daito Music
  • Soundtrack
  • ¥600

イマ コノ トキ ダケ

調子に乗った大都は吉宗の正式後継機となるパチスロ台「新・吉宗」をリリースしましたが、見事に大ゴケをかまします。いまとなっては大都の風物詩とも言える大ゴケですが、そのなかでも Daito Music はさらなる新曲をリリースしています。

新・吉宗 サウンドトラック - イマ コノ トキ ダケ 試聴
https://itunes.apple.com/jp/album/id371975537

新・吉宗 サウンドトラック

新・吉宗 サウンドトラック

  • Daito Music
  • Soundtrack
  • ¥600

キセキの宇宙

「新・吉宗」が大ゴケしたとはいえ、「吉宗」はあの北斗の拳に次ぐ販売数を記録した台。大都はここで吉宗のパチンコ台「CR吉宗」を世にリリースします。あの吉宗のパチンコ版!ということで世の中的にはやや注目を集めますが、出玉のバランスが時代にマッチしていなかったことや、通常中がクソつまらなかったこと、画質が悪かったことなどが要因で、またもやヒットを掴む事ができませんでした。

が、しかし!この台とともに Daito Music の中でもっとも素晴らしい曲「キセキの宇宙」が登場したのです!!

CR吉宗 サウンドトラック - キセキの宇宙 試聴
https://itunes.apple.com/jp/album/id381641980

CR吉宗 サウンドトラック

CR吉宗 サウンドトラック

  • Daito Music
  • Soundtrack
  • ¥600

この曲はいままで聞いた全ての曲のなかでも私がトップレベルに好きな曲です。
0:00〜5:02までまったく非の打ち所がない、間違いなく神曲といえます。

CREA

その後の大都ですが、「爺サマー」という頭のおかしいテーブル数の台を出して小ヒット、「秘宝伝」の後継機を出して中ヒットなどしながら独自路線を突き進みつつ、糞台を出すという謎の良循環が生まれます。
この中で「秘宝伝」のさらなる後継機「秘宝伝〜太陽を求める者達〜」をAT機として出しますが、AT機はその特性上普通に打っていては揃う事のないボーナスというものがあり、そこに収録されていた幻の楽曲がCREAです。

秘宝伝 ~太陽を求める者達~ サウンドトラック - CREA
https://itunes.apple.com/jp/album/id595609029

Youtubeリーク版
https://www.youtube.com/watch?v=bvRqo4NcTEY

パチンコ/パチスロ系楽曲の魅力

パチンコ/パチスロ自体、いかに遊戯者を興奮させるかという視点から映像と音楽の同期効果はかなり初期から研究されています。今となっては曲+映像が流れるのが普通になってしまいましたが、やはり本気度の高いコンテンツは見ていて、聞いていて飽きないもので、とても楽しいです!

最後にDaito Music ではありませんが、もう一つお気に入りのムービーを紹介して終わりにしたいと思います。

CRぱちんこRio 「Perfect Pride」 ‐ ニコニコ動画:GINZA