タグ

ブックマーク / tech.nitoyon.com (56)

  • Visual Studio Code は JavaScript 開発が超絶便利になる可能性を秘めている!

    Visual Studio Code は JavaScript 開発が超絶便利になる可能性を秘めている! クロスプラットフォームでオープンソースな IDE 環境、Visual Studio Code が公開されたので試してみた。 拡張を入れなくても、デフォルトで JavaScript の「自動 Lint」「Grunt、Gulp 連携」「デバッグ」が動いた。なんだかすごく便利そうな予感。 Windows 環境で起動してみたらこんな画面だった。 なんか黒いが、色は好みにカスタマイズできるし、プリセットからも選べる。 フォルダーを開くことから始まる Visual Studio Code にはプロジェクトの概念はない。 [File] > [Open Folder] からフォルダーを開けばよい。 ためしに、過去に作った Node.js 製の livereloadx のフォルダーを開いてみた。 左側に

    Visual Studio Code は JavaScript 開発が超絶便利になる可能性を秘めている!
    nilab
    nilab 2016/06/07
    Visual Studio Code は JavaScript 開発が超絶便利になる可能性を秘めている! - てっく煮ブログ
  • Object.observe の死 (ECMAScript の提案取り下げ、V8 からも削除予定)

    1年前の記事 JavaScript フレームワークがデータバインディングを実現する4通りの手法 では、Object.observe() について次のように説明した。 JavaScript オブジェクトが変更されたときにコールバックを呼んでくれる API データバインディングの実装が簡単になる Google Chrome には実装済み ECMAScript 7 に提案中 提案が通れば MV* フレームワークの実装がシンプルになってハッピー 将来を期待されていた Object.observe() であったが、2015 年 11 月頭、ES Discuss メーリングリストへの An update on Object.observe という投稿で、ECMAScript からの提案が取り下げられて、V8 エンジンからも年内に削除される予定であることが表明された。 Object.observe()

    Object.observe の死 (ECMAScript の提案取り下げ、V8 からも削除予定)
    nilab
    nilab 2015/11/18
    Object.observe の死 (ECMAScript の提案取り下げ、V8 からも削除予定) - てっく煮ブログ
  • Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話

    Node.js の次のメジャーバージョン 0.12 で yield が使えるようになります。 そのおかげで、JavaScript のコールバック地獄に光が差し込むのです。ああ、さようなら、コールバック地獄。 7 年ごしで実現した yield 2006 年、Firefox 2 のリリースと同時に yield は JavaScript 界に登場しました。随分と前の話ですね。 登場した当時は JavaScript 界隈でけっこう話題になっていました。 JavaScript 1.7 の yield が凄すぎる件について - IT戦記 Latest topics > JavaScript 1.7のyield文ってなんじゃらほ - outsider reflex JavaScript 1.7 の新機能: Days on the Moon 登場したときにはインパクト大きかったものの、結局 Firefox

    Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話
    nilab
    nilab 2015/05/11
    Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話 - てっく煮ブログ
  • jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話

    jQuery 1.9 がリリースされました。1.9 の新機能の中ではあまり注目されていませんが、ソースマップに対応したのが地味に便利そうです。 というのも、圧縮版の jquery.min.js を使っていると 何か問題が起きたときにスタックトレースを眺めても jQuery の部分が意味不明 デバッガーで jQuery のソースにステップインしても意味不明 といった理由で、開発中には非圧縮の jquery.js を使うことが多かったわけです。 それが、1.9 からはソースマップに対応したので圧縮版のままでのデバッグが簡単になってます。 超簡単な使い方 ソースマップに対応したブラウザーは現時点では Google Chrome のみなので、Google Chrome の手順を説明します。 (Firefox はソースマップへの対応を計画中らしい) 事前準備を忘れずに Google Chrome

    jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話
    nilab
    nilab 2014/09/02
    jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 - てっく煮ブログ
  • Vue.js が data に渡した値を激しく書き換える件について

    最近、JavaScript の MV* フレームワークの中で Vue.js が少しずつ注目を浴びてきているようであります。 5分でわかるVue.jsと、jQueryで頑張ってはいけない理由 | 株式会社インフィニットループ技術ブログ Vue.jsから手軽に始めるJavaScriptフレームワーク - Qiita 軽量でパワフルなデータバインディングMVVM, vue.jsで遊んでみた - mizchi's blog そんなわけで、自分も Vue.js (v0.10.5) を触ってみたのですが、data で渡した値を激しく書き換えるところに面らったので記事にしておきます。 自作クラスのオブジェクトを Vue.js に渡すと壊される 何らかのビジネスロジックを持ったモデルを作って、それを Vue.js のデータバインディングで HTML に反映しようすると破綻します。 簡単な例として、よくあ

    Vue.js が data に渡した値を激しく書き換える件について
    nilab
    nilab 2014/08/13
    Vue.js が data に渡した値を激しく書き換える件について - てっく煮ブログ
  • JavaScript フレームワークがデータバインディングを実現する4通りの手法

    最近流行りの JavaScript MV* フレームワークは、どれもデータバインディングをサポートしているが、実現方法はフレームワークによって異なる。 この記事では、各種フレームワークがどのようにモデルの変更を検知しているかを次の 4 つのパターンに分類して紹介する。 モデル クラス方式 (Ember.js、Backbone.js、Ractive.js、Knockout.js など) 力ずく方式 (AngualrJS) モデル書き換え方式 (Vue.js) Object.observe 方式 (Polymer) パターン名は私が勝手に名づけたものだけど、このへんの雰囲気が理解できれば、フレームワークごとの個性が分かるだろうし、利用イメージもわきやすいんじゃないかと思っている。 1. モデル クラス方式 「モデルとして扱えるのはフレームワークが用意したモデル クラスのインスタンスだけ」という

    JavaScript フレームワークがデータバインディングを実現する4通りの手法
    nilab
    nilab 2014/08/13
    JavaScript フレームワークがデータバインディングを実現する4通りの手法 - てっく煮ブログ
  • jQuery.extend マニアックス

    jQuery の extend メソッドは便利なんだが複雑で忘れてしまいがちなのでメモしておく。 jQuery.extend の呼び出しパターンは次の4通り。 $.extend([deep,] target, obj1, [obj2, [obj3, ...]])$.extend([deep,] obj)$.fn.extend([deep,] obj)$(...).extend([deep,] obj) 全てのパターンで第一引数に [deep,] がある。これはオプションの引数で true を指定するとディープコピーしてくれる。 以下では分かりやすくするために deep オプションは省略した一覧を掲載する。 $.extend(target, obj1, [obj2, ...]])$.extend(obj)$.fn.extend(obj)$(...).extend(obj) だいぶシンプルにな

    jQuery.extend マニアックス
    nilab
    nilab 2014/05/26
    jQuery.extend マニアックス - てっく煮ブログ : $.extend : JavaScript で継承
  • これがスマートフォン向けサイトを作るときの viewport 設定3パターンだ

    スマートフォン向けの Web サイトを作るとき、viewport の設定次第で使い勝手が大幅に変わる。 最近はレスポンシブ Web デザインが流行してるけども、その大前提として viewport の設定パターンを抑えておくのは重要だろう。 この記事では、viewport の設定によって、見た目・使い勝手がどう変わるかを解説する。 パターン1: 何も考えずに HTML を書く まずは、viewport を指定せずに、単純な HTML をスマートフォンで表示してみる。 <!DOCTYPE html> <head> <meta charset="utf-8"> </head> <body> <img src="/images/logo-ja.png"> <p>色んな素材がごった煮になった様子をお椀で表現しています。 湯気が<strong>「てっく」</strong>に見えるのが隠し味になっていま

    これがスマートフォン向けサイトを作るときの viewport 設定3パターンだ
    nilab
    nilab 2014/05/07
    これがスマートフォン向けサイトを作るときの viewport 設定3パターンだ - てっく煮ブログ
  • -webkit-text-size-adjust: none を絶対に設定してはいけない理由

    PC 版の Google Chrome や Safari で見たときにユーザビリティーが落ちるから。 以上。 で終わってしまうと記事にならないので、ちゃんと説明しておく。 そもそも -webkit-text-size-adjust とは何か iPhoneAndroid のブラウザーは、縦向き (Portrate mode) と横向き (Landscape mode) の文字サイズを自動調整する機能がある。 これを制御するのが CSS の -webkit-text-size-adjust である。 文字サイズ自動調整の具体例 次のような HTML をスマートフォンで表示してみる。 <!DOCTYPE html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-

    -webkit-text-size-adjust: none を絶対に設定してはいけない理由
    nilab
    nilab 2014/05/07
    -webkit-text-size-adjust: none を絶対に設定してはいけない理由 - てっく煮ブログ
  • IE4 の青写真を懐かしむ

    Internet Explorer 4.0(以下、IE4)が登場したのは、10年以上前の1997年10月のこと。 いま改めて IE4 の資料を調べてみたところ、当時の Microsoft が目指していたものが見えてきて面白かったので、ここに記しておく。 Windows 95 + IE4 生の Windows 95 に IE4 インストールすると、OS そのものの見た目が変わってしまったのが印象的だった。見た目だけでなく、エクスプローラの操作性が変わるなど、IE4 は Windows 95 SP1 といってもいいぐらいの位置づけだった。 中でも目を引くのが、画面右側に登場する「チャンネル バー」だ。 このチャンネル バーは、IE4 の目玉新機能の Active ChannelActive Desktop を象徴したツールとなっている。 お気に入りを発展させた Active Channel ま

    IE4 の青写真を懐かしむ
    nilab
    nilab 2014/05/07
    IE4 の青写真を懐かしむ - てっく煮ブログ : 「Active Channel は、Web サイトの Push 配信を可能にする技術だ。チャンネルは CDF(Channel Definition Format)と呼ばれる XML ファイルで定義される」
  • K-means 法を D3.js でビジュアライズしてみた

    クラスタリングの定番アルゴリズム K-means 法(K平均法)の動作原理を理解するために、D3.js を使って可視化してみました。 図をクリックするか [ステップ] ボタンを押すと、1ステップずつ処理を行います [最初から] ボタンを押すと、最初の状態に戻ります [新規作成] ボタンを押すと、N (ノード数) と K (クラスタ数) の値で新しく初期化します 古いブラウザーではうまく表示できない可能性があります (IE 10、Firefox 25、Chrome 30 で動作確認しています) K-Means 法とは 英語Wikipedia の k-means clustering - Wikipedia, the free encyclopedia の手順に沿って実装しています。 英語版の手順をザックリと書くとこんなイメージになります。 初期化: N 個のノード (丸印) と K 個の

    K-means 法を D3.js でビジュアライズしてみた
    nilab
    nilab 2014/05/07
    K-means 法を D3.js でビジュアライズしてみた - てっく煮ブログ
  • CVS レポジトリを Git に変換した手順とか注意点とか

    この前、10 年以上前に趣味で作っていたフリーソフトについてメールで質問が来た。もはや完全に記憶から消えているだけでなく、いま使っている PC にソースコードもない。何も分からない、答えられない。 そのままでは古いソースコードも成仏しきれない。供養するために、古い HDD を引っ張り出して探したところ、自宅サーバーをやってた HDD の中に CVS レポジトリーが見つかった。せっかくなので、Git に変換して GitHub で公開してみた (その1, その2)。これで成仏できるだろう。 そこで、この記事では CVS レポジトリーを Git に移行した手順をまとめておく。レガシーな CVS から Git に移行したい人の参考になるとうれしい。 git cvsimport の使い方 Git には git-cvsimport というコマンドがある。CVS の履歴を Git に変換してくれる。 C

    CVS レポジトリを Git に変換した手順とか注意点とか
    nilab
    nilab 2014/05/07
    CVS レポジトリを Git に変換した手順とか注意点とか - てっく煮ブログ : git cvsimport -v -i -R -A author-conv-file.txt \ -d :local:/path/to/CVS <module>
  • Vagrant で作ったり壊したりできる Windows 環境を手に入れるまでの手順

    最近話題の Vagrant さんは「Linux の環境を作ったり壊したりして開発とか試験が楽になるよ」と紹介されることが多いけど、Windows の環境だって作ったり壊したりしたい! いろいろ調べつつ環境を作ってみたので、その手順を共有しておく。 完成イメージはこんな感じ。コマンドプロンプトから vagrant up をしたら VirtualBox 上に Windows Server 2012 R2 の環境が準備されて、そこにリモート デスクトップで接続している。 いろいろいじったあとに vagrant destroy したら環境は消え去って、vagrant up したら、また、まっさらな状態から使える。 ちょっと注目してほしいのは、ゲスト OS の C:\vagrant にホスト側の Vagrantfile がマウントされているところ。このあたりの処理は Vagrant-Windows

    Vagrant で作ったり壊したりできる Windows 環境を手に入れるまでの手順
    nilab
    nilab 2014/02/21
    Vagrant で作ったり壊したりできる Windows 環境を手に入れるまでの手順 - てっく煮ブログ
  • 意外と多い!? Web フォントに対応していない環境 ~2012 年の Web フォント事情

    Web フォントは「Web サイトにフォントを埋め込む」ための技術です。 先日、Web フォントを使った 絶対にコピペできない文章を作ったったwwww を公開しました。多くの人に楽しんでもらえたのですが、その一方で、Web フォントが適用されなかった方から「コピペできるんだけどどういうこと?」「意味が分からない」というコメントがよせられました。 ほぼすべてのブラウザーが Web フォントに対応しているはずなのですが、一体、何が原因だったのでしょうか。 そこで、Web サーバーのアクセスログを解析して「Web フォントに対応していない環境」がどの程度あったのかを調べてみました。 4種類のフォーマット 一口に Web フォントといっても、フォントのフォーマットは WOFF・TTF・EOT・SVG の 4 種類あります。今後は WOFF フォーマットが標準になっていくのですが、現在ではサポートし

    意外と多い!? Web フォントに対応していない環境 ~2012 年の Web フォント事情
    nilab
    nilab 2013/12/10
    意外と多い!? Web フォントに対応していない環境 ~2012 年の Web フォント事情 - てっく煮ブログ
  • msysGit(Git for Windows)がいよいよ公式に UTF-8 をサポート!

    最近、Git について勉強しています。Windows で Git をやるなら Cygwin と msysGit(Git for Windows) がメジャーなようです。 Cygwin Git のいいとこ悪いとこ Cygwin は UTF-8 な日語ファイル名にも対応しており、Cygwin の中で閉じて Git を使っている分には何不自由なく使えるのでお勧めです。 ただし、次のような悲しいポイントがあります。 Cygwin 版 Git は、Windows 向けの GUI な Git ソフト(TortoiseGit や Git Extensions)との相性が悪いWindows のエディタやマージツールと連携しようとするとパスのポリシーが違うのでうまくいかないnkf を噛ませようとしても、Cygwin 用の nkf バイナリは公式配布されておらず、わざわざ Cygwin 上で make する

    msysGit(Git for Windows)がいよいよ公式に UTF-8 をサポート!
    nilab
    nilab 2013/03/27
    msysGit(Git for Windows)がいよいよ公式に UTF-8 をサポート! - てっく煮ブログ
  • jQuery の配列系のメソッドをメモしとこ

    jQuery は機能が豊富なので、しばらく使わないと忘れてしまう。 ここでは、jQuery と配列の関係に絞って目的別に逆引きできるようにしておく。 配列から jQuery オブジェクトを作成 $ 関数に渡せばOK $([1,2,3]) NodeList のような配列っぽいものを渡しても解釈してくれる。 $(document.getElementsByTagName("div")) // $("div") と同じ ※内部的には setArray メソッドが呼ばれてるが、外から使うことは稀。 jQuery オブジェクトを配列のように扱う 要素数を取得する length プロパティを使えばOK。 $("div").length // document.getElementsByTagName("div").length と同じ jQuery のメソッドを使って操作する限りは、適切に lengt

    jQuery の配列系のメソッドをメモしとこ
    nilab
    nilab 2012/09/21
    jQuery の配列系のメソッドをメモしとこ - てっく煮ブログ
  • 経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた - てっく煮ブログ

    as詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック を読んでいて、経路探索のアルゴリズムで A* が取り上げられていました。A* については、いろいろ検索して調べたりもしたのですが、やっぱりに書いてあると理解しやすいですね。せっかくなので自分流に実装してビジュアライズしてみました。ダイクストラ法まずは A* の特別なケースでもあるダイクストラ法から見ていきます。クリックすると探索のシミュレーションが開始します。スタート地点(S)からゴール(G)への探索が始まります。色がついたところが「最短経路が決定した場所」です。スタート地点から少しずつ探索が完了していきます。半分ぐらい完了しました。まだまだ進みます。最後まで終わりました。最短経路を黒色矢印で表示しています。ダイクストラ法は、スタート地点から近いノード(=マス

    nilab
    nilab 2012/08/24
    経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた - てっく煮ブログ : A*(A-Star)
  • jQuery UI モーダルダイアログの仕組み - てっく煮ブログ

    JavaScriptjQuery UI の Dialog 機能はダイアログをモーダル表示することができる。サンプルを見ると、背景がグレーアウトされて、手前のダイアログしか操作できないTab キーを動かしてもダイアログからフォーカスを移せないといった動作になっている。いままでいろんなライブラリの擬似モーダル実装を見てきたが、Tab キーを押したらこっそり裏側の部分にフォーカスを移せるものばかりだったので、Tab キーにちゃんと対処していたところに驚いた。どうやって実装してるんだろうと思って jquery.ui.dialog.js を見てみたら、次のように泥臭く実装していた。 // prevent tabbing out of modal dialogs if (options.modal) { uiDialog.bind('keypress.ui-dialog', function(even

    nilab
    nilab 2012/07/20
    jQuery UI モーダルダイアログの仕組み - てっく煮ブログ
  • 飛び出る Google マップを作ってみた - てっく煮ブログ

    あまり知られていないけど、Google マップには MapsGL というのがあって一部の建物が 3D 表示になったりする。といっても Google Earth のように角度を変えて表示したりはできないんだけど、地図をスクロールすると高い建物の傾き具合が変化する。この表示方法のことを、Google では「parallax (視差効果)」と呼んでいるようだ。「視差」という言葉で思い出すのは立体視。MapsGL の視差効果を使えば、立体視を作れそう!試しに作ってみた。飛び出る東京都庁どうせなら高いビルを立体視したい。思いついたのは西新宿のオフィス街。その中でもひときわ目立つ 東京都庁で試してみた。平行法交差法飛び出るビッグベンお次は、ロンドンの ビッグ・ベン。複雑な建物の構造が再現されているので、なかなかいい立体感だ。平行法交差法浮き上がりましたか?それなりに立体にみえて面白い。当はもっといっ

    nilab
    nilab 2012/05/24
    飛び出る Google マップを作ってみた - てっく煮ブログ 「地図をスクロールすると高い建物の傾き具合が変化する。この表示方法のことを、Google では「parallax (視差効果)」と呼んでいるようだ」 MapsGL
  • コンプガチャの確率マジックを中学生にも分かるように説明するよ - てっく煮ブログ

    コンプガチャが話題になっています。コンプガチャにハマりやすい理由として「最初は当たりやすいが、だんだん確率が低くなる」という指摘があります。なぜ「確率が低くなる」という現象おきるのでしょうか。この記事ではコンプガチャの裏側にある確率マジックを分かりやすく解説します。サイコロの面を全部そろえるゲームいちばん身近な確率といえばサイコロです。サイコロを使ったこんなゲームを考えてみます。サイコロ コンプのルール サイコロを 1 回振るには 10 円が必要。 6 つの面をすべてを出せば、ペットボトル飲料をプレゼント。「サイコロの 6 つの面をすべてコンプしよう」というゲームなので、シンプルな「コンプガチャ」といえます。このゲーム、あなたなら参加しますか?6 つの面を全部だせばよいので、運がよければ 6 回(60円)でペットボトルが手に入ります。なんだかお得そうです。ためしにやってみると・・・サイコロ

    nilab
    nilab 2012/05/23
    コンプガチャの確率マジックを中学生にも分かるように説明するよ「最初は簡単にそろう」「後半になると出にくくなり、心理的にも後に引けなくなる」「カード合わせ」「絵合わせ」「景品表示法で禁止」