What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

0
0
0
0
0

「この食材は63度で3時間加熱するのが一番美味しいんだよねー」
温度計とタイマーを凝視し、数字の奴隷となった哀れな美食家気取り!
タンパク質の変質をミリ単位で制御しようとする傲慢な計算の臭いを嗅ぎつけ、バイオゴリラが調理場の壁を粉砕して乱入!
「ジャングル ヒ ヲ トオセバ ゼンブ ウマイ! チマチマ シテルマニ ヨコドリ サレル!」
圧倒的暴力が低温調理器を、真空パックの肉を、サマンサタバサのランチトートを、厳密な温度管理表ごと粉砕する!
ジャングルの火加減は「燃えているか」「燃えていないか」、ただそれだけなのだ!

0

Years ago, Vercel scraped all the email addresses associated with my Github account and added them to their marketing lists. They still send me emails, with no unsubscribe option, because they insist I'm a customer. (I am not. Oxide, my employer, used Vercel.)

This should be illegal, but I'm in the US, so.

I've been musing on how to raise the cost of this behavior. My current leading contender: for each email I receive, generate 5-10 promising sounding leads using LLMs to engage their sales team and go nowhere.

0
0
1
0
1
0
0
0
中央集権SNSのアカウント作成三原則、「切迫性」「非代替性」「一時性」かもしえれない

(切迫性:登録しなければ直ちに影響が生じる、非代替性:分散SNSでは十分な機能が果たせない、一時性:将来的に分散が可能になれば撤退する)
1
0
0

극우 작업계정이 성소수자 남미새 플로우 거두고 다같이 동남아 다문화 혐오로 틀은거 같더라구요 저 앞에는 그래도 타격감이 적었는데 동남아 다문화는 어? 이거 될거같다는 느낌이 짙어서 그러는듯

RE: https://bsky.app/profile/did:plc:th4e6756d4s5v54vm62yhzci/post/3mevontho6s2i

0
0
1
0

💫 "The fabric of democracy is always fragile everywhere because it depends on the will of citizens to protect it, and when they become scared, when it becomes dangerous for them to defend it, it can go very quickly."

Margaret Atwood

0
0
0
0
0

아니... 사촌형이 외삼촌댁 오면서 유기당한 강아 대려왔어....ㅠㅠㅠㅠ 애가 샴푸냄새 나는게 관리된 강아인데, 상처도 너무 많고 애가 사시나무 떨듯 떨어.... 그냥 고속도로 길가에 버려져있었대요.. 어떤 인간말종이 귀성길 왔다가 버리고 갔나봐..

0
1
0
0
0
0

그런데 가만히 생각해보면, 지금 현재 이주 노동자들이 하고 있는 업종의 일을 하겠냐? 하고 질문했을 때, 과연 하겠다 라는 답이 나올것인가 의문이 들지 않을 수 없음. (그것과 별개로 이주 노동자의 노동환경은 당연히 개선되어야하고.)

RE: https://bsky.app/profile/did:plc:25rvwhcxglyb2f4owatk7oyg/post/3mevpolpfm222

0
0
0
1
0
0
1
0
0
0

How to write code on your no-toolchain, no-documentation, and no-storage 1990s Chinese <del>totally-legal Famicom game console</del> educational home computer? No worries! You can find useful assembly routines on your own! Just dump the whole BASIC cartridge ROM via PEEK using this handy 6502 decoding script! ​:blobcatfacepalm:​ The next section also gives you a typed-in ROM monitor. Absolutely disastrous learning experience. But you know it's truly only possible on a 6502 - the disassembler fits in just 4 pages. Steve Wozniak is going to either be amazed or have a heart attack if someone told him this was how 1990s home computers worked in China.

第二节 6527 反汇编

为方便读者阅读内存 ROM 中的系统程序,学习编程技巧,现提供一个用 F BASIC 语言编写的 6527 反汇编程序,程序清单见 No. 4-8,本程序适用于任何版本的 F BASIC 语言系统。

在输入程序 No. 4-8 的数据语句行时,要注意每一个助记词中的空格。DATA 语句中的数据是按助记符的字符顺序装入的,如欲加快反汇编的运行速度,可调整 DATA 语句中的数据次序,把最常用的指令靠前放置。注意——DATA 中的数据每三个为一组,第一个为指令代码,第二个为汇编指令格式,第三个为指令的字节数。

5 REM No. 4-8 6527 反汇编
10 CLS: INPUT "输入反汇编首地址 &H"; N$: N= VAL("&" + N$)
20 PRINT : DD=N : GOSUB 2000
30 AA=PEEK(N); I=0; RESTORE
40 SS=N : GOSUB 1000 : N = N + 1
50 READ A$, B$, C : A=VAL("&" + A$) : IF AA=A THEN 80
60 I=I + 1 : IF I < 151 THEN 50
70 BS="??? : C = 1
80 IF C=1 THEN POKE 72, 15: PRINT B$ ; : GOTO 20090 SS=N : GOSUB 1000 : N=N + 1
100 IF C=2 THEN 120
110 SS=N : GOSUB 1000 ; N=N + 1
120 POKE 72, 15
130 FOR K=I TO LEN(B$) : D$=MID$(B$,K,1)
140 IF D$="3" THEN GOSUB 1100
150 IF D$="2" THEN SS=N-1 : GOSUB 1000 ; GOTO 190
160 IF D$="1" THEN SS=N-1 : GOSUB 1000 ; GONO 190
170 IF D$="/" THEN D$=","
180 PRINT D$ ;
190 NEXT
200 H=H+1 : IF H<20 THEN 20
210 PAUSE : H=0 : GOTO 20
1000 SS$=HEX$(PEEK(SS))
1010 IF LEN(SS$)=1 THEN SS$="0" + SS$
1020 PRINT SS$ ; : RETURN
1100 S=VAL("&"+SS$) ; IF S<128 THEN E=N+S A: GOTO 1120
1110 E=N-256+1
1120 DD=E : GOSUB 2000
1130 RETURN 190
2000 DD$=HEX$(DD)
2010 IF LEN(DD$)<4 THEN DD$="0"+DD$ : GOTO 2010
2020 PRINT DD$ "" ; : RETURN
220 DATA 69, ADC #$2,2,6D,ADC $20,3,65,ADC $2,2,61,
    ADC $(2/X),2,71,ADC ($2)/Y,2,75,ADC $2/X,3,7D,
    ADC $20/X,3,79,ADC $21/Y,3,29,AND #$2,2,2D,AND
    $21,3,25,ASD $4,4,41,AND ($2/X),2
230 DATA 31,AND ($2)/Y,2,35,AND $2/X,2,3D,AND $21/X,    3,39,AND $21/Y,3,E,ASL $21,3,6,ASL $2,2,A,ASL,1,
    16,ASL $2/X,2,1E,ASL $21/X,3,90,BCC $3,2,B0,BCS 3,
    2,F0,BEQ $3,2,D0,BNE $3,2,50,BVC $3,2
240 DATA 70,BVS 3,2,30,BMI $3,2,10,BPL $3,2,24,BIT $2,
    2,2C,BIT $21,3,0,BRK,1,18,CLC,1,D8,CLD,1,58,CLI,1,B8,
    CLV,1,C9,CMP #$2,2,CD,CMP $21,3,C1,CMP ($2/
    X),2,D1,CMP ($2)/Y,2,D3,CMP $2/X,2,
250 DATA DD,CMP $21/X,3,D9,CMP $21/Y,3,C5,CMP $2,2,
    E0,CPX #$2,2,E4,CPX $2,2,EC,CPX $21$3,C0,CPY #$
    2,2,C4,CPY $2,2,CC,CPY $21,3,C6,DEC $2,2,D6,DEC 2/
    X,2,CE,DEC $)1,3,DE,DEC $21/X,3
260 DATA CA,DEX,1,88,DEY,1,49,EOR #$2,2,45,EOR $2,2,
    55,EOR $2/X,2,4D,EOR $21,3,5D,EOR $21/X,3,59,EOR
    $21/Y,3,41,EOR ($2/X),2,51,EOR ($2)/Y,2,E6,INC
    $2,2,F6,INC $2/X,2,EE,INC $21,3
270 DATA FE,INC $21/X,3,E8,INX,1,C8,INY,1,4C,JMP $21,
    3,6C,JMP ($21),3,20,JSR $21,3,A9,LDA #$2,2,A5,LDA
    $2,2,B5,LDA $2/X,2,AD,LDA $21,3,BD,LDA $21/X,3,
    B9,LDA $21/Y,3,A1,LDA ($2/X),2,B1,LDA ($2)/Y,2
280 DATA A2,LDX #$2,2,A6,LDX $2,2,B6,LDX $2/Y,2,AE,
    LDX $21,3,BE,LDX $21/Y,3,A0,LDY #$2,A,A4 LDY
    $2,2,B4,LDY $2/X,2,AC,LDY $21,3,BC,LDY $21/X3,
    4A,LSR,1,46,LSR $2,2,56,LSR $2/X,2,4E,LSR $21,3
290 DATA 5E,LSR $21/X,3,EA,NOP,1,9,ORA #$2,2,5,ORA
    $2,2,15,ORA $2/X,2,D,ORA $21,3,1D,ORA $21/X,3,
    19,ORA $21/Y,3,1,ORA ($2/X),2,11,ORA ($2)/Y,2,48,
    PHA,1,8,PHP,1,68,PLA,1,28,PLP,1,2A,ROL,1
300 DATA 26,ROL $2,2,36,ROL $2/X,2,2E,ROL $21,3,3E,
    ROL $21/X,3,6A,ROR,1,66,ROR $2,2,76,ROR $2/X,2,
    6E,ROR $21,3,7E,ROR $21/X,3,40,RTI,1,60,RTS,1,E9
    SDC #$2,2,E5,SBC $2,2,F5,SBC $2/X,2310 DATA ED,SDC $21,3,FD,SDC $21,2,38,SEC,1,F8,SED,1,
    78,SEI,1,85,STA $2,2,95,STA $2/X,2,8D,STA $21,3,
    9D,STA $21/X,3,99,STA $21/Y,3
320 DATA 81,STA ($2/X),2,91,STA ($2)/Y,2,86,STX $2,2,
    96,STX $2/Y,2,8E,STX $21,3,84,STY $2,2,94,STY $2/
    X,2,8C,STY $21,3,AA,TAX,1,A8,TAY,1,BA,STX,1,8A,
    TXA,1,9A,TXS,1,98,TYA,1

程序输入完毕,检查无误后运行程序,根据提示,直接输入十六
进制的反汇编起始地址,回车后即刻开始反汇编。每反汇编二十行
自动暂停,按任一键后继续反汇编。按 STOP 键后停止反汇编。

程序 No. 4-8 可反汇编出任一起始地址的内存程序,其反汇编格
式与中华学习机的小汇编完全相同。

How do pirated Nintendo N-in-1 game cartridges work? In the 1990s China, it was not a NESdev page for people with too much time, it was Serious Business! With its own textbook reviewed by EE professors at a top university. Because as we all know, they were for <del>game consoles</del> educational home computers, so the engineering knowledge is of uttermost importance! ​:blobcatlul:

第四节 低 K 节目合卡

由于多游戏节目合卡中关系到多个游戏节目的程序地址和字模地址的段切换,故其电路结构要比单节
目卡复杂的多。16 合 1 黄金合卡就是较典型的一个。16 合 1 卡的节目清单如下:

16 IN 1

超级玛丽 SUPER MARIO
撞球 LUNAR BALL
超时空要塞 MACROSS
火箭车 ROAD FIGHT
机车大战 EXCITE BIKE
马戏团 CIRCUS
魔鬼世界 DEVIL WORLD
接龙 CLU CLU LAND
大金刚 DONKEY KONG
金块一代 LODE RUNNER
金块二代 LODE RUNNER 2
猫捉老鼠 MAPPY
水管一代 MARIO BROS
星际大战 STAR JUSTER
爱的小屋 MILK AND NUTS
魂斗罗一代 CONTORA

显然,16 合 1 卡有一个 128 K 节目(魂斗罗)、一个 40 K 节目(超级玛丽)和 14 个 24 K 节>目共一兆位容量的存储器构成。16 合 1 游戏卡的电路原理如图 4-7 所示。

16 合 1 游戏卡中,各游戏节目的字模切换数据存储为 8K 字节的动态随机存储器,他没有存储体的
切换问题,每个游戏…………A16 的控制与切换数据的 D2、D3 位以及 CPU 的 A14 有关。当 D2 = 1 时 A16 = 1;当 D3 = 0>、CPU 的 A14 = 1 时 A16 = 1。

IC1、IC3 则直接与 CPU 的 A14 地址线相连。显然,ROM 的
A14 地址信号受切换数据的 D7、D6、D3、D0 位和 CPU 的 A14
地址信号控制。他们之间的对应关系见表 4-7。

表 4-7 ROM 的 A14 信号与 D7、D6、D3、D0 和 CPU 的 A14 的对应关系

             输入                        输出
D7B D6A D0QA CPUA14 D3QD IC0 IC1 IC2 IC3 1YA14
 0   0   0     0     0    0   0   0   0    0
 0   0   0     0     1    0   0   0   0    0
 0   0   0     1     0    1   1   1   1    1
 0   0   0     1     1    0   1   0   1    0
 0   0   1     0     0    1   0   1   0    0
 0   0   1     0     1    1   0   1   0    0
 0   0   1     1     0    1   1   1   1    1
 0   0   1     1     1    1   1   1   1    1
 0   1   0     0     0    0   0   0   0    0
 0   1   0     0     1    0   0   0   0    0
 0   1   0     1     0    1   1   1   1    1
 0   1   0     1     1    0   1   0   1    1
 0   1   1     0     0    1   0   1   1    0
 0   1   1     0     1    1   0   1   0    0
 0   1   1     1     0    1   1   1   1    1
 0   1   1     1     1    1   1   1   1    1
 1   0   0     0     0    0   0   0   0    0
 1   0   0     0     1    0   0   0   0    0
 1   0   0     1     0    1   1   1   1    1
 1   0   0     1     1    0   1   0   1    0
 1   0   1     0     0    1   0   1   0    0
 1   0   1     0     1    1   0   1   0    0
 1   0   1     1     0    1   1   1   1    1
 1   0   1     1     1    1   1   1   1    1
 1   1   0     0     0    0   0   0   0    0
 1   1   0     0     1    0   0   0   0    0
 1   1   0     1     0    1   1   1   1    1
 1   1   0     1     1    0   1   0   1    1
 1   1   1     0     0    1   0   1   0    0
 1   1   1     0     1    1   0   1   0    0
 1   1   1     1     0    1   1   1   1    1

A15 的控制与切换数据的 D3、D3 位以及 CPU 的 A14 有关。当 D1 = 1 时 A15 = 1;当 D3 = 0、CPU 的 A14 = 1 时 A15……五、16 合 1 卡中节目选择的软件处理

为使读者对合卡节目中节目的选择和片选信号、段选信号、横纵向信号的产生控制有一个明确的概念
和认识,特将 16 合 1 游戏卡的菜单处理程序列出,并注以简要说明:

复位程序入口
E000 4C0AE0 JMP $E00A
E003 4C38E0 JMP $E008
E006 4C09E0 JMP $E009

中断处理。作用:根据选项移动按键选项箭头标志。

E00A 48     PHA
E00B A902   LDA #$02
E00D 8D1440 STA $4014
E010 E605   INC $05
E012 A505   LDA $05
E014 291F   AND #$1F
E016 C910   CMP #$10
E018 A92B   LDA #$2B    ; $05 单元控制箭头的闪烁周期
L01A 9002   BCC $E01E
E01C A924   LDA #$24
E01E 8D0102 STA $0201   ; 卡通块在字库中的序号为 24H
E021 A506   LDA $06
E023 0A     ASL
0

How to write code on your no-toolchain, no-documentation, and no-storage 1990s Chinese <del>totally-legal Famicom game console</del> educational home computer? No worries! You can find useful assembly routines on your own! Just dump the whole BASIC cartridge ROM via PEEK using this handy 6502 decoding script! ​:blobcatfacepalm:​ The next section also gives you a typed-in ROM monitor. Absolutely disastrous learning experience. But you know it's truly only possible on a 6502 - the disassembler fits in just 4 pages. Steve Wozniak is going to either be amazed or have a heart attack if someone told him this was how 1990s home computers worked in China.

第二节 6527 反汇编

为方便读者阅读内存 ROM 中的系统程序,学习编程技巧,现提供一个用 F BASIC 语言编写的 6527 反汇编程序,程序清单见 No. 4-8,本程序适用于任何版本的 F BASIC 语言系统。

在输入程序 No. 4-8 的数据语句行时,要注意每一个助记词中的空格。DATA 语句中的数据是按助记符的字符顺序装入的,如欲加快反汇编的运行速度,可调整 DATA 语句中的数据次序,把最常用的指令靠前放置。注意——DATA 中的数据每三个为一组,第一个为指令代码,第二个为汇编指令格式,第三个为指令的字节数。

5 REM No. 4-8 6527 反汇编
10 CLS: INPUT "输入反汇编首地址 &H"; N$: N= VAL("&" + N$)
20 PRINT : DD=N : GOSUB 2000
30 AA=PEEK(N); I=0; RESTORE
40 SS=N : GOSUB 1000 : N = N + 1
50 READ A$, B$, C : A=VAL("&" + A$) : IF AA=A THEN 80
60 I=I + 1 : IF I < 151 THEN 50
70 BS="??? : C = 1
80 IF C=1 THEN POKE 72, 15: PRINT B$ ; : GOTO 20090 SS=N : GOSUB 1000 : N=N + 1
100 IF C=2 THEN 120
110 SS=N : GOSUB 1000 ; N=N + 1
120 POKE 72, 15
130 FOR K=I TO LEN(B$) : D$=MID$(B$,K,1)
140 IF D$="3" THEN GOSUB 1100
150 IF D$="2" THEN SS=N-1 : GOSUB 1000 ; GOTO 190
160 IF D$="1" THEN SS=N-1 : GOSUB 1000 ; GONO 190
170 IF D$="/" THEN D$=","
180 PRINT D$ ;
190 NEXT
200 H=H+1 : IF H<20 THEN 20
210 PAUSE : H=0 : GOTO 20
1000 SS$=HEX$(PEEK(SS))
1010 IF LEN(SS$)=1 THEN SS$="0" + SS$
1020 PRINT SS$ ; : RETURN
1100 S=VAL("&"+SS$) ; IF S<128 THEN E=N+S A: GOTO 1120
1110 E=N-256+1
1120 DD=E : GOSUB 2000
1130 RETURN 190
2000 DD$=HEX$(DD)
2010 IF LEN(DD$)<4 THEN DD$="0"+DD$ : GOTO 2010
2020 PRINT DD$ "" ; : RETURN
220 DATA 69, ADC #$2,2,6D,ADC $20,3,65,ADC $2,2,61,
    ADC $(2/X),2,71,ADC ($2)/Y,2,75,ADC $2/X,3,7D,
    ADC $20/X,3,79,ADC $21/Y,3,29,AND #$2,2,2D,AND
    $21,3,25,ASD $4,4,41,AND ($2/X),2
230 DATA 31,AND ($2)/Y,2,35,AND $2/X,2,3D,AND $21/X,    3,39,AND $21/Y,3,E,ASL $21,3,6,ASL $2,2,A,ASL,1,
    16,ASL $2/X,2,1E,ASL $21/X,3,90,BCC $3,2,B0,BCS 3,
    2,F0,BEQ $3,2,D0,BNE $3,2,50,BVC $3,2
240 DATA 70,BVS 3,2,30,BMI $3,2,10,BPL $3,2,24,BIT $2,
    2,2C,BIT $21,3,0,BRK,1,18,CLC,1,D8,CLD,1,58,CLI,1,B8,
    CLV,1,C9,CMP #$2,2,CD,CMP $21,3,C1,CMP ($2/
    X),2,D1,CMP ($2)/Y,2,D3,CMP $2/X,2,
250 DATA DD,CMP $21/X,3,D9,CMP $21/Y,3,C5,CMP $2,2,
    E0,CPX #$2,2,E4,CPX $2,2,EC,CPX $21$3,C0,CPY #$
    2,2,C4,CPY $2,2,CC,CPY $21,3,C6,DEC $2,2,D6,DEC 2/
    X,2,CE,DEC $)1,3,DE,DEC $21/X,3
260 DATA CA,DEX,1,88,DEY,1,49,EOR #$2,2,45,EOR $2,2,
    55,EOR $2/X,2,4D,EOR $21,3,5D,EOR $21/X,3,59,EOR
    $21/Y,3,41,EOR ($2/X),2,51,EOR ($2)/Y,2,E6,INC
    $2,2,F6,INC $2/X,2,EE,INC $21,3
270 DATA FE,INC $21/X,3,E8,INX,1,C8,INY,1,4C,JMP $21,
    3,6C,JMP ($21),3,20,JSR $21,3,A9,LDA #$2,2,A5,LDA
    $2,2,B5,LDA $2/X,2,AD,LDA $21,3,BD,LDA $21/X,3,
    B9,LDA $21/Y,3,A1,LDA ($2/X),2,B1,LDA ($2)/Y,2
280 DATA A2,LDX #$2,2,A6,LDX $2,2,B6,LDX $2/Y,2,AE,
    LDX $21,3,BE,LDX $21/Y,3,A0,LDY #$2,A,A4 LDY
    $2,2,B4,LDY $2/X,2,AC,LDY $21,3,BC,LDY $21/X3,
    4A,LSR,1,46,LSR $2,2,56,LSR $2/X,2,4E,LSR $21,3
290 DATA 5E,LSR $21/X,3,EA,NOP,1,9,ORA #$2,2,5,ORA
    $2,2,15,ORA $2/X,2,D,ORA $21,3,1D,ORA $21/X,3,
    19,ORA $21/Y,3,1,ORA ($2/X),2,11,ORA ($2)/Y,2,48,
    PHA,1,8,PHP,1,68,PLA,1,28,PLP,1,2A,ROL,1
300 DATA 26,ROL $2,2,36,ROL $2/X,2,2E,ROL $21,3,3E,
    ROL $21/X,3,6A,ROR,1,66,ROR $2,2,76,ROR $2/X,2,
    6E,ROR $21,3,7E,ROR $21/X,3,40,RTI,1,60,RTS,1,E9
    SDC #$2,2,E5,SBC $2,2,F5,SBC $2/X,2310 DATA ED,SDC $21,3,FD,SDC $21,2,38,SEC,1,F8,SED,1,
    78,SEI,1,85,STA $2,2,95,STA $2/X,2,8D,STA $21,3,
    9D,STA $21/X,3,99,STA $21/Y,3
320 DATA 81,STA ($2/X),2,91,STA ($2)/Y,2,86,STX $2,2,
    96,STX $2/Y,2,8E,STX $21,3,84,STY $2,2,94,STY $2/
    X,2,8C,STY $21,3,AA,TAX,1,A8,TAY,1,BA,STX,1,8A,
    TXA,1,9A,TXS,1,98,TYA,1

程序输入完毕,检查无误后运行程序,根据提示,直接输入十六
进制的反汇编起始地址,回车后即刻开始反汇编。每反汇编二十行
自动暂停,按任一键后继续反汇编。按 STOP 键后停止反汇编。

程序 No. 4-8 可反汇编出任一起始地址的内存程序,其反汇编格
式与中华学习机的小汇编完全相同。
0
0

Kimi Claw - OpenClaw를 클라우드에 원클릭 배포해서 사용하기
------------------------------
-
OpenClaw 를 Kimi 플랫폼을 통해 *클라우드에 원클릭으로 몇 초안에 배포* 가능
- 복잡한 설정 없이 *24시간 온라인 상태* 로 유지되며, 즉시 사용 가능한 형태로 제공됨
- *Kimi K2.5 Thinking* 이 적용되어 있으며, 다양한 스킬을 내장하고 여러 *메시징 앱* 에서 자유롭게 대화 가능
- 사용자는 기존…
------------------------------
https://news.hada.io/topic?id=26728&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

1

💫 "The fabric of democracy is always fragile everywhere because it depends on the will of citizens to protect it, and when they become scared, when it becomes dangerous for them to defend it, it can go very quickly."

Margaret Atwood

0
0
0

Why I made gaji - TypeScript DSL for GitHub Actions with auto codegen

개발곰 @gaebalgom@hackers.pub

The developer of gaji introduces a tool designed to replace traditional YAML-based GitHub Actions with TypeScript. Inspired by experiences at the Toss Client DevOps Team, the author argues that YAML is fundamentally ill-suited for expressing complex behaviors and lacks necessary type checking, which leads to frequent runtime errors and slow development cycles. Unlike traditional linters that catch errors after they are written, gaji utilizes a Rust-based binary to automatically generate TypeScript types directly from action metadata, enabling real-time IDE autocomplete and compile-time validation. The post compares gaji with other tools like actionlint and existing TypeScript workflow libraries, highlighting its unique ability to support custom and internal actions through local code generation. While the tool remains bound by certain platform-level constraints of GitHub Actions, its implementation in complex CI/CD pipelines proves its efficiency in managing intricate workflows. This project offers a compelling solution for developers looking to transform fragile infrastructure configurations into robust, type-safe code.

Read more →
0
0
0
0
1