タグ

ブックマーク / zenn.dev/chot (7)

  • 国立国会図書館サーチのAPIをつかって得た、検索APIと書影APIの知見

    国立国会図書館サーチのAPIとは? 国立国会図書館と全国の図書館の蔵書情報にアクセスできるAPIです。 主に3つのAPIが提供されています。 検索用API ハーベスト用API 書影API 今回は検索用APIと書影APIを使ってみたので、その知見を共有します。 利用申請について と、その前に簡単に利用申請について触れておきます。 非営利利用の場合は申請不要ですが、営利利用の場合は利用申請が必要な場合があります。 営利利用の判断基準については以下の通りです。 データを利用することにより、なんらかの収益を得る場合(例:サイトの運営による広告収入等)は、営利目的にあたるため、利用申請が必要です(希望されている利用方法が営利目的に該当するか判断に迷う場合は、NDLサーチAPI利用申請フォームからご相談ください)。 特に検索用APIでは検索対象のデータプロパイダ(データソース)を指定できるため、利用す

    国立国会図書館サーチのAPIをつかって得た、検索APIと書影APIの知見
  • URLシェアを支える技術 lz-string

    WebアプリでURLシェアを実装する際に、URLにすべての情報を持たせてしまいたい場合があります。そのとき、情報をそのままクエリ文字列に渡してしまうとURLの文字数制限に引っかかってしまうかもしれません(厳密にはURLに上限はないようですが、現実はいつもブラウザ実装依存)。 そんなときURLセーフな文字列形式で圧縮してくれるライブラリがあります。lz-sringです。 変換の例 ライブラリで compressToEncodedURIComponent というAPIが提供されているのでこれを使用します。標準のencodeURIComponentでURLセーフな文字列に変換した場合とサイズ比較をしてみましょう。 import lzstring from "lz-string"; const rawData = "Lorem ipsum dolor sit amet, consectetur a

    URLシェアを支える技術 lz-string
  • TypeScriptにInfinity型は存在する?

    TypeScriptにはリテラル型という機能があるので、数値を型として使うことができます。 では特殊な数値Infinityに対応するInfinity型は存在するのか? がこの記事のテーマです。 結論だけ先に書くと「Infinity型は表面上は提供されていないが内部的には存在する」という感じの不思議な状況のようです。 ちょっとややこしい話なので、順を追って説明していきます。 そもそもInfinityはリテラルではない 実はInfinityはグローバル変数らしいです。 試しにVSCodeでInfinityの定義にジャンプしてみると次のように型定義されています。 このことから次のことが分かります。 Infinityはリテラルではないので、リテラル型としてのInfinity型も存在しない 変数Intifityの型はnumberとして定義されているので、typeof InfinityをInfinit

    TypeScriptにInfinity型は存在する?
  • 空世界 〜HTMLの永遠仕様探訪記、或いは、文字なきsrcにまつわる寥々たる考察について〜

    問題 <img src=""> をブラウザで表示した時、どうなるか知っていますか?わざわざimg要素のsrc属性を空文字列にする機会がないので意外と知らないかもしれません。 もちろん画像は表示されず、(指定していれば)altが表示されます。 img要素のsrc属性を空文字列にすると、リンク切れになることがわかりました!いかがでしたか?(?) そのときHTMLImageElementは JavaScriptでsrcが空文字列のimg要素のDOMインスタンスを確認してみましょう。例として https://zenn.dev/stin を開き、Chrome開発者ツールを使ってsrc属性に空文字列を指定したimg要素を埋め込んでおきます。 そして次のJavaScriptを実行します。 const element = document.querySelector('img[src=""]'); con

    空世界 〜HTMLの永遠仕様探訪記、或いは、文字なきsrcにまつわる寥々たる考察について〜
  • ユーザー操作のイベントかそうでないかを判定できるevent. isTrustedプロパティで意図しない動作を防ぐ

    イベントの伝播を防ぐのはstopPropagation()ですが、伝播するはずのない要素でイベントが走ってしまい動作不良が起きてしまうことがありました。 そのときに問題の解消方法として採用したisTrustedプロパティを紹介します。 ユーザー操作かスクリプトで作成・変更されたかを返してくれるevent.isTrusted MDNには次のような説明があります。 isTrusted は Event インターフェイスの読み取り専用プロパティで、このイベントがユーザー操作によって生成された場合は true、このイベントがスクリプトで作成または変更されたり、 EventTarget.dispatchEvent() で配信されたりした場合は false となる論理値を返します。 https://developer.mozilla.org/ja/docs/Web/API/Event/isTrusted

    ユーザー操作のイベントかそうでないかを判定できるevent. isTrustedプロパティで意図しない動作を防ぐ
  • 自作フォントでターミナルにちょってぃを表示したい!!

    はじめに エンジニアのみなさん、フォントは何を使っていますか?。 筆者はターミナルの表示をかっこよくするために、FiraCode Nerd Fontを愛用しています。 今回はここにちょっと社のキャラクターである ちょってぃ を表示するために、自作フォントを作っていきます🚀。 フォントの規格 フォントを自由に追加できる範囲はUnicodeの規格で決まっています。 以下の画像の通りUnicodeではU+F0000–U+10FFFFまでが私用面として割り当てられています。 プログラミング用フォントとして使われているFiraCode Nerd FontなどはGitHubフォントやブランチフォントなど独自のフォントをこの私用面に割り当てています。 https://ja.wikipedia.org/wiki/私用面 今回作るフォントもUnicodeに従って私用面に作成します。 FontForge

    自作フォントでターミナルにちょってぃを表示したい!!
    igrep
    igrep 2023/06/29
    Unicodeの私用面、便利よな
  • VSCodeが物足りない人へ AstroNvimの紹介

    はじめに みなさんはエディタに何を使っていますか? 筆者は最近、VSCodeからNeoVimに乗り換えました。 NeoVimは自分好みにカスタマイズしていくエディタです。 この記事ではVSCodeに飽きちゃった人やNeoVimを使ってみたいけど難しそうだなと思っている人に向けてAstroNvim を紹介します。 AstroNvimとはオールインワンのNeovim環境です。 カスタマイズも簡単にできるため、NeoVim初心者にはとてもおすすめです。 筆者もAstroNvimからNeoVimに入門しており、いまも使い続けています。 AstroNvim のインストール Macの場合はbrewを使って簡単に導入できます。 brew install neovim git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/

    VSCodeが物足りない人へ AstroNvimの紹介
    igrep
    igrep 2023/06/07
    Spacemacsみたいなのがちょくちょくあるんだねぇ
  • 1