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
0

If you are an author whose work is on the ACM DL, I'd like to strongly encourage you to check the accuracy of the AI Summary of your paper, and send feedback to the ACM on this feature and the inaccuracies in your summary. See more here: dl.acm.org/generative-ai/summa

Please boost, repost, and otherwise steal this post to reach other authors.

In long:

The ACM has begun rolling out "Digital Library Premium" features. A very notable one is AI Summaries of papers, which displace the author written abstract with an AI generated summary of the paper on the front page for the paper.

Of the several I've checked, they all contain subtle inaccuracies that would VERY EASILY mislead even experts familiar with the work.

This is a HUGE DISSERVICE TO SCIENCE. These summaries might appear to make science more accessible, but subtle errors introduced into the authors original text is the very opposite of making science more accessible. This will mislead rather than educate.

The ACM has a feature to send feedback on these summaries. Open your DOI, and look for the "Feedback" button on the right of the page, or the "Send Feedback" link in the footer. (You might need to disable ad-blockers, as this services uses mopinion.com)

The ACM is requesting this feedback, and it's important to let them know that such "hallucinations" are not solvable:

These tools were designed in consultation with a diverse group of Digital Library stakeholders and will continue to evolve as Artificial Intelligence advances. We are continuously tuning our Foundational Model to optimize readability and we conduct regular audits for hallucinations and other errors. We are very interested in your thoughts and suggestions- please leave them by clicking the "Feedback" button on the far right of this page. If you find a problem with a specific AI-generated summary, please return to that summary and click the Feedback there.

More aggressively, you might email dl-team@hq.acm.org (also linked in the footer).

Update 1: It seems the ACM no longer displaces the abstract with these summaries, so I can hope this feedback has been helpful in affecting change.

Update 2: It seems these summaries have been generated on papers whose license may forbid it, such as CC-BY-ND. If you have a restrictive license on your paper, you may check whether it’s being followed and send further feedback if not.

0
0
0
0

I'm about to sign off for the year - actually, I was ready to do it yesterday, but then I happened upon a brief piece of writing that was so perfect that I decided I'd do one more edition of Pluralistic for 2025.

--

If you'd like an essay-formatted version of this thread to read or share, here's a link to it on pluralistic.net, my surveillance-free, ad-free, tracker-free blog:

pluralistic.net/2025/12/18/sel

1/

The Earth from space. Standing astride it is the Wall Street 'Charging Bull.' The bull has glowing red eyes. It is haloed in a starbust of red radiating light. Image: Sam Valadi (modified) https://www.flickr.com/photos/132084522@N05/17086570218/ CC BY 2.0: https://creativecommons.org/licenses/by/2.0/
0
0
0

【BUILT-IN PRO 電器專門店特約】近年不少內地旅客來港行山郊遊,露營亦成為熱門選項之一。位於新界東北的塔門近年吸引不少內地旅客到訪,惟近日有廣東網民在小紅書分享於塔門島露營及燒烤的經歷,引起部分網民關注,並提醒在香港非指定地點生火或燒烤,或已違反相關法例。

該名網民在小紅書以《沒有野豬的塔門島露營》為題發文,介紹一行人由市區前往塔門的交通路線,包括乘搭港鐵至大學站B出口,再前往馬料水碼頭轉乘街渡登島,形容「市區坐船一個半小時才到的塔門島,一晚沒有遇到野豬」。帖文亦分享在島上草地搭帳篷、四處觀光及欣賞海島風景的過程。

片段所見,一行人在露營後準備燒烤食材,包括蝦、雞翼、蔬菜及串燒等,並以石頭及鐵絲網臨時搭建燒烤爐,燃點木塊生火燒烤。此外,他們亦自備小型燃氣罐及簡單爐具,即場示範炮製「潮汕烤魷魚」,部分未熟食材則以白灼方式處理,並帶備調味料。翌日畫面亦顯示,一行人煮食公仔麵等早餐,食物相當豐富。

May be an image of grill, outdoors and text that says '内地旅客小紅書分享 KN 塔門露營BBQ 網民提醒 提醒: 非指定地點 生火層違法 BUILT-IN PRO SIEMENSBOSCH SIEMENS LG Whirlpool SAMSUNG 聖誕 大折日 12月17日-1ビH81日 全場過千件產品 低至 低至1折 1折'
0
0
0

DEI losing ground as White men make gains in the boardroom~
"Following the national uprising over the murder of George Floyd, corporations sought out more women and people of color to diversify their boards of directors.

For a time, the once ironclad dominance of men – especially White men – in the corporate boardroom appeared to be slipping. Over the past five years, racial and ethnic representation rose 20% and female representation 18% in companies included in the Russell 3000 index, according to data and analytics firm ISS-Corporate."
And yet... "White men urged to file discrimination claims in anti-DEI escalation"
I hope that anyone filing such a claim realizes what a whiney little punk they are if they do.

usatoday.com/story/money/2025/

0

🍝 저의 주님, 날아다니는 스파게티 괴물 님, 저를 보호하시어 살펴주소서.
😋 어서 구원하시어 혼자 내버려 두지 마소서.

🍝 날아다니는 스파게티 괴물 님께서 여러분과 함께.
😋 또한 주교의 면발과 함께 하소서.
🍝 기도합시다.
지극히 선하신 스파게티 괴물 님, 사람들이 더욱더 완전한 것을 이루기 위해서 서로 협조하여 일하게 해주셨으니,
저희 기도를 들으시고 저희가 항상 우정을 품고, 모든 이들을 위한 박애로 끊임없이 일하게 하소서.

"19. 동료들의 다름을 미트볼의 풍성함으로 받아들이고, 다양성 속에서 참된 조화를 이루게 하소서."

🍝 날아다니는 스파게티 괴물 님께서 여러분과 함께.
😋 또한 주교의 면발과 함께 하소서.
🍝 전능하신 스파게티 괴물 님, 미트볼🧆과 소스🥫와 성면🍝께서는 여기 모인 모든 이에게 강복하소서.
😋 라-멘 🍜.

🍝 날아다니는 스파게티 괴물 님을 찬미합시다.
😋 주님 감사합니다.

2025-12-19T14:00:29+09:00


0
0
0
0
0
0
0

아 그래 그러고 보니 저 의사 막 유명해지려고 할 때 싸불충들이 렌틸콩 같은 식재료 비싼데 어케 사먹냐 하고 싸불 시동 거니까 그나마 싸고 거부감 없는 식재료를 골랐고 왜 사람들이 한 끼 떼울 돈도 없어져 가는지 얘기하다가 좌파쪽 얘기까지 하길래 믿을만 한가? 하고 있었는데 갑좍 오세훈 데려다놓고 빨아주고 있길래 뭐냐 싶더니 그냥 리터럴리 다른 사람이었음ㅋㅋ

0
1
0
1
1
0
0
0
0
0
일단 마스토돈도 reply 는 있고 단순 궁금하다면 그걸 놔두고 더 불편한 boost 메뉴에서 link refer 할 이유도 사실 없는거 같기도 하고 잘 모르겠다
preferences 에 대해 불만가지진 않는다만 reply 를 쓰던 분이 그러면 조금 의아하긴 하지
어떤분은 아에 linked refer 를 꾸준히 사용하시던 분도 있어서
0
0
0
0
0
0
0
1

증명 가능한 조건을 만족하는지만 검사하면 되고 AST 국소 패턴만 다루는 것만 모델링 하면 되서 오히려 구현 자체는 간단해질 것 같음

1
0
0
0
0

notJoon shared the below article:

Claude API의 Request Body 분석

자손킴 @jasonkim@hackers.pub

Claude API의 Request는 크게 4가지 분류를 가지고 있다.

  • System Messages
  • Messages
  • Tools
  • Model & Config

각각은 다음과 같은 역할을 한다.

System Messages

System Messages는 Claude에게 역할, 성격, 제약사항 등을 지시하는 최상위 설정이다. 배열 형태로 여러 개의 시스템 메시지를 전달할 수 있다.

"system": [
  {
    "type": "text",
    "text": "You are Claude Code, Anthropic's official CLI for Claude.",
    "cache_control": {
      "type": "ephemeral"
    }
  },
  {
    "type": "text",
    "text": "You are an interactive CLI tool that helps users with software engineering tasks...",
    "cache_control": {
      "type": "ephemeral"
    }
  }
]

System Messages에는 다음과 같은 내용이 포함된다:

  • Claude의 페르소나 및 역할 정의
  • 보안 및 윤리 가이드라인
  • 응답 형식 및 톤 설정
  • 프로젝트 정보 등 컨텍스트
  • cache_control을 통한 캐싱 설정

Messages

Messages는 userassistant 역할이 번갈아가며 주고받은 대화를 누적하는 배열이다. assistant 메시지는 반드시 모델의 실제 응답일 필요가 없다. 이를 활요해 API 호출 시 assistant 메시지를 미리 작성해서 전달하면, Claude는 그 내용 이후부터 이어서 응답한다. 이를 Prefill 기법이라 한다.

이 대화 기록을 통해 Claude는 맥락을 유지하며 응답한다.

"messages": [
  {
    "role": "user",
    "content": [...]
  },
  {
    "role": "assistant",
    "content": [...]
  },
  {
    "role": "user",
    "content": [...]
  }
]

User Message

User의 content는 주로 두 가지 type으로 구성된다:

1. text - 사용자의 일반 메시지나 시스템 리마인더

{
  "role": "user",
  "content": [
    {
      "type": "text",
      "text": "선물을 주고받는 기능을 위한 entity를 설계하라."
    }
  ]
}

2. tool_result - Tool 실행 결과 반환

{
  "role": "user",
  "content": [
    {
      "tool_use_id": "toolu_01Qj7gnFLKWBNjg",
      "type": "tool_result",
      "content": [
        {
          "type": "text",
          "text": "## Entity 구조 탐색 보고서\n\n철저한 탐색을 통해..."
        }
      ]
    }
  ]
}

Assistant Message

Assistant의 content는 주로 세 가지 type으로 구성된다:

1. text - Claude의 응답 메시지

{
  "type": "text",
  "text": "선물 주고받기 기능을 위한 entity 설계를 시작하겠습니다."
}

2. thinking - Extended Thinking 기능 활성화 시 사고 과정 (signature로 검증)

{
  "type": "thinking",
  "thinking": "사용자가 선물을 주고받는 기능을 위한 entity 설계를 요청했습니다...",
  "signature": "EqskYIChgCKknyFYp5cu1zhVOp7kFTJb..."
}

3. tool_use - Tool 호출 요청

{
  "type": "tool_use",
  "id": "toolu_01Qj7gn6vLKCNjg",
  "name": "Task",
  "input": {
    "subagent_type": "Explore",
    "prompt": "이 NestJS TypeScript 프로젝트에서 entity 구조를 탐색해주세요...",
    "description": "Entity 구조 탐색"
  }
}

User와 Assistant의 협력

Tool 사용 흐름은 다음과 같이 진행된다:

  1. Assistant: tool_use로 Tool 호출 요청
  2. User: tool_result로 실행 결과 반환
  3. Assistant: 결과를 바탕으로 text 응답 또는 추가 tool_use

이 과정에서 어떤 Tool을 사용할 수 있는지는 tools 배열이 정의한다.

Tools

Tools는 Claude가 사용할 수 있는 도구들을 정의하는 배열이다. 각 Tool은 name, description, input_schema 세 가지 필드로 구성된다.

Tool의 기본 구조

"tools": [
  {
    "name": "ToolName",
    "description": "Tool에 대한 설명...",
    "input_schema": {
      "type": "object",
      "properties": {...},
      "required": [...],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  }
]
필드 설명
name Tool의 고유 식별자. Claude가 tool_use에서 이 이름으로 호출
description Tool의 용도, 사용법, 주의사항 등을 상세히 기술. Claude가 어떤 Tool을 선택할지 판단하는 근거
input_schema JSON Schema 형식으로 입력 파라미터 정의

input_schema 구조

input_schema는 JSON Schema draft-07 스펙을 따르며, Tool 호출 시 필요한 파라미터를 정의한다.

"input_schema": {
  "type": "object",
  "properties": {
    "pattern": {
      "type": "string",
      "description": "The regular expression pattern to search for"
    },
    "path": {
      "type": "string",
      "description": "File or directory to search in. Defaults to current working directory."
    },
    "output_mode": {
      "type": "string",
      "enum": ["content", "files_with_matches", "count"],
      "description": "Output mode: 'content' shows matching lines, 'files_with_matches' shows file paths..."
    },
    "-i": {
      "type": "boolean",
      "description": "Case insensitive search"
    },
    "head_limit": {
      "type": "number",
      "description": "Limit output to first N lines/entries"
    }
  },
  "required": ["pattern"],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

properties 내 각 파라미터 정의

각 파라미터는 다음 필드들로 정의된다:

필드 설명
type 데이터 타입 (string, number, boolean, array, object 등)
description 파라미터의 용도와 사용법 설명
enum (선택) 허용되는 값의 목록. 이 중 하나만 선택 가능
default (선택) 기본값

input_schema의 메타 필드

필드 설명
type 항상 "object"
properties 파라미터 정의 객체
required 필수 파라미터 이름 배열. 여기 포함되지 않은 파라미터는 선택적
additionalProperties false면 정의되지 않은 파라미터 전달 불가
$schema JSON Schema 버전 명시

실제 예시: Grep Tool

{
  "name": "Grep",
  "description": "A powerful search tool built on ripgrep\n\n  Usage:\n  - ALWAYS use Grep for search tasks...",
  "input_schema": {
    "type": "object",
    "properties": {
      "pattern": {
        "type": "string",
        "description": "The regular expression pattern to search for in file contents"
      },
      "path": {
        "type": "string",
        "description": "File or directory to search in (rg PATH). Defaults to current working directory."
      },
      "glob": {
        "type": "string",
        "description": "Glob pattern to filter files (e.g. \"*.js\", \"*.{ts,tsx}\")"
      },
      "output_mode": {
        "type": "string",
        "enum": ["content", "files_with_matches", "count"],
        "description": "Output mode. Defaults to 'files_with_matches'."
      },
      "-A": {
        "type": "number",
        "description": "Number of lines to show after each match"
      },
      "-B": {
        "type": "number",
        "description": "Number of lines to show before each match"
      },
      "-i": {
        "type": "boolean",
        "description": "Case insensitive search"
      },
      "multiline": {
        "type": "boolean",
        "description": "Enable multiline mode. Default: false."
      }
    },
    "required": ["pattern"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

이 Tool을 Claude가 호출할 때의 tool_use:

{
  "type": "tool_use",
  "id": "toolu_01ABC123",
  "name": "Grep",
  "input": {
    "pattern": "class.*Entity",
    "path": "src/modules",
    "glob": "*.ts",
    "output_mode": "content",
    "-i": true
  }
}

requiredpattern만 있으므로 나머지는 선택적이다. Claude는 input_schemadescription을 참고하여 적절한 파라미터를 선택한다.

Model & Config

마지막으로 모델 선택과 각종 설정 옵션들이다:

{
  "model": "claude-opus-4-5-20251101",
  "max_tokens": 32000,
  "thinking": {
    "budget_tokens": 31999,
    "type": "enabled"
  },
  "stream": true,
  "metadata": {
    "user_id": "user_2f2ce5dbb94ac27c8da0d0b28dddf815fc82be54e0..."
  }
}
옵션 설명
model 사용할 Claude 모델 (claude-opus-4-5, claude-sonnet-4-5 등)
max_tokens 최대 출력 토큰 수
thinking Extended Thinking 설정 (budget_tokens로 사고 토큰 예산 설정)
stream 스트리밍 응답 여부
metadata 사용자 ID 등 메타데이터

마치며

지금까지 Claude API Request Body의 4가지 핵심 구성 요소를 살펴보았다:

  1. System Messages: Claude의 역할과 행동 방식을 정의
  2. Messages: user-assistant 간 대화 기록을 누적하며, tool_use/tool_result를 통해 Tool과 상호작용
  3. Tools: JSON Schema 기반으로 사용 가능한 도구의 이름, 설명, 입력 파라미터를 정의
  4. Model & Config: 모델 선택, 토큰 제한, 스트리밍 등 설정

이 구조를 알면 Claude가 주고받은 메시지를 어떻게 관리하는지, 도구를 어떻게 사용하는지 이해하고 API를 더 효과적으로 활용할 수 있다.

Read more →
3
0
0
0
0
0
0
0
0
0
0

look I know LLMs are problematic but this is my favorite one and I promise it’s fine, everybody else just isn’t using theirs responsibly enough. it’s great; you should really give it a try. you’ll love it

a point of view still of the interior of the visor game from star trek the next generation season 5 episode 6
0
0
0
0