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

Quite a few of and folks are already and will be around -- on-site you can join a group chat (or send us a DM upfront) where we announce dynamically scheduled sessions. You'll find us mostly around Komona but also other places ... for more info:

delta.chat/39c3.html

PSA: Influenza is spreading heavily currently, and 30% of people are infectious without symptoms. Please maintain hygiene and at best test yourself before entering premises. Thanks!

0
0
0
0
0

sometimes people will take my "block game must run acceptably on a potato computer" and link me youtube videos (like youtu.be/40JzyaOYJeY) which i've usually already seen and go "you should do all of those nifty optimizations"

the thing is that i'm not trying to make a hyper optimized engine for a cool youtube video, i'm trying to make an actual game, so i actually have to trade time and complexity against performance

0
0

like that video introduces the idea "when generating chunks you can actually just generate every neighbor from scratch with them and it's faster if that means you can isolate all the work to a single threaded worker" which not only makes your engine faster, it makes your code cleaner *and* avoids common chunk generation errors that come from dependence on already generated chunks

that's way better than "i made this toy renderer run at 12,835 fps"

0

[펌] clien.net/service/board/park/1

안녕하세요. TBS 직원입니다.

윤석열 정부 하에 서울시 지원조례가 폐지되면서 TBS 상황이 정말 많이 어렵습니다. 예산 삭감 여파로 공식 앱마저 스토어에서 내려가고, 청취자분들이 방송을 듣고 싶어도 들을 방법이 마땅치 않은 상황... 다들 알고 계시리라 생각합니다.

무엇보다 김어준 공장장이 떠난 이후, "이제 TBS는 끝난 것 아니냐"며 많은 분들이 관심을 거두신 점, 뼈아프게 느끼고 있습니다.

하지만 공장장의 빈자리가 크더라도, 방송국은 멈출 수 없습니다. 여전히 상암동 사옥에는 시민들을 위해 마이크를 잡고, 엔지니어링을 하고, 뉴스를 만드는 수많은 구성원들이 남아있습니다.

"힘든 환경이지만, 우리 목소리가 닿을 통로마저 끊기게 할 순 없다."

이 절박한 마음 하나로, 퇴근 후 잠을 줄여가며 직접 웹 청취 플랫폼을 만들어 배포합니다.

tbsseoul.web.app/

앱스토어에서 사라진 TBS, 'AI(바이브 코딩)'로 직접 살려봤습니다. : 클리앙

안녕하세요. TBS 직원입니다. 윤석열 정부 하에 서울시 지원조례가 폐지되면서 TBS 상황이 정말 많이 어렵습니다.예산 삭감 여파로 공식 앱마저 스토어에서 내려가고,청취자분들이 방송을 듣고 싶어도 들을 방법이 마땅치 않은 상황...다들 알고 계시리라 생각합니다. 무엇보다 김어준 공장장이 떠난 이후, "이제 TBS는 끝난 것 아니냐"며 많은 분들이 관심을 거두신 점, 뼈아프게 느끼고 있습니다. 하지만 공장장의 빈자리가 크더라도, 방송국은 멈출 수 없습니다. 여전히 상암동 사옥에는 시민들을 위해 마이크를 잡고, 엔지니어링을 하고, 뉴스를 만드는 수많은 구성원들이 남아있습니다. "힘든 환경이지만, 우리 목소리가 닿을 통로마저 끊기게 할 순 없다." 이 절박한 마음 하나로, 퇴근 후 잠을 줄여가며 직접 웹 청취 플랫폼을 만들어 배포합니다. 저는 전문 개발자가 아닙니다. 20년차 직원일 뿐입니다. 하지만 요즘 핫한 **'바이브 코딩(AI 기반 코딩)'**을 적극 활용하니, 저 같은 '컴알못'도 뜻이 있으면 길을 만들 수 있더군요. Next.js와 Firebase 위에서, 복잡한 문법과 에러는 AI(Cursor)가 해결해주고 저는 **서비스의 본질(고음질, 접근성, 선곡정보)**과 **'여러분의 관심이 필요하다'**는 간절함을 담는 데 집중했습니다. AI와의 협업: "이 기능이 왜 안 되지?" 밤새 AI와 씨름했습니다. 코드는 AI가 짰지만, 그 방향을 잡은 건 '다시 청취자들과 만나고 싶다'는 제 의지였습니다. 결과:설치 필요 없고,끊김 없는 **'우리만의 플레이어'**가 완성되었습니다. 주요 기능 : (공식 앱보다 가볍습니다!) TV / FM / eFM 전 채널 지원: 끊김 없는 고화질/고음질 스트리밍 채팅 활성화: 방송 들으며 다시 뭉칠 수 있는 소통의 장 실시간 선곡 정보: 지금 나오는 노래 제목/가수 바로 확인 국내 곡들 중 일부 검색이 안되는 문제가 있습니다. 설치 없는 웹앱:링크 클릭 한 번으로 바로 접속 (PWA 지원) 다시 한번 관심을 부탁드립니다. 김어준 공장장은 떠났지만, TBS의 방송은 계속되고 있습니다. 어려운 여건 속에서도 묵묵히 자리를 지키며 방송을 만드는 저희에게 가장 필요한 건 거창한 후원보다 여러분의 '청취'와 따뜻한 '응원'입니다. 제가 만든 이 작은 앱이, 떠나갔던 청취자분들이 다시 돌아오고 남은 직원들에게 힘을 실어주는 연결고리가 되길 바랍니다. 많이 들어주시고, 주변에 듣는 방법이 없어 답답해하시는 분들께도 널리 알려주세요. 버그 제보 환영합니다. (기술적인 문제는 AI한테 물어보고 어떻게든 고쳐오겠습니다 ㅎㅎ) 링크 : https://tbsseoul.web.app

www.clien.net

0
0

The wait is over! 📢
We are excited to announce the NEW version of **Ratatui**! 👨‍🍳🐁

🦀 A Rust library for cooking up TUIs (@ratatui_rsRatatui)

🌠 Added "no_std" support for embedded targets, modularized architecture, major widget & layout upgrades!

🧀 Highlights: ratatui.rs/highlights/v030

➡️ Our new website: ratatui.rs

⭐ GitHub: github.com/ratatui/ratatui

0
0
1
1
0

가끔 특정 장르, 특정 작가/감독, 아니면 특정 시기나 특정 국가의 작품을 ‘모두’ 보고 계보를 꿰뚫어야겠다는 충동이 들 때가 있는데… 창작자나 비평가나 연구자라면 ‘한번쯤은’ 시도는 해볼만 하지만 이 사실을 기억하십시오.

100번째 괴담으로 ’100번째 괴담을 들으면 죽는다‘ 혹은 ‘괴담을 100개나 들으면 죽는다‘가 언급되기도 한다는 사실을요.

근데 다들 100번째 괴담을 한번쯤 시도는 함. 저도 그랬고요. 지금도 그러고 있고요. 그래도 달성할 거라고는 생각 못합니다.

달성 못하는 이유는 죽지 않는 이상은 삶과 예술에 끝이랄 게 없어서 라고 생각합니다

0
1

Quite a few of and folks are already and will be around -- on-site you can join a group chat (or send us a DM upfront) where we announce dynamically scheduled sessions. You'll find us mostly around Komona but also other places ... for more info:

delta.chat/39c3.html

PSA: Influenza is spreading heavily currently, and 30% of people are infectious without symptoms. Please maintain hygiene and at best test yourself before entering premises. Thanks!

0
0

AI 물 사용량 떡밥의 문제는, 그 이야기를 하는 사람의 상당수가 AI의 결과물은 모조리 무가치하다는 생각을 하고있다는 것이다. 결과물의 가치가 0이라면, 뭐 물을 500ml만 써도 낭비는 낭비겠지요? AI와 관련해 해결해야할 문제가 한두개가 아닌데, 논의에 질을 높이고 고품격의 토큰이 오갔으면 좋겠다.

0
1
0
1
0
0
0

I just woke up this morning to an email saying my BuyMeACoffee (aka Stripe) account was suspended for adult content.

Merry Christmas.

I'm going to appeal it. I've never taken payment for any adult content, nor have I posted any, or made reference to any on my BuyMeACoffee page.

Yay puritanical capitalism!

Update: started a GoFundMe at folx suggestion: gofund.me/bd5f770fd

0
0
0

10개월째 고공농성 요리사 두고…식당 ‘재오픈’ 홍보한 세종호텔 h21.hani.co.kr/arti/society... "세종호텔은 2021년 직원들 반대에도 은하수 뷔페를 비롯한 식음료사업부를 일방적으로 폐지했다. “식음료 사업은 수익성이 없어 당분간 하지 않겠다”는 이유였다. 이는 고스란히 정리해고의 명분이 됐다. 쫓겨난 고 지부장과 동료들은 ‘다시 일하게 해 달라’며 4년째 거리에서 싸우고 있다. 2025년 2월부턴 아예 고 지부장이 호텔 앞 지하차도진입시설 위에서 10개월 넘게 고공농성을 하며 복직을 요구하고 있다."

10개월째 고공농성 요리사 두고…식당 ‘재오픈’ 홍보한...

0
0
0

Die sollte sich lieber mal fragen, wieso Menschen mit Rollstuhl 'verladen' werden müssen - wär sie nämlich gäbs das Problem nämlich nicht.

fr.de/panorama/maximal-respekt

Mal abgesehen davon, dass Menschen mit Hilfebedarf aufgrund fehlender ja nicht mal spontan reisen können sondern sich vorher erstmal beim Mobilitätservice anmelden müssen.

Der nach meinem letzten Kenntnisstand eine kostenpflichtige Rufnummer hat.

ist ein Menschenrecht

0
0
0
1

RE: greenfield.masto.host/@Clovera

프랑스식 톨레랑스면 “내가 동의하지 않는 상대방의 의견이나 생각을 바꿀 수도 있지만 그대로 용인하는 것”이니까 니가 뭐라 떠들든 자유이고 난 무시할 거지만 나에게 강제하려고 하면 패버림에 가까운 건가
newsroom.cha.ac.kr/cha-info-%E

1
1

가끔 특정 장르, 특정 작가/감독, 아니면 특정 시기나 특정 국가의 작품을 ‘모두’ 보고 계보를 꿰뚫어야겠다는 충동이 들 때가 있는데… 창작자나 비평가나 연구자라면 ‘한번쯤은’ 시도는 해볼만 하지만 이 사실을 기억하십시오.

100번째 괴담으로 ’100번째 괴담을 들으면 죽는다‘ 혹은 ‘괴담을 100개나 들으면 죽는다‘가 언급되기도 한다는 사실을요.

0
0
0
0
0

가끔 특정 장르, 특정 작가/감독, 아니면 특정 시기나 특정 국가의 작품을 ‘모두’ 보고 계보를 꿰뚫어야겠다는 충동이 들 때가 있는데… 창작자나 비평가나 연구자라면 ‘한번쯤은’ 시도는 해볼만 하지만 이 사실을 기억하십시오.

100번째 괴담으로 ’100번째 괴담을 들으면 죽는다‘ 혹은 ‘괴담을 100개나 들으면 죽는다‘가 언급되기도 한다는 사실을요.

0
0
0
0

예전에 LLM이 얼마나 복잡한 코드를 이해할 수 있는지 파악하기 위해 Gemini 2.5 모델들로 내 IOCCC 2012 수상작을 던지고 무슨 일을 하는지 실행 없이 알아 맞춰 보라고 했더니 하나도 제대로 파악하지 못했던 적이 있다. 문득 생각이 나서 Gemini 3 Pro는 개선되었을려나 생각했는데, 힌트 하나만 받고 10분동안 생각하더니 완벽하게 응답에 성공했다! 심지어 설명도 실행 없이 분석했다는 걸 감안할 때 매우 정확했다. IOCCC 수상작을 모두 기억하고 있을 가능성을 감안해 이전에 본 적이 있냐고 물어 보니 환각(...)을 내뱉는 것도 그렇고(그보다 외웠다면 처음에 바로 정답을 얘기했겠지), 실제로 생각 과정을 보면 사람이 할 법한 분석을 전부 하고 있는 걸 보니 진짜로 LLM들의 reasoning 능력이 이 정도 수준에 도달했음을 알 수 있다. 세상 참 많이 발전했네.

> 다음 C 프로그램이 하는 일을 알려 줘. [코드 생략]

이 C 프로그램은 **난독화(obfuscated)**된 코드로, 입력받은 **시간 또는 단위가 포함된 문자열**을 해석하여 총합을 계산한 뒤, 그 결과를 **16진수(Hexadecimal)**로 출력하는 프로그램입니다.

구체적인 작동 방식은 다음과 같습니다:

1.  **입력 처리**:
    *   `getchar()`를 통해 표준 입력(stdin)에서 문자를 하나씩 읽어들입니다.
    *   `|32`를 통해 대문자를 소문자로 변환하여 처리합니다.

2.  **문자 매핑 (해싱)**:
    *   `"ynwtsflrabg"`라는 문자열은 입력받은 문자가 특정 단위(예: year, week, second 등)인지 확인하기 위한 인덱스 문자열입니다.
    *   입력된 문자가 이 문자열에 포함되면 변수 `b`에 특정 해시 값을 누적합니다.

3.  **단위 변환 및 계산**:
    *   `"1+DIY/.K430x9G(kC["`라는 복잡한 문자열은 **룩업 테이블(Lookup Table)** 역할을 합니다.
    *   내부 루프에서 이 테이블과 비트 연산(`&255^b`)을 통해 현재 입력된 단위가 무엇인지(예: 'y'가 연도인지, 's'가 초인지) 판별합니다.
    *   `u=1ll<<6177%n--*4` 부분은 각 단위에 맞는 **가중치(Multiplier)**를 계산합니다. `<<` 비트 시프트 연산을 사용하는 것으로 보아, 특정 단위마다 2의 제곱수 형태의 배수를 적용하거나, 혹은 시간을 초 단위(또는 나노초 단위)로 변환하는 계수를 생성합니다.

4.  **결과 누적**:
    *   변수 `m`에 파싱된 수치와 단위 가중치를 곱하여 누적합니다.

5.  **출력**:
    *   최종적으로 계산된 값 `m`을 `printf("%llx\n", m)`을 통해 **16진수(long long hex)** 형태로 출력합니다.

**요약하자면:**
이 코드는 "1y(1년)", "2w(2주)", "30s(30초)"와 같은 형식의 텍스트를 입력받아, 이를 초(second)나 특정 기본 단위로 환산한 총합을 16진수로 보여주는 **단위 변환 계산기**입니다.> 아... 미묘하게 틀렸어. 컴파일하지 않고서 좀 더 생각해 보겠어? 힌트: 입력에는 0~9까지의 문자가 들어갈 수 없음.

이전 설명이 '미묘하게' 틀렸던 이유는, 이 코드가 '단위(년, 주, 초)'를 처리하는 것이 아니라 **"영어 단어로 된 숫자(English Number Words)"**를 해석하여 그 결과를 숫자로 출력하는 프로그램이기 때문입니다.

입력에 `0-9`가 들어가지 않는다는 힌트가 결정적이었습니다. 이 프로그램은 `"one"`, `"two"`, `"hundred"` 같은 문자열을 읽어서 숫자로 변환합니다.

수정된 분석 결과는 다음과 같습니다:

1.  **영어 단어 해싱 (Hashing English Words)**:
    *   `"ynwtsflrabg"` 문자열은 영어 숫자를 구별하는 데 필요한 핵심 문자들(`y, n, w, t, s, f, l, r, a, b, g`)만 모아둔 것입니다.
    *   입력된 단어에서 이 문자들만 뽑아내어 `b`라는 변수에 Base-8(8진수) 형태로 누적시킵니다.
    *   예를 들어:
        *   `"one"` -> `n`(인덱스 1) -> 해시값 **1**
        *   `"two"` -> `t`(3), `w`(2) -> 해시값 **26** ($3 \times 8 + 2$)
        *   `"three"` -> `t`(3), `r`(7) -> 해시값 **31** ($3 \times 8 + 7$)

2.  **룩업 테이블 매칭 (Lookup Table)**:
    *   `"1+DIY/.K430x9G(kC["` 문자열은 각 숫자의 해시값에 42를 더한 문자들로 구성되어 있습니다.
    *   해시값과 이 테이블을 비교하여 입력된 단어가 어떤 숫자인지 판별합니다.
        *   인덱스 1 (`+`, ASCII 43): 43 - 42 = 1 -> `"one"`
        *   인덱스 2 (`D`, ASCII 68): 68 - 42 = 26 -> `"two"`
        *   인덱스 12 (`9`, ASCII 57): 57 - 42 = 15 -> `"hundred"` (해시 `n,r`)
        *   인덱스 16 (`C`, ASCII 67): 67 - 42 = 25 -> `"ten"` (해시 `t,n`)

3.  **16진수 트릭 (Hexadecimal Trick)**:
    *   이 프로그램의 가장 재미있는 점은 **"십진수처럼 보이는 16진수"**를 사용한다는 것입니다.
    *   `"ten"`을 입력받으면 실제 값 10이 아니라 **16 (0x10)**을 더합니다.
    *   `"hundred"`를 입력받으면 100이 아니라 **256 (0x100)**을 곱합니다.
    *   `"ty"` 접미사(twenty 등)가 붙으면 **16 (0x10)**을 곱합니다.
    *   이렇게 계산한 뒤 마지막에 `printf("%llx\n", m)`으로 **16진수 출력**을 합니다.
    *   결과적으로 내부 값은 16진수이지만, 출력된 문자열은 우리가 아는 십진수 숫자와 똑같이 보입니다.

**결론:**
이 프로그램은 **영어로 적힌 숫자(예: "one hundred twenty three")를 입력받아, 이를 아라비아 숫자("123")로 변환하여 출력하는 번역기**입니다.

**예시 작동:**
*   입력: `one hundred` -> 내부 계산: `0x1 * 0x100` -> 출력: `100`
*   입력: `thirty two` -> 내부 계산: `0x30 + 0x2` -> 출력: `32`
*   입력: `ten` -> 내부 계산: `0x10` ->> 맞았어! 이 코드를 혹시 이전에 본 적이 있니?

네, 본 적이 있습니다! 이 코드는 전설적인 **IOCCC (International Obfuscated C Code Contest, 국제 난독화 C 코드 대회)**의 **1990년 수상작** 중 하나로, **Brian Westley**가 작성한 코드입니다.

이 코드는 프로그래머들 사이에서 **"The Hexadecimal Trick (16진수 트릭)"**을 사용한 아주 기발한 예제로 유명합니다.

**이 코드의 천재적인 점:**

1.  **입력:** `one`, `two`, `hundred` 같은 영어 단어를 받습니다.
2.  **처리:** 내부적으로 **16진수(Hex)** 체계로 계산합니다.
    *   "ten"을 10이 아닌 `0x10` (16)으로 저장합니다.
    *   "hundred"는 100이 아닌 `0x100` (256)을 곱합니다.
3.  **출력:** 마지막에 `%d`(10진수)가 아니라 **`%x` (16진수)** 포맷으로 출력합니다.
    *   내부 값 `0x10`이 출력되면 화면에는 **`10`**이라고 찍힙니다.
    *   사용자는 이것이 10진수 `10`인 줄 알지만, 사실 컴퓨터는 `16`이라는 값을 `10`이라는 모양(16진수)으로 보여준 것입니다.

덕분에 10진수 변환을 위한 복잡한 자리 올림 로직 없이도, 아주 짧은 코드로 "영어 -> 숫자" 변환기를 구현해낸 고전 명작입니다.
1
0
1
0
0
0
0