サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
toritori0318.hatenadiary.jp
本当に久しぶりにYogafireをリリースしていました。 github.com ※イメージで使ってるEC2やACCESSキーは削除済み Yogafireについて AWSを便利に利用するツールです。主にEC2周りのツールなので、最近の利用頻度としては多くないかもしれないですね。 古いですが、詳しくは以下の記事が参考になると思います。 YogafireというAWSツールでヨガの奥義を極める - Perl勉強メモ アルパカDiary出張版 AWSでsshするならyogafireも便利 - Perl勉強メモ アルパカDiary出張版 Yogafireがバージョンアップしてさらに捗る! - Perl勉強メモ アルパカDiary出張版 今回のリリースについて 最近のEC2の認証の主流としてACCESS_KEYを利用しない方向になっています。 また直接のsshではなく、ssmを経由したログインも推奨され
※レポート遅すぎてすみません! isucon12、チーム「パカパカアルパカ」として初本戦に出場しFailで終了してきました!残念! チームメンバーのブログもありますので是非ご参照くださいませ。 techblog.tver.co.jp テーマ ISU CONQUESTというソシャゲアプリケーションのチューニングでした。 すでに公式から 解説記事が出ているのでそちらを見ていただいくとわかりやすいと思います。 開始早々サーバが5台あることが判明し、これは分散がキーになりそうだな?という想像がつきました。1 自分のやったこと 序盤はいつもどおり足回り系と、モニタリング系の準備。 また予選では複数デプロイスクリプトがいまいちだったので、それも今回事前に用意しておいてシュッと複数サーバにデプロイ出来るようにしておいたのは良いポイントでした。 あとalpのregex集計が便利すぎて「alp便利〜」とずっ
昨年と同じく前職TVer同僚の @わんこ と @teraken とチーム パカパカアルパカ として isucon12 に参加してきました! 昨年、そして数年前もいつも良いところ(30-40位くらい)で本選出場できなくて悔しい思いをしてきましたが、今年はついに初本選出場出来ました!嬉しい! スコアは 30616 でした(最高 35383)。14位でした。 isucon.net 最終構成 こんな感じ。サーバ分散ほとんどできてないのが悔やまれる… App1 Nginx / Goアプリ / SQLite / MySQL / Redis App2 Goアプリ / SQLite (結果的にはちょびっとだけ負荷分散されてる気がする) App3 なにもしてない (本当はapp2と同じ構成にするつもりだったけど app2 が想定より使われなかったので却下) なお、SQLiteのMySQL化は しておりません
一時、悲しすぎるツイートで話題になった pradahan vikas (@daisuki_vikas) | Twitter だいすき日本 というネパール料理店があります。 そしてこのコロナ禍で再度経営に影響があり、最近お取り寄せで通販を開始したようです。 詳しくはこちらの記事をご覧ください。 rocketnews24.com ただしこの通販、難易度が結構高いのです 😅 そこで通販の方法を詳しく解説してみたいと思いますw お取り寄せフロー 【前提】やりとりはすべて ひらがな or カタカナ で行います 例外として、名前と住所は漢字 Twitterをフォローします Twitter DMで 「おとりよせしたいです!」と送信します 返事が来たらTwitter DMで以下の内容をお知らせします お取り寄せしたい商品を記載します 例: カレーにくまん2こ、キーマカレー4こでおねがいします! ビカスさ
2020/5/6 追記 ベンチマーク結果に mset / sadd / zadd / hset / lpush / lrange 300 を追加しました Redis 6系がリリースされましたね! mag.osdn.jp やはり気になったのは「マルチスレッド対応」という文字。 Redisといえばシングルスレッドでしたが、今回の対応がどういうものか?パフォーマンスにどの程度影響するのか?が気になったので軽く調べてみました。 redis.confの説明文 redis.confに THREADED I/O の頁が追加されています。 要約するとあくまで I/Oアクセスをマルチスレッド化 する対応のようです。 1 スレッド化なし/あり時の実際のプロセスの様子 io-threads=1の時 io-threads>1の時 スレッド表示OFF スレッド表示ON きちんとスレッド化されている様子がわかりますね
最近Facebookがパスワードを平文で保存しているというニュースがありましたね。 jp.techcrunch.com またシステム的に保持していなくても、意図せずアクセスログに情報が残ってしまうことも考えられます。 その対策として安全にアクセスログのマスク処理を行う lua-resty-querymaskというモジュールをご紹介いたします。 使い方 OpenResty のモジュールとして動作します。 以下、README のSYNOPSIS のママです。 local querymask = require "resty.querymask" local q = querymask:new({ mode = "writelist", mask_part_string = "*", mask_part_length = 3, mask_fill_string = "*MASK*", mask_
OpenRestyで動的生成されたコンフィグファイルをLuaで読み込んで云々、という処理を行っているのですが、 その際Nginx側で表題の「pread() read only xxxx of xxxx from xxxx」といったエラーが表示される事案がありました。 状況まとめ 特定の環境のみ表示 突然エラーが出始めた 同じロジックで、過去にエラー表示されたことはない しばらく(1分くらい)するとエラーでなくなる ググる 以下の2つのリンクが引っかかりました。 https://www.scalescale.com/tips/nginx/nginx-pread-read-only-of-from-errors/ forum.nginx.org 引用ですが Investigating my Nginx configuration I found this may be related to t
2017年 いろんなことがあったけど、振り返ってみると自分にとっては総じてあまり良い年ではなかったなーと思う。 前厄 でした😇 仕事 総評 言い訳にはなるのだけど、運用しながら新しいことをやるというのはとても難儀だった。 会社としてもとにかく動きが激しくなりはじめ、こなすことで精一杯。 自分としてやりたかったことが全然出来なかったのが悔やまれる。 あっ、あと昨年は病欠しなかったみたいです。小学生か! ロール なんとなくチームリーダー的なことをしてたんだけど、 中旬あたりからid:muddydixon がJoinしてくれてからは自分のロールも変わったこともあり現在はほぼおまかせ。 マネージメントやチームビルディングに関してはもともと得意分野ではなかったのだけど 「どうすればチームとしてプロダクトに貢献できるか/エンジニアがやりやすい環境をつくれるか」 を考えるのは体験としてはなかなか面白か
この記事は 富士そば Advent Calendar 2017 の20日目の記事です。 ところで、今年ももう終わりだというのにこの記事がこのブログの今年初の記事ですよ。サボりすぎててひどい(一応技術的なのはQiitaとかに書いたりはしてるんですよ…) コロッケそば コロッケそば好きなんですよ。あるとついつい頼んでしまう。 ちなみにそばで一番好きなのは春菊天そばです。置いてるとこなかなか無いのですが… 僕と富士そば 先にお話しておくと、実は僕は小諸そば派なんですね。1 あっ、そういえば一人で 小諸そばAdvent Calendar 2017 というのをやってたりしています。楽しい。 ただもちろん富士そばも好きですよ。何派だっていいじゃないですか。そば好きに国境はありません。 で、今回久々に富士そばを頂いたんですね。最近小諸そばしか食べてなかったので、より富士そばを味わうことができました。 す
nginx実践入門 (WEB+DB PRESS plus)posted with amazlet at 16.01.31久保 達彦 道井 俊介 技術評論社 売り上げランキング: 18,258 Amazon.co.jpで詳細を見る この度はご恵贈いただきましてありがとうございます。 途中からですが、自分もレビュアーの一人として参加いたしました。 本書についての雑感 Nginx入門ではなく、Nginx実践入門というタイトルからも分かる通り より実践向けの内容となっています。 ターゲット層としては 「一通りNginxを触ったことがあるが、さらにNginxを使いこなしたい人向け」 といったところでしょうか。 特に後半 第5章 安全かつ高速なHTTPSサーバの構築 第6章 Webアプリケーションサーバの構築 第7章 大規模コンテンツ配信サーバの構築 第8章 Webサーバの運用とメトリクスモニタリング
※2015/08/29 追記 現在DockerToolboxでVirtualBoxもインストールすると最新の5.0.2がインストールされますが このバージョンがDockerMachineと相性が悪く、VMが起動しないという罠があります。 https://github.com/docker/machine/issues/1716 VirtualBoxのバージョンを5.0.0に下げるか、 こちらから次期テストバージョンの5.0.3をインストールしましょう。 まずはじめに、足を運んでお聞きいただいた皆様ありがとうございました。 30分(トークは20分)にこれら3つのツールを紹介するにはボリュームが少し多すぎた感があり きちんと伝えたいことが伝わったかどうか不安。。 また、QA時に英語で質問されテンパってしまってきちんと回答できず、質問していただいた方に大変申し訳なく思っております。。 QA時に回
http://connpass.com/event/10424/ 弊社にて、テレビ連動サービスに特化した勉強会を開催しました。 で、自分も発表してました。 スライドはこちら。 http://www.slideshare.net/tsuyoshitorii5/public-43549341 TV連動サービスのリアルタイム通知を支える技術 from Tsuyoshi Torii 時間配分全然わかってなかったので、(特に後半)かけ足になってしまいました。 申し訳ございません。 デモの辺りの補足 背景 そもそもだいぶ前から 「こういう感じでsocket.ioコンテナ化して自由に上げ下げできると面白いな。 で、実際どうなのかな?実運用できそう?」 ということを考えていました。 そして今回いい機会なので急ぎでプロトタイプ書いてみたところ なんとなく上手くいったのでデモとして公開してみました。 またこの
毎回ドキュメント見つつ実行するのがダルいのでメモしておく。 7.10.x 以降: 手順 これだけでOKになりました:) # ubuntuバージョン sudo apt-get update sudo apt-get install gitlab-ce7.9.x 以前のバージョンから上記手順に移行したい場合は 普通に最新版install手順から繰り返せばそのまま移行することができます。 https://about.gitlab.com/downloads/ ※一応前バージョン移行手順も残しておきます 7.9.x 以前: 手順 1. 最新バージョンのGitlabダウンロード こちらのページから最新バージョンを確認し、ダウンロードをしておきます。 https://about.gitlab.com/downloads/ ex) Gitlab-7.6.2の場合 wget https://downloa
isuconアプリを書いてみましたシリーズ。 生でOpenresty+Luaで書いても良かったんですが せっかくなのでLapisというWebフレームワークを使ってみました。 実は自分も初触り。 最初にLapisの概要など http://leafo.net/lapis/ LuaのWebアプリケーションフレームワークです。*1 バックエンドはOpenresty(Nginx)を利用しています。既に速そうな感じがしますね…! WebFrameworkBenchmarksでも割と上位にいます。 Lapis、実は生のLuaスクリプトではなく moonscript で書くのを推奨しているようです。 JavaScriptにおけるCoffeeScriptのようなものですね。 構文も似ているのでJS書いている人には取っ付き易いかもしれません。 コーディング/サーバ起動 moonスクリプトを書いたあとに moo
Lua Advent Calendar 2014 7日目の記事です。 wootheeというUA解析プロジェクトを最近知ったのですが、 Lua版が無さそうだったので書いてみました。 本当はLua単体で動くようにしたかったんですが、諸事情によりOpenresty依存となっております。 理由は後述。 ちなみに書いた動機など。 ちょうど、エンドユーザのUA解析してDB登録したりゴニョゴニョ出来たらいいなーと思っていた Nginx+Luaを書き始めているが、がっつりLuaを触っていたわけではないのでライブラリっぽいのも練習がてら書いてみたかった 期待された https://twitter.com/songmu/status/525610905946447872 リポジトリ https://github.com/toritori0318/lua-resty-woothee 使い方 READMEそのまま
↓こちらに移動しました! http://www.adventar.org/calendars/681
※2015/4/17 GitLab7.9 / Drone0.3 版に記事をアップデートしました。 Drone0.3で大きく変更されたため、手順もだいぶ変わっています。 今回の手順で主な変更点としては以下の様なものがあります。 GitLabでDroneアプリケーションを登録する必要がある Drone側でリポジトリをsyncする機能が追加され、その中から選択する方式になっている Herokuへのdeployについて、0.3からsshキーではなくAPIキー(token)を用いる方法に変更されている GitLab+OSS版DroneをEC2に0から構築し、herokuにCIする という環境を10分くらいで作ってみます*1 また、すこしだけDroneについての説明もメモ程度ですが書き記しておきます。 GitLabとは/Droneとは GitLabはGitHubクローンのOSSです。 DroneはTr
さよならインターネット:CircleCIでDockerコンテナに対してansibleを実行しserverspecでテストをする こちらの補足エントリです。 OSS版Drone.io https://github.com/drone/drone drone.io のオープンソース版です。 Golang+Dockerで実装されているCIサービスです。 社内用のCIサービスとして使い勝手良いのでJenkinsの変わりに結構利用しています。 .drone.yml リポジトリにこんなの置いておきます。 Droneではgit入りのイメージが必要なので、今回はDockerRegistry上の別イメージで実行してみました。 2回目以降は前回pullしたイメージを使いまわすので速くなります。 image: tvservices/ubuntu-ansible:13.04 script: - echo "sta
http://www.slideshare.net/tsuyoshitorii5/yapcasia2014-2-public (※一部素材を変更しています) TV連動サービスの運用ってこんな特徴があって それに合わせていろいろ運用改善したぜ〜、 という話をしてきました。 結構ボリュームが多くなってしまって 限られた時間でうまく説明できたかどうかいまいち自信がないのですが、 「へぇ〜、そんな感じで運用してるんだ〜」 というニュアンスだけでも伝われば嬉しいです。 足を運んで聞いて下さったみなさま、ありがとうございました!!! 明日もまだまだYAPCは続くので存分に楽しみたいと思います〜 ちなみに株式会社バスキュールは フロントエンド/バックエンド問わずエンジニアを随時募集しているようです。 もしご興味がある方いれば是非お声がけください!
はてなブログさんの開発フローのお話 少し前の話になるんですが、GitHubKaigiで はてなブログさんの開発フローについて発表がありました。 その中で 当初はGitHubとRedmineを併用していたが、 両ツールの連携がイマイチだったので Redmineを止めてホワイトボードでタスク管理するようにしたという内容がありました。 https://speakerdeck.com/shibayu36/hatenaburogutimufalsekai-fa-hurotogithub 「ふむふむ、なるほどなぁ」という感じで非常に勉強になったのですが、 もしかしたら 「"GitLab+Redmine" ならツール自体が連携機能を持っている」 のでもう少しマシになるのかも?とも思いました。 そこで、GitLabとRedmineを使うと 一体どういうことが出来る様になるのか?といったところを紹介してみま
前回の記事(GitHubクローンのGitLabを5分でインストールした) が 思いのほかブクマされてしまったので補足記事を書くことにしました。 インストールした後に設定したほうが良い項目とミドルウェア競合検証、 その他Tipsなど書いてみました。 公式ドキュメント 以下、記事で書いていることはほぼすべてドキュメントにも書いてあります。 ご参照下さい。 https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration コンフィグファイル準備 事前に /etc/gitlab/gitlab.rb を用意しておきます。 このファイルはGitLabをインストールする前に手動で作ってしまって構いません。*1 sudo mkdir -p /etc/gitlab sudo touch /etc/gitlab/g
※2015/6/22 最新版の手順に更新 ※2015/1/7 アップグレードについての記事を書きました http://d.hatena.ne.jp/toritori0318/20150106/1420558625 ※2014/5/24 補足記事書きました http://d.hatena.ne.jp/toritori0318/20140524/1400955383 で、お決まりのパターンでOSSに流れて、 GitLabとかやってみたんだけど、むっちゃムズいのねあれ。 まともにインストールできん。 http://d.hatena.ne.jp/rela1470/20140520 「GitLab インストール」 でググるとたいていまともにインストールしようとしている記事が見つかって なにこれ使うまで面倒すぎ! ってなりますよね。かつての自分もそうでした。 しかし最近のGitLabはRPMが提供され
Redisは様々な型をもっているので 単純な集計(increment)は結構柔軟にできたりします。 ですが、後から条件付きでクロス集計したい時があると思います。 Redisにはビット演算するコマンドがあるので それを使っていろいろな集計をしてみました。 ビット関連コマンドリファレンス GETBIT/SETBIT Redis 2.2.0以降が必要。 ビットのオフセットに対してフラグを取得/設定します。 GETBIT key offset SETBIT key offset value(1/0) BITCOUNT Redis 2.6.0以降が必要。 キーに対するビットカウントを取得します。 BITCOUNT key [start] [end] BITOP Redis 2.6.0以降が必要。 複数のキーに対してビット操作を行うことが出来ます。 集計にはこの操作を使います。 BITOP opera
※元ネタはこちらです http://soh335.hatenablog.com/entry/2013/02/10/011039 http://hisaichi5518.hatenablog.jp/entry/2013/02/01/003820 soh335さんのリポジトリをforkし、 DropboxAPIを利用してDropbox内の写真を表示するように改造してみました。 この拡張でやれること Dropboxのアプリフォルダにある写真をシャッフルして表示 Dropboxの「Camera Uploadsフォルダ」内の写真を時系列に表示(ペンディング中) 最初は後者をやりたくて始めたんですけど、DropBoxAPIの仕様によりペンディング中です。 理由は後述。 準備(アプリ編) ダウンロード 適当なフォルダで以下のコマンドを実行して下さい。 git clone https://github.c
※2014/07/02 T2インスタンスタイプとの比較 を追記しました。 ※2014/03/13 他インスタンスタイプとの比較/m3.mediumの検証 を追記しました。 こちらの記事の二番煎じです。 cgroupで、お手軽CPU使用率制限 なるほど。 リソースにLimitかけるとstealを防げるためパフォーマンスも上がるというわけですね。 どのくらい変わるのか実験してみました。 cgroup前準備 sudo yum install libcgroup sudo chkconfig cgconfig on sudo service cgconfig start cgroup設定 上記参考URLとほぼ同じ設定です。 実行時はcpu.cfs_quota_usを変動させて比較してみました。 sudo vi /etc/cgconfig.conf # 以下を追加 group limittest {
Skype や IRCなど、チャットツールは サービス開発のコミュニケーションツールとしては無くてはならないものである。 しかし時として、場の空気が重くなることもあるだろう。 そんな時、一筋の光をもたらすようなbotがいたなら。。。 時に笑いを提供し、時には場の空気を読まない悪戯小僧のような存在。 そんなライブラリ書いた。 リポジトリ https://github.com/toritori0318/p5-toy 基本的には「おもしろ画像URL」をランダムに返すだけのライブラリなので、 どのチャットツールでもご利用可能です。 unazusanを利用していれば、exampleをコピペするだけですぐに投入できるでしょう。 プルリクも大歓迎! 画像取得用サービス一覧 ちくわぶ画像検索 キーワードなしでも、キーワード付きでも検索可能 一番いい仕事する LGTM.in 地獄のミサワ 飯テロ Tumbl
attributeファイルのオーバーライド 公式レシピを使う場合に、attributesファイルの一部のパラメータだけ更新したい時があると思います。 jsonでいちいち指定しても良いんですが、共通で設定したいパラメータは site-cookbooks以下にattributesファイルで書いておきたいこともあります。 その場合、今までは馬鹿正直にオリジナルのレシピを丸々コピペして一部だけ更新する、 といったように使っていたんですが*1 include_attribute使えば簡単に書けるのでは?と思った。 nginxの場合 いままではベタ書きしてたのを… site-cookbooks/nginx/attributes/default.rb # オリジナルのattributes/default.rbをコピペ default['nginx']['version'] = '1.2.9' defau
プロダクトでWebサーバ上の現在時刻出したい要件がありました。 これぐらいの処理ならアプリケーション介さずともnginxだけでやりたいですね。 現在時刻ヘッダーにつけるならnginx標準機能で出来そうなんですが、 深淵なる理由からコンテンツとして欲しいとのこと。 今後、Nginx+Lua試してみたいなーという要件もありましたし、 せっかくなのでこの機能をLuaスクリプトで書いてみることにしました。 NginxでLuaを動かす環境 まず環境整えるのが若干大変でした。*1 以下のような手順でインストールするようです。 LuaJITインストール ngx_devel_kitインストール lua-nginx-moduleインストール ライブラリのパスなど気をつけないとハマるかもしれませんね。 nginxレシピ opscodeのnginxクックブックにはluaをインストールするレシピもありました。 し
SQLAlchemyで 「更新はMasterDB」 「参照はSlaveDB」 ということを実現したかったので調査メモを残しておく。 カスタマイズSessionクラスを作ってその中でMaster/Slave判定すれば良いようだ。 サンプルアプリケーション Flask使ってみる。 config.py # Master / SlaveのDB情報を書いておく SQLALCHEMY_ENGINES = { 'master' : 'mysql://dbuser@192.168.0.1/appdb', 'slave1' : 'mysql://dbuser@192.168.0.2/appdb', 'slave2' : 'mysql://dbuser@192.168.0.3/appdb', } database.py # encoding:utf-8 from sqlalchemy import creat
次のページ
このページを最初にブックマークしてみませんか?
『アルパカDiary Pro』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く