タグ

mixiに関するshimookaのブックマーク (125)

  • 3行でできる超お手軽全文検索 - mixi engineer blog

    梅雨。部屋干しした洗濯物による異臭騒ぎに苦しむmikioです。今回は、Tokyo Cabinetのテーブルデータベースで超お手軽に全文検索をする方法について説明します。 使い方 テーブルデータベースについてまずおさらいしておきましょう。PerlRubyのハッシュのようにコラム名とその値を関連づけた構造を、主キーを識別子として保存するデータベースです。例えばRubyからデータを保存するに以下のように行います。データベースであることをほとんど意識させないというのが素敵ポイントです。APIはCでもPerlでもRubyでもほとんど同じなので、言語にかかわらず同じようにレコードを操作できます。 require 'tokyocabinet' include TokyoCabinet # データベースを開く tdb = TDB::new tdb.open("casket", TDB::OWRITER

    3行でできる超お手軽全文検索 - mixi engineer blog
  • まずは、mixiアプリを使ってみよう、作ってみよう

    まずは、mixiアプリを使ってみよう、作ってみよう:基礎から分かる、mixiアプリ作成入門(1)(1/3 ページ) mixiのアプリ?それって何? 「mixiアプリ」は、iGoogleのガジェットのように、SNS「mixi(ミクシィ)」上に組み込まれて実行される、Webアプリケーションです。主に、JavaScript+XML+HTMLCSSで作ります(やり方によっては、Flashなども使える)。 誰でも開発でき、人が開発したmixiアプリを自分のマイページなどに自由に組み込むことができます。また、Webアプリケーションのため課金方式は異なりますが、iPhoneアプリのようにmixiアプリを作って公開することで報酬を得ることもできます。 mixiアプリは、2009年6月現在、オープンβ環境のみで利用可能となっています。正式版は、8月公開予定です(参考:「mixiアプリ」8月に正式公開 販売

    まずは、mixiアプリを使ってみよう、作ってみよう
  • 100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog

    例の冷却ファンを修理してもらいに秋葉原に行ったのですが、最近の同人ゲームのクオリティはすごいなあと感心していたら、その二階はもっととんでもないことになってて、ひとつ大人になってしまったmikioです。今回は、Tokyo Cabinetのテンプレート直列化機能を駆使して、たった100行のCプログラムでWebチャットシステムを実装してみます。 古式ゆかしいWebチャットシステム 10年くらい前にCGIスクリプトでチャットシステムを作るのが流行していたのを覚えている方も多いと思います。チャットログは現在のようにデータベースサーバに転送して格納するのではなく、ローカルファイルシステム上のファイルにCSVやTSVなどのフォーマットで格納したり、同じくローカルのDBMファイルに格納するのが主流でした。2ちゃんねるの「datファイル」もそのようなデータファイルの一種と言えるでしょう。 その頃から、CGI

    100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog
  • memcached-1.4 RCをつかってみよう - mixi engineer blog

    数日前にmemcached-1.4のリリース候補が出ましたので、今日はその最新版と、それを使ったメモリ節約の運用法を紹介します。厳密にいうと、ご紹介させていただくmemcachedのメモリ節約機能は1.3のbetaから存在し、過去にこちらで取り上げました。 memcached-1.4.0-rc1 1.4 RCは基的に1.3.* betaで発見・報告されたバグの修正やコードベースの改修が主な内容です。詳しいリリースノートはこちらになります。 http://code.google.com/p/memcached/wiki/ReleaseNotes140rc1 ダウンロードはこちらです。 http://code.google.com/p/memcached/downloads/list 新しいバージョンのmemcachedはバイナリプロトコルの導入以外に地味に生まれ変わっています。例えばコード

    memcached-1.4 RCをつかってみよう - mixi engineer blog
    shimooka
    shimooka 2009/06/05
    『CASを使わない設定 (-C オプション) でmemcachedを起動する』
  • 「最近mixiに自社広告が多くない?!」と思って色々と調べてみた

    【ミクシィ(2121)】が運営する日国内最大手のSNS(ソーシャル・ネットワーキング・サービス)【mixi】。当方(不破)も初期から入会しており、今でも時々アクセスをするのだが、特に今年度に入ってからか気になることがあった。いわゆる「自社広(自社広告。広告スペースが空いている時に挿入される、運営会社自身の広告)が増えてないか?」ということ。初めは気のせいかとも思ったが、気になって調べてみたところ、mixiに限らずSNS全体の問題として、広告モデル上の問題点が表面化している可能性が見えてきた。そこでここでは、それら「SNSと広告の課題」についてまとめてみることにする。 「mixi」には多種多様なスペースに広告設置エリアが用意してあり、その場所の特性やサイズなどで広告を出すための料金が異なる。もちろん人気のある(注目されやすい、閲覧回数の多い)部分は料金が高い。 例えばポータルサイトの「ヤフ

    「最近mixiに自社広告が多くない?!」と思って色々と調べてみた
  • はじめての mixi アプリ - IT戦記

    IE ではたぶん動きません。 友達一覧取得 <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="simple mixi Appli"> <Require feature="opensocial-0.8"/> </ModulePrefs> <Content type="html"> <![CDATA[ <script type="text/javacript"> var req = opensocial.newDataRequest(); req.add(req.newFetchPeopleRequest(opensocial.newIdSpec({ userId: 'OWNER', groupId: 'FRIENDS' }), { max: 1000 }), 'friends'); req.send(fu

    はじめての mixi アプリ - IT戦記
  • 「mixiアプリ」オープンβ版公開!

    株式会社ミクシィ・ミクシィグループの公式企業サイトです。企業情報、IR・投資家情報、ニュースリリース、採用情報などを掲載しています。

    「mixiアプリ」オープンβ版公開!
  • DBMによるテーブルデータベース その五 - mixi engineer blog

    ついに発売されたスト4のコンシューマ機版をやりたくてしょうがないけど筐体を買ってもらえないので、駅前のゲーム屋のディスプレー前で垂涎するばかりのmikioです。今回は連載の最終回で、各種スクリプト言語を使ってお手軽にテーブルデータベースを操作する方法について説明します。 TokyoCabinet::TDB まずは、TCのPerlバインディングとRubyバインディングの最新版を入手してください。それぞれテーブルデータベースを扱うための TokyoCabinet::TDB というクラスが加わっています。以下のようなIDLによるガイドラインに準拠したインターフェイスが提供されますので、使い方は言語にかかわらず同じようになるはずです。 module TokyoCabinet { interface TDB { boolean open(in string path, in long omode);

    DBMによるテーブルデータベース その五 - mixi engineer blog
  • DBMによるテーブルデータベース その四 - mixi engineer blog

    コアライブラリを一生懸命書くとユーティリティやバインディングなどの周辺機能がおろそかになり、逆も然りで、工数割り当てのジレンマが歯がゆいmikioです。今回は余談として、Tokyo Cabinetのテーブルデータベース(TCTDB)を作る途中で思いついた更新機能と性能検証について述べます。 アトミックな更新 再び TCTDBで好評だったっぽいアトミックな更新機能をその他のデータベースでも実装してみました。例えばハッシュデータベース(TCHDB)では以下の関数が提供されます。 typedef void *(*TCPDPROC)(const void *vbuf, int vsiz, int *sp, void *op); bool tchdbputproc(TCHDB *hdb, const void *kbuf, int ksiz, const char *vbuf, int vsiz,

    DBMによるテーブルデータベース その四 - mixi engineer blog
  • DBMによるテーブルデータベース その参 - mixi engineer blog

    最近、忙しさを理由に英会話レッスンをサボりがちになってよろしくないなと猛省するmikioです。今回は、Tokyo CabinetのテーブルデータベースをTokyo Tyrantを使ってデータベースサーバとして利用する方法について述べます。 とりあえず使ってみる Tokyo CabinetとTokyo Tyrantの最新版(1.4.4と1.1.12)がリリースされていますので、インストールしておいてください。またも社員名簿を作ってみましょう。まずは、TTのサーバを実行します。データベースファイルの接尾辞には「.tct」を指定して、テーブルデータベースファイルと接続します。 ttserver casket.tct 別の端末でクライアントを操作して、"put" コマンドで社員を登録しましょう。「-sep」は、コラムのキーと値を区切る文字を指定するオプションです。"|" 以外でも任意の区切り文字を

    DBMによるテーブルデータベース その参 - mixi engineer blog
  • DBMによるテーブルデータベース その弐 - mixi engineer blog

    インフルエンザで休んだ影響で仕事が鬼のように溜まって消化不良のmikioです(こんな記事を書いている場合じゃない)。さて今回は、Tokyo Cabinetでリレーショナル風データベースを実現したテーブルデータベース(TCTDB)の実装について説明します。 SQLiteとの違いは? SQLiteはアプリケーション組み込み型のSQL対応リレーショナルデータベースのライブラリです。TCのテーブルデータベースよりもはるかに高機能で、それでいて性能も大変優れています。いわゆるデスクトップアプリケーションに組み込むデータベースをお探しであれば、TCなんかではなく、断然SQLiteがおすすめです。 一方で、TCなどのDBMは、より単純なデータ操作をより高速に実行できるように設計および実装されています。典型的なユースケースとして、大規模Webサイトのアカウント管理や、データマイニングに伴う集計操作が挙げら

    DBMによるテーブルデータベース その弐 - mixi engineer blog
  • DBMによるテーブルデータベース - mixi engineer blog

    正月早々インフルエンザにかかって寝込んだmikioです。電車に乗る時や繁華街などに出る時はマスク着用が必須ですね。さて今回は、Tokyo Cabinetで実装したテーブル方式のデータベースについて紹介します。意外にどうして強力な機能なので、このネタは連載することを予告します。 テーブルデータベースとは 簡単に言えば、リレーショナルデータベースのテーブルのように、複数の列からなるレコードを格納できるデータベースです。SQLや表結合などの複雑な機能はサポートしませんが、そのぶん高速に動作します。つまり、DBMの速度で動くリレーショナル風データベースです(厳密にはリレーショナルデータベースではありません)。 TCの基となるハッシュデータベースは、単純なkey/value型のデータベースであり、つまりキーにも値にもスカラ(数値や文字列などの特に構造を持たない単一の値)しか格納することはできません

    DBMによるテーブルデータベース - mixi engineer blog
    shimooka
    shimooka 2009/01/19
    RDB的な使い方
  • DBMによるデータベースサーバ - mixi engineer blog

    DSのスターフォックスというゲームにはまりまくりのmikioです。最近社内外で「俺ストレージサーバ」を作るのが流行っているようなので私も参戦してみました。今回はDBMのネットワーク層をほぼスクラッチで作った話をします。 Tokyo Tyrant Tokyo Tyrant(以下TT)はTokyo Cabinet(以下TC)をラップしてネットワーク越しに操作できるようにするツールです。キャビネット(内閣)を傀儡にするタイラント(僭主)ということで名付けました。ダウンロードはこちら。 TCは高性能なDBMで、マルチスレッドモデルで高い並列性を実現していますが、逆にマルチプロセスモデルだとファイルロックがかかるので並列性が低くなってしまいます。つまり、書き込みモードでデータベースにアクセスしているプロセスがいると、その間は他のプロセスがデータベースに接続しようとするとブロックされることになります。

    DBMによるデータベースサーバ - mixi engineer blog
  • mixi Engineers’ Blog » libmemcachedで快速キャッシュ生活

    みんな大好きなmemcached。今日はBrian AkerのC言語用クライエントライブラリについて書きたいと思います。日語の情報がとても少なく、ドキュメンテーションも英語だけという事で興味はあるけど手をつけていないという方のお役に立てれたらなと思います。 題の前に why libmemcached? 既にlibmemcacheが存在するのに何故、libmemcached?かと言うと理由の一つは最近libmemcacheの開発が止まったからです。家ではそれが理由でlibmemcacheではなくlibmemcachedを推奨してますね。又、効率的なメモリ使用、Consistent Hashing、様々なハッシュアルゴリズム、新しいオペレータに対応している等という宣伝文句があります。apr_memcacheというライブラリも存在しますが自分は使った事がないためノーコメント。 ただ、推奨さ

    mixi Engineers’ Blog » libmemcachedで快速キャッシュ生活
  • JanRainのOpenIDをhttpsへ対応させる正しい方法 | 社会起業家の挑戦日記

    JanRainのOpenIDをhttpsへ対応させる正しい方法JanRainのPHP OpenID Libraryの件は先日ブログに書きましたが、その後mixi内にあるOpenIDにてDNS詐称によるセキュリティリスクを高める方法ではなく、安全な形でmixiなどのhttps経由のOpenIDを利用する方法が紹介されています。 PHP OpenIDを無理やりmixi対応させる方法として以下の方法がありました。 curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0); しかしこれではセキュリティ上の問題があるということで、代わりに下記方法が紹介されています。 curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, true); curl_s

  • mixi openidに対応したファイルあぷろだの作り方 - labolo

    mixi openidプラットフォームを利用すると、通常のユーザ認証作業を代行してくれるだけでなくて、マイミクのみ認証をしたり、指定のコミュニティーに入っている人だけ認証を実施したりできる。 mixi OpenIDとは そこで今回は、指定のコミュニティーに所属している人だけがファイルのアップロード・ダウンロードが可能なwebサービスを作ってみる。気でサービス化する気は無いので、ひどい完成度です。 まずこのリンクをクリックしてみてください、いきなりmixiに飛ばされると思います。 ニコニコ動画コミュに参加している人だけが使えるあぷろだ mixiでは、mixiアカウントを持っていて且つニコニコ動画のコミュニティーに参加している人だけが認証が通るようになっています。 ここで「認証を許可する」を選択すると元のページに戻ってきて認証が完了し、ファイルのダウンロードとかアップロードができたりするよう

    mixi openidに対応したファイルあぷろだの作り方 - labolo
    shimooka
    shimooka 2008/09/17
    コミュニティ認証を使った例
  • かんたん友人検索 その弐 - mixi engineer blog

    朝のジョギング生活を絶賛継続中ですが、あまり体重が減らなくてショボンヌなmikioです。さて今回は、Tokyo Dystopiaを使った検索機能「かんたん友人検索」の設計と実装についてお話しします。 全体の戦略 Tokyo Dystopia(TD)は単なる全文検索用のインデックス管理ツールです。多数の文字列の中から特定のパターンを含んだ文字列を特定する処理を高速化することはできますが、逆に言えばそれしかできないのです。住所を市区町村単位で限定して結果を絞り込むとか、ログイン時間が近い順に並び替えるとかの高機能は備えていません。Hyper Estraierにはそういったアプリケーション寄りの機能を持たせていましたが、逆にコードベースが肥大化して保守や最適化がしにくくなってしまいました。その反省を踏まえて、今回は、「全文検索による対象の絞り込み」だけはTDにやらせて、その他の機能は全て専用に書

    かんたん友人検索 その弐 - mixi engineer blog
  • 自作自演 - 知らないけどきっとそう。

    昨日ちょっとOpenIDのイベントでお話してきました OpenIDつかってーつかってぇーって言ってるだけなのもなんなので、自分でもいっちょ作ってみる罠 それだけで Mashup Awards 2017 に応募する資格があるらしいですし 先に公開しちゃってていいんだっけ ネタはまあとりあえず mixi OpenID のマイミクシィ認証 です あと、Wassr 認証API http://ido.nu/ayaya/waxi.html まずログインしてミクシィ認証 初ログインのときは「Wassr を設定する」からWassr 認証APIも必要です twitterのときみたいにあやしいサービスにIDとパスワード預けなくてGOOD 「mixi の日記に書く」を押してGO マイミクが使ってくれれば、勝手にWassrのおともだちがつながってくYO やめたくなったら、ここ からWassr認証を無効にできます

    自作自演 - 知らないけどきっとそう。
    shimooka
    shimooka 2008/09/12
    これいいな(openid使ったサンプル的な意味で)
  • mixi OpenIDのサンプルコードをPHP OpenID Libraryを使って動かしてみた(訂正) - 大阪で働くソーシャルゲームエンジニア ダイアリー

    ※mixiコミュで誤りをご指摘頂いていたみたいなので、内容を修正致しました。 ミクシィは8月20日、オープンな分散認証技術「OpenID」とソーシャルネットワーキングサービス(SNS)「mixi」を融合した認証サービス「mixi OpenID」を同日15時に提供開始することを発表した。 mixiがとうとうOpenIDに対応しましたので、 PHP OpenID Libraryを利用してmixi OpenIDでログインするサンプルプログラムを動かしてみました。 以下の手順をご覧ください。 STEP 1.インストール ダウンロードして解凍するだけです。 特に難しい設定は必要ありません。 cd /var/www wget http://openidenabled.com/files/php-openid/packages/php-openid-2.1.1.tar.bz2 tar jxvf php-

    mixi OpenIDのサンプルコードをPHP OpenID Libraryを使って動かしてみた(訂正) - 大阪で働くソーシャルゲームエンジニア ダイアリー
    shimooka
    shimooka 2008/09/01
    root権限がない場合のやり方だとダメだった(PHP5.2.6/curl-7.12.1)/でけた
  • CMSならRCMS - あらゆる要望に応える最強のCMS

    4,000社を超える導入実績 金融機関・商社・メーカー・IT関連など、上場企業から中小企業に 至るまで、幅広い法人・団体で採用されています あらゆる要望にお応えしています コーポレートサイト 多言語サイト イントラサイト 会員制サイト コミュニティサイト 求人サイト メディアサイト オウンドメディアサイト ECサイト 豊富な標準機能 250以上の標準機能と運用者別のメニューなど充実した管理機能を装備。多種多様なサイト構築を容易にします。 コーポレートサイトはもちろん、会員制サイト、メディアサイト、イントラサイト、ECサイトなど、通常なら追加開発が必要なサイトも、デフォルトの機能内で構築をすることができます。 標準機能の詳細へ

    CMSならRCMS - あらゆる要望に応える最強のCMS