タグ

ブックマーク / nmi.jp (14)

  • Chrome の隠し機能 chrome://tracing (about:tracing) の使い方

    こんにちは。仕事上で chrome://tracing (about:tracing) を使う必要が出たので、私の知っている限りの情報をここでまとめることにしました。 chrome://tracing の情報は世の中にあまりありません。もし記事中に間違いを見つけられたり、より良い利用方法をご存知の方は、ぜひ @tkihira まで教えてください。よろしくお願いします! なお実際は隠し機能ではなく、ただあまり知られていないだけです。公式の情報は https://www.chromium.org/developers/how-tos/trace-event-profiling-tool ここから辿れると思います。 注意 この機能は、Chrome のインスタンス全体のプロファイルを取るものです。不用意に実行すると、すべての Chrome のタブを巻き込んで落ちます。記事中では Chrome Ca

    punitan
    punitan 2018/02/19
  • ブラウザで仮想通貨を採掘するサービス "Coinhive" について

    ここ最近で急に有名になった、”Coinhive” というサービスがあります。一言でいうと、ブラウザのJavaScriptを利用して仮想通貨 Monero を採掘するためのサービスで、Webサイトに導入することによって来訪者から直接収益をあげたりすることを目的にしています。 有名になったのには理由があって、ユーザーの許可を得ずに勝手に採掘をするサイトが問題になったためです。Pirate Bayの事例などが有名ですね。 個人的にCoinhiveのようなサービスは適切に使われる限り仮想通貨のキラーサービスになりうると期待しています。ここでCoinhiveがどのようなサービスなのか、技術とビジネス両方から注目してみようと思います。 2018-06-12追記: Coinhive をユーザーの許諾なしに利用していたサイトの管理者の方が神奈川県警に家宅捜索を受けたそうです。詳細は経緯の説明サイトを御覧く

    punitan
    punitan 2017/10/10
  • コメント返し(スタートアップに転職する時に最低限知っておくべき株の話)

    前の記事が予想以上に人気がありました。ありがとうございます。 Twitterはてなブックマークでのコメントが面白かったので、いくつかコメント返しをしておこうと思います。 基的には中の人、それも創業者レベルに聞かないとわからないことが多いと思います。投資を受けたことを大っぴらにしない会社も多いです。ただ、CrunchBaseというサイトに情報が記載されていることも多く、もし記載されている場合は大変に参考になります。例えば日だと、Tokyo Otaku Modeさんの情報などが載っています。このサイトによると、TOMさんはシード期に投資を2回受け、シリーズAで$2.64M(約3億円)、シリーズBで$13.7M(約14億円)の投資を受けていることがわかります。 なお、投資額を公開することはありますが、一般的に時価総額は公表しないのが普通ですので、ネット等で調べても各投資家の具体的な株の持ち

    punitan
    punitan 2016/07/28
  • スタートアップに転職する時に最低限知っておくべき株の話

    身の回りで大企業からスタートアップに転職するエンジニアの話をよく耳にするようになりましたが、転職に際して株に関して深く考えていない人がかなり多いことに気づきました。最低限この程度は知っておいたほうがいい、という点を自分の視点からまとめてみました。 スタートアップの金銭的な成功 スタートアップの株は「非公開株」です。非公開株というのは、東証などの証券取引所で取引されていない株全般のことを指します。おおっぴらに取引されていないので、非公開株を貰ったところで即座に現金化出来るわけではありません。特に外部から投資を受けるようなスタートアップ企業は、(例外はいくつかあるものの)この非公開株を現金化させることが一つのゴールになります。 非公開株を現金化させる方法は大きく2つあります。一つは株式公開(IPO)で、証券取引所の審査を経て自社株を自由に売買出来るようにすることです。いわゆるマザーズ上場、東証

    punitan
    punitan 2016/07/25
  • embona - ブラウザで動くBonanzaを作ってみた(その1)

    今回、ちょっとした縁によりBonanzaをブラウザで動かしてみました。Bonanza 6.0のソースコードをほぼそのまま利用して、EmscriptenでJavaScriptに変換しています。 技術的なことに興味はない、すぐに遊んでみたい!という方はこちらからどうぞ。初回に45Mほどダウンロードが発生します!ご注意ください。 http://tkihira.github.io/embona/index.html 上のURLに行くとCPU vs CPUの戦いが始まります。自分で戦いたい方は新規対局で設定してください UI周りは相当手を抜いて実装したために多数バグがあるかと思います。ご容赦ください ブラウザが固まったりしませんが、CPU思考中に手を入力したり新規対局するのには大変反応が重い(というか思考が終わるまで反応しない)のにご注意ください データダウンロードで43Mbyte、さらに内部で展開

    punitan
    punitan 2015/01/19
  • 生WebGL入門:初音ミクの美麗3Dモデルを表示する(前編)

    Special Thanks to @hagat and @teehah for reviewing my articles! 近年、WebGLに流行の兆しが出てきました。WebGLとは、ブラウザに何らプラグインをインストールすることなく、JavaScriptよりGPUを使用した3Dの表示を可能とする技術です。プラグインのインストールが必要ないとはいえ今までは対応ブラウザが少なくあまり実用的ではありませんでしたが、先日のiOS8で正式に対応されたことでモバイルブラウザにおいて対応率が跳ね上がり、スマートフォンにおいてブラウザベースで3Dのゲーム等を作れる可能性が急激に高まりました。 今回WebGL Advent Calendarの一環として、生WebGLで3Dのオブジェクトを表示するところまで挑戦してみます。WebGLにはthree.jsを始めとして有用なライブラリがたくさんあり、大抵の場

    punitan
    punitan 2015/01/04
  • 生WebGL入門:初音ミクの美麗3Dモデルを表示する(中編)

    前の記事では、大変長いコードを書いて、やっとポリゴンを1枚だけ表示させることに成功しました。次に目指すは、ミクさんモデルの表示です。 前の記事はこちら→ 生WebGL入門:初音ミクの美麗3Dモデルを表示する(前編) モデルデータの読み込み、表示 まずは前の記事で準備で用意した、ミクさんモデルのデータをJavaScriptで読み込みます。前の準備ではmiku.obj、miku.mtlの2つのファイルが出力されました。なんとなく眺めればわかるように、OBJファイルの方は頂点などのデータ、MTLファイルの方が色などのデータとなっています。まず、OBJファイルのデータを読み込んで、その内容を出力してみましょう。 OBJファイルのフォーマット OBJファイルのフォーマットは、ネットで少し調べればこちらのサイト等で詳しく説明されていますが、基的には頂点データ、テクスチャデータ、法線データ、ポリゴン定

    punitan
    punitan 2015/01/04
  • 生WebGL入門:初音ミクの美麗3Dモデルを表示する(後編)

    前の記事で、3Dモデルのミクさんの描画に成功しました。ただ現状はモデルの外形を表示出来ただけなので、せっかくここまで表示出来たからには色を塗ってみたいところです。今回の記事では、色を塗りテクスチャを貼ってみます。また、最後に別のモデルを表示して、テクスチャの威力についてもご紹介したいと思います。 前の記事はこちら→ 生WebGL入門:初音ミクの美麗3Dモデルを表示する(中編) MTLデータの読み込み、表示 その1の記事で準備した時、OBJファイルと共にMTLファイル が生成されたことを覚えていらっしゃるでしょうか。前の記事で紹介したとおり、OBJファイルはポリゴンのデータを定義するものでしたが、色の情報は一切ありませんでした。それらのデータは、MTL(マテリアル)ファイルに定義されています。というわけで、今回は色をつけるためにマテリアルファイルを扱います。 マテリアルファイルのフォーマット

    punitan
    punitan 2015/01/04
  • JavaScript イディオム集

    JavaScriptでは、初見の人にはさっぱりわからないけれども、ある程度慣れた人は当たり前に使うイディオムが結構たくさんあります。知ってしまえば何てことはないので、私の知っている限りのイディオムとその意味を解説します。 (7/3追記: twitter等で教えていただいた内容を追加しました) +v (数値化) var v = "123"; console.log(+v + 100) // 223 console.log(v + 100) // 123100 vを数値化する方法では最もメジャーです。parseFloat(v) に比べて高速なのに加えて、parseFloatとは細かい挙動が異なります(例えば空文字列の場合、parseFloatならば NaN になりますが、 +v の場合はゼロになります)。必ず数値になることが保証されており、文字列などで数値化出来ない場合はNaNが返ります。 v

    punitan
    punitan 2013/07/07
  • ExGameの製作で感じたこと

    久々のブログが自分語りになって大変恐縮ですが、将来の自分のためにメモしておきます。 自分がExGameの製作を始めたのは2010年11月2日のことです。iPhone上でFlashが一切動かなかった当時、HTML5でFlash Playerを作れば大当たりする可能性は非常に高そうでした。当時のバイト君に技術検証を進めてもらっていて、その結果2010年8月頃には「いけそうだ」という感覚はありました。 しかし、そこから実際の開発に着手するまでに3ヶ月もかかってしまったのです。その期間の逡巡には色々と含蓄がある気がするので、まとめておこうと思います。 まず、HTML5のFlash Playerはその時点で既に存在していました。具体的には「Gordon」というオープンソースと、「Smoke Screen」という個人ベースのソース非公開プロジェクト(後にオープンソースになったらしいです)の二つがありま

    punitan
    punitan 2013/05/11
  • JavaScripterから見たJSX

    私は2001年からJavaScriptを専門にして実装をしており、かなり長い間JavaScriptを使い続けてきました。ExGameをはじめとして、異常なほどにJavaScriptを使い倒したプロジェクトを何個か完遂させています。前の会社「ブロードテイル」がDeNAに買収されたのは、JavaScriptのプロダクトだけでなく、私たちのJavaScriptのスキルを生かしたいという側面も大きくあったと感じています。 そんな私ですが、正直に言うとJSXの開発にはほとんど関わっていません。JSXは基的に一穂さんが主導し、gfxがフォローし、a_bickyがドッグフードをべる(自分たちのプロダクトをまず自分たちで率先して使う)という形で進んできました。私が強くかかわったのは、主に3月の言語仕様を決めるときの議論程度です。なのでJSXについてそこまで詳しい訳ではないのですが、そばで開発を見てきた

    punitan
    punitan 2012/06/14
  • sensui - exgame

    text only: use '4' '5' '6' / original game here / this is just a joke topic for april fools' day

    punitan
    punitan 2012/04/01
  • 連載 : 日経ソフトウェア 5 月号(最終回) 「縦シューティング」ゲーム

    日経ソフトウェア5月号にて、高速化のノウハウを詰め込んだ「縦シューティングゲーム」を作ってみました。 今回は最終回と言うことで、ゲームの王道に帰ってシューティングゲームを作ってみました。iPhone 3GSでもサクサク動くように、可能な限りの高速化のノウハウを詰め込んでいます。実際の詳しい説明は紙面にてご紹介しておりますので、是非ご覧になってください。 ゲームはこちらから試していただけます:http://nmi.jp/game5/shooting/ ソースコード一式はこちらからダウンロードできます:http://nmi.jp/game5/shooting.zip 今回のゲームは、ブラウザからも遊ぶことが出来ます。しかし可能であれば、是非スマートフォン実機にてお試しください。 なお、ゲームの画像素材に関しては、ハムコロ様(http://homepage2.nifty.com/hamcoros

    punitan
    punitan 2012/03/25
  • 戻るボタンが押された際、ページのJavaScriptを途中の状態から実行させない方法

    スマートフォンを含む最近のブラウザでは、戻るボタンで前のページに戻った際に、JavaScriptも含めて前回の最後の状態を復元します(Back Forward Cacheと呼ばれます)。これはとても便利なのですが、ページを作成する立場からすれば、余計なお世話であることもあります。 Back Forward Cacheの無効化はとても簡単に実現できます。ページの中にonunloadを書くだけです。 <!DOCTYPE html> <html><head><title>onunload test</title> <script> window.onunload = function() {}; window.onload = function() { var count = 0; var loop = function() { document.getElementById("num").in

  • 1