전체 글 19

설치 usb 없이 빈 디스크에 os 설치하기

새 서버에 ubuntu를 설치하려 했는데, 자취방에 usb가 없었다. 그렇다고 고용량 디스크를 설치용으로 사용하기에는 플래시하는데 한참은 걸리는 문제가 있었다. vmware 등의 가상 머신 프로그램에서 디스크와 iso를 로드하여 디스크에 os를 설치한 후에 뽑아서 서버에 달아주면 되는거 아닐까? -> 하드웨어에 의존적인 설치 과정이 포함된다면? -> 아키텍쳐가 동일한 cpu간에 교체하거나, 랜카드 등을 교체한다고 os를 다시 설치해야하는건 아닐테니, 문제가 없을 가능성이 높다. 내 서버의 ubuntu는 그렇게 설치됐고, 반년이상 잘 돌아가고 있다. *vmware tools같은건 설치하지 않아도 된다. *디스크 파일을 만드는게 아니라, 아무것도 없는 빈 가상머신을 만들어서 iso와 물리 디스크를 마운트하여..

백마법 2024.03.13

Spelunky 2 한국 매칭 서버 접속기

1. dll injection 방식으로 작동합니다. 이로 인해 윈도우 디펜더가 바이러스 취급할 수 있으나 modlunky(playlunky),overlunky와 동일한 방식입니다. 소스코드는 공개해두었습니다. 디펜더가 바이러스 취급하지 않는 방식으로 변경되었습니다(0.0.3) 2. 업데이트 이후에 매칭 서버를 항상 독일로 연결하도록 되어 있는 것을 한국으로 변경하는 패치입니다. 세부 변경사항은 다음과 같습니다. - 검색하여도 프로그램 이용자들 간에만 매칭됩니다. - 생성된 초대 코드는 프로그램 이용자간에만 사용 가능합니다. 기대되는 효과 - 매칭 서버를 넘어 인게임에서도 항상 한국 서버(edge-09)로 접속 다음을 확인했습니다. - 2p 노말 엔딩(티아마트) 클리어 - 4p 스페셜 엔딩(별자리) 클리어..

카테고리 없음 2024.01.12

jekyll 테마 만들기

윤님이 톡방에 이런 채팅을 남겼다 윤님이 만드셨던 블로그중에 https://blog.yuni.dev/ 별 다른 이미지 없이도 매우 깔끔하고 이뻤는데 막상 블로그를 만들려고 하니 갖고 있던 온프레미스 서버들이 전부 하드웨어 이슈로 죽어버리기도 했고(..) 굳이 동적인 사이트를 만들고 싶진 않아서 예전에 jekyll 로 github pages에 올렸던 블로그가 생각나 jekyll로 테마를 만들어보기로 했다. 경고: 이 포스팅은 jekyll 테마를 적용하는 포스팅이 아니다. 만드는 포스팅이므로 단순히 적용하고 싶다면 다른 포스팅을 참고하자. 우선 github에서 repo를 만들자 .github.io 라는 이름으로 만들면 그대로 url이 될것이고, 다른 이름으로 만들면 .github.io/ 이 url이 된다. ..

헛소리 2023.08.19

'.한국' 같은 국가별 퓨니코드 최상위 도메인 구경하기

구경만 하고 싶으면, '분류 결과'를 검색하거나 스크롤을 내리자 몇개월 전, 카카오톡에 '서양.한국' 등을 입력하면 성인 사이트가 나와 이슈가 됐었다. 사실 이는 한글로 만든 도메인으로, a.com 과 같이 그저 url이라서 그런 것 이었는데, 이런 비-알파벳 도메인은 어떤걸 만들 수 있을까? 우리가 보통 도메인을 만들게 되면 .com으로 끝날지, .net으로 끝날지 등 도메인의 마지막 .을 기준으로 오른쪽에 있는 최상위 도메인(TLD, Top Level Domain)또한 골라야한다. 사실 앞부분은 유니코드 문자면 어떤 것이든 상관 없으므로, TLD 중 비 알파벳 도메인을 찾아보자 TLD의 목록은 https://data.iana.org/TLD/tlds-alpha-by-domain.txt 에서 확인할 수 ..

헛소리 2023.08.14

java의 field 초기화와 동시성

다음 코드의 출력을 예상해보자. class A{ A() { f(); } public void f(){ System.out.println("3"); } } class B extends A{ int x = 4; public void f() { System.out.println(x); } } public class Main { public static void main(String[] args) { A a = new B(); } } 답은 뭘까? 3 혹은 4중에 고민하고 있다면, 그렇지 않다. 답은 0이다. java는 C++와 다르게 생성자에서도 virtual하고 순서상 A가 초기화된 후에 B가 초기화되기 때문에, x가 초기화되지 않은 상태로 출력되어 0이 출력된다. 그렇다면 생성자에서 필드를 초기화하는 클래스..

공부 2023.06.15

Windows에서 기본 코드 페이지 변경하기

...(1,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터 가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오. 어? 내가 코드페이지를 유니코드 형식(65001)로 설정하지 않았던가? 하필 유니코드 문자 일부를 개행으로 읽은 탓에, 경고뒤에 무수히 많은 오류를 볼 수 있었다. 쉘이 켜지면 항상 chcp 65001이 실행되도록 설정해놨었는데.. ..> chcp 활성 코드 페이지: 65001 분명 현재 chcp는 65001이지만, cmake 도중 다시 복원된다. 구글링을 통해 얻은 좀 더 근본적인 해결 방안은 다음과 같았다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls..

문제 해결 2023.05.19

docker로 Apple Silicon에서 xv6 빌드하기

m1 맥북에서 gcc-multilib이 설치가 안되는 것으로 기억하고 있어 docker에서 로제타를 이용해 amd64 ubuntu로 빌드했다. *vscode 사용자를 기준으로 작성되었다. docker desktop을 설치하자. 만약 이미 설치되어 있다면 Settings > Software updates에서 업데이트하자. Settings > General > Use Virtualization frameworks 활성화 Settings > Features in dev > Use Rosetta .. 활성화 Apply & restart 원하는 프로젝트 위치에서 터미널을 켜서 git clone https://github.com/mit-pdos/xv6-public.git 을 실행하고 ./docker-compose...

기타 2023.05.07

Garbage Collection(4) - Weak Reference

Garbage Collector가 존재하는 언어중 몇몇은 약한 참조(Weak Reference)라는 것을 제공합니다. java js python lua 일반적으로, 참조당하고 있는 객체는 Garbage Collection 대상이 아닙니다. 하지만 캐시와 같이 속도 면에서는 중요하지만 제거해도 괜찮은 객체는 어떻게 할까요? 이를 위해 Reference Object를 제공합니다. Reference Object를 통해 객체를 간접적으로만 참조하는 방식으로 사용하며, GC는 메모리가 부족하면 Reference Object으로만 참조중인 객체를 제거할 수 있습니다. 따라서 일반적으로는 다음과 같이 접근합니다. var weakRef = new WeaKReference(new T()); ... // 객체는 언제든 제..

공부 2023.01.16