2016年

1/2ページ

Mojoliciousでactionの前後に実行される独自のHookを作る。before_action、after_action編

PerlのWebApplicationFrameworkであるMojoliciousでは様々なフックが用意されているのだけれど、actionの前後だけに実行したい場合は独自にフックポイントを追加しないといけない。 実装方法その1 一番単純な実装方法はaround_actionフックを使うのが良さそう。actionは$lastフラグが真の時に実行されるので前後に独自のフックをエミットする。 sub startup { my $self = shift; ... $self->hook( around_action => sub { my ( $next, $c, $action, $ […]

maxOS Sierraのクラムシェルモードでディスプレイのスリープ解除が出来ない問題

Mac

環境: MacBook Pro (Retina, 13-inch, Mid 2014) macOS Sierra 10.12 Apple Keyboard (テンキー付き - US) 状況 今まではキーボードのどのキーでもスリープ解除が出来たけど、Sierraにしてからはディスプレイのスリープ解除が出来なくなってしまった。環境の問題? ラップトップして使っているときも電源キーを押さないと解除できない気がする。 正確に言うと英数キーを押したことで、パスワード入力欄に文字が入力されているっぽいので内部的には解除されているっぽい? ラップトップで使う場合は電源キーで解除出来るので問題ないとして、クラ […]

【USキーボード】macOS Sierra で入力ソースの切り替えをKarabinerの左⌘/右⌘を使えるようにする

Mac

誘惑に負けてmacOS Sierraにしたところ、USキーボードで必須のKarabinerが正式対応していないことが判明。 Karabiner - OS X用のソフトウェア これは不便。しかし、よく見るとKarabiner-Elementsなるものがあるみたい。 Karabiner-Elementsのダウンロード 下記URLから最新バージョンをダウンロード出来る。 tekezo/Karabiner-Elements: The next generation Karabiner prototyping for macOS Sierra Usageにインストール方法等が書いてある。基本的にはインス […]

AtomエディターのemmetをMojoliciousのテンプレートで使う

language-mojoliciousを導入する。 keymap.csonに以下を追記 'atom-text-editor[data-grammar="text html mojolicious"]:not([mini])': 'tab': 'emmet:expand-abbreviation-with-tab' タブで展開させるとlanguage-mojoliciousとカブるので emmetはcmd+shift+eにしてみる。 'atom-text-editor[data-grammar="text html mojolicious"]:not([mini])': 'cmd-shift- […]

Mojolicious::Plugin::LocaleTextDomainOOというモジュールでCPANおーさーとなる

Mojolicious::Plugin::LocaleTextDomainOO - I18N(GNU getext) for Mojolicious. - metacpan.org きっかけ Mojolicousで国際化するプラグインにはMojolicous::Plugin::I18Nというものがある。これは良く出来ていて、URLやドメイン名での振り分けが出来たりする。 国際化の部分はLocale::Maketextを使う。Locale::Maketext::Lexiconも使えばpoファイルなどもつかえる。 普通に使う分なら問題ないのだけど、GNU gettextのmsgctxtやtext […]

Mojolicious、Mojolicious::Liteアプリをマウントする方法

プラグインとしては Mojolicious::Plugin::Mount  がある。短いコードなの読むと参考になる。 Mojoliciouアプリを埋め込む 追記:Mojolicious::Commandsを使う方法があるらしい。こっちの方が正統? $app->routes->any( '/sub' )->detour( app => Mojolicious::Commands->start_app('SubApp') ); Mojolicious::Liteのアプリをマウントする方法は日本語だと Mojolicious::Guides::Routing に書いてあ […]

Minillaを使ってMojoliciousプラグインを開発する

1. Mojoliciousプラグインの雛形作成 $ mojo generate plugin MyPlugin カレントディレクトリに Mojolicious-Plugin-MyPlugin というディレクトリ名で雛形作成される。 2. ドキュメントにAuthor情報を追記する。 $ cd ./Mojolicious-Plugin-MyPlugin $ vi lib/MyPlugin.pm minillaではPODに書かれているAuthorが使われる。作成された雛形(MyPlugin.pm)のPODにはAuthorの項目がないので追記する。 vi lib/Mojolicious/Plugin […]

#yapc8oji 行ってきた

YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa 2016/7/2 - 2016/7/3 選考方法が抽選でドキドキでしたが、無事(?)2日とも参加することが出来ました。 前夜 2日とも当選したので朝から参加しようと前泊。出発が思いのほか遅くなってしまい、品川周辺についたのが22:30まわっていたのでホテルの近場で軽く一杯飲んで帰るつもりが...常連さんと意気投合して3:00頃まで飲んでしまった...。青横ハイボールの常連さんありがとうございました。 初日 そんなこんなで初日から若干の遅刻。 聞いたトーク MySQLと正規形のはなし お前ら!! […]

MAMPな環境のmacにDBD::mysqlをインストール

OSX El Capitan(10.11.5) MAMPのバージョン 3.0.7.3 ※1 MySQLのバージョン 5.5.38 MAMPだとWarning (mostly harmless): No library found for -lmysqlclientのエラーでインストール出来ない。 mysql.hが存在しないため、別途インストールする必要があるようだ。 検索しているとC++ で MAMP の MySQL に接続する : あかぎメモに まずこの記事の手順で、MySQL のヘッダファイルやライブラリを用意しておく。うまくいけば次のようなファイルができる。 /Applications/ […]

Amon2アプリをMinillaで管理する時のハマりどころ

amon2-setup.pl --flavor=Large MyApp で作成したLarge flavorのAmon2アプリのリリース管理にMinillaを使ってみようとしらうまくいかなかったので試行錯誤してみた。 まずはMinillaに最適化 minil migrate Minillaで管理するのに必要なファイルの作成や.gitignoreに追加等してくれる。 必要なディレクトリに空ファイルを作成 Large flavorのアプリで言うと db ディレクトリが必要だが、amon2-setup.plで作成した状態だと、.gitignoreは下記の状態になっている。 db/.gitignore […]