blogですかい

仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

2013-01-01から1年間の記事一覧

CakePHP2でModelのアソシエーションをまとめて外す方法

全て外したいだけなら $this->Model->recursive = -1; 一旦全て外して、アソシエーションを設定し直したいなら たくさんのアソシエーションが設定してある。 この場所では1個だけJOINすれば事足りるのだけれど、不要なものを全てunbindModel()するのが面倒。…

CakePHP2でMySQLのレプリケーションスレーブからデータを取得する

CakePHP2で、特定のモデルでのSELECTでレプリケーションスレーブを参照する方法 Ap ... app/Config/database.php にmasterとslaveの設定を書く app/Model/AppModel.php のbeforeFind()に、参照先を変更する処理を書く -- $useReplica というプロパティを設定…

コミットしたら鳥海が抜錨するgit hookをつくった #艦これAdventCalendar 5日目

「好き」と伝えるAPIを実装したけど、特にログ取ってないので使われたかどうかわからない。 http://oh-sky.hatenablog.com/entry/2013/04/21/201719 よく考えたら、大人になって、社会人になって、エンジニアになって、 おじさんと話すことは多くなったが、…

ブラウン管テレビを処分する下調べ #大掃除AdventCalendar

大掃除AdventCalendarとは こちら http://www.adventar.org/calendars/164 絶賛参加者募集中 なぜテレビを処分するか テレビはスマイルプリキュアが終わってから一切見ていない。 いい加減、無駄に受信料払い続けるの嫌なので、テレビ処分してNHKとの契約を…

CakePHP2のFormHelperで作成したinput要素をjQueryで指定する方法

CakePHP2のFormHelperでフォームを作成すると、例えば Form->create('Model'); echo $this->Form->text('text'); echo $this->Form->end(); から <form action="/" id="ModelIndexForm" method="post" accept-charset="utf-8"> <div style="display:none;"><input type="hidden" name="_method" value="POST"/></div> </form>

Amazon RDSのMySQLインスタンスでJSTの時刻を使う方法

RDSのMySQLインスタンスはタイムゾーンの設定をすることができず、UTC固定です。 AWSの管理上の都合らしいです。 UPDATE `table_name` SET `dt_column`=NOW() WHERE `id`=1; といったようなクエリを実行すれば、dt_columnフィールドにはUTCの時刻が入ります…

<th>や<td>にpositionの指定はできません

htmlの仕様上、<th>や<td>にpositionの指定はできません。 例えば、 <td style="position: relative;> <span style="top: 10px; right: 10px; position: absolute;">あ</span> </td> と書いた場合、「あ」は

Restricted Words (出題者 @cielavenir 氏) 反省会 #codeiq #q431

CodeIQにて出題されていた「普通じゃないHello World」の期限が過ぎ、 問題及び解答の公開が解禁されましたので、私の解答を公開します。 課題(一部抜粋) 標準出力に Hello World と出力するプログラムを作成して下さい。 ただし、数値・文字・文字列リテラ…

スマートフォン向けダム検索サイト ダムNavi(仮) 公開

本日、ダムNavi(仮)を公開しました。 http://damnavi.oh-sky.net/ ダムNavi(仮)とは 今、自分の居る場所から近いダムを検索できる、スマートフォン向けWebアプリです。 Androidネイティブアプリとして作るつもりでしたが、諸事情により妥協してWebアプリとし…

社内勉強会 Gitで後戻りする方法

Git

Sep/11/2013の社内勉強会で使用した、git checkout -- や git reset についての説明資料。 これらのコマンドは何となく使ってはいたけど、資料を作成するにあたって改めてちゃんと調べることで、HEAD/インデックス/ワーキングツリー等について頭の中を整理で…

JavaScriptのDateオブジェクト ブラウザによる動作の違い

GoogleChrome 28 hoge = new Date('2013-9-4'); Wed Sep 04 2013 00:00:00 GMT+0900 (JST) hoge = new Date(2013,8,4); Wed Sep 04 2013 00:00:00 GMT+0900 (JST) Firefox 23 hoge = new Date('2013-9-4'); Invalid Date hoge = new Date(2013,8,4); Wed Sep…

艦これのAPIを直接叩いて操作しようと思ったけどやめた話

やりたかったこと 寝ている時や仕事中などゲームをプレイできないとき、Jenkins提督に遠征の指揮を執ってほしかった。 Jenkinsがコマンドを実行することにより、帰投した艦隊の受け入れ、補給、遠征への出撃を定期的に行ってくれるイメージ。 これを実現する…

Mac OS XでNFSサーバを立てる方法

/etc/exports を作成する 書式:/PATH/TO/SHARING/DIR -mapall=${uid}:${gid} ${ipaddr} 例えば、IPアドレス192.168.123.45のホストに、UID501,GID20のユーザとして、/var/nfs/exports のマウントを許可するなら /var/nfs/exports -mapall=501:20 192.168.12…

RDS MySQLインスタンスにてトリガを設定する

RDSのMySQLインスタンスにてトリガを作成するには MySQLでは、binlogを出力する設定になっている場合、SUPER権限を持つユーザでないとトリガやファンクションを作成できない。 RDSのMySQLインスタンスは、リードレプリカの有無に関係なくbinlogを出力する設…

ApacheでHTTPSのReverseProxy設定

例えばhttps://proxy.example.com/へのアクセスをhttps://hostname.example.com/へ転送したいときのVirtualHost設定は下記のようになります。 [prompt]$ sudo vi /etc/apache2/sites-available/proxy.example.com =========================================…

PostfixでメイルのSubjectを書き換える方法

Postfixの header_checksという機能を使います。 header_checksを使うと、ヘッダに任意のパターンを含むメイルをREJECTしたり、REDIRECTしたり、ヘッダを書き換えたりすることができます。 例えば、本番サーバと開発用サーバがあり、開発用サーバからのメイ…

PHPのSoapClientで、名前空間の接頭辞をns1から任意のものに変えたい場合

PHP

Debianで必要なコマンドがどのパッケージに入っているか調べる方法

ググれば大抵の場合解決するんですが、どうしても自己解決しなければならない場合に 1 まず apt-file をインストールし、データを更新する。 [prompt]$ sudo aptitude update [prompt]$ sudo aptitude install apt-file [prompt]$ sudo apt-file update 2 そ…

Facebook AppからユーザにNotificationを投げる方法

Notificationとは こういうの 公式ドキュメント PHPでの実装例

DebianにてaptでインストールされたPHPのビルドオプションを確認する方法

インストールされているPHPがどんなオプションでビルドされたか確認したいとき、mod-phpであればphpinfo()、cliであればphp -iなどを使うのが一般的です。 が、Debianのaptでインストールした場合、phpinfo()やphp -iではConfigureオプションは出力されませ…

EmacsのPHP-modeのインデント設定

今まで2タブにしていたのを4タブにしようと思って (add-hook 'php-mode-hook '(lambda() (setq tab-width 2) (setq indent-tabs-mode t) )) ↑の設定から (add-hook 'php-mode-hook '(lambda() (setq tab-width 4) (setq indent-tabs-mode t) )) ↑の設定にし…

JenkinsでWebサーバの死活監視をする

ダウンしたっていいじゃないか サーバだもの という詩にあるように、どんな強固なサーバでも停止してしまうことがあります。 サーバが停止しないような策を講じることはもちろん大事ですが、停止してしまったときの対応も同様に重要な課題です。 悪意のある…

JSONPはページとAPIのドメインが分かれても通信できますけどAjaxは同じドメインでないとできないんですよ

漢字のよみがな検索システムであるよみたんがAPIを提供しているということで、使ってみた。 が、初心者かと思われるような落とし穴にハマったので、自分への戒めのために、ことの次第を記す。 ハマったポイント 曰く APIなのでAjaxなどから呼び出して使うこ…

低コストで魔まマUPty特典を入手する方法

上の画像のようなデザインの魔法少女まどか☆マギカ MasterCard UPtyというクレジットカードがあり、たまたま私も所有しています。 このカードには上記のような特典があります。が、このカードを作って半年以上経つ今も未だ、その特典を受けたことがありませ…

FiddlerをMacで使う方法

Fiddler とは FiddlerはMicrosoftが無料で配布しているWebProxyで、通過するHTTPの通信を覗き見したり、特定のリクエストに対してローカルファイルを返すようにしたり、いろいろゴニョゴニョできます。 +---------+ HTTP +---------+ HTTP +-----------+ | b…

楽天スマートペイ加盟店になりました

私(個人)、楽天スマートペイの加盟店になりました。 私への金銭の支払い時(例えば飲み会での割り勘など)に、VISA/Master/楽天カードをご利用いただけます。 楽天スマートペイとは スマートフォンがクレジットカード決済端末になるというステキシステム。 …

【GIT】リモートリポジトリのブランチを削除

Git

リモートのブランチの削除をするたびにやりかたを調べていたので、備忘録的に・・・ ブランチの作成 ≧['_']≦ $ git checkout -b 'do-luck' リモートリポジトリにブランチをpush ≧['_']≦ $ git push origin do-luck ブランチの削除 ≧['_']≦ $ #ローカルブラン…

Google Compute Engine でLAMP環境作ってみた #PHPで何か作ろうかい

事前準備 https://cloud.google.com/ にSign in Cloud ConsoleにてProjectを作成 Billing Settingにてクレジットカードの登録 インスタンスを立てる Compute Engineのメニューにて、「NEW INSTANCE」ボタンをクリック 下記のように、フォームに必要な情報を…

Amazon EC2 t1.micro インスタンスでswapを使用する

m1.small 以上のインスタンスにはswap用のデバイスが存在し、デフォルトでswapとしてマウントされるようですが、残念ながらt1.microインスタンスにはそれがありません。 t1.microインスタンスでの free コマンド実行結果例 $ free total used free shared bu…

猫の手を借りて仕事をしてきた

モフサイト開発 弊社株式会社LocoPartnersには「オフサイト開発」という制度があり、月に一度、自分の好きな場所で仕事をすることができます。 今回、私が選んだ場所は、猫のいる休憩所299という猫カフェです。 そして猫カフェで開発する事をモフサイト開発…