タグ

ブックマーク / qiita.com/Quramy (12)

  • わかりやすい画像のdiffを求めて - Qiita

    どうも。フロントエンドエンジニアの @Quramy です。 さて、前回、1日10万枚の画像を検証するためにやったことで書いているとおり、reg-suitという画像に特化した回帰テストツールをメンテしています。 画像回帰テストという文脈において、差分の可視化方法はとても重要なファクターです。なぜなら、画像(=スナップショット)に差分が発生したからといって、それすなわち棄却、というわけではなく、その差分の内容を判断して、意図せぬ変更であれば棄却、意図した変更であればexpectedを更新する必要があります。すなわち、ワークフローに目視による差分のレビューが発生するのです。 そこで、少しだけ異なる2枚の画像について差分を効果的に可視化する、というテーマに向き合ってみました。 主にC++OpenCVでの実装ですが、これらの知識が無くとも読めるよう、コードやAPIへの言及を少なくして、中間画像で説

    わかりやすい画像のdiffを求めて - Qiita
    tyru
    tyru 2017/12/23
  • ブルゾンちえみ判別器をブラウザ上に実装する - Qiita

    皆さん、Yahoo!検索大賞 2017はご覧になりましか? このアワードで大賞に輝くと、「今年の顔」の名誉を手に入れることができるんです。 そんな栄えある今年の大賞は、ブルゾンちえみとのこと。 他にも、俳優部門は高橋一生、女優部門は吉岡里帆、といった具合に各分野毎に受賞者がいます。 ところで、僕はあまりテレビを観ないので、誰が誰やらわかりません。 このままだと安心して2018年を迎えることができないので、画像を読み込んでそれが誰なのか判定するアプリが必要です。 一目見れば区別つきそうなものですが、僕の濁った目で直接見るよりも、機械に判定させた方がよいに決まっていますので、作ってみました。 実際の動きはこちらから確認できます。 今回はブルゾンちえみも含め、Yahoo!検索大賞の受賞者から以下の5人をピックアップし、判別できるようにしています。 ブルゾンちえみ(お笑い部門) 高橋一生(俳優部門

    ブルゾンちえみ判別器をブラウザ上に実装する - Qiita
    tyru
    tyru 2017/12/10
  • --headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita

    --headless時代の命? Chrome を Node.jsから操作するライブラリ puppeteer について puppeteer はHeadless Chrome をNode.jsで操作しやすくしたライブラリです。今日(※ 2017/8/17)一日で凄い勢いでGitHubのトレンド入りしており、TLでも話題になっていたので、早速触ってみました。 Node.jsでChromeを操作するというコンテキストにおいては、Nightmare.jsと同じレイヤに属するプロダクトですね。Nightmare.jsはElectronを介在させることで、Chromeの操作を実現していましたが、今年の5月にChromeでheadlessモードが利用可能になって以降1、headless Chromeを直接操作するライブラリが色々と出始めていますね。この系統は、chromyや、やはり先日GitHubでトレ

    --headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
    tyru
    tyru 2017/08/18
  • TypeScriptにpluginがやってくる 使ってみよう編 - Qiita

    はじめに どうも、 @Quramy です。 前回の投稿から随分日が経ってしまいましたが、この投稿はある意味で前回投稿の続編的な内容になります。 今日はTypeScript 2.3から導入されるLanguage Service Extensibilityと呼ばれている機能についてまとめてみようと思います1。 どのような変更なのか TypeScript Roadmapのリンクを辿っても、https://github.com/Microsoft/TypeScript/pull/12231 に行き着くだけで、パッと見は何の機能なのかよく分かりません。 このPRの実装を眺めると、次の機能が見えてきます。 tsconfig.jsonのcompilerOptionsに"plugins"というキーが追加されている pluginsに指定した内容は、TypeScript体からresolveされる すなわち、

    TypeScriptにpluginがやってくる 使ってみよう編 - Qiita
    tyru
    tyru 2017/04/14
  • D3.js on AngularJSの実装パターン比較 - Qiita

    はじめに 以前, AngularJSでD3.jsをラップしてみようのエントリで, 「いかにしてAngularJSとD3.jsを統合するか」を記載した. その後, 自分で幾つかAngularJSとD3.js両方を使ったApplicationを作ったり, http://alexandros.resin.io/angular-d3-svg/ のブログを読んだりした上で, 双方のライブラリ両方を使う際の知見が増えたので, これを機にもう一度整理してみようかと. ライブラリとしての比較 AngularJSとD3.js, 双方を触ってみて思うのは, 特にコアな部分について, 備えている機能が重複していたり, 同等機能への実装アプローチが異なるなぁ、ということ. # 比較項目 Angular's way D3's way

    D3.js on AngularJSの実装パターン比較 - Qiita
  • Angular で template内補完やエラーチェックできるようになったよ - Qiita

    どうも @Quramy です。 さて、今日も今日とてAngular + エディタ関連ネタです。そろそろAngular 2というと怒られるらしいのでAngularと書きます。 先に成果を見てもらうのが手っ取り早いですね。コイツを見れ。 見ての通り、Angular Componentのテンプレート中でプロパティ名補完とエラーチェックを行えるようにしてみました。 上図はVimのキャプチャですが、もし、これを読んでる貴方がVisual Studio Codeユーザーであるならば、これ以降は全く読まなくてよいです。https://github.com/angular/vscode-ng-language-service にVSC用のpluginが転がっているので、こいつを入れればいいさ。 今日の想定読者は、Emacs, Vim, Sublime Text あたりを使ってAngularのコードを書いて

    Angular で template内補完やエラーチェックできるようになったよ - Qiita
  • AngularJSのDirectiveを理解する. - Qiita

    はじめに ディレクティブは、AngularJSにおいて、ViewとModelの双方向バインドを実現するための根幹的な仕組みである。 ディレクティブは、開発者から見ると、Templateの要素・属性として現れる。 例えば、テキストボックスの入力値とscope.nameを紐付ける場合、Angularではhtmlに下記を記述するだけで、ユーザの入力値がscopeへ即時反映される。 上記コードの"ng-model"はAngularにデフォルトで組み込まれたディレクティブである。 もちろん、htmlの文法上は、ng-modelという名称の属性はinputタグには存在しない。Angularが独自にng-model属性を解釈して、双方向バインディングの機能を実現しているのである(Angularでは、これを「html文法の拡張」と呼んでいる)。 ディレクティブには、ng-repeatや{{...}}等、様

    AngularJSのDirectiveを理解する. - Qiita
    tyru
    tyru 2016/08/08
  • Angular2のServer Side Renderingに触れてみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 今回のエントリでは、 Angular2 とServer Side Rendering(以下SSR)について書きたいと思います。 Angular2でSSRを実現するためのモジュール群は angular-universal で開発されています1。 コーディングレベルでのモジュール利用方法についても記載しますが、APIや利用可能なオプション等の詳細については日々刻々変化が予想されます。 今日時点では、Angular2の開発チームが目指しているゴールと、それを支えているアーキテクチャについて理解しておいた方が今後の変化に柔軟に対応でき

    Angular2のServer Side Renderingに触れてみる - Qiita
    tyru
    tyru 2016/06/26
    なぜSSRか→性能、SEO、ブラウザサポート。3番目はDOMがない環境(スクリーンリーダーとかHTMLメールとか)でも描画できるということ。IsomorphicといいHTMLとJSがどんどん疎結合になってくなー
  • AngularJSで拡張ポイントを持つServiceを作成する. - Qiita

    はじめに このエントリは「"利用者側が設定を変更可能な"AngularのServiceの作成方法について」である. 以下のようなAngularJSのServiceがあったとしよう. var module = angular.module('myModule', []); module.factory('myService', function(){ var message = 'Hello, world'; return { hello: function(){ return message; } }; });

    AngularJSで拡張ポイントを持つServiceを作成する. - Qiita
  • AngularJSのngRepeatを"ちゃんと"理解する. - Qiita

    はじめに 皆さん、AngularJS使ってますか? Angularといったら、/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/ですよね. /^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/がない開発なんて有り得ない! ......... ...... ... 無駄な前フリはこの辺にしておこう. 冒頭の正規表現は、AngularJSのngRepeatDirectiveのコードから引っ張ってきている. そう、AngularといえばngRepeat, ngRepatといえばAngularといっても過言でないほど、Angular開発

    AngularJSのngRepeatを"ちゃんと"理解する. - Qiita
    tyru
    tyru 2016/04/08
  • AngularJSのCompileとLinkってなぁに? - Qiita

    はじめに AngularJSのDirectiveについては、カスタムディレクティブの作成方法含め、おおよそ理解していたつもりであったが、CompileとLinkについて、若干自信が無い部分があったので、勉強がてら少し厚めに書いてみた。 なお、公式の開発ガイドにも、Oreillyの書籍でも書かれているが、カスタムディレクティブを開発することがあっても、殆どのケースでは、Linkの処理のみを気にするだけでよいため、あんまりこのエントリは役には立ちません。 おさらい 「AngularJSのDirectiveを理解する」にも書いているが、ざっくり言うと、Angularのディレクティブがテンプレートから実際のViewを描画する際は、Compile → Linkの2フェーズに分かれている。 Compile:ディテクティブのテンプレート(html文字列ではなく、DOMオブジェクト)から、Link関数を生

    AngularJSのCompileとLinkってなぁに? - Qiita
    tyru
    tyru 2016/04/08
    ng-repeat の例
  • Electronでアプリケーションを作ってみよう - Qiita

    はじめに Electronをご存知でしょうか. Electron(旧称: Atom-Shell)は, Atomエディタを開発するために生まれたクロスプラットフォームデスクトップアプリケーションエンジンです. Node.js + Chromiumをランタイムとしており, Atomだけでなく, Slackや先日のBuildで発表されて話題となったVisualStudio CodeもElectronで実装されています. いわゆるWeb系の技術, Node.js + HTML + CSSでアプリケーションを作成できるのが特徴です. 類似した思想のフレームワークとして, node-webkit(NW.js)もありますが, アプリケーションのエントリポイントの考え方等が異なります. このエントリでは, Electronの使い方をサンプルアプリを実装しながら説明していきます. お題 このエントリのお題と

    Electronでアプリケーションを作ってみよう - Qiita
    tyru
    tyru 2016/01/17
    Electronを単体アプリケーションとして配布する方法
  • 1