-
-
michiru_da
今日のテーマは、年末年始に作ったものについて話そうよ。
うぱ / upamune
また年末年始の話してる。
michiru_da
まだしてんのか、こいつら。
うぱ / upamune
これ近づくと終わるぞ。
michiru_da
てか何も、今日4本目の収録なんですけど、ずっと年末年始の話してる。3時から。
うぱ / upamune
気が狂いそう。
michiru_da
もう19時になりそうなのに。あとお菓子。はい。
うぱ / upamune
はい。急に切り替え早く。
michiru_da
私はちょっとだけ作ったものがあるんですけど、うぱさんなんかすごいたくさん作ってたんで。
うぱさんから。
いい?
どうぞ。
私もおまけ的に最後にちょちょちょって話します。
うぱ / upamune
じゃあちょっとしたやつから。
michiru_da
何個作ったの?
うぱ / upamune
ちょっと待って。3、4、5。
5.5ぐらいですか。
まずあのしょぼいやつから行くと、向こうでいるときに、え、寒ってなったんですよ。
michiru_da
年始に離島を滞在してたときに。
うぱ / upamune
実家にいるときから寒いなって思って。
で、もともと私あの天気、みんな大好き天気あるじゃないですか。
天気ってベース、晴れとか雨とか、あとその今日の気温は何度みたいな。
私あの絶対気温もうなんですよ。
その気温が何度って言われても、そのわかんないんですよ。
michiru_da
もうって四季猛とかの。
うぱ / upamune
そうそうそうそう。
michiru_da
盲目の。
うぱ / upamune
左右盲みたいな。左右がわかんない人。
絶対その道さんが明日何度だってみたいな。
でもそれがなんかそのあったかいのか寒いのかわかんないですよ。
だから常に相対温度を出す。
昨日より何度っていうやつを。
その、もともとこれがですね。
あの気象庁の2週間天気予報っていうやつがありまして。
これが割とね。
あれ?
そのこれはその平年より比べて、その日付ごとにかなり高いとか高いとか。
平年でも低いかなり低いみたいなのがあって。
これ結構わかりやすいけど、その今日わかんないとかいうのがあって。
でこのデータをもとにバイブコーディングをして。
これがね。
michiru_da
こうやって今いる場所でってこと?東京は?
うぱ / upamune
ああそうです。なんで例えば秋田。
だったらこれがロケーション秋田になってこのページを共有したら最初から秋田になってるって感じですね。
michiru_da
なるほど。昨日よりマイナス5度。
うぱ / upamune
で平年かなり寒い。
michiru_da
平年並みの寒さだよって。
うぱ / upamune
そうそうそう。
でこれがその絶対絶対オンラインかなりどうでもいい。
私にとってかなりどうでもいい情報なんで。
もう昨日と比べてどうやねんっていうのを知りたいなと思って作ったやつが最初のやつですね。
これはエグゼデブっていうちょっとバツってたやつで。
michiru_da
これ何?
うぱ / upamune
作りましたね。
これはバーチャルマシンっていう仮想環境。
もう実質なんかそのMacの中身をクラウド上に作りますと。
でそこの上でバイブコーディングしますっていう。
michiru_da
でってMacじゃない仮想環境だったら何がいいんですか?
うぱ / upamune
例えばMacとかだったらどっか移動中だったら閉じるから動かないじゃないですか。
じゃなくてこれはクラウド上なんでスマホとかからこれ何とかしてってやったらずっと動き続けてくれますと。
でも他のなんかバイブコーディング系のツールと何が違うのっていう感じだと思うんですけど。
これはもう本当にそのマシン。
もうこのMacが入ってるようなもんなんで。
別にその何だろうな。
自分のクラウドコードとかコーデックスとか自分の好きなものを何でも使うことができるんで制約がない。
michiru_da
本当にじゃあVMの環境だけがある。
うぱ / upamune
そうです。でまぁちょっと優しいやつがこのなんかシェリーっていうエージェントがあって。
これを使ってもそのクラウドコード直接使わなくてもこのスマホビューとかでこのこれを使って。
何とか何とか作りたいよーみたいな感じで言ったらその実装してくれるエージェントもついてるって感じですね。
michiru_da
今映してるのはExeDevの画面ですか?
そうです。全部ExeDevの画面です。
うぱ / upamune
私が作ったわけではないやつですね。
でこれは本当のターミナル。
michiru_da
ExeDevのターミナル?
そうです。なんでここでクラウドコードをインストールしてクラウドとか使ったら使えるっていう感じですね。
他にもこのExeDevみたいなサービスもあるんですか?
うぱ / upamune
このVMっていうそのバーチャルマシンを提供するサービスあったらまぁ古来からいろんなサービスがありますけど、
これはまぁなんだろうそのシェリーっていうエージェントを提供していたりとかこの作ったやつが簡単にこの
外に共有できるっていうところと、あとは
何も難しいことしなくてもこの認証がかかってるっていうところですね。
自分だけのViveコーディングアプリを安全に開発できるっていう。
michiru_da
Exe、さっきの天気のやつのURLはExe.Devですか?
うぱ / upamune
そうですそうです。
michiru_da
で、それは公開できる設定にしてるってこと?
うぱ / upamune
あれもね、別に公開はしてないです。
自分の、はい。
michiru_da
ああ、なるほどですね。
うぱ / upamune
感じですね。
なので別にこのポート番号とかも入れられるんで、
michiru_da
この一つのVMから別に100個のアプリを公開することも別にできる。
ポート番号とかあったな。
いやなんか本当に開発、システム開発ってマジ覚えることが多すぎるんだよな。
VMも新卒の時にも習ったけど、
別になんかローカーと何が違うんって感じですし、
ポート番号の何番とかも、何?
多いんだよね、ちょっと覚えることが。
え、もうすごいなっていう感じですか?
エンジニアの人。いやそれ元から覚えてわかんない。
うぱ / upamune
なんで逆に。
michiru_da
いやでもよく全部覚えてやってるよって感じですよ、ほんと。
うぱ / upamune
ほんとに、AIない時代はね、そこだったんですよね。
michiru_da
いや本当にすごいですね。
なんか、なんだろう、その、
なんかあんまり汎用的な能力、
汎用的になるために覚えることがほんと多いですねっていう。
すごいよ。
よく覚えてますね、ほんと。
なんか、
だからうぱさんがよく、いや私、なんでその、なんか、
うぱさんの言葉を引用すると、
すごいなんか貧寂の低い大学に行ってたとか、
だから勉強ができないみたいな論理構造で喋ってるけど、
いやめっちゃ勉強できるじゃんって思う。
うぱ / upamune
記憶じゃないんですよ。
michiru_da
よく覚えてるなって感じだから。
絶対覚えらんないもん、そんな。
うぱ / upamune
記憶じゃないの?
概念をただ理解しとけば、あれはどこにあるの?みたいな。
michiru_da
それが勉強なんだから。
そう。
苦手なことが多い、
苦手な人が多い感じのジャンルじゃん。
とっつきづらいものを、
そうやってなんか汎用的に学習してるのってめっちゃ勉強できるなって思いますよ。
うぱ / upamune
どうした今日。
michiru_da
すごいよ、どうした今日、いつも言ってるだろ。
うぱ / upamune
キレながら褒めるってなんか新しいですね。
いつも言ってるだろ。
はい。
michiru_da
はい。
うぱ / upamune
ありがとうございます。
で、次はですね、ちょっと作ってる人がいたんで、私も。
michiru_da
よかった、その褒められてるって認識してて、よかった。
そう、いつもね、褒めてますって言わないと褒めがないっていう、
記憶に自動化してるから。
うぱ / upamune
私もみちるださんのこといつも褒めてますもんね。
michiru_da
どうかな。
うぱ / upamune
どうかな、さっきも褒めてた。
はい。
うぱ / upamune
最後は多分何言ってばわかんないと思うんですけど、
でもScrapboxを使ってたら共感してくれると思うんですけど、
このScrapboxで何かを書いてるときに、
例えばURLを貼るとするじゃないですか。
貼ったらシンプルURLかコマンドシフトVのこの、
今URLですけどカードが出ない。
OGPのカードが。
michiru_da
で、それを出したいなーってなって作ったやつがこれです。
うぱ / upamune
えーすげー。
なんかシンプルな仕組みで、
そのOGPの画像とか、
OGPはこの画像を使ってねーとか、
OGPのタイトルはこれにしてねーみたいなのって全部そのページに書いてあるんですね。
なんでその画像とかタイトルとかを、
このやつにアクセスした瞬間に全部取り出してきて、
SVGの画像として書き出すことで、
Scrapboxではこれただの画像として見なされてるみたいな感じのやつですね。
なんで。
michiru_da
すげー。
うぱ / upamune
これが、こっちのほうがわかりやすいか。
あるその貼り付けたいなーっていうリンクがあったら、
その先頭に今回作ったやつのこのURLをつけるみたいな、
なんかこのガッチャンコする。
そしたらこれにアクセスしたら、
こうやって画像が返ってくるっていう感じですね。
これSVGなんで画像なのにテキスト選択とかリンクが押せるっていう。
すごい。
というやつを作ったりしました。
最後に、
ラップスターを見て、
michiru_da
ラップより先にまずビートがないとダメじゃないですか。
ビートって何?
背景、後ろで流れてるメロディーですか?
そうっすね。
メロディーなの?
そのリズムだけ?
うぱ / upamune
いや、リリック以外の全部。
そうなん。
michiru_da
じゃあドラムの音もあればコードとかも鳴ってるみたいな感じですか。
うぱ / upamune
そうですそうです。
なのでそれを私がガレージバンドとかロジックでプロで書くっていうか作るのは無理だと思ったんで、
michiru_da
ビートをコードで書く方式あんじゃね?と思って探したら結構あったんですよ。
コードってプログラミング言語ってことで。
コードは何?
Aマイナーみたいな音楽のコードもあるからね。
うぱ / upamune
なんでそれを1からクロードコードと、
これはクロードコードのiOSから全部やったんですけど、
それをね、やってドキュメントも全部書いてもらって。
michiru_da
これ今映しているのはうぱさんが作った?
そうですそうです。
うぱ / upamune
なんで、例えばこの入門編とかだったら、
このBBMって何?とかビートって何?小説って何?みたいな。
michiru_da
すごいね。音楽に必要な知識がまとまっている。
うぱ / upamune
で、例えばこんな感じのコードみたいな感じじゃないですか。
BPM120でみたいな。パターンを定義してパターンを4回繰り返すみたいな。
michiru_da
逆に音楽をやっている人向けに説明すると、
ドラムのリズムを再現したいですと。
バスドラムの音とか、スネアとかハイハットの音の全部組み合わせたものを再現したいですと。
なので小説の中のどこで何の音を鳴らすかって、
タイミングを定義するためのプログラムみたいなのを作ってて、
音が鳴るところはXみたいなので示して、
それ以外の休符のところはドットみたいなのが書いてあって、
それがカギ括弧の前1小節目はバスドラムは1個目と5個目のところにXを書いて、
休符はドットが書いてあってみたいな感じのことが記載されています。
うぱ / upamune
そうですね。ありがとうございます。
またこれがプレイグラウンドもございまして、今コードで書いたやつがどう音になんねんみたいなのがあると思うんですけど、
流れるのかな?このコードからこのビートが出てくるんですよね。
でも結構いろいろできまして、上級編になったら、
キックとかスネアとかハイハットっていうのはどうでもいいというか。
それも変えれるんですか?
例えばミッチールーダーみたいなのを定義して、ミッチールーダーに対応する音声ファイルを置けば、
michiru_da
すげー音色も変えれるんですか?
変えれます。
なんで作ったんだこれ。最初に発明した人。なんでだよ。
うぱ / upamune
あとはこのエフェクトとか、
エフェクトとその構文一緒すぎてわからなくない?って私が突っ込んだやつがあるんだけど、
なんだろうな。
michiru_da
すごいね。今ちょっとヒップホップだったらこういう感じで構成するといいよみたいな。
なんかテンプレートがいっぱい書いてある。
うぱ / upamune
例えばこのローファイ、こいつがローファイと認識しているローファイヒップホップは、
michiru_da
ちょっとなんかローファイかどうかわかんないけど、ノイジーな音が壊れてる。
うぱ / upamune
これなんて言うんだろう?これかな?ビニールノイズ的なリムショットっていうやつが、
定義してこのフィルターをかける。
michiru_da
今はバスドラとスネアとハイハットで構成されてるんですけど、
多分リムショットっていうのは追加されてますね。
うぱ / upamune
そうです。なんでここはもう定義し放題ですね。
このX0.2みたいなやつは、Xって書いたら音量が0.8なんですけど、
ビッグXにしたら一番中は1なんですけど、XとビッグXも書けるし、0.2みたいな手動で変えれます。
変数もできるし、ドラムとパーカッションで別々定義して、それをプラスで合成して再生するみたいな。
逆に弾くみたいなこともできるっていう感じですね。
私が知らなかったポリリズムって何ですか?みたいな感じになったやつも対応してて、最小公倍数で1パターンになるようになってる。
michiru_da
ポリリズムは違うリズムを一度に鳴らすやつですね。
うぱ / upamune
なんでその…
michiru_da
さっきの言いかけてたやつなんですが、これとこれ一緒やんけみたいな。
うぱ / upamune
それね、ちょっと待ってくださいね。
多分これ行き過ぎで…これ入門書いてあるんで、ドキュメント読むと多分全部のやり方が書いてて。
これね、これ面白くないですか?確率的ヒットみたいなやつがあって、このXXXXで2個目と4個目のXがハテナついてるんですけど、
これが鳴る確率が50%なんですよ。
で、こっちも確率視点もできて、これが70%になる、30%になるみたいな。
だから毎回同じじゃないビートに人間味を変えられますっていうやつ。
これがエフェクトですね。リバーブ0.2とかディレイ。
うぱ / upamune
そのコードの補完とかエラーとか、それもちゃんと途中で出るっていう感じになって。
michiru_da
コード補完ってどうなるの?ただ繰り返してくれるのかな。
うぱ / upamune
例えばBPMの後ろには数字しか取らないとか、
すでに変数を定義したらその変数が出るとか、感じですね。
なんでこれを作って満足しました。
michiru_da
なんで?曲を作れる?
うぱ / upamune
これね、ちゃんとシェア機能もあります。
michiru_da
これすごいな。
うぱ / upamune
ちゃんと整形機能もある。
michiru_da
なんかうぱさんが最初に送ってくれたやつにそのスイングの設定とかがあって、
ガレージバンドとか使わずにこのコードで作曲する、
なんかを作るところまでは100歩譲って理解できるとしても、
最初からスイングの機能とかついてるの好奇のすぎんだろって。
うぱ / upamune
スイングは私も何がよくわかってないけど、最初からつけてきた。こいつが。
最初からあったのはBPMとスイングですね。
そうなんだ。
michiru_da
リズムでちょっとジャズっぽいリズムに変わってるやつのことをスイングって言うんですけど。
うぱ / upamune
確かにどっかで言われてましたね。スイングのことは。
自分で作ったソフトウェアではないけど、あ、これだ。
michiru_da
ちょっと遅れて。
うぱ / upamune
作ったソフトウェアのドキュメントを書かせるってすごい面白い。
その入門ガイドを作れるのがすごい面白い。
プロのチップとか書いてるしね。
しかも地味に大変だったのが、今道谷さんにそのドキュメントを見せてるんですけど、
このコードあるじゃないですか、このBPMとか。
これ色ついてるじゃないですか。これ大変でしたね。
普通の語言語とかJavaScriptって一般的に知られた言語だから、
このシンタックスハイライトって呼ばれるものが用意されてるんですよ。
これって自分で勝手に作った言語だから、ないじゃないですか。
それも生成したり。
これは言語としてあるわけじゃないの?
この公文も全部自分で。
michiru_da
そうなんだ。
そうですそうです。
うぱ / upamune
これはさっきの縦棒とこっちのエフェクトみたいなのあるじゃないですか。
公文的に似たり寄ったりすぎるけど、最初同じだったんですけど、
私が逆の方がいいよみたいな感じで言って、完成したのがこれです。
こういうのやってる人もいるんですか?
こういうのがあってみたいな。
michiru_da
そういうのもすでに他のいろんな言語とかであったりするんですけど、
うぱ / upamune
みんな公文はまちまちっていう感じなんで、
市場を調査させて、どういう機能があるのかってどういう機能があるのかって、
それぞれのメリットデメリットみたいなのを挙げさせて、
初心者にこれで十分ないい感じのやつを公文だけ定義して教えてみたいな。
それで私が、これはいろいろいらない。
誰だよ。
自分語が必要。
誰だよ。
michiru_da
絶対初心者にいらないんだよ。
ってのをやりましたね。
うぱ / upamune
これね、だいぶ楽しかったですね。
でも確かに初心者の定義が難しいな。
michiru_da
めちゃくちゃ音楽好きだけど、
うぱ / upamune
その曲を作るのは初めてみたいな人、
michiru_da
スイングはいるのか。
うぱ / upamune
あるいは、
michiru_da
たぶん音楽好きだけれども、
スイングを作るのは初めてみたいな人、
スイングはいるのか。
あるいは、
音楽好きだけれども作曲をやったことないアンドエンジニア。
うぱ / upamune
急に狭なる。
演奏するプログラミング、ライブコーディングの思想と実践。
誰に書いてるの?
ソニックパイかなっていうやつが多分めちゃ有名。
michiru_da
パイは演習率のパイなんだ。
うん、ほんとだね。
コード、エブリッシング。
うぱ / upamune
ここで実際にコードを編集しながら、
michiru_da
おもろー。
うぱ / upamune
舞台で演奏するっていう。
michiru_da
おもしろいっすね。
うぱ / upamune
これが一番有名なやつかな。
全然違いますよね、公文が。
さっきの私のやつと。
michiru_da
確かに。
うぱ / upamune
たぶん、私のやつは他にあった、
視覚的に分かりやすいような公文を採用してるみたいな感じですね。
michiru_da
結構楽譜っぽい感じですね。
小説のどのタイミングで何が起きるかがパッと見て分かるような書き方になっています。
うぱ / upamune
さっき言ってたのは、このキットみたいな定義すれば、
このキックはここのWAVファイルに対応するみたいなのを書けばいけるっていう感じですね。
なんでこれをね、使ってちょっと頑張ろう。
頑張ってください。
私、そんな感じです。
だいぶマジで本当に私もヤックシェービングだなって思いましたよ。
michiru_da
そうですね。
うぱ / upamune
ヤックシェービングすぎる?
michiru_da
そうすぎる。
うぱ / upamune
そうすぎる。
michiru_da
それで満足してるから。
高機能すぎるヤックシェービングにしては。
うぱ / upamune
そうなんだよ。やっぱね、ソフトウェアの作る難しさを感じました。
どんどんこれもあったほうがいいんじゃね?これもあったほうがいいんじゃね?みたいな感じになるにつれて、
もとからあった機能がぶち壊れたりとか、なんか一回も鳴らなくなったりとか、
テストも書いてるんですけど、音声のテストで、コード的には割と正しいんだけど、
最終的に正しい音が鳴ってるのか鳴ってないのかっていうテストがちょっと無理すぎて、
しかも私も分かんないし。
michiru_da
そうね。
うぱ / upamune
結構大変でした。
michiru_da
そうです。
うぱ / upamune
オープニングでクックブックしかないというすごい後半。
michiru_da
普段使わないから。
あとは年始にやったことの乖離も喋りましたが、
丸の内線、他の駅を徒歩で歩くということをやりましたので、
またそれに必要なアプリケーションを作りました。
上に路線図が載ってて、出発駅、到着駅、出発時刻を入れると、
距離と歩く速さから到着時間を予測してくれるやつというか、
結局間に合ったのは前までに作ってた機能とそんな変わらないなという感じなんですけど、
この後、到着した時間を一覧で出したいみたいなのはずっと思っていて、
撮影した写真のデータを撮って、そこからこの写真が撮れたのはいつなので、
駅に着いたのはいつだよみたいな結果が分かるような機能を作ろうと思って、
今プロトタイピングをしています。
別に充電が潤沢にあれば、ストラバとかスマートボチとかで測ればいいんですけど、
私はそれを有効にするとすぐ電池がなくなっちゃうので、
撮影した写真ベースでそれを記録として残せるといいなと思っています。
うぱ / upamune
これに限らないですけど、このウォーキングアプリって、
そこそうじゃないんだよみたいなのが出るじゃないですか。
なので、自分が考えた完璧な仕様書を用意しておいて、
新しいコーディングエージェントが出たら一発でどこまで作れるようになるのかっていう、
なんかおもろいベンチにはなりそうだなと思いました。
私地味に感動したのが、これどうやってホスト、どうやってデプロイしたんですかこれ。
michiru_da
どうやって?
うぱ / upamune
みちるださんが一人でやったんですか?
michiru_da
そう、でもクラウドフレアを使ってて、
これ回答がちょっと合ってるかもわかんないんですけど、
うぱ / upamune
試してない。
前のミチュラアップありましたよね。
michiru_da
そう、この山手線アプリとか大江戸線アプリもあって、
全部クラウドフレアで取ったドメインで管理をしてます。
静的なページの公開の仕組み、ワーカーズ&ページズっていうやつに新しいアプリケーションを追加して、
そこでGitHubの連携をして、そのままデプロイできました。
一回失敗して、リストの設定みたいなやつをやらないといけなかった。
うぱ / upamune
確かにリストのディレクトリどこに掘られるのか。
michiru_da
そこで普通にやると失敗しちゃうんで、
それもエラーの内容とかをフロードコードに聞いたら、
そのリストの設定をGitHubの方に一個ファイル追加して、
混ぜてすればうまくいきますよって。
言われてその通りにやったらできました。
うぱ / upamune
すごい時代だよ。
やりたいですよ本当。
私もさっきのTenkeyアプリ、Exe、Dev以外全部同じ方式でクラウドフレアでやってますね。
michiru_da
素晴らしい。
うぱ / upamune
すごいね。
これ地味にプルリクエスト出してる段階でプレビュー環境立つからすごいですよ。
マージしなくても分かる。
分かるっていうのは。
プルリクエストを出すじゃないですか、
新しい機能を追加しました。
で、本番環境は、
ここがあるんじゃね?
michiru_da
ほらほら。
どうやって見るの?
うぱ / upamune
下のコミットプレビューURL。
michiru_da
これか。
これ押したら、
うぱ / upamune
URL見てください。
専用の本番環境に影響を与えない。
michiru_da
なるほどね。
このパサに教えてもらった、
フロードコードのギタバクションズみたいなやつで、
自分も修正してたんですけど、
どこでプレビューするんだってなってたけど、
ここでできるのか。
なるほどね。
基本ブランチのプレビューURLをクリックしておけば。
うぱ / upamune
これめっちゃ便利でした。
さっきのiOSでしかないときに。
michiru_da
ここで見ればいいのか。
うぱ / upamune
これすごいよね。
michiru_da
便利だ。
マジで感謝。
自分はパサに文字でそう言われてもあんま分からなかったんで、
どうすればいいんだと思って、
とりあえずノールックで一旦全部マジしちゃって、
本番で全てを確認してました。
うぱ / upamune
しかもこれクラウドフレアページで、