TypeScriptリファレンス Ver.1.0対応 作者: わかめまさひろ,井上章,丸山弘詩出版社/メーカー: インプレスジャパン発売日: 2014/05/16メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る 仕事ではJSXでライブラリとか作るおじさんをやっているんですが、その時の自分の信条として、必ずJavaScriptから呼べるようにもするっていう事を守ってやってきた結果、jsx-linkerとかバインディングの書き方をある程度心がけるといい感じにJavaScriptとJSXの垣根を取っ払えるなと思っていたので、そのノウハウ紹介でした。 JSXの特徴とか wasabizとか gfxが話してくれるだろうし、不要かなと思ってたんですが、急遽一人で発表になってしまったので、 jsx 特徴でググってる— Yosuke FURUKAWA (@yosuke_furukaw
テスト駆動開発(TDD)の一般化とGitHubの登場によって、機能追加の際にコードとテストを同時に実装する(そして、両者を一括してmasterにmergeする)という開発手法が一般化してきました。 しかし、「良いプログラム」の要素を構成するのは、コードとテストのみではありません。動作するコードと、その品質を担保するためのテストがあったとしても、適切なドキュメントがなければ、ユーザーはそのプログラムをどうやって使ったら良いかわかりません。 つまり、ユーザーに使いやすいプログラムを継続的に開発/提供しようと思うと、 コード テスト ドキュメント の3点セットを提供する必要があるのです注1。 今日のJSXが抱えている最大の課題は、ドキュメントが不足しているという点にあります。その原因は、「機能追加」の際にコードとテストのみを実装してmasterにmergeすることを繰り返す一方で、ドキュメントは
5月1 zlib.js の Inflate 実装を JSX-lang に移植しました はじめに JSX 速いという話を聞いたので、zlib.js を移植したらどうなるのか興味があったので試しました。 https://github.com/imaya/zlib.jsx お詫び JSXがリリースされた直後に少し触ってみたのですが、最初期のバージョンでは素のJSとの連携が取りにくかったので、自分の用途には少しマッチしないなと敬遠気味でした。 その認識は最近まで続いていたのですが、現在は export なども出来るようになっているのでライブラリなんかも簡単に作れるようになってます。 (おそらく実装されたのは 2013-04-30 にリリースされた v0.9.27 ?) 何度か飲み会などで「素のJSとの連携が取りにくいからなー」とか言ってしまって誤解を与えてしまったのをここでお詫びします。 (exp
さて、JSON5についての紹介です、みんなjsonを使って色んなリソースを表現すると思いますが、jsonって色々と不便ですよね。 よく挙げられるjsonの不満: ケツカンマが使えない コメントが入れられない keyに必ずquoteが必要 などなど。 この手の話はよくあるんですが、これは仕様で決まってしまっていることなのでどうしようもないです。 この手の話が出る度に色んな解決策があります。jsonじゃなくてyaml使おうとか、csonいいよ、とか、jsonでparseできなかったらevalしてjavascriptオブジェクトにしちゃおうとか。 んで、もう一つの解決策として、JSON5っていうYet AnotherなJSON形式があるわけです。 これ使うと普通のJSONはJSONとしても読み込めるし、上にある、コメントやケツカンマ、ダブルクオートの問題も解決されます。どうしてもコメント入れたい
先日、atomというgithub製のIDEが公開されて話題になってます。 これ、広める戦略がうまくて、昔のgmailと同じく、inviteを受けた人が3人だけinvite ticketを持ってて、その人からまた3人inviteできるって仕組みになってます。こうすることでSNSでのinvite ticket要求が盛んになり、流行ってるように見えるというのが上手い。 ちなみにDLされるファイルだけ他人に送っても内部的にチェックしててpackage managerとかが使えない仕組みになってるので、inviteを持ってない人はおとなしく誰かから回ってくるのを待ちましょう。 本題 atom自身はSublime Textっぽい外観で、apmっていうパッケージマネージャが付属されてます。 んで、早速apmに自作のpackageを作って公開してみました。 実行している所: yosuke-furukawa
Why asm.js sometimes runs faster than hand-written JavaScript (and the changes in JSX 0.9.77) I have released an update (version 0.9.77) of JSX - a statically-typed altJS programming language with an optimizing compiler to JavaScript, with the following changes: the definition of int has been changed to strict 32-bit signed integer introduce Promise class in conformance to the ECMAScript 6 draft T
npmで色々コードを書いていると、以下のような依存関係ができてしまうことがある*1。 a +-- b <-- depends on c@1.0.x | `-- c@1.0.3 `-- d <-- depends on c@~1.0.9 `-- c@1.0.10このように「bが依存するc」と「dが依存するc」が異なるものになってしまうと、(2回cがロードされる分)プログラムが無駄に大きなものになってしまったり、(bとdがお互いで生成したcを使う場合に)片方で生成されたcのインスタンスをもう片方で「instanceof c」してもfalseが返ってきてしまう、などの問題が発生する。 この問題を解決するために、npmはsemantic versioningという枠組みとnpm dedupeというコマンドを提供していて、両者を使うことで、依存構造を以下のような形に変換して問題を回避することができる
Based on @shibukawa-sans work, I have added experimental support for NPM-based packages in JSX 0.9.75. It is now possible to publish libraries for JSX using NPM (or use such packages from JSX). A tiny example would be the following: package.json: { "dependencies": { "nodejs.jsx": "~ 0.1.1" } } hello-npm.jsx: import "nodejs.jsx/*.jsx"; class _Main { static function main(args : string[]) : void { fs
結構いろんなことをやってきたなぁと思う。 序盤は仕事が忙しかったりで仕事関連で色々やってた。 仕事でやったことに関してはこの前まとめたので、省きます。 DeNAに転職して1年経った - from scratch 主に発表、OSS活動、ブログ系で何をやったかを書きます。 発表系 やっぱりNode学園祭で発表したのが嬉しかったし、初めてのスタッフ活動で楽しかった。 Node学園/Node学園祭で話した発表ネタ Yeoman, Bower, Grunt 東京Node学園祭 2013にスタッフ兼スピーカーとして参加しました。 - from scratch tmlibとYeomanでゲーム量産する話 東京Node学園 9時限目で発表してきました。 - from scratch この手のYeomanとかBowerで話すことが多くなったおかげか、Yeomanハンズオンで講演を頼まれたりして、嬉しかった。
概要: 正面から正々堂々不意うって正直に申し上げます 今日、なんとなくJSX使って、前々から考えていたWebアプリでもかけたらなぁと思ってJSXを始めようとしたんですが、その際にあまりにもJSXへの理解が進まなくてストレスがマッハだったので、今日はその辺りの正直な感想を書きます。 理由その一: ドキュメントのどこをみたら良いのかわからない っていうか、 こういうケースにはこう書いたら良いですよ 的なチートシートが見つけられなくて、どうやってコード書けば良いんですか……、ふえぇってなりました。 なので、お正月のお年玉には、ペラ一枚で良いので、こういうケースにはこう書くよ的なものを 網羅した チートシートが欲しいです。はい。 理由その二: 既存のnode.jsエコシステムをどう利用していいのか分からない というより、JSXって既存のNode.jsエコシステムと相性が悪いような気がするのって気の
※この記事は、JSX Advent Calendar 2013の一部です。 今日は12月24日、クリスマス・イヴです。それにちなんで、JSXがいかにして生まれたのか、というお話をしましょう。 元々は、2012年2月17日にさかのぼります。私は翔泳社開催の「Developers Summit 2012」の講演が終了し、登壇者の皆様と控え室で歓談しながら10周年コラボパーティの開場を待っておりました。そこでJenkinsの生みの親である川口耕介さんとお話をする機会がありまして、もう付き合いが20年近くになるんですかね、まあ会うたびにお互いに歯に衣を着せないで相手を容赦なくディスるんです。 で、そのとき私は川口さんに「お前まだJavaScriptなんて書いてんの?型がない言語を使うとか正気か?(意訳)」というツッコミを受けまして、もう完敗だったわけです…。 というわけでその場(控え室)で川口さん
JSXアドカレの最後のエントリです。 なんとなくXXから見たYYというタイトルが流行りそうな気がしてきているのでまとめます。 Noderから見たJSXについて 今の会社に入って9月位になったらサーバーサイドのNode.jsをJSXで書いてました。具体的にはJSXでゲームを書いたり、運用のためのライブラリを書いてます。 以下の記事に触発されて書きます。 「Haxerから見たJSX」という感想文を書いてみた。 JSXすげーと思う所 profiler 僕が個人的に一番好きなのはJSXのプロファイラですね。どこのメソッドを何回コールして、どのメソッドでどれくらい時間がかかっているのかまで見れます。Node.jsのプロファイラもいくつかあるんですが、httpリクエストベースで見たり、その時のCPU、メモリ使用率が分かる程度で、メソッドの時間までは取れません。v8のprofilerでかなり細かく見れま
2013/12/23追記: gfxから頂いた下記のフィードバックにより、修正しました。 TestCase強化しました · Issue #1 · yosuke-furukawa/jsx_test_tutorial · GitHub gfx++ JSXでテストどう書くのか、という話。 このエントリは、JSXアドベントカレンダーの21日目の記事です。 JSX書く時、あらびき的チュートリアルとuupaa的チュートリアルが非常に参考になりますが、テストに関してはもう少し深堀りしておいてもいいのかなと。 JSXテストでHelloWorld JSXは組み込みでユニットテストの機能があります。 HelloWorldクラスがあるとします。 import "js/nodejs.jsx"; class HelloWorld { // 同期的なメソッド function hello(arg : string) :
※この記事は、JSX Advent Calendar 2013の一部です。 JSX Advent Calendarは技術系のネタが多いですが、ちょっと技術の話から離れて、JSXが将来的に何を目指そうとしているのかについて語ってみようと思います。 なお、私はJSX自体の開発には積極的に関与しておらず、この記事の内容についてJSX開発陣との合意を取ったものではありません。これはあくまでも個人の勝手な予想・思い込みによる記述であるということを念のために強調しておきます。 ブラウザやJavaScriptはここ近年大変注目されており、界隈ではそれにまつわる技術が多数登場しています。asm.js、PNaCl、WebGL、GWTなどなど、もちろんJSXもその一環として考慮されています。これというのも、ブラウザが入っていないパソコンはほぼないくらいブラウザが当たり前に浸透したことと、ブラウザの中で動く唯一
このエントリは、JSX Advent Calendar 2013の18日目です。 socket.ioの1.0が出ると言われて、出ないまま早一年半経ちました。早いですね。 まぁでもsocket.ioはNode.jsのムーブメントを起こしたモジュールの一つであることに疑いはなく、 socket.ioをJSXから使いたいというニーズもそろそろ弊社から上がる頃ではないかと思い、socket.io.jsxを作りました。 socket.io.jsx https://npmjs.org/package/socket.io.jsx https://github.com/yosuke-furukawa/socket.io.jsx 使い方 何はともあれ npmのインストールから。 $ npm init $ npm install socket.io socket.io.jsx --saveあとは、こんな感じで
2013-12-15 とあるプログラミング言語処理系のセルフホスティング化に携わった (この記事はJSX Advent Calendar 2013の一部として書かれました。) 僕がJSXというプログラミング言語の開発に携わってこの冬で早1年半になります。コンパイラとしてのjsxにはこの1年半で幾多の出来事がありましたが、その中でも一番巨大なものがセルフホスティングでしょう。つまりJSXのコンパイラをJSX自身で書きなおすということです。 メインラインのコードをまるまる入れ替えるこのセルフホスティングは大きな苦労を伴いました。実際、通常のポーティングとは違いコンパイラそのものを入れ替えてしまうわけですから、バグの出方などもなかなか味わい深いものです。 JSXセルフホスティングを行ってから既に1年が経過しようとしています。今までこの作業の苦労について外で話したことは無かったのですが、「プログラ
※この記事は、JSX Advent Calendar 2013の一部です。 JSXは型付き言語なので、JavaScriptで簡単に書ける内容が複雑になってしまうこともあります。Canvas周りでは特にその傾向が強いので、ここではJSXでCanvasを扱う書き方を簡単にご紹介します。 まずCanvasの作成です。Canvasの型はHTMLCanvasElementとなります。 var canvas = dom.document.createElement("canvas") as HTMLCanvasElement; JSXにはグローバル変数は存在しません。JavaScriptのグローバル変数(正確にはグローバルオブジェクトのプロパティ)documentにアクセスするためには、JSXではdomのプロパティとしてアクセスします。dom.window.documentとアクセスしても同じです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く