タグ

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

  • Pythonによる自動化の結果、ニューヨーク中でタダメシが食えるようになったエンジニアの話 | 秋元@サイボウズラボ・プログラマー・ブログ

    いかにして私はPython/自動化/AI/インスタグラムを使いニューヨーク市で無料の事をできるようになったか(How I Eat For Free in NYC Using Python, Automation, Artificial Intelligence, and Instagram)という記事が面白かったのでご紹介。 ニューヨーク在住のデータサイエンティスト、クリス・ブエッティさん(Chris Buetti)が明かした、3万フォロワー超の人気アカウントを育てた秘密。 Instagramを育てる Pythonスクリプトで、毎日、一日に数回、ニューヨークに関する写真をInstagram に自動投稿させます。ブログ主によると、Instagram の「発見」ページに掲載してもらうにはこれが大事だそう。一日も欠かさず、何週間も続けることで掲載されやすくなるそうで、ほとんどの人力Instag

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

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

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
    fm315
    fm315 2015/02/03
  • HTTPパーサにおけるSSE4.2最適化の威力と注意点 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、サイボウズ・ラボの光成です。 PicoHTTPParserは@kazuhoさんたちが開発している高速なHTTPパーサです。 同じ作者によるHTTPサーバH2Oにも使われています。 11月4日の開発ブログによると、その時点でNode.jsなどに使われているhttp-parserの10倍程度の速度を誇るそうです(現在はhttp-parserも速度向上しその差は縮まりました。それでも4倍以上の差があるようです)。 該当ブログにはその高速化のためのノウハウが書かれていて大変興味深いです。ただIntel系CPUに搭載されているSIMD命令は用いられていませんでした。今回、@kazuhoさんと一緒に文字列処理専用のSSE4.2を用いることで1.7~1.9倍の高速化を達成しました(Improving Parser Performance using SSE Instructions (in

    HTTPパーサにおけるSSE4.2最適化の威力と注意点 - Cybozu Inside Out | サイボウズエンジニアのブログ
    fm315
    fm315 2014/12/04
  • データセンター移転とDRBD - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    データセンター移転とDRBD - Cybozu Inside Out | サイボウズエンジニアのブログ
    fm315
    fm315 2013/07/22
  • QRコードを使って携帯電話だけでお金を引き出せるATM | 秋元@サイボウズラボ・プログラマー・ブログ

    アメリカのNCRがコンセプトモデルとして開発した新型ATMでは、QRコードを使うことでキャッシュカード不要の引き出しを実現しています。 利用者は、スマートフォン上のオンラインバンキングアプリをダウンロードして、そこでオンラインでログインします。アプリ上で幾ら引き出したいかを選択すると、 QRコードのスキャン画面になります。一方、ATMの方にはQRコードが表示されているので、これを読み取らせると、 その読み取ったコードを表示しているATMから、先ほど指定した額の紙幣が出てくる、ということ。スマートフォンのアプリで読み取った、どのATMだ、という識別情報が、インターネット経由で銀行のシステム側に投げられているんでしょうね。 これなら、携帯電話を使っている人にとってはキャッシュカードが要らなくなりますね。また、ATM側に細工をするような犯罪、偽のATMを設置するような大掛かりなものから、カードの

    QRコードを使って携帯電話だけでお金を引き出せるATM | 秋元@サイボウズラボ・プログラマー・ブログ
    fm315
    fm315 2012/06/17
  • MashableとTechCrunch | 秋元@サイボウズラボ・プログラマー・ブログ

    ウェブサービスやウェブ業界に関する英語圏の有名ブログといえば、日語版でも(全部ではないが)多くの記事が翻訳され人気があるTechCrunch(テッククランチ)が有名だろう。アメリカでもTechCrunchはたいへん有名で、ブログメディアでありながらニュースの一次ソースとなることも多々あり、大きな影響力を持っている。 しかし、TechCrunchだけがテックブログではなく、この分野でも複数の有力ブログが鎬を削っている状態にある。たとえば、Mashable(マッシャブル)、ReadWriteWeb(リードライトウェブ)、VentureBeat(ベンチャービート)などだ。 ちなみに、僕がこれらの中で一番信頼し、良い記事が多いと思っているのはReadWriteWebだ。 そんな中、Alexa, Compete, Quantcast, comScoreという四つのトラフィック解析サービスでこの二つ

    MashableとTechCrunch | 秋元@サイボウズラボ・プログラマー・ブログ
    fm315
    fm315 2011/08/16
    情報源について
  • Kazuho@Cybozu Labs: MySQL のボトルネックを統計的に監視・解析する方法

    MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a

    fm315
    fm315 2009/07/27
  • Kazuho@Cybozu Labs: Pacific という名前の分散ストレージを作り始めた件

    大規模なウェブアプリケーションのボトルネックがデータベースであるという点については、多くの同意が得られるところだと思います。解決策としては、同じ種類のデータを複数の RDBMS に保存する「sharding」 (別名:アプリケーションレベルパーティショニング/レベル2分散注1) が一般的ですが、最近では、分散キーバリューストア (分散 KVS) を使おうとする試みもみられるようになってきています。 分散 KVS が RDBMS sharding に対して優れている要素としては、事前の分割設計が不要で、動的なノード追加(とそれにともなう負荷の再分散)が容易、といった点が挙げられると思います。一方で、Kai や Kumofs のような最近の実装では eventually consistent でこそ無くなってきているものの、ハッシュベースの分散 KVS は、レンジクエリができなかったり (例:

    fm315
    fm315 2009/06/11
  • 秋元@サイボウズラボ・プログラマー・ブログ: 究極の.htaccess?

    via del.icio.us/popular Apacheのフォルダローカルな設定ファイル.htaccess で使いそうな設定をかたっぱしから書き込んだファイル。 メイン、スクリプト関連、ヘッダ(キャッシュや最速化)、URL書き換え、認証、SSL、開発中サイト、というようなジャンルごとに、よく使われそうなディレクティブがずらずらと並んでいる。PHPの設定、cool URLの設定、エラーページ、認証の掛けかた、などなど。 書き換えるべきところは英単語で何を書くのかわかるようになっているので、コメントとあわせて思い出しながらコメントを外していくとそれなりに使えそうな .htaccess が作れるかもしれない。僕なんかは細かい設定方法すぐ忘れてしまって検索することが多いので、これで楽になりそう。 # 当に不要なものはコメントにせずファイルから消すべきだし、安定運用に入ったら.htaccess

    秋元@サイボウズラボ・プログラマー・ブログ: 究極の.htaccess?
    fm315
    fm315 2007/08/28
  • PHP+Windowsでスクリーンショットやサムネイル作成 | 秋元@サイボウズラボ・プログラマー・ブログ

    via The Pimp Windowsだけだが、COMで取ったウィンドウハンドルからウィンドウの画像をキャプチャする機能をPHPのGD拡張に追加した、という話が。 Screen capture with PHP and GD “here”で配られているビルド済みの php_gd2.dll を、PHP5.2にもともとついてる php_gd2.dll に差し替え、リンク先の記事にあるサンプルを呼んでみると、Windowのキャプチャも全画面のスクリーンショットも取れて、pngファイルになった。 ということは、SimpleAPIみたいなサムネイル生成サービス を簡単に作れるようになった、ということだな。 Windowsのスクリーンショットなんて下の2行で取れるので、 $im = imagegrabscreen(); imagepng($im, "myscreenshot.png"); PHPで各

  • さようなら、twitter。こんにちは、DooViiChat | 秋元@サイボウズラボ・プログラマー・ブログ

    実は僕はtwitter友人追加に応じるばかりで使ってない(たぶんまめさが足りないんだろう)ので、「さようなら」もないけど。 仕組みは(ユーザがすごく増えないかぎり)簡単そうなのですぐ出てくるとは思ったけど、日での一番手はここだろうか。 DooViiChat(ドゥービーチャット) by アクセラートジャパン まだまだ開発中のようで不安定なところやこなれてないところもあるけど、日語な分だけより普通の人を巻き込めそうな予感はする。 twitterとユーザーベース分断しなくてもtwitterが国際化すれば済む話だけど、たぶんtwitterの中の人もそれどころじゃないんだろう。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントや

    さようなら、twitter。こんにちは、DooViiChat | 秋元@サイボウズラボ・プログラマー・ブログ
  • 秋元@サイボウズラボ・プログラマー・ブログ: 本当に使える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番も同じものではないが日で使えるものを紹介した。 上記のリストには、日向けに出てないものもあるし、日語の解説がまだまだ少ないものも多い。全部が伸びるかどうかはわからないけ

    fm315
    fm315 2006/12/20
  • Google Code Search のアレな活用法が続々と | 秋元@サイボウズラボ・プログラマー・ブログ

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

  • 秋元@サイボウズ研究所プログラマーBlog: iHack - 脆弱なHTMLフォームの突破ゲーム

    脆弱性のあるHTML Formゲームとして公開している 「このフォームを突破してもハック(クラック?)したことにはならないよ」とのこと。安心してアタックされたし。 さっそく遊んでみたが、レベル3で既に悩んでしまい停滞。そんなわけで先がどれぐらいの難易度なのかはまったく不明。我ながら才能無いなあ。 猛者がいるサイボウズ・ラボの社内掲示板に紹介しておいた。 # くれぐれも、解いて進んだ先のURLを直接紹介しないこと、との注意書き。ゲームがつまんなくなるんでね。 [追記] ということで社内の猛者達が全6問を解き終わった。 レベル3は「そりゃないんじゃないの」に近い仕掛けだった。技術じゃない。このへん関連のニュース、「よく使われるパスワード」みたいなのを漁るのかこれ。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「

  • Google Maps API のボタンを日本語にする方法 | 秋元@サイボウズラボ・プログラマー・ブログ

    via Google Maps API 公式ブログ 4月27日のブログで、ヨーロッパ主要各国の地図が追加されたのと同時に、API 経由で描いた地図のコントロールを日語(や他の主要言語)にする方法も書かれていた。 Google Maps API のライブラリを呼び出す際に、以下のように “hl=ja” をつければ、 <script src=”http://maps.google.com/maps?file=api&v=2&hl=ja&key=キー”> これまで英語だったコントロールボタンが、日Google Maps と同様、「マップ」「サテライト」「デュアル」になる。 # それとも、Google Maps のほうも英語ボタンだったっけ? 覚えてない… 解説では version 2 が指定されている(v=2)けれど、API version 1 でも同じように指定すればコントロールが日

  • 開発合宿成果(1) サイボウズ地図 | 秋元@サイボウズラボ・プログラマー・ブログ

    3月末の開発合宿で作ったものを、やっと外からみえるサーバに移し終えた。風邪で寝込んだり、外サーバの設定でいろいろ遊んでたりしたのでかなり遅くなったけど、作ったものを出しておかないと。 行きの車の中で何を作るか考えてたんだけど、複数のサービスから持ってきたデータをマッシュアップして、何か、ということで考えてみた。 あと合宿参加者の赤松さんが SimpleAPI が面白いと薦めてたので、これも絡めてみようかな、と。 Google Maps API v2 の時にスタティックファイルとして出してしまってるけど、まず最初に、 Google Maps を使おう、ということでサイボウズ関連会社(グループ、一部出資など)をマップしてみた。 サイボウズ地図 使ってるのは Google Maps API その呼び出しライブラリとして PHP GoogleMapAPI Geocoding API SimpleA

  • Google Maps API のバージョン2が正式リリース | 秋元@サイボウズラボ・プログラマー・ブログ

    via Google 公式ブログ 機能 ライブラリ Javascript のサイズが約半分になり、読み込みが高速化 日欧米と主要都市で2段階細かな衛星画面が出るように 地図の角により広い範囲を表示するオーバービューマップを表示できるように(Yahoo! Map みたいなやつか) ユーザが拡張しやすくなった GMap2 クラスの追加 不要なオブジェクトを解放するメソッドの追加。IEでのメモリリークの解消 デバッグログ機能の追加 緯度と経度の順番を間違えない新メソッドの追加 また、利用条件に二つ変更が。 呼び出し回数の上限が無くなった。ただし一日50万回以上の呼び出しがあるサイトの場合は事前に連絡してほしいとのこと。 もし GoogleAPI 経由で広告を入れるようなことがあれば、90日前に予告をするということ バージョン2は、バージョン1との互換性を 99% 保っているということで、現

  • 秋元@サイボウズラボ・プログラマー・ブログ: Windows への Ethna-0.2.0 インストール

    PHP 勉強会でいろいろと聞かされたし、藤さんともお話したので、PHP の和製フレームワーク Ethna を見てみようと手元のマシンに入れてみる。 環境: Windows XP Professional SP2, PHP5.1.1, PEAR1.4.6 PEAR のアップデート(念のため) cd C:php-5.1.1 (このパスは一例。自分が入れた場合の場所) pear update PEAR Ethna のダウンロードとインストール Ethna のダウンロードページから、 Sourceforge.jp の配布ページへ Ethna-0.2.0.tar.gz を選択、ダウンロード コマンドプロンプトを開き、ダウンロードしたファイルの場所へ pear install Ethna-0.2.0.tar.gz PEAR と同じ場所に Ethna というディレクトリができる PEAR に PATH

    fm315
    fm315 2006/03/17
  • 秋元@サイボウズ研究所プログラマーBlog: Ajax アプリケーショントップ12 (トップ10 パート2 ???)

    Ajax アプリケーショントップ10 で紹介した、ベンチャーキャピタリストのブログで、Ajax アプリケーショントップ10 パート2 が公開されていた。先月の記事なので僕が気づいてなかっただけだが。トップ10 なのにパート2、しかも 12 個あるんだが。。。まあいいか。 パート1 のあとに出てきたもの、いまだにその実態がはっきりしないものもふくめ、前回とは別の 12 個、追記の 2 個を含めて 14 個の注目 Ajax アプリケーションがピックアップされている。 カレンダー: CalenadarHub 検索可能な共有 or プライベートカレンダー。グループによる共有、購読機能、ドラッグ&ドロップできる UIRSSフィード、API 公開 辞書/シソーラス: ObjectGraph Dictionary 説明不要 メール: Zimbra メール、カレンダー、アドレス帳やその他のコミュニケーシ

    fm315
    fm315 2006/02/24
  • 従うべきでないプログラミングのアドバイス10個 | 秋元@サイボウズラボ・プログラマー・ブログ

    Top Ten of Programming Advice to NOT follow 新人プログラマーにアドバイスを求められた筆者が考えた、「聞くべきでないアドバイス」のリスト。 10) 例外は使うな(by Joel on Software 等) 9) 負にならない値には unsigned int を使え 8) 実世界に対応したクラスを設計せよ 7) チームでコード記法を統一せよ 6) コメントをたくさん書け 5) public フィールドよりアクセサメソッドを使え 4) 一個しかインスタンスができないなら Singleton パターンを使え 3) 入力は寛大に受け付け、出力は厳しくせよ 2) 最初から重箱の隅までプログラムせよ。後でやろう、は実行されない 1) コードを書く前に設計せよ 7), 5) は聞いてもいいと個人的には思う。10), 8) は僕も聞きたくない。3) は聞きたくな