という話

技術ブログにしたい

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

9ヶ月で月間1000万PVにスケールするまでに躓いたこと

2月にベータ版を公開してから、9ヶ月(2014年11月)でPVが1000万を超えた記念。 サービスがスケールするにつれて、ググっても同じ悩みを持つ人が少なくなっていって問題解決に時間がかかった。 参考になるかは分からないけどメモ。 そんなの当たり前だろ!っ…

3ヶ月AWS使ってでハマったこと

EC2とRDSとElastiCache位しか使ってないのでそんなにありませんけども、一応メモ。 RDS Storage TypeにGeneral Purpose (SSD)というのがあるが、これは気をつけたい。 これを選択した状態でAllocated Storageを100GB未満の数値にすると性能が著しく落ちる時…

構造化データを追加したらGoogleさんがいっぱいクロールしてくれた

構造化データってのはschema.orgとかmicrodataとかってやつです。 リッチ スニペットと構造化データについて - ウェブマスター ツール ヘルプ schema.org に関するよくある質問 - ウェブマスター ツール ヘルプ 色々小難しいことが書いてますが、僕は「HTML…

yum updateしたらtwitteroauthがエラーになる

CentOSでtwitteroauthを利用してる方は注意が必要かも。これを書いてる時点で最新?のnss (3.16.1-7.el6_5)にアップデートすると、twitteroauthがエラーになります。 twitteroauthに限った話しじゃ無いと思いますが、調べてないのでとりあえず。 経緯 Twitte…

ネットワーク初心者が、さくらクラウドからAWSに移行した時のメモ

ネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ1【準備編】 - なりせなるてずこの記事を4月に書いてからたった5ヶ月ですがAWSに半分移行しました。 AWSに移行するきっかけ 嬉しいことに自社サービスが順調に成長してて、アクティブユーザー…

FuelPHPで全てのコントローラーにフィルタをかける

全部のコントローラーで決まった処理、例えば認証処理とかを行いたい場合、Symfonyみたいな全部のコントローラーにかかるフィルタが欲しいところですが、用意されてないようです(見つけられてないだけかも)なので今までずっと、それぞれのコントローラーに…

FuelPHPで画像圧縮と圧縮率

webページの表示速度を上げるうえで必ずネックになる画像。 圧縮するとどのくらい変わるものなのか調査してみました。 FuelPHPで画像圧縮 いつもどおりFuelPHPです $filepath = 'image.jpg'; Image::forge(array('quality' => 90))->load($filepath)->output…

Chromeで日本語変換中の文字色が変わる時の対処

Chromeアップデートしたら日本語変換中に文字が消えてしまい、調査した結果。 Chromeのバージョン36から変換中の文字に、選択時の文字色CSSが反映されるようになったみたいです。 つまり日本語変換中に文字色が変わる場合は::selectionでcolorなどを弄ってる…

日本語ドメインからfile_get_contentsを使ってHTMLを取得する

file_get_contentsって日本語ドメインに対応してないので、 $url = 'http://日本語.jp/'; $html = file_get_contents($url); echo $html; とかやろうとすると PHP Warning: file_get_contents(http://日本語.jp/): failed to open stream: php_network_getad…

HTML5で背面カメラを取得する

HTML5が世に出て久しく立ちますがあまりカメラを使ったサービスって見ないですね。 ピントが合わせることが出来なかったり対応してるブラウザが少ないのが原因だと思いますが。。。「HTML5 カメラ」とかで検索するとgetUserMediaを使ってカメラ映像を取得し…

FuelPHPでEXIF情報を読み画像を回転させる

iPhoneで撮った画像をサーバーにあげて表示すると、全て横向きで表示されます。 これはEXIFの情報で縦にしてるからなんですね。知らなかったです。ということでEXIF情報を読み込んでFuelPHPで角度にあった回転をさせます。 public static function exif_rota…

料理を美味しく見せるためのCSSフィルター

CSSフィルターって名前だけは聞いたことあったんですが、こんなに色々出来るんですね。。・グレースケール ・セピア ・色相 ・明度 ・彩度 ・透明度 ・階調の反転 ・コントラスト ・ドロップシャドウ ・ぼかしCSSさんナメてましたごめんなさい。CSS3のフィル…

InstagramAPIのタグ検索で次のページを表示する方法

instagramのAPIを使って写真を取得する方法 : matsudam blog このページを参考にアプリケーションを登録します。この情報だとちょっと古くてアクセストークンが取得できないので別のやり方で取得します。Instagramにログインした状態で以下のページにアクセ…

git commit前にGruntでCSSとJSをminifyしてaddしてcommit

GoogleのPageSpeed Insightsとか使うと必ずJavaScript を縮小するとCSS を縮小するって怒られませんか? 僕はよく怒られます。なのでGruntとかいう凄いツールを使って怒られないよう頑張って見ようと思います。 したいこと ・CSSとJSのminify(圧縮)して*.m…

ネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ4【Fileサーバー編】

前回のネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ3【DBサーバー編】 - なりせなるてずからひき続きです。 今回で最終回です。前回までの構成で以下のようになりました。 今回はファイルサーバを構築します。 NFSとは NFSとはWindowsで…

ネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ3【DBサーバー編】

なんか準備編がホッテントリに載ってるし。 続きを書かねば・・・(使命感) 前回のネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ2【webサーバー編】 - なりせなるてずから引き続きです。 前回までの構成で以下のようになりました。 今回…

MariaDBで値が同じレコードをorder byしてlimitを指定するとlimit値によって取得出来るデータが変わる

MariaDBのバージョン mysql Ver 15.1 Distrib 10.0.10-MariaDB, for Linux (x86_64) using readline 5.1 MariaDB [test]> desc test_table; +------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Ex…

ネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ2【webサーバー編】

前回のネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ1【準備編】 - なりせなるてずから引き続きです。前回までの構成で以下のようになりました。 今回はwebサーバー2台と、負荷分散のためのロードバランサ1台を構築します。 ロードバラン…

ネットワーク素人が、さくらクラウドで負荷分散構築した時のメモ1【準備編】

本来ならネットワーク管理者みたいな人がいて、その人にやってもらうほうが安全・安心なのですが、そうもいかない状況でプログラマがサーバー構築することも珍しくないと思います。今回まさにそんな状況で、自分なりに勉強して試行錯誤して構築したメモです…

motdを画像から作るジェネレータ作った

Qiitaでmotd に Dragon Quest のキャラクターのドット絵を表示させる (何故か削除?されてます)ってのを見て、画像から作れたらいいなーと思ったんですが、ジェネレータが見当たらなかったのでテキトーに作りましたMotd generator - create am motd from i…

グロースハック勉強会に行ってきた

去年あたりからバズワードになってて気になっていたグロースハックについての勉強会に行ってきました。nanapi×VASILY×ランサーズ グロースハック大勉強会!!【グロースハックを支えるチームづくりと実践手法】 - dots. KDDI ∞ Labo が定期的に開催してる勉…

PHPでXMLをパースして中身全てを連想配列にする

PHPでXMLをパースして使おうと思うとsimplexml_load_stringとかがあるんですが、これだとSimpleXMLElementクラスのオブジェクトが返ってくるので非常に使いにくいです。SimpleXMLElementオブジェクトは配列にキャスト出来るんですが、子要素がオブジェクトの…

GoogleMapsAPI v3でマーカーを動かして住所を取得する

Google Maps API v3を使いマップを表示させて、住所で検索してマーカーを立て、マーカーを動かしたら住所を取得し直すものを実装した時のメモ やりたいこと ・モーダルウィンドウ上にマップを表示 ・住所や地名で検索しマーカーを立てる ・マーカーをドラッ…

Firefoxとsafariではてなブックマークボタンが時々表示されない

Firefoxでは「false」と表示されsafariでは何も表示されない。 Chromeでは正しく表示される。厄介なのは症状の出るタイミングが良くわからないということ。 同じページでも出ることもアレば出ないこともある。 10回リロードしたら3回くらいしか表示されない…

複数のソーシャルボタンを設置し動的に呼び出す

サイトシェア用と記事シェア用に、同じ種類のソーシャルボタンを置くことになった時のメモ。ソーシャルボタンは一つ置くだけでかなりレンダリングに時間がかかるので、記事シェア用は静的に設置し、サイトシェア用は動的に呼び出すようにした。動的に呼び出…

Google画像検索APIで画像を検索しjQueryプラグインでPinterest風に並べる

お仕事で今更ながらGoogle画像検索APIを使ったのでメモ。 取得した画像を今流行(もう廃れてる?)のPinterest風にレイアウトしてみます Googleの画像検索API URL : http://ajax.googleapis.com/ajax/services/search/images 上記のURLに色々パラメータを付…

Chromeで画像を拡大・縮小すると汚くなる事がある

人間の記憶は本当に曖昧なもので、3ヶ月位前からな気がしますがそうでも無い気もします。 前は綺麗に表示出来てた記憶があるので例によってアップデートでそうなったのだと思います。 気づいた原因でもあるChromeのホーム画面で真ん中に出る画像を、拡大縮…

fuelphpのマイグレーションでvarchar型、text型にインデックスを付ける

fuelphpのマイグレーション機能で苦戦したのでメモ。 環境 fuelphp : 1.7.1 PHP : 5.3.3 mysql : 5.5.34 charsetをutf8mb4にしたため普通に \DBUtil::create_index('table', 'text_data'); とかやると Index column size too large. The maximum column size…