Skip to content

FormerLab/intercalsky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INTERCALsky

An AT Protocol / Bluesky client where every request is blessed, classified, scored for politeness, and validated by real INTERCAL programs compiled on demand.

Posted to Bluesky. With ACCEPTABLE politeness. PLEASE.


What is INTERCAL

INTERCAL was created in 1972 as a parody of programming languages. It was designed to be as difficult and annoying to use as possible. The compiler counts how many times you say PLEASE. Too few PLEASEs and it refuses to compile:

ICL079I PROGRAMMER IS INSUFFICIENTLY POLITE

Too many PLEASEs and it also refuses:

ICL099I PROGRAMMER IS OVERLY POLITE

The valid range is between one PLEASE per five statements and one per three. This is load-bearing politeness. The bureaucracy is structural.


Design rule

Ada decides. INTERCAL comments, blesses, validates, classifies, scores politeness, and abstains.

Ada makes the HTTP calls. INTERCAL annotates every operation with appropriate ceremony and reluctance. Every request is scored for politeness. Every response is blessed. Every error is rewritten with dignity.


What INTERCAL actually does here

Every incoming request is processed by score_politeness.i before anything else happens. Requests that score TOO_RUDE or TOO_POLITE are rejected with an error rewritten by rewrite_error.i.

Accepted requests are then:

  • Blessed by bless_request.i
  • Classified by classify_request.i
  • Commented on by operation-specific programs (login_commentary.i, comment_timeline.i)
  • Validated by validate_post.i before posting

All INTERCAL programs are compiled by ick on first invocation and cached. The PLEASE ratios are calibrated to land in the acceptable window.


The INTERCAL programs

Program Output
score_politeness.i ACCEPTABLE
bless_request.i the request has been acknowledged with insufficient but acceptable groveling
classify_request.i administratively regrettable but permissible
login_commentary.i authentication has proceeded with ceremonial reluctance
validate_post.i ALLOW
rewrite_error.i INTERCALsky regrets the administrative unpleasantness
comment_timeline.i the timeline has been delivered with inadequate ceremony
ping_pong.i pong, if you insist
about.i INTERCALsky regrets to inform you that it is operational
abstain_posting.i posting has been abstained from
reinstate_posting.i posting has been reinstated
apologize.i INTERCALsky sincerely regrets the inconvenience, such as it is

Extended command syntax

INTERCALsky accepts both JSON ops and INTERCAL-style command aliases:

INTERCAL alias Equivalent op
WRITE IN CREDENTIALS login
READ OUT TIMELINE getTimeline
IGNORE POST createPost
ABSTAIN FROM POSTING abstain from all further posts
REINSTATE POSTING reinstate posting

Stack

Your JSON line
  → Ada: parse and route
  → INTERCAL: score politeness
  → INTERCAL: bless request
  → INTERCAL: classify / validate / comment
  → Ada: call bsky.social XRPC via libcurl
  → Ada: return JSON with blessing, classification, politeness score

Prerequisites

  • gprbuild and GNAT (Ada compiler)
  • libcurl-dev
  • ick (C-INTERCAL compiler): apt install intercal

Build

cd ada
gprbuild -P intercalsky_core.gpr -f

Run

cd /path/to/intercalsky

printf '{"op":"ping","params":{}}\n' | ./ada/bin/main

Example response:

{
  "ok": true,
  "result": {
    "response": "pong, if you insist",
    "blessing": "the request has been acknowledged with insufficient but acceptable groveling",
    "politeness": "ACCEPTABLE"
  }
}

Login and post:

printf '{"op":"login","params":{"identifier":"you.bsky.social","password":"your-password"}}\n' | ./ada/bin/main
printf '{"op":"createPost","params":{"text":"Posted with ACCEPTABLE politeness. PLEASE."}}\n' | ./ada/bin/main

INTERCAL runtime notes

ick must run from the same directory as the source file. The run script handles this. If ick is not found, the bridge falls back to hardcoded responses with the correct tone.

The PLEASE ratio in each program is approximately 1-in-4, placing it safely within the acceptable window. The compiler has been consulted on this matter and has, with ceremonial reluctance, agreed.


Part of the Former Lab AT Protocol client series

  • Fortransky — Fortran
  • Assemblersky — x86 Assembly
  • Cobolsky — COBOL [NON-PUBLIC - RELEASE SOON]
  • Adatalksky — Ada + Pharo Smalltalk [NON-PUBLIC - RELEASE SOON]
  • Malbolgesky — Malbolge [NON-PUBLIC - HELL RELEASED SOON]
  • INTERCALsky — INTERCAL ← you are here

Each one is a proof that the AT Protocol works regardless of what's on the other end.


Ada carries the packets. INTERCAL carries the meaning.

About

AT Protocol client where every request is blessed, classified, and scored for politeness by real INTERCAL programs. Ada carries the packets. INTERCAL carries the meaning

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors