Skip to content

Instantly share code, notes, and snippets.

View katagaki's full-sized avatar

シン katagaki

View GitHub Profile
@katagaki
katagaki / AppDelegate.swift
Created August 24, 2025 04:34
An empty AppKit app without using Storyboards
import Cocoa
class AppDelegate: NSObject, NSApplicationDelegate {
var window: NSWindow!
func applicationDidFinishLaunching(_ aNotification: Notification) {
window = NSWindow(
contentRect: NSRect(x: 0, y: 0, width: 800, height: 600),
styleMask: [.titled, .closable],
@katagaki
katagaki / pykx_threaded.py
Created July 31, 2025 04:17
Execute Q queries using PyKx from a threaded application such as Flask or FastAPI
import os
from concurrent.futures import ProcessPoolExecutor, Future
from io import BytesIO
from pandas import DataFrame, read_parquet
# Requires installation of pyarrow as well
def run_query_in_process(query: str) -> bytes:
@katagaki
katagaki / RemoveDSStore.sh
Created July 23, 2025 22:25
Remove .DS_Store from a new Git repository.
# From https://stackoverflow.com/questions/107701/how-can-i-remove-ds-store-files-from-a-git-repository
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
touch .gitignore
echo .DS_Store >> .gitignore
git add .gitignore
git commit --amend
git push -u origin main
@katagaki
katagaki / GitPullAll.sh
Last active July 27, 2025 12:40
Run git pull on all subdirectories
for dir in */; do cd "$dir" && git fetch && git pull && cd ..; done
@katagaki
katagaki / CreateUserWithSSHKey.sh
Created April 22, 2025 09:08
Issue SSH key for a new user
# This script should be run with sudo
useradd --disabled-password --create-home $1
passwd -dl $1
usermod -g sshers $1 # Use your own group if you have one, if not remove this line
mkdir -p /home/$1
chown -R $1:$1 /home/$1
sudo -u $1 ssh-keygen -f /home/$1/.ssh/rd_rsa -q -N "" # Specify a passphrase if you need one
mv /home/$1/.ssh/id_rsa.pub /home/$1/.ssh/authorized_keys
@katagaki
katagaki / browser_context.py
Last active August 30, 2025 13:26
Create a not so suspicious looking browser context using Playwright on Python
async def create_browser_context(p: Playwright) -> BrowserContext:
browser_context: BrowserContext = await p.chromium.launch_persistent_context(
user_data_dir=f"./browser_profiles/{str(uuid4())}",
args=[
"--password-store=basic",
"--disable-features=site-per-process",
"--disable-blink-features=AutomationControlled",
"--disable-web-security",
"--disable-audio-output",
"--disable-gpu",
@katagaki
katagaki / web_browser_tool.py
Last active August 30, 2025 13:26
Web browser tool for LangChain
import re
from asyncio import run as run_async
from typing import Optional, Type
from bs4 import BeautifulSoup
from langchain_core.callbacks.manager import AsyncCallbackManagerForToolRun
from langchain_core.tools import BaseTool
from playwright.async_api import BrowserContext, Page, async_playwright
from pydantic import BaseModel, Field
@katagaki
katagaki / google_search_tool.py
Last active December 2, 2025 04:18
Google Search tool using web scraping for LangChain
import json
from asyncio import run as run_async
from typing import Optional, Type
from urllib.parse import quote_plus
from bs4 import BeautifulSoup, ResultSet, Tag
from langchain_core.callbacks.manager import AsyncCallbackManagerForToolRun
from langchain_core.tools import BaseTool
from playwright.async_api import Browser, Page, async_playwright
from pydantic import BaseModel, Field
@katagaki
katagaki / settings.json
Last active November 19, 2025 09:06
Zed Settings
{
"agent": {
"default_profile": "ask",
"default_model": {
"provider": "copilot_chat",
"model": "grok-code-fast-1"
},
"button": true
},
"agent_buffer_font_size": 11,
@katagaki
katagaki / FixPostgresPermissionsColima.sh
Last active August 30, 2025 13:27
Fix `chown: /var/lib/postgresql/data/pgdata: Permission denied`
echo From https://medium.com/dandelion-tutorials/how-to-fix-chown-permission-denied-issue-when-using-colima-on-mac-os-x-d925e420c875
colima stop
cd ~/.colima/_lima/_config
mv {dir}/override.yaml override.yaml
colima delete
colima start --mount-type 9p