タグ

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

  • Bluesky/GitHub/Calendar/RSSをNotionに同期するbluenotiondbを作った

    Notionには同期データベースとしてGitHubやJiraなどを同期できるDBがありますが、任意のサービスには対応していません。 もっと色々なサービスと同期するNotionのデータベースが欲しかったので、bluenotiondbというツールを作りました。 azu/bluenotiondb: Sync Bluesky/GitHub/Calendar/RSS to Notion. bluenotiondbは、色々なサービスからデータを取得してそのデータをNotionのデータベースに追加するツールです。 現状では次のサービスに対応しています。 Bluesky Pull Posts from Bluesky and push to Notion GitHub Activity Pull events of GitHub user and push to Notion Open/Close/Com

    Bluesky/GitHub/Calendar/RSSをNotionに同期するbluenotiondbを作った
    akulog
    akulog 2023/09/11
  • 記憶に残らないものをメモするためにMemory Noteという仕組みを書いた

    Memory NoteというプログラマブルなTodoアプリのミドルウェアを書きました。 ややこしいですが、大雑把に言えばReminder的なTodoリストを扱うREST APICloudflare Workersで動かす仕組みです。 Headless Todo Appという単語がしっくりくるのかもしれません。 単体だと何ができるのかよくわからないものですが、Todoサービスを自分用に作れる仕組みです。 対象ユーザーは主に自分ですが、Memory NoteのREADMEにセットアップ方法や関連するクライアントの実装も公開しています。 自分の場合は、iOSのショートカットから音声入力で、メモをGitHub Projectのボードにカードして記録しています。 この記録したメモを、iOSのWidgetsとしてホーム画面に出したり、AlfredのHotKeyでワンタッチで表示したり、部屋に電子ペー

    記憶に残らないものをメモするためにMemory Noteという仕組みを書いた
    akulog
    akulog 2021/09/27
    Headless Todo App
  • GitHon は HonKit に名前を変更しました(GitBookフォーク)

    先週リリースしたGitBook (Legacy)のフォークであるGitHonですが、HonKitという名前にリネームしています。 GitBook(legacy)のメンテナンスが止まって困っていたので、ForkしてGitHonを作りました。 先週からやり始めたばかりですが、 https://t.co/jz2VoxJkk4 は移行済みです。OSSなのでコントリビューターを募集しています! "GitBookをForkしてGitHonを作りました | Web Scratch"https://t.co/VZApbXvsIU pic.twitter.com/E7boJHJDCx — azu (@azu_re) June 19, 2020 HonKit(GitHon)自体の紹介については次の記事を参照してください。 GitBookをForkしてHonKitを作りました | Web Scratch Git

    GitHon は HonKit に名前を変更しました(GitBookフォーク)
    akulog
    akulog 2020/06/23
  • JavaScript Primerを出版しました!/JavaScript Primerはなぜ書かれたのか?

    この3つの原則は書籍の構成にも現れています。 第一部の基文法で「書き方」を学び、第二部のユースケースで「作り方」を学べるようになっています。 「学び方」は、章としてではなく全体的な流れとして取り入れることにしました。 なぜなら、「学び方」自体は学びたいことによっても異なる方法を取る場合があります。 そのため、「学び方」で個別の章とするよりは、他の章で「書き方」や「作り方」と一緒に見たほうがよいと考えたためです。 たとえば、基文法などの学び方にはMDNのようなリファレンスサイトを見たほうがいいし、 アプリケーションの作り方は実際のサイトなどを参考にしたほうがよいためです。 第一部と第二部がどのように書かれたのかをざっくりと振りかえってみます。 第一部: 基文法 第一部: 基文法はJavaScriptの基的な文法について扱っています。 プログラミングの入門書で文法については避けること

    JavaScript Primerを出版しました!/JavaScript Primerはなぜ書かれたのか?
    akulog
    akulog 2020/04/28
  • [クライアントサイド〜サーバーサイド] テンプレートエンジンでのセキュリティ的な問題や考え方

    この記事は次のスライドの文字起こし的な内容です。 スライド: クライアントサイドからサーバサイドまで破壊するテンプレートエンジンを利用した攻撃と対策 スライドの画像 + 喋った内容のNote的なものをそれぞれのページごとに書き込んでいます。 リンクとかはスライド版ならクリックできるので、そっちを見るといいのかもしれません。 画像だらけなので、画像が読み込み終わるのを待つといい気がします。 クライアントサイドからサーバサイドまで破壊するテンプレートエンジンを利用した攻撃と対策 テンプレートエンジンに関するセキュリティ的な問題についてのお話です。 テンプレートだからエンドユーザー(サービスの利用者)に書かせて安全だと思っていても、選んだテンプレートエンジンの性質によっては安全ではない場合があります。 また、JavaScriptのテンプレートエンジンはクライアントサイド(Browser)とサーバ

    [クライアントサイド〜サーバーサイド] テンプレートエンジンでのセキュリティ的な問題や考え方
    akulog
    akulog 2019/12/29
  • JavaScript ASTを使ったツール(自作、ESLint、Babel、jscodeshift)を実装する話

    JavaScript ASTを使ったツール(自作、ESLint、Babel、jscodeshift)を実装する話 Dive into ASTというJavaScriptのASTを使ったツールの作り方を見ていく話を書きました。 自作の正規表現、ASTチェックツール、ESLint、Babel、jscodeshiftでそれぞれ動くツールを実装してるので、リポジトリにまとめてあります。 スライドではCode Surferを使ってASTや書き方をインタラクティブに解説しています。 スライド: Dive into AST リポジトリ: azu/dive-into-ast: JavaScriptを中心にしたAST(Abstract Syntax Tree)を使ったツールの作り方についての資料です! 自作ASTツール、ESLint、Babel、jscodeshift それぞれでASTを使ったツールをどう実装

    JavaScript ASTを使ったツール(自作、ESLint、Babel、jscodeshift)を実装する話
    akulog
    akulog 2019/12/04
  • MarkdownやAsciidoc中に書いたJavaScriptのサンプルコードをdoctestするツールを作った

    技術書、ブログ、READMEを書いてていて、文章中に出てくるコードブロックのコードをテストしたいことがあると思います。 そのサンプルコードが当に動いてるのか不安になることがあるからです。 power-doctestは、そのコードブロック中のコードにコメントを入れるだけでテスト可能にするツール群です。 power-doctestの例 具体的な例から見ていきます。 次の例では、Markdownで説明とJavaScriptのコードブロックを書いています。 デフォルト引数を使って書くことで、このような挙動は起きなくなるため安全です。 デフォルト引数では、引数が渡されなかった場合のみデフォルト値が入ります。 ```js function addPrefix(text, prefix = "デフォルト:") { return prefix + text; } // falsyな値を渡してもデフォルト

    MarkdownやAsciidoc中に書いたJavaScriptのサンプルコードをdoctestするツールを作った
    akulog
    akulog 2019/09/03
    おもしろい " 次のように // => 評価結果 が assert に変換され、テストとして実行できます。"
  • GitHubで管理する個人向けブックマークシステムを書いた

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

    GitHubで管理する個人向けブックマークシステムを書いた
    akulog
    akulog 2019/06/07
    ほう
  • 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
    akulog
    akulog 2018/10/03
  • ページ上でずっと動いているsetTimeout、setInterval、requestAnimationFrameを見つけてパフォーマンス改善する

    ページ上でずっと動いているsetTimeout、setInterval、requestAnimationFrameを見つけてパフォーマンス改善する 複雑なウェブアプリケーションになってくると、1つのページで複数のTimerなどを回すことがあります。 例えば、Twitterのようなアプリならば、ポーリングで更新するためにsetInvervalのようなタイマーを回します。 また、ゲームなどCanvasで描画を行うアプリケーションならば、メインループをrequestAnimationFrameで回します。 このように色々なタイマー系がありますが、アプリが多機能になっていくと色々なタイマーが同時に動くようになっていきます。 特に問題がなりやすいのが表示中だけタイマーを回すコンポーネントです。 よくあるのが次のようなmount時にtimerを開始して、unmount時にtimerを停止するコンポーネ

    ページ上でずっと動いているsetTimeout、setInterval、requestAnimationFrameを見つけてパフォーマンス改善する
    akulog
    akulog 2017/12/07
  • LDRがサービス終了のため、Inoreader/Feedlyをバックエンドに動くRSSリーダを書いている

    LDRがサービス終了のため、Inoreader/Feedlyをバックエンドに動くRSSリーダを書いている 追記: 1.0.0を出して説明を書き直したので、Irodrを使いたい方はLDRライクなRSSリーダのIrodr 1.0.0をリリースした | Web Scratchを参照してください。 2017年8月31日をもってLDRはサービス終了です。乗り換え先となるRSSリーダを探したりしましたが、求めるものを見つけることができなかったので作ることにしました。 【重要】Live Dwango Reader/LDR Pocketサービス終了のお知らせ|LDR / LDRポケット 開発日誌 次の記事でも書いていましたが、RSSリーダのバックエンドを自前で管理するのはコスト的に難しそうでした。そのため、バックエンドとしてInoreaderやFeedlyのAPI使ったRSSリーダのウェブクライアントを書

    LDRがサービス終了のため、Inoreader/Feedlyをバックエンドに動くRSSリーダを書いている
    akulog
    akulog 2017/08/31
  • JavaScriptのライブラリを徐々にTypeScriptに移行する

    Alminというライブラリは元々JavaScript(+Babel)で書かれていましたが、今年の2月にsrc/下のソースコードはTypeScriptに移行しました。 その時のコミットログは次のPRに残っているため、コミットログを1コづつ見ていけばどのように行われていったが分かると思います。 Convert src/ to TypeScript by saneyuki · Pull Request #68 · almin/almin この時取った方法は大まかに次のような手順でした src/ の TypeScript化 Babel -> JS(js -> js)だったものをTypeScript -> Babel -> JSにビルドスクリプトを変更 TypeScriptはtargetをesnextにすることで単純に型を取り除くだけの変換にする ES2015 -> ES5を実際にやるのは既存のBa

    JavaScriptのライブラリを徐々にTypeScriptに移行する
    akulog
    akulog 2017/07/18
  • 1