PHPカンファレンス福岡2015 After Hack にいます
Fusicさんで開催されている『PHPカンファレンス福岡2015 After Hack』にいます。
https://fusic.doorkeeper.jp/events/26357
Fusicさん提供の電源、ネットワーク、コーヒー、ビールで『PHPカンファレンス福岡2015』のブログを書こうと思ってやって来ました。
Future Sync Vol.5 に参加しました
2015年5月16日に開催された Future Sync Vol.5 に参加しました。
あれからもう一週間たってしまいました。遅くなりましたが感想などを。
私が参加したセッションは以下の通り。
・複雑に絡み合ったユーザーの思いを「ともにデザイン」するインクルーシブデザイン (平井康之)
・Blockchain 〜ビットコインを支える技術〜 の現在と未来 (栗元憲一)
・ウェアラブルからシンギュラリティへ (塚本昌彦)
・脳がシビれる心理学 (妹尾武治)
・世の中をザワつかせる方法 (眞鍋海里)
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しちゃだめです。
『Laravelエキスパート養成読本』献本いただいたのでキャンプへGO!
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のバージョンアップも忘れずに!)
RoundCubeのlabelの一部を上書きする
- 2015/04/01
- aikawa
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'];
本当はこんなことしたくないんです! カテゴリ名って簡単に取れるようになってるんでしょうか?
CI ツール勉強会@福岡に参加した
- 2015/03/20
- shun
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リポジトリもローカルと同じコマンドでリセットしてデプロイしなおしました。
iOSのクラッシュログにシンボル情報を追加する
- 2015/02/06
- haraguchi
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ファイルはクラッシュログを出力したものと同じものを使う必要があります。
私は以下の方法で取得しました。
- XcodeのOrganizerを開く
- 該当ビルド上で右クリックし、「Show In Finder」を選択
- Finderで選択されているファイル上で右クリックし、「パッケージの内容を表示」を選択
- 「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
