読者です 読者をやめる 読者になる 読者になる

blogですかい

株式会社Loco Partnersに勤めるエンジニアうちの一人のブログ。仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

安済知佳

声優 Advent Calendar 2016 22日目の記事です。 12月22日は安済知佳さんの誕生日です 25歳の誕生日、おめでとうございます。 安済知佳さんとは エイベックス・ピクチャーズ所属の声優 代表作には、棺姫のチャイカ(チャイカ・トラバント役)、悪魔のリドル(首…

【アイマス】ソフトウェア開発におけるCIの活用

アイドルマスター Advent Calendar 2016 14日目の記事です。 CIとは CIとは、昨今のソフトウェア開発において品質・生産性を改善するための方法論で、Continuous Integration(継続的インテグレーション)の略として知られている。 が ケイゾクテキインテグレ…

五十嵐裕美さんの呼び方についての注意事項

声優 Advent Calendar 2016 13日目の記事です。 五十嵐裕美さん、誕生日おめでとうございます。 五十嵐裕美さんの誕生日は昭和61年12月13日、私の誕生日は昭和61年12月31日。 日の1の位と10の位が入れ替わっただけの五十嵐裕美さんに、親近感を勝手に持って…

AWS LambdaでもPHPがしたい!

AWS Lambdaでは基本的に、Node.jsやJava, Pythonを用いて開発をしますが、それらから別の言語の処理系を呼び出して動かすことも可能です。 例えば、PerlのスクリプトであればLambdaのコンテナにインストールされているので、このように動かすことができます…

AWS LambdaでPerlのスクリプトを動かす

LambdaファンクションはNode.jsやJava、Pythonで書くことができます。 では、Lambdaで動かしたい処理を、その3つの言語のどれで書かなければならないのかというと、そんなことはありません。 LambdaのインスタンスのOSはAmazon Linuxで、幾つかの言語の処理…

git rmやgit mvした状態をgit stash saveするのは避けたほうが良いかもしれない

Git

git mvしたものをgit stashで保存・復原という操作をして気になったこと $ git ls-files hoge $ git status On branch master nothing to commit, working directory clean $ git mv hoge fuga $ git status On branch master Changes to be committed: (use…

最近使い方を知ったPHPの文字列関数

PHP

ltrim(string $str [, string $charlist]) $strの左端から連続する$charlistに含まれる文字を除去する rtrim(string $str [, string $charlist]) $strの右端から連続する$charlistに含まれる文字を除去する trim()は知っているけど、左右限定のものがあると…

CakePHP3のShell

CakePHP Advent Calendar 2014 16日目 Shellの作成 src/Shell/ に作成。 例えば、 AiuraShell.php を下記のような内容で作成する。 デフォルトではAppShellクラスが無い点が、CakePHP2と異なる。 必要なら自分で作る。 上記のAiuraを実行すると下記のように…

日本酒は「生」が一番うまいと思います

日本酒 Advent Calendar 2014 6日目です やっぱり、新鮮なものは「生」が一番うまい。 野菜も魚も肉も、そして日本酒も、旬な時期に生で食すのがBestなのです。 僕と生酒の出会い 僕が初めて生酒を体験したのは2014年2月23日。 『しぼりたて祭り錦糸町2014』…

Jenkinsの移行作業(Debian)

移行用のプラグインもあるっぽいけれど、Jenkinsのホームディレクトリを丸々コピーでいけるようなので、似たような環境(jenkinsのユーザIDが変わらないような)であれば、丸々コピーが簡単です。 移行元にて $ cd /var/lib/jenkins $ sudo tar -zcf /tmp/jenk…

Ubuntu14.04LTS + Nginx + HHVMでWebアプリを動かす準備

少々出遅れた感アリですが、HHVM(というかHack)の勉強を始めようと思い、環境を作りました。 備忘録として、やったことをここに書き残します。 Ubuntu 14.04 LTSの環境は用意されている前提で Nginxのインストール $ sudo apt-get update $ sudo apt-get ins…

Amazon S3 でマルチドメイン名対応のWebサイトを作りたい人生だった

S3

S3とは AWSの提供するクラウドストレージで、ファイルの保管場所としても使えるし、静的コンテンツのWebサーバとしても使用できるというステキなサービス。 画像や動画などの静的コンテンツをS3から配信しているWebサービスは多い。HTMLも静的なものだけであ…

春イベント戦績 その1(とケッコンカッコカリ)

E-1 参加者(レベル・索敵値は攻略完了時のもの) 艦名 レベル 索敵 主な役割 鳥海 98 55 旗艦・眼鏡 摩耶 76 50 対空・火力 北上 78 35 対潜・開幕 大井 66 31 対潜・開幕 木曾 55 36 対潜 金剛 76 51 火力 伊勢 77 48 対潜・火力 赤城 46 78 索敵値・航空 加…

AzureのWebサイトでIDN TLDは使えないっぽい

前回の続き msdnのフォーラムで質問を投げたところ、REST APIを使用すれば登録できるという解答をいただいた。 REST APIを直接使う方法がわからなかったので(証明書周り)、コマンドラインツールを使用したところ、設定はできた。 しかし、設定したFQDNにWeb…

PaaSなWebサーバの日本語TLD対応状況

「.みんな」のドメインをいくつか取得したので、何か簡単なサービスをAzureのWebサイトで作ろうと思ったら、「.みんな」のドメインが設定できなかったので、他のPaaSはどうなのか調べてみた。 EngineYard OK Heroku OK Sqale OK Webサイト(Windows Azure) NG…

canvasで編集した画像をAWS SDK for JavaScript in the Browserを使ってS3にアップロードする

アップロード用ユーザの作り方は「S3 IAM policy」で検索 バケットの設定は「S3 Bucket policy」で検索 単にローカルファイルをアップロードしたいだけなら AWSの公式サンプルを参考にすれば簡単に実装できます。 http://aws.amazon.com/jp/developers/getti…

はてな認証API使ってみた

はてな認証APIとは http://auth.hatena.ne.jp/ はてな認証APIははてなアカウントによる認証システムをサードパーティアプリケーションに搭載するための Web API です。はてな認証APIを使うと、サードパーティアプリケーションのアカウント管理をはてなに任せ…

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という猫カフェです。 そして猫カフェで開発する事をモフサイト開発…

PHPで aタグ以外をサニタイズする方法

PHP

フォームの値を受け取るときやスクレイピングなどで「<a></a>以外のタグを消し去りたい」って事がありますよね。 それをスマートに解決する方法があるんです、そう、PHPならね。 php > $str = '<div><a href="hoge">hage</a></div>'; php > echo strip_tags($str,'<a>'); <a href="hoge">hage</a> とまぁ、こんな感じで、</a>…

エンジニアが「好き」と伝えるAPIを実装してみた

きっかけ @oh_sky 実装出来たら教えてください(o⁰⊖⁰o)記事にします。—ともチャンさん (@tb_bot) 2013年4月19日 正直なところ、ツイートした時は実際にやる気などなかったが、返信をいただいてやらなければならないような気がした。 備えあれば憂い無しと言う…

【SQL】 NULLを四則演算した結果

SQL

SQLで数値とNULLを四則演算すると、NULLになります。 例えば NULL+1 をやってみると mysql> SELECT NULL+1; +--------+ | NULL+1 | +--------+ | NULL | +--------+ 1 row in set (0.01 sec) ってな感じ。 その仕様を忘れている時があって(というか、NULL値…