タグ

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

  • GitHub Sponsorsの収入 @ 2022

    月毎の金額をグラフにすると次のようになります。 月毎の金額に振れ幅があるのは、サポートしてる人の支払いのタイミングが日毎に分かれているため、振込のタイミングで金額のブレがあるようです。 また、One-Timeでのサポートがある月は、Monthlyのサポートにプラスされる形です。 2022年7月だけ大きく増えているのは、GitHubのMaintainer Monthで$500ほどOne-TimeサポートをGitHub社からもらったためです。 Thank you to our maintainers | The GitHub Blog Maintainer Month: オープンソースのメンテナーがやっている仕事 | Web Scratch 継続的なサポートをしてくれている人 実際の振込タイミングの金額で見るとブレ幅があるので、滑らかにするために2022年12月現在で継続的なスポンサー(cur

    GitHub Sponsorsの収入 @ 2022
    tofu-kun
    tofu-kun 2022/12/22
  • [JavaScript] URLを文字列結合で組み立てないために、url-cheatsheetを作った

    [JavaScript] URLを文字列結合で組み立てないために、url-cheatsheetを作った URLを文字列結合で組み立てると色々問題が起きやすいので、それを避けるためにURL APIやURLSearchParams APIでURLを組み立てるパターンをまとめたチートシートを作りました。 azu/url-cheatsheet: URL manipulation cheatsheet for JavaScript URLにユーザーが入力した文字列を含めるときはencodeURIComponentでエスケープする URLはプレーンな文字列ではなく構造化された文字列(文字の並びに意味がある文字列)として扱わないと、さまざまな問題を抱えやすいです。 たとえば、次のように文字列結合でURLを組み立てるとパストラバーサルの問題があります。 name に ../../adminのような文字列が

    [JavaScript] URLを文字列結合で組み立てないために、url-cheatsheetを作った
    tofu-kun
    tofu-kun 2022/12/16
  • 見ているサイト上に露出している機密情報(APIトークン、IPアドレスなど)を見つけるブラウザ拡張を作りました

    見ているサイト上に露出している機密情報(APIトークン、IPアドレスなど)を見つけるブラウザ拡張を作りました SecretlintというAPIトークンなどの機密情報がファイル内に含まれているかをチェックできるツールを書いています。 Secretlintはコマンドラインツールとして動くので、主にCIやGitのpre-commit hookを利用して、リポジトリに機密情報が入るのを防止できます。 SecretlintAPIトークンや秘密鍵などのコミットを防止する | Web Scratch 一方で、実際のウェブサービスなどは機密情報がファイルにハードコードされているわけではなく(Secrelint自体がこういうハードコードを防ぐツールです)、環境変数やDatabaseに保存していると思います。 このような場合にも、コードのミスなどによって公開するべきではない情報(秘密鍵、APIトークン、Sl

    見ているサイト上に露出している機密情報(APIトークン、IPアドレスなど)を見つけるブラウザ拡張を作りました
    tofu-kun
    tofu-kun 2021/08/20
    良さそう
  • textlint 12リリース、ブラウザで動くtextlint editorをベータリリース

    語などの文章を校正できるルールをもっているLintツールであるtextlint v12をリリースしました。 Markdownプラグインのアップデートと各パッケージのバージョン統一が主な変更となります。 リリースノートは次のページにも書いているので、興味がある人は見てください。 textlint v12.0.0 · textlint 簡単に変更のサマリを書いておきます。 textlint利用者向けの変更点 次のコマンドでtextlint 12へアップデートできます。 textlintは、文章の構文を認識してLintすることで誤検知を減らしています。 たとえば、MarkdownのCodeBlockの中のコードを単純にスペルチェックしてしまうと赤線だらけになってしまいます。 textlintの各ルールには、CodeBlockの中はチェックしないといったように、各ルールごとに文章のどの構文(リ

    textlint 12リリース、ブラウザで動くtextlint editorをベータリリース
    tofu-kun
    tofu-kun 2021/05/27
  • JSのプラグインシステムについて書くJavaScript Plugin Architecture 2.0をリリースしました

    JSのプラグインシステムについて書くJavaScript Plugin Architecture 2.0をリリースしました JavaScriptのプラグインシステムについて書いた小さな電子書籍であるJavaScript Plugin Architecture 2.0をリリースしました。 1.0(初版)公開時の記事は次のページから参照できます。 JavaScript Plugin Architectureというプラグイン設計について学ぶ無料の電子書籍を書いた | Web Scratch 2.0の詳しい変更点についてはリリースノートを参照してください。 Release v2.0.0 · azu/JavaScript-Plugin-Architecture 2.0リリース時にGitBookからHonKitに移行しました。 そのため、公開するURLが次の場所に変更されています。 https://a

    JSのプラグインシステムについて書くJavaScript Plugin Architecture 2.0をリリースしました
  • 小さなEventEmitterライブラリ - eventmitを書いた

    EventEmitterのようにPub/Subを行うeventmitという小さなライブラリを書きました。 azu/eventmit: Simple EventEmitter. A single event object per an event. eventmitは、TypeScriptで書かれています。 また、Node.jsのEventEmitterなどとは違って、イベント一つに対してeventmitのオブジェクトを一つ作成して使います。 import { eventmit } from "eventmit"; const event = eventmit<{ key: string }>(); // Register handler event.on((value) => { console.log(1, value); }); event.on((value) => { consol

    小さなEventEmitterライブラリ - eventmitを書いた
    tofu-kun
    tofu-kun 2020/06/14
    Node / Browser とか色々考えた時のイベント周り面倒くさいので、ありがたい。
  • JavaScriptの歴史については「JavaScript: The First 20 Years」を読む

    JavaScript/ECMAScriptというプログラミング言語の歴史について書いた文章はWikipediaなどいろいろなものがあります。 その中でも、ECMAScript 2015のSpec EditorであるAllen Wirfs-Brockによって書かれた”JavaScript: The First 20 Years”が特におすすめです。 JavaScript: The First 20 Years JavaScript: The First 20 Years | Zenodo “JavaScript: The First 20 Years”はHOPL IV - History of Programming Languages向けに書かれたPaperです。 JavaScriptの誕生からECMAScriptの策定、ECMAScript/JavaScript各バージョンでの違い、ブラ

    JavaScriptの歴史については「JavaScript: The First 20 Years」を読む
    tofu-kun
    tofu-kun 2020/06/05
    おもしろそうだー
  • #html_modules_study アウトラインメモ

    html_modules_study - connpass html_modules_studyに参加したのでメモ。 WebComponents Updates - @1000ch スライド: Web Components Updates Void or Self-closing Element 今は <x-button></x-button> なので省略したい <x-button> assignedElements() assignedNodes()はTextも含まれる 挿入された要素だけをShadom DOM内部で参照したい Custom Psuedo-elements 疑似要素を独自に定義出来るようにしたいPropsal <input paseudo="start-data" type="data"> data-range-selector::start-data CSS shado

    #html_modules_study アウトラインメモ
    tofu-kun
    tofu-kun 2019/10/23
  • GitHubで管理する個人向けブックマークシステムを書いた

    GitHubにブックマークをコミットして管理できるはてなブックマークみたいなブックマークシステムを書きました。 詳しいモチベーションなどについては次のスライドで発表しています。 スライド: ブックマーク管理システム: 動くアプリをとにかく早く安く作ろう はてなブックマークのAPIが2019/5/31ぐらいエラーを返すようになって困ったので自分用のブックマークの仕組みを突貫で作りました。 (はてなブックマーク APIは2019/6/3には直ってました。) 逆にじっくり開発していくアプリについては次のスライドで話しています。 スライド: 考えながらクライアントサイドのウェブアプリケーションを作る話 azu/asocial-bookmark: Personal Bookmark System. socialじゃないのでasocial bookmarkです。 特に運用の費用的なコストはゼロにしたか

    GitHubで管理する個人向けブックマークシステムを書いた
    tofu-kun
    tofu-kun 2019/06/07
  • 手元のコードのパフォーマンスを計測するperformance.markのスニペット

    一部の機能をパフォーマンス改善したときにそれを計測したり、データを集めたいときがあります。 しかし、それだけのためにライブラリを追加するのも面倒くさい(実装後に計測コードは外すので)し、コンソールに結果を出すのもデータ収集的にイマイチです。 // よくあるコンソールに表示するパフォーマンス計測コード const start = performance.now(); // ------------ // 計測したい処理を書く // ------------ console.log(`${performance.now() - start}ms`); 結果をコピーしてSpreadSheetなどで可視化できたり、処理時間と関連する要素も保存しておきたいです。 (コンソールに出力すると埋もれたり、加工がめんどうです) そのようなときによく使っているPerformance.mark()とPerfor

    手元のコードのパフォーマンスを計測するperformance.markのスニペット
    tofu-kun
    tofu-kun 2019/03/15
    便利
  • ライブラリをES2015(ES6)で書いて公開する所から始めよう

    この記事はECMAScript 2015の事始めとして、ライブラリをECMAScript 2015で書いて公開するというところから始めるのがいいのではという内容です。 ECMAScript 2015(ES2015)はES6とも呼ばれていてどちらも同じものを指しますが、この記事ではES2015に統一します。 ECMAScriptのバージョンについては次のページを参照してください。 ECMAScript · JavaScriptの入門書 #jsprimer 2018-12-27: 追記 textlint/textlint-rule-helperのmasterはTypeScriptの実装へ変換されています。 Babelの実装はhttps://github.com/textlint/textlint-rule-helper/tree/2.0.1から参照できます Babel から TypeScrip

    ライブラリをES2015(ES6)で書いて公開する所から始めよう
    tofu-kun
    tofu-kun 2018/05/31
    npm 周りの流儀がよく分かっていないので参考になる
  • 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`を理解する
  • テストできないコードを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テストを使ってリファクタリングしよう
    tofu-kun
    tofu-kun 2016/10/26
  • JavaScriptの配列のパターン

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

    JavaScriptの配列のパターン
  • 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型である話
    tofu-kun
    tofu-kun 2016/09/07
  • 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というプラグイン設計について学ぶ無料の電子書籍を書いた
  • Greasemonkeyスクリプト全体を無名関数で囲う意味 - prog*sig

    よくGreasemonkeyスクリプトを見ると全体を無名関数(匿名関数)で囲っているものを見ることがあると思います。 (function(){ // 処理内容 })(); 何でこのような記述をしているかというと、歴史を掘り返すのは面倒なので簡潔に 昔はトップレベルに宣言した変数が外部に影響を出してしまっていた? 今はevalInSandboxで実行されているので無名関数で囲わなくても問題はない。 (この(function(){)()}自体がどういう動作をするかはfunction についてを読むといい) Greasemonkey extension のコードから実行時のスコープを調べる « ku Greasemonkeyの小話 - FFFF - 0x つまり、今は囲まなくても問題はない。(ただしGreasemonkeyに限る) でも、実際のスクリプトでは囲んでいる場合が多いと思うので

  • JavaScript関係のツールまとめてみた | Web scratch

    最近使ってたりするJavaScript関係のツールまとめてみた。 主にWebサービスです。 Global is the new private JavaScriptライブラリの名前空間汚染をチェックするツール。 元々載ってるもの以外でも*Analyze your own scripts!*から調査したいライブラリを追加できる。 jsFiddle ブラウザ上で HTML / CSS / JavaScript の実行結果を表示できる。 Embedコードもあるので、ブログにjsやCSSなどを載っけるのに便利。 エディタ機能も整形、シンタックスハイライトしてくれるので使いやすい。 HTML5のコードを使うにはInfoからDTDを変更してから使う。 類似:MooShell Gist – GitHub gistです。コードスニペット共有サービスです。 Greasemonkey貼るときgist fill

    JavaScript関係のツールまとめてみた | Web scratch
  • 1