Recent Gists from azu

https://github.blog

Updates, ideas, and inspiration from GitHub to help developers build and design software.

フィード

記事のアイキャッチ画像
tsgolint fork
Recent Gists from azu
tsgolint-fork.md Fork Contexttsgolintをforkしているhttps://github.com/typescript-eslint/tsgolinttypescript-goをforkしているtsgolintの仕組み的にtypescript-goに対してpatchを当ててinternalを利用しているそのため、submoduleでtypescript-goのforkを管理してpatchを当てているhttps://github.com/web-infra-dev/rslint/blob/38d8c7b0f4d2033e63418aa18ea993bf6855e21a/tools/gen_shims/main.gohttps://github.com/oxc-project/tsgolint/tree/fb6385b45cc75974ae904d53948a0fe81b839161/patchesルールをforkしているrslintもtsgolintをforkしているので、それぞれが同じルールを持っているhttps://github.com/oxc-project/tsgolint/tree/main/internal/ruleshttps://github.com/web-infra-dev/rslint/tree/main/internal/plugins/typescript/rules今のルールは同じだけど、特に同期する仕組みがないため、ルールもそれぞれでforkされていくこれはDeno Lint, Oxlint, Biomeで同じようなルールをそれぞれ実装していたのと同じLinter自体がルールを持っているため発生する事例Relatedmicrosoft/typescript-go: Staging repo for development of native port of TypeScripttypescript-eslint/tsgolint: ✨ Experimental proof-of-concept typescript-go powered JS/TS linter written in Gooxc-project/tsgolint: Type aware linting for oxlintOxlint Ty
14日前
記事のアイキャッチ画像
Claude Desktop IME Fix for Karabiner-Elements - 日本語IME変換時の誤送信を防ぐ設定
Recent Gists from azu
README.md Claude Desktop IME Fix for Karabiner-ElementsClaude DesktopのOption+Space(クイックエントリー)を使用する際、日本語IMEの変換確定のEnterキーで誤ってメッセージが送信されてしまう問題を解決するKarabiner-Elementsの設定です。Karabiner-Elements設定{ "title": "Claude Desktop IME Fix for Japanese Input", "rules": [ { "description": "Claude Desktop: Solo Enter → Shift+Enter (改行), Cmd+Enter → Enter (送信)", "manipulators": [ { "type": "basic", "conditions": [], "from": { "key_code": "spacebar", "modifiers": { "mandatory": ["option"] } }, "to": [ { "shell_command": "open -g -b com.anthropic.claudefordesktop" }, { "key_code": "spacebar", "modifiers": ["option"] } ] }, { "type": "basic", "from": { "key_code": "return_or_enter", "modifiers": { "mandatory": ["command"] } }, "to": [ { "key_code": "return_or_enter" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.anthropic\\.claudefordesktop$" ] } ] }, { "type": "basic", "from": { "key_code": "return_or_enter" }, "to": [ { "key_code": "return_or_enter", "modifiers":
1ヶ月前
記事のアイキャッチ画像
Some notes and tools for reverse engineering / deobfuscating / unminifying obfuscated web app code
Recent Gists from azu
_deobfuscating-unminifying-obfuscated-web-app-code.md Deobfuscating / Unminifying Obfuscated Web App / JavaScript CodeTable of Contentstl;dr: AKA: devalias's shortlistPoCToolsUnsortedwakaruwebcrackhumanifyast-grepRestringerdebundle + relatedjoernBlogs / Articles / etcLibraries / HelpersUnsortedRecast + relatedestools + relatedBabelsemantic / tree-sitter + relatedShift ASTswcesbuildSource MapsSource Map v4 and similarly proposed extensions (eg. adding scope/function names as well as variable names, globally unique debug IDs (enabling symbol server support), etc)Visualisation/etcBrowser Based Code Editors / IDEsCodeMirrormonaco-editorObfuscation / DeobfuscationVariable Name ManglingStack Graphs / Scope GraphsSymbolic / Concolic ExecutionProfilingUnsortedMy ChatGPT Research / ConversationsSee AlsoMy Other Related Deepdive Gist's and ProjectsOther files in this gist:chrome-devtools-sources-extension.mdChrome DevTools 'Sources' Extensionfingerprinting-minified-javascript-libraries.mdFingerp
1ヶ月前
記事のアイキャッチ画像
whois npnjs.com
Recent Gists from azu
whois npnjs.com This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters whois npnjs.com Domain Name: NPNJS.COM Registry Domain ID: 3000365290_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.namesilo.com Registrar URL: http://www.namesilo.com Updated Date: 2025-07-18T23:20:33Z Creation Date: 2025-07-14T15:24:40Z Registry Expiry Date: 2026-07-14T15:24:40Z Registrar: NameSilo, LLC Registrar IANA ID: 1479 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: +1.4805240066 Domain Status: ok https://icann.org/epp#ok Name Server: NS1.DNSOWL.COM Name Server: NS2.DNSOWL.COM DNSSEC: unsigned URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ >>> Last update of whois database: 2025-07-19T10:35:58Z <<< For more information on
1ヶ月前
記事のアイキャッチ画像
migrate to pnpm from npm/yarn
Recent Gists from azu
migrate-to-pnpm.ts This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters #!/usr/bin/env node --experimental-strip-types // # npm/yarn を pnpm に移行するスクリプト // ## 制限 // Node.jsのコアパッケージのみを利用する // - fsのglob // https://nodejs.org/api/fs.html#fspromisesglobpattern-options // - util.parseArgv // https://nodejs.org/api/util.html#utilparseargsconfig // ## 変更箇所 // ### package.json // - `corepack use pnpm`を実行して、pnpmを有効化する // - `scripts`フィールドで`yarn`を`pnpm`コマンドに置換 // ### lockfile // - `pnpm import`を実行して、lockfileをpnpmに変換する // https://pnpm.io/cli/import // ### .github/workflows/*.{yml,yaml} // - pnpm/action-setup@v4がなければ、actions/checkoutの後に追加 // - `yarn` コマンドを`pnpm`に置換/`npm` コマンドを`pnpm`に置換 // https://github.com/azu/ni.zsh#command-table を参考にして置換 // - actions/setup-nodeのcacheの設定を pnp
5ヶ月前
記事のアイキャッチ画像
Research for tj-actions org. https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised
Recent Gists from azu
tj-actions.md tj-actions organizationのリポジトリをチェック次のコマンドで、tj-actionsのリポジトリの一覧を取得できる。$ gh repo list tj-actions --json "name,owner"[ { "name": "glob", "owner": { "id": "MDEyOk9yZ2FuaXphdGlvbjY3MTE2Nzg3", "login": "tj-actions" } },${owner.login}/${name} の形式で表示する。$ gh repo list tj-actions --json "owner,name" --jq '.[] | "\(.owner.login)/\(.name)"' このリポジトリをまとめてcloneする。$ gh repo list tj-actions --json "owner,name" --jq '.[] | "\(.owner.login)/\(.name)"' | xargs -n1 gh repo cloneこれで現在のディレクトリにtj-actionsのリポジトリがcloneされる。現在のディレクトリ直下にあるディレクトリで、コミット内容に git grep <regexp> $(git rev-list --all) で問題ありそうな変更があるか確認する。サンプルケース:git grep "exec.getExecOutput('bash'" $(git rev-list --all)git grep "aWYgW1sgIiRPU1RZUEUi" $(git rev-list --all)などをそれぞれのリポジトリで検索するfor d in $(ls -d */); do echo "tj-actions/$d" (cd "$d" && git grep "exec.getExecOutput('bash'" $(git rev-list --all)) (cd "$d" && git grep "aWYgW1sgIiRPU1RZUEUi" $(git rev-list --all))doneResult:tj-actions/auto-doc/tj-actions/aws-cdk/tj-actions/aws-lightsail-p
6ヶ月前
記事のアイキャッチ画像
ts-mini-compiler.ts
Recent Gists from azu
ts-mini-compiler.ts This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters import * as ts from "typescript"; const getLineTextFromFilePosition = ( file: ts.SourceFile, { line, character }: ts.LineAndCharacter, ): string => { const lines = file.getFullText().split("\n"); return lines[line]?.slice(character) ?? ""; }; function compile(fileNames: string[], options: ts.CompilerOptions): void { let program = ts.createProgram(fileNames, options); let emitResult = program.emit(); let allDiagnostics = ts .getPreEmitDiagnostics(program) .concat(emitResult.diagnostics); allDiagnostics.forEach((diagnostic) => { if (diagnostic.file) { let { line, character } = ts.getLineAndCharacterOfPosition( diagnostic.file, diagnostic.start!, ); let message = ts.flattenDiagnosticMessageText
6ヶ月前
記事のアイキャッチ画像
ESLint plugin for https://www.pandanoir.info/entry/2025/01/29/205439
Recent Gists from azu
require-comment-on-useEffect.js This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters export const requireComment = { meta: { type: "suggestion", docs: { description: "useEffectにはコメントでの説明が必須です。", }, schema: [], messages: { requireCommentOnUseEffect: `useEffectにはコメントでの説明が必須です。 useEffectはReactのパラダイムからのエスケープパッチなので、使うには理由が必要です(できるだけ避けるべきです)。 useEffectで「なにがしたいか」「なぜuseEffectを使うのか」「いつ呼ばれるのか」をコメントで書いてください。 // What: 〜する処理 // Why: 〜と連携するため、effectを使う // When: 〜の値が変更されたときに呼ばれる(第2引数が空配列 または 複雑な場合は書いてください) 例) function Form() { // Formコンポーネントを表示したことを、アクセス解析ツールに記録する処理 // コンポーネントをマウント時に、一度だけ記録する(devだと複数回呼ばれるがdevのみなので問題ない) useEffect(() => { post('/analytics/event', { eventName: 'visit_form' }); }, []); return <form>...</form>; } 参考: - そのエフェクトは不要かも: https://ja.react.dev/learn/you-mi
7ヶ月前
記事のアイキャッチ画像
`pnpm --recursive update --interactive --latest` for pnpm catalogs. pnpm + fzf + yq
Recent Gists from azu
pnpm-up.sh This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters # Update pnpm catalog with interactive # pnpm catalog: https://pnpm.io/ja/catalogs # fzf: https://github.com/junegunn/fzf # yq: https://github.com/kislyuk/yq selected_cataglogs=$(pnpm outdated --recursive --json | jq -r 'to_entries[] | .key + ": " + .value.current + " → " + .value.latest' | fzf --multi) echo $selected_cataglogs | while read line ; do pkg_name=$(echo "$line" | cut -d: -f1) pkg_version=$(echo "$line" | cut -d' ' -f4) echo "Update $pkg_name to $pkg_version" yq -i ".catalog += {\"$pkg_name\": \"$pkg_version\"}" pnpm-workspace.yaml done pnpm install
8ヶ月前
記事のアイキャッチ画像
Playwright v1.44.0...v1.46.0
Recent Gists from azu
playwright.md https://github.com/microsoft/playwright/releases/tag/v1.46.0--only-changed 変更したテストだけ実行できる結構便利そう。けどテストじゃなくて関連するソースの変更を検知したいhttps://playwright.dev/docs/api/class-testconfig#test-config-respect-git-ignoregitiginoreサポートだ。自前でパースしてたhttps://github.com/microsoft/playwright/blob/06ffdd61c9bc2e45e682011e09efeb4c658e2036/packages/playwright/src/runner/projectUtils.ts#L205-L222https://github.com/microsoft/playwright/releases/tag/v1.45.0--fail-on-flaky-tests でflakyをexit 1にできるClock APIというのが増えて時間操作できるこれ中みたけどかなり頑張って書いてる。実際使うべきかは謎https://github.com/microsoft/playwright/releases/tag/v1.44.0--last-failed 最後に失敗したテストだけ実行し直すコマンド。便利
1年前
記事のアイキャッチ画像
next/fontの実装メモ
Recent Gists from azu
next-font.md next/fontの実装https://github.com/vercel/next.js/blob/037783445324a85d04675524c941df21b3f4fbb5/packages/font/src/googlenext/fontの関数からパラメータを組み立てて https://fonts.googleapis.com/css2?family=xxx に対してリクエストhttps://github.com/vercel/next.js/blob/abe8b1e0a8c4db297d9a05b66d7aa59e8d7afca4/packages/font/src/google/loader.ts#L57-L87ダウンロードしたCSSの src: url(...) を抜き出してwebfontファイルを保存https://github.com/vercel/next.js/blob/abe8b1e0a8c4db297d9a05b66d7aa59e8d7afca4/packages/font/src/google/loader.ts#L110-L133ダウンロードしたCSSの src: url(...) を保存したファイルパスへ書き換えhttps://github.com/vercel/next.js/blob/abe8b1e0a8c4db297d9a05b66d7aa59e8d7afca4/packages/font/src/google/loader.ts#L151-L157作ったCSSをページに埋め込む( CSSにはGoogle Fontsのパスなどを書き換えた @font-face が定義されている)
1年前
記事のアイキャッチ画像
Node.jsのTypeScriptサポートについて
Recent Gists from azu
README.md Node.jsのTypeScriptサポートについてCreated: 2024-07-28Updated: https://gist.github.com/azu/ac5dafbf211ef8b5ecf386930ac75250/revisionsNode.jsのTypeScriptサポートに関する議論を時系列でまとめたものです。StartIssue: Support typescript with --experimental-strip-types · Issue #208 · nodejs/loadersSWCを使ってTypeScriptの型を削除することで、Node.jsのTypeScriptサポートを実現するという提案からスタートした。最初の懸念としては、Node.jsのLTSは3年保守する必要があるので、依存によってNode.jsのLTSサポートが難しくなるという話。具体的には次のような懸念があったSWCがSemverではないことTypeScriptがSemverではないことSWCについては、kdy1(SWC Author)からNode.jsが使うならそれ用のパイプラインを作るという話をした。Node.js Loaders Team Meeting 2024-07-02Node.js Loaders Team Meetingで、Node.jsにTypeScriptのサポートを入れたいという合意自体はある程度できた。実際にtype stripでそれが実現できるかは実験する必要があり、undiciの例にならって外部のパッケージとして進めることでコアのリリースサイクルの外で進めることが提案された。@swc/wasm-typescriptmodule: add --experimental-strip-types by marco-ippolito · Pull Request #2 · marco-ippolito/nodefeat(binding): Create Wasm package for stripping only TypeScript by kdy1 · Pull Request #9124 · swc-project/swcSWCにTypeScriptの型を削除するWasmパッケージが追加された。この時点では次のような変換
1年前
記事のアイキャッチ画像
Type Safe env.ts
Recent Gists from azu
createEnv.ts This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters export type BaseEnvRecord = Record< string, { value: string | undefined; required: boolean; defaultValue?: string; } >; export type ReturnTypeOfCreateEnv<T extends BaseEnvRecord> = { // If the value is required, it should be a string, otherwise it should be a string or undefined [K in keyof T]: T[K]["required"] extends true ? string : string | undefined; }; export const createEnv = <T extends BaseEnvRecord>( envs: T, ): ReturnTypeOfCreateEnv<T> => { const result = new Map<string, string | undefined>(); Object.entries(envs).forEach(([key, { value, required, defaultValue }]) => { if (required && !value && !defaultValue) { throw new Error( `Missing required environment variable: ${key}, value: ${value
1年前
記事のアイキャッチ画像
base
Recent Gists from azu
tsconfig.json This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters { // ベースのtsconfigは決められたカテゴリのみを設定する // それ以外は、プロジェクトごとに設定する // https://www.typescriptlang.org/tsconfig/#compilerOptions "compilerOptions": { // incrementalビルドは特別にデフォルトで有効にする "incremental": true, // # JavaScript Support "allowJs": false, // # Type Checking "strict": true, // strictestをベースにした設定 // https://www.npmjs.com/package/@tsconfig/strictest "allowUnusedLabels": false, // エラーハンドリングで satisfy never するために意図的に使ってる // "allowUnreachableCode": false, // optionalとundefined値の区別 "exactOptionalPropertyTypes": true, "noFallthroughCasesInSwitch": true, "noImplicitOverride": true, "noImplicitReturns": true, "noPropertyAccessFromIndexSignature": true, "noUncheckedIndexedAccess": true, "noUnusedLocals": true, //
1年前
記事のアイキャッチ画像
page.tsx
Recent Gists from azu
page.tsx This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters import React, { useActionState } from "react"; const validate = _ => {}; const isValidationError = _ => {}; const isNetworkError = _ => {}; const DisplayError = ({ error, }: { error: ReturnType<typeof usePage>["error"]; }) => { if(isValidationError(error)) { return <>Validation Error</> } else if(isNetworkError(error)) { return <>Network Error</> } // unhandled error will be compile error. console.error("unknown erro", error satisfies never); }; export const usePage = () => { const [error, handleSubmit, loading] = useActionState( async (prevState: unknown, value: string) => { const result = validate(value); if(!result.ok) { return result.error; } // do somthing try { const respose = await fetch("https:
1年前
記事のアイキャッチ画像
Async Generator usecase: https://vercel.com/blog/ai-sdk-3-generative-ui
Recent Gists from azu
streaming-by-async-generator.js This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters const draw = (output) => console.log(output); const getWeather = async (city) => { await new Promise((resolve) => setTimeout(resolve, 1000)); return "sunny"; }; const render = async function* ({ city }) { yield `<Spinner />`; const weather = await getWeather(city); return `<Weather info=${weather} />`; }; // Please draw the weather after using this `render`. async function main() { const gen = render({ city: "New York" }); while (true) { const { value, done } = await gen.next(); draw(value); if (done) { break; } } } await main();
1年前
記事のアイキャッチ画像
Surfingkeys shortcut: kagi.com to google
Recent Gists from azu
kagi-to-google.js This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters api.mapkey("g", "Kagi to Google", function () { const isKagi = location.href.startsWith("https://kagi.com/search?"); if (isKagi) { location.href = `https://www.google.com/search?q=${(new URL(location.href)).searchParams.get("q")}`; } });
2年前
記事のアイキャッチ画像
公式ドキュメントのユースケース
Recent Gists from azu
README.md Ref なぜ僕は公式ドキュメントを読むのが苦手なのか #初心者 - Qiita次のようなセクションがあった場合、何を読むかというのはその目的によって異なるという印象。Getting Started: インストール、セットアップTutorial: 基本的な使い方(代表的な使い方)Concepts: デザインのコンセプト、なぜ作ったかExamples: 動くサンプルAPI Reference: APIのリファレンス目的によっては、公式ドキュメントじゃない方が理解しやすい場合もあります。ただし、公式ドキュメントに書かれていることが大体のケースでは正確なので、どの目的の場合でも「リファレンス」として公式ドキュメントを併せて参照するのは有用です。e.g. ブログ記事でインストール方法が紹介されていた時に、公式ドキュメントではどういう方法でインストールを推奨してるかを合わせて参照する→ 推奨されてるインストール方法が一番ユーザーが多い方法なので、問題が起きた時に問題が解決しやすいe.g. ブログ記事でAPIの使い方が紹介されていた時に、公式ドキュメントではどういう用途で使うべきかが書かれているので合わせて参照する→ 動きはするが公式ドキュメントでは非推奨だったり、代替手段が提供されてることに気付ける上から全部読んで理解できるものになってるドキュメントは、かなり力入れて作られてるドキュメントです。そういうのは有名な {product} に多いですが、そうじゃない場合は無理に上から読む必要性はないと思います。(有名であってもドキュメントを改善するリソースが足りないことはよくあるので、ドキュメントを改善するのは喜ばれる){product} の概要を知りたいGetting Started や Examples で雰囲気がわかる興味が出たら Tutorial などを触ってみるライブラリの作成者もドキュメントを書くのが上手ではない場合があるので、検索してわかりやすい説明がされてる記事なども合わせて参照するのがよさそう。{product} が既存のものとは何が違うのか知りたいConcepts を参照すると作成したモチベーションが書かれてることが多いので、ここで既存との違いを紹介されてることが多い直接的に Compare 的な比較のセクションを設けてるものもあるe.g.ht
2年前
記事のアイキャッチ画像
Notes on `failed to register layer: rename` error with docker pull.
Recent Gists from azu
docker failed to register layer: rename.md 📝 Docker's "failed to register layer" error on macOS/OrbStack.Error Messagefailed to register layer: rename /var/lib/docker/image/overlay2/layerdb/tmp/write-set-xxx /var/lib/docker/image/overlay2/layerdb/sha256 /<sha>: file existsReasonErrors during docker pull leaving debris in layer.This can happen when docker pull is performed when the disk space is full.SolutionDelete /var/lib/docker/image/overlay2/layerdb/sha256/<sha>failed to register layer: rename <src> <dist>: file existsDeleting the rubbish file in this <dist> dir will cure the problem, but this file is in Docker,In Docker for macOS, you can delete it by going into Docker and forcibly rm it.$ docker run -it --rm --privileged --pid=host alpine:edge nsenter -t 1 -m -u -n -i rm -rf /var/lib/docker/image/overlay2/layerdb/sha256/<sha>Related: Getting a Shell in the Docker Desktop Mac VMAfter deleting, this cache file will not be used from the next pull, so you will be able to pull.The err...
2年前
記事のアイキャッチ画像
Gitメモ: メモをコミットして作業ツリー自体はメモを書く直前に戻すcommit -hook
Recent Gists from azu
post-commit This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters # 📝 [Note] Mode -- if commit message starts with "📝" or includes "[Note]" IS_NOTE_MODE=$(git log -1 --pretty=%B | grep -E '^(📝|\[Note\])') if [[ -n "${IS_NOTE_MODE}" ]]; then # メモの作業内容を戻すコミットをする headSHA=$(git rev-parse HEAD) git revert --no-commit HEAD git ls-tree -r --name-only HEAD | xargs git commit -m "↩️ ${headSHA}" -- # メモを書く直前の状態に作業内容を戻す git revert --no-commit HEAD # terminal notification # remove 📝 and [Note] trimCommitMesasge=$(echo "${GIT_COMMIT_MSG}" | sed -e 's/📝//' -e 's/\[Note\]//') osascript -e "display notification \"${trimCommitMesasge}\" with title \"📝 メモを記録\"" fi
2年前
記事のアイキャッチ画像
各SQLサーバでOSコマンドを実行する方法
Recent Gists from azu
sql-execute-os-command.md Defending new vectors: Threat actors attempt SQL Server to cloud lateral movement | Microsoft Security BlogSQLサーバから別のところに侵入するパターンで、SQLサーバ上でOSのコマンドを利用してるケースが増えている。各SQLサーバでOSコマンドを実行する方法を知りたい。TypeHow ToStatusSQL Serverxp_cmdshellDisable by DefaultMySQLsystem (\!)Enable in TerminalPostgreSQLCOPYRequire pg_execute_server_program roleRelatedExploiting PostgreSQL Restore - Blog
2年前
記事のアイキャッチ画像
Bluesky: auto refresh
Recent Gists from azu
Bluesky: auto refresh.user.js This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters // ==UserScript== // @name Bluesky: auto refresh // @namespace https://efcl.info // @match https://bsky.app/* // @grant none // @version 1.0 // @author azu // @description Auto Refresh when notifications is shown // ==/UserScript== const origSetInterval = window.setInterval; // refresh 15sec === refresh fn const isBskyRefresh = (fn, ms) => { const source = fn.toString(); return source.includes(".updateSessionState()") && ms === 15e3; }; const addRefreshCallForPageVisible = (refreshFn) => { document.addEventListener("visibilitychange", () => { if (!document.hidden) { try { refreshFn(); document.querySelector('[aria-label="Load new posts"]')?.click(); } catch(error){ console.error("[
2年前
記事のアイキャッチ画像
git auto commit
Recent Gists from azu
git auto commit.zsh This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters function git-auto-commit(){ git_status=$(git status --porcelain | grep -vE '^\s') first=$(echo "$git_status" | head -n1) filename=$(echo "$first" | awk '{print $NF}') git_root_dir=$(git rev-parse --show-toplevel) if echo "$first" | grep -Eq '^\s?M'; then commit_message="Update $filename" elif echo "$first" | grep -Eq '^\s?A'; then commit_message="Add $filename" elif echo "$first" | grep -Eq '^\s?D'; then commit_message="Delete $filename" elif echo "$first" | grep -Eq '^\s?R'; then from=$(echo "$first" | awk '{print $2}') to=$(echo "$first" | awk '{print $4}') commit_message="Rename $from to $to" else echo "🔔 untrack file exists" echo "$(git status --porcelain)" # confirm to add all untrack ...
2年前
記事のアイキャッチ画像
Developer eXperience AWARD 2022...2023 diff
Recent Gists from azu
Developer eXperience AWARD 2023.md 2022: 日本CTO協会、エンジニアが選ぶ開発者体験が良いイメージのある企業ランキング30を発表 - 一般社団法人 日本CTO協会2023: エンジニアが選ぶ「開発者体験が良い」イメージのある企業「Developer eXperience AWARD 2023」ランキング上位30を発表|一般社団法人 日本CTO協会のプレスリリース企業名2022年の順位2023年の順位株式会社メルカリ11Google LLC22LINE株式会社33ヤフー株式会社44株式会社サイバーエージェント55サイボウズ株式会社67株式会社SmartHR713Microsoft Corporation87 (日本マイクロソフト株式会社)株式会社ディー・エヌ・エー915株式会社ゆめみ106クックパッド株式会社1110クラスメソッド株式会社1212Ubie株式会社1319freee株式会社1410株式会社ZOZO1521Amazon.com, Inc.159 (Amazon Japan)株式会社LayerX1515Amazon Web Services, Inc.1817Sansan株式会社1926株式会社マネーフォワード2013株式会社リクルート2122楽天グループ株式会社2219株式会社ログラス2325エムスリー株式会社2330株式会社はてな23該当なし株式会社10X2622Apple, Inc.2618株式会社アンドパッド26該当なし合同会社DMM.com2930株式会社プレイド2926株式会社NTTデータ該当なし24ソニー株式会社該当なし26株式会社Preferred Networks該当なし26富士通株式会社該当なし30株式会社ソニックガーデン該当なし30
2年前
記事のアイキャッチ画像
Replace old GitHub ribbon image to new GitHub ribbon image. Old GitHub ribbon image is deleted at 2023-05
Recent Gists from azu
get-new-ribbon.sh This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters rg "https://s3.amazonaws.com/github/ribbons/" --files-with-matches -0 | xargs -0 sed -i '' 's/https:\/\/s3.amazonaws.com\/github\/ribbons\//https:\/\/github.blog\/wp-content\/uploads\/2008\/12\//g'
2年前
記事のアイキャッチ画像
Alternative ni written in Zsh
Recent Gists from azu
README.md Move to → azu/ni.zsh: Alternative ni written in zshAlternative ni written in zshni - use the right package managerOriginal: https://github.com/antfu/niInstallationsource ni.zshUsageni -- install current package.jsonni add <pkg> -- add packageni remove <pkg> -- remove packageni run <script> -- run scriptsni upgrade -- upgrade packagesni upgrade-interactive -- upgrade package interactivelyLicenseMIT ©️ azuni.zsh This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters # Alternative ni written in ShellScript # SPDX-License-Identifier: MIT # Author: @azu # Original: https://github.com/antfu/ni function echoRun() { echo "$ $@" eval "$@" } function getPackageManager() { # detect package manager via package.json if [ -f "package.json" ]; then local packageManager
2年前
記事のアイキャッチ画像
search GitHub Isssue and checkout for develop
Recent Gists from azu
gh-issue-checkout.zsh This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters function gh-issue-checkout(){ INITIAL_QUERY="$1" GH_ISSUE_LIST="gh issue list -S" FZF_DEFAULT_COMMAND="$GH_ISSUE_LIST '$INITIAL_QUERY'" \ gh issue list | \ fzf --layout=reverse \ --bind "change:reload:$GH_ISSUE_LIST {q} || true,ctrl-o:execute(echo {} | xargs gh issue view --web)+abort"\ --preview "gh issue view {1} | bat --color=always --style=grid --file-name O.md" \ --header 'Press Ctrl+O to open issue' \ | awk '{print $1}' | xargs -IXXX gh issue develop XXX --name "feature/XXX" --checkout } zle -N gh-issue-checkout bindkey '^B^I' gh-issue-checkout
3年前
記事のアイキャッチ画像
zoxide + fzf + bat + exa
Recent Gists from azu
z.zsh This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters # https://github.com/ajeetdsouza/zoxide export _ZO_FZF_OPTS=' --no-sort --height 75% --reverse --margin=0,1 --exit-0 --select-1 --bind ctrl-f:page-down,ctrl-b:page-up --bind pgdn:preview-page-down,pgup:preview-page-up --prompt="❯ " --color bg+:#262626,fg+:#dadada,hl:#f09479,hl+:#f09479 --color border:#303030,info:#cfcfb0,header:#80a0ff,spinner:#36c692 --color prompt:#87afff,pointer:#ff5189,marker:#f09479 --preview "([[ -e '{2..}/README.md' ]] && bat --color=always --style=numbers --line-range=:50 '{2..}/README.md') || exa --color=always --group-directories-first --oneline {2..}" '
3年前
記事のアイキャッチ画像
Greasemonkey: Open GitHub Issue in VSCode
Recent Gists from azu
GitHub Issue: Open VSCode.user.js This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters // ==UserScript== // @name GitHub Issue: Open VSCode // @namespace info.efcl.open-vscode- // @match https://github.com/*/*/issues/* // @match https://github.com/*/*/pull/* // @grant GM_download // @grant GM_openInTab // @grant GM_registerMenuCommand // @version 1.0 // @author azu // @description 2023/1/16 12:53:36 // ==/UserScript== const createMarkdownFromBody = (wrapQute = true) => { const body = document.querySelector(".Layout-main"); // filter p and span tags const nodes = Array.from(body.querySelectorAll("p, strong")); // get texts withotut have div tag and error message const texts = nodes .filter(node => !node.querySelector("div") && !node.hasAttribute("data-show-on-erro
3年前
記事のアイキャッチ画像
Migration Script: Convert TypeScript project to Node.js dual package
Recent Gists from azu
README.md Convert TypeScript library project to Node.js Dual PackageIt is a script to convert a TypeScript library project to a Node.js Dual CommonJS/ES module packages.This script aim to convert following project:Use TypeScriptUse ts-nodeUse mochaThis script modify following files:package.json: Add exports field and Install tsconfig-to-dual-package to build dual package.mocharc.json: Support ESM via ts-node/esmtsconfig.json: Compile source code to ESMtsconfig.cjs.json: Compile source code to CJS.gitignore: Ignore compiled filesAs a result, your library will be followingYour Library has { "type" : "module" } and exports fieldYour Library can be used from CJS(require) and ESM(import)RequirementNode.js 16+npm 8+ (npm pkg command is used)UsageInstall dependencies to project and update package.json:$ bash <(curl -s https://gist.githubusercontent.com/azu/f383ba74c80d17806badd49745ce2129/raw/convert-to-dual-package.sh)Check source code via eslint-cjs-to-esm$ npx eslint-cjs-to-esm "./{src,tes
3年前