サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
kagigotonet.hatenablog.com
13日に開催されたweb music ハッカソンで声の高低に合わせてオブジェクトを上下させるアプリ作ってきました マイクを許可して、声か楽器の音程を上下させると丸い球が上下に動きますので、横から飛んでくる棒を避けてください。 仕組み web audio apiには波形をフーリエ解析するAPIがあり、音にどの周波数がどれくらいの音量で含まれているのかを2行ほどで解析してくれます。(サンプル)。 これを使うことでボコーダーやコード進行の検出のような踏み込んだ音のハックができるわけです。 このアプリではanimationframeごとにもっとも音量の大きい周波数を取得し、それを音の高低としています。ただし実際には最大の周波数はかなり揺れるので50フレーム分の平均を取って平滑化し、滑らかにみせています。慣性のような挙動をするのはそのせいですね これから 当たった時の演出を乗せて、教育用のゲームとし
chaplin.js rails風 viewとモデルはBackbone reuseすると早い ただし再利用を意識しないと死ぬ CollectionView テストがない vue.js シンプル コンパクト モジュールフレンドリー 将来機能 web components observ riple.js reactiveなview componentファミリー 単機能なモジュールを組合せてアプリを作る knockout.jsの事例 10万行のアプリ 独自タグなし バインドが重いので、結局自前のライブラリを使うことに marionet.js backbone.jsベース view周りの面倒を見てくれる marionetからractiv.js marionetは書くことが多い 一部だけ使っていたら辛くて全部移行 あまり流行ってない 実は今は素のjs 1年沢山踏んできた AngularDart We
JSON SQL Injection、PHPならJSONなしでもできるよ | 徳丸浩の日記 この記事で説明されているJSON SQL Injectionと同様の動作が非JSONのリクエストでも発生する問題ですが、正しくはjQueryによるAjaxリクエストとサーバーサイドにPHP、Ruby on Railsの組み合わせでも発生します。 jQueryはパラメーターのシリアライズにおいて、PHPやRuby on Railsと同じようにブラケットによる多次元ハッシュのシリアライズ方法を採用しています。 Ruby移植版も含めて対策は進んでいますが、リクエストヘッダーのHTTP_X_REQUESTED_WITHでアクセスをAjaxにのみ限定する方法は対策とはならないので注意が必要です。
Study Mailを個人で開発し、リリースして二年が経ちました。その間にやっていたことをまとめておきます。 やったこと SESの導入 API投入前処理 出会い系対策 エリア機能・コミュニティ機能追加 サーバーの移転 既読処理の変更 対応サービスの拡大 github peatix doorkeeper IT系以外への利用への対策 キーワードの誤爆防止対策 SESの導入 Study Mailはメールで勉強会のお知らせを配信するサービスなのですが、配信機構は最初はGoogle APPSのメールサーバーに投げてBCCに突っこんだアドレスに配信させる、という非常にプリミティブなものでした。 しかしすぐにGmailでの不達が頻発したためこれをやめ、Amazon Simple Email Service(SES)に変更しまして解消しました。 API投入前処理 キーワード抽出はYahooの重要度抽出AP
「電車と天気」というサービスをリリースしました。名前の通り、鉄道の運行情報と天気を一目で見て行動を決定することができるサービスです。 どうぞご利用ください。 作った理由とかアピールポイントとか やっぱり東京に暮らしているとダイヤが混乱すると大変ですので、それを何とかしたいなと。構想としてはもう何年も前からあったのですが、先週、三度目の大雪が平日に来るかもしれない、という予測があった時にようやく形になりました。 単体でいうと天気はもとより運行情報系のアプリも結構あるのですが、あまり表に出てなかったり、特定の鉄道会社にしか対応していない等の問題があり、複合型の天候と統合してどう動いたらいいのか決定するのを支援するアプリはありません。 また、単純に路線名ではなく駅単位での運行情報の表示をしているのも隠れたポイントだったりします。実は日本の都市部では地名とは駅名とほぼイコールである一方で路線名その
テーマはHTML5とセキュリティ できることが増えてきたことで、セキュリティも大事になってきた 今から始めるHTML5セキュリティ(JPCERT 松本さん) JPCERTコンピューターセキュリティ早期警戒体制の構築運用 HTML5のセキュリティの概要 HTML5は開発者にとっても攻撃者にとっても便利 攻撃の幅も広がる ブラウザの実装によって脆弱性になってしまうケースも 今日はXMLHttpRequeestを中心に紹介 従来のXHRは同じオリジンしか通信不能 XHR2ではクロスオリジン通信ができる オリジンで制限しても通信自体は送られる 例:URLハッシュをそのまま使う ホワイトリスト推奨 アクセス制限はCookieを使うのが大事 formactionやvideoタグのonerror ローカルのチェックだけでなく、サーバーサイドのチェックも iframe snaboxはiframeを直接開け
はじめての欧文書体 欧文書体には様々な種類がある 全ての書体にある訳ではないが字幅やウェイトなどがある 書体はどこかの国で色々な背景を持って生まれている トラヤヌス帝のの碑文から作られた書体が映画などで使われている ギャラモン(人物名)、ヘルベチカ(スイスのラテン語名) 欧文書体はロゴ使用がだいたいOKだが和文はだいたい要お問い合わせ 日本語だと、proとつく方がいっぱい文字が収納されてる 書体が持つ雰囲気 セリフ書体は高級感 インパクトがある書体 実践編: Webサービスで使いやすそうな書体 Helveticaはありふれた感がある 有料webフォントもありでは? 色々なフォントが使える 違った感じがする 書体を選ぶということは既にデザイン 専門雑誌もあるよ ノンデザイナー デザインブックを読み解く ノンデザイナーズデザインブックについて デザインの基本原則が書かれている パワポとかにも
Tizenの概要(暇村さん) Tizenについて間違った情報が流布している 具体的には「iPhoneを電子レンジに入れると充電できる」くらい間違っている KDDIにサーバーを借りている 一般にはLimoとMeeGoを足してHTML5を掲げたもの 実際にはMeegoの流れを汲んでいるのは車載向けTizen TizenMobileはSumsunのLinuxがベース TizenはLinux財団のプロジェクト Sumsunだけでなく色々な会社からデバイスが出てくる TizenWebAPIには独自拡張がある Linux部分にも拡張あり SDKあり まだネイティブAPIなし Windowsとubuntuでのみ開発可能 TizenのHTML5スコアは462。まだちょっと足りない Tizenはネイティブアプリケーションもできる TizenIVI(車載向け)はダッシュボードひとつであれこれできるようにするこ
このエントリーはHTML5 Advent Calendar 2012の4日目のエントリーになります。 JSON RPCとは文字通りJSONでRPCするプロトコルで、現行バージョンは2.0です。 リモート環境にある関数をローカルの関数と同様に呼び出せるRPCは呼びだす機能が多かったり、複雑だったりする時に非常に便利です。またRESTと違い対象がHTTPを受け付けるサーバーである必要がないというメリットがあり、これがwebsocketやメッセージングAPI、webworkerといったHTML5 APIと非常に相性がいいのです。 またRPCというとXML RPCが有名ですが、JSON RPCはそれにくらべて以下のような特徴を持ちます プロトコルが軽量・シンプル 名前つきパラメーター(namedparameter) バッチリクエスト では順番に見ていきます プロトコルが軽量 RPCに限らずXMLと
渋谷のDeNAさんで開催されたMongo DB Casual Talksに参加してきました。業界用語で言うところのカジュアルにふさわしい、ガチの勉強会でした。 MongoDBのアレ MongoDBはクラスタリングやシャーディングが自動的なのが魅力 ただしシャード設定の不備があると、本当に突然パフォーマンスがダウンする バックアップはオートバランスを停止してから ロックがグローバルなのに注意 障害・ログ mogostat faultが多い場合はメモリ不足の可能性あり Locked%が高い場合は書き込みを分ける qr|qwもロックの可能性を疑うこと mongosniff 複雑なクエリなどを見るときに Loglevel変更は動的にできるので、何かあった時にあげるといい 「みんなもカジュアルに100シャード運用してみよう!」 Casual Compression onMongoDB 「今日はデータ
Study Mailの開発で日本語メールの問題にぶつかりましたので、その解決方法を公開します。結論としては、Pythonの場合はUTF-8でエンコードしてしまうのがベストのようです。 Dajngo EmailMessageで文字コードを指定する よく知られているように、日本語で書かれたメールを送信する場合はiso2022でエンコードするのが一般的です。二バイト文字のエンコードに問題の多いことで知られるPythonですが、幸いエンコードそのものについては部品として切り出して使えるwebアプリケーションフレームワークDjangoを利用することで問題なく行うことができます。 Djangoには電子メールのメッセージを表現するEmailMessageクラスがあり、メールとしてのメッセージの組み立てを簡易化してくれます。文字コードについてもドキュメント化こそされていませんがソースを読むとencodin
ちょうど、Study Mail関連で面白いことも解ったのでまとめておきます。 勉強会を探す まず、はじめて勉強会に行こうとする場合はイベント支援サイトを見るか、検索、あるいはまとめ系のサイトを参照にするかの二つの方法があります。 まず前者ですが、IT系の勉強会が告知されているイベント開催支援サイトは以下の5つです。 ・ATND BETA ・Event ATND ・zussar ・connpass ・partake まとめや検索のサイトとしては、以下のようなものがあります。 IT勉強会カレンダー IT勉強会カレンダー検索 azusaar このあたりで、気になる勉強会をみつけて探してみるといいでしょう。いきなりすごいことになったりはしませんので、気軽に参加してみてください。 勉強会を追いかける 定期的に勉強会に行くのは、日程あわせ以上に手間がかかります。 ざっくりいいますと、現在、Study
本日、Study Mailというサービスをリリースしました。気になるキーワードを登録しておくと、対応している6つのサイトにそのキーワードがメインテーマ(らしい)勉強会が告知されたのを検知してGoogleかFacebookのアカウントに紐づいたメールアドレス告知されるサービスです。 最近、イベント開催支援サイトも開催数そのものも増えてきて、すでに追いかけにくくなっている現状の私なりの解決策です。 開発中には水道橋にあるコワーキングスペース「ネコワーキング」のぬこをはじめ、さまざまな方のアドバイスをいただきました。この場を借りてお礼を申し上げます なお、どこかのサービスに名前が似てしまいましたが本当に偶然です。 仕組み 基本的な流れとしては以下のようになっています 対応しているサービスが公開しているRSSを取得 タイトルと説明文をひとつの文章にまとめてから、Yahooキーフレーズ解析で抽出 抽
なぜ CoffeeScript がダメか - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech なぜ CoffeeScript がよいか - 0xff.toBlog() CoffeeScriptの是非をめぐる議論が盛んです。私個人としてはCoffeeScriptには懐疑的ですが、それは置いておいて一歩引いて考えるとここで挙げられている論点のほとんどは開発手法であれ技術であれ何か新しいものを取り入れる時にかならず出てくるものです。 果たして、新しいものはいつ取り入れるべきか? 結論としては、泥水の上澄みは飲めない、ということになります。特にインターネット系の技術開発では比較的簡単に変化できるソフトウェアとソフトウェアに比べて簡単に変化できないが他の産業に比べれば変化が早く、かつ仮想化やクラウドなどの影響で加速がハードウェアの両方に影響されるため、最終的には何らかの
みなさん、Google+を使っていますか? たぶんこれを読んでいるほとんどの人が使っていないはずです。 なのでほとんどの人がご存じないと思いますが、日本のGoogle+ではAKB48と公式タイアップをしていて、メンバー全員が公式アカウントを開設しています。 AKB関係者以外はほとんどフォローしないなどここのAKBファンの行動は私のようなごく普通のネット廃人からするとなかなか異次元なので、興味をもってしばらく観察しているうちに面白いことに気がつきました。 これは、ゲーミフィケーションのひとつの未来ではないでしょうか? コメント先着ゲーム Google+ではコメントは500件までなのですが、人気の高いメンバーではその限界までコメントがつくことはいまだにあり、他のファンに先を越されると書き込めなくなります。そうでなくてもFacebookと同じように自分がコメントした投稿に他にコメントがつくと通知
一昨日、HTML5とか勉強会に参加していた際にTwitter Bootstrapについてつぷやいたことをまとめておきます。 横並びのレイアウトを意識しよう webページの画面のレイアウトというと縦に列を並べた上で横方向の配置を行うマルチカラムレイアウトが思い浮かびますが、Twitter Bootstrapは横一列にきれいに並べることを意識して作られています。 下の画像は公式サンプルを切り出したものですが、横の列が積み重なっているのがわかると思います。 このように、デザインする時には横並びのレイアウトを意識することが重要です ヘッダーが命 Twitter Bootstrapを使ったテンプレートはどれも似たような印象になってしまうのですが、その印象のほとんどヘッダー部分が担っています。 これを外すか、あるいはいまはやりの大きなグラデーションの入ったヘッダーに変えましょう、下の画像は公式サンプル
このエントリーはHTML5 Advent Calendarに参加しています。本当は18日目だったのですが、こんな時間になってしまいました。 Web標準系UI、というのは私が勝手に呼んでいる呼称なのですが、HTML+JavaScript+CSSを使ったUIのことです。なので、大まかにはWebサイトなども含まれます。 Web標準系UIは表現力の高さが魅力ですが、その分、画面が正常に動作するかのテストが大変です。もちろんSeleniumというツールもあるのですがこれは有名なので適当に検索してもらうとして、今回はあまりこういった文脈では紹介されることないQunitを紹介したいと思います。 QUnitとは? 元々はjQueryのテスティングフレームワークとして開発されたもので、その時はJQUnitという名前でした。現在はjQueryから独立して依存性をなくしています。 各言語にある同様のツールとひと
本日、Google+にAPIが公開されました。現状としては試験段階で、APIそのものは2種類3パターンしかなく、レスポンス形式はJSON、及びJSONPにしか対応していません。また、制限がありますが申請すれば拡張可能です(後述) APIキーの取得 Google+のAPIの使用には、APIコンソールが必要です。Googleにログインした状態でAPIコンソールに行き、左側にあるセレクタから新しいプロジェクトを作り、Google+APIを有効にした上でAPI AccesというタブをクリックするとAPI Keyが取れます APIの形式 Google+のAPIはいわゆるRESTfullAPIで、特定のURLにリクエストを投げるとレスポンスを受け取る形式です。 いくつか共通のリクエストがありますが、そのうち必須なのはkeyというキーです。ここに必ずAPIキーを設定する必要があります。 ユーザー認証 G
Google+が限定公開されて一週間ほどですが、もういくつかのニュースサイトが公式アカウントを取得してGoogle+で活動を始めています。 ABC News Radio Breaking News Chicago Sun-Times GMA News KOMU News Mashable The Next Web St. Louis Post-Dispatch とそのマスコット(?)Weatherbird Search Engine Land CNET 有名な技術ニュースサイトから地方ニュースまでいろいろですが、やはりどこも使い方がこなれていて、双方向メディアであることをきちんと意識した使い方をしています。 例えば、CNETは日本時間の7日午前3時に行われるFacebookの発表内容について意見を聞いています。 さすがに後発だけあって、使う側も慣れているみたいですね。 一応、この使い方は規
なぜか日本ではあまり話題になっていませんが、Googleがちょっと面白いサービスを出しています。 ※マイマップでなくてMap Makerでした。詳しくはこちら Google Map Maker これは世界中で行われているGoogle Mapsのマイマップの製作過程をリアルタイムで見ることができるサービスです。スクリーンショットではちょっと解りにくいのですが、地図上に線を引いている様子などもリアルタイムでわかってちょっとした世界旅行気分になれます。 また、こういうサービスが出せるということはサーバー側でリアルタイムの処理をフックしてプッシュ通信できるだけの仕組みがあるということです。 色々と妄想が広がりますね
Google+、やっています。 これはかなり怖いサービスですね。久しぶりにGoogleのナチュラルな世界征服モード全開を見てしまいました。 あらゆることがGoogleを通して行われるようになる、そういう未来へ向けた重要なキーなんだと思います。 それはこのスクリーンショットを見るだけでも明らかだと思います 本当の意味での「仕事に使える」ソーシャルメディア まず、Google+は、多分本当の意味での「仕事に使える」ソーシャルメディアです。 Twitterのリストでは、相手の発言をカテゴリーわけはできても、そのカテゴリーに対して発言することはできません 逆にFacbookでは、自分独自のカテゴリーわけに基づいて発言を見る相手を絞ることはできても、相手の発言をカテゴリーわけができません。 Google+では両方できます。 Facebookでは一応できるのですが、基本的に後付なので非常にやりづらいで
ふと思いついたことがあって、Chrome Extentionを作っています。某所に対してごにょごにょしてデスクトップ通知をするのですが、単なる通知ではさびしいですし、なにより不便です。Opera標準のRSSリーダーのようなクリックしたらリンク先に飛ぶなどのリアクションがあるデスクトップ通知が欲しいのですが、意外とこのあたりの情報がまとまっていなくて苦労しましたのでまとめておきます。 デスクトップ通知する よく知られているようにChrome ExtentionはHTML+JavaScript+CSSでChromeの拡張が作れる仕組みです。 まず、Manifest Fileと呼ばれるJSON形式のファイルがあり、ここに記述された挙動やファイル構成を元に動作します。 デスクトップ通知を行うにも、まず使用者からデスクトップ通知をしてもいいよ、という許可をもらう必要がありますので、このファイルに許可
Google IO 2011あわせのアップデートで、Google APP EngineにBackendが導入されました(Python/Java)。 これはbackendと呼ばれるずっと立ち上がりっぱなしのインスタンスを提供する仕組みで、時間制限がありません。そのため、大規模、あるいは長時間かかるような処理に向いています。 Backendsの設定から処理の受付まで Backendsの設定から起動までは次のようになります 設定ファイル(backends.yaml/xml)で各backendを設定 アプリをデプロイ(backend内の処理はアプリ内の処理の一部という形) appcfgから起動 各backendに割り振られたURLにリクエストする appcfgにはこのほかに停止や削除と言った管理用のコマンドがあります(Python/Java) Backendsの設定 前述したとおり、backend
先日のエントリーの反応で、少し気になったのでFacebookのアプリで安全を保つ方法についてまとめておきます。 Facebookやっている人はご存知でしょうけど、Facebookには結構スパムアプリや個人情報収集目的のアプリが多いです。わかりやすい例では、最近話題になったBadooがあります。 こういったアプリの被害に合わないためには、最初に要求されるアクセス許可に気をつけること、これに尽きます。 Facebookのアプリは何かしようとする場合必ず許可を要求してきます。ここで、二つあるポイントを覚えておくことで怪しげなものを見分けることが出来ます。 そのポイントとは 全てのデータは直接渡される 危険、あるいは微妙なアクセス許可がある 全てが直接渡される まず、なにより大事なのがこれです。 メールアドレス、電話番号、居住地等、全て許可したらそのまま渡されます。当然、アプリのデータを削除しても
前々から書こう書こうと思っていた、FacebookのJavaScriptSDKの解説エントリーです。 APIや規格、HipHopやliftといったオープンソースなどの陰に隠れがちですが、このJavaScriptSDKもなかなか面白いです。 3行で解るJavaScript SDK 投稿・認証・署名を含めた全APIアクセスをサポート 公式なUIもついてくる Facebookアプリも、外部のマッシュアップサイトもこれ一つでOK つまり、これ一つで簡単なクライアント機能をもったサイトまたはFacebookアプリが作れちゃいます。 情報を取ってきてなにか書いてもらって投稿するのはもちろん、ちょっとしたクローリングをおまけにつけたアプリまでJavaScriptの範囲内で完結しますので、サーバー側で凝った処理を実装するのではなく、JavaScript側で可能な限り完結させるのがベストプラクティスといえま
AppleやMicrosoftと異なり、少なくとも開発者からはGoogleはあまり敵視されていません。それはなぜなのか? 開発者のような一定以上の知識を有している人間にとっては納得せざるをえないレベルの課題を提示し、着実に答えを積み重ねているというのが大きいのかもしれません。 課題と解決 いくつものGoogleのプレゼンを見ていると、一つのパターンがあることに気がつきます。それは「こういう課題があった。だから、我々はこうしたorこうしたい」と述べることです。 事実、Googleで「Google 課題」で検索すると2番目に出てくるのがGoogle Developer Day 2008の基調講演の記事だったりするくらいです。これは他の会社ならば批判的なトーンの記事で埋め尽くされるのですが。 そのくらい浸透しているということは、これはGoogle内部で共有されている開発のテーマを決定するための一
「ライブ」をTwitter上でサポートするbotに新機能を搭載しました。 非公式RTでお気に入りのチャンネルをお勧めできるように 一言添えて非公式RTすると、その一言を中継してくれます。USTREAMチャンネルのURLさえ残っていれば、他はカットしても反応してくれます。 例「これはすごい RT:@livernal_jp http://utsre.am/test」→例「○○より「これはすごい」 だそうです http://utsre.am/test」 短縮アドレスの対応範囲の拡大 USTREAMの公式短縮アドレス以外に、以下のアドレスに対応してます bit.ly j.mp goo.gl ow.ly tynyurl また、このほかに現在は以下のような機能があります。 日本語(と判断される)ライブがスタートしたのを検知して流す 盛り上がっているライブを見つけたら報告(盛り上がりが持続している場合
理由は解りませんが、残念ながらデプロイ環境では動作しないようです。 Google APP Engineでは、従来のシステムのRDBMSに相当する(実際はKVSですが)データストアをデータの保存、検索に使用します。 このデータストアにはいくつかの制限があるのですが、その中でも大きいのが範囲検索です。イコールで無いクエリは、一つのプロパティ(RDBMSにおけるカラム)に対してしかかけられません。 しかし、緯度経度や時刻のようにとりうる値の上限と下限がわかっている場合においては、複数のプロパティにまたがる範囲検索が可能です。 方法 まず対象となるプロパティの値について以下の正規化を施します。 数値は文字列に変換し、桁をそろえる。 とりうる最小の値が負の数の場合は、その絶対値を足してとりうる最小の値が0になるように 例えば緯度ならばとりうる最小の値は-90度なので90を足す。 小数点以下の桁数は一
livernal.netのバージョンアップ計画の一環なのですが「ライブ」をTwitter上でサポートするbotを作ってみました。 現在はUSTREAM専用で、以下の機能があります。 日本語(と判断される)ライブがスタートしたのを検知して流す 盛り上がっているライブを見つけたら報告(盛り上がりが持続している場合は10分間隔) 「ライブ予告。タイトルは○○。開始は○○。チャンネルは(短縮アドレス)。」とリプライするとその時と30分前、開始時に告知 もし、何か詳細を示すURLがあれば「ライブ予告。タイトルは○○。開始は○○。チャンネルは(短縮アドレス)。詳細は(URL)」とつけるとその分も一緒に告知 「ライブ開始。タイトルは○○。チャンネルは(短縮アドレス)」とリプライすると開始を告知 こちらも同じくもし何か詳細を示すURLがあれば「ライブ予告。タイトルは○○。開始は○○。チャンネルは(短縮アド
次のページ
このページを最初にブックマークしてみませんか?
『TechTalkManiacs』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く