読者です 読者をやめる 読者になる 読者になる

ひだまりソケットは壊れない

ソフトウェア開発に関する話を書きます。 最近は主に Android アプリ、Windows アプリ (UWP アプリ)、Java 関係です。

まじめなことを書くつもりでやっています。 適当なことは 「一角獣は夜に啼く」 に書いています。

JavaScript

grunt-ts が .baseDir.ts ファイルを作るのを抑制する

Grunt を使っていて TypeScript のビルドを行うタスクを定義する際には grunt-ts を使うことが多いでしょう。 (grunt-typescript もあるけど。) grunt-ts で困ったことがあったので書いておきます。 outDir オプションを使うと .baseDir.ts ファイルが作られ…

レスポンシブデザインのために resize イベントを使うのはやめて matchMedia メソッドを使おう

レスポンシブデザインのために JS で画面サイズの変更などを検知するために resize イベントを使うことがありますが、より良い方法として matchMedia メソッドによりメディアクエリを扱うというものがありますので、紹介します。

gif-writer (GifWriter.js) version 0.9.3 をリリースしました

2013 年にリリースした GIF Encoder のライブラリ “GifWriter.js” を npm モジュールにして “gif-writer” としてリリースしました。 バージョンは 0.9.3 です。 *1 gif-writer 変更内容としては以下のとおりです。 各ファイルをモジュールに変更。 パッケー…

ECMA-262 6th (ES 2015) のモジュールについて (入門編)

ECMAScript 2015 で導入されたモジュールについて、ECMA-262 6th を読んでまとめました。

UWP アプリ開発に TypeScript + React を導入することの検討 (Node.MSBuild.Npm の紹介)

こんにちは! 株式会社はてなにて、主に 「はてなブックマーク」 Android アプリの開発を行っている id:nobuoka です。 この記事は、「はてなデベロッパーアドベントカレンダー 2015」 の 14 日目の記事です。 昨日は id:hatz48 による 「TypeScript だけで …

WinJS 4.0 では HTML コントロールにスタイルを当てるためにクラスを明示的に指定する必要がある

WinJS 4.0 がリリースされましたね!! めでたい! WinJS 4.0 Released 2015 年 6 月 14 日時点では、Try WinJS のダウンロードページのリンク先がバージョン 4.0.0 になっていますが、最新バージョンは 4.0.1 です。 (Windows Phone 10 におけるバグの修正…

Windows Runtime の IMap<K, V> インターフェイスを実装したオブジェクトを JS で使用する (ワークアラウンド)

Windows Runtime の API を JS から使用する際に問題となることの一つとして、JS ではインターフェイスを扱うことができない、というものがあります。 Windows Runtime の API には、引数として IIterable<IKeyValuePair<string, string>> オブジェクトや IMap<string, string> オブジェクトを取るものがあ</string,></ikeyvaluepair<string,>…

WebAuthenticationBroker を使用して OAuth による認可処理を Windows ストアアプリ内に組み込む

Windows ストアアプリ開発の話です。 Windows 8.1 および Windows Phone 8.1 を対象とした内容です。 (8.0 以前あるいは 10 以降については触れません。)「Authentication and User Identity (HTML)」 に書かれているように、Windows ストアアプリ内にユーザ…

Code 2013 のコードゴルフに挑戦してみた

Code 2013 における JavaScript のコードゴルフが面白そうだったので挑戦してみました。 JavaScript でデジタル時計を表示するプログラムを短くするという問題です。 問題: yoshiakist/codegolf · GitHub 先にコードを出してる人よりも短くはできなかったの…

JavaScript と関数とクロージャ

JavaScript でどれがクロージャなのか、という話が興味深かったです! 問題:どれが「クロージャ」でしょうか? - hogehoge @teramako 回答:どれが「クロージャ」でしょうか? - hogehoge @teramako ほむほむ。 クロージャなのかどうか考える以前に、どうい…

JDK 8 build b91 を使って JavaScript から JavaFX の WebView をいじる

JDK 8 と JavaFX と Nashorn OpenJDK のページを見ていると、JDK 8 のマイルストーンとして 5 月 23 日に Feature Complete とあった。 JDK 8 Milestones というわけで 5 月 23 日にリリースされた JDK 8 build b91 に一通りの機能が詰まってるものだと思っ…

読んだ: 『BACKBONE.JS ガイドブック』 高橋侑久 著

Backbone.jsガイドブック作者: 高橋侑久出版社/メーカー: ラトルズ発売日: 2013/04/25メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見るid:yuku_t さん著の 『BACKBONE.JS ガイドブック』 を読み終わりました *1。Backbone.js のことはも…

JavaScript GIF Encoder “GifWriter.js” 0.1.0 をリリースしました

2013 年 4 月 22 日に JavaScript の GIF Encoder ライブラリをリリースしました。 TypeScript で書いてます。 ダウンロードとデモ 次のページからダウンロードできます。 Web 上で動くデモもあります。 GifWriter.js — GIF Encoder written in TypeScript T…

外部 script の document.write が何もしない条件などについて

読み込みのタイミングによっては外部 script のdocument.writeは無視される - HAKOBE blog ♨ なるほどなー、と思いながら上記記事を読んでた。 記事を読んでて JS の読み込み周りで気になることがあったので調べた。 DOM 操作で追加された script 要素のスク…

HTML / DOM におけるキーボードイベント周りの話

最近キーボードショートカットの実装をしようと思ってキー入力によるイベント周りについて調べてみたのだけれど、日本語でまとまった情報が見つからなかったので、キーボードショートカットの実装に必要そうな内容を簡単にまとめておこうと思う。 キーボード…

Windows ストアアプリ “MeteorLine” 0.2.0.0 のソースコードを公開しました (アプリの多言語対応などの話)

MeteorLine (Windows ストアアプリ) のバージョン 0.3.0.0 のリリースをしたので、0.1.0.2 のソースコード公開 に引き続き、1 個前のバージョンである 0.2.0.0 のソースコードも GitHub で公開しました。 MeteorLine のリポジトリ : nobuoka/win-store-Meteo…

JavaScript の this キーワードに結びつけられる値はどのように決定されるのか (言語仕様の説明)

最近 JavaScript の this キーワードについての記事をいくつか見かけて 「そういや自分も昔 this キーワードについて記事を書いたなー」 と思って 古い記事 を見返してみたのですが、関数呼び出しのことしか説明してなかったので改めて this キーワードの全…

Promises/A+ 実装 Ten.Promise に関するメモ書き

JSDeferred とか WinJS.Promise とか jQuery の Deferred, Promise などを使うことがあるのだけれど、インターフェイスの違いが結構つらいので JSDeferred と WinJS.Promise の両方とほぼ互換なインターフェイスをもつ Promises/A+ 実装が欲しいなぁ、と思っ…

Kyoto.js #3 で 『GUI アプリケーションにおける MVC』 という発表をしました

2012 年 12 月 13 日に開催された JavaScript の勉強会 Kyoto.js #3 で 『GUI アプリケーションにおける MVC』 という発表をしました。 GUI アプリケーションにおける MVC from Yu Nobuoka 内容 最近は GUI アプリケーションの設計についていろいろ考えてい…

Kyoto.js #2 で 『ECMAScript 5 時代のオブジェクト・プロトタイプ継承入門』 という発表を行った

2012 年 11 月 29 日に開催された Kyoto.js #2 で 『ECMAScript 5 時代のオブジェクト・プロトタイプ継承入門』 という発表を行った。 ECMAScript 5 時代のオブジェクト・プロトタイプ継承入門 from Yu Nobuoka 発表の動機 世の中にある JavaScript のプロト…

Kyoto.js #1 で 『TypeScript 言語処理系ことはじめ』 という発表をしました

2012 年 11 月 15 日に開催された Kyoto.js #1 で 『TypeScript 言語処理系ことはじめ』 という発表をしました。 発表内容 資料は SlideShare にアップロードしました。 TypeScript 言語処理系ことはじめ from Yu Nobuoka 概要 前半は JavaScript に代わる言…

Windows ストアアプリ開発において UI 部品をページコントロールで実装する

Windows ストアアプリを JavaScript で開発する話です。 アプリを複数のページで構成する場合、基本的にはベースを単一の HTML ページにして、その上に次々とページコントロールを読み込むことでページ遷移を実現します。 参考 (過去に書いた記事) : Windows…

WinJS.UI.ListView の項目に何番目の要素であるかを表示する

WinJS.UI.ListView に表示する項目に、その項目のインデックスやグループ内の項目数を表示する方法として WinJS.Binding.Template.prototype に手を加えるという記事を見かけました。 WinJS.Binding.Template.prototypeの拡張 - taediumの日記 この方法より…

WinJS.UI.ListView の基本的な使い方 (項目の大きさの指定方法と要素の生成方法)

Windows ストアアプリを JavaScript で開発する際の話です。Windows 8 の特徴の一つでもあるタイルを並べたような表示を行うための WinJS コントロールとして WinJS.UI.ListView があります。 理解してしまうと特に難しいところはないのですが、プロジェクト…

WinJS.Promise のような非同期コールバックに IntelliSense を提供する方法

Windows ストアアプリを JavaScript で開発する際の、Visual Studio における入力支援機構 (IntelliSense) の話です。 IntelliSense と XML ドキュメントコメントについて Visual Studio には、IntelliSense とよばれる入力支援機能が搭載されています。 Jav…

IE10 における placeholder 属性をもつ textarea 要素、または value 属性のない type="checkbox" の input 要素の clone に関するはまりどころ

Windows ストアアプリで form 要素を含んだ Page コントロール を読み込もうとしたときに、期待しないレンダリング結果になった箇所があったのでちょっと調べてみた。 ちなみに期待しない結果になったのは以下の箇所。 textarea 要素 の placeholder 属性に…

JavaScript 処理系 Rhino で TypeScript コンパイラのビルドを試してみた

オープンソースの JavaScript 処理系である Rhino で、TypeScript 処理系を動かしてみよう、という話。 完全にはできてないけど、TypeScript のコンパイラをビルドをして、コンパイラのテストを走らせる、というところ (テストは走るけど多数失敗する) まで…

WinJS.Promise による非同期処理をループさせる関数 (Windows ストアアプリ)

JavaScript で非同期処理を chainable に書くためのライブラリとして、JSDeferred や jQuery.Deferred があります。 Windows ストアアプリ (旧称 Metro スタイルアプリ) における JavaScript 用ライブラリである WinJS では、同様のものが WinJS.Promise と…

Windows ストアアプリ (JavaScript で開発) におけるアプリ設定の表示方法

Windows 8 で新たに導入される Windows ストアアプリ (旧称 Metro スタイルアプリ) の開発に関する話です。この記事では、Windows ストアアプリの設定チャームからアプリの設定を行えるように、以下の内容について説明します。 なお、JavaScript で Windows …

IE 10 の拡張された XHR を使って HTTP のストリーミングを受信する (Twitter Streaming API とか)

Web ブラウザから web サーバーに HTTP リクエストを送る際によく用いられる XMLHttpRequest (XHR) ですが、XMLHttpRequest の API を見ると、chunked transfer encoding による HTTP のストリーミングからのデータを受信して、都度処理をしていく、というよ…

QUnit の deepEqual は異なるグローバル環境で生成されたオブジェクトの比較で失敗する

JavaScript で書かれたプログラムのテストの話。 QUnit の deepEqual を使って 2 つのオブジェクトの構造が同じであることを確認しようとテストを書いていたのだけれど、どうみても同じ構造の 2 つのオブジェクトなのに deepEqual のテストが通らない、とい…

Windows ストアアプリ (Metro スタイルアプリ) における単一ページナビゲーションについて (JavaScript)

Windows 8 に新しく導入されるアプリは、もともと Metro スタイルアプリと呼ばれていましたが、現在は Windows ストアアプリと呼ばれるようになっています。Windows 8 の Metro スタイルアプリの開発には、HTML + CSS + JavaScript を用いることができます。…

Windows ストアアプリ (Metro スタイルアプリ) における JavaScript の非同期処理 (WinJS.Promise)

概要 Windows 8 の Windows ストアアプリ (旧称 Metro スタイルアプリ) 開発の話です。 Windows ランタイムと JavaScript 用 Windows ライブラリでは非同期処理を行う関数は基本的に WinJS.Promise オブジェクトを返します。 WinJS.Promise は Common JS Pro…

JavaScript のオブジェクトのプロパティ一覧を取得する方法とオブジェクトが指定の名前のプロパティをもっているか検査する方法

JavaScript のオブジェクトがある名前のプロパティをもっているのかどうか調べる方法や、オブジェクトがもっているプロパティの名前の一覧を取得する方法はいくつか種類があって、それぞれどういうものだったかちゃんと覚えてなかったのでまとめてみました。…

"鹿駆動勉強会" に参加しました

「鹿駆動勉強会」 という勉強会に参加してきました。 鹿駆動ってなんやねん、という感じですが、奈良公園の鹿によって駆動される勉強会なのです。 「鹿駆動勉強会」 開催の経緯 (Togetter) 会場へ 鹿かわいいなぁと思いながら会場へ。 会場はなんと 新公会堂…