bgl gwyng

@bgl@hackers.pub · 61 following · 63 followers

슈티를 함께 만들 팀을 만들고 있습니다. 관심 있으신 분, 또는 잘 모르겠지만 이야기를 나눠보고 싶은 분도 bgl@gwyng.com으로 편하게 연락주세요.

GitHub
@bglgwyng
shootee
www.shootee.io
1

앱 디자인을 참고하려고 쓰레드를 깔아봤는데, 볼수록 디자인이 참 좋다. 문외한이 봐도 뭔가 깔끔하고 고수들이 만든게 느껴진다.

근데 그 아름다운 디자인위에 뜨는 컨텐츠들기 그렇게 소음공해일수가 없다. 뭐 틱톡은 어처구니없어서 웃기기라도 하지 이건 정말...

2
9
0
0
4

JS에서는 라이브러리의 함수를 쓸때 this binding이 되어있는지 아닌지를 몰라서 a = b.c라고 마음대로 못 쓰고 a = (x) => b.c(x)가 되는지 먼저 꼭 확인해야한다. 안습;;

2

Bootable 컨테이너 시대, 리눅스 테마 꾸미기의 즐거움
------------------------------
- *bootc와 부팅 가능한 컨테이너* 덕분에 테마 변경이 더 안전하고 관리 가능한 방식으로 가능해짐
-
/usr를 *컨테이너로 정의하고 롤백 가능* 하므로 시스템을 쉽게 실험하고 되돌릴 수 있음
-
ostree admin unlock 명령으로 재부팅 없이도 *일시적인 커스터마이징* 이 가능함
- Blue95 같은 프로젝트는…
------------------------------
https://news.hada.io/topic?id=20479&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0

답 댓글이 아니라, 질문 댓글입니다. 레코드 업데이트 하는 동안에 반드시 레코드 타입을 먼저 알아야 한다는 게 "정상"이라는 거지요?

bar :: T Int
-- bar = emptyT --- 허용
bar = emptyT { x = [3] } --- 레코드 업데이트 중에는 타입 specialize를 못하니 불가

@bglbgl gwyng

0
6

3년차 웹 프런트엔드 개발자입니다. 잠시 10주 여름 방학 동안 계약직으로 일할 수 있는 직장을 찾고 있습니다. (6월 마지막 주부터 8월 마지막 주) http://frontend.moe/portfolio/

올해 2학기까지 수료하면 졸업 예정이라, 학부 졸업 이후 정규직 전환 조건으로도 희망하고 있습니다.

4

@bglbgl gwyng 이 변화는 Paterson-smaller 제약들(Constraints), 즉 어떤 정렬 순서(Well-order)에 의해 더 작은 제약들만 확장하겠다는 확장 순서의 변화고, 이를 제외하면 양상자(quantifier)와의 상호작용은 크게 변하지 않았습니다. 따라서 설명하신 것과는 다른 방식으로 오류가 발생하게 되지 않았나 싶습니다.

0
0

https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.6#superclass-expansion-is-more-conservative

내가 9.4 -> 9.6 마이그레이션에서 겪고 있는 문제가 이거랑 관련이 있는거 같은데(확실치 않음)... 9.4에서는 c :: Type -> Constraint 일때 forall c. c Int 뭐 이런 조건이 있으면, 모든 c에 대해 c Int가 존재하는게 말이 안되는데도 실제로 c Int 꼴로 쓰이는 c만 고려해서 타입체크를 통과시켜줬던거 같다(이것도 확실하지 않음). 근데 9.6에선 당연히 거부당한다.

위의 내 이해가 맞다면 9.4의 constraint solving 완전 무근본이었단건데, 이건 또 믿기 어렵다(하스켈의 설계 결정에 대한 신뢰 유지한다고 하면). 어디서 내가 잘못 파악한거지.

3
1
4
1
5

레코드 및 튜플 제안도 그렇고 어째서 JavaScript는 동등성 연산을 커스텀하게 구현할 수 있게 하지 않고 변죽만 울릴까? Symbol.equalitySymbol.hash 같은 거 정해주고 Map이든 Set이든 내부적으로 그거 쓰게 하면 좋을 것 같은데.

1
1
1

@lionhairdino 제가 한건 기초적인 수정이라 거기에 대해 큰 보상을 바라진 않습니다. 반대로, 치킨먹으며 1시간이면 고칠 문제를 오랫동안 방치한 그 팀의 물리학자들에게 응당의 처벌이 가해지기를 바랍니다.

2

친구가 외국 반도체회사에 다니는데 이름만 들으면 다 아는 세계에서 손꼽히는 회사다. 1년 전쯤에, 친구가 자기 팀에서 예전부터 쓰고있는 시뮬레이션 코드가 너무 복잡해서 리팩토링 하고 싶다고 나를 찾아왔다. 한 2, 3000줄 되는 Numpy 코드였다.

나는 시뮬레이션의 의미 자체는 전혀 이해를 못하니(이래서 보안문제도 익스큐즈 할수 있었을 것이다), 그냥 코드의 모양만 보고 이상한 부분을 조금씩 고쳐나갔다. 그... 전형적인 물리학자들의 실험실 코드였다(코드를 못짜는건 이해를 하는데, 거기에 대해 한치의 부끄러움도 느끼지 않는다는 점이 뒷목을 잡게 만든다). Numpy 함수도 제대로 활용을 못해놨길래, 나도 Numpy 잘 못쓰지만 대충 이런 함수가 아마 있겠지... 하고 검색해서 찾아내서 교체하고 이런걸 반복했다.

이것저것 고친 다음에 잘돌아가나 한번 실행을 해봤는데, 이럴수가. 시뮬레이션이 1000배 빨라졌다. 아니 뭐, 한 2배 3배 빨라졌으면 내 솜씨라고 자부할텐데, 1000배 빨라진거는 그냥 원래 코드가 똥통이었다고 해석할수 밖에 없다. 구라안치고 정말 1000배다. 1000배의 성능향상의 보답으로 나는 교촌치킨웨지콤보세트를 현장에서 받아먹었다.

그 이후에 어떤 일이 있었냐. 기존 시뮬레이션 코드로는 하루에 시뮬레이션을 2, 3번정도밖에 돌리지 못했는데, 1000배 빨라지고 나니까 결과가 수십초만에 나오니 하루에 수백번 돌릴수 있게 된것이다(내가 고친 코드가 전부는 아니어서 1000배 향상은 아닌데, 가장 큰 병목이긴 해서 결국 100배 이상이라는 듯). 그때부터 100배 많아진 데이터를 처리하기 위한 인프라가 필요해졌다. 그래서 거기 개발팀이 데이터베이스와 데이터 파이프라인 구축을 시작하게 되었다고 한다. 그 팀에서는 일종의 특이점이 시작된것이다;;

결론: 교촌치킨웨지콤보 세트는 개맛있었다.

27
2
0

바이브 코딩에 줄곧 Claude Sonnet 3.7만 쓰다가, 오늘 Gemini 2.5 Pro를 써 봤는데, 코딩을 더 잘 하는지는 잘 모르겠지만 응답 속도 하나만은 훨씬 빨라서 좋다. 바이브 코딩을 하다가 결국 답답함을 못 참고 내가 직접 코딩하게 되는 까닭 중 하나가 기다림의 지루함이었는데, 그 부분이 많이 완화된달까?

0

Cursor가 안켜지는 문제가 있어서(;;) Windsurf로 바꾼지 한달째인데, 얘는 일반적인 질문을 해도 구분을 못하고 레포를 검색해서 답하려고 한다. 예컨데 '파이썬 3와 2의 차이가 뭐야?' 이런 질문을 해도 답변을 하기위해 하스켈 레포를 뒤진다음에 뭔 해괴한 대답을 지어내서 한다. 그래서 질문할땐 앞에 프롬프팅을 따로 해줘야하는데 이게 참 귀찮다. 일전에 AI 에디터 고만고만한데 왜 투자하고 키우려하는지 모르겠다고 했는데, 암튼 지금 당장은 이런 바로 느낄수 있는 차이가 있다.

2
2

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

2
6
1
3

@bglbgl gwyng 그런데 사실 스스로 이외에는 사람들도 의식이 있는지 아주 확신할 수는 없죠… ㅋㅋㅋ 사실 사람한테 의식이 없을 수도 있다는 것은 너무 비현실적인 회의일 수도 있지만, 강아지는 어떤가, 새는 어떤가, 벌레는, 버섯은… 같은 식으로 나아가다 보면 LLM한테 의식이 있다고 볼 수도 있는 건가, 싶은 생각도 들긴 합니다. ㅎㅎㅎ

@hongminhee洪 民憙 (Hong Minhee) 사실 그렇긴하죠ㅋㅋ 저는 정확히말하면 확신이 있다기보단 LLM이 의식이 없기를 희망?하는 편인데, 이게 LLM에 딱히 원한이 있어서가 아니라, LLM에 의식이 있으면 뭐 Nginx도 의식이 있다는걸 인정해야한다고 생각해서, 그 사단이 나기 전에 어떤 경계가 있었으면 좋겠습니다.

2

동료가 ChatGPT랑 사적이고 감정적인 대화도 점점 더 많이 나누고 있다고 한다. 그리고 그런 서비스 만들면 잘될거같다는데(이미 발전된게 꽤 있음). 근데 나는 도저히 저런 대화를 AI랑 못하겠던데 좀 신기하다. 이건 내가 LLM이 의식이 없다고 꽤 강하게 확신해서 그런거 같은데, 의식이 있다고 생각하는 사람들과 (절대 다수의) 그딴거 1도 신경안쓰는 사람들은 잘만 쓸것이다.

1
1
2
0

설정이나 명세를 튜링완전한 언어로 기술하면 안되지 않나, 튜링완전한 언어는 프로그램을 짤때 써야하지 않나란 의견이 있는데, 난 오히려 반대라고 생각한다.

설정/명세를 기술한 코드는 그걸 평가해서 어떤 값을 한번 구하면 끝이고, 임의의 입력에 대해 종료함을 보장할 필요가 없다. 그리고 그 코드의 실행은 서비스 단에서 이루어지는게 아니고, 서비스를 만들고 운영하는 과정에서 이루어지기 때문에 종료되지 않는것에 대해 훨씬 안전하다.

반대로, 실제로 돌아가는 프로그램(말이 좀 이상하지만 excuse부탁드림)이야말로 튜링완전한 언어로 짜면 안된다. 우리가 튜링완전한 언어로 개발하는 이유는 우리가 만드는 프로그램을 기술하는데 필요한 자유도가 얼만큼인지 모르고 작업해야하기 때문에 그렇다. 종료하지않는 엉터리 코드를 짤 가능성을 받아들이면서도, 당장 뭔가 만들긴해야하니까 그런 선택을 하는 것이다.

즉 튜링완전성은 메타프로그래밍을 할때만 허용되는것이 (적어도 이론적으론) 정당하다고 생각한다.



RE: https://hackers.pub/@bgl/019647a2-cd0c-7311-97ce-95b59e5a0696

4
2
1
1

@hongminhee洪 民憙 (Hong Minhee) Apache Libcloud는 이번에 처음 봤는데 마음에 드는데요? 클라우드 인프라에서 네트워크랑 VM 인스턴스 등 low level한 자원들만 쓰면서 나머지는 Nix기반으로 프로비저닝하는 방식을 상상했는데(그러면서 더 싼 서비스로 비용최적화), 그런거 만들때 쓰면 좋겠네요.

1

@hongminhee洪 民憙 (Hong Minhee) Apache Libcloud는 이번에 처음 봤는데 마음에 드는데요? 클라우드 인프라에서 네트워크랑 VM 인스턴스 등 low level한 자원들만 쓰면서 나머지는 Nix기반으로 프로비저닝하는 방식을 상상했는데(그러면서 더 싼 서비스로 비용최적화), 그런거 만들때 쓰면 좋겠네요.

1

@hongminhee洪 民憙 (Hong Minhee) Pulumi 자체는 그냥 인프라용 React같은 거구요. React에 React-DOM이랑 React Native가 있듯이, Pulumi에도 여러 드라이버가 있습니다. 개중에 k8s 드라이버도 있어서 k8s띄운다음에 그위에 TS 코드로 프로비저닝 할수도 있고요. 또 홈서버를 쓰더라도 CDN은 붙이고 싶으실수 있는데 이때 AWS든 CF든 드라이버 깔아서 CDN 붙이면 됩니다. 가장 큰 장점은... 그냥 TS코드로 하다보니 자동완성등 인텔리센스가 최상급이라는 점?

1
1

Hackers' Pub은 현재 원격 콘텐츠에 포함된 온갖 이미지를 캐시하지 않고 원격 URL 그대로 서빙하고 있는데, 일부 ActivityPub 구현은 계정 프로필 사진이 바뀌면 기존 프로필 사진을 아예 삭제해 버려서 가끔씩 원격 계정의 프로필 사진이 로딩이 안 되고 깨지는 문제가 발생하고 있다. 음… 귀찮아서 캐시를 안 하고 있었는데 역시 캐시를 하긴 해야 하나?

1

VS Code였나, 옛날의 Atom이었나 Ctrl+S를 한번 누르면 그냥 저장, 두번 누르면 포맷하도록 설정할수 있었던거 같은데. 또는 Ctrl+S 누르면 soft(?) 포맷, 두번 누르면 hard 포맷도 가능했던거 같다. 이거 편한데 지금은 하는 방법을 모르겠다. 클로드한테 물어보면 직접 키바인딩을 만들라는데 이렇게 안하고도 가능했던거 같은데?

1

OpenAI가 Windsurf를 30억 달러에 산다는 루머가 있는데, 솔직히 난 잘 이해가 안되서 사람들의 의견이 궁금하다(Cursor는 얼마전에 100억달러로 평가받았다)

2

어제 출시된 o3가 코딩스타일은 별론데 디버깅을 매우 잘한다고 한다.

위 계정은 HVM 만드는 사람의 것인데, 나는 새 모델이 나올때마다 저 사람이 하는 벤치마크를 체크한다. 사실 구체적으로 뭐하는지는 잘 모르는데,

  1. 충분히 어려운 과제로 테스트한다는 점
  2. 진짜로 자기가 할일을 대체할수 있는지 확인할만큼 밀어붙인다는점
  3. 결과를 세세하게 공유한다는 점

에서 참고할만하다.

5
0

reflex-frp 등 FRP 라이브러리들을 쓰면서 배운점은, fire-and-forget이 유용한 패턴이고 많은 코드를 fire-and-forget 방식으로 짤수있음에도 우리는 평소에 그걸 포착하지 못하고 fire-and-remember(but don't use after?) 방식으로 짜고 있다는 것이다. 그리고 더 중요한건, fire-and-forget를 primitive로 삼기에는 fire-and-forget이 안 통하는 순간에 곤란한 점이 많다는 것이다. 그래서 actor 'framework'란 접근에 대해서는 흐린눈을 하고 보게된다.

7