You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
acidlemonです。今日はもうなんだかいろんなところに記事を書かなきゃならなくててんてこまいとなっております。 さて、最初に告知です。 毎週カヤック技術部では金曜日の夜に技術部勉強会を行っています。今週末はISUCON3の優勝チームのtagomorisさんとkazeburoさんをゲストにお迎えして、出題担当のfujiwaraとともに今回のISUCONを振り返ってもらい、せっかくだから外部の人をバンバンよんで酒のみながらLTとかもしてもらっちゃおう! みたいな感じになっています。 追記(2011/11/11 20:15): kazeburoさんのスケジュールも確認取れましたので追記しました ということで、ISUCON3反省会というイベントを立てましたので参加希望の方はこちらから参加表明をおねがいします。費用はカヤック持ちで参加無料となっておりますので好きなだけビール飲んでいってください!
Web アプリケーションのパフォーマンスコンテスト ISUCON 3 に参加し、2 位の成績となった。どのような状態で当日を迎え、どのような作業を行ったのかをまとめる。 私自身はこれで三度目の ISUCON 参加となるが、今回チームを組むメンバーはみんな初めての参加ということもあり、事前の打ち合わせでは以下のようなことを話していた: これまでの大会の説明と典型的なアプローチ 同時に、過去にとられた戦法は参考程度であること、あくまで現物のアプリケーションを元に戦略を立てるべきでアプリケーションやミドルウェアを事前に決めることは危険であるということは強調 よく使われるミドルウェアの概要、メリット/デメリット 主要機能のほか、キャッシュ部分の永続性の有無(単純に考えればメモリだけで処理してファイルに書き出さない方が早いが、ベンチマークをまたいでキャッシュを引き継げれば切り札になり得る)、キャッシ
Backlog の Amazon EKS クラスターを Blue-Green アップデートするためにやっていること Backlog の Amazon EKS クラスターを Blue-Green アップデートするためにやっていること backlog 2023年最も素晴らしいプロジェクトを表彰!Good Project Awardを開催しました 2023年最も素晴らしいプロジェクトを表彰!Good Project Awardを開催しました backlog Backlog開発者が夫婦の不和をなくす家庭管理アプリを作ってみた話 Backlog開発者が夫婦の不和をなくす家庭管理アプリを作ってみた話 backlog 創業からもうすぐ80年の老舗企業!ミートボールでおなじみの石井食品様で、プロジェクトテーマパークを用いた研修を実施しました 創業からもうすぐ80年の老舗企業!ミートボールでおなじみの石井食
http://matt-welsh.blogspot.com.au/2013/08/rewriting-large-production-system-in-go.html Go言語の4周年をテーマにしたgolang.orgのブログで紹介されていた、GoogleのMobile Web Performanceチームに所属するMatt Welshのブログです。大規模な本番システムの作り直しにGo言語を採用した経験を語っています。 1) 背景 C++のオリジナルのコードベースは問題なく作動していたが、何年も複数の目的の違うプロジェクトで共有されていたため、スピーディーに改修するのが難しくなっていた。(何のシステムなのか具体的に書いてないのは残念。。) イメージフォーマットをトランスコードするライブラリはC++で完璧に動作していたので、そのまま残し、それ以外を全てGo言語で書き直した。 元のコード
はじめに test-kitchen と LXC でお手軽 cookbook テスト環境を構築してみたものの色々とハマっているので整理するつもりでメモ。 尚、試した環境としては下記の通り。 環境(1) Ubuntu 13.10 LXC 1.0.0.alpha2 test-kitchen 1.0.0.beta.4 berkshelf 2.0.10 環境(2) Ubuntu 13.04 LXC 0.9.0 test-kitchen 1.0.0.beta.4 berkshelf 2.0.10 以下はあくまでも手元で試した結果なので、試す環境によっては異なる結果も予想されるのであくまでも参考程度で... メモ 動くコンテナ、動かないコンテナ 今のところちゃんと cookbook のテストが出来るコンテナ OS と出来ないコンテナ OS が存在する。試したところ以下の通りとなった。 コンテナの OS
続編の紹介 続編 やはり俺のMVCは間違えている in Backbone.js を書いた。そっちのほうが有益な情報が乗ってると思うけど面白くないかもしれない 以下本編 MVC の話と宗教の話と政治の話と野球の話はしてはいけないそうですがそんなの知るか俺はするぞ クライアントサイド MVC の話 そもそも MVC の出自が GUI アプリケーションのために生まれてきたものなので「クライアントサイド MVC」などと言う言い方をしなければならない状況がすでに憎いのだけれど、まあそれはおいておく。 「うちは Backbone.js を使っているから MVC でクライアントサイドが作られていて保守性が高いです」みたいなことを言う人間がたまにいるが、Backbone.js をつかったから(あるいは Marionette.js を使ったらから)といって自動的にお前のアプリケーションが MVC になるわけ
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ / Hadoop / Spark Conference Japan 2019 講演者: 関山 宜孝 (Amazon Web Services Japan) 昨今 Hadoop/Spark エコシステムで広く使われているクラウドストレージ。本講演では Amazon S3 を例に、Hadoop/Spark から見た S3 の動作や HDFS と S3 の使い分けをご説明します。また、AWS サポートに寄せられた多くのお問い合わせから得られた知見をもとに、Hadoop/Spark で S3 を最大限活用するベストプラクティス、パフォーマンスチューニング、よくあるハマりどころ、トラブルシューティング方法などをご紹介します。併せて、Hadoop/Spark に関係する S3 のサービスアップデート、S3 関連の Hadoop
うちの会社ではzabbixを使ってサーバの監視をしていますが、リソースの使用率のグラフ化やアラートの設定条件など、おおむねその機能に満足しています。しかし唯一不満な部分があります。それは、ログ監視。 たとえばTomcatのCatalina.logを監視していて、OutOfMemoryが出力されたらアラートを上げるように設定すると、出力行数だけ障害メールが飛んできて、さらにすぐさまリカバリーが来るという、なんともいただけない仕様なのです。 ひどいときは、それで200通以上のメールが携帯に届くこともあります。 最近fluentdを導入したこともあり、ログの集計結果を監視に利用できないかと考えたら、意外とすんなりできたのでご紹介します。 【監視対象サーバに必要なもの】 fluentd fluent-plugin-zabbix fluent-plugin-datacounter fluent-pl
SDWebImageを使うと、簡単に画像を非同期でダウンロードできて、かつUIImageViewに設定することができます。 SDWebImage 参考 SDWebImageを初めて使う際の注意点 【iOS】SDWebImageでアプリ容量がどんどん増えていく件 ImageIO.frameworkとMapKit.frameworkの追加が必要です #import "UIImageView+WebCache.h" - (void)viewDidLoad { NSURL url = [NSURL URLWithString:@"http://hogehoge.com/hoge.png"]; [imageView setImageWithURL:url placeholderImage:nil options:SDWebImageCacheMemoryOnly]; } placeholderIma
ISUCON3本戦にスタッフとして参加させていただきました。準備期間と当日にやったこと、それを通して感じたことをまとめます。 スタッフとしてやったこと 準備期間 お題アプリの php 移植 各チームへの配布物作成(封筒・ネームプレート) 当日 スタッフっぽいこと お題アプリの scala 移植(未完) 準備期間 php 移植 久々に php を触ったので、過去にはまったところにことごとくはまり、 「あーーーーー!!!これーーーーー!!!!!」 って何回もなっていました。底辺スタッフ感が出ています。 全てのテストが通るとこまではなんとか1人でいけたものの、以下の問題が。。 ベンチかけると400エラーが出る ブラウザから動かすと信じられないくらい重い ベンチかけると400エラーが出た理由は、php の getallheaders() がパラメータ名の大文字小文字を区別して返してくることでし
どうもマコピーだよ。 そんなことはさておき前回の予選から引き続き本戦のISUCONに行ってきたので報告させていただきます。 チームぽわわ2のメンバー紹介 @shogo82148氏 我がチームのリーダー。主にアプリケーションを担当。Redis::Fastなどのモジュールを書くも今回の懇親会で「もうXSは嫌です〜」と言う。 彼の本戦の記事 ISUCON3の本戦に参加してきた - Shogo's Blog @9re氏 今回はnginxを担当。普段はAndroidのアプリを書いているそうです。 ぼく( @mackee_w ) インフラ周りを担当。 時系列を追って説明 10時 @shogo82148 in train— マコピー (@mackee_w) 2013, 11月 9 ギリギリまで寝てた— マコピー (@mackee_w) 2013, 11月 9 渋谷着— マコピー (@mackee_w)
CocoaPodsにある使うと生産性が上がりそうなiOS向けライブラリCocoaPodsにある使うと生産性が上がりそうなiOS用ライブラリをまとめたのでシェアします。 もともと個人的なメモだったため、ジャンルの偏りと内容の淡白さはご容赦を。 CocoaPodsにあればRubyMotionから使うのも簡単(のはず)なので、いろいろと試してみたいと思ってます。 ユーザインタフェース処理中の表示 SVProgressHUD処理中の表示 MBProgressHUD画像の選択 WSAssetPickerControllerUIImagePickerControllerと似たインタフェースで複数イメージを選択できる。 引っ張って更新 EGOTableViewPullRefreshUITableViewを引っ張って更新。 ジーンエフェクト BCGenieEffectジーンエフェクトをサポートするライブラ
iOS7からバックグラウンドで定期的にフェッチ処理を実行することができるそうです。 この機能を利用すれば、ネットワークから定期的にコンテンツを取得する必要のあるアプリでは、バックグラウンドで新しいコンテンツがあるかどうかチェックしてダウンロードしたりできるようです。 バックグラウンドで定期的にフェッチ処理を実行するために必要な手順は以下の通りです。 プロジェクト設定でBackground fetchを有効にする 最小のフェッチ間隔を設定する application:performFetchWithCompletionHandler:メソッドを実装する 1.プロジェクト設定でBackground fetchを有効にする バックグラウンドでのフェッチ処理を使用するには、まずプロジェクトにその旨を設定する必要があります。この設定はXcode上から簡単に変更できます。 Xcodeを開いたら、プロジ
先日、「M7 と少しだけ戯れてみた」というエントリでモーションアクティビティを試しに触ってました。その流れで自分の歩数を定期的に Tweet するようにしてみたらおもしろいかなぁと思って折角なので iOS 7 から導入された Background Fetch を使って見ようと思い、その時の内容をメモとして残してみようと思います。 ここに書く実験内容は Apple の審査を通った実績のあるものではない点をご了承ください。 Background Fetch とは iOS 7 から追加された新しい Background Mode のひとつ OS 側が不定期(OS の判断で適切だと思われるタイミング)で - (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBac
PostgreSQLのログをfluentd経由で回収するようにしたので設定を晒しておきます。ほぼ同じ設定を使いまわせるはずなので、fluentd & postgresの組み合わせを使っている人はどうぞ。 PostgreSQL側 postgresql.conf postgresのログの設定はこんな感じ。 # csvlogを出力 logging_collector = on log_destination = 'csvlog,stderr' # 1日でローテーション log_rotation_age = 1440 # /var/log/pgsql/postgres-%Y%m%d.(log|csv)に出力 log_directory = '/var/log/pgsql/' log_filename = 'postgres-%Y%m%d.log' # modeを644に log_file_mode
きっかけ ということで、td-agent(fluentd) のin_tail プラグインでログのローテーションをどのように捕捉して追従していくかを調べたい やってみた 下記の環境においてクライアントから apache に ab でアクセスさせて確認する。 確認したいこと td-agent を介してログを記録している状況において、ログローテーションが発生した場合に td-agent はログの切り替わりを知って、それに追従するか。 純粋に access.log ファイルに記録される内容(件数)と td-agent を介した記録内容(件数)に際が発生ないか。(ちょっとした負荷テスト的なことも) 環境 サーバー Debian 6.0.7 Apache/2.2.16 (Debian) td-agent 0.10.35 redis 2.6.14 クライアント Ubuntu 13.04 ab 2.3 A
ログのバックアップをfluentd経由でs3に転送するようにしたのですが、time_slice_format %Y%m%dにしてても、一日に複数ファイルが生成されていました。 こんな感じ 原因がよく分からなかったのでtwitterでつぶやいてみたら、@frsyukiが返答してくださいました! twitterでのやり取りはこちらにまとめました。 fluent-plugin-s3で、time_slice_format %Y%m%dにしてても、一日に複数ファイルがでてくる件解決策↓のように、buffer_chunk_limitを大きい値で設定すればOKでした。 原因原因は、buffer pluginで指定される、buffer_chunk_limitがデフォルトの8M(2012/11/27現在)だったためです。 chunkは一時的なデータの格納場所で、fluent-plugin-s3ではbuffe
XMLやCSV等のデータをJavaで色々加工して出力したりといったことをしてると必ずハマるのが波線などの文字化け問題です。 文字化けが発覚するたびにググって場当たり的な対処を繰り返すのに疲れたのでよく問題になる文字と形が似た文字をリストアップして、更にそれをJavaで各種エンコーディングに変換したらどの文字になるかを頑張って纏めました。 ついでに文字化けしないよう上手いこと出力可能な文字に置換する関数も作ってみました。 Javaの変換テーブル 表中の U,S,W,E,J はそれぞれ、UTF-8、Shift_JIS、Windows-31J、EUC-JP、ISO-2022-JP で出力した際の文字です。 見た目で分からないくらい似た文字ばかりなので、各セルにマウスカーソルを乗せたらツールチップで確認できるようtitleにコードポイントを書いておきました。 分かりやすいよう、青は文字化けなし、黄
土曜にJJUG CCC 2013 Fall(http://www.java-users.jp/?page_id=695)へ行ってきました。 事前にお知らせするのを忘れていましたが、17:15〜18:05のセッションでJVMのソースコードリーディングについてお話ししましたので、発表資料を公開します。 R5-5 JVMコードリーディング入門 〜JVMのOS抽象化レイヤーについて〜 JVMのコードを読みはじめたばかりの方を対象に、JVMとOSのメモリを中心とした関係性についてお話しします。JVMはOSからどのようにメモリを確保しているのでしょうか? そんな素朴な疑問をもとに、JVMのコードを楽しく追いかけてみましょう。※このセッションは入門者向けです。バイトコードやGCについては扱いません。 虎塚 (さくらば組) http://www.java-users.jp/?page_id=709#r5-
これが価値を発揮するような出題ではなかったので結局つかいませんでしたが。あとでCPANizeはするつもりです。 てきとうなところで ^C でとめると結果を自動的に集計してreportをつくるところまでやってくれます。あくまでも開発用で、本番用ではありません。 なおこれを使う場合、アプリ側で DB::enable_profile() / DB::disable_profile() を行う必要があります。tokuhiromのエントリも参照のこと。 #!/usr/bin/env perl # usage: plackup-nytprof --port 1982 app.psgi use 5.10.0; use strict; use warnings; use Cwd qw(getcwd); use File::Path qw(rmtree); sub run { my(@args) = @_;
Go はネットワークアプリケーションを手軽に書ける言語ですが、例えば 80 番ポートなど、 root でしか bind できないアドレスを Listen するアプリケーションを、 root でないユーザーで動かすのは地味に面倒です。 普通はソケットを bind してから setuid/setgid するのですが、 Linux では setuid が呼び出したスレッドしか適用されないという問題があり、 Go との相性が悪いからです。 参考 対処方法として、 Linux では capabilities を使って非 root ユーザーでも 1024 番以下を bind できるようにし、 Mac OS X などでは bind してから setuid するようにする。 先に root で bind したソケットを Go のプログラムに渡す。 2番めの方法を使うサンプルプログラムを書いておきます. $
FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ
Go を使うとサーバーとアプリケーションの境界が無くなり、アプリケーションサーバーを書けるようになります。 それは良いことなのですが、アプリケーションを書く人が、従来サーバーを書く人が設計していた機能を理解して実現できないと、運用できないサーバーができあがる結果になってしまいます。 例えば Apache は、 master, worker プロセスが分離していて、設定変更を反映させるときなどは新しい worker を作ってから古い worker を殺すことで、サービスを一瞬も止めずに worker を再起動していました。これを graceful restart と呼びます。 Go で 1024 以下のポートを Listen するアプリを作る で触れたとおり、 Go はプロセス管理システムを作るのには少し向いていない面がありますし、せっかくアプリケーションプログラマーが簡単にサーバーを書ける
カレントファイルのファイル名やディレクトリ名を知りたい runtime.Callerを利用し、stackの返り値を利用すれば解決できる、というのを グーグル先生で検索して知った。 元ソース https://gist.github.com/abrookins/2732551#file-gistfile1-go code snippet import ( "runtime" "path" ) // __FILE__ func GetCurrentFile() string { _, filename, _, _ := runtime.Caller(1) return filename } // __DIR__ func GetCurrentDir() string { _, filename, _, _ := runtime.Caller(1) return path.Dir(filename
CodeIQの出題者・鍋谷さんによるプログラマのためのプログラミング勉強会のレポートです。鍋谷さんがその場でも問題を出し、一斉にみんなで解答し、最後に発表するという形式の勉強会です。解答する言語は不問です。出題者からリアルタイムでコメントがもらえて、他の人のコードがみれるというなんとも贅沢な勉強会です。7名の解答コードも公開しちゃいます!! by CodeIQ運営事務局 11月1日に開催された横浜へなちょこプログラミング勉強会の「第15回 オフラインリアルタイムどう書く」に行ってきました!!!主催者は、CodeIQの出題者である鍋谷武典さんです。 世の中にはいろんな勉強会がありますが、この勉強会は、よくある発表形式とその場でコードを書くハッカソン形式を混ぜあわせたような勉強会です。 ルールはシンプル。主催者の鍋谷さんが問題を作って、参加者がその場でコードを書いて解く、というものです。そして
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く