type holyshared = Engineer<mixed>

PHP、Hack、Ruby、Javascript周りの技術ブログ

Hackの型のチェックのエラー内容をレビューコメントとして投稿できるようにした

Hackの型チェックをCI上で行っていたのですが、エラー内容を見るのにCI環境側までいちいち見に行かないといけないので、OCamlでレビューコメントとして投稿できるtypesafety-cliを作りました。 レビューコメントは下記のような感じになります。 https://gith…

言語ファイルをチェックできるgemを作った

言語ファイルをチェックできるgem、i18n_checkerを作りました。 多言語対応をしていると、typoで翻訳されていなかったり、言語ファイルに追加漏れがあったりするので、簡単なチェックができるツールが欲しかったのが作った理由です。 サポートするファイル形…

OUnitでOCamlライブラリのテストを書く

これはML Advent Calendar 2016の18日目の記事です。 OCamlのテストフレームワークのOUnitについて解説します。 また、Oasisの簡単な説明も行います。 プロジェクトのセットアップ OCamlのプロジェクトでは、だいたいの場合はOasisを使います。 Oasisはビル…

Rustでlcovのレポートファイルをマージする

これは Rust Advent Calendar 2016 (2) の 14日目の記事です。 lcovが出力するレポートのパーサー&マージャーをRustと実装しました。 lcovはgcovの拡張版みたいなもので、gcovの出力ファイルから、HTML形式のようなコードカバレッジレポートを出力するツール…

Golangで五目並べ作った

そういえば、Golangでコード書いたことないや、と思って作ってみました。 Golangはコード読んだことあるけど、書いたことがなかったので、作り始める前に、 Golangのチュートリアルを半分くらいやったり、出勤時間にパッケージのAPI調べてたしました。 https…

Hacklangのパッケージのテストコードを、型チェックかかるようにしたかったが断念した話

タイトルの通りHacklang用のパッケージを開発していて、テストコードも型のチェックしたかったので、 できるか試してみました。 今、自分がパッケージ開発で使用しているテストツールは下記の通りです。 peridot-php/peridot - BDDテスティングフレームワー…

PHPのコードをHackのコードに変換する

PHPコードをHackのコードに置き換えるのは、最高に面倒くさいですよね。 なので、HHVMで提供されている、hackificatorを使用して、一気に変換できないかを検証してみました。 hackificatorはPHPコードをHackに置き換える為のコマンドラインツールです。 hack…

Hacklang用にベンチマーク取れるライブラリを作った

HacklangでのJITの検証とか、Vector、Setのパフォーマンスの計測がしたかったので作りました。 計測用のコードは下記のような感じになります。 namespace hhpack\performance\example; require_once __DIR__ . '/../vendor/autoload.php'; use hhpack\perfor…

typechecker-clientで型のカバレッジ取れるようにした

型チェックの比率が知りたかったので、クライントのライブラリにAPIを新しく追加しました。 ファイル/ディレクトリ単位でデータを抜いて、整形することで見やすいフォーマットに整形して表示したり、 データを別の形式に変換したりすることができます。 簡…

typesafetyっていうパッケージを作った

typesafetyというパッケージを作りました。 Hacklangでコードを書いていると頻繁に型のチェックをかけるのですが、チェックをするのにサーバーを再起動したりしないといけないのでとても面倒でした。 なので、サーバーの起動と型のチェックをまとめてできる…

Hacklang用のテスティングフレームワークを作った件

hhspecifyっていうBDD styleのテスティングフレームワークを公開しました。 下記のコマンドでcomposerを利用してインストールできます。 composer require hhspecify/hhspecify 使い方は下記の通り。 設定ファイルの作成 まず、最初に設定ファイルを作成しま…

Expectationを再設計した話。

expectationを開発していて、ちょっと気に入らない箇所がいくつか出てきたので、再設計してみた。 再設計したので、expectationはもうメンテしておらず、 expectに変わったので、注意してください。 また、peridotのプラグインも、peridot-expect-pluginに変…

いつから俺は、be_truthy/be_falseyの仕様を勘違いしていたのだ

PHPでexpectationライブラリ作っているのですが、思いっきり間違った実装をしていることに、rspecのリファレンスを見ていて、気がつきました。 matcherのtoBeTruthy/toBeFalseyが、rspecのmatcherでは、 be_truthy - nil、若しくはfalseでない be_falsey - n…

ブログ再開しました。

昔のブログとかはしばらく、残しておきます。 基本的にすべて封鎖する予定です。 旧ブログ - http://sharedhat.com/ Mootips - http://mootips.org/ プロジェクトサイト - http://sharedlab.net/ ギャラリーテーマ - http://sharedbition.com/