タグ

ブックマーク / naoya-2.hatenadiary.org (23)

  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

    また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
  • RubyMotion を1年以上使い続けてみての雑感 - naoyaのはてなダイアリー

    RubyMotion Advent Calendar 2013 に何か書こう、ということでエントリ。 ご存知のように iPhone アプリの HBFav は RubyMotion で作っています。Objective-C ではなく。以前は Titanium Mobile で作っていましたが、去年にバージョン2として作り直すにあたって RubyMotion に移行しました。 RubyMotion に関しては以前、以下のエントリで概要を説明しています。 RubyMotion - naoyaのはてなダイアリー それから、今年 5月に開催した RubyMotion カンファレンスのスライドなどもあります。 実践RubyMotion - Speaker Deck RubyMotion が発表されたのは 2012 年の5月 とかで、それからずっと使い続けているので1年半近くが経ったことになります。App

    RubyMotion を1年以上使い続けてみての雑感 - naoyaのはてなダイアリー
  • 「書く」のは特別な道具 - naoyaのはてなダイアリー

    This is why you shouldn't interrupt a programmer (なぜプログラマの作業に割り込むべきではないか) という4コマ漫画が話題になっていた。これは別にプログラマではなくても「わかるわかる」という感じの話。 コメントを見ると、だから作業を中断してもすぐ再開できるように自分の考えることをなるべく書き出すようにしているという人が結構多かった。なるほど。 今日は雨が降ったせいで予定が一つキャンセルになったことだし、ちょうどいい機会なので、文章で何かを書くということについて自分が思っていることを書いてみようとおもう。以前 Software Design のドキュメントの書き方特集みたいな号に似たような趣旨の話を寄稿したのだけど、「書く」というのは単に物事を忘れないようにするための行為に留まるものではなくて、自分の考えを整理するための道具なのだ、ということが

    「書く」のは特別な道具 - naoyaのはてなダイアリー
    willnet
    willnet 2013/11/08
    良い話
  • RubyMotion のテスト、継続的インテグレーション - naoyaのはてなダイアリー

    昨日は RubyMotion のもくもく会でした。 先日の RubyMotion Kaigi 2013 で 実践RubyMotion という題目で発表したのだけど、テストについてはprintデバッグ上等だ、このクソムシがとか言ってかなり適当に済ませてしまった。ので、もくもく会ではテスト周りに手をつけるぞと思い、そういえば Travis CI が RubyMotion に対応してたのも思い出し RubyMotion のテストを Travis CI で回すのを検証した。 が、手間取るかと思った Travis CI 周りはとっても簡単で、.travis.yml に language: objective-c と書くだけであっさり動いてしまった。 というわけで RubyMotion アプリの継続的インテグレーションは .travis.yml を一行書けば完了です。終わり・・・じゃあまったくブログ記

    willnet
    willnet 2013/06/28
    参考になる!
  • 開発メモ#6 : ログの取り扱い : GrowthForecast, Amazon S3, Treasure Data で心労ゼロ - naoyaのはてなダイアリー

    開発メモ#6 です。前回から少し間があいてしまいました。 開発メモ#2 : AWS でのホスト / クラウドネイティブなデプロイ - naoyaのはてなダイアリー で書いたように、EC2 へのアプリケーションのデプロイにあたっては Elastic IP の利点を活かしてカジュアルにホストを入れ替えまくっています。ちょっとこのデプロイは慎重になりたいな、と思ったらスナップショットからインスタンスを立ち上げては切り替える、の繰り返し。 この運用をしていると、スナップショットとの差分ができやすいのは chef-solo で吸収するというのが前回、前々回のはなし。 もう一点問題があります。アクセスログやアプリケーションのログです。フロントエンドのサーバをあっちこっち切り替えているうちに、そのままではログが分断されてしまう。ホストを Terminate しようものならログは消失してしまいます。 この

    開発メモ#6 : ログの取り扱い : GrowthForecast, Amazon S3, Treasure Data で心労ゼロ - naoyaのはてなダイアリー
    willnet
    willnet 2013/02/20
    「その変換のために定期的にバッチスクリプトとか回すの?」─ いいえ、S3 でチェックボックス一個です。/知らなかった!
  • AWSブログを3行でまとめる試み : Route53 にDNSフェイルオーバー機能が追加 - naoyaのはてなダイアリー

    DNSフロントエンドサービスのRoute53でフェイルオーバー機能が使えるようになったぞ Route53に参照先へのHTTP/TCPヘルスチェックがついて、ダウンしたとき用のレコードを登録できるぞ S3 で静的ページ作ってバックアップサイトにしとくといいかもね。ヘルスチェックの詳細は Route 53 Developer Guide をチェケラッ cf: http://aws.typepad.com/aws_japan/2013/02/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting-.html コメント ヘルスチェックもついてるので EC2 インスタンスを2台作って冗長性を持たせるというのにも使えるだろうけど、それなら ELB を使えば良いので、解説にもある通り S3 で静的ページが現実的

    AWSブログを3行でまとめる試み : Route53 にDNSフェイルオーバー機能が追加 - naoyaのはてなダイアリー
    willnet
    willnet 2013/02/12
    べんりそう/nginxすら反応できないとき用
  • 開発メモ#2 : AWS でのホスト / クラウドネイティブなデプロイ - naoyaのはてなダイアリー

    開発メモ#1 : Cinnamon によるデプロイ - naoyaのはてなダイアリー に引き続き、その2です。 最近は個人で作るような小規模なものでも AWS を利用してホストしています。たとえ個人で作ったものとはいえ、利用するユーザーがいる以上はおいそれと落とすこともできない。かといって運用にあまり手間をかけたくない。その辺り、AWS で解決できる点が多い。 AWS の良いところはインフラが動的なので「後からどうとでもなる」ところ。 インスタンスの性能が足りないのであればスケールアップするでもいいし、冗長性が欲しくなったらそのタイミングで ELB (ロードバランサ) を用意すれば良い。その時、仮想化されていないハードウェアを使っていると移行のためにサーバーを再セットアップしたりアプリケーションをデプロイし直したりと手間がかかるところ、AWS ではその辺りの手間がほとんどかからない・・・と

    開発メモ#2 : AWS でのホスト / クラウドネイティブなデプロイ - naoyaのはてなダイアリー
    willnet
    willnet 2013/01/29
    IP付け替えでステージングをマスターに切り替える
  • Pixate - naoyaのはてなダイアリー

    数日前に Pixate という iOS 向けミドルウェアがリリースされました。なんとiOSアプリの見た目を css で書けるという、全ウェブ開発者感涙のライブラリ。こりゃすげえ。ただし無料というわけにはいかず、18,000円くらいでこざいます。 2月9日 追記 トライアル版と、個人利用のための無料版が出たようです。 RubyMotion の teacupのように css チックな DSL で書ける、というものはありましたが Pixate はその辺とは次元が違ってて、普通に css ファイルに css を書くことができる。 button.blue { position: 60, 100; size: 200, 40; border-radius: 7px; font-family: 'Courier New'; font-size: 18pt; font-weight: bold; bord

    Pixate - naoyaのはてなダイアリー
    willnet
    willnet 2013/01/26
    きになる
  • iOS版Chrome リリースに見るiOSプラットフォームの制約 - naoyaのはてなダイアリー

    iOS版の Chrome がリリースされましたね。 アプリとしての使い勝手どうこうというところよりも、JavaScript エンジン周りをどうしているのかに興味があったのだけど、TechCrunch の記事 (http://techcrunch.com/2012/06/28/hands-on-with-googles-chrome-for-ios-just-like-chrome-for-android-only-slower/) を見る限り v8エンジンは搭載されていないし、当然 UIWebView での JIT コンパイラも有効にはなっていないように見えました。つまり、JavaScript の実効速度に関して言えば、Mobile Safari のそれを上回ることはない。(厳密に言えば、純粋な JavaScrpit の実効速度以外のところの実装が良くてトータルとして速い、というようなこと

    iOS版Chrome リリースに見るiOSプラットフォームの制約 - naoyaのはてなダイアリー
  • リアルグラフへの違和感 - naoyaのはてなダイアリー

    なんか facebook のコメント blog とかに表示するやつに投稿されてるコメント、なんか素直に読めない感じのコメントが多い。・・・うまく言葉にできないので過激な言い方をすると気持ち悪いと感じるというか。ひどい言い方で、すみません。 実名とかで現実のアイデンティティを担保にとれば、コメントとか炎上もなくなってまともになるでしょうって話だったけれど、facebook でそれが現実になってみたが結果的にはぜんぜんまともじゃなかった。 アイデンティティが現実世界のそれだから、いろんな意味で発言の評価が人に結びつけられた場合のフィードバックが強すぎるんじゃないだろうか。書く側は、なんだか立派なことを言ってみたり思ってもないことを言ってみたりと格好つけるし、読む側からの印象としてはそれ全部がひどいポジショントークに見えてしまって気分が萎える。 たしかに自分も、実名・・・というか現実のアイデン

    リアルグラフへの違和感 - naoyaのはてなダイアリー
    willnet
    willnet 2012/06/05
    リアル友人に限定して、かつ疎遠になった人を簡単に削除できるようなfacebookがあればいいのかな
  • Titanium Mobile 2.0 対応など - naoyaのはてなダイアリー

    Titanium Mobile がメジャーバージョンアップして SDK が 1.8 から 2.0.1 になりました。HBFav を SDK 2.0.1 に対応させる作業をひとまず終えたので、以下雑感など。 Titanium Mobile 2.0.1 で何が変わったか Release Notes http://docs.appcelerator.com/titanium/release-notes/?version=2.0.1.GA 大きな変更点はレイアウトシステムの更新です。加えていろいろとバグフィックス。ほかにも Appcelerator Cloud Services (ACS) という BaaS 連携が発表されていますが、純粋に SDK のアップデートというとレイアウトシステムとバグ修正が主なところ。Andorid位置情報対応の強化、Module API のアップデートもありますが、こ

    Titanium Mobile 2.0 対応など - naoyaのはてなダイアリー
  • Meteor.js - naoyaのはてなダイアリー

    http://www.meteor.com/ で公開された Meteor.js を少し触ってみました。TechCrunch なんかでも話題になっていましたね。 Meteor.js は JavaScript によるウェブアプリケーションフレームワークですが、クライアントサイドでもサーバーサイドでもない、"Isomorphic" なフレームワークです。 コンセプトとしていくつか特徴があるのですが、その最たるものは "Reactive Programming" で、モデルやセッションなどのストレージを更新するとその更新内容がリアルタイムに、そのアプリケーションを開いている全クライアントに伝わるようなアプリケーションを簡単に作ることができます。 この辺は実例を見るのが早いです。 http://www.meteor.com/examples/leaderboard ここにある動画では、あるブラウザで

    Meteor.js - naoyaのはてなダイアリー
  • HBFav というはてなブックマーク iPhone アプリを作りました - naoyaのはてなダイアリー

    ちょこちょこと余暇の時間を使って、HBFav という iPhone アプリを作りました。 HBFav は、はてなブックマークの「お気に入り」機能を閲覧するためのアプリです。はてなブックマークの「お気に入り」は、気に入ったユーザーがブックマークしたブックマークを一覧する機能、つまり、Twitter で言うところのタイムラインです。それを見る専用のアプリがほしかった、ということで作ったものです。 ・・・ということで、繰り返すと、HBFav はタイムライン形式でソーシャル・ブックマークを楽しむためのアプリ。はてなブックマークのお気に入り機能を活用しているぜ! という方におすすめです。 HBFav は、App Store からインストールできます。 App Store - HBFav : http://itunes.apple.com/app/id477950722 Kindle とともに HBF

    HBFav というはてなブックマーク iPhone アプリを作りました - naoyaのはてなダイアリー
    willnet
    willnet 2011/11/11
    少し離れたつながりにいる人々は、異なる価値観、時間軸、生活様式に暮らしているから、そのどちらが自分にとって非連続な価値をもたらすかと言えば
  • Titanium Mobile についての勉強会資料 - naoyaのはてなダイアリー

    昨日は gumiStudy#5 でした。何か Tech Talk を、ということだったので最近いじっていた Titanium Mobile について整理して、紹介してきました。 Titanium MobileView more presentations from Naoya Ito. (フォントがひどいですね・・・すみません。http://www.slideshare.net/naoya1977/titanium-mobile/download からダウンロードできます) 先日書いたエントリ (http://d.hatena.ne.jp/naoya/20101011/1286799669) のとおり、Titanium Mobile を使うと JavaScript でネイティブアプリを開発することができます。しかも iPhone/Android マルチプラットフォーム対応。最近は Blac

    Titanium Mobile についての勉強会資料 - naoyaのはてなダイアリー
    willnet
    willnet 2010/10/20
    いわゆるクラウド側にデータを置いてそれを表示するビューワー的なものを作るという定番のアプリ開発においては、十分に実用的であると思います
  • Titanium - JavaScript で iPhone/Android アプリを作る - naoyaのはてなダイアリー

    Titanium Mobile は JavaScriptiPhone/Android のアプリ (not Webアプリ) を開発できる開発環境。詳しくは Titaniumで始めるモバイルアプリ作成の基礎知識 (1/3):Web技術でネイティブアプリを作れるTitanium(2) - @IT などに解説があります。 少し時間があったので、JavaScript で作るというのがどんな感じか試してみました。作ったアプリは こんな感じで TableView があり、選択すると WebView でアプリ内ブラウザが立ち上がる、ブラウザはツールバーで「戻る」や「リロード」が可能。あとはタブコントロールがあったり・・・という単純なもの。初期起動画面のサイトリストは、HTTP でローカルに立てたサーバーから JSON で読み込んでいます。 Web上のドキュメントを見ながら2, 3時間試行錯誤で一応の

    Titanium - JavaScript で iPhone/Android アプリを作る - naoyaのはてなダイアリー
    willnet
    willnet 2010/10/12
    javascriptで書いてiphoneネイティブのコードに変換
  • クラスカルのアルゴリズム - naoyaのはてなダイアリー

    昨年からはじめたアルゴリズムイントロダクションの輪講も終盤に差し掛かり、残すところ数章となりました。今週は第23章の最小全域木でした。辺に重みのあるグラフで全域木を張るとき、その全域木を構成する辺の合計コストが最小の組み合わせが最小全域木です。 アルゴリズムイントロダクションでは、クラスカルのアルゴリズム、プリムのアルゴリズムの二点が紹介されています。いずれも20世紀半ばに発見された古典的なアルゴリズムです。 二つのうち前者、クラスカルのアルゴリズムは、コスト最小の辺から順番にみていって、その辺を選んだことで閉路が構成されなければ、それは安全な辺であるとみなし、最小全域木を構成する辺のひとつとして選択します。これを繰り返しているうちに最小全域木が構成されるというアルゴリズムです。 今日はクラスカルのアルゴリズムを Python で実装してみました。扱うグラフは書籍の例を使ってみました。以下

    クラスカルのアルゴリズム - naoyaのはてなダイアリー
    willnet
    willnet 2009/06/11
    大学の課題で書いたことある。なつかしい
  • naoyaのはてなダイアリー - MyISAM vs InnoDB

    あくまで憶測で仮説でしかないんですが。 MySQL のストレージエンジンのうち代表的な二つ、MyISAM と InnoDB はよく MyISAM: Read は速いけどテーブルロックのため並行性が低い。運用が簡単。 InnoDB: MyISAM より Read は遅いけど並行性が高い 。行レベルロックなので。あとトランザクションや外部キー制約。運用が MyISAM よりちょっとめんどくさい。 という区別がされます。ここから転じて、 MyISAM は参照系クエリが大部分を占める場合に適用すると良い。例えば blog アプリケーションとか。 InnoDB は更新系クエリが多い場合に適用すると良い。 と言わたりします。実践ハイパフォーマンスMySQL でも第2章 ストレージエンジン(テーブル型) P.30 に アプリケーションでトランザクションを使用する必要がなく、主に SELECT または I

    naoyaのはてなダイアリー - MyISAM vs InnoDB
  • はてなブックマークの関連エントリー機能開発、PFI さんとの合宿 - naoyaのはてなダイアリー

    はてなブックマークに関連エントリーを配信する機能を追加しました。詳しくは 告知日記で。 この関連エントリーは、株式会社プリファードインフラストラクチャー (以下 PFI) の技術者のみなさんと一緒に開発しました。週末に2泊3日で京都で合宿をしてコア部分を作り、その後京都と東京に分かれてオンラインで連絡を取りながら2週間ほど作り込みをして、今日リリースです。 この合宿では何チームかに分かれて、今回の関連エントリーの機能以外の開発も行っています。その辺の成果はまた後日にリリースできるのではないかと思います。 はてなブックマークの一つの問題として、昔のエントリーがデータベースに埋もれてしまうという点がありました。その問題の解決策としての類似記事抽出、それから検索機能の強化を以前から考えていました。PFI のメンバーのみなさんは情報検索技術のスペシャリストです。アカデミックな研究の成果を製品化を通

    はてなブックマークの関連エントリー機能開発、PFI さんとの合宿 - naoyaのはてなダイアリー
    willnet
    willnet 2008/07/15
    ペアプロやりたいな
  • font-family: "Lucida Grande" - naoyaのはてなダイアリー

    この日記とブックマークのスタイルシートで font-family: "Lucida Grande" を指定してみたところ、かなり良い感じになりました。Appleの営業の人 id:ogijun さんの日記が、なにげにはてなのデフォルトのテーマだけどフォントがかっこよかったので真似してみたよ。 Lucida Grande は MacOSX にデフォルトでインストールされてるフォント。OS 上のアプリケーションのフォントでよく使われてる。なんで MacOSX じゃないと変化はわからないと思いますけど、まあいいのだ。自己満足。

    willnet
    willnet 2008/05/28
    真似してみた
  • Emacs の vc-annotate - naoyaのはてなダイアリー

    もしかしたら常識なのかもしれませんが、Emacs の vc-annotate がとても良いです。vc-annotate は vc (version control, バージョン管理システムのフロントエンドEmacs から直接 svn {diff, commit, revert} することができる) に含まれる機能の一部です。vc-annotate を使うと、バージョン管理システム、例えば Subversion に保存された過去の履歴を気になったときにとても容易に調べることができます。 ソースを開いて M-x vc-annotate (C-x v g) すると (そのファイルがバージョン管理化に置かれて居れば) vc-annotate-mode になります。例えば Subversion で管理されている plagger の Plagger::Plugin::CustomFeed::Debu

    Emacs の vc-annotate - naoyaのはてなダイアリー
    willnet
    willnet 2008/04/05
    あとで試す