タグ

ブックマーク / developer.cybozu.co.jp (30)

  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Docker で Selenium Grid の環境構築をもっと楽に! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone チームの宮田です! 今回は、Selenium/Appium Advent Calendar 2014 15日目の記事として、Docker を使った Selenium Grid の環境構築方法について説明します。 背景 kintone チームでは、Selenium Grid を使用して Selenium テストを並列化しています。これまでは、VM で環境構築していたのですが、VM 数が増えてくるにつれてメンテナンスコストが上がってきたので、Docker による楽な環境構築方法をチームで探求していました。そこにいいタイミングで家の Docker イメージのリポジトリが作成されていたので、使ってみることにしました。 Docker のインストール OS は、Ubuntu 14.04 を使用します。 公式HPでは、docker.io パッケージのインストールと lxc-

    Docker で Selenium Grid の環境構築をもっと楽に! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • MySQL 5.6 で loss-less semi-sync レプリケーション - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。運用部 Hazama チームの深谷です。 今回は MySQL 5.6 で loss-less semi-sync レプリケーションを実現するパッチについて紹介します。 loss-less semi-sync って何? 詳しい説明は、他の方のブログ を見ていただくのが早いですが、かいつまんで説明すると、MySQL 5.6 の semi-sync レプリケーションでは運が悪いとコミット済みのトランザクションが失われてしまうケースがありました。それを改修するものです。 弊社では一部サービスで、HA 構成のために semi-sync レプリケーションを検討していたのですが、 MySQL 5.6 ではこの問題が解決されていないため、5.7 からバックポートすることにしました。 Facebook ありがとう ところが、5.7 は 5.6 と相当コードが変更されていたため、容易にはパッチが

    MySQL 5.6 で loss-less semi-sync レプリケーション - Cybozu Inside Out | サイボウズエンジニアのブログ
  • kintoneを支えるKAIZENの技術 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone開発チームの佐藤鉄平 (@teppeis) です。 今回はkintone開発チームのKAIZEN(改善)活動について紹介します。 技術的負債が減らない! サービスの開発を続けていくと、次第に技術的負債が溜まっていきます。kintone開発チームでは、開発期間中に溜まってしまった技術的負債kintoneアプリ に登録しておき、あとで時間があるときに返済するようにしていました。 このあたりの開発プロセスについてはこちらの記事をご覧ください。 超速で開発・リリースするための6つのこと | Cybozu Inside Out | サイボウズエンジニアのブログ ところが、最近技術的負債がなかなか減らないという課題に直面していました。kintone開発チームでは主にメンバーの自主性に任せて負債を返済していましたが、この方法だと、 ビジネスサイドからのプレッシャー(もっと新

    kintoneを支えるKAIZENの技術 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Kazuho@Cybozu Labs: REST におけるトランザクションについて (Re: Web を支える技術)

    といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)(山 陽平) - ただのにっき(2010-04-23) 「Web を支える技術」は自分もとてもいいだと思う (教科書としてすばらしいし復習用としても読みやすいのでイイ) のですが、トランザクションの所だけは分かりづらいなと感じました。その原因は、atomic transaction で解決できる課題を例として使っているという点と、トランザクションと更新クエリのレイヤ分割がされていない、という2つの点によるものではないでしょうか。 HTTP 上でトランザクションを表現する必要があるケースのほとんどは、atomic transaction ではなく

  • yrmcds 1.0.0 をリリースしました - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山泰宇です。去る 7 月に yrmcds という memcached 互換な KVS を公開したことをご案内しました。それから 5 ヶ月経ちましたが、今回は安定版となるバージョン 1.0.0 をリリースをご案内します。 ダウンロードはこちらからどうぞ: https://github.com/cybozu/yrmcds/releases/tag/v1.0.0 0.9.0 からの変更点を短くまとめるとバグがなくなって、memcached より多分高速になっています。ちょっと長めの記事ですが、末尾にいいことが書いてありますので、是非ご一読ください。 yrmcds の特長 レプリケーション サーバーサイドロック No slabs その他 memcached との差異 運用実績と性能 クライアント 0.9.0 からの変更一覧 バグ報告を募集します! yrmcds の特長 y

    yrmcds 1.0.0 をリリースしました - Cybozu Inside Out | サイボウズエンジニアのブログ
  • データセンター移転とDRBD - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山泰宇です。今回は去る 5 月から 6 月にかけて行った、cybozu.com のデータセンター移転作業について、失敗してしまったことを中心に解説します。 失敗と書いたのは、移転作業中に何度か、一部のお客様環境でストレージ高負荷による障害を起こしてしまったためです。移転作業自体はスケジュール通り進行し、6 月第二週に完了しています。障害に関しては、こちら(PDF)でお詫びとご報告をしていますが、この記事では技術面ならびに障害を引き起こすにいたった背景について詳述します。 移転に至った背景 移転方式の検討 ストレージ同期の方法 DRBD による同期の詳細 まずは自社環境を移転、成功 そして障害は発生した なぜ障害につながったのか まとめ 移転に至った背景 まず、なぜデータセンターを移転することにしたかを説明します。 端的に言うと、当時のデータセンターが手狭になり拡張

    データセンター移転とDRBD - Cybozu Inside Out | サイボウズエンジニアのブログ
    clavier
    clavier 2013/07/23
  • http://developer.cybozu.co.jp/akky/2012/10/responsive-wordpress/

  • 2月28日(木)Shibuya.XSS 特別編 (SecurityDays) | TAKESAKO @ Yet another Cybozu Labs

    1月に開催した「エンジニアサポートCROSS 2013」での「出張Shibuya.XSS」では たくさんの方にご来場いただき、ありがとうございました。 ノロウイルスに感染して当日欠席だった @hasegawayosuke さんのリベンジ企画として 2月28日(木)18:00~渋谷ヒカリエホールにて「Shibuya.XSS 特別編」を開催いたします。 ■ Shibuya.XSS 特別編 (SecurityDays) http://www.f2ff.jp/secd/2013/night/ SecurityDays【N-1】2月28日(木)18:15-21:10 「セキュリティリサーチの最前線 ~危険を察知する感性を磨け~」 【会場】 渋谷ヒカリエ9F(ヒカリエホール) 【プログラム】 2月28日(木) 18:00:受付開始 18:15-18:55:「Shibuya.XSS 特別編!! いつもど

  • サイボウズのPython コーディング規約 11 カ条 - Cybozu Inside Out | サイボウズエンジニアのブログ

    ymmt2005 こと山泰宇です。こんにちは。 cybozu.com のインフラ開発チームでは仕事のかなりを Python でこなしています。 Python を選んだ理由は以下の通りです。 便利だから Python には "batteries included" と呼ばれるほど豊富な標準ライブラリが整備されています。例えば HTTP で通信するとか、JSON データを読み込むといった良くある仕事のためにいちいち外部ライブラリを探さなくていいのです。 堅いプログラミングができるから 例外やモジュールといった現代的な機構が備わっているので、ベターシェルスクリプトとして使うのに適しています。 書き方にバリエーションが少ないから チーム開発では他の人が書いたコードを手直しすることは良くあります。書く人によって書き方がいくつもあるような言語より、レビューや修正がしやすいと考えています。 標準的に使

    サイボウズのPython コーディング規約 11 カ条 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Pancake.io – Dropbox APIを使った、素人でもできるお手軽なウェブサイト作成サービス | 秋元@サイボウズラボ・プログラマー・ブログ

    Pancake.io – Dropbox APIを使った、素人でもできるお手軽なウェブサイト作成サービス Pancake.ioは、Dropboxを使って手元のパソコンにあるファイル、それもHTMLではなくテキストファイルやマイクロソフトOfficeファイル、画像ファイルなどをそのままネットに公開できるという新サービスです。 Pancake.ioのサイトから登録を行うと、Dropboxのサイトに飛ばされて、 そこでPancake.ioからのアクセスを承認するかを訊かれます。 OKすると、接続完了のメッセージと、Pancake.ioをどうやって使うかが表示されます。使い方は、ここにあるように非常に簡潔です。 数分待つと、ローカルなPCのDropboxフォルダのAppsサブフォルダの下に、Pancake.io というフォルダができています。これがウェブサイトで公開したいファイルの置き場となります

    Pancake.io – Dropbox APIを使った、素人でもできるお手軽なウェブサイト作成サービス | 秋元@サイボウズラボ・プログラマー・ブログ
  • Hashtagart – ツイッターアイコンを使ったモザイク絵や神経衰弱ゲームで企業向けプロモーション | 秋元@サイボウズラボ・プログラマー・ブログ

    Hashtagartは、Twitterユーザーを巻き込んでのブランドプロモーションを提供するサービス。 すでに運用されている一番目のサービスは、特定のハッシュタグをつぶやいたユーザーのツイッターアイコンを集めて、広告主が指定する画像をモザイクで作るというものです。下はWindows Phone(ハッシュタグ#WindowsPhone)で実際に行われたプロモーションの例で、デモサイトにいくと、一つ一つのアイコンを選んで元となるつぶやきを確認したり、ユーザー名から自分のアイコンがどこに使われているかをみつけたり、というインタラクティブな機能を持っています。 アイコンで大きなモザイク画を作る発想自体は前からあるので、集計したり画像を作ったりという作業を有料で企業向けにパッケージ化したというだけではありますが。すでに予算を持ってる企業の担当者から見れば楽ですよね。 第二弾はツイッターアイコンを使っ

  • Kazuho@Cybozu Labs

    多数のユーザーの行動記録からアテンション情報(注目されているデータが何か)をデータマイニングしたいというのは、大量のデータを扱っているウェブサイトにおいては自然と出てくる要求です。そこで、先月末にサービスを終了したサービス「パストラック」において使用していた、アクセスログから注目度(人気度)の高いウェブページや人名等のキーワードを抽出するためのアルゴリズムを紹介しておきたいと思います。 たとえばはてなブックマークのような、ユーザーの能動的な行為(「ブックマークする」という作業)から注目情報を抽出するのは決して難しいことではありません。それは、直近の一定期間内のブックマーク数=注目度、という前提が上手に機能するからです。現に、はてなブックマークの人気エントリーは、最近24時間程度の期間内にブックマークしたユーザー数の多い URL を降順で並べているように見受けられます。 しかし、アクセスログ

  • 秋元@サイボウズラボ・プログラマー・ブログ: 本当に使える10個のWebサービスAPI

    via del.icio.us/popular LinuxWorldの記事で、10個のWebサービスAPIが解説と共に紹介されている。 Google Maps API Geonames.org OpenID Amazon S3 Amazon EC2 Atom API OpenSearch Open Media Profile MediaWiki API JS-Kit 特定のサービスを便利に使うためのAPI(Flickr APIとか。あれはあれでよくできているけど)ではなく、実際の問題を解決するために使える10個を選んだ、ということだ。 1, 4, 67は「PHPxWebサービスAPIコネクションズ」でも扱っている。2番も同じものではないが日で使えるものを紹介した。 上記のリストには、日向けに出てないものもあるし、日語の解説がまだまだ少ないものも多い。全部が伸びるかどうかはわからないけ

  • 英語発音辞書 on Net | 秋元@サイボウズラボ・プログラマー・ブログ

    via del.icio.us/popular 英単語の発音だけを簡単に検索し、聞くことができるサイト。読み方がわからないときにパッと開いてちょっと調べるにはいいかもしれない。 たとえば、warning はワーニング? ウォーニング? 自分で聞いてみるのが一番。(音が出るので職場の人は注意) 普通のオンライン英和辞書や英英辞書で、定義の他に発声リンクがあるようなものもあるので、普段使うならそっちのほうがいいとは思うけど、単機能に絞ったことで使われ方が出てくるということもあるかなあと思った。ブラウザのツールバーからダイレクトに発音を確認とかね。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸

  • 秋元@サイボウズラボ・プログラマー・ブログ: Flashによる複数ファイルアップロードライブラリSWFUpload

    via Ajaxian SWFUploadというFlashのライブラリがAjaxianで紹介されているが、これけっこういいのではないか。 ファイルダイアログで表示される拡張子を指定できる 複数ファイルを、CtrlやShiftで選択できる イベント毎にJavascriptのハンドラを呼べる アップロード開始前にファイルの情報がわかる プログレスバーが表示できる ページ全体のリロード無しにアップロードされたファイルを表示できる Flashの動く環境すべてで動く FlashやJavascriptが使えない環境でも、通常のフォームアップロードになる 最後の項目は重要だろう。 リンク先でデモを試せる。”Try it out!”ボタンを押して、適当なファイルを複数選び、アップロードすると、ファイルサイズやプログレスバーが表示される。 複数アップロードは、Webアプリでよく要望されて困るところだし、プロ

    秋元@サイボウズラボ・プログラマー・ブログ: Flashによる複数ファイルアップロードライブラリSWFUpload
  • Google Code Search のアレな活用法が続々と | 秋元@サイボウズラボ・プログラマー・ブログ

    Googleの一般検索でも、社外秘情報の入ったExcelを検索したらいろいろ出てきた(参考 、 公開Webサーバから機密情報を引き出す「Googleハッキング」の脅威と、その対策)といった話もあるし、つい最近はGoogle Calendarで明らかに公開情報じゃないいろんな人の予定が検索できるという指摘も話題になった。 ということで、昨日リリースされたGoogleコード検索でも、さっそく色々な「ヤバイ」指摘が。 kottke.org では以下のような検索例が 圧縮アプリケーションの暗号生成部分のソース パスワードを埋め込んだブログシステムのソース バッファーオーバーフロー脆弱性がありそうなソース 公開されるべきでない、と書いてあるソース 愚痴ったり、罵ったり、馬鹿にしたりというコメント 有名プログラマーの名前での検索 また、PHPセキュリティといえばこの人の Chris Shiflett

    clavier
    clavier 2006/10/06
  • 秋元@サイボウズラボ・プログラマー・ブログ: Googleがソースコード検索Google Code Searchを公開

    [更新 2018] 2012年にサービス終了しています。 噂になっていたGoogleのコード検索サービスGoogle Code SearchがGoogle Labsから公開された。 例: “Romaji”でソースコード検索 上の検索結果からすると、Camel Notation中の単語も探してくれるみたいだ。 IsProgrammerDifferentFromSE()みたいなネーミングからも単語を切り出してインデックスしているということで、これはありがたいかも。 見つかったコードをクリックすると、キーワードハイライトされたソースコード全文、同じディレクトリ内にある他のコードのリスト、パッケージやコードのGoogleキャッシュ(!)、パッケージのダウンロードリンク、などが表示される詳細画面に移る。 検索では、トップページ下にも説明がいくつか書かれているが、言語、ライセンス、パッケージ形式やファ

    clavier
    clavier 2006/10/05
  • 37signals Gig Board | 秋元@サイボウズラボ・プログラマー・ブログ

    37signalsがJob Board(Job Boardについては idea*idea の田口さんの解説をどうぞ)のアルバイト版、Gig Boardというのをはじめた。こちらは$100で3週間の掲載ということ。 TechCrunchのような業界ニュースサイト、Joel on Softwareのような個人ブログ、37Signalsのようなネットサービスでは、サイトの読者層がだいたいわかっているわけで、その人たち向けに傾向を押さえた求人サイトを持つ、というのは悪くない考えなのかもしれない。 まあ、有名サイトで訪問者が多いから成り立つ話ではあるけど。そんなサイトを持っていないなら、Job Boardのシステムを作って有名サイトに売り込めばいいのかな。今ならASP、先方のサイトに貼れる形で提供か。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります

    clavier
    clavier 2006/10/05
  • Ziki – オープンなソーシャルネットワーク | 秋元@サイボウズラボ・プログラマー・ブログ

    Ziki というサービスが始まっている。 さっそく試してみたところ、これはオープンな SNS を狙っているのではないか、と感じられた。 ユーザ登録して、自分にタグをつけていくと、タグのついたほかのメンバーの一覧ページができる。これは mixi などでいうコミュニティにあたる。 とりあえず作ってみた My Ziki がこれ 自分の属性には、自分のブログをはじめとして、RSS で提供されているさまざまなものを含めることができる。例として推奨されているのは、Blogger.com などのブログサービス、写真共有サービス Flickr 、ブックマーク del.icio.us/Blinklist など。カレンダーサービスの RSS 出力などをわせるのもありだろう。 RSS を追加する際に、RSS のカテゴリーを指定させられる。フィードの性格ごとに違う表示をするのかも(あるいは、将来するつもりなのか

    clavier
    clavier 2006/04/21