ChatGPT に Ruby など他のプログラミング言語も実行させたい

ChatGPT はたくさんの種類のプログラミング言語のコードを出力できますが、直接実行できるのは現状 Python のみとなっています。Ruby など他の言語も実行することはできないかと考えていました。 1つのアイデアとして思いついたのは ChatGPT に生成したコー…

Obsidian で情報カードを作るための 5 ステップ

Obsidian では普段デイリーノートを中心にメモを取っていますが、それらの情報を元に、より密度の高い情報カードを作りたくなることがあります。作成したカードを元にブログや SNS に記事を投稿します。 今日は私がどのように情報を整理しているかをシェアし…

ChatGPT Plus に入った

しばらく Waiting List に入っていたが使えるようになったと連絡が来た。 Apple Pay からも支払いができるのが便利。 Plus だと DALL·E 3 をアプリから実行できるのでプロンプトが試しやすい。アセット画像を自動生成するスクリプトの研究が捗る。 Use pixel…

英語のハノン初級が終わったら英語の本が読めるようになった

英語のハノン初級を終わらせた。評判通り大変だったが英語力の向上を大きく感じることができた。次は英語のハノン中級にチャレンジしてみようと思っているが、このタイミングでやり方のコツなどを一度メモしておく。 英語のハノン 初級 ――スピーキングのため…

Runa: Ruby で中規模アプリケーションを書くためのフレームワーク

Runa という Ruby で Gem を使ったり複数ファイルで構成された中規模のアプリケーションを簡単に書くためのフレームワークを作っています。 Runa を作った経緯 Ruby は単独のスクリプトファイルとして実行するときは取り回しも簡単で大変使いやすい(小規模ア…

Polished Ruby Programming を読んでいる(2)

前回から継続してコツコツ読んでいる。 Chapter4 から先に読んだので、そこから逆戻りして Chapter 1, 2, 3, 5 ... の順に進めている。アラカルトに気になったところをメモ。 Chapter3: 変数 変数名の長さはスコープの広さと反比例させる メソッドの場合は呼…

ruremai gem を Ruby3 でも動くようにした

ruremai は irb から簡単に日本語リファレンスマニュアル(るりま)を開く便利ツール。 $ gem install ruremai こんな感じで使う。 irb> require "ruremai" irb> "".method(:concat).rurema! # String#<< のリファレンスを開く irb> [].mean?.join # Array#joi…

mermaid.js を使ったコードリーディング

mermaid.js を使ってコードリーディングをするときに便利な機能をまとめてみる。 標準でクラスダイアグラムも使えるが、色々試した結果、応用の効くグラフを使う方法に落ち着いた。 スタイル 注目させたい関数の色やアウトラインを変更できる。 graph LR foo…

Obsidianのアウトライナープラグインを試す

普段のメモ書きに Obsidian を愛用しているが、アウトライナーは標準で用意されていない。 ※ 見出しを一覧したり移動できる「アウトライン」というコアプラグインはある(これはこれで便利)。 評判のよいコミニティプラグインの Outliner と Zoom を試してみ…

blogsync で Windows でも標準入力を使えるようにした

github.com entryFromReader()関数でエントリー時刻を取得する際にエラーが発生していた。 Windowsでは、"/dev/stdin "に対してos.Stat()を行うことができないのが原因。 Windowsで標準入力が渡されたときは、エントリーに現在時刻を設定することにして回避…

WSL の時間が Windows とずれている

WSL を自前でビルドして下書きも作れるようになった のだが、 今度は更新がうまくいかない問題が発生。 調べると Windows の時刻よりも 5 分位 WSL の時間が遅れていて新しい記事だと blogsync が認識できなくなっていた。 WSL2で時刻がずれる - Qiita WSL …

WSL で blogsync をビルドして Windows からも標準入力が使えるようにする

Windows版だと標準出力が使えない という問題があり、 WSL 版バイナリだと別のエラーで動かないという問題があって標準出力経由で投稿や下書きを作ることができなかった。 標準入力が使いたくなってきたので WSL 版を手元でビルドすることにする。 まず gola…

Polished Ruby Programming を読んでいる

ずっと興味のあった洋書の「Polished Ruby Programming」を Kindle で買った。英語の勉強も兼ねて少しずつ読んでいる。 自分の英語の読書スピードだと全てを読む前に飽きてしまいそうなので、目次を見て面白そうな順番で読むことにした。最初は「Chapter 4: …

blogsync の使い方メモ

こんなルーティーンでやっている。セットアップは過去記事を参考に。Windows でも動く。 1. 下書きを書く 下書きはモバイルアプリやブラウザで作っておく。ちゃんと書くときは PC で書いた方が早いのでタイトルとざっくり内容だけ。 2. 下書きを手元に持って…

微妙に分かりにくいけど分かると捗るSpotifyのホーム画面

ホーム画面には重要な情報が詰まっている が、微妙にUIが分かりにくいため知らない人が多い 分かると音楽生活が捗るので紹介する 基本ルール: 上から下にスクロールしながら「気になるカテゴリがあったら横にスクロールしてさらに探す」←これが分かりにくい …

Ruby で Processing がブラウザ上からできる p5.rb を作りました

ruby.wasm + p5.js の組み合わせです。ほとんどの API は移植したので大体同じことができると思います。 https://p5rb.ongaeshi.me/ https://p5rb.ongaeshi.me/examples に色々サンプル。 https://p5rb.ongaeshi.me/editor にオンラインエディタがあります。…

はてなブログ用CLIクライアントの blogsync を使ってみる

はてなブログの執筆環境として blogsync を試してみた。 https://github.com/x-motemen/blogsync GitHub からバイナリをダウンロード。Windows版を使う。 とにかく blogsync pull で全記事の原稿が簡単で取得できるのがすごく便利。 過去記事の検索や参照も …

ruby.wasm の JS::Object のプロパティ呼び出しをさらに便利にする

ruby.wasm でいろいろ遊んでいます。実験場も作りました。 rubywasm-sample.ongaeshi.me JS::Object が楽しくて、JSのオブジェクトをRubyから透過的に扱えます。メソッド呼び出しもできるしブロックで関数を渡せたしりします。 require 'js' JS.eval("return…

実践Rust入門を読んでいる(2) - bitonic-sorterの実装

実践Rust入門を読んでいる(1) からの続きを読み進める。 Pythonのサンプルスクリプト読んで対話シェルで実行確認。 いよいよ次からRustで書き始める。 Rust Style Guide https://github.com/rust-lang/fmt-rfcs/blob/master/guide/guide.md first版 graph so…

実践Rust入門を読んでいる(1) - クイックツアーサンプルの実行

WASMで色々やるためにRustを勉強している。↓の本の評判がいいので読む。 実践Rust入門 [言語仕様から開発手法まで]作者:κeen,河野 達也,小松 礼人技術評論社Amazon 3章 クイックツアー バイトニックソートを Rust 上で実装する。並列処理に向いたアルゴリズ…

電卓を作るチュートリアルをやる

https://qiita.com/yamazaki3104/items/b5351f589fb6644bf910 Gitリポジトリ https://github.com/ongaeshi/WebCalc CodePen https://codepen.io/ongaeshi/pen/bGKwLgJ 90分くらい。チュートリアル終了後に - bootstrap入れた - √は即時計算するようにした - …

rconv - Ruby WASMでプログラム電卓を作りました

https://rconv.ongaeshi.me Ruby on Browser に続いて Ruby WASM/WASI で電卓っぽいものを作りました。 ongaeshi.hatenablog.com テキストボックスの内容を入力としてRubyスクリプトに渡して評価し実行結果を出力します。つまり入力→変換→出力するRubyアプリ…

毎日簡単に更新できてサクサク閲覧できるブログシステムを作った

Jekyll + GitHub Actions で構築。ブログの開設から記事の更新まで全てWebインターフェース上で完結します。 github.com https://day.ongaeshi.me/ が実際に自分が使っているやつなので、これを見るとどんな感じのものが作れるか分かると思います。 記事の投…

Ruby on Browser 1.0 リリース

窓の杜で取り上げていただいた後も実装は少しずつ続けていて、ひとまずブラウザ上で最新のRubyを試すのに必要な機能は一通り実装できたんじゃないかと思う。リファレンスマニュアルへのリンクを貼ってシンタックスハイライトを入れたりCtrl+Enterで実行でき…

Ruby On BrowserとRuby WASM/WASIの雑感

Ruby WASM/WASI の発表にえらくテンションが上がったので、勢いで作ったものが窓の杜で紹介されてびっくりしました。(それだけ注目されているということですね) Ruby On Browserは51行しかないHTMLでまだまだ荒削りなのでもっとちゃんとしたものを試したい方…

gifアニメにお絵描きできるGifDrawerをリリースしました

リモートワークでスクショやgifアニメに手書きコメントを付けて共有する機会が増えたのですが、 手書きコメントにもアニメーションがつけられたら便利なんじゃないかと思い作りました。 インストール https://github.com/ongaeshi/GifDrawerのtagsから最新版…

残りゲーム体力が少なくてもブラウザゲームをRubyで簡単に書きたい

crisp-game-libというゲーム制作体力が残り10%でもゲームが書けるJavaScriptのライブラリがあるのだが、それをOpal に移植してRubyで書けるようにした。(画面クリックで遊べます) 2色のりんごが落ちてくるので、同じ色を取ると得点、違う色は避ける、画面タ…

Humankindを読んでニュースの読み方を変えた

話題になっている「Humankind」を読み終わった。 Humankind 希望の歴史 上 人類が善き未来をつくるための18章 (文春e-book)作者:ルトガー・ブレグマン文藝春秋Amazon Humankind 希望の歴史 下 人類が善き未来をつくるための18章 (文春e-book)作者:ルトガー・…

Rubyの開発環境を2021年ぽくする for Windows

2021年なのでこれくらいは欲しい。 Ruby 2.7.4 VSCode バイナリgemを確実にビルドできる コードフォーマッタ Lint デバッガ コード補完 それぞれは独立した機能なので全部入れなくてもいいと思います。(個人的には上から順に必須度が高い) Ruby 2.7.4 Ruby3…

Rustのライフタイムについて調べている

The Rust Programming Languageを読んでいる。GC無しでどうやって参照を安全に管理しているのかを知りたかったのだが、10章ライフタイムまで来てようやくぼんやりと分かってきた。 Rustの全ての参照には寿命が設定されている。書かなくていい場合もあるがそ…