超軽量CMSを作った

PHP

Web制作の現場では何でもかんでもWordPressで作っちゃうことがよくあるようで、例えば「基本的には静的ページで構成されているけどお知らせ機能だけ動的にしたい」という場合でもWordPressで実装しちゃうことがあるようです。このように「たったこれだけのた…

npm publishしてみた

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を完走した

去年の夏に書籍「Writing A Compiler In Go」を購入して以降、時間を見つけてコツコツ進めていたのですが、先日ようやく完走することができました。 基本的には本に書いてあることを写経しながら進めるだけでコンパイラが完成してしまうので、内容をしっかり…

Goのクリーンアーキテクチャ実装 go-clean-arch を読む

Go言語で実装されたクリーンアーキテクチャの実装例を見つけたので、ソースを読みつつなんとなくクラス図とER図を書いてみました。 github.com クラス図 図の中にメモ書きしてありますが、ほぼ全てのオブジェクトを main で生成しています。 Model は Articl…

2020年のPHPエディタ

PHP

PHPを書くなら有料のPhpStormを使うのが一番良い気がしていて実際私も使っていますが、無料ならVSCode + PHP Intelephenseが良さげです。 ※PHP Intelephenseも一部機能は有料ですが、無料で大抵の機能が使えます ということで環境構築方法を紹介します。 初…

air-shodo.comというサイトを作りました

air-shodo.comというサービスを正式リリースしました。 https://air-shodo.com このサイトではPCやスマホで手軽に書道した気分を味わうことができます。今のところ機能はとてもシンプルで、大きくいって下記の3つです。 書道する 投稿する 投稿を閲覧できる …

MongoDBのcursor

下記の感じでなんとなくでMongoDBのcursorを使っているけど、今までちゃんと公式ドキュメントを読んだ事がなかったので改めてドキュメントを読んでみた。 var cursor = db.users.find(); while (myCursor.hasNext()) { printjson(cursor.next()); } 現行バー…

2018初夏、Visual Studio Codeに夢中

エディタなんて好きなものを使えばいいと思うし、他人に押し付けるものでもないし、なんなら自分はIDE派でもあるんだけど、最近Visual Studio Code(vscode)を気に入って使っている、という話。 Microsoftの印象 自分にとってMicrosoftといえば悪いイメージ…

golangでKVSサーバーを実装してみた

golangの勉強がてらKVSのDBサーバーを雑に実装してみた。 DBの実装自体はbuntdbというライブラリをそのまま使っているので、あまり大した事はやっていないけど。 実装したDBサーバーについて OrenoDBという名付けた(メンテするつもりはないので雑な命名) …

PHPでbtree

golangで書かれた google/btree をPHP7.1に移植してみた。 移植する事が目的ではなく google/btree のソースリーディングだったので、かなり雑な移植になっている。 github.com ソースの移植 golang --> PHP golangをPHP7.1に書き換えた訳だけど、配列周りで…

とあるプログラマの地方移住

関東から東北に移住してまとまった時間が経とうとしているのと、今日はちょっと色々あったので、これまでの事を振り返り書いてみようと思う。 地方移住を検討しているプログラマへ向けて自分の経験が多少なりとも何か役に立てば嬉しい。なお地方移住を勧める…

golangでTUIのスーパーマリオブラザーズ

golangがどんなものか軽く触ってみようかと思い、何か題材でもないと触るのも難しいだろうという事で、TUIでスーパーマリオブラザーズでも実装してみようという謎の題材をふと思いついた。 早速実装しては見たものの、本来の目的であるgolangを知る事そっち…

普通すぎるエディタ「micro」

go言語(termbox-goではなくtcell)で実装されたmicroというターミナルベースのテキストエディタの version1.0 がリリースされたようで、試しにちょっとだけつかってみたのですが、なかなか使い心地がよいです。 というわけで(個人的に)使い心地が(いい意…

君はもう見たか!php.netの走る象を

PHP

なんとやくタイトルに倒置法を使ってみましたが、深い意味はありません。 というのはおいといて、コアラのマーチには眉毛コアラがたまに入っていて、見つけるとちょっと嬉しいですが、php.netにもそんな遊びが仕掛けられているようです。 先日先輩から、php.…

Gifアニメを作るChrome拡張Animated Gif Captureを公開しました

「Animated Gif Capture」というアニメーションGifを作るChrome拡張を公開しました。 Chromeに表示中のWebページをアニメーションGifに変換します。また、オプションページから設定を変更すると、デスクトップやChrome以外のウィンドウもアニメーションGifに…

HappyのPVを1時間で見る

合計24時間あるPharrell WilliamsのHappyのPVを1時間で見られる、24 Hours of Happy in an Hourというページを作りました。http://demouth.net/sketch/24hoursofhappy-inanhour/ 使い方 まず、Google Chromeがインストールされた、ある程度性能のいいデスク…

NetBeans7.4でPHP_CodeSnifferを使う

PHP

PHPの統合開発環境NetBeans IDE for PHPにはPHP_CodeSniffer(以降phpcs)を使う機能が標準搭載されていて、これを設定しておくとIDE上からプログラムのコーディング規約違反を自動検出できます。phpcsにるコーディング規約チェック内容はカスタマイズも可能な…

2014年2月PHPフレームワークのトレンド

PHP

人気のあるPHPフレームワークについて調べていたら下記の参考になる記事がありました。 2013年において注目すべき PHP フレームワークは Laravel PHPフレームワークのベンチマーク比較と2013年のトレンド 「Githubのスター数」と「Googleトレンド」という観…

爆発コマンド

爆発しろ!という気持ちを鎮める為のシェルを書きました。 このシェルを叩くとランダムで生成された爆発のアニメーションが描画されます。 ※パーティクルが密集しているところは「@」など大きめの文字で描画するなど、ちょっと凝ってますシェルスクリプトに…

iOS7なiPadのユーザーエージェントについて調べてみた

ある日、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/…

PHPのジオコーディングライブラリ作りました

DmGeocorderというPHPで実装された日本国内用ジオコーディングライブラリを作りました。 住所から緯度経度を調べたり(ジオコーディング)、緯度経度から住所を調べたりすること(逆ジオコーディング)が出来ます。https://github.com/demouth/DmGeocoder 特…

描画処理のパフォーマンス比較

canvasのcontext2dのarc()関数のパフォーマンス比較をしてみました。 ついでにActionScript3.0との比較もしてみました。単純に比較できないとは思いますがGraphics::drawCircle()を使用します。JavaScriptのソースはこんな感じ var stats=new Stats(); docum…

ランダムで日本人の名前を返すPHPライブラリを作った

ランダムで日本人の名前を返す gem を作った という記事をみて、日本向けのPHP版Fakerを見つけられなかったので作ってみました(追記fzaninotto/Fakerが日本対応されてたようです)。github - demouth/FakerJapanese普通に作ってもつまらないので、キラキラ…

PHPでアニメーション画像を生成する

PHPにはGDモジュールという画像処理系のモジュールが用意されています。これが入っていると画像処理•図形描画系の関数が使用する事ができ、基本的な機能は一通り用意されています。 例えばさくらのレンタルサーバーやロリポップでもこれらの関数を標準で使え…

雪を感じるサイトSNOWY MOOD作りました

雪を感じるサイトSNOWY MOODを作りました。名前の通りRAINY MOODの丸パクリサイトです。帰省中の盛岡で昨日大雪が降ったので写真と音を記録してRAINY MOODっぽくしてみたのがこのサイトです。http://snowymood.demouth.net/

PHPでドラえもんを描く

先日紹介したDmImageを使用すると色々な図形が描けます。 今回はドラえもんを描いてみたので紹介します。 ドラえもんを描画する 下記のコードでドラえもんを描画しています。 フォントはドラえもんフォントを使って描画しています。 もう少し画質を良くした…

PHPの画像処理ライブラリ「DmImage」を公開しました

PHPで画像処理といえば GD ImageMagick 辺りを使うのが一般的でしょうか。軽いノリで小さいアプリを実装する時はGDをが向いてると思います。 でもGDってなかなかクセがありませんか?何が違うのか分からない様な似た名前の関数があったり、半透明画像を扱う…

PHPのmb_strwidth()とmb_strimwidth()をJavaScriptで実装する

PHPのmb_strwidth()関数とmb_strimwidth()関数をJavaScriptで移植してみました。あまり動作確認してませんが、どうやらそれっぽく動いているようなので公開します。 mb_strwidth() int mb_strwidth ( string $str [, string $encoding ] )文字列 str の幅を…

PHP5.2でstatic functionのオーバーライド

PHP

PHP5.2以前(PHP5.2含む)でstaticなfunctionの継承というと面倒な印象があるかと思いますが、簡単な方法を見つけたので紹介します。 やりたいこと PHP5.2以前で下記のようにstaticなメソッドをオーバーライドしたいとします。 このソースではSuperClassを継…

ちょっとエッチな画像を集めたサイトerostagram作りました

instagramのちょっとエッチな画像をまとめたサイトerostagramを作ってみたよ(NekostagramとかBijostagram風なやつです)。海外のセクシーな人の画像が多めです。 技術的には、公式のRSSでちょっとエッチなタグを検索してまとめています。本当はinstagramの…