PHPカンファレンス福岡2015 After Hack にいます

Fusicさんで開催されている『PHPカンファレンス福岡2015 After Hack』にいます。

https://fusic.doorkeeper.jp/events/26357

Fusicさん提供の電源、ネットワーク、コーヒー、ビールで『PHPカンファレンス福岡2015』のブログを書こうと思ってやって来ました。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

Future Sync Vol.5 に参加しました

2015年5月16日に開催された Future Sync Vol.5 に参加しました。
あれからもう一週間たってしまいました。遅くなりましたが感想などを。

私が参加したセッションは以下の通り。

・複雑に絡み合ったユーザーの思いを「ともにデザイン」するインクルーシブデザイン (平井康之)
・Blockchain 〜ビットコインを支える技術〜 の現在と未来 (栗元憲一)
・ウェアラブルからシンギュラリティへ (塚本昌彦)
・脳がシビれる心理学 (妹尾武治)
・世の中をザワつかせる方法 (眞鍋海里)

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

baserCMS 3.0.7 でカテゴリ名、簡単に取れました

muraveです。

チョイ前の記事

baserCMSを3.0.2から3.0.7へ。ところでカテゴリ名ってまだ簡単に取れないんです?

で、タイトル通りの疑問を書いてましたら親切な匿名の方からコメントで情報を頂きました。

曰く、$category = $this->BcPage->getCategory(); echo h($category[‘title’]);

$categoryへの代入等はこちらで追加させてもらいましたが、確かにこれです!

ありがとうございます。

てなわけで、getCategory関数を使用してのカテゴリーのタイトル取得は以下のようになりました。

//カテゴリーのタイトルを取得
$category = $this->BcPage->getCategory();
$product_title = $category['title'];

真っ当感、ありますな。

ところで、このgetCategory関数のリファレンス、http://wiki.basercms.net/関数リファレンス/getCategoryにあったんですが、用例が変ですね。

BcPage->getCategory() ?>

でカテゴリー名が出力されるように読めるんですが、getCategory関数の返り値はarrayですのでそのままechoしちゃだめです。

Facebooktwitterlinkedintumblrmail

『Laravelエキスパート養成読本』献本いただいたのでキャンプへGO!

muraveです。Laravel(4系)には平素よりお世話になっております。

待望のLaravel本『Laravelエキスパート養成読本』が4月21日に技術評論社から発売されます。

著者のお一人、Laravel答えるマンことlocaldiskこと松尾大さんから献本いただきました。ありがとうございます!

先週の木曜日午後に届きまして、翌日、とても晴れていたので、休みを貰ってキャンプに行きました!(謎)

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

vagrant rsync-auto で rsync__exclude を変更しても反映されない場合

murave@歯医者さんから定期チェックの電話がかかってきたのでチャッチャと書かねば、です。

Vagrantで開発環境を整えていたのですが Synced Folder での権限周りで引っかかってしまいました。
それで、今頃、Rsync Synced Folder に気づいたのですが、いいですねコレ。

rsyncで同期されるので、開発機のパワー不足でクラウド環境にサーバーを建てて開発してる方も使えるはず。オススメです。

こちらの詳細は検索していただくと『Vagrant 1.5 で追加された Rsync Synced Folder が良い – Shin x blog』やQiitaの記事など良い情報がみつかるかと思います。

さて、本題です。Rsync Synced Folder で開発を始めると vagrant rsync-auto コマンドで自動でのrsync同期を行うのですが、rsync__excludeで指定した同期対象外設定を変更してもなぜか反映されないという現象に遭遇しました。

これに関する情報が日本語では見つからなかったのでメモを残しておきます。

Previous Rsync Exclude setting caused duplicate rsync on rsync-auto #4567

ここに同様の現象に遭遇している方々がいらっしゃいます。そしてthePanzさんが以下の解決策を提示しておられます。

vagrant halt
rm .vagrant/machines/default/virtualbox/synched_folders
vagrant up

同様の現象にあったらお試し下さい(Vagrantのバージョンアップも忘れずに!)

Facebooktwitterlinkedintumblrmail

RoundCubeのlabelの一部を上書きする

RoundCubeの各項目の名称を、書き換えるような事が何度かありました。
(受信箱や送信済みの名称について、古いメーラと合わせたいとか)
そういう時は、各言語のlabels.incやmessages.incを編集する必要が有りましたが、
1.0以降は、上書きする機能を提供しているようです。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

baserCMSを3.0.2から3.0.7へ。ところでカテゴリ名ってまだ簡単に取れないんです?

muraveです。どもども。

時間ができたので自社サイトのbaserCMSを3.0.2から3.0.7へアップデートしました。今朝。

残念ながら順調にはいかなかったので自分のためにもメモを残しておこうと思います。
ところでカテゴリ名ってまだ簡単に取れないんです?(前振り)

■ アップデート処理を実行出来なかった件
スマートURLをオンにした状態ではアップデート処理を実行できませんでした

ギニャーーーー!

WordPress(ココ)と同居していることもあって.htaccessにいろいろと設定を追加しているせいかPOST先のページにアクセスできなかった模様。
スマートURLについて手作業でオフ、.htaccessを調整して実行しました。

/app/config/install.php の次の行をコメントアウト。

//Configure::write('App.baseUrl', '');

/app/webroot/.htaccess の一部をコメントアウト

RewriteEngine on
RewriteBase /app/webroot
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

もちろん実行後、手作業で元に戻しました。

■ レイアウトの中でカテゴリ名を取得していたページが全滅
どうかんがえてもイリーガルなことをやっていたので文句はいえないのですが、参りました。

イリーガルなことってのはこういうこと。

//カテゴリーのタイトルを取得
$product_record = $this->BcBaser->PageCategory->find('first',array(
      'fields' => array('title'),
      'conditions' => array('name' => $product_category),
      'recursive' => -1,
));
$product_title = $product_record['PageCategory']['title'];

3.0.7のコードを調べた所 $this->BcBaser を $this->Page に変えたら行けそうな気がしたのですが、気のせいだったのでさらにイリーガル感が増してしまいました。

//カテゴリーのタイトルを取得
$page_category = new PageCategory(false, null, 'baser');
$product_record = $page_category->find('first',array(
      'fields' => array('title'),
      'conditions' => array('name' => $product_category),
      'recursive' => -1,
));
$product_title = $product_record['PageCategory']['title'];

本当はこんなことしたくないんです! カテゴリ名って簡単に取れるようになってるんでしょうか?

Facebooktwitterlinkedintumblrmail

CI ツール勉強会@福岡に参加した

お初にお目にかかります、3 月から入社した shun と申します。
未熟者なりに記事を書いていきますので、多少なりとも役に立つことがあればと思います。

では本題、今回参加した CI ツール勉強会@福岡についてです。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

Git リモートリポジトリをガツンと巻き戻す

かなり悩んで時間がかかったのでメモを残しておきます。
前提条件として、基本、Git Flowベースで作業しています。

不幸なことにガンガン開発を進めていたdevelopブランチをmasterブランチの状態まで巻き戻すことに。masterブランチにはhotfixが入ってたりもします。

調べて調べて、悩んで、相談して、調べて、以下のような手順で作業することにしました。

hotfix前のdevelopまで戻す。

$ git reset --hard 巻き戻すコミットのハッシュ

リモートのdevelopリポジトリを同じ所まで巻き戻す。

$ git push -f origin HEAD:develop

そして、hotfixについてはmasterから対象のコミットをチェリーピックでマージしてリモートリポジトリにpush(Souce Treeでやりました)。

そして、開発者諸氏にdevelopブランチをリモートから取り直すように連絡(忘れずに!)

加えて、このプロジェクトでは開発用サーバーにdevelopリポジトリから

$ git pull -rebase

でデプロイしているので、開発用サーバーのdevelopリポジトリもローカルと同じコマンドでリセットしてデプロイしなおしました。

Facebooktwitterlinkedintumblrmail

iOSのクラッシュログにシンボル情報を追加する

Appleの審査でリジェクトされた際に、「.clash」や「.ips」といった形でクラッシュログが添付されていることがあります。
中身を確認すると以下のような内容になっていますが、このままだとコードのどの部分でクラッシュしたのかが分かりません。

〜一部抜粋〜
Thread 5 Crashed:
1  CoreFoundation                   0x24936b62 0x24831000 + 135152
2  Foundation                       0x255e49f5 0x25575000 + 21531
3  SampleApp                        0x000341d2 0xb000 + 55521
4  libdispatch.dylib                0x32a107b6 0x32a0f000 + 1235

そこで、「symbolicatecrash」というツールを利用してログにシンボル情報を追加することで、クラッシュ箇所を特定出来るようにします。

必要なファイル

  • クラッシュログファイル
  • appファイル
  • dSYMファイル

appファイル及びdSYMファイルはクラッシュログを出力したものと同じものを使う必要があります。
私は以下の方法で取得しました。

  1. XcodeのOrganizerを開く
  2. 該当ビルド上で右クリックし、「Show In Finder」を選択
  3. Finderで選択されているファイル上で右クリックし、「パッケージの内容を表示」を選択
  4. 「dSYMs」ディレクトリ内に「.app.dSYM」が「Products/Applications」内に「.app」があります

symbolicatecrashの実行

実行環境
・OS X 10.9.5
・Xcode6.1

「symbolicatecrash」は私の環境では以下のパスにありました。

/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

長過ぎるのでシンボリックリンクやエイリアスを作成しておくと便利です。

あとは下記コマンドを実行する事で、クラッシュログにシンボル情報を追加したログファイルを作成できます。

    # このコマンドを実行しないと「Error: "DEVELOPER_DIR" is not defined at symbolicatecrash line 60.」といったエラーメッセージが表示されます。
    export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

    symbolicatecrash クラッシュログファイル dSYMファイル appファイル > crash.log

作成されたcrash.logを確認してみるとシンボル情報が追加され、 SampleController.m の121行目辺りが怪しいことが分かるようになりました。

〜一部抜粋〜
Thread 5 Crashed:
1  CoreFoundation                   0x24936b62 +[NSException raise:format:] + 108
2  Foundation                       0x255e49f5 +[NSJSONSerialization JSONObjectWithData:options:error:] + 62
3  SampleApp                        0x000341d2 __35-[SampleController startSample:] (SampleController.m:121)
4  libdispatch.dylib                0x32a107b6 _dispatch_call_block_and_release + 8
Facebooktwitterlinkedintumblrmail