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

$yuzu->log();

技術ネタなど。

【PHP】OpauthでLINEログインを簡単に実装する

PHPのSNSログインライブラリ、OpauthがLINEログインに対応しました! Opauthを使えば簡単にLINEログインも実装できます。 バグがあったらPRお願いします。 github.com PHPでLINEログインを実装してみる LINEログイン準備編 business.line.me ログイン後にア…

RubyのOmniAuthのPHP版、Opauthのコミッターになった。

諸事情により複数SNS連携ログインをPHPで実装しなくてはならなくなりました。 RubyのOmniAuthのPHP版と謳っていた、Opauthを使ってみたのですが、改良の余地が色々ありました。 なのでリポジトリ上で色々活動していたら、Opauthの管理者であり、Blockchain d…

アンテナサイトのジェネレータを作った

アンテナサイトが誰でも簡単につくれる、アンテナサイトジェネレーターを作りました。 1月中頃からチマチマ作ってたのですが、なんとか1月中にリリースできました。 ・アンテナサイトメーカー antena-mk.com ご自身でユーザー登録して、RSSを登録するだけで…

【機械学習】サポートベクターマシン(SVM)を使用して、乳癌かどうか調べてみる

サポートベクターマシン(SVM)について サポートベクターマシン(以下SVM)とは、教師ありの機械学習の一手法です。 SVMは、現在知られている機械学習の手法の中で、認識性能が優れた学習モデルの一つです。 その理由は、未学習データに対して高い識別性能を…

【機械学習】ニューラルネットワークを利用して自分の好みの女性を学習させる

ニューラルネットワークとは? 脳内には多数のニューロンと呼ばれる神経細胞があります。それぞれのニューロンは、他のニューロンから信号を受け付け,他のニューロンへ信号を受け渡しています。脳は、この信号の流れによって、様々な情報処理を行っています…

カラーヒストグラムを利用した類似画像検索システムの作り方

最近Machine Learning(機械学習)を勉強することが多いのですが、そこに引きづられて類似画像検索について勉強する機会があったので、その内容についてまとめます。 画像検索ではクエリにテキストを入れてテキストに関連した画像を検索します。 一方、類似画…

【機械学習】ナイーブベイズ分類アルゴリズムを利用した迷惑メールフィルタ実装例

ナイーブベイズ分類器とは? ベイズの定理を利用した分類手法です。 ベイズの定理について知りたい方は下記の参照下さい。 yuzurus.hatenablog.jp ナイーブベイズ分類は文章をカテゴリ分けする際に、テキスト中の単語の出現率を調べます。 その際、その文章…

【機械学習】ベイジアンフィルタ

ベイジアンフィルタとは ベイジアンフィルタ (Bayesian Filter)とはナイーブベイズ分類を応用したもので、対象となるデータを解析・学習し分類する為のフィルタです。 現状では迷惑メールフィルタやスパム投稿などの判定で利用されています。 ベイズの定理 …

SEOの初心者にはおすすめな本「10年使えるSEOの基本」を読んだ感想

SEOの専門家におすすめされて、読んだ本。とても良かったので紹介します。 「10年使えるSEOの基本」の感想 SEOの専門家である土居くんと、SEOに詳しくないすずちゃんが対話形式で例を交えながらSEOの話をする本です。 特にSEOのテクニック的なところは出てこ…

ポケモンGo!のアンテナサイトを作った。技術仕様やアプリケーション仕様などなど

酔った勢いで、ポケモンGo!のアンテナサイトを作ってみました。 pokemongo-mtm.xyz こういうのって、スピードが大事ですよね。検索ボリュームが多い時にリリースできたのでよかったです。 1時間ぐらいでさくっと。 使用した技術 CentOS7 CakePHP 2.8.5 PHP 7…

エンジニア × 海外就職 × 英語で参考になりそうな記事まとめ

最近エンジニアの海外就職報告記を見かけるようになってきました。 エンジニアとしての技術力や英語力はどのぐらい必要だったのか、ビザはどうしたのか。 参考になりそうなものをまとめてみました。 kenzan100.hatenadiary.jp ベルリンでウェブエンジニアと…

FXシステムトレードフレームワーク Jiji をCentOS7にセットアップ

FXシステムトレードフレームワーク「Jiji」のセットアップメモです。 「Jiji」のドキュメントにはHeroku、AWS、Dockerの3つの方法が載っており、前者2つは詳細に説明が書かれていますが、3つ目の「Dockerにインストール」はパッケージインストールが省略さ…

iPhone7等の新製品を誰よりも早く予約する為に、予約サイトがオープンしたらSlackに通知する方法

Shell Script Advent Calendar 2015 8日目を担当させていただきます、@yudsuzukです。 今回は実用的なシェルスクリプトについて書きます。 GoogleのNexusやAppleのiPhone等の新製品の発表は、日本時間で深夜なため、起きているのが辛いし、いつ購入サイトが…

【PHP】たった1行コマンドを入力するだけでComposerを劇的に速くする方法【アジア圏限定】

PHPerで使っていない人はいないというぐらい、メジャーなPHPの依存管理ツールComposer。 ですが、動作が遅いという欠点があります。 Composerが遅い原因は主に下記だそうです。 packagist.orgが日本から遠い composerのアーキテクチャ的に、小さなjsonファイ…

Validation::notEmpty() is deprecated. Use Validation::notBlank() instead.

CakePHPをバージョンアップしたら以下のエラーが表示されるようになった。 Validation::notEmpty() is deprecated. Use Validation::notBlank() instead. 該当のソースコードには以下の記載があった。 /** * Backwards compatibility wrapper for Validation…

Node.jsのバージョンを管理するnodebrewを使ってみる

Node.jsを使う機会があったので簡単にNode.jsのバージョンを管理できるnodebrewを使ってみた。 自分の備忘録として。 nodebrewとは? nodebrewとはNode.jsのバージョン切り替えを簡単に行えるツールです。 最近フロントエンド開発でNode.jsを使うことが当た…

Vagrantの後継、Ottoを試してみた

HashiCorpの新プロダクトOttoはVagrantの後継と位置づけられていて、開発環境だけでなく本番環境のデプロイまで視野にいれたコンセプトとなっているようです。 試しに使ってみたので、そのログを以下に記します。 Ottoのインストール Ottoのダウンロードペー…

ISUCON5予選に参加してきました

ISUCON5の予選に参加してきました。 ISUCONとは? お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、それがISUCONです。過去の実績も所属している会社も全く関係ない、結果が全てのガチンコバトルです。 メ…

Webコミュニティサイトを運営しているすべての人の読んでもらいたい本

Web Community CGMビジネス”成功請負人”たちの考え方 Webコミュニティでいちばん大切なこと。 Webコミュニティでいちばん大切なこと。 CGMビジネス“成功請負人”たちの考え方作者: 水波桂,平尾丈,片岡俊行,斉藤徹,古川健介,伊藤将雄,大迫正治,原田和英出版社/…

清水亮さんの新作『最速の仕事術はプログラマーが知っている』感想

「IPA 独立行政法人 情報処理推進機構」から天才プログラマー/スーパークリエイターと認定されている、清水亮さんの新作「最速の仕事術はプログラマーが知っている」を読みました。 ものすごくキャッチーなタイトルですねw 私もプログラマーの端くれなので…

PHPの名前空間( namespace )のセパレーターがバックスラッシュ"\"になった理由

PHP

PHPの名前空間(namespace)の区切り文字はバックスラッシュ"\"が採用されています。 最初はエスケープに見えてすごく違和感でした。 気になって調べてみるとバックスラッシュが採用されるIRCログを発見しました。 それによると理由は以下の5つだそうです。 セ…

Vagrant で作った仮想マシンから Box ファイルを作る方法

Vagrantで作った仮想環境を他人の環境でもまるまる使えるようにする方法です。 そんなのDocker使えばいいじゃんって言われそうですが、Vagrant使っているけどDockerは習得していないという人のために。 $ vagrant --version Vagrant 1.7.2 NIC のマッピング…

【池上彰】世界で起きている大問題を包括的に知ることが出来るオススメ本

ニュース解説番組にひっぱりだこな池上彰さん。 そんな池上彰さんの新作、「知らないと恥をかく世界の大問題6 〜21世紀の曲がり角。世界はどこへ向かうのか?〜」を読みました。 (角川SSC新書)" title="知らないと恥をかく世界の大問題6 21世紀の曲がり角。…

【CentOS】迷惑メール(スパム)扱いされない為の最低限設定しておきたい3つの設定【Postfix】

さくらVPSでCentOSの環境を構築し、localhost(ローカルホスト)からPostfixでメールを送信しても、なにも設定していないと高確率で迷惑メール(スパム)扱いされてしまいます。 Yahoo!メールは幾分か緩いですが、Gmailはほぼ100%迷惑メール(スパム)扱いされます…

【チュートリアル】最新フレームワークCakePHP3でブックマーカーを作ってみる その2

【チュートリアル】最新フレームワークCakePHP3でブックマーカーを作ってみる その1 - $yuzu->log();yuzurus.hatenablog.jp 前回の続きになります。 ログイン機能の実装 ログイン機能はCakePHP2同様AuthComponentを利用します。 AppContorollerに追加しまし…

【チュートリアル】最新フレームワークCakePHP3でブックマーカーを作ってみる その1

そろそろちゃんと最新フレームワークCakePHP3を触らないといけない気がしてきたので、チュートリアルとしてCakePHP3を使ってブックマーカーを作ってみます。 環境はMacOSXにVirtualbox+VagrantでCentOS乗っけてます。 インストール PHPのインストール PHPを…

【MeCab】マルコフ連鎖テキストを吐き出すPHPライブラリを作った。

yuzurus.hatenablog.jp 前回MeCabのインストール方法をご紹介しました。 そのMeCabを使ったマルコフ連鎖テキストを吐き出すPHPライブラリを作成しました。 Packagistにも公開したので簡単にインストール出来るようになっています。 インストール MeCabのイン…

格安SIM(MVNO)とRaspberry Pi(ラズベリーパイ)でモバイルルータを作った 〜初期設定から完成まで〜

最近ジワジワ人気になってきた格安SIM(MVNO)とRaspberry Pi(ラズベリーパイ)。 今回はこの2つを使ってモバイルルータを作ってみたいと思います。 格安SIM(MVNO)とは? 格安SIM(MVNO)は非常に低価格でモバイル通信できます。 安いものだと月額500円以下のプ…

マルコフ連鎖の実験のためにMeCabをCentOSにインストール

マルコフ連鎖の実験をしたいがために、 京都大学情報学研究科と日本電信電話株式会社コミュニケーション科学基礎研究所が開発しているオープンソースの形態素解析エンジン「MeCab」 (和布蕪 めかぶ)をインストールするためのメモです。 本体をインストール $…

jQueryで$(form).submit()でフォームが送信されない場合の対処法

jQueryで、$(form).submit()などを使っても下記のようなボタンにするとフォームが送信されない場合があります。 <input type="submit" id="submit" value="post" /> <input type="submit" class="submit" value="post" /> <input type="submit" name="submit" value="post" /> submitボタンのid,class,name属性に「submit」という名前を使用すると送信できないので、使わないようにしましょう。

jQueryを使ってフォームの二重送信を防止する方法 複数ボタンの場合編

前回1つのフォームに1つのボタンがあった場合のフォーム2重送信防止方法を記しました。 今回は1つのフォームに複数ボタンが有る場合の2重送信を防止する方法を記します。 <form class="multiBtnForm"> <input class="disableMultiBtn" type="submit" name="post" value="post"> <input class="disableMultiBtn" type="submit" name="back" value="back"> </form> <script> $('.disableMultiBtn').on('clic…

jQueryを使ってフォームの二重送信を防止する方法

サーバーサイド側で2重送信されないように処理するのが一般的ですが、 jQueryを使ってsubmitボタンをダブルクリックを防止するサンプルを記します。

composer install と composer update の違い

PHPの依存管理ツールにComposerついて。installとupdateの違いについてまとめます。 各ファイルの説明 composer.json 必要となるライブラリを記載します。 composer.lock composer.jsonを元にインストールした各ライブラリのバージョンが記載されています。 …

Apacheのmod_expiresというキャッシュモジュールを使ってWEBサイトを高速化しよう

Apacheにはmod_expiresというキャッシュモジュールがあります。 クライアント側で画像やCSSなどファイルをキャッシュさせるモジュールです。 これを利用し、転送量を減少させてWEBサイトの負荷対策します。 キャッシュを利用すると負荷対策ばかりか、表示速…

gzip圧縮を使ってWEBサイトを高速化しよう

WEBサイトの高速化にはいろんな手法があります。 今回はその中でApacheやNginxなどWEBサーバの機能、gzip圧縮を使って、コンテンツを圧縮、高速化を実現する方法をお送りします。 gzip圧縮とは? gzip圧縮によるWEBサイト高速化のイメージは下記になります。…

http→httpsリダイレクトで301と設定してるのに307となってしまう問題

httpサイトをhttpsサイトに変更する機会がありました。 Apacheの設定でhttpでアクセスがあったらhttpsに301ステータスでリダイレクトとしていました。 設定は下記の通りです。 RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTPS} off…

Macbook Airが水没した時の対処法 分解からSSD救出まで

Mac

Macbook Airにホットココアをこぼしてしまいました。 コーヒーや、お酒、ココアなどの飲み物をこぼした場合はすぐに下記の行動をとってください。 Macbook Airにこぼした飲み物をすぐに拭く。 電源コードを抜く 電源を落とす 1〜2日、風通しの良い所で完全に…

【CentOS6.X】OpenSSLでオレオレSSL証明書の作成ログ

デフォルト値設定 # sed -i "s/365/3650/g" /etc/pki/tls/openssl.cnf # sed -i "s/365/3650/g" /etc/pki/tls/misc/CA # sed -i "s/1095/3650/g" /etc/pki/tls/misc/CA CA認証局の作成 # /etc/pki/tls/misc/CA -newca CA certificate filename (or enter to …

Vagrant1.5 の新機能である Vagrant Share を試してみる

Vagrant1.5 がリリースされました。 そこで追加された新機能 Vagrant Share どうやらこれローカルで立ち上げた環境に外部からアクセスできるようになるらしいです。 ってことでどんなものか試してみましょう。 Vagrant Cloudにユーザ登録 ここから Vagrant C…

【PHP】 画像が沢山あるサイトは Base64エンコード で高速化しよう

画像を使用したWEBページは通常下記のようになります。 <img src="http://example.com/hoge.jpg"> <img src="/img/hoge.jpg"> このようにURLや画像のパスを記載してクライアントに一度HTMLを返したのちに再度クライアントから画像のリクエストを送ることになります。 画像が少ないサイトであればこれでもいいのですが、大量の…

Vagrant で作成した環境で CSS が反映されない場合の対処法

昨年爆発的に流行りだして、すでに当たり前になっている Vagrant ですが、VagrantのSyncフォルダをDocumentRootに設定しているとCSS や JS などの静的ファイルの変更が反映されないという現象がおきました。 ゲストOS側ではファイル更新が反映されているので…

【Jailbreak】iPhone や iPad で Hosts ファイルを書き換える

スマートフォンサイトを作っている時、iOSはhosts設定できなく、動作確認で困ったことはありませんか? 独自に DNS をたてるのも面倒なとき。 そんなときは Jailbreak をして iPhone や iPad の hosts を書き換えましょう。 まずはJailbreak(脱獄) ここを参…

Dropbox を CUI環境の Cent OS 6.4 に インストールする

はじめに CUI環境のCentOSにDropboxをインストールしてみます。 これができればローカルでファイルを編集すると自動でリモート環境にも反映されます。 またgitのブランチをローカルで変えると自動でリモート環境のブランチも変わるので非常に開発しやすくな…

【Vagrant】Mac に 仮想サーバ( Cent OS )を構築

はじめに Macの上のVagrantにインストールしてCent OSを構築しApacheインストールまで試してみます。 VirtualBoxのインストール 公式サイトからダウンロードしてきます。 Mac なので以下を使います http://download.virtualbox.org/virtualbox/4.2.18/Virtua…

【PHP】XPATHを使ってスマートに XML 解析をする方法

PHPではよく自前でXMLパーサーやラップクラスを作ってるのを見られますが、 それはちょっと微妙だと思います。 標準関数の方が早い。 XML全体を配列にする無駄。 配列をつくるためのループ、読み出すためにまたループ、そしてその巨大配列に食われるメモリ …