yhara.jp

Recent Posts

RubyKaigi 2019 福岡に参加した

2019-05-11
Tech

福岡で行われたRubyKaigi 2019 福岡に参加した。

自分の発表について

今年は登壇者で、Ovtoの話をした。詳細はのちに上がるであろう動画を見てほしいが、現時点の資料としてはスライドのPDF版がある。プレゼンターノート付きなので概要は分かるかもしれない。

今回の発表の裏テーマとして「文章で伝えにくいOvtoの良さをライブコーディングで伝えたい」「初心者から上級者まで何かしら得るものがあるようにしたい」というのがあり、いずれも(個人的評価では)達成できたように思う。

(more...)



altjsにおけるstdinの実装:BiwaSchemeのreadの例

2018-12-18
Tech

この記事は言語実装 Advent Calendar 2018の18日目の記事です。昨日の記事はC(のサブセット)コンパイラを書く上でハマった点:配列編 - hsjoihs’s diaryでした。

最近、BiwaScheme公式サイトのREPLでread関数が使えるようになったので、その解説をします。(read)は標準入力からS式を同期的に読み込むのですが、JavaScriptでキー入力を処理しようとすると必ず非同期処理になるので、readのようなものを実装するには工夫が必要です。

本稿ではaltjs1上に同期的なsleepやreadを実装する方法について解説します。

altjsとsleep


  1. 死語になりかけてる気もしますが、alternative javascript(代替JavaScript)の略で、本稿ではJavaScriptで実装された言語処理系のことを指します(コンパイラかインタプリタかは問わない)。 

(more...)



CHANGELOGからgitコミットログを自動生成する

2018-11-10
Tech

最近はどのプロジェクトもCHANGELOG.mdを書くようにしているのだが、CHANGELOGとコミットログは基本的に同じ内容になるので、手間を省くために自動で記入するようにしてみた。

手順

以下を.git/hooks/prepare-commit-msgという名前で保存してchmod +xする。

#!/usr/bin/env ruby
CHANGELOG_PATH = "./CHANGELOG.md"

(more...)

Ovto 0.2.0をリリースしました

2018-11-02
Tech

Rubyで書けるクライアントサイドWebフレームワーク、Ovtoの0.2.0をリリースしました。

いろいろ機能が増えていますが、一番大きいのはAjax対応で、Ovto.fetchというメソッドでサーバ側のAPIを簡単に叩けるようになりました。

これでだいぶ実用的になった、というか実際にVisionというTODOアプリを作って、実用しています。VPSに置いているのでPCでもスマホでも使えて便利です。

VisionはRails5.2.1 + Ovtoという構成で、このへんがクライアント側(Ovto)のコードです。実行時には、これがopal-sprocketsでJavaScriptに変換されてブラウザで動きます。


対戦型AIコンテスト Halite-IIIの始め方

2018-10-20
Tech

10/16から始まった https://halite.io/ がけっこう面白かったので、始め方を解説します。

Halite-IIIとは

HaliteはTwo Sigmaという会社が開催しているプログラミングコンテストで、Halite-IIIはその第三回目になります。

Halite-IIIは2〜4人対戦型のゲームで、海に船を出して海中の"halite"を回収し、一定ターン後に一番たくさんhaliteを蓄えたプレイヤーが勝者となります。試合はAIを投稿するたびに自動的にサーバ側で行われ、勝率によってレーティングが変化します。

gif

(more...)

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author