サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
blog.teraren.com
Ruby on Rails, Web Services, Software Development, Startups 概要 「日本のインターネットの父」と呼ばれる慶応大環境情報学部教授の村井純さん(64)が定年を迎え、16日、最終講義があった。村井さんは「インターネットに国境はない。国や政府が分断したり規制しようとしたりする試みは続くだろうが、若い人たちで守ってほしい」と呼びかけた。 https://www.asahi.com/ 村井先生の最終講義。16年ぶりに村井先生の講義を聞いて懐かしくなりました。せっかく良いことをたくさんおっしゃっていたので人力で書き起こしをしました。(Amazonウィッシュリスト) 講義全文 共同授業担当 佐藤特任准教授(以下教員): そろそろ始めましょうか。 村井: はい。それでは皆さん、こんにちは。インターネットの、2019年秋学期の最終回ということで集まっ
背景 6000枚の画像を一括変換したかったので。普通にmogrifyを打つだけだと1プロセスなので1コアしか使ってくれないです。最近のPCは1コアの周波数を低めにして、多くのコアを積んで処理を並列に動かすことによって高速化を行うのが主流です。 アプローチ ちゃんと全てのコアを使い切って変換をする必要があります。xargsコマンドを使うと並行処理を簡単に行えます。-Pで並列数、-nで1コマンド辺りの引数の数を指定します。-nは無くても良いですが1コマンドの起動コストを減らすために指定してあげるのが良いです。ファイル名に半角スペースが入っている場合があるので、find側に-print0オプションと、xargs側に-0オプションを指定しています。 % find . -type f -print0 -name '*svg' | xargs -0 -n 5 -P 8 mogrify -format
概要 4年ほどメンテナンスしていなかった.zshrcをメンテナンスします。 1ヶ月前ぐらい、zshのplugin管理のためにantigenを入れたら、zshの起動に4秒くらいかかるようになってストレスフルだった。 しかし、便利なので我慢していた。重いのは初回起動時だけだし。。。 やっと重い腰を上げて調査と整理 見た目も色々変える。 見た目Before 見た目After やったこと zshのplugin管理にzplugを使うようにした かなり速い!すばらしい!オプションも多数!最高です。 iTerms2のカラースキーマを変更 https://github.com/altercation/solarized/blob/master/iterm2-colors-solarized/Solarized%20Dark.itermcolors 設定をダウンロードして、iTerm2にimport 設定後
概要 PHP 7がPHP 5.6と比べて2倍速いみたいな発表があったので試してみました。 このBlogはPHP7で動いています。 Changelogを見る感じだと、まだまだ大きなバグが出ているので運用環境で使うのは時期早々かと思いますが、PHP5系からPHP7系にするだけで本当に2倍速くなります。 測定環境 Wordpres4.4とZenCacheの環境です。 純粋に1プロセスの処理時間を計測するために並列数は1 運用環境に近い環境で測定したかったのでZenCacheは有効にした状態で計測 Mac OS X ページのテキスト量が多いのでgzip付きで。 測定コマンド % ab -n 1000 -c 1 -H "Accept-Encoding: gzip,deflate" https://blog.teraren.com/ PHP 5.5 + APCU Requests per second
概要 Vagrantには、provisioningという仕組みがあり、Vagrant(VirtualBox)のVMライフサイクルとVMホスト上で動くVMやコンテナのライフサイクルを簡単に管理できる仕組みがある Provisioningを使わないでDockerを管理するとなると、VMのライフサイクル毎に、コンテナのビルドやスタート、クリーンナップを自分で書かなければいけない Provisioningを使うことで、必要最低限のコードを書くだけで済む。 コードはこちらに置いてあります。 https://github.com/matsubo/vagrant-docker-provisioning/ デモ こんな感じで、2回目以降の起動は30秒でコンテナが起動します。 おまけ ほぼ同等のインフラ構成を行う、boot2docker + Docker composeも作ってみました。 -boo2dock
概要 vagrant up 一発でRuby on Railsの開発環境を構築出来るようにしました。 ローカルのファイルシステムをDocker上のアプリケーションサーバから参照しているので好きなテキストエディタを使えます。 すぐにRailsで開発を行えます。カスタマイズしたい場合はForkして頂くのがいいと思います。 dockerあれば、chef使わなくて良いですね。 初期設定 VirtualBox用のVMイメージをダウンロードします。(任意) % vagrant box add precise64 http://files.vagrantup.com/precise64.box あとは、サンプルコードをcloneしてvagrant upするだけです。 初回は30分程度かかります。 Docker imageのダウンロードとimageの構築があるので。 これでも、Containerのベースは1
Ruby on Rails, Web Services, Software Development, Startups 概要 dockerの良い感じの管理ツールがあると聞いて使ってみました。チュートリアルの動画が非常にわかりやすいので、時間がかかりますが一通り見るのが良いです。(英語ですが、たぶんわかると思います)まだUIやdockerの挙動が怪しい時がありますが、まぁ使ってみましょう。Dockerfileをがんばって書いていくより非常に簡単に1システムを構築できますよ!11人で1ヶ月で構築されたらしい。すごい! インストール % brew install http://download.panamax.io/installer/brew/panamax.rb #################################################################
multitailが便利だった。 インストール % brew install multitail 使い方。パラメータにファイル名を渡すだけ。 % multitail *.log 縦に3分割して、それぞれに適当に割り当てる場合は、-sオプションを付ける。 % multitail -s 3 *.log デモ
私は、1分ごとにcronで起動するように設定してあります。 * * * * * cd /path/to/bin/ && php main.php > /tmp/growthforecast.txt Mac OS XでCLIから温度を取得するために、Temperture Monitorをインストールしておきます。 GrowthForecastの設定 グラフはごとに、単位や係数を設定します。たとえば、小数は扱えないようなので、ロードアベレージは100倍して整数で数字を送っているので÷100します。 複数の指標を含めたグラフも作成できるので、ロードアベレージやディスク容量などの1つのグラフにまとめられる指標はまとめておきます。 Reverse Proxyの設定 Apacheの場合の設定はこちら。 <LocationMatch "/GrowthForecast/.*(edit|delete|add
RESTfulなHTTPリクエストでは、JSONでデータを返すのが一般的ですよね。 そんなJSONのスキーマが各社ばらばらで、統一感が無いけど、何かしらの仕様があるかと思って探したら、ありました。 JSON RPC 2.0 正常系なら、意識しないでデータを直接表現してしまえば良いと思いますが、エラーを表現するときにはある程度仕様に則っておいた方がクライアント・サーバの相互運用性が高まります。 2.0の仕様は2010-03-26に出ているし、1.0から長く運用されているようだし、様々なユースケースをカバーしているので、JSONをやりとりする場合は、使わない手は無いかと思います。 プロトコルの内容は以下のような感じで、すごい大枠だけ決まっているので、2分もあれば理解できるでしょう。 --> {"jsonrpc": "2.0", "method": "foobar", "id": "1"} <-
概要 PHPの標準コーディングルール(コーディング規約)は、http://www.php-fig.org/によって、PSR-0からPSR-3までのドキュメントによって細かく決められています。 そのコーディングルールに準拠するように自動的にソースコードを修正してくれるスクリプトが以下です。 https://github.com/fabpot/PHP-CS-Fixer 使い方 composerの場合、composer.jsonへ以下を追記する。 + "fabpot/php-cs-fixer": "0.3.*@dev" + "sebastian/diff": "1.0.*@dev" % php composer.phar update して、 % vendor/bin/php-cs-fixer fix <target dirctory> --dry-run </target> すると、どのように
概要 RedisのSort SetのAPIが若干使いづらいので、ソーシャルゲームでのユースケースに即したAPIでラップしました。 https://github.com/matsubo/redis-ranking インストール Composer対応してあります。 composer.jsonに以下を書いて、php composer.phar updateしてください。 { "require": { "redis/ranking": "1.0.*" } サンプルコード <?php require __DIR__ . '/../vendor/autoload.php'; use Matsubo\Redis\Ranking; $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); $ranking = new Ranking($key =
複数台のフロントエンドサーバでapacheが動いている場合を想定します。 その場合、アクセスログが複数のサーバにまたがってしまいます。 こんなかんじ。 web-01.access-log.20071130web-02.access-log.20071130web-03.access-log.20071130 webalizerやawstatsといったアクセスログ解析ソフトではこのファイルの状態では解析できない。 なぜなら、webalizerやawstatsのデフォルトでは1つのファイルのみを入力として受け付け、時系列順に記録されていなければならない。 この問題を解決するスクリプトを発見しました。awstatsの中に入っているlogresolvemerge.plというperlスクリプトです。 使い方は超簡単。引数に統合したいファイルを指定して実行すると、標準出力に時系列順にそろったレコードが
概要 ディザスターリカバリ対策に、1時間ごとに社内の重要データをリモートへrsyncを使って転送しています。rsyncを普通に実行すると可能な限り高速に転送を行うため、CPUやネットワークがボトルネックになります。bwlimitオプションを使って帯域制限をします。 bwlimitに指定する値の単位がKBPS(キロバイト/秒)です。普通、ネットワークはMbps(メガビット/秒)で表記するので変換に注意する必要があります。 以下に簡単に変換表です。 100Mbpsなら、12500KBps10Mbpsなら、1250KBps1Mbpsなら、125KBps500kbpsなら、62.5KBps 実行例 bwlimit指定無し 1.3MBps(約10Mbps)で転送。100BaseTで構築されたLANでの転送の場合とか。 [matsu@dev1 ~]% rsync -vau -e ssh sv2.tar
概要 WP Super Cacheに置き換わる最近の主流キャッシュプラグインを紹介します! Quick Cache ( A WP Super Cache Alternative ) 訳:サイト高速化プラグイン。Wordpressサイトを高速化したいなら、必ずインストールすべき! インストールと設定 動画でもご覧いただけます。 w3c_validator DoCoMo SoftBank WILLCOM mixi-mobile-converter UP.Browser Playstation PDA iPhone iPad Android BlackBerry ※本来ならMD5 Version Saltでキャッシュキーを振り分ければいいのですが、挙動が安定していないので携帯、スマフォでアクセスされたときにはキャッシュを無効にします。
このページを最初にブックマークしてみませんか?
『Matsubo Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く