Zellij ã䜿ã£ãŠ Claude Code ã®ãã«ããšãŒãžã§ã³ã䞊åã»çŽåå®è¡ç°å¢ãäœã£ã
jedipunkzð ã§ãã Claude Code ãæ¥åžžçã«äœ¿ãäžã§ã倧ããªã¿ã¹ã¯ãè€æ°ã®ç¬ç«ãããµãã¿ã¹ã¯ã«åããŠäžŠååŠçãããããšããããŒãºãåºãŠããŸãããäŸãã°ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ãšãã¹ã远å ãåæã«é²ããããè€æ°ãã¡ã€ã«ãžã®ç¬ç«ããä¿®æ£ã䞊è¡ããŠè¡ã£ãããšãã£ãã±ãŒã¹ã§ãã 2026幎2æã« Claude Code Agent Teams ãšããæ©èœãåºãŠããã®ã§ããããããŸã§ã1ã€ã®ã¿ã¹ã¯ã®äžã§è€æ°ã®ãµããšãŒãžã§ã³ãã皌åããããã®ã ã£ãã®ã§èªåãšããŠã¯æåŸ ããŠãããã®ãšè¥å¹²ç°ãªããŸãããããããã®ã¯èŠª Claude Code ã®ããã³ããããæç€ºãåºããŠè€æ°ã®ã¿ã¹ã¯ãè¡ã£ãŠãããå Claude Code ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã§ããã ããã§ãZellij ã® Pane 管çãš git worktree ãçµã¿åãããŠã芪 Claude Code ãè€æ°ã®åãšãŒãžã§ã³ãã Zellij Pane ãšããŠèµ·åãã¿ã¹ã¯ã䞊åã»çŽåå®è¡ããã SKILLãzellij-swarmããäœããŸããããã®èšäºã§ã¯ãã®ä»çµã¿ãšäœ¿ãæ¹ã玹ä»ããŸãã SKILL ã¯ä»¥äžã«çœ®ããŠããŸã: https://github.com/jedipunkz/dotfiles/tree/main/.claude/skills/zellij-swarm æŠèŠ èŠª Claude Code ã«å¯ŸããŠãswarm ã§ãããŠããšèªç¶èšèªã§æç€ºãåºããšãã¿ã¹ã¯ãè€æ°ã®ãµãã¿ã¹ã¯ã«åè§£ãããããããå¥ã ã® Zellij Pane ã§åãå Claude Code ãšãŒãžã§ã³ããšããŠèµ·åãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®ä»çµã¿ã§ãã åãšãŒãžã§ã³ãã¯ç¬ç«ãã git worktree äžã§äœæ¥ããå®äºåŸã«èŠªãšãŒãžã§ã³ããåãã©ã³ããããŒãžã㊠Git worktree ã®åŸçä»ããŸã§è¡ããŸãã ã¿ã¹ã¯éã«äŸåé¢ä¿ãããå Žå㯠ãã§ãŒãº ã«åå²ããŠå¯Ÿå¿ããŸããåäžãã§ãŒãºå ã®ãšãŒãžã§ã³ãã¯äžŠåå®è¡ããã§ãŒãºéã¯çŽåå®è¡ã§ãã å®è¡ãããŒã®æ§é ãã¿ãŒã³ 1: 䞊åã®ã¿ (äŸåé¢ä¿ãªã) ã¿ã¹ã¯ A ãš B ãäºãã«ç¬ç«ããŠããå Žåã1 ãã§ãŒãºã§äžŠåå®è¡ããŠçµäºããŸãã [agent-a] ââ ââ run-phase.sh ââ merge [agent-b] ââ |-------| phase 1 ãã¿ãŒã³ 2: 䞊å â çŽå (ãã§ãŒãºå¶åŸ¡) ã¿ã¹ã¯ C ãã¿ã¹ã¯ Aã»B ã®çµæã«äŸåããå Žåã2 ãã§ãŒãºã«åããŸããPhase 1 å®äºã»ããŒãžåŸã« Phase 2 ãèµ·åãããããC 㯠Aã»B ã®ææãåŒãç¶ãã ç¶æ ã§äœæ¥ã§ããŸãã ...
ã³ãã³ãã»ãã©ã³ãæ€çŽ¢ãè¡ã Fish Plugin ã Go ã§äœã£ã話
jedipunkz ã§ãã ä»åã¯èªäœãã Fish ã·ã§ã«ã® Plugin ã§ãã fuzz.fish ã玹ä»ããŸãã fuzz.fish 㯠Fish Shell ã®ã³ãã³ãå±¥æŽãš Git ãã©ã³ããã€ã³ã¯ãªã¡ã³ã¿ã«ãµãŒãã§ãã Fish Plugin [ã§ããGo ãš charmbracelet/bubbletea ã䜿ã£ãŠ TUI ãå®è£ ããŠãããFisher ã§ã€ã³ã¹ããŒã«ãããšèªåçã«ãã€ããªããã«ããããŸãã ãœãŒã¹ã³ãŒã https://github.com/jedipunkz/fuzz.fish ã¹ã¯ãªãŒã³ã·ã§ãã ã¡ãã£ãšèŠãæããããã«ããã§ããã³ãã³ãæ€çŽ¢ãšãã©ã³ãæ€çŽ¢ã«å¯Ÿå¿ããŠããŸãã éçºåæ© å¹Ÿã€ãå°ããªããŒã«ã¯ãããŸã§ãäœã£ãŠããŸãããå©çšããæ©äŒãæžããšã¡ã³ããã³ã¹ãæ ããã¡ãªããšã«æ°ãä»ããèªåèªèº«ããã䜿ãããŒã«ãäœãããšæã£ãã®ããã£ããã§ãã ãããŠæ®æ®µãã Fish ãã·ã§ã«ãšããŠäœ¿ã£ãŠããŸããã³ãã³ãå±¥æŽæ€çŽ¢ã Git ãã©ã³ãã®åãæ¿ããããå¹ççã«åºæ¥ãã°äœããèªåã«ãšã£ãŠäŸ¿å©ãªããŒã«ã«ãªãäºæããããŸããããæ¢åã®ããŒã«ããããŸããã以äžã®ç¹ãæºãããã®ãäœããããšèããŸããã äž»ãªæ©èœ fuzz.fish ã¯ä»¥äžã®æ©èœãæã£ãŠããŸããä»åŸã远å ããŠããäºå®ã§ãã ã³ãã³ãå±¥æŽãš Git ãã©ã³ãæ€çŽ¢ã1ã€ã®ããŒã«ã§åãæ¿ãããã ã³ãã³ãå±¥æŽæ€çŽ¢æã«ãã®ã³ãã³ããå®è¡ããååŸã®ã³ãã³ãã®è¡šç€ºã»æéæ å ±ãä»ãå ããŠè¡šç€º Fisher ã§ã·ã³ãã«ã«ã€ã³ã¹ããŒã«ã§ãã Go ã§å®è£ ããŠé«éã«åäœäžã€ Fish ã¹ã¯ãªããåäœã§ã¯å®çŸåºæ¥ãªãæ©èœè¿œå ã«åãã ã€ã³ã¹ããŒã«æ¹æ³ â» äºåã« Go ãããŒã«ã«ã«ã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸãã â» ã€ã³ã¹ããŒã«æã«èªåçã« GitHub ãããœãŒã¹ãã¯ããŒã³ããGo ã§ãã€ããªããã«ãããŸãã Fisher ã䜿ã£ãŠã€ã³ã¹ããŒã«ããŸãã fisher install jedipunkz/fuzz.fish äœ¿ãæ¹ ã³ãã³ãå±¥æŽæ€çŽ¢ (Ctrl+R) åºæ¬çãªäœ¿ãæ¹ã§ããFish ããã³ããã§ Ctrl+R ãæŒããšã³ãã³ãå±¥æŽã®ãã¡ãžãŒæ€çŽ¢ãèµ·åããŸãã ...
Discord ãµãŒãéå¶ãè£å©ãã Go å®è£ ã®ãããéçº
èªå㯠Discord ãµãŒãã®éå¶ãè¡ã£ãŠããã®ã§ãããã®éå¶ã®è£å©ãããŠãããããã«ãããéçºãè¡ã£ãŠããŸããGo ã§ Discord ããããéçºãã¡ã³ããŒæ°ã®æšç§»ããã°åæãè¡ãã·ã¹ãã ãæ§ç¯ããŠãã話ãšãŸããã®ä»å¹Ÿã€ãæ©èœããã£ãŠããŠæ¥ã ã®äœæ¥ã®å¹çåãå³ã£ãŠããŸãããã®èšäºã§ã¯ãã®ãããã®ç޹ä»ããããŠé ããŸãã ⻠以åã®èšäº https://jedipunkz.github.io/post/discord-exporter/ ã®å 容ãå«ãã§ããŸã ã·ã¹ãã æ§æ ãã®ã·ã¹ãã ã¯ä»¥äžã®3ã€ã®äž»èŠã³ã³ããŒãã³ãã§æ§æãããŠããŸãã Discord ããã(padawan) - Go 補㮠Discord ããã discord-exporter - Go å®è£ ã® Discord ãµãŒãã¡ããªã¯ã¹åéçš Prometheus Exporter åæåºç€ - DuckDB ãçšããæ§é åãã°ã®åæã³ã³ãã æ§æå³ã¯äžèšã«ãªããŸããPrometheus Exporter 㯠Discord API ããæ å ±ãååŸã Prometheus Server ã«ã¡ããªã¯ã¹ãæäŸãPrometheus Server ã¯ãã®ã¡ããªã¯ã¹ãããŒãªã³ã°ãã¹ãã¬ãŒãžã«ããŒã¿ãèç©ãGrafana ã¯ãããããŒã¿ãœãŒã¹ãšããŠåç §ãpadawan 㯠Go å®è£ ã®ãããã§ Discord API ããã®ä»ã²ãŒã çš API çãåç §ãæ©èœæäŸãããããšé£æ¥ããŠãã DuckDB ã³ã³ããã¯ãããã®ãã°ãåæããããã® Go å®è£ ã® CLI ãåããã æ§æã®è©³çް ãããã®æ§æ padawan ãšååã®ããããšãã®ãããã®ãã°ãåæãã DuckDB ã³ã³ããã§æ§æãããŠããŸãã # padawan/docker-compose.yaml services: padawan: build: context: . dockerfile: Dockerfile volumes: - ./data:/root/data - ./logs:/logs restart: always duckdb: build: context: . dockerfile: Dockerfile.duckdb volumes: - ./logs:/logs:ro restart: "no" profiles: - tools discord-exporter ã®æ§æ Go å®è£ ã® Discord API ããæ å ±ãåéãã Exporter ãäžå¿ãšã Grafana, Prometheus Server ãæ§æãšããŠãæã£ãŠããŸãã ...
Claude Code ãã OpenCode ãžç§»è¡ãã話
jedipunkzð ã§ãã æè¿ãAI ã³ãŒãã£ã³ã°ã¢ã·ã¹ã¿ã³ããšããŠäœ¿ã£ãŠãã Claude Code ãã OpenCode ã«ç§»è¡ããŸããããã®èšäºã§ã¯ OpenCode ã®åªããæ©èœãšããªãç§»è¡ã決ããã®ãã®æ±ºããŠã玹ä»ããŸãã æ³šèš (2025-12-28) OpenCode ãããžã§ã¯ãã¯ã2024幎7æã«éçºå ã® Charm 瀟ã«ããè²·åãšéå¶æ¹éãå·¡ã£ãŠãã³ã³ããªãã¥ãŒã¿ãŒéã§è«äºãçºçããŸããããã®åŸãCharm ç㯠Crush ãšããŠãªãã©ã³ããããçŸåšã® OpenCode 㯠SST çµç¹ã«ãã£ãŠ https://github.com/sst/opencode ã§éçºãç¶ç¶ãããŠããŸããäž¡ãããžã§ã¯ãã¯çŸåšãå¥ã ã®ããŒã«ãšããŠååšããŠããããã®èšäºã§ã¯ SST çã® OpenCode ã«ã€ããŠç޹ä»ããŠããŸãã OpenCode ãšã¯ OpenCode ã¯ãã¿ãŒããã«ããŒã¹ã®ãªãŒãã³ãœãŒã¹ AI ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã§ãã75以äžã® LLM ãããã€ããŒããµããŒãããé«åºŠã«ã«ã¹ã¿ãã€ãºå¯èœãªã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãã å ¬åŒãµã€ã: https://opencode.ai/ å ¬åŒããã¥ã¡ã³ã: https://opencode.ai/docs GitHub: https://github.com/opencode-ai/opencode Claude Code ããç§»è¡ããçç± 1. æ¥æ¬èªå ¥å Claude Code ã§ã¯ãæ¥æ¬èªå ¥åã®å€æäžã«æåãæšªã«ãããçŸè±¡ãé »ç¹ã«çºçããéåžžã«ã¹ãã¬ã¹ã§ããã OpenCode ã§ã¯ããã®åé¡ãçºçããæ¥æ¬èªå ¥åãèªç¶ã«è¡ããŸããå°å³ã§ããäžçªèªåã«ãšã£ãŠå€§ããã¡ãªããã ã£ããããããŸããã 2. æè»ãªããŒãã€ã³ãèšå® OpenCode ã®æå€§ã®é åã¯ãããŒãã€ã³ããèªç±ã«ã«ã¹ã¿ãã€ãºã§ããç¹ã§ãã æ¥æ¬èªå ¥å Claude Code ã§ã¯ãæ¥æ¬èªå ¥åã®å€æäžã«æåãæšªã«ãããçŸè±¡ãé »ç¹ã«çºçããéåžžã«ã¹ãã¬ã¹ã§ããã OpenCode ã§ã¯ããã®åé¡ãçºçãããæ¥æ¬èªå ¥åãèªç¶ã«è¡ããŸããTUIïŒTerminal User InterfaceïŒã®å®è£ ãåªããŠãããIME ãšã®çžæ§ãè¯å¥œã§ãã Emacs 颚ã®ããŒãã€ã³ãããµããŒã Emacs 颚ã®ããŒãã€ã³ããèšå®åºæ¥ãç¹ã¯èªåã«ãšã£ãŠã¯å€§ããã£ãã§ããèšå®ãããšãèªç¶ã« Emacs 颚ã«ãã€ã³ããããŠããããŒããããŸãã Ctrl-a: è¡é ã«ç§»å Ctrl-e: è¡æ«ã«ç§»å Ctrl-h: äžæååé€ Ctrl-k: ã«ãŒãœã«äœçœ®ããè¡æ«ãŸã§åé€ Ctrl-f, Ctrl-b: ååŸã«ç§»å "keybinds": { "input_backspace": "backspace,shift+backspace,ctrl+h", "input_delete_to_line_end": "ctrl+k" }, Enter ãš Ctrl-Enter ã䜿ãåãå¯èœ ç¹ã«äŸ¿å©ãªã®ããæ¹è¡ãšã¡ãã»ãŒãžéä¿¡ãåé¢ã§ããç¹ã§ãïŒ ...
Conftest OPA ã§ Terraform ã³ãŒãéçºã«å¶çŽãèšãã
ããã«ã¡ã¯ãjedipunkzð ã§ãã Conftest ãš Open Policy Agent (OPA) ã䜿ã£ã Terraform ã®ããªã·ãŒæ€èšŒãè¡ã£ãã®ã§ãããèšäºã«ããããšæããŸããããªã·ãæžãããšã§ Terraform ã³ãŒãã«å¶çŽãå ããã»ãã¥ãªãã£èŠä»¶(äŸãã°æå·åèŠä»¶ãããŒãéæŸèŠä»¶ç) ãæºãããããã¹ããã©ã¯ãã£ã¹ã«ãã£ãã€ã³ãã©ãæ§ç¯ã§ããŸããæ¯åã¬ãã¥ãŒã§äººã«ãã§ãã¯ãããããã確å®ã«å¶çŽãå®ããããã«ãªãã®ã§ããããã§ãã ãã®èšäºã§ã¯ãConftest ãš OPA ã䜿ã£ãŠãTerraform ã³ãŒãã«èªåçã«ããªã·ãŒãã§ãã¯ãé©çšããæ¹æ³ããã¥ãŒããªã¢ã«åœ¢åŒã§è§£èª¬ããŸãã 1. Conftest æŠèŠãšåºæ¬ãã¥ãŒããªã¢ã« 1.1 Conftest ãšã¯ïŒ Conftest ã¯ãæ§é åãããèšå®ããŒã¿ã«å¯ŸããŠããªã·ãŒããã¹ãããããã®ããŒã«ã§ããOpen Policy Agent (OPA) ã® Rego èšèªã䜿çšããŠããªã·ãŒãèšè¿°ããããŸããŸãªèšå®ãã¡ã€ã«ãæ€èšŒã§ããŸãã Conftest ã®ç¹åŸŽ æ±çšæ§ãé«ã TerraformïŒ.tfãtfplan.jsonïŒ KubernetesïŒYAMLãJSONïŒ Dockerfile ãã®ä»ã® JSON/YAML ãã¡ã€ã« ã·ã³ãã«ã§è»œé åäžã®ãã€ããªã§åäœ å€éšäŸåãªã CI/CD ã«ç°¡åã«çµ±åå¯èœ OPA ã® Rego èšèªãæ¡çš 宣èšçãªããªã·ãŒèšè¿° 匷åãªãã¿ãŒã³ãããã³ã° ãã¹ãå¯èœãªããªã·ãŒã³ãŒã ãªã Conftest ãå¿ èŠãªã®ãïŒ åŸæ¥ã®ã€ã³ãã©ç®¡çã§ã¯ã以äžã®ãããªèª²é¡ããããŸããã ã¬ãã¥ãŒã§æ¯ååãææïŒãæå·åãæå¹ã«ããŠãã ããããªã©ïŒ 人çãã¹ã«ããã»ãã¥ãªãã£ããŒã« ç°å¢éã§ã®èšå®ã®äžæŽå ã³ã³ãã©ã€ã¢ã³ã¹éåã®èŠèœãšã Conftest ã䜿ãããšã§ããããã®èª²é¡ã解決ã§ããŸãã ããªã·ãŒãã³ãŒãã§èªåãã§ã㯠ãããã€åã«åé¡ãæ€åº äžè²«ããã¬ããã³ã¹ã®å®çŸ ã¬ãã¥ãŒè² è·ã®è»œæž 1.2 ã»ããã¢ãã 1.2.1 Conftest ã®ã€ã³ã¹ããŒã« macOS ã®å ŽåïŒ ...
Prometheus Exporter éçºã§ Discord ãµãŒãéå¶ã®å¥å šåãå³ã
èªå㯠Discord ã§ã²ãŒã ã³ãã¥ããã£ãéå¶ããŠã㊠Discord ãµãŒãã管çããŠããŸããéå¶ã®ããã«å¿ èŠãªæ å ±ãéããããšæãããããéçºã Prometheus Exporter ã®éçºãããŠããŸãããã®èšäºã§ã¯ Prometheus Exporter ã«ã€ããŠæžãããšæããŸãã Discord Exporter ã®æŠèŠ Discord Exporter ã¯ãDiscord ãµãŒãã®çµ±èšæ å ±ã Prometheus ã¡ããªã¯ã¹ãšããŠãšã¯ã¹ããŒãããããŒã«ã§ããã¡ã³ããŒæ°ãšåãã£ãã«ã®ã¡ãã»ãŒãžæ°ãåéã Prometheus Exporter ãšããŠã¡ããªã¯ã¹ã Promehteus Server ã«æäŸãããã®ã§ãã https://github.com/jedipunkz/discord-exporter ã³ãŒãã®èŠæèª¬æ Discord Exporter ã®äž»èŠãªåŠçã解説ããŠãããŸãã Discord API åŒã³åºãåŠç ã¡ã³ããŒæ å ±ã®ååŸ updateMemberCount 颿°ã§ã¯ãDiscord ã® GuildMembers API ãšã³ããã€ã³ããåŒã³åºããŠã¡ã³ããŒæ å ±ãååŸããŸããAPI ã®å¶éã«ããæå€§1000ä»¶åäœã§ã¡ã³ããŒãååŸããååŸããã¡ã³ããŒæ°ã Prometheus ã®ã²ãŒãžã¡ããªã¯ã¹ã«èšå®ããŸãã func updateMemberCount(s *discordgo.Session, guildID string) { members, err := s.GuildMembers(guildID, "", 1000) if err != nil { log.Printf("Error fetching members: %v", err) return } memberCountGauge.Set(float64(len(members))) log.Printf("Updated member count: %d", len(members)) } ã¡ãã»ãŒãžã«ãŠã³ãåŠç countChannelMessages 颿°ã§ã¯ããã£ãã«ã®ã¡ãã»ãŒãžã段éçã«ååŸããŸããChannelMessages API ã§100ä»¶ãã€ã¡ãã»ãŒãžãååŸããæçµã¡ãã»ãŒãžã® ID ãæ¬¡ã®ãªã¯ãšã¹ãã®ã¢ã³ã«ãŒãšããŠäœ¿çšããããšã§ãå šã¡ãã»ãŒãžãæ°ãäžãããŸã§ã«ãŒãåŠçãè¡ããŸãã func countChannelMessages(s *discordgo.Session, channelID string) (int, error) { count := 0 lastID := "" for { messages, err := s.ChannelMessages(channelID, 100, lastID, "", "") if err != nil { return 0, err } if len(messages) == 0 { break } count += len(messages) lastID = messages[len(messages)-1].ID } return count, nil } ã¡ããªã¯ã¹åéã®å®è£ 䞊è¡åŠçãšã¬ãŒãå¶é Discord API ãžã®é床ãªåŒã³åºããé²ããããã»ããã©ã䜿çšãã䞊è¡åŠçå¶åŸ¡ãå®è£ ããŠããŸããæå€§5ãã£ãã«ãåæåŠçã§ããããã«å¶éãåãŽã«ãŒãã³ãåŠçåã«ã»ããã©ãååŸãå®äºåŸã«è§£æŸããä»çµã¿ã§å¹ççãã€å®å šã«è€æ°ãã£ãã«ã䞊è¡åŠçããŸãã ...
DuckDB ã«å ¥éããŠã¿ã
ããã«ã¡ã¯ãjedipunkzð ã§ãã ä»å㯠DuckDB ã«ã€ããŠçè§£ããããšããŸãšããããšæããŸãã DuckDB 㯠PostgreSQL äºæã® SQL ã䜿ã£ãŠãJSON ã CSVãParquet ãªã©ã®ãã¡ã€ã«ãçŽæ¥ã¯ãšãªã§ããããŒã¿ããŒã¹ãšã³ãžã³ã§ãããµãŒããŒã®ã»ããã¢ãããäžèŠã§ãNode.js ã Python ãªã©ã®ã¢ããªã±ãŒã·ã§ã³ã«çµã¿èŸŒãã§äœ¿ãããããããŒã¿åæããã°è§£æã®çšéã§æ³šç®ãããŠããŸãã DuckDB ã®ç¹åŸŽ DuckDB ã¯ä»¥äžã®ç¹åŸŽãæã¡ãŸãã çµã¿èŸŒã¿åããŒã¿ããŒã¹: ãµãŒããŒäžèŠã§ãããã»ã¹å ã§åäœ é«éãªåæåŠç: åæåã¹ãã¬ãŒãžãšãã¯ãã«åå®è¡ã«ãã OLAP ã«æé©å 倿§ãªãã©ãŒããã察å¿: JSONãCSVãParquet ãªã©ãçŽæ¥èªã¿èŸŒã¿ PostgreSQL äºæ SQL: æšæºç㪠SQL ã§æäœå¯èœ 軜é: SQLite ã®ããã«åäžãã€ããªã§åäœ ç°å¢ã»ããã¢ãã ä»å㯠Node.js (TypeScript) ã§ DuckDB ã䜿çšããŸãã åºæ¬çãªã»ããã¢ããã³ãŒãã¯ä»¥äžã®éãã§ãã :memory: ãæå®ããããšã§ãã¡ã¢ãªäžã«ããŒã¿ããŒã¹ãäœæããŸããæ°žç¶åãå¿ èŠãªå Žåã¯ããã¡ã€ã«ãã¹ãæå®ããããšãã§ããŸãã import duckdb from "duckdb"; import { promisify } from "util"; const db = new duckdb.Database(":memory:"); const dbAll = promisify(db.all.bind(db)); const dbClose = promisify(db.close.bind(db)); åºæ¬ç㪠SELECT æäœ ãŸãã¯åºæ¬ç㪠SELECT æäœããèŠãŠãããŸãã ãµã³ãã«ããŒã¿ åŸæ¥å¡ããŒã¿ã JSON ãã¡ã€ã«ã§çšæããŸã (employees.json)ã [ {"id": 1, "name": "Alice", "age": 28, "department": "Sales", "salary": 50000}, {"id": 2, "name": "Bob", "age": 35, "department": "Engineering", "salary": 75000}, {"id": 3, "name": "Charlie", "age": 42, "department": "Sales", "salary": 65000}, {"id": 4, "name": "Diana", "age": 31, "department": "Engineering", "salary": 80000}, {"id": 5, "name": "Eve", "age": 29, "department": "HR", "salary": 55000} ] ã¯ãšãªå®è¡ DuckDB ã§ã¯ãJSON ãã¡ã€ã«ãçŽæ¥ FROM å¥ã§æå®ã§ããŸãã ãã€ã³ãã¯ãCREATE TABLE ãªã©ã®äºåæºåãªãã«ããã¡ã€ã«ãã¹ãæå®ããã ãã§ã¯ãšãªãå®è¡ã§ããç¹ã§ããDuckDB ãèªåçã«ã¹ããŒããæšè«ããããŒã¿ãèªã¿èŸŒã¿ãŸãã ...
Zig å ¥é: æ§æé
ããã«ã¡ã¯ @jedipunkz ã§ãã ã³ãŒãã£ã³ã°ãåŠç¿ããæ©äŒãå¢ãããŠããæäžãªã®ã§ãããèªåã¯åºã¬ã€ã€ã奜ããªã®ãæãåºãããŸãããŸã« Mitchell Hashimoto æ°ã Zig ã®ããšãåããŠãã®ãèŠããŠããã®ã§ãçªç¶ Zig ã«å ¥éããããªããŸããã ãšããããšã§åŸã«èªåã§ãèªã¿è¿ãã圢ã«ããããšæã Zig ã®æ§æéãèšããŸãã NOTICE â» çŸæç¹ã§ Stable 㪠0.15.1 ãåæã«èšããŸãã â» æ°ãåãããšãã«èšèªä»æ§ã®å€åã«å¯Ÿå¿ããŠä¿®æ£ããŠããããšæããŸãã ã¯ããã« ãã®ããã¥ã¡ã³ãã¯ãZig èšèªã®äž»èŠãªæ§æãç¶²çŸ çã«ãŸãšãããã¥ãŒããªã¢ã«ã§ãããã¹ãŠã®ãµã³ãã«ã³ãŒãã¯èšäºã®ä¿®æ£æç¹ã§ Stable ãªãªãªãŒã¹ããŒãžã§ã³ã® Zig ã§åäœç¢ºèªããŠããŸãã ç®æ¬¡ åºæ¬æ§æ æŒç®å å¶åŸ¡æ§æ 颿° é åãšã¹ã©ã€ã¹ æ§é äœ åæåãšãŠããªã³ ãã€ã³ã¿ ãšã©ãŒãã³ããªã³ã° ãªãã·ã§ãã«å ã³ã³ãã€ã«æèšç® ã¡ã¢ãªã¢ãã±ãŒã¿ ãã¹ã ã¢ãžã¥ãŒã« 1. åºæ¬æ§æ 倿°å®£èš Zig ã«ã¯ 2 çš®é¡ã®å€æ°å®£èšããããŸããconst ã¯äžå€å€æ°ïŒåä»£å ¥äžå¯ïŒãvar ã¯å¯å€å€æ°ïŒåä»£å ¥å¯èœïŒã衚ããŸãã const cat: i32 = 5; // const: äžå€å€æ°ïŒåä»£å ¥äžå¯ïŒ var dog: i32 = 10; // var: å¯å€å€æ°ïŒåä»£å ¥å¯èœïŒ dog = 15; // OK // cat = 10; // ãšã©ãŒ: const ã¯å€æŽäžå¯ åæšè« åãæç€ºçã«æå®ããªããŠããã³ã³ãã€ã©ãèªåçã«åãæšè«ããŠãããŸãã ...