このイベントの中でとりあえず処理が必要なものは、Drag 対象要素の「 dragstart 」と Drop 対象要素の「 dragover 」「 drop 」となります。 var dragElement = null, items = document.getElementById('list').getElementsByClassName('item'); function dragStartHandler(event) { dragElement = event.target; event.dataTransfer.setData('dragItem', dragElement.innerHTML); } function dragOverHandler(event) { event.preventDefault(); event.dataTransfer.dropEffect =
Emscriptenの限界が見えない…。 JavaScriptを使ってどこまでのことをやらせるのか、そんな限界に日々挑戦している人たちがいます。その際に注目したいのがEmscriptenではないでしょうか。 既存のソフトウェアをJavaScriptに変換することで無茶と思えるような行為が平然と行われています。今回は動画の変換ソフトウェアとして知られるFFMPEGをJavaScriptにしてしまったvideoconverter.jsを紹介します。 ライブラリ読み込み中。意外と時間がかかります。 読み込みが終わりました。ヘルプが出ています。 コーデックの表示です。 画像の変換もできます。 WebMフォーマットの動画をMPEG4に変換する無茶を試みます。 時間はかかりますがちゃんと変換されました。 使い勝手としてはFFMPEGなので画像や動画を自在に操作することができます。動画をアニメーションG
メールアドレスの「ルール」に関する話題が盛り上がっていますね。 「メールアドレスのルール」系まとめがそろって間違ってるのでご注意を 「メールアドレスのルール」なんて使ってはいけない3つの理由 これらのエントリに異論があるわけでありません。メールアドレスに関するルールというとRFC5322などがあるものの、現実の運用では簡易的な仕様を用いている場合が大半である…という事情は、私も以前ブログに書きました。、 本稿では、「空前のメールアドレスのルールブーム(?)」に便乗する形で、RFC5322に準拠したメールアドレスで、XSSやSQLインジェクションの攻撃ができることを紹介します。と言っても、SQLインジェクションについては、過去に書きましたので、本稿では、RFC5322バリッドなメールアドレスでSQLインジェクションとXSSの両方ができるメールアドレスを紹介します。 まず、攻撃対象として、以下
git-flowのインストールとブランチ運用前のリポジトリ準備:Gitブランチを使いこなすgit-flow/GitHub Flow入門(2)(1/2 ページ) 数回にわたってgit-flowとGitHub Flowを使ったGitの活用テクニックを紹介します。今回は、git-flowのWindows、Mac、Linux別でのインストール手順、利用の仕方の流れ、ブランチ運用前のリポジトリ準備の流れを紹介。 前回の「いまさら聞けない、成功するブランチモデルとgit-flowの基礎知識」では、git-flowで利用するブランチモデルの概要について解説しました。今回は、git-flowのインストールとgit-flowを利用し始める前のリポジトリの準備について解説します。 git-flowをコマンドベースで利用 git-flowを利用するには、コマンドラインから利用するCUIのgit-flowを利用す
ということに、(今更?)気付いたお話です。 HAを組んだ際のVIPの切り替えテストをやっているときに、高負荷時とかは切り替えに7秒ぴったりかかるケースとかがあって、7秒って何の数字だろうと疑問を持ちました。 OSは、CentOS 6.4(2.6.32-358.23.2.el6.x86_64)です。 TCP SYNの再送間隔が、1...2...4...秒になっている で、tcpdumpを眺めていると以下のようなシーケンスです。 11:50:35.689301 IP client-host.8957 > server-host.http: Flags [S], seq 1616681830, win 14600, options [mss 1460,sackOK,TS val 889880946 ecr 0,nop,wscale 7], length 0 11:50:36.688503 IP
Droongaについて Droongaは、ストリーム指向の処理モデルを採用した分散全文検索エンジンです。検索、更新、集約などの多くの操作がパイプラインを通じて行われるこのモデルにより、Droongaは高い柔軟性と拡張性を備えています。また、Droongaは既存操作の組み合わせによる複雑な操作にも対応しています。ユーザーはRubyでプラグインを開発して、独自の操作をDroongaに加える事ができます。 詳細は概要をご覧ください。 将来のDroongaについてはロードマップをご覧ください。 ドキュメント Droongaをより効果的に使うために、以下のドキュメントが役立つでしょう。 インストール手順:Droongaのインストール手順の説明です。 チュートリアル:Droongaの使い方を実例を通して解説します。 リファレンスマニュアル:詳細な仕様についての説明です。 コミュニティー:Droonga
このエントリーは以下の「Webの未来 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること〜」というスライドへのアンサーエントリーです。 ひょんなことからまとめはじめたのですが、とりあえずタイトルにあがっているようなasm.js(あせむじぇいえす)やPNaCl(ぴなくる)、LLVMという単語が知らない人でもわかないひとがわかった気になれるように書きました。つまりわかってないやつとはエントリを書いている本人のことだよ! PNaClとasm.jsでカワルミライ Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること from Kei Nakazawa 結構ブクマが多いのでみんな気になっているんだろうなぁ、という雰囲気があります。 でも読んでみると良く分からない単語があったり、業界背景を理解して
Apple が iPhone 5s の発表会で見せたグラフが示す様に、モバイルデバイス向けのGPUの性能の向上は著しい。GPU を上手に活用すると、3Dゲームだけでなく、画像処理などの科学技術計算が大幅に高速化出来るのだが、開発環境が整っていない点が大きな問題だ。 私自身もカメラから取り込んだ動画をリアルタイムで画像処理するアプリケーションを OpenGL を使って開発していたのだが、(はっきり言って時代錯誤の API である)OpenGLでのプログラミングは苦痛極まりない上に、GPU を効率良く使うためにはさまざまな工夫が必要である。OSを開発した経験のある私としては、ここはなんとかしなければいけないと強く感じた。 そこで、OpenGL プログラミングの煩雑さに煩わせずにGPUを使った画像・動画処理が出来る様な開発環境 Video Shader を開発することにしたのだが、それがようやく
13. trait Monoid[A] { def plus(x: A, y: A): A def zero: A } def sum[A](list: List[A])(m: Monoid[A]): A = { list.foldLeft(m.zero) { case (total, e) => m.plus(total, e) } }
Engine Yardを含むさまざまな場面で利用が広がったChefですが、その動作原理やアーキテクチャについてご存じない方もいることに気が付きました。細かなアーキテクチャを理解しなくても使うことができるというChefの長所を示しているともいえますが、細かな挙動を制御する際にはやはり動作原理などの知識があると役立ちます。 今回は表題のとおりレシピが実行される際のサイクルについてあまり知られていない部分を紹介します。 Chefの実行サイクルとリソースコレクション Chef(Chef Client、Chef Solo)が実行された際には直ちにサーバの設定が始まるわけではなく、さまざまなステップ毎に処理が実行されます。大まかには下記のようなステップになります。 Chef Serverとの通信、認証処理 Chef Serverからのクックブック、データの取得 クックブックのコンパイル ノードの設定
HTMLコーディングの初級というと、どの程度のスキルを差すのでしょうか。弊社では、以下のようなことがひとまずできていると、だいたい初級レベルを越え始めた段階かな、という気がしています。 ターゲットブラウザで大きな崩れがない。 リンク漏れや原稿違いなどのヒューマンエラーの頻度が極めて低い。 バリデーター・チェックでエラーが出ない。 逆に、これだけのことができて、なぜまだ初級レベルなのでしょうか。それは、現場では、これだけでは不十分だからです。ブラウザでひとまず正常に表示されるだけでなく、改修に素早く対応できる柔軟性、協業や運用後の更新を楽にするルールの一貫性や簡潔さ、HTMLの概念をきちんと踏まえた正しい構造設計なども、求められてくるからです。 そこでここでは、脱・初級者を目指す方のために、弊社内で行っているHTMLコーディングの、いわゆるエラーということ以外のチェックポイントを、まとめてみ
32. trait Entity[ID <: Identity[_]] { ! /** エンティティの識別子。 */ val identity: ID ! override final def hashCode: Int = 31 * identity.## ! override final def equals(obj: Any): Boolean = obj match { case that: Entity[_] => identity == that.identity case _ => false } ! } 33. trait Identity[+A] extends Serializable { ! def value: A ! } ! object EmptyIdentity extends Identity[Nothing] { ! def value = throw E
ツイート今日は、第 1 回のSQL アンチパターンの回から良コンテンツを提供しまくりなエンバカデロ・テクノロジーズさん主催の第 3 回 DB エンジニアのための勉強会に参加してきました。 今回は 漢(オトコ)のコンピュータ道で有名な漢の中の漢、 @nippondanji 氏がデータベース設計を徹底指南してくれるということで、元々 DB エンジニアがバックグランドのわたしとしてはいかないわけにはいかんだろう、と喜び勇んでいってきました! 内容はというと下記の概要をカバーする内容でした。 リレーショナルデータベース(以下RDB)は登場してからかなりの時間が経っています。その名が示すように、RDBはリレーショナルモデルをベースに考案されたソフトウェアです。しかしながら、未だに現場ではRDBが使いこなされているとは言いがたく、リレーショナルモデルへの理解も進まず、誤った常識が跋扈しているのが現状で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く