Smartyのregex_replaceで一致した部分を取り出す

どうした

何故か今Smartyを触っている謎はおいといて、正規表現でヒットした部分を取り出したいなーと思った。

問題

www.smarty.net
公式のドキュメントには特に書いてない。

d.hatena.ne.jp
ありがたい先人。

解決策

PHP: preg_replace - Manual
つまりpreg_replaceのreplacementの仕様と同じく$nで指定すれば良い。
一部を切り抜きたい場合は、前後もマッチングしてやれば良い。

{assign var="origin_text" value="this is origin text."}
{$origin_text}<br>
{$origin_text|regex_replace:'/^(.*)(o.*t)(.*)$/':'$2'}<br>
 this is origin text.
<br>
origin text
<br>

ゲームマーケット2015秋で手に入れたもの

どうした

ゲームマーケットいってきた。
国内外のアナログゲーム(ボードゲームとかカードゲームとか)の即売会っすね。gamemarket.jp
企業の出してるものから同人のものまでいろいろある。

この時に手に入れたもので遊んだり出来たので感想を書いておく。

ひらがなセンテンス

yyyacooo.com
お題(「てんごく」とか「にんげん」とか)を決めてから、
山札からひらがな一文字のカードを引いていき、5x5のマス目に配置して埋めていく。
25文字で埋め終わったら、一筆書きでお題に沿った文章を完成させるゲーム。
山札から引くひらがなの運要素と、ひらがなを配置する場所による戦略性と、最後の大喜利要素が絡みあう良ゲーム。
どんなにひどくても大喜利で挽回出来たりするので好き。

四コマ妖精DX

4コマ妖精 - 豚小屋
お題を決めて、1コマ目をみんなで描き、投票制で決定し、2コマ目・3コマ目とつづけて4コマ漫画を完成させるゲーム。
人数が多ければ多いほど楽しい。
三人よれば文殊の知恵というが、意外とネタが被らないもので、個々人の個性が光る。
徹夜でやるとよい。

アソxベxシャリ

goccogames.com
ゲームじゃなくて本。
ボードゲーム界隈の人たちにインタビューした感じの本。
ひらがなセンテンスの作者の人のインタビューもある。
こんなゲームおもしろかったわ!みたいな話が載っているので、これで気になったゲームをこんど探してみようと思う。
固有名詞がバンバンでてくるが、用語解説がページ下についているので読みやすい。

Aコードでいこう

Saashi & Saashi — Aコードで行こう
パッケージがかわいかったので購入。
ジャズセッションをモチーフとしたカードゲーム。
残念ながら未だプレイ出来ていない。

最後に

やろうアナログゲーム

マーズ・アタック!

1996年 アメリカ
監督 ティム・バートン
主演 ジャック・ニコルソン

マーズ・アタック! [Blu-ray]

マーズ・アタック! [Blu-ray]

マーズ・アタック! [DVD]

マーズ・アタック! [DVD]

 火星人が来たのでアメリカがわいわいする話。もちろん戦争になる。
 宇宙人が来て戦争になる映画は同年に(日本公開は年をまたぐけど)インデペンデンス・デイがあるんだけど、あっちがアメリカンジャスティスを喰らえ!アメリカ万歳!大統領万歳!に比べてこっちは偉そうな奴は大体「バーカ!死ね!」って感じで死んでいく。最高。
 ポワワ銃で政府のおっさんや陸軍が緑や赤の骨(彩色した骨格模型)になっていくし、この未曾有の事態中にスケベ心だしてる奴ら(専門家のイケメン(ピアース・ブロズナン 007ゴールデンアイのボンド)と頭のゆるい美人キャスター、あとマイケル・J・フォックス)はもちろんひどい目にあう。クソだなって思うやつは大体死ぬ。安心できる。
 全体的にB級映画のノリが漂うので、メリハリみたいなものはなくて全体を通すとダルさがあって(このシーンこんな長くいるか?みたいなのが多い)、真面目に見るものではなくけだるい休日の午後とかにだらだら見て欲しい。体調が悪い時に見る夢みたいな感じが得られる。
 最高に褒められる点は出てくる女性がみんなエロいところ。明らかに頭の大きい「一体何星人の変装なんだ……」みたいな女とか、大統領の娘(ナタリー・ポートマンとかいう天使)とか、エジプト風の衣装着てるカジノの店員とか良かった。
 あとトム・ジョーンズ役のトム・ジョーンズが良かった。また見たい。

RailsでDalliが使うmemcacheのポート番号を指定する

memcachedrailsから使いやすくしてくれるgem Dalli

mperham/dalli · GitHub
ありがたい。でもmemcachedのポート番号を変更したとき、どうやって設定するんだろう。

手順

  • config/environments/development.rb内のconfig.cache_storeを変更する
$ vim config/environments/development.rb 
  # memcached / dalli
  config.cache_store = :dalli_store, 'localhost:11212'

単純にサーバ指定してあげるところにポート番号も書いてあげれば良かった。

memcachedを同一サーバ上で異なるポートで複数走らせる on Ubuntu14.04

複数memcachedが欲しい

小規模な実験的開発なので、開発環境と本番環境が同一のサーバ上にある。
両方memcachedを使いたいけど、keyが同じだと混ざる。
環境名をkeyに入れるのもアレだなぁということで、memcachedを2つ走らせることにした。

環境

調査

起動スクリプトと設定ファイルをcpしてポートの数だけ増やしたり、起動スクリプト複数対応にしてあげたりしている。
起動スクリプトを見る。

$ cat /etc/init.d/memcached
FILES=(/etc/memcached_*.conf)
# check for alternative config schema
if [ -r "${FILES[0]}" ]; then
  CONFIGS=()
  for FILE in "${FILES[@]}";
  do
    # remove prefix
    NAME=${FILE#/etc/}
    # remove suffix
    NAME=${NAME%.conf}

    # check optional second param
    if [ $# -ne 2 ];
    then
      # add to config array
      CONFIGS+=($NAME)
    elif [ "memcached_$2" == "$NAME" ];
    then
      # use only one memcached
      CONFIGS=($NAME)
      break;
    fi;
  done;

  if [ ${#CONFIGS[@]} == 0 ];
  then
    echo "Config not exist for: $2" >&2
    exit 1
  fi;
else
  CONFIGS=(memcached)
fi;

あっ、なんか"memcached_$2"とか書いてあるし、さてはこれ複数設定ファイルに対応してる奴や。

手順

$ sudo cp memcached.conf memcached_2.conf
  • /etc/memcached_2の中のポート番号を書き換える
$ sudo vim memcached_2.conf
# Default connection port is 11211
-p 11212
$ sudo service memcached restart
Restarting memcached: memcached_2.
$ ps aux | grep memcached

ポートの部分が異なる2つのmemcachedが走っているのを確認。

PHPでOR書いて死ぬ話

どうした

 PHPで論理演算子orを使ってたらハマって死んだ。現象は以下の記事を参照。tech.aainc.co.jp

 orは=より評価順位が低いので気をつけようという話。
 python書いてからPHP書こうとすると、ついついorって書いちゃうけど、気をつけないとあかんね。ちなみにrubyPHPと同じような優先順位なので、言語を並行で触るときには意識して気をつけよう。

ミニ四駆グランプリ2015 NEW YEAR 東京大会 (1/25)

序文

 2015年東京最初の大会に参加した。

時間

 どうせ冬の大会なんて早くから並ばなくても参加出来るだろと高をくくって08:00に家を出る。


 08:52、受付で参加券を手に入れる。普段の東京大会だとこの時間だと参加受付を閉めきっているが、さすがに冬だったので2000番にも達していない。

コース

 フジヤマチェンジャー(高いレーンチェンジ)、鷹の爪(気まぐれウォッシュボード)、茄子の丸み(ドラゴンバック)、そして30°バンクなどを備えたコース。今回は他では検証が出来ないフジヤマチェンジャー対策を焦点にセッティングをすることとした。

マシン

f:id:Number6:20150125103934j:plain
去年の最終戦からの変更点は以下のとおり。

  • タイヤを大径ローハイトカーボンホイール+中空タイヤに変更
  • 車高変更に伴い前後ブレーキ高の調整
  • 対フジヤマチェンジャー用リアウイング風ブレーキを追加

 フジヤマチェンジャーがあるのをすっかり忘れていたので、リアウイング風ブレーキは現場で急造したもの。2mm直カーボンFRPの外側にMSブレーキセットから切り出したマウント方向変更パーツをつけ、FRPワイドプレートをつけている。ブレーキスポンジは黒。ちょっと調整するだけで横方向ギリギリ1杯まで広がったので良かった。
f:id:Number6:20150125145133j:plain
 横から見るとこんな感じ。

結果

 2レーンスタート。結果は途中までトップを走るものの、フジヤマチェンジャーでわずかに浮いてしまい、コースアウト。黒スポンジでは摩擦が足りなかった。次回は灰色、それでダメならシリコンやゴムを使おうと思う。