Skip to content

Instantly share code, notes, and snippets.

View longfin's full-sized avatar

Swen Mun longfin

View GitHub Profile
@longfin
longfin / writing.md
Last active August 13, 2024 08:30
엔지니어를 위한 글쓰기

이 글은 Heinrich Hartmann 님이 작성하신 글을 한국어로 번역한 것입니다. 원문은 https://www.heinrichhartmann.com/posts/writing/ 에서 확인하실 수 있습니다.


글쓰기는 큰 조직에서 영향력을 발휘하는 데 중요합니다. 경력 있는 소프트웨어 엔지니어로서의 글쓰기는 직무 범위를 확장하고 경력을 발전시키기 위해 획득해야 하는 가장 중요한 기술입니다.

글쓰기는 어렵습니다. 많은 소프트웨어 엔지니어들이 글쓰기와 씨름하죠. 저도 개인적으로 문학에 대한 관심이 없기 때문에 글쓰기가 자연스럽지 않았습니다.

목적

이 글에서는 무신뢰성(Trustless), 그리고 무신뢰성에 기반한 시스템(Trustleses System)에 대해서 소개하고, 무신뢰성이 탈중앙 애플리케이션/네트워크를 만들때 어떤 역할을 한다고 알려져있는지 보편적인 이해에 대해 기술합니다. 또한 이러한 이해를 바탕으로, 나인 크로니클이나 Libplanet과 같은, 플라네타리움이 만드는 탈중앙 소프트웨어들에서 어떤 관점으로 수용해야 할지 제 나름의 의견도 남깁니다.

사이퍼펑크(Cypherpunk)

들어가며

이 글은 플라네타리움 공동체 분들께 22년 3분기 이후의 나인 크로니클, 그리고 Libplanet 개발 기조에 대해 제 생각을 전달드리는 것이 목표입니다. 다만 모두가 아시듯이 나인 크로니클과 Libplanet은 오픈 소스 프로젝트이기도 하므로, 제 GitHub Gist 에 초고를 작성하였습니다. 이런 삐딱함(?)은 일견 아무래도 좋은 치기이기도 하지만, 한편으로 저는 어쩌면 이게 제가 이제부터 이야기할 것들을 함축한 것일지 모른다고도 생각합니다.

공격과 수비

게임 개발에 블록체인을 사용하면 느리고 기획도 제한이 심할 것 같은데, 극복할 수 있는 방법이 있으신가요?

@longfin
longfin / 오픈 소스, 블록체인 그리고 탈중앙 애플리케이션.md
Last active August 25, 2023 14:25
오픈 소스, 블록체인 그리고 탈중앙 애플리케이션

이 글에선 오픈 소스 운동과 블록체인 기술이 어떤 특성들을 담보하며, 탈중앙 애플리케이션을 만드는데 어떤 역할을 하는지에 대해 저의 이해를 바탕으로 설명합니다. 이 글의 목적은 "진정한 탈중앙 애플리케이션을 만들려면 반드시 오픈 소스를 해야 한다."라기보다는1, 오픈 소스나 블록체인 기술이 차지하고 있는 역할을 공유함으로써, 추후 이러한 이해 상충이 벌어지는 부분들을 보다 명확히 하기 위함입니다.

오픈 소스

오픈 소스, 혹은 오픈 소스 운동은 다양한 정의를 가지고 있습니다. [자유 소프트웨어] 운동을 지지하는 쪽에서는 오픈 소스가 자유 소프트웨어의 부분 집합이라고 주장하지만, 오픈 소스를 지지하는 사람들은 오픈 소스가 자유 소프트웨어를 포함하는 더 넓은 개념이라고 이야기하기도 합니다. 이 둘의 차이나 주장도 흥미로운 부분이 많지만, 이 글에서 제가 밝히고 싶은 제 이해의 관점에선 크게 차이가 나진 않으므로 생략하도록 하겠습니다.

Footnotes

  1. 물론 저는 이 주장을 지지합니다. 하지만 이 주장을 지지하기에 앞서, 그 까닭을 말씀드리는 것이 먼저라고 생각합니다.

@longfin
longfin / AGREE.md
Created August 3, 2023 09:45 — forked from dahlia/AGREE.md
Nine Corporation Individual Contributor Assignment Agreement

Nine Corporation Individual Contributor Assignment Agreement

Thank you for your interest in contributing to Nine Corporation ("We" or "Us").

This contributor agreement ("Agreement") documents the rights granted by contributors to Us. To make this document effective, please follow the instructions at the end. This is a legally binding document, so please read it carefully before agreeing to it. The Agreement may cover more than one software project managed by Us.

1. Definitions

"You" means the individual who Submits a Contribution to Us.

// * Detailed results *
Trie.Commit: DefaultJob
Runtime = .NET Core 6.0.8 (CoreCLR 6.0.822.36306, CoreFX 6.0.822.36306), X64 RyuJIT; GC = Concurrent Workstation
Mean = 823.647 ms, StdErr = 14.125 ms (1.71%), N = 100, StdDev = 141.251 ms
Min = 617.994 ms, Q1 = 692.389 ms, Median = 835.903 ms, Q3 = 914.671 ms, Max = 1,138.132 ms
IQR = 222.282 ms, LowerFence = 358.965 ms, UpperFence = 1,248.095 ms
ConfidenceInterval = [775.741 ms; 871.552 ms] (CI 99.9%), Margin = 47.906 ms (5.82% of Mean)
Skewness = 0.24, Kurtosis = 1.92, MValue = 5.24
-------------------- Histogram --------------------
# 쿨러를 다시 꽂으며 배운 것들
주말에 원래 쓰려던 주제가 몇 가지 있었는데, 거기에 대해 쓰기 전에 기본 전환을 위해 어제, 오늘 알게 된 것들에 대해서 손이 가는 대로 적어보려 합니다.
##

이족 보행 병기와 람다 드라이버

어쩌다 보니 그래도 이젠 나이를 좀 먹은 축이 되어놓으니, 중학 시절이라고 하면 물경 20년은 거슬러 올라가야 하는 나이가 되었습니다. 저는 중고교 시절 책을 좋아하는 편이었는데, 그중에서 특히 소설류를 좋아했습니다. 특히 2002년 나온 "[풀 메탈 패닉!][]"이란 라이트 노벨은 완결이 나올 때까지 신경 쓰면서 챙겨 읽었던 기억이 납니다.[^0] 대충 당시 제 또래 학생들이 좋아할 법한, 적당히 과학적인 설정이 덧붙여졌지만 그런데로 폼도 나는 그런 이족 보행 병기, 즉 전투용 로봇[^1]들이 나오는 그런 내용입니다.

한 가지 특이한 점은, 이 소설은 큐브릭의 전쟁 영화인 [풀 메탈 재킷][]을 패러디한 제목에서 알 수 있듯이 밀리터리 분위기를 내려는 소설이고, 극 중 등장인물도 이런 이족 보행 병기에 대해서 의문과 의혹을 가지고 있다는 점입니다. 상식적으로 탱크나 공격 헬기 같은 물건을 놔두고 굳이 병기를 인간형으로 만들 필요가 있냐는 지극히 상식적인 비판이죠. 더군다나 여기에 더해 주인공이 타는 시작기[^2]에는, 탑승자의 정신력에 기반해서 "람다 드라이버"라는 초자연적인 현상을 일으키는 이상한 장치까지 들어갑니다. 이쯤 되면 SF라는 장르는 포기해야 할 지경이죠.

제가 인상 깊었던 건, 작가가 나름대로 반전(?)으로 준비해 둔 설정이었습니다. 아주 짧게 얘기하자면,

  1. 초자연적 현상을 발생시키는 장치는 인간의 신경계가 극한 상황에 처해야만 동작하는데
@longfin
longfin / vscode.md
Created January 14, 2022 08:30 — forked from dahlia/vscode.md
Libplanet 개발 환경 설정

Libplanet 개발 환경 설정 (VS Code)

[Libplanet]은 널리 쓰이는 게임 엔진인 Unity를 염두에 두어, C#으로 작성되었습니다. 따라서 C# 개발 환경이 필요합니다. 다행히 .NET은 요 몇 년 사이 여러 플랫폼에서 두루 개발할 수 있는 여건이 마련되었습니다. 이 문서는 Linux, macOS, Windows 모두에서 Libplanet 개발을 하는 데에 필요한 환경을 설정하고 빌드하는 방법을 설명합니다.

따라하면서 잘 안되는 게 있으시면 [저희 Discord 서버][1]에 있는

### Keybase proof
I hereby claim:
* I am longfin on github.
* I am longfin (https://keybase.io/longfin) on keybase.
* I have a public key ASBioKUHgLsQEGmPZGERgGu3qy7QjC_5bEZ0Ew4sIE-OAQo
To claim this, I am signing this object: