タグ

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

  • Kagi Searchをメインの検索エンジンとして使っている

    最近はGoogleではなくKagi Searchをメインの検索エンジンとして使っています。 Kagi Searchは$108/year($10/month)の有料の検索エンジンです。 広告モデルではない検索エンジンなので、有料のサブスクリプションモデルとなっています。 Plan Types | Kagi’s Docs いくつかプランがあり、検索し放題のProfessionalプランが$10/monthです Ultimate Plan ($25/month)だと外部のOpenAIのGPT 4とかClaude 3との連携とかも入ってきます 月に1-2万回ぐらいは検索することを考えると、 (108 / (10000 * 12)) * 150 で大体1検索が0.1円ぐらいのイメージですが、こちらもKagiのLLM機能は利用できるので、実質もう少しコスパは良いと思います。 検索ソースにはGoogle

    Kagi Searchをメインの検索エンジンとして使っている
  • TypeScriptの型定義からバリデーションコードを生成するツールを書いた

    create-validator-tsというTypeScriptの型定義からJSON Schemaを使ったバリデーションコードを生成するツールを書きました。 モチベーション expressなどでAPIを書くときに、Request/Responseが意図したものかどうかをバリデーションする必要があります。 特にreq.queryなどはStringが入ると予想しますが、オブジェクトが入ってくることもあります。 これは、expressの内部で使っているqsというURLクエリのパーサが、オブジェクトや配列へ展開する機能を持っているためです。 expressを使ってるサイトは ?q=text があるときに req.query.q には オブジェクトが入る可能性をちゃんと考慮しないといけない。 ?q[a]=text で req.query.q ; // { a: "text" } になる — azu

    TypeScriptの型定義からバリデーションコードを生成するツールを書いた
  • 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
  • LDRライクなRSSリーダのIrodr 1.0.0をリリースした | Web Scratch

    InoreaderのPCフロントエンドとして動くRSSリーダのIrodrが十分安定したので1.0.0をリリースしました。 LDRライクなInoreaderクライントのIrodr 1.0.0リリース。https://t.co/oco0VlPbBDhttps://t.co/UTPYfW3FnW pic.twitter.com/GzKLSj9zeo — azu (@azu_re) September 30, 2018 Release Release 1.0.0 · azu/irodr IrodrはLDRライクな操作感を実現するために作成したInoreaderのフロントエンドです。 RSSの管理やRSSのクロールなどはInoreaderが行っていて、IrodrはAPI経由でRSSを取得しているだけです。 未読などはInoreaderと同期しているため、Inoreaderのウェブ版やモバイルアプリと

    LDRライクなRSSリーダのIrodr 1.0.0をリリースした | Web Scratch
  • アーキテクチャをめぐるたび

    タイトルに特に意味はありませんが、Alminを作る参考にしたものをまとめた感じの記事です。 スライド: 複雑なJavaScriptアプリケーションを考えながら作る話 リポジトリ: azu/large-scale-javascript: 複雑なJavaScriptアプリケーションを作るために考えること 主に書籍を並べていますがその他のスライドなどの参考資料は以下にまとめてあります。 large-scale-javascript/refs.md at master · azu/large-scale-javascript 自分用のメモなので、読んだ順で並べておきます。 右側の年は書籍の出た年です。 実践ドメイン駆動設計 @ 2013 一番最初に読んだDDD系の。 この辺ででてくるレイヤーとか用語を把握した感じ。 けど、そこまでよく分かってない感じはする。 カウボーイが出てくるの読みにくい。

    アーキテクチャをめぐるたび
  • 文章をTDDする

    文章のテスト 技術書とかの文書を開発するにあたってテストを先に書きたくなったという話です。 東京Node学園祭2015で技術文書をソフトウェア開発する話をしてきた | Web Scratch Introduction | 技術文書をソフトウェア開発する話 とかの続きみたいなものです。 ここで扱う文章は、Markdownですが、構造を持った文章なら多分適応できる気がします。 具体的にはtextlintで扱うパーサを再利用しているので、reStructuredTextとかRe:VIEWとかHTMLも多分頑張ればできる。 構造化された文章 構造を持った文章とはどういうものかというと、セクションやパラグラフなどがシンタックスとして大体分かる文章の事をここでは言っています。 しかし、Markdownにはセクション(HTMLでは <section> タグに該当するもの)がないので、HeaderとHea

    文章をTDDする
  • 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というプラグイン設計について学ぶ無料の電子書籍を書いた
  • 良いChangeLog、良くないChangeLog

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

    良いChangeLog、良くないChangeLog
  • #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などの話をした
  • ブラウザでビジュアルテストをするreftest-runnerを作った

    概要 reftest-runnerというブラウザで描画内容やレイアウトといった表示結果をテストするためのライブラリを作りました。 要素技術としてはブラウザ、WebDriver API、レンダリングキャプチャ、画像Diffという感じです。 azu/reftest-runner 時間が無い人向け 以下のスライドに簡単にreftest-runnerやreftestとはなにか、どういうユースケースがあるのかが書いてあります。 reftest-runner-overview.pdf reftestとは reftest(Referrence Test)とは、2つのHTMLの表示結果(スクリーンショット)を比較することで表示結果が意図したものかをテストする方法です。 用意するHTMLとして以下の2種類を1セットとして用意して利用します。 テスト用HTML テストしたい機能を使って実装したHTML リファ

    ブラウザでビジュアルテストをするreftest-runnerを作った
  • ある要素が表示されるまで待つJSライブラリを書いた(MutationObserver)

    使い方 waitForElement(selector, [timeout]) という感じで使います。 waitForElement()はPromiseを返すので、見つかったthenで登録したコールバックが呼ばれて、見つからなかったらcatchが呼ばれるという感じです。 Promiseについて詳しくはJavaScript Promiseのを見てください /** * Wait until an element that is matched the selector is visible. * @param {string} selector the css selector * @param {number} timeout the timeout is millisecond. default:2000ms * @returns {Promise} */ var waitForElem

    ある要素が表示されるまで待つJSライブラリを書いた(MutationObserver)
  • #typescript_sushi でDecoratorsについて話してきた

    #typescript_sushiに参加してきました。 ログ: #typescript_sushi - Togetterまとめ meta-sushi/guidelineに則ったイベントです。 #typescript_sushi pic.twitter.com/vDgCTuoQWZ — 過激派 (@kyo_ago) March 22, 2015 Decorators進捗 - azu LTきた #typescript_sushi pic.twitter.com/GgwszUebUg — armorik83 (@armorik83) March 22, 2015 TypeScript 1.5で実装予定、ECMAScript 7に提案される予定のそれぞれのDecoratorsについて発表してきました。 行きの電車で書いたの資料なので、大分適当ですが基的にはどちらも共通するところはあって、一種の糖

    #typescript_sushi でDecoratorsについて話してきた
  • [2015-02] 最近のJavaScript AST標準化の動き

    以前書いた記事からのどんな感じの動きがあったのかまとめたものです。 最近気になったJavaScript AST周りの動き | Web Scratch 前回の記事 2015年の1月前後の内容が中心です。 前回のに比べ、JavaScriptのエコシステムの根幹でもあるパーサやASTの仕様まわりについての動きが最近活発なので、その辺を中心にまとめています。 RReverser RReverserさんはここ最近のJavaScript ASTに関係するところならどこでもみかけると思うので紹介。 主にacornのコミッターでもありますが、後ほど出てくるESTreeやBabelなど色々なところで活動しています。 またasterというASTの効率的に処理できるツールチェインを出したりしています。 AST周りでよく見る人やパーサをいかにまとめてあります。 JavaScript AST Links. esto

    [2015-02] 最近のJavaScript AST標準化の動き
  • 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のリファクタリング本を読んだ
  • JavaScriptでルールを書けるテキスト/Markdownの校正ツール textlint を作った

    azu/textlint textlint というテキスト(plain textとMarkdown)の校正をするためのコマンドラインツールを書きました。textlintはNode.jsで書かれていて、Node.jsモジュールとしての利用することもできます。 一番の特徴は校正するルールをJavaScriptで書くことで拡張可能な作りになっています。 The pluggable linting tool for text(plain text and markdown). 逆にデフォルトではルールはサンプル扱いのno-todoというTODOが含まれてることを検知するルールしか今のところ入れていません。 Example: creating no-todo rules. デフォルトでルールが用意されていて、それの設定を変更することでLintする場合はRedPenなどがお勧めです。 RedPen:

    JavaScriptでルールを書けるテキスト/Markdownの校正ツール textlint を作った
  • CI as a Service ブラウザを使ったJavaScriptのテストをCIサービスで動かす方法のまとめ

    Travis CIを始めとするウェブサービスとして使えるCIを使って、 JavaScriptのブラウザテスト(ブラウザ上でJavaScriptを走らせて行うユニットテスト)をやる方法をサービスごとにまとめてみました。 テストフレームワークとして Buster.JS を使用して行います。 Karma (旧Testacular) では公式サイトにも Karma – Travis CI でCI Serviceとの連携方法が記載されているのでそちらも参考にして下さい。 今回紹介するCI Servicesは以下のものです。 Travis CI drone.io BuildHive Jepso CI テスト実行の流れ Jepso CI を除いては、テスト実行の流れ自体は同じなので先に解説します。 Capture用のローカルサーバを立てる テストしたいブラウザで capture URL へアクセスする

    CI as a Service ブラウザを使ったJavaScriptのテストをCIサービスで動かす方法のまとめ
  • JavaScriptのin演算子の理解と使い方 - prog*sig

    ■in演算子の仕様 まずはin演算子の動作を知る。 Special Operators - MDC Docs オブジェクトが指定されたプロパティ(prototypeチェーンを辿って)を持っているかの真偽値を返す 要はhasOwnPropertyとほとんど同じで、違いはprototypeチェーンを辿るかどうか。 in 演算子と obj.hasOwnProperty()の比較は以下を参照 in 演算子と obj.hasOwnProperty() はどちらが早い!? - hogehoge @teramako 次は仕様書を見てみましょう。 ES3の仕様書:11.8.7 in 演算子 (The in operator) RelationalExpression を評価。 GetValue(Result(1)) を呼出す。 ShiftExpression を評価。 GetValue(Res

  • JavaScriptのいろいろなコーディングルールをまとめてみた

    JavaScriptの書き方はJavaScript自体がある程度自由なためいろいろな書き方ができますが、一貫性を持って書いた方がバグなども発生しにくくなるため、コーディングルールを定めておくのはよいことだと思います(特に複数人の開発の場合) 有名な企業やライブラリはコーディングルールも公開している事が多いので適当にまとめてみました JavaScript style guide – MDC Docs Mozilla/Firefox向けのものなので、一部ECMAScriptの範囲を超えたものも含まれています。 多くの人が見ていると思うので、見たことない人は一度読んでみるといいです。 jscsにこのコーディングルールをチェックするプリセットが用意されています。 Google JavaScript Style Guide Google JavaScript Style Guide 和訳 — Goo

    JavaScriptのいろいろなコーディングルールをまとめてみた
  • KeySnailプラグイン開発の方法とデバッグ

    KeySnailついて 自分はEmacsユーザーでもありませんが、KeyConfigの代わりにKeySnailを使い始めました。 そもそもKeyConfigとは役割違うし、KeyConfigもFirefox4対応したので併用しています。 keysnailはuserChrome.jsのキー特化みたいな存在で、便利なAPIがある環境みたいなとらえ方でもいいかもしれないです。(emacsのキーバインドは一切使わないで、まっさらな状態で始めました) KeySnailのプラグイン開発について JSReferenceというMDN(MDC)やECMA-262 3rd EditionをKeySnailのプロンプトから検索できるプラグインを書いたので、これに沿って説明していきます。 こんな感じの動作するやつです。(フルスクリーンで見た方がいい) 端的に言えばChemr-jsみたいな感じでインデックスをキャッ

    KeySnailプラグイン開発の方法とデバッグ
  • ブラウザの最新情報を知るために、Web開発者が読んでおくべきブログ

    JavaScriptやWeb開発に興味を持っている人はブラウザ周りの新しい情報も知っておくと良い場合も多いです。 なのでブラウザ周りに絞ってブラウザ別のブログなどを紹介。 Internet Explorer(IE) IEBlog – Site Home – MSDN Blogs IEについての最新情報を書いているオフィシャルサイト Hebikuzure’s Tech Memo IEやWindowsについて多岐にわたり書かれているブログ。 更新頻度が高く、IE Blog の記事の私訳などとても参考になる。 Internet Explorer ブログ (日語版) – Site Home – MSDN Blogs IEBlogの翻訳記事などを掲載する日語オフィシャル版(全て翻訳されるわけじゃないのでIEBlogも見た方がいい) Internet Explorer デベロッパーセンターのMSD

    ブラウザの最新情報を知るために、Web開発者が読んでおくべきブログ