MANA-DOT

PIXEL ART, PROGRAMING, ETC.

プログラミング

文字列置換により20行程度で実装する倉庫番ゲームのミニマム実装

先日、Slack上でインタラクティブに倉庫番を遊べるhubot-slack-soukobanを作ったにてSlack上で遊べる倉庫番の紹介を行いました。 このhubotスクリプトでは文字列置換による実装を駆使して倉庫番のゲームロジック部分が20行程度で実装されており、今回はその…

PHPで利用できる配列操作系高階関数

PHP5.3からクロージャが利用可能であり、高階関数を積極的に利用して簡潔なコードを心がけたいのですが、一度調べておかないと意外な関数が利用可能であることに気づかなかったりするのでまとめ(個人的によく使う順)。

ssh-agentのforwardを利用し、ホストマシンとローカルVMの非公開鍵を共有する

ssh-agentはずっと利用していたものの、agentのforwardという機能をつい最近まで知リませんでしたが、ローカルVM開発する上でかなり便利な機能でしたので書きます。 ssh-agentのforwardを利用すると、例えばVM開発する上で、ホストマシンの非公開鍵を使用し…

ブログのサイドバー追尾の個人的最適解。コンテントとサイドバーのスクロール速度を変えてみる

まとめブログなど、メインコンテントとサイドバーの2カラム構成で、メインコンテントが非常に長いサイトでよく見るサイドバーの動きで、スクロールしてサイドバーをすべて表示したら、その箇所からサイドバーをスクロールに追尾させるというものが有ります。…

SublimeTextの設定をgit管理し、複数PCで設定やパッケージを同期する。

SublimeTextの設定をgitでバージョン管理し、複数PCで同じ設定を使う方法のメモです。

ドット絵のパレットその他を表示するJSをGruntやbrowserifyで作りなおしてみた

結構前に作ったブラウザでドット絵のパレットその他を表示するライブラリをGrunt / CoffeeScript / browserify / compass といったモダンなツールでビルドするように作りなおしてみました。また、新しくリポジトリを切り直して公開しました。

SublimeTextでパワーポイントにコードを綺麗に貼り付ける

パワーポイントにコードを貼り付けたいとき、シンタックスハイライトを有効にしたいと思うことは稀によく有ります。 SublimeTextを用いてそれを行なう場合、SublimeHighlightというプラグインが便利です。

正規表現で作るワンライナーライフゲーム

会社のLTで発表したものです。 以前の記事の内容を発展させ、先読み後読みを利用してループを使わずに正規表現の置換のみでライフゲームを実現させています。 ベンチ取れとか言われたので、そのうち追記します。 正規表現で作るワンライナーライフゲーム from…

PHPフレームワーク「Phalcon」を使ってみた感想

先日書いたように、YahooのOpenHackDayに参加し、そこでPHPのフレームワークとしてPhalconを利用したので、忘れないうちに使用感などを書いておきます。 (ちょっとしか触ってない上での感想なので、誤りなどあったら指摘お願いします。)

WindowsでPHPMDやPHPCSを入れてSublimeLinterでLintする

Windows上で使っているSublimeText の SublimeLinterでPHPのLintを行うためにWindows環境でPHPMDやPHPCS を叩けるようにしたので、その時のメモです。

Yahoo Open Hack Day2 に参加してきました

Yahoo Open Hack2 に参加してきました。 以下感想をだらだらと。

ドット絵からsvgフォントを作るプログラムを書いたよ

前回作った、ドット絵からsvgを作るプログラムでは、文字を1つずつsvgとして出力するため、IcoMoonAppでWebフォントにする作業が大変でした。 なので、プログラムを回収してsvgフォントの形式でまとめた状態で出力するようにしてみました。(ソースコード)

ドット絵のWebフォントをつくってみたよ

なにやらWebフォントという言葉をよく聞くようになりました。 僕も試してみたかったので、ドット絵のWebフォントを作ってみました。

HubotでIRCのログをとる

常駐しているbotにログの残らないIRCのログをとってもらいます。

Hubotでいない人に伝言を残すスクリプト

IRCを使っていると、用がある人がいなくてメッセージを残せなくて困ることがたまにあったので作りました。

正規表現による置換の繰り返しだけでライフゲームを作る

今更だけど最近正規表現で$1などのマッチした文字列を利用した置換をすることの強力さに気づいたので、なにか面白いことをしたかった 新年一発目だしなにか面白いことをしたかった ということで、タイトル通りにライフゲームを正規表現による置換の繰り返し…

HubotでURLが貼られたらページのタイトルをしゃべるようにする

よくあるやつ。 request = require 'request' cheerio = require 'cheerio' module.exports = (robot) -> robot.hear /(h?ttps?:\/\/[-a-zA-Z0-9@:%_\+.~#?&\/=]+)/i, (msg)-> request { uri: msg.match[1] }, (error, response, body)-> return if error $ …

hubotにIRCのなると(オペレータ権限)配布をやらせる

IRCBotに新しく入ってきた人になると(オペレータ権限)を配布させることはよくやると思います。 それをHubot+hubot-ircにやらせてみたのでメモ。

JavaScriptで変な形のクリック領域を作るとき、svgが便利

昨日のVieraのリモコン、リモコンを作りたかったのもあるけど、svgとJavaScriptを組み合わせた簡単なプログラムを試しに書いてみたかったというのがあります。

node.js でVIERAを操作するWebアプリケーションを作った

昨日の記事 の内容をnode.jsでGUIアプリケーションにしてみました。 Github に上げてあります。 使い方はGithubの方にも書いてありますが、 npm install で依存パッケージをダウンロードした後、 node app.js 192.168.x.x #Vieraのホスト です。 expressでリ…

VIERA(パナソニックのテレビ)をPCから操作する

週末同期と遊んでてパナソニックのテレビを操作する方法を調べたり、便利なコードを発見したりしたので、そのメモ。

node.js で elasticsearchを使ってみる

node.jsはいろんなパッケージがあるので色々出来る!いろんなことをちょっとやってみるのに捗る!全文検索もできたらもっといろんなこと出来そう! そうnpmを探してみたのですが、node.jsネイティブな全文検索エンジンは見つけたもののまだアルファ版だった…

PHP Badparts 4.catch節(というよりタイプヒンティング)

いきなりですが問題。次のコードを実行するとどんな出力がされるでしょうか。 (前提知識として、DateTimeクラスのコンストラクタに不正な値を渡すと、Exceptionが投げられます。)

加速度センサーでパララックス効果

以前 から、このサイトのトップ絵をパララックス効果でマウスでグリグリ動くようにしていますが、 この記事で紹介されているパララックスライブラリが、スマホの場合加速度センサで傾きを使ってアニメーションさせるというもので、面白そうだったのでやって…

gitのpre-commit hookを使って、綺麗なPHPファイルしかコミットできないようにする

PHPのようなゆるふわな言語を安全に書くためには、コードの綺麗さや作法などを担保する手段が大切になります。 IDEを使う、JenkinsなどのCIサーバーを立ててチェックさせるなどの方法が考えられますが、今回はgitの pre-commit hook を利用して、一定の条件…

HubotでHubotの更新をforeverを利用してHubotにさせてみる

前の記事でHubotでIRCbot Consoleと同等の仕事をさせられることが分かったので、会社で置き換えて使っています。 botが色々できるようになったのですが、唯一劣ってしまった点として、スクリプトの更新の容易さがあります。IRCbot ConsoleではWebからスクリ…

node-promise で複数の処理を待ってみる

以前 作ったircbotで、RSS通知を複数のフィードの和集合をとってからつぶやくということをする必要があったので、複数の非同期なRSS取得を待つためにnode-promiseを使ってみたメモ。

githubのwebhookを使って、push時に自動でサーバーを更新させる

このサイトのテーマはgithubで管理しています。 ただgithub上でソースを管理し ローカルで修正 → githubにpush → Webサーバーでpull としても便利なのですが、githubにはwebhookという機能があり、githubのレポジトリに変化があった時に任意のURLを叩いても…

HubotでIRCbot consoleと同等のことをする

会社のIRCで ircbot console を利用してbotを立てて、Jenkinsタスクの完了時にカスタマイザブルなメッセージを流したり、github enterpriseやfecruのRSSを加工して流したりしてたのですが、拡張性に限界を感じたので、今更ながらhubotとcoffeescriptを触って…

PHP Badparts 3.define関数

PHP Badparts 2.PHP

前回は初めてのあまり、思うことをダラダラ書きすぎて長くて読みづらいエントリになってしまいました。書く側も読む側もPHPのために無駄な時間を使いたくないと思われるので、もっと簡潔な文章を心がけます。 PHPタグ PHPタグ PHPでプログラムを書くためには…

ドット絵でパララックス効果

トップページ でトップ絵に採用してみましたが、ドット絵で パララックス効果 をやってみました。

PHP Badparts 1.require文

序 PHPは糞だ。業務で使っていてたしかにそう思う。同じく業務でScalaを書いている時のほうが2倍効率よくコードが書けていると思うし、3倍安心できるし、5倍楽しい(当人比)。

JSでドット絵にTIPを表示するライブラリを作った

先日作ったJSでパレットを読み出すPixelUtil に、画像のjQueryオブジェクトを引数で渡すとTipを表示してくれるcreateTip関数を追加しました。 引き続き、Githubにて公開しています。 Firefoxで完全に動き、Chromeだと拡大時に縁がボケ、IEだとパレットがバグ…

ドット絵にマウスオーバーでパレットを表示するようにしてみた

昨日の記事の使用例として、ここのギャラリーでドット絵にマウスオーバーするとパレットを表示するようにしてみました。

JavaScriptで画像のパレット他を読み出すコードを書いた

Githubにて公開しています。 256色Png、普通のGifと簡単なアニメーションGifに対応しているつもり。IEでは動きません。 改変・使用は自由ですが、バグがあったら教えて欲しいです。

JavaScriptのthisの出現パターンは2つしか無いという話

JavaScriptのthisについて JavaScriptのthisについて – new演算子とコンストラクタ 前にJavaScript初心者向けにthisについて言及しました。当時わかりやすく書いたつもりだったけど、今読み直すとわかりづらい・・・ので、視点を変えて書きなおしてみようという…

Play2で.conf以外のファイルから設定を読む 続き

昨日次のようなエントリを書きましたが、Twitterでよりよさそうな方法を教えてもらいました。

Play2でデータベースを標準の.conf以外から設定する

状況 Play2を利用して既存サービスの管理ツールを作っていて、DB接続関係の設定ファイルを既存のサービスと同じもの(Yamlファイル)を利用したい。

2つの抽象クラス間の関係をジェネリクスで表す

会社で似たような問題にドメイン駆動で開発していたらぶち当たったので、書いてみる。 部品と部品置き場の関係。 この両者には明らかに関係があって、ある部品はある部品置き場にしか置いちゃいけない。 例えば、タイヤは必ずタイヤ置き場に置かなきゃいけな…

PHPのdate関数みたいなのをJavaScriptで

とりあえずY,m,d,H,i,sだけ使いたかったので、適当に実装してみた。 もっと綺麗な方法はいくらでもあるとおもう。 Date.prototype.format = function(formatStr) { var d=this, a = { Y:d.getFullYear, m:function(){return ('0'+(d.getMonth()+1)).slice(-2…

JavaScriptでcookieの値を取得

ぐぐるとわざわざsplitしてforで回してる冗長なコードが出てきたりするので、適当に書いたコードだけど覚え書き。 keyに対する値があればその値を、なければfalseを返す関数。 var getCookieValue = function(key) { var val = document.cookie.match(new Re…

IEのdocumentオブジェクト

amachangさんのこの記事 一行で IE の JavaScript を高速化する方法 - IT戦記 http://d.hatena.ne.jp/amachang/20071010/1192012056 /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍…

JavaScriptのthisについて – new演算子とコンストラクタ

前回の記事では、 慣れないことをしたため、文体がやや硬くなってしまい、あとから見ると読みにくく感じた。あと、こういう文章を書くときは最後にまとめを書くべきだなとも思ったので、ここで書いておこう。 箇条書きでまとめると、JavaScriptのthisとは、 …

JavaScriptのthisについて

同期の間でJavaScriptのthisが難しいって話をちょくちょく聞いたので。簡単に説明してみる。 間違っているところがあったら是非突っ込んでほしい。 ※サンプルコードにミスがあったため、修正を行った(9/5) 続きを書いた(9/20)