という話

技術ブログにしたい

Route53+DNS-01のLet'sEncryptを自動更新する

ググると日本語の記事も結構出てくるんですが、どれも私の環境ではうまく動かなかったので自分なりにやりました。 前提 CentOS7 certbot、certbot-external-authインストール済み awsコマンドがインストール済み aws configure 済みで、Route53の権限を持っ…

法律の刑罰を比較出来るサービスを作った

compalex.siteきっかけはなんかの過労死ニュースで見た、企業への罰金が50万だったという記事。 もちろん損害賠償があるんだけど法律的には罰金50万で済むということに衝撃を受けた。それと同時期に漫画村とかで著作権違反のことが話題になってたときに調べ…

ヘッドレスChrome+Selenium+Pythonでファイルダウンロード

業務に必要なレポートを毎日ダウンロードして加工して別レポート作成する、 みたいな作業を自動化して欲しいとのことでSeleniumでサクッと作ろうと思ったんですが、ヘッドレスChromeだとデフォルトではファイルダウンロードができなくて半日費やしました。そ…

AMP対応するまでに失敗したこと

自社サービスをAMP対応したので、その最中に失敗した事のメモです。 AMPとは www.ampproject.org 失敗したこと レスポンシブで縦幅固定の枠に画像を表示したいなら amp-img は使わない サードパーディで専用のコンポーネントがある場合がある #development=1…

PHPでベースラインJPEGをプログレッシブJPEGに変換する

fa-works.com上記の記事を見るまでそもそもベースラインjpegとプログレッシブjpegの2つがあること自体知らなかった・・・。 とにかくプログレッシブjpegのほうが有利なようなのでPHPでベースラインjpegをプログレッシブjpegに変換してみます。 ほぼここに書…

2ヶ月前話題になったiOS9の広告ブロックは今のところインパクト小さめだった

gigazine.net2ヶ月前に広告業界の人達を震え上がらせた?やつですね。開発してるサービスも広告が収入の大きな部分を占めてるのですぐに広告ブロック入れてる人を集計するようにしましたが、 今のところ影響は少ないです。10月6日からイベントをGoogleAn…

Chromeで画像に-webkit-filterを適用した時のバグのような挙動

Chromeのバージョン45.0.2454.85の話です。 スマホ版では確認出来なかったのでPC用のChromeのバグだと思います。 原因 以下の様なCSSをかけて画像を少し明るめに表示してました。 img { -webkit-filter: brightness(1.05); }この状態でスクロールをしていく…

LINE DEVELOPER_DAY 2015に行ったが桁違い過ぎて参考にならなかった #linedevday

LINE DEVELOPER DAY_2015 Tokyo こちらのイベントに幸運にも抽選で当たったので参加させて頂きました。LINEのデベロッパー達が遭遇してきた問題への対処などが聞けるって書いてあったので、これから俺も通る道なのかな!と奮って参加したわけですが完全に場…

PHPでEC2が使ってるIPアドレス帯を取得する

EC2の東京リージョンが使ってるIPを取得する必要があった時のメモ。 https://ip-ranges.amazonaws.com/ip-ranges.json 上記のURLでAWSが使ってるIPアドレス帯を取得できる。 $json = file_get_contents('https://ip-ranges.amazonaws.com/ip-ranges.json'); …

ある要素が画面内に入ったらGoogleAnalyticsにイベントを送信する

同僚から聞きましたが、今の広告業界では1インプレッションは画面内に表示された回数らしいです。 PV=インプレッションの時代は終わってたんですね。。そんな感じで動作するものを実装しなくてはいけなくなったのでメモ。 いつも通りjQuery使います。 宗教…

リダイレクトするときにfile descriptor out of range: Permission denied

crontabにタスク書いたのに実行されなかったときのメモ。 エラー内容をコピペしてググっても全く出てこないので。PHPで作ったタスクに */5 * * * /usr/bin/php test.php 12345>>/var/log/test.log 2>>/var/log/test_error.log みたいな感じでcrontabに書いた…

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【準備編】

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