タグ

ブックマーク / efcl.info (30)

  • JavaScriptの入門書を jsprimer.net で公開しました | Web Scratch

    ここ数年書いているJavaScript入門ですが https://jsprimer.net/ というURLで無料で公開しました。 まだ開発中です これからJavaScriptを始める人がES2015以降をベースにして学べる プログラミングをやったことがあるが、今のJavaScriptがよくわからないという人が、今のJavaScriptアプリケーションを読み書きできるようになるもの Webサイト: https://jsprimer.net/ リポジトリ: asciidwango/js-primer: JavaScriptの入門書 もともと公開してありましたが、jsprimer.net というドメインを取ったのでURLが変わっただけです。リダイレクトされているので既存のブックマークはリンク切れにはなりませんが、気になる人はブックマークしなおしてください。 またリポジトリ(asciidwan

    JavaScriptの入門書を jsprimer.net で公開しました | Web Scratch
  • ECMAScript 2015以降のJavaScriptの`this`を理解する

    この記事はJavaScriptの入門書として書いているjs-primerのthisに関する部分をベースにしています。 またjs-primerでは書けなかった現在時点(2018年1月1日)でのブラウザの挙動についてを加えたものです。 次の場所にjs-primer版(書籍版)のthisについての解説があります。 この記事と違って実際にコードを実行しながら読めるので、学習ソースとしては書籍版を推奨します。 書籍版: 関数とthis · JavaScriptの入門書 #jsprimer また、バグ報告やPRも直接リポジトリにして問題ありません。 asciidwango/js-primer: JavaScriptの入門書 おかしい場所を選択した状態で右下にある”Bug Report”ボタンを押せば、簡単にtypoとかのバグを報告できます。(PRでも歓迎) 前置きはこの辺までで、ここから編。 この記

    ECMAScript 2015以降のJavaScriptの`this`を理解する
  • JavaScriptのライブラリを徐々にTypeScriptに移行する

    Alminというライブラリは元々JavaScript(+Babel)で書かれていましたが、今年の2月にsrc/下のソースコードはTypeScriptに移行しました。 その時のコミットログは次のPRに残っているため、コミットログを1コづつ見ていけばどのように行われていったが分かると思います。 Convert src/ to TypeScript by saneyuki · Pull Request #68 · almin/almin この時取った方法は大まかに次のような手順でした src/ の TypeScript化 Babel -> JS(js -> js)だったものをTypeScript -> Babel -> JSにビルドスクリプトを変更 TypeScriptはtargetをesnextにすることで単純に型を取り除くだけの変換にする ES2015 -> ES5を実際にやるのは既存のBa

    JavaScriptのライブラリを徐々にTypeScriptに移行する
  • ECMAScriptの情報サイトを始めて1年経った

    ECMAScript Daily そういえば、ECMAScript DailyというECMAScriptの情報サイトをやってます。 2015年12月ぐらいに始めたので、1年ぐらい経ってましたがそういえばブログ書いてないことに気づいたので書いています。 基的にはJSer.infoのECMAScript特化版という位置づけで、基的な更新スタンスはJSer.infoとは変わらないです。 週一とかではなくて、新しい情報がでたら直接更新のスタイルなので、Realtime JSer.info(JSer.infoのリアルタイム版)の方がより近いです。 記事自体もほぼリンクだけに近いので、Twitter(@EcmascriptDaily)で見たほうが分かりやすいかもしれません。 Follow @EcmascriptDaily 週1でまとめて見たい場合はECMAScript Dailyからメールマガジン

    ECMAScriptの情報サイトを始めて1年経った
  • JavaScriptの配列のパターン

    JavaScriptの配列をどう解説するかを考えていて、配列って普段どういう風に使ってるけ?みたいなことを書き出してみました。 Arrayオブジェクト · Issue #49 · asciidwango/js-primer 皆さんは配列をどう使いますか? 追記: 次のページでこの記事をブラッシュアップした話をhttps://jsprimer.net/で公開しています。 配列 · JavaScriptの入門書 #jsprimer 配列の作成 配列の作成には配列リテラル([])を使います。 配列リテラルには初期値も指定できます。 var emptyArray = []; // 空の配列を作成 var array = [1, 2, 3]; // 値をもった配列を作成 Arrayオブジェクトをnew演算子でインスタンス化する方法は基的には使いません。 こちらは配列リテラルとは異なり、初期値ではな

    JavaScriptの配列のパターン
  • pdf.jsなPDFビューアアプリをElectronで作った

    タイトルどおりですが、FirefoxのPDFビューアをスタンドアローン化したようなアプリを作りました。 azu/mu-pdf-viewer: PDF viewer on electron. 特徴は次の通りです。 PDF.jsベース J, Kでスクロールなどいじっています Drag and Dropをサポートしてます Install npm でインストールするか バイナリをダウンロードして使えます(OS Xのみ) https://github.com/azu/mu-pdf-viewer/releases/latest Travis CIとかでelectronを自動ビルドするのがかなり難しくなったので、自分用にOS X版のみバイナリを作ってます。 READMEにその他の環境のバイナリの作り方を書いてあります。 Usage npmでインストールした場合はCLIから起動できます。

    pdf.jsなPDFビューアアプリをElectronで作った
  • JavaScript ASTを始める最初の一歩

    何かJavaScriptのソースコードを機械的にチェックするためのツールを作りたいという場合に、JavaScriptのASTというものを触る必要が出てくると思います。 この記事では、その取っ掛かりとなる案内を簡単にまとめたものです。 ASTとは AST(Abstract Syntax Tree)はコードをパースした抽象構文木のこと。 JavaScriptの場合はJavaScriptオブジェクト(JSON)として表現されます。 コード: { "range": [ 0, 10 ], "type": "Program", "body": [ { "range": [ 0, 10 ], "type": "VariableDeclaration", "declarations": [ { "range": [ 4, 9 ], "type": "VariableDeclarator", "id": {

    JavaScript ASTを始める最初の一歩
  • 次世代Webカンファレンスのstandardizationで話してきた

    te = @teppeis wada = @t_wada con = @constellation vv = @vvakame 今JavaScript書く時に何で書いてます? vv = TypeScript + Babel? con = C++ばかり書いて テストはJavaScriptで書いてるのでES6 te = 趣味はES6、仕事はIE8で動くように書いてる IE8は来年1月に終わる wada = 趣味はES6+Babel、仕事はIE8 ES6の印象 vv = hoistingとか面倒な問題が減った wada = Arrow Function、Template Stringなどが便利 IE8対応 IE8対応してるひと = 半分 Babel、BrowserifyとかデフォルトのターゲットはES5以上 予約語の問題とかES3だと動かないことがある stefanpenner/es3-safe

    次世代Webカンファレンスのstandardizationで話してきた
  • ES6がリリースされたのでPromiseについて学びましょう

    JavaScript Promiseの 去年の6月23日にJavaScript Promiseの Ver 1.0をリリースしてから今日でちょうど一年になります。 JavaScript Promiseのを書きました | Web Scratch そして、ECMAScript 2015(aka. ES6)も2015年6月18日正式版がリリースされました。 ECMAScript 2015 is now an Ecma Standard これに合わせてES6の正式版に対応したPromise Ver 1.5をリリースしました。 1.4までの変更点は以下を参照してください。 JavaScript PromiseのVer1.2とAsciidoctor | Web Scratch Promise Ver1.4リリース | Web Scratch またリリースノート自体は以下にまとまっています。

    ES6がリリースされたのでPromiseについて学びましょう
  • 良いChangeLog、良くないChangeLog

    以前、われわれは、いかにして変更点を追うかという内容で発表しましたが、 その時書き忘れてたことの補足的な記事です。 GitHubでのChangeLogの扱いについての話 このスライドは、ChangeLogから詳細を追う方法を知ることで、転じて分かりやすいChangeLogを書くことができるようになるのではという話でした。 スライドでは、ChangeLogの追い方としてBabel 5.3.0を例としてどうやって、このChangeLogから詳細を見ていくかについて話していました。 このBabelのChangeLogの問題点としては、変更点については書かれているのですが具体的にどういう変更だったのか、また関連するIssue/Pull Requestへのリンクがないため、ChangeLog単体では詳細がわからないという問題があったので例としていました。 Babelを例に見ると、変更した内容を1行の

    良いChangeLog、良くないChangeLog
  • ECMAScript 6ドラフトのDiff検索用リポジトリを作った

    タイトルから何を言ってるのか意味わからない気がするので順を追って解説。 スライド版: ECMAScript 6 Draft Hisotry Repo 2015-05-07現在、ES6の仕様はApril 14, 2015 Rev 38 Final Draftが公開されています。 Rev38とわかるようにドラフトは38回ぐらい更新されていて、ちょっとづつ追記されたり変更されたりして結構な変更履歴があります。 Growing #ECMAScript 2015(ES6) Drafts :) pic.twitter.com/tV60cjdmM8 — azu (@azu_re) May 3, 2015 これだけ長い間(4年ぐらい?)やってるとある時点では正しかったかもしれないけど、最終版では違うものになってるという挙動があったりします。 例えば、class構文で以下のようにして定義したmethod()

    ECMAScript 6ドラフトのDiff検索用リポジトリを作った
  • React.js meetupにて10分で実装するFluxについて発表してきた

    React.js meetup #1 - connpassに参加して、Fluxアーキテクチャについて話してきました。 10分で実装するFlux - @azu 10分で実装するFlux というタイトルで発表してきました。 以前実装したmaterial-fluxをより小さくただのEventEmitterだけで実装したような内容になっています。 Fluxは図が複雑だったり、複雑そうな文章が出てきたりしますが、ミニマムな実装をするとやってることはよく見るようなものをある程度形式化しただけのように見えてきます。(Dispatcherが色々複雑な制御していますが) そういうのを理解するために実際に作って見るとわかりやすいかもなーと思って10分で実装するFluxというスライドを書きました。 発表では触れなかったおまけでFluxライブラリの比較やよくある疑問とかもちょっと書いてました。 material-

    React.js meetupにて10分で実装するFluxについて発表してきた
  • npm publishのパターン | Web Scratch

    この記事では最近自分が使ってるnpm publishでのモジュール公開のパターンについて紹介します。 npm publishで公開する先は2パターンあるので、以下の2パターンについて書きます。 Public Private(scoped packages) また使用するnpmはv2.7.0以上が対象です。 npm i -g npm するとnpmだけをアップデートできます。 npm publish 先に結論的な今使ってるものを貼っておきます。 zshの関数とaliasですが、基的にただのコマンドの組み合わせなので大体の環境で動かせる気がします。 (今後gistの方を更新するかもしれないので、記事中に書かれてるものよりgistの方が最新です) 大まかな流れは 事前準備 -> semverでコミット -> push という感じになります。 使い方 npm-patch npm-minor npm

    npm publishのパターン | Web Scratch
  • 歌舞伎座.tech#6「VirtualDOMとReact」 アウトラインメモ

    歌舞伎座.tech#6「VirtualDOMとReact」 - connpass に参加して来たのでメモ。 すべてのCSSに死を!これはJSerの叫び!- @kyo_ago スライド: CSSに死を!これはJSerの叫び! #kbkz_tech CSSが辛い CSSはカプセル化とか継承とか、プログラムからの概念がそのまま持ってこれない ReactStyle js-next/react-style JS内にStyleを埋め込むことができる そのままオブジェクト的に入れられる Template Stringsと合わせればその場でCSSを入れることができる styles=にスタイルを入れる セレクタをあまり考えなくていい style属性でスタイリングする 擬似要素、擬似クラスが全滅 :hover :active などが使えない。 CSSの継承などの概念が消える 自分で頑張る必要がある ユーザプレ

    歌舞伎座.tech#6「VirtualDOMとReact」 アウトラインメモ
  • テストできないコードをE2Eテストを使ってリファクタリングしよう

    ユニットテストがしにくい状態となってるコードをTestiumを使ったE2Eテストを書いてリファクタリングしてみる話です。 例えば、以下のようなjQueryで書いたコードは外(テストコード)から取り出すポイントがないので、ユニットテストを書くのは難しいと思います。(そもそもViewのコードなので) 特定のバージョンでの変更点を簡単に確認できるよう、 「Aの列のラジオボタンを選ぶと同じ行より一つ下にあるBの列のラジオボタンを自動で選ぶ」 という補助機能 $(document).ready(function () { // seq: シーケンス番号 $.each(["new_version", "old_version"], function () { $("input[name='" + this + "']").each(function (idx, elem) { if (idx == 0

    テストできないコードをE2Eテストを使ってリファクタリングしよう
  • The Refactoring Tales - JavaScriptのリファクタリング本を読んだ

    GitHub: jackfranklin/the-refactoring-tales 読んだ日付: 2015年1月11日 まだ4章の途中までしか書かれてないですが、ウェブ版は無料で読めてPDF版等は買えるようになるようです(6-7章ぐらい予定) The Refactoring Tales - JavaScript Playground またGitHubにソースが公開されています(ウェブページはまだ反映されてない感じのtypoの修正等がありました) 感想 1,2章はフロントのJavaScriptで、jQuery世界を例にjQueryでべったり書いてしまったものをどうやって分けていくかの話。 1章はとても読みやすくて完成度もあるので読んでみるといい気がします、2章のカヌーセルの話はもっと深くやっても良かったような気がします。 縦に並ぶ$を見かけるとつらい感じになりますが、まずは手が出しやすい場

    The Refactoring Tales - JavaScriptのリファクタリング本を読んだ
  • 東京Node学園祭2014 アウトラインメモ

    東京Node学園祭2014 に参加してきたのでその時のメモ 企業JavaScript飯 #企業JavaScript飯というご飯イベントをNode学園祭のお昼に(勝手に)やってました。 @teppeis、@ahomu、@kyosuke、Layzie (敬称略)で企業内でのJavaScript状況ですかという感じの話をしてきました。 質問テーマのスライド: https://github.com/azu/slide/raw/gh-pages/nodefest2014/lunch.pdf という感じのテーマを元に話をしてきました。 参加していただいた皆さん興味深いお話ありがとうございました。 最近企業のJavaScript(er)ってどんな感じになってて、どういうものを求めているのかに興味を持ってるので、面白い話があったらお話きかせて下さい。(to @azu_re にmention) どうやったら

    東京Node学園祭2014 アウトラインメモ
  • Githubのタイムラインや通知を見るアプリをnode-webkitで作った

    github-reader というGithubのNotifications や News Feedを見るためのビューアーアプリを作ってみました。 大した機能はなくて、GithubでWatch等をして飛んでくるNotificationsとホーム画面にタイムライン的に流れてくるNews Feedを一緒に見られるだけです。 飛んできたイベントをWebViewで見られるRSS Feed Readerみたいな感じです。 インストール node-webkit をダウンロードしてインストールします github-reader.nw からアプリをダウンロードします node-webkitをインストール済みならgithub-reader.nwが関連付けから起動 使い方 自分しか使わないかなと思ったので認証周りがかなり手抜きしています。 (以前も似たものを作ったけど使ってる人はいない) Githubでは自分用

    Githubのタイムラインや通知を見るアプリをnode-webkitで作った
  • 第44回HTML5とか勉強会「HTML5とセキュリティ」アウトラインメモ

    第44回HTML5とか勉強会「HTML5とセキュリティ」 に参加してきたのでメモ。 2014/01/29(#html5j)第44回HTML5とか勉強会(HTML5とセキュリティTogetterまとめ 第44回 HTML5とか勉強会 – YouTube 今から始めるHTML5セキュリティ – 松悦宜 一般社団法人JPCERTコーディネーションセンターの紹介 「HTML5を利用したWebアプリケーションのセキュリティ問題に関する調査報告書」 HTML5 を利用したWeb アプリケーションのセキュリティ問題に関する調査報告書 アジェンダ – 報告書の概要 JavaScript API XHR ブラウザが実装してる関連機能 HTML5は開発者にとって非常に便利 => 攻撃者にとっても便利 表現の幅が広がる 攻撃の幅も大きく広がる HTML5とセキュリティ 従来のHTMLでは影響がなかったも

    第44回HTML5とか勉強会「HTML5とセキュリティ」アウトラインメモ
  • npmとbrowserifyを使ったクライアントサイドのウェブアプリ開発

    YoutubeとVimeoの検索結果のRSSをまとめてOPMLで取得できるサイトを作った | Web scratch で公開した Tech Video RSS Searcher はbrowserifyを使って作ったので、その辺の開発フローについての記事です。 browserify って何? browserify はNode.jsスタイルで書かれたモジュール(CommonJS)を ブラウザで利用できるように変換するコマンドラインツール(Nodeモジュール)となっています。 又、node.jsのCore Modulesのshimが用意されていて、 npmで公開されているnode.js向けのモジュールも一緒に変換してブラウザで動かすことが出来るようになっています。(普通に require で読みこめば勝手に変換されます) 原理的に無理だったり全てのモジュールが動くわけじゃないですが、 その辺の互

    npmとbrowserifyを使ったクライアントサイドのウェブアプリ開発