mactex texlive + kotex 설정

$ sudo tlmgr repository remove main
$ sudo tlmgr repository remove ktug
$ sudo tlmgr repository add https://ftp.kaist.ac.kr/tex-archive/systems/texlive/tlnet main
$ sudo tlmgr repository add http://mirror.ischo.org/KTUG/texlive/tlnet ktug
$ sudo tlmgr pinning add ktug "*"
$ cd ~/tmp
$ curl -O https://mirror.ischo.org/KTUG/texlive/tlnet/ktugrepo.pub.txt
$ sudo tlmgr key add ./ktugrepo.pub.txt
$ sudo tlmgr repository list
List of repositories (with tags if set):
    https://ftp.kaist.ac.kr/tex-archive/systems/texlive/tlnet (main)
    http://mirror.ischo.org/KTUG/texlive/tlnet (ktug)

UTM에서 Windows 11 Arm 버전 설치하기

UTM에 Windows 11 Arm 버전을 설치하려고 할 때 설치 화면에서 네트워크를 잡을 수가 없어서 그 다음 과정으로 진행되지 않은 문제가 발생한다.

이 문제는 다음과 같이 해결할 수 있다.

  1. UTM 설치 후 windows 11 arm 버전 이미지로 설치 진행. UTM과 윈도우 11 ARM 버전 다운로드는 다음 링크를 이용
    UTM 다운로드 링크
    윈도우 11 ARM 베타 버전 다운로드 링크

  2. UTM 부팅을 하면 ESC 키를 눌러서 bios로 진입 후 해상도를 1024x768로 변경

  3. UTM이 재부팅을 해서 국가 선택하는 창이 나오는데, 이 때 Shift-F10 키를 눌러서 cmd 창을 띄운 후에 다음 명령어를 입력
    oobe\bypassnro

이렇게 하면 UTM이 자동 재부팅 되면서 설치가 잘 된다(설치 중에 네트워크 설정이 나오면 'I don't have internet'을 선택 후 설치를 계속하면 된다).

spice-guest-tools.exe 파일을 다운로드 받아서 USB 드라이브 등에 담아둔 후에,
윈도우가 다 설치되면 spice-guest-tools.exe를 실행해서 UTM에서 윈도우 사용을 원활하게 만들어준다.

spice-guest-tools는 parallels tools 같이 UTM을 원활하게 돌아가게 만드는 툴.
다운로드 링크는 아래
spice guest tools 다운로드 링크

USB 버전별 정리

맨날 헷갈리는 USB 버전을 정리해 놓는다.

단자의 모양

USB-A, USB-B, micro, USB-C 등은 연결 단자의 모양이다.

  • USB-A는 흔히 우리가 쓰는 맨날 위아래 헷갈리는 직사각형 모양의 단자
  • USB-B는 프린터나 스캐너에 연결할 때 사용하는 정사각형에 가까운 단자
  • micro는 맨날 망가져버리는 조그만 단자
  • USB-C는 납작한 타원형 단자

이 외에도 몇개가 있기는 하지만 별로 쓰이지 않으니 잊어버리자.


전송속도 및 전원공급 규격

버전별로 데이터 전송속도도 다른데, 매우 이름을 헷갈리게 만들어놓았다.

버전 데이터 전송속도 전원 공급 규격 PD 지원 표기 비고
1.0 12 Mbps 0.5 W x
2.0 480 Mbps (60MB/s) 2.5 W x
3.0 = USB 3.1 Gen1 = USB 3.2 Gen1 5 Gbps (625MB/s) 4.5 W x SS5 (파랑)
3.1 = USB 3.1 Gen2 = USB 3.2 Gen2 10 Gbps (1.25GB/s) 4.5 W o SS10 c to c만 가능
3.2 = USB 3.2 gen2x2 20 Gbps (2.5GB/s) 4.5 W o SS20 c to c만 가능
4.0 40 Gbps (5.0 GB/s) 240 W o c to c만 가능, PD 필수

BC (Battery Charging)과 PD (Power Delivery)

BC나 PD 기능이 있으면, 또 버전마다 최대 전력량이 다르다.

  • USB BC 1.2는 7.5 W
  • USB Type-C 1.2는 15 W
  • PD 3.0은 100 W
  • PD 3.1은 240 W

이래저래 복잡해진 세상이다.

다음에는 썬더볼트 규격을 정리해 놓아야겠다.

R package build

nonparaeff 패키지를 처음 작성했던 게 아마 포닥을 하고 있을 때였던 것 같다.
혼자 쓰다가 CRAN에 업로드를 하고자 매뉴얼도 작성해서 Kurt에게 메일로 submission을 하면 Kurt가 CRAN으로 업로드를 하는 시스템이었는데, 이제는 자동 submission 시스템으로 바뀌어서 무척 편해졌다.
DEA 책을 쓰면서 자잘한 함수들을 몇개 더 만들고, 버그도 수정해 가면서 2013년에 0.5.8 버전을 만들고 그 이후는 귀찮아서 업데이트를 하지 않았다.

그 동안에 Kurt가 패키지 업데이트가 필요하다는 메일을 자꾸 보내왔다.
NAMESPACE를 작성해서 패키지를 수정하라는 것이었는데, NAMESPACE가 뭔지를 모르니 무시를 하곤 했다.
내가 패키지를 만들던 시절에는 매뉴얼에 NAMESPACE에 대한 내용이 없었거나 내가 귀찮아서 안 읽었거나, 둘 중의 하나인데.. 아무튼 NAMESPACE에 대해서 시간을 내서 공부하기가 싫었다.

저번주에는 Kurt에게서 최후 통첩이 날아왔다. Compind 패키지와 의존성 문제가 생기는 문제를 해결하지 않고 NAMESPACE를 작성하지 않으면 패키지를 CRAN에서 내리겠다는 내용이었다. 내 nonparaeff에 의존하는 패키지가 있다는게 살짝 기쁘기도 했지만, 어쨋든 매뉴얼을 새로 읽고 뭔가를 고쳐야 한다는 압박감과 귀찮음이 동시에 밀려오기도 했다.

할 수 없이 저번주부터 다시 R Packages라는 책을 띄엄띄엄 읽어가면서 고칠 부분을 조금씩 손을 봤다. Writing R Extensions 매뉴얼보다 더 친절하게 쓰여 있어서 읽기가 무척 수월하기도 했고, 무엇보다 이런 유용한 정보를 Wikibooks로 뿌려서 저자에게 고마운 마음이 들었다.


R 버전이 올라가면서 DESCRIPTION 파일의 i) Depends 항목을 될 수 있으면 쓰지 말아야 하며 Imports와 Suggests 항목이 그 역할을 대신하고, ii) NAMESPACE 파일에서 다른 패키지에서 꼭 필요한 함수들만 불러오는 방식으로 정책이 바뀌었다는 것을 드디어 알아냈다.

DESCRIPTION 파일에서 Authors@R 항목이 신설되었고 Author와 Maintainer 항목은 쓰지 않을 것을 권고하고 있으나, 실상 Author와 Maintainer 항목을 쓰지 않으면 에러가 발생했다.
Authors@R 항목으로 쓰려고 했지만 어쩔 수 없이 Author와 Maintainer 항목을 구분해서 작성했다.
예전에는 Author에 한명만 기록을 할 수 있었던 것 같은데, 이제는 여러명을 comma로 구분해서 쉽게 넣을 수 있게 되었다.

중간에 한글로 커멘트를 달아놓은 ar.dual.dea()함수는 뭔가 더 작업을 해야 할 것 같은데, 그 작업을 하기 귀찮아서 아예 패키지에서 삭제해버렸다.

CRAN에 submission을 하면 NOTE들을 해결하라고 몇번 빠꾸를 먹다가, 어제는 제대로 submission을 한 것 같아서 Francesco Vidoli에게 제대로 submission을 했다는 메일을 보내고 퇴근을 했다.
그러나 운전 중에 reverse dependency 문제가 발생했다는 메일을 받았다.
이런 것까지 내가 신경을 써야 할 필요가 있을까 짜증이 밀려왔지만, reverse dependency 문제를 보고하는 시스템이 있어야 패키지 작성자들이 제대로 패키지를 작성하게 된다는 결론에 이르러서 얼른 문제를 해결하겠다고 마음을 또 먹었다.


Compind 패키지의 NAMESPACE 파일을 살펴보니, ar.dual.dea() 함수를 사용하고 있어서 reverse dependency 문제가 발생한 것이었다. "소스코드를 다 뜯어볼 필요없이 NAMESPACE 파일만 보면 여러 문제가 해결되네. 이래서 NAMESPACE 파일이 필요한 거구나"라고 혼잣말을 하면서 R 개발자들에게 찬사를 보냈다. "역시 똑똑한 사람들은 설계를 잘 해"

집에서는 컴퓨터를 켜기가 싫어서 Vidoli에게 '내일 출근을 해서 롤백하겠다'고 메일을 보냈지만, 이 아저씨는 냉큼 ar.dual.dea()함수를 사용하지 않게끔 Compind 패키지를 재작성해서 submission을 한 것 같다.

오늘 출근을 하고 ar.dual.dea() 함수를 다시 집어넣고, DESCRIPTION 파일과 NAMESPACE 파일들을 손보고 다시 submission을 했다.

이번에는 에러가 발생하지 말기를 바라면서 이 글을 작성하고 있다.