サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
conmame.hatenablog.com
先ほど、Kageというgemが公開されました。 https://rubygems.org/gems/kage https://github.com/cookpad/kage このgemは、クライアントからのリクエストを複製し、バックエンドの複数のサーバに同じリクエストを送る事が出来ます。これを使うことで、これから本番に適用するコードの負荷試験や、書き込みをDummyDBに逃がして、slaveを本番に接続するなどして本番データを使用した負荷テスト、ミドルウェアのバージョンアップのテストを行うことが出来ます。 実際にクライアントに返されるレスポンスデータはproductionサーバとして指定されたサーバから返却されるため、本番のリクエストを使用してテストが簡単に行えるようになります。 実際に本番のアクセスを流す方法にはいくつかあると思います。Kageが導入されたサーバに直でトラフィックを流す方
Amazon AWSで提供されている、VPCというサービスがあります。VPCは公開用のPublic SubnetとPrivate Subnetの2つを作成することが出来、VPN接続もサポートしているため、AWS上に簡易的なDCの様なものを作成でき、VPNを使って会社やDCと繋ぐことが可能になっています。実際には、VPCには4つの種類があり、Private Subnetだけ、VPN接続点無しなどが選べます。VPNの接続には1時間毎に課金されます。 今回は、VPC with Public and Private Subnetsを使って、VPC上にVyattaでVPNサーバとNATインスタンスを作成しました。NATインスタンスはAmazonから提供されているのですが、NATしか出来ないので、Vyattaを使うことで様々な機能を実現することができます。また、VPN接続点を使用しないので、VPN接続
何やら回分が流行ってるのでこんなの書いてみた。 https://gist.github.com/2500991 # -*- coding:utf-8 -*- class String def kaibun self + self[0..-2].reverse end end puts "こんまめ".kaibun ただこれだけ。 https://rubygems.org/gems/kaibun gemも作ったのでどうぞ。 4月16日に、クックパッド株式会社に入社しました。 入社して2週間過ぎましたが、本当に優秀な方々に囲まれて仕事をしています。 思ってた以上にスピードが早い環境でワクワクしています。 まだまだ、システムを把握する事で精一杯ですが、目標も決まり徐々に業務に参加していっています。 クックパッドでの仕事も前職と同じく、インフラエンジニアをやります。 クックパッドのインフラは、全てA
現在いる場所で遊ぶ?foursquareというサービスがあります。APIも提供されていて位置情報などなどを使って遊ぶ事が出来ます。 RubyからAPIを簡単に使えるライブラリがあったので使ってみました。リファレンスがないですが、ソースを読めば問題ないです。 インストールは gem install foursquare 使い方を引用すると require "rubygems" require "foursquare" fq = Foursquare.new('username_or_phone','password') #ログイン fq.test #ログインチェック #以下、情報の設定や取得 fq.cities fq.venues(lat,long,radius,limit,query) fq.tips(lat,long,limit) fq.check_city(lat, long) fq.
日本語全文検索エンジンというと、sennaやTritonnなどが有名ですが、今回はMysqlftppcを使ってみました。 Mysqlftppcは「MySQL full-text parser plugin collection」の略称で、プラグインとして以下のものが提供されています。 bigram plugin mecab plugin space plugin suffix plugin snowball plugin 公式サイト: SourceForge.net: mysqlftppc 今回はこの中から、Mecab Pluginを使用しました。 #Mecabインストール cd /usr/local/src wget http://sourceforge.net/projects/mecab/files/mecab/0.98/mecab-0.98.tar.gz/download tar
今回は、MySQL Clusterでクラスター構成を作って、SQL NodeをHeartbeatで冗長化してみてるメモ Keepalived + LVSも試したい やること MySQL Clusterを構築してみる 3種類のノードが必要 Management Node Data Node SQL Node 今回は以下のような構成 100 sql 101 manage sql 102 data 103 data インストール wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/mysql-cluster-gpl-7.1.3-linux-i686-glibc23.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/ tar xzvf mysql-cluster-gpl-7.1.3-linux-
今年もLLイベントのLL Tigerが開催されたので行って来ました。 内容の私的メモ。途中で書いた内容が一部消えてしまったので、抜けがあります。。。 LL Tiger » 公開資料 Language Update Perl 404 Blog Not Found:perl6 - LLTiger、弾のスライド Perlテラインターナル Perl6 FizzBuzz時間かかるけど動く Rakudo * <-簡単にPerl6を試せる subルーチンの中にsubルーチンがある Exception (try catch/オブジェクト内のプロパティ) Smart Match Multi Dispatch (Hyper)Operator <-自分で演算しを定義出来る(Rakudo *は Hyperが動かない) OO Python Python2.7がPython2系最後 Pyhon3の機能の取り込み Py
先日、Adobeから「Adobe HTTP Dynamic Streaming」が公開されたので、使ってみました。 これは、動画ファイルの配信や従来はRTMPなどを使用していたLive配信をHTTPで配信出来るようにするもので、HTTPを使用するため、80番ポートを開けておくだけでよく運用も楽になり、配信されるフラグメントファイルも従来のキャッシュサーバにキャッシュ出来ます。 また、Apacheやキャッシュサーバを増やすだけでスケールが可能になります。 動画データを全て読み込むのではなく、順次フラグメントファイルを要求するので、フラグメントファイルの転送が遅いと再生が止まってしまいます。シーク時にはシーク先の時間に該当するフラグメントファイルから読込みをするだけなので、シーク後すぐに再生が開始されます。 クライアントとしては、Flash Player10.1から対応していて、同時に公開され
MySQLを使用したテスト環境を構築する時に便利なMySQL Sandboxを使ってみました。 1台のノードに複数のバージョンのMySQLをインストールしたりする際は、MySQLサーバの共存の設定やポート番号などを設定したりと何かと面倒でしたが、Sandboxを使用することで簡単に解決することが出来ます また、簡単にレプリケーション環境を構築出来るほか、コマンド一発で全MySQLサーバにSQLを発行できたり、インストール時の状態に戻すことが可能なので、テストをする際に重宝します インストール perlがインストールされていなかったら、インストール sudo yum -y install perl sudo sudo cpan -i MySQL::Sandbox 使用しているOSにあったMySQLのバイナリをダウンロード wget http://dev.mysql.com/get/Downl
PXEBootとPuppetでOSのインストールといろんな設定を自動化・省力化しようと思って試行錯誤中です。 試行錯誤のメモ やること PXE Boot+Kickstart+Puppetを使用してサーバの自動設定 PXE Boot (CentOS5.5) yum install tftp tftp-server /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -c -u root -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 only_from = 192.168.147.0/24,12
いつもお世話になっているREXMLでXMLをパースしようとしたら、パースできないっす!っといって落ちるのではまった。 こんなエラーを出して落ちた。 /usr/lib/ruby/site_ruby/1.8/rexml/parsers/treeparser.rb:95:in `parse': # (REXML::ParseException) エラーはこの箇所 REXML::Document.new(open("http://hoge/hogu")) REXMLは内部でUTF-8を使用しているので、そのあたりかとおも思ったけど、パースしようとしてるXMLはもちろんUTF-8なわけで。 悪あがきで文字コードを変えて読込ませたりしたけどダメ。 で、さらに悪あがきで原因と思われる文字を消そうとしても何か上手くいかない。 ターンエイが原因と思われるんですが、上手く置換できないという自体に・・・。 なぜ
Google Chromeがバージョン5BetaからAdobe Flash Playerプラグインを統合し、自動的に更新されるようになりましたが、Flashなどの開発でDebug Playerを使いたい場合はどうしたものかと思って調べたメモ。 IEやFx、SafariなどでDebug Playerを使いたい場合は、http://www.adobe.com/support/flashplayer/downloads.htmlからDLしてインストールしたりするのですが、Chrome 5Betaではこれでは有効になりません。(インストールされブラウザ側では認識されています) 有効にするには、Chromeと統合されているFlashPlayerを無効にします。 方法は アドレスバーに「about:plugins」と入力して、Plugin管理ページを開きます。そこで、「/Applications/Go
iPhoneやiPod touchのアプリライクなWebサイトを簡単に作れる、iWebKitという物があるので使ってみました。 公式サイトはSnippetSpace | Web Design Tools & iWebKit iPhone webapp framework.SnippetSpace | Web design tools and iWebKit iPhone website framework 公式サイトからDLして、中に入っているJSやCSS・画像をアップロードして、指定されたタグを使って作るだけで、簡単にアプリっぽいサイトが作れます。 リファレンスやサンプルも充実しているのですぐに作れます。 最新版の4.5.1を使って、さくっと、ニコ割ゲームランキング(まとめ)をiPhone対応にしてみました。 iPhoneやiPod touchのSafariで http://mame-l
先日、Google Chrome Frameがリリースされました。(早期リリース版なので開発者・テスト向けとなっています) これは、IE6-8に対応したPluginで、簡単に言うとIEでChromeのレンダリングエンジンとJavascriptエンジンが使用出来るようになるものです。 開発者を悩まさせてきたIEをChrome化するというGoogleのアイディアに驚きましたが、Google WaveをIEで使用出来るようにするのが狙いだと思います。 しかし、HTML5の機能が利用できるようになったりJavascriptの実行が高速化されるのでIEしか使用出来ない環境ではかなり使えるものではないかと思います。 少し調べたメモ。 導入は簡単でGoogle Chrome Frame — Google Developersからインストールするだけです。 しかし、Chrome Frameを有効にするには
先日、id:aTaGoが、ニコ動の時報だけ消せたらいいのにというような事をTwitterにポストしていたので、少し書いてみた。 現在、ニコ動のPlayerにはプレミアム会員向けに「ニコ割OFF」機能が実装されています。また、プレミアム会員でなくてもマーキーエリアに表示する情報が書かれたXMLをブロックする事で、ニコ割を回避する方法もありますが、これらはニコ割ゲームやアンケート、生放送の予定通知なども含めてOFFにしてしまいます。時報だけ見たくないという場合には、対応していません。 WEBrickを使って、時報と思われる箇所だけをマーキー情報XMLから消すProxyを簡単に書いてみました。このProxyを通過させれば時報と思われる物は再生されません。判定自体が甘いので、時報以外の物も除外してしまう可能性があったり、わざわざローカルでProxyを起動しないといけないので、自由に改変して使って下
JetpackにあるAPIの中で少し変わり者のAudio APIですが、このAPIを使ってFeatureを作っていて少し困った事があったのでメモ。 このAPIはFirefoxで音声を簡単に録音出来るようにするAPIなのですが、録音した音声ファイルがFeatureをPurgeするタイミンで削除されないので、Feature削除後も残ったままになってしまいます。1つの音声ファイル自体はさほど大きくならないと思いますが、削除したいという場合は、以下のディレクトリに保存されているので、削除するといいかと思います。 Firefoxプロファイルディレクトリ以下の「jetpack\audio」内に保存されています(拡張子はogg) この音声ファイルを削除するかaudioディレクトリ事削除してしまっても構いません。 ちなみに、Audio APIを使用するコードは以下のようになります(リファレンスより) va
昨日、Mozilla勉強会@東京(https://dev.mozilla.jp/events/workshop01)でJetpackについて話しました。 Jetpackとは何か〜Featureの作成方法・APIの紹介〜公開方法・Tipsといった内容を話しました。 やはり、Jetpackはまだまだ普及しているとは言えない状況で、開発途上だと感じました。 しかし、APIの追加や修正など(APIの変更に猶予期間など欲しいですが…)が頻繁に行われており、今後Featureで出来る事は増えていくと思います。 勉強会の最後でJetpackについての要望などなどの議論がありましたが、個人的にはセキュリティ面(特権アクセスが復活したりとか、現状で曖昧になっているところを早く仕様として決めて欲しいです)や作成したFeatureがどのバージョンのJetpackで動作するかを記述出来るようにはして欲しいと思いま
先日、ニコ生アラート(本家)がリリースされました。 これで加入しているコミュニティや運営生放送の開始を逃さずチェック出来るようになりました。 また、アプリの公開とあわせてAPIも公開されたのでツールの作成もしやすいです。 APIの仕様やレスポンス自体は生放送・ニコ動のメッセージサーバからのレスポンスと殆ど同じなので認証API1・2とメッセージサーバへの接続あたりをツールを作る下準備も兼ねてRubyで超簡単に書いてみました。 require "net/https" require "uri" require "socket" require "rubygems" require "nokogiri" NICO_ID = "あいでー" NICO_PASS = "ひみつ" def access_api(url, post_data = nil) uri = URI.parse(url) Net:
先日、ニコニコ静画がリリースされました。 お題に沿った静止画をスライドの様に再生し、コメントをつける事が出来るサービスです。 そこで、Playerの使用しているAPIを調べてみました。 どうやら、ニコニコ静画では画像の読み出しに認証が必要ないようです。 追記: 画像の取得に認証は必要ないですが、listの取得には認証が必要でした スライドに使用する画像やコメントは http://seiga.nicovideo.jp/api/theme/res/list?theme_id=ID で取得出来ます。 レスポンスは以下のようになっています <response> <res_list> <res> <id>30993</id> <image_id>31240</image_id> <number>1</number> <created>2009-11-16 02:01:20</created> <co
少し前から、TwitterのAPIにStreaming APIというものが実験的に追加されました。 これは、今までのAPIではXMLを取得する度に接続して切断してという処理を行っていましたが、このAPIはPUSH型で接続した後は接続がクローズされるまで情報が連続的に送られてきます。 公式Wiki: Sign in with your Twitter account | Twitter Developers 認証はBASIC認証のみに対応しており、HTTPでアクセスします。 詳細はWikiを参照した方が新しい情報を取得できます。 アクセスする際には、レスポンスを順次扱えるライブラリなどが必要なのですが、FlexのHTTPServiceでは逐次情報が取れなかったので、Socketを使って簡単に書いてみました。 Streaming API用の簡単なライブラリを作ったほうが便利と思ったので、今度つ
先日、招待していただきGoogle Waveを使い始めました。 9月30日からPublic Previewが始まっていますが、まだ周りにユーザがいないのでコンタクトも2名しかいません。 そのため、あまりバリバリ使えないので残念・・・。 現状ではGoogle Waveに招待してもらったユーザはしばらく他のユーザを招待出来ないので、既存のGoogle Waveユーザを見つけてコンタクトに追加するしかないようです。 Status of Google Wave - Google Help Google Waveとは?という方は Status of Google Wave - Google Help 開発チームが明かす、Google Waveの実装概要 − @IT ざっくり Google Wave (1) - こたにき が参考になります。 少し使ってみました。 最初は使い方がわからず少し戸惑いました
先日、mixiエコーがmixiボイスに名前を変えて正式リリースされました。(アドレスはrecent_echo.plのようにechoのままですが) しかし、APIの提供も今のところなくRSSの配信もないので、いちいち見に行くのも面倒だったので、オレオレUtilをRubyで作ってみました。 自分用に簡単に作ったものなので、もし使用される場合はお好きに改造してください。(特にエラー処理まわり) 機能 ボイスに投稿(返信機能) マイミクのボイス・自分のボイス・自分あての返信を取得 メッセージの削除 ボイスの取得はページ指定と指定ページからの全件取得が可能です ボイスに投稿する時に、返信相手のIDと返信したいメッセージのtimeを指定すると返信になります(Webの方ではどちらかのパラメータがかけていても返信が成功するようですが、リンクに初期値が挿入されるため返信先を閲覧する事が出来ません) 今は、R
ついにニコニコ動画のプレミアム会員が50万人に近づきつつあります。 現在、ニコニコ動画のサイト上で50万人までのカウントダウンが行われています。 記事: ニコニコラム‐いくぜ!プレミアム50万人 記事にある通り、10分更新なのですが見に行くのも面倒なので、勢いでTwitterに残り人数をお知らせするBOTを作りました。 (期間限定BOTですので、50万人突破して数日したらアカウント消します) フォローはこちらから: 人間五十万円 (half_million) on Twitter 10分毎にこんな感じでつぶやいてます ()の中は10分間で増減した人数です。 いつ50万人突破するか楽しみですね!
結構、期間が開いてしまいましたがNicoCanvas(α)を晒してみたいと思います。 といってもα版かつ自分用に作った物なので、まだまだコメントの衝突判定などに不具合があったり、ActionScriptとFlexの練習に作った物なのでコードが汚かったりします・・・。 随時、改善・機能追加をしていきたいと思います。 よろしければ動画なりに重ねてお使い下さい。 9/7 コメントのデフォルト表示時間を変更しました DLはhttp://mame-lab.com/files/nico_canvas/nico_canvas.zipから(NIS2009でウィルスチェック済) NicoCanvasの概要はNicoCanvas製作中 - まめ畑 ちょっとしたこと コメントサイズは画面サイズが「512*384」で使用時用にサイズを設定しています(サイズの変更可能) コメントは4秒で画面を駆け抜けます(設定可能
去年にはLLL Futureに参加しましたが、今年もLLTVに参加してきました。 各セッションの簡単なまとめ 公式サイト: Lightweight Language Television (LLTV) 朝から生テレビ 並列化プログラミングの話しやソフトウェアのアーキテクチャがメインでした Perlの話し Ver5.10と5.10.1の違いは殆どBug Fix Python Ver3.0はライブラリが追いついてないよ Ver2.5系は3.0系への移行を PHP やっとネームスペースとかクロージャーが入ったよ Ruby 1.9.1でた 1.8系がまだ使われてる 海外では1.8.6をまだ使ってる人が多い やっと1.9.1からVMベース セキュリティキャンプの話し Rubyの性能向上やLinuxカーネルのパッチ送ったり 言語のエンジンのところをいじる・興味を持つ若い人が多くて、それをサポートする大
Ubuntuを使っていて少し困ったのでメモ。 debian系は今まで使った事無かったので困った。 apt-get upgrade でパッケージをアップしようとしたら、保留に数件あると出た。 そのパッケージを更新すると他のパッケージが削除される時に保留になるそうで。 保留の物をインストールするには以下のようにする。 apt-get dist-upgrade 以下のように入力すると、どのパッケージが消されるか表示出来る。 apt-get -s dist-upgrade なるほど。
今年もOSCが京都で開催されているのでまるまる2日間連続で参加しています。 1日目のセミナーで参加したものを簡単にまとめておきます。 間違いなどありましたら指摘をお願いします。 オープンソースでレンタルサーバー管理(VHCS/ispCP) サーバ管理のコントロールソフトって有料のが多いよね 6〜13万位 レンタルサーバでヴァーチャルドメインで複数管理しようとするとお金かかる イニシャルコストで約2000円位お客様に請求しないといけない オープンソースでいいものを探したらあった 3年以上オープンソースの管理ソフトを使ってレンタルサーバを管理してる VHCS(VHCS open source hosting control panel for simplified webserver management)使ってたけど開発止まってたorz ispCP(http://isp-control.ne
最近、サーバのSSHサービスに対し、不正なアクセスを試みた形跡が増加してきました。ブルートフォース攻撃も若干見受けられるので、何か対策を行わないといけなと思いDenyhostsを導入しました。思ったよりも簡単に導入が出来たので、攻撃対策をしたい方は導入を考えてみてはいかがでしょうか? ツールの説明から、DenyHostsは不正な攻撃を察知して防御するためのツールです。設定した回数不成功ログインが繰り返された場合に、そのIPアドレスを/etc/hosts.denyに記録し接続を拒否します。また、怪しい活動をしているIPアドレスを集めている専用サーバからIPアドレスをダウンロードして予防したり、こちらからアップロードすることも出来ます。不成功ログイン回数の設定、一定時間後の解除までの時間、レポートメールなどの設定が可能です。ここでは基本的な設定を説明します。 また、このツールは、Pythonが
2009/5/24アップデートしました Jetpack Featureがなかなか面白いのでいじっています。 既にブックマークレットなどでありますが、今見ているページをTwitterにPOSTするJetpack Featureを作ってみました。 とりあえず「見てるNow!」という名前にしてみました。 インストールはこちらから: mame-lab.com: The Leading Mame Lab Site on the Net インストールすると、ステータスバーにこんな感じのが出ます。 後は、POSTしたいページで、ここをクリックするだけです。 sessionStorageを使用してIDとPASSを保存するのでブラウザを終了すると保存してある情報は消えます。 なので、ブラウザを起動して初めてPOSTする際にIDとPASを入力するプロンプトが出ます。 ステータスバーの表示に日本語を使用すると、
次のページ
このページを最初にブックマークしてみませんか?
『conmame.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く