タグ

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

  • 今年のOSS活動振り返り @ 2016

    2016年のOSS活動振り返りです。 去年との比較用にGithubOriginalStreakを使って古い形でGitHubのContributionsを出してみた。 3年ぐらい毎日コミットが続いてる。けど、2016年の後半がだらけててコミット数が少なくなってる。 後、GitHub Full Longest Streakを使うと、GitHubのStreakを取ることができます。 (他のツールみたいに365日制限とかなく、GitHubにアカウントを作ってからの全データが見れます) https://azu.github.io/github-longest-streak/?user=azu 以前のまとめ 今年のOSS活動振り返り @ 2015 | Web Scratch 今年のOSS活動振り返り @ 2014 | Web Scratch Issue/PR PRs: 457 Issues: 392

    今年のOSS活動振り返り @ 2016
  • TestCafeでブラウザの自動テスト(E2Eテスト)

    TestCafeという自動テストフレームワーク(いわゆるE2Eテストフレームワークジャンルとしておきます)を試してみました。 TestCafeの特徴としては、Seleniumを使っていないこと、設定ファイルなしで利用できる点です。 Seleniumを使ったテストフレームワークとしては、Protractor、testium、WebdriverIOなどがあります。 (Seleniumを使わない他のテストフレームワークだとNightmareなど) Seleniumを使わずにどうやって自動的にブラウザを操作するかというと、中継サーバーを起動してそこにテストコードなどを追加して動かすことができるSelenium RC(1)方式に近いものだと思います。 同名のウェブサービス/クライアントアプリも出していて、こちらはSelenium IDEのようにGUIで操作して記録したものを再生などができます。 なぜ

    TestCafeでブラウザの自動テスト(E2Eテスト)
  • 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で作った
  • NaNはNot a NumberだけどNumber型である話

    この記事では、JavaScriptのNaNについて改めて学ぶという趣旨の話をします。 JavaScriptで、文字列などから数値へ値を変換したいことがあると思います。 典型的なケースでは、ユーザーに入力してもらった数字となる文字列を、Number型へ変換するというケースです。 この場合、Numberコンストラクタ関数やNumber.parseInt、Number.parseFloatなどが利用できます。(ここでは、Number.parseIntにしていますが、parseIntと同じです) // ユーザー入力を文字列として受け取る var input = window.prompt("数字を入力してください", "42"); // 文字列を数値に変換する var number = Number(input); console.log(typeof number); // => "number

    NaNはNot a NumberだけどNumber型である話
  • JavaScript Plugin Architectureというプラグイン設計について学ぶ無料の電子書籍を書いた

    JavaScript Plugin ArchitectureというJavaScriptのプラグイン設計についての電子書籍を書きました。 この書籍はJavaScriptのライブラリやツールにおけるプラグインアーキテクチャについて見ていく事を目的としたものです。 以下の形式で読むことができます。 Web版 PDF形式 ePub形式 Mobi形式 GitHub上にソースコードも公開されているでので直接Markdownファイルを読むこともできます。 MarkdownよりはWeb版の方が見やすいのでそちらをオススメします。 Twitterのハッシュタグは#js_plugin_book 更新情報はRSSやリリースノートから見ることができます。 v1.0.0 最初に書くと決めたプラグインアーキテクチャが揃ったので1.0.0としてリリースしました。 JavaScript Promiseのの時と同じく、継

    JavaScript Plugin Architectureというプラグイン設計について学ぶ無料の電子書籍を書いた
  • npmで同じライブラリの複数バージョンをインストールして使う方法

    追記: [email protected]で別のパッケージを特定のパッケージ名で指定できるpackage aliasesが追加されました。 rfcs/0001-package-aliases.md at latest · npm/rfcs 注意: この手法はnpm ciで壊れてる場合があります npm ci fails with transitive local packages - 🐞 bugs - npm forum Add support for ESLint v2 by Daniel15 · Pull Request #107 · fkling/astexplorerを見ていて、一つのプロジェクト内で複数のバージョンの同じライブラリを使う面白い方法が使われてたのでメモです。 前述したAST explorerの場合だと、ESLint@1とESLint@2の両方に対応したPlaygr

    npmで同じライブラリの複数バージョンをインストールして使う方法
  • #child_process_sushi でJavaScriptアーキテクチャについて話してきた

    #child_process_sushiで最近やってたJavaScriptの設計の話をしてきた。 Almin.js | JavaScriptアーキテクチャ Fluxとかで上半分は皆やるようになったけど、ドメインモデルとかFluxの場合にビジネスロジックとかをどこに書くとかはまだ未成熟な気がしているので、そのパターンを考えててAlmin.jsというのを書いたという話をした。 Almin自体は大した実装ではないので、サンプルとかドキュメントとしてパターンについて学べるものを書いていきたいイメージ。(このアーキテクチャ話自体は、色々な言語で繰り返しやっては言語が廃れて、パターンがちょっと違う形で残るというのを繰り返している by @t_wada) JavaScriptでもウェブアプリやElectronでのアプリのような、APIを叩いて表示して終わりじゃなくて、ドメインモデルの生存期間が長いものが

    #child_process_sushi でJavaScriptアーキテクチャについて話してきた
  • power-assert + babel as a development tool

    3行まとめ espower-babelは役目を終えたので、Deprecated Babel + power-assertはbabel-preset-power-assertを使う コード上はrequire("power-assert")とrequire("assert") どちらでもpower-assert化できるようになった espower-babelは非推奨へ Babel + Mocha + power-assertの組み合わせを出来るだけ設定ファイルなどを作らずに使えるespower-babelというモジュールを書いていましたが、役目を終えたので非推奨(deprecated)にしました。 テストコードをES6+power-assertで書けるespower-babel 3.0.0リリース | Web Scratch 理由としては、Babel@6からは設定(ファイル)を必ず必要とするの

    power-assert + babel as a development tool
  • 今すぐ電子書籍(技術書)を書き始める方法と文章の自動チェック

    電子書籍開発環境 Markdownで書く電子書籍開発環境というスライドで、GitBookとMarkdown技術書(電子書籍)を書く話を紹介しました。 文章はtextlintで、コードはESLintとテストでチェックして、サンプルコードに対してテストを書けるプロジェクト構造について書かれています。 どのように表記揺れなどやコードの間違いを防ぎながら、書籍を開発していくかについて書いているので詳しくは上記のスライドを見て下さい。(スライドの下へスクロールすると文章版が載ってます) スターターキット 上記の設定をすぐに使えるようにスターターキット的なものを作りました。 azu/gitbook-starter-kit 実際にこのgitbook-starter-kit電子書籍とした時の表示は以下で見ることができます。 GitBook Starter Kit - GitBook インストール 利用

    今すぐ電子書籍(技術書)を書き始める方法と文章の自動チェック
  • npmパッケージをExampleテストしよう

    自分がそう呼んでいるだけなので、正式名称があるのかよくわかりませんが、 あるライブラリを公開する際に、exampleディレクトリにそのライブラリを使って実際に動くサンプルコードを作って、それを実行するテスト というのを示しています。 Go言語のExampleと近いような気がします。 testing - The Go Programming Language 以下のスライドでも簡単に解説してますが、この記事はExampleテストのメリットやNodeモジュールでのやり方について書いていきます。 ロジック、E2E、描画、音、動画、Example、文章 - 色々なJSテスト Exampleテストの利点 以下は思いついたExampleテストの良いところですが、これについて簡単に解説します。 始めるのが簡単 実際に動くサンプルコードが作成できる ドキュメントの一部になる package.jsonの設定

    npmパッケージをExampleテストしよう
    fumikony
    fumikony 2015/07/30
  • 開眼! JavaScript オンライン勉強会 #tkbjs

    Online Study TokyoBouldering.js(tkbjs)というオンライン勉強会では、 毎月第2、第4火曜日、22時から1時間で毎回オンラインで書籍の読書会/写経会をしています。 今、5冊目となる開眼! JavaScriptを開始したばかりなので、 興味ある人はOnline Study TokyoBouldering.js – Lingrからログインすると参加できます。 JavaScript Good Parts - Online JavaScript 勉強会を始めます! - tatsuo.sakurai's blog JavaScriptパターン Effective JavaScript tkbjs オンラインJavaScript勉強会3冊目Effective JavaScriptは11月26日からスタート | Web Scratch Promise #tkbjs で

    開眼! JavaScript オンライン勉強会 #tkbjs
  • Node学園 16時限目 アウトラインメモ | Web Scratch

    Node学園 16時限目 ES2015発行記念 - connpass に参加してきたメモ Run Through ES6 - @teppeis スライド: Run through ES6 ES6 総復習 ES6 or ES2015 ? 〜WEB+DB PRESS Vol.87 ES6特集に寄せて〜 | Cybozu Inside Out | サイボウズエンジニアのブログ ECMAScript Ecmaで策定されてる仕様 ES6 ES3から16年、ES5から6年 特徴 モダンなシンタックス 大規模開発 後方互換性が高い 今すぐ動かせる ES6とES2015 一年ごとにリリースしていきたいよね ES6 Features 新しいシンタックス 新しいグローバルオブジェクト 既存のオブジェクトの拡張 新しいシンタックス 色々 Class Subclassing Module CommonJSとかは関

    Node学園 16時限目 アウトラインメモ | Web Scratch
  • #cto_sushi でChangeLogを追う技術、Sitespeed.io、DDDなどの話をした

    #cto_sushiでChangeLogやIssueを追う技術、reftest、GitHubスパムなどについて話してきた。(この中に現在CTOはいなかった気がします) ログ: #cto_sushi - Togetterまとめ 久々に をべるSushiイベントだった気がします。 これからの Web について真剣に議論している。 #cto_sushi pic.twitter.com/c3xXrkasVi — Jxck (@Jxck_) May 26, 2015 #cto_sushi pic.twitter.com/oAts18i7O3 — Yosuke FURUKAWA (@yosuke_furukawa) May 26, 2015 クリップボード API - kyo_ago 机が埋まる前にLTスタート。 クリップボードについて kyo_ago #cto_sushi — azu (@azu_

    #cto_sushi でChangeLogを追う技術、Sitespeed.io、DDDなどの話をした
  • npmで名前空間を持ったモジュールを公開する方法(scoped modules)

    npmにモジュールを公開することは多くなってると思いますが、今までのnpmだと名前は早い者勝ちでした。 最近npm Private Modulesというprivateで扱えるモジュールを有料でサポートしましたが、これはscoped modulesをprivateで扱う時だけ有料でpublicで公開する時は無料で行えます。 scoped modulesというのは、@username/project-name という感じで、@ユーザー名がパッケージ名に入るので異なるユーザー間では重複しません。 The npm Blog — solving npm’s hard problem: naming packages 公開手順 実際にscoped modulesをpublicに公開する手順としては、 npm init --scope=<npmユーザ名> パッケージの名前が@<npmユーザ名>/パッケー

    npmで名前空間を持ったモジュールを公開する方法(scoped modules)
  • テストできないコードを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テストを使ってリファクタリングしよう
  • MacBook Airの初期設定(環境構築)

    を実行するとCaskfieというものが生成されてcaskに対応してるアプリ一覧が載ってる。 新しくMacにいれるものは以下の様な感じのシェルスクリプトにした。 caskでガンガン入れていいのか不安(アップデートとか)だったのでcaskの方最小限にした。 #!/bin/bash set -e # Make sure using latest Homebrew brew update # Update already-installed formula brew upgrade # Add Repository brew tap phinze/homebrew-cask || true brew tap homebrew/binary || true # Packages for development brew install zsh brew install zsh-completions

    MacBook Airの初期設定(環境構築)