I’m loser, baby.

So why don't you kill me?

ジェダイへの道 ForthとJavaScriptとemulator

話のマクラ

  • 帰ってきましたよ、初心に。
  • この後、CakePHP入れて会社でやったことおさらいしてページデザインするための手順を確認するつもりなんですが、その前に己の欲望に従ってForth周りで昨日調べたことをメモっておきます。
  • ここまで書いたら部屋で放し飼いにしている亀が餌をねだりに来たのでたらいに水張って餌と一緒にいれてあげた。
  • そういえば会社で音の加工のことで突然質問されて、割合的確な答えを返せた自分をほめてあげたい。
    • なぜならば音関係は今後任せます、と冗談半分にしても言ってもらえたから。やった!

Forth@Javascript

codepen.io

    • 昔は色々あったみたいですが、正直あんまりアクティブなプロジェクトは多くはない。
      • 技術的な興味の他には、素のJavaScriptスクリプトに制限をかけるような言語仕様を実現しても面白くないんだろうかね、と。
  • 上の3つの例のうち上の2つはJavaScriptでヴァーチャルマシンを作って、その上でForthを動かしているので、広がりやら技術的面白さということでいうと、このアプローチになるのでしょう。

JVM(JavaScript Virtual Machine)

  • 上のようなことを考えていたら、Jupiter Aceのことを思い出した。ご記憶でしょうか。

senjiniban.hatenablog.com

  • もしやと思って探してみたら、やっぱりありました。JavaScriptでJupiter Aceをエミュレートってやつ。
    • ゲームも色々遊べるよ。
    • なんかこの人は色々なマイナーPCのJavaScriptエミュレーター作ってて、愛があっていいですね。

jupiler, the unique javascript Jupiter Ace emulator

  • この人だけではなくて昔のPCをJavaScriptでエミュレートしている人は結構いる。

www.cambus.net

Javascript PC Emulator

  • こんなものまであった!動作だけでなく6502アーキテクチャの完コピ。マニアック!

Visual 6502 in JavaScript

  • JavaScriptからは少し離れるけれど、Forthがらみでいったらこんなものも見つけた。
    • Verilog200行(!)で書かれたForth用CPUで、TCP/IPとかも対応しているそうだ。
      • Verilog200行だったら自分にも読めるのではないか。

The J1 Forth CPU — excamera

お仕事1週間

お陰様で無事新しい職場で1週間が過ぎました。

  • 熊本に来て初めて全てが腑に落ちて働けた1週間かもしれない。
    • 100点満点って訳にはいかないけれど良く出来たとは思った。
      • 「良く出来た」のは仕事内容というより自分の心持ちとか態度のことね。
    • あと時間の見積もりはまだまだ駄目だ。見栄張らなくていいのに、もー。
  • 内容的にはwebアプリの画面要素検討と必要データの検討でした。
    • 自分の作業スピードの上げ方はもっと研究すべきだな。
    • こだわらなくて良いところをこだわるのは悪い癖だ。
      • 「後で直すんだから今は良い」って自己暗示掛けないといけないな。

技術取得のリファクタリング

  • まずはHTML5+CSS3+JavaScript
    • 今の会社はwebアプリ+スマホアプリメインの会社なのでまずはwebアプリが作れるようにならなくてはいけない。
      • そりゃweb制作は以前だってお仕事としてやったことはあるけれど、何年かぶりでまたweb作ってお金貰うからには今現在の技術・クオリティをプロとして最低限クリアしたものが作れなくちゃいけない。
      • それにこの3点セットだって攻めようと思えばいくらでも高い峰が設定できる訳で。
      • JavaScriptでも以前遊ばせてもらったBiwaSchemeみたいに自分の個人的興味に十分近いところまで降りて行っても実用的になるスピードで動く。
      • それにWebAudioAPIを見る限りブラウザ上でだって自分がマイコンやその他でやりたかったことは出来る筈なのだ。
    • まずは超大急ぎでHTML5+CSS3をおさらいし、来週からの仕事に臨む
    • 並行してJavaScriptもおさらいする。
      • 普通にJavaScriptの勉強も、もちろんする。
      • そしてやっぱり音をやりたいのでWebAudioAPIがらみで自分に課題を出す。
      • 前から言ってるibnizの移植をやってみたい。
        • それにはこれまで調べてきたForthのことやCPUについての勉強が役に立つはず。
      • どこまで出来るか判らないけど、頑張ってみる。
    • とりあえずはどの言語から身につけよう、って悩むことは無くなった感じだな。
  • 次にCakePHPPHP
    • これは単純に今参加しているプロジェクトがこれで作られるから。
      • PHPも7まで来ているし、CakePHPとか触ってみたのはずいぶん前なので、やっぱり勉強しなおすくらいの気持ちでやらないといけない。
    • これはもう会社で触って、CookBookのチュートリアルやったけど、前はほんとにチュートリアルなぞっただけだったが、今回は結構思い出し理解しながら出来た。
      • 判んなくても勉強は続けておくもんだ。
  • そしてkotlin+JAVA
    • これは急ぎじゃないけどアプリも多分思っていたよりは早くやらされそうなので、これも見ておく。
    • 会社じゃkotlinは使ってないけれど、触っておいて損はなさそうな気がする。
    • もちろんお仕事としてやるのでJAVAでもアプリ作れないとだめだけど。
    • というかこの二つはandroidアプリ制作に特化して勉強すれば良いかな。
  • そしてFORTH
    • JavaScriptでForthっぽいibnizを移植しようとしているので、優先順位的にはある意味一番上に戻るとも言える。
      • やっぱりブログのサブタイトルにしているものを無視するわけにはいかんです。
    • ただ既存のForth実装でバリバリプログラムしたいのか、っていうとちょっと違うのかもしれないのが悩みどころですが。

でもって買ったり借りたり発掘したもの。

  • という訳で読んだり調べたりプログラムしたりしているのですが、ここのところ紙の本を読む機会が多い。やっぱり紙は紙の利点があるよなあ。

今すぐ使えるかんたんPLUS HTML&CSS逆引き大事典

今すぐ使えるかんたんPLUS HTML&CSS逆引き大事典

ざっとおさらいするにはどれがいいかなと本屋に行って数冊眺めてみてこれにした。まだ読めてないけどコストパフォーマンスは良さげ。
初めてのAndroid 第4版

初めてのAndroid 第4版

何は無くともオライリー。その分野についてオライリーの本を1冊でも持ってないと不安で仕方がない病にかかっているのです。
Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

こちらも早速ゲット。
良いAndroidアプリを作る139の鉄則

良いAndroidアプリを作る139の鉄則

Androidってだけでなくて開発ノウハウとしても勉強になる。滅茶苦茶面白くて困る困らない。少年漫画論として素晴らしいのと人材育成論としても素晴らしい。でもってこちら。本誌もいよいよ主人公たちが双亡亭に侵入して話が熱い。
検索と発見のためのデザイン ―エクスペリエンスの未来へ

検索と発見のためのデザイン ―エクスペリエンスの未来へ

さよなら、インタフェース -脱「画面」の思考法

さよなら、インタフェース -脱「画面」の思考法

  • 作者: ゴールデン・クリシュナ,武舎るみ,武舎広幸
  • 出版社/メーカー: ビー・エヌ・エヌ新社
  • 発売日: 2015/09/17
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (5件) を見る
そして技術自体が目的にならないために。このことは最近社長とのメッセージのやりとりでも出た話題。

やりたいことやれること

  • さて、再就職先が決まったので走り出す前に考えタイム。
  • 新しい会社ではアプリを作る仕事にまず就くらしいのでそこら辺から
    • 組み込み系などもやっているのでこれまでの興味の路線が活きる可能性もある。
  • (携帯)アプリを作るという事については、ディレクターだったりプロデューサーだったりの関わりは持ってきていて、ここは自分の強みだとは思うけれど、プログラマーとしてはアマチュアとしても2流以下なので、ここから頑張らなくてはいけない。
    • 仕事として考えると「アプリを完成させること」「アプリを売ること」が目的なので、あまり技術的なことにのめり込み過ぎたりコンプレックス持ちすぎたりしないようにはしたい。
    • ただ、最低限の技術的トレンドくらいは押さえておかないといけないし、技術的なことも多少は判るというのも自分の強みの筈。
  • それでスマホアプリということでやるとしたらJavaobjective-Cかswiftって事だよなあ。
    • 実際、前二つは面接で出てきた。
  • 取りあえず手元にあるのはWin/Linux環境なので、まずはAndroid開発環境を調べてみる。
    • Javaやることになるとは思ってなかったなあ。
    • それで色々見てみたらkotlinというのもあるのですね。
      • 名前が可愛いぞw。
      • objective-Cに対するswiftという感じでJavaに対するkotlinというなのですね。面白そうな気がとてもする。
      • 公式サイトでお手軽に触れるWEB実行環境がありました。
      • 本も出るという事なんで予約してみた。
    • とはいうものの、Javaも押さえておかないととは思うので、Android特化で良いので早めに色々見ておきたい。
      • 後で図書館に行って本を見る予定。

try.kotlinlang.org

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

  • でもってAndoroid開発環境をインストール。
    • ネット見ながら、Java環境と、Android StudioとGenyMotionをインストール。
      • 環境自体の移り変わりとかバージョンアップとか凄いスピードっぽい。
        • 英語ガンガン読まないと辛そうだなあ。
      • インストールする際にBIOS弄ったりしなくちゃいけないのが、何かAmigaを思い出させてくれた。
    • 取りあえずHello World!がGenyMotion上で表示されるところまでは確認。
    • この後図書館行って入門書見て今日明日で簡単なアプリのサンプルまでは写経してみる予定。
  • それから先は会社で業務が始まってからで良いかな。
  • Javaといえば、これをインストールしてみたのだがRenoiseではうまく動かない。
    • JVMのバージョンのせいだと思うけど。
    • ただAndroidの環境を不安定にしてまでチャレンジはしなくていいかな。
      • Linuxでやってみるのもいいかもしれない。

jvstwrapper.sourceforge.net

  • 組み込み系の話でいうと、興味的なところはΔΣ変調、1bitオーディオみたいなところにはあるのだけれどそこ止まりなのが正直なところ。
    • 仕事が始まったら、組み込みをやる場合を除いてしばらくは出来ないだろうなあ。
  • 音楽関連はそれでも求職活動中もやってたしこれからもやるだろう。
    • アプリに音付ける作業はなんとか会社の中でポジションを作りたいw
  • 最近はAudioRealismプラグインを入手して喜んで遊んでいるところ。
    • ABL3最高!!

www.audiorealism.se

それから

  • 前のエントリーから1か月以上経ってしまいましたが、本日新しい仕事先が確定しました。
  • 熊本市内のWEBアプリ、スマホアプリメインの開発会社です。
  • ここに至るまで20社位にアプローチしました。
    • ハロワ5社、リクナビ15社くらい
      • ハロワは在職中でも登録して求職活動できるというのは初めて知った。最終的にはハロワで紹介してもらったところに決まりました。
      • リクナビは全く返事が無かったところから内定を貰ったところまで色々。
    • 初心者OKのところでも、この歳になってからはどこも基本はNGでしたね。
      • 結局役に立ったのは制御盤制作を実務でやったことと、プログラマではないけどWEBの制作運営と携帯アプリの制作ををやったことでした。
  • とりあえず今日は暑いのと疲れたのとでここまで。

上を向いて歩こう

  • 諸他の事情で今の職場は7月までとなりました。8月からに向けて新しい仕事を探さないといけない。
  • 不安定な人生を選んで生きてきたので文句はないんですが、思った職に就くのは難しいだろうし、更に新しい分野にチャレンジというのは年齢的にしんどかろう。自分も相手も。
  • ただ、今回の地震を体験して思ったんですが、もう本当に音楽を作り続けられれば、あとはどうでも良いかな、と思っています。
    • 子供も独り立ちしたし、今はダブルインカムノーフューチャーです。
    • 動ける間は音楽作って死なない程度に働いて、動けなくなったら野垂れ死ぬと。
      • そこら辺は奥さんとも共通認識なので良かった。この人と一緒に過ごせているだけで人生の目的は大体叶っていると言っていい。
  • あと10年生きられるとしてスケッチレベルだとしても1週間に1曲作れば500曲作れる。
    • うん、残りの人生の目標として悪くない数字じゃないかな。
  • プログラム系の目標も見直し
    • QB64はやると思うけど、これはツールとしてとにかく早くていいのと覚えやすい、ということなのでこだわらない。
      • 根っこにあるやりたいことは線形予測法による音の生成だけど、音声合成プラグインとかはすでにいっぱいあるから欲しい音を探してなければ作る位の気持ちで良いと思う。
    • 前はプログラム作って配布出来たらと思っていたけど、それこそワナビーな話なので、使い捨てレベルで自分のツールを作るってことがせいぜいなんじゃなかろうか。
      • 要は使う道具はBasicでもpythonでもなんでもいいのだ。
    • でもLuaは良いかも。
      • Renoiseのツールを作れるから。
        • リアルタイム処理は出来ないけどRenoise内で音の合成もできる。
        • RenoiseをLiveみたいなライブ向け仕様にするツールとかもある。
  • 愛機の安ノートPCも使い倒すけれど、microkorgとSP-404SXもいっぱい使ってあげよう。
    • 自宅ライブっぽく使ってみたい。
      • 長い尺の曲はSoundCloudだと容量の問題があるからYouTubeにあげるのが良いか。
  • スッパマイクロパンチョップさんにマスタリングを頼んでみたい。
  • またテーリ・テムリッツさんから直接CD買う。
  • 最近リミックスを良くやらせて頂いているけれど、またユニットもやりたいな。

soundcloud.com

メモ・目的大幅リファクタリング

  • 仕事絡みのプログラム関係、技術関係は今はペンド中
    • この先、WEBアプリを作る可能性は少しあり
      • 9月以降かな
    • 今はひたすらデータベース用データ整理
  • 音絡みのことはQB64かpixilangで線形予測法のサウンドエンジンを書くかもしれない以外は今は見えない
    • ツールより音楽を作りたくなってきた
      • ツール作って使ってもらうことで自分の曲に興味を持ってもらえるかと思ってたけど、そんなに遠回りしている余裕はなさそう
    • ツールとしてCsound系とかV-ANSとか触ったけど、思っていたことが出来なくて、そういう意味ではQB64とかでツールを作るモチベーションは有る、というか無いわけではない
  • というか曲を沢山作ればそれだけ反応はあるような気がするので沢山作る状況を整えれば良いのではないか

soundcloud.com
soundcloud.com
soundcloud.com

  • ただ前々回ジェネレーティブなものを作るという事を書いていたけれど、多分そうして自動生成されたものを編集するので自動生成ではないと思う
    • 高橋悠治を読んでいて影響されていたが、自分はそういう意味では古式蒼然とした作曲家指向だしテーリ・テムリッツの言葉を借りるなら「コントロールしたがり」なのだろう
      • だけれど作曲の過程の中で即興や演奏が入り込まないことがあるのだろうか
    • コンピュータを使った自動演奏や作曲が好きなのは演奏者として自分の意識を演奏に持っていかれてしまわずに、その曲の一人目のリスナーとして音楽に接することができるからだと思う
      • もちろん優秀な演奏家は演奏技術によって一人目のリスナーとして接しているのだと思うが、自分はそこを電子的な技術によって補完している
        • 通常の楽器だと自分では制御しきれないんだろうと思う。フィードバックまでのタイムラグが自分の頭では遅すぎるのか
          • ただのっているとき(フロー状態ってやつか)はそれができているんだろうと思える瞬間がないわけではない
  • すっかりサウンドクラウドが自分の音楽活動のメインになったけれど、もう少し広げていきたい
    • 今考えているのは長い曲はYouTubeにアップするかな、という事と、その長い曲はPC以外を使って作ろうかな、という事
      • 上ではああ書いたけど、ちょっとライブっぽく曲を作る=演奏するというのもやっぱりやってはみたいが、それを元に編集はするのだろうなあ