Web制作の現場では何でもかんでもWordPressで作っちゃうことがよくあるようで、例えば「基本的には静的ページで構成されているけどお知らせ機能だけ動的にしたい」という場合でもWordPressで実装しちゃうことがあるようです。このように「たったこれだけのた…
npmにmb_strwidthというpackageをpublishしました。 PHPの mb_strwidth() と同じ動きをする関数です。 https://www.npmjs.com/package/@demouth/mb_strwidth https://github.com/demouth/mb_strwidth console.log(mb_strwidth('𩸽定食食べたい')); // 15 // …
去年の夏に書籍「Writing A Compiler In Go」を購入して以降、時間を見つけてコツコツ進めていたのですが、先日ようやく完走することができました。 基本的には本に書いてあることを写経しながら進めるだけでコンパイラが完成してしまうので、内容をしっかり…
Go言語で実装されたクリーンアーキテクチャの実装例を見つけたので、ソースを読みつつなんとなくクラス図とER図を書いてみました。 github.com クラス図 図の中にメモ書きしてありますが、ほぼ全てのオブジェクトを main で生成しています。 Model は Articl…
PHPを書くなら有料のPhpStormを使うのが一番良い気がしていて実際私も使っていますが、無料ならVSCode + PHP Intelephenseが良さげです。 ※PHP Intelephenseも一部機能は有料ですが、無料で大抵の機能が使えます ということで環境構築方法を紹介します。 初…
air-shodo.comというサービスを正式リリースしました。 https://air-shodo.com このサイトではPCやスマホで手軽に書道した気分を味わうことができます。今のところ機能はとてもシンプルで、大きくいって下記の3つです。 書道する 投稿する 投稿を閲覧できる …
下記の感じでなんとなくでMongoDBのcursorを使っているけど、今までちゃんと公式ドキュメントを読んだ事がなかったので改めてドキュメントを読んでみた。 var cursor = db.users.find(); while (myCursor.hasNext()) { printjson(cursor.next()); } 現行バー…
エディタなんて好きなものを使えばいいと思うし、他人に押し付けるものでもないし、なんなら自分はIDE派でもあるんだけど、最近Visual Studio Code(vscode)を気に入って使っている、という話。 Microsoftの印象 自分にとってMicrosoftといえば悪いイメージ…
golangの勉強がてらKVSのDBサーバーを雑に実装してみた。 DBの実装自体はbuntdbというライブラリをそのまま使っているので、あまり大した事はやっていないけど。 実装したDBサーバーについて OrenoDBという名付けた(メンテするつもりはないので雑な命名) …
golangで書かれた google/btree をPHP7.1に移植してみた。 移植する事が目的ではなく google/btree のソースリーディングだったので、かなり雑な移植になっている。 github.com ソースの移植 golang --> PHP golangをPHP7.1に書き換えた訳だけど、配列周りで…
関東から東北に移住してまとまった時間が経とうとしているのと、今日はちょっと色々あったので、これまでの事を振り返り書いてみようと思う。 地方移住を検討しているプログラマへ向けて自分の経験が多少なりとも何か役に立てば嬉しい。なお地方移住を勧める…
golangがどんなものか軽く触ってみようかと思い、何か題材でもないと触るのも難しいだろうという事で、TUIでスーパーマリオブラザーズでも実装してみようという謎の題材をふと思いついた。 早速実装しては見たものの、本来の目的であるgolangを知る事そっち…
go言語(termbox-goではなくtcell)で実装されたmicroというターミナルベースのテキストエディタの version1.0 がリリースされたようで、試しにちょっとだけつかってみたのですが、なかなか使い心地がよいです。 というわけで(個人的に)使い心地が(いい意…
なんとやくタイトルに倒置法を使ってみましたが、深い意味はありません。 というのはおいといて、コアラのマーチには眉毛コアラがたまに入っていて、見つけるとちょっと嬉しいですが、php.netにもそんな遊びが仕掛けられているようです。 先日先輩から、php.…
「Animated Gif Capture」というアニメーションGifを作るChrome拡張を公開しました。 Chromeに表示中のWebページをアニメーションGifに変換します。また、オプションページから設定を変更すると、デスクトップやChrome以外のウィンドウもアニメーションGifに…
合計24時間あるPharrell WilliamsのHappyのPVを1時間で見られる、24 Hours of Happy in an Hourというページを作りました。http://demouth.net/sketch/24hoursofhappy-inanhour/ 使い方 まず、Google Chromeがインストールされた、ある程度性能のいいデスク…
PHPの統合開発環境NetBeans IDE for PHPにはPHP_CodeSniffer(以降phpcs)を使う機能が標準搭載されていて、これを設定しておくとIDE上からプログラムのコーディング規約違反を自動検出できます。phpcsにるコーディング規約チェック内容はカスタマイズも可能な…
人気のあるPHPフレームワークについて調べていたら下記の参考になる記事がありました。 2013年において注目すべき PHP フレームワークは Laravel PHPフレームワークのベンチマーク比較と2013年のトレンド 「Githubのスター数」と「Googleトレンド」という観…
爆発しろ!という気持ちを鎮める為のシェルを書きました。 このシェルを叩くとランダムで生成された爆発のアニメーションが描画されます。 ※パーティクルが密集しているところは「@」など大きめの文字で描画するなど、ちょっと凝ってますシェルスクリプトに…
ある日、Chromeのデベロッパーツールで Device「Apple iPad 3 / 4」にするとユーザーエージェントが「iPhone」となっている事に気がつきました。 Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/…
DmGeocorderというPHPで実装された日本国内用ジオコーディングライブラリを作りました。 住所から緯度経度を調べたり(ジオコーディング)、緯度経度から住所を調べたりすること(逆ジオコーディング)が出来ます。https://github.com/demouth/DmGeocoder 特…
canvasのcontext2dのarc()関数のパフォーマンス比較をしてみました。 ついでにActionScript3.0との比較もしてみました。単純に比較できないとは思いますがGraphics::drawCircle()を使用します。JavaScriptのソースはこんな感じ var stats=new Stats(); docum…
ランダムで日本人の名前を返す gem を作った という記事をみて、日本向けのPHP版Fakerを見つけられなかったので作ってみました(追記fzaninotto/Fakerが日本対応されてたようです)。github - demouth/FakerJapanese普通に作ってもつまらないので、キラキラ…
PHPにはGDモジュールという画像処理系のモジュールが用意されています。これが入っていると画像処理•図形描画系の関数が使用する事ができ、基本的な機能は一通り用意されています。 例えばさくらのレンタルサーバーやロリポップでもこれらの関数を標準で使え…
雪を感じるサイトSNOWY MOODを作りました。名前の通りRAINY MOODの丸パクリサイトです。帰省中の盛岡で昨日大雪が降ったので写真と音を記録してRAINY MOODっぽくしてみたのがこのサイトです。http://snowymood.demouth.net/
先日紹介したDmImageを使用すると色々な図形が描けます。 今回はドラえもんを描いてみたので紹介します。 ドラえもんを描画する 下記のコードでドラえもんを描画しています。 フォントはドラえもんフォントを使って描画しています。 もう少し画質を良くした…
PHPで画像処理といえば GD ImageMagick 辺りを使うのが一般的でしょうか。軽いノリで小さいアプリを実装する時はGDをが向いてると思います。 でもGDってなかなかクセがありませんか?何が違うのか分からない様な似た名前の関数があったり、半透明画像を扱う…
PHPのmb_strwidth()関数とmb_strimwidth()関数をJavaScriptで移植してみました。あまり動作確認してませんが、どうやらそれっぽく動いているようなので公開します。 mb_strwidth() int mb_strwidth ( string $str [, string $encoding ] )文字列 str の幅を…
PHP5.2以前(PHP5.2含む)でstaticなfunctionの継承というと面倒な印象があるかと思いますが、簡単な方法を見つけたので紹介します。 やりたいこと PHP5.2以前で下記のようにstaticなメソッドをオーバーライドしたいとします。 このソースではSuperClassを継…
instagramのちょっとエッチな画像をまとめたサイトerostagramを作ってみたよ(NekostagramとかBijostagram風なやつです)。海外のセクシーな人の画像が多めです。 技術的には、公式のRSSでちょっとエッチなタグを検索してまとめています。本当はinstagramの…