Blog

  • 테드 딘터스미스 “최고의 학교”

    모든 사례의 학생들이 다음과 같은 환경에서 스스로 재능을 키우고 있다는 공통점을 발견했다.

    • 목적의식(Purpose)
      중요하다고 판단될 뿐만 아니라 자신들의 세상을 더 나은 곳으로 향상시켜줄 만한 도전에 적극적으로 나서고 있다.
    • 필수역량(Essentials)
      계속해서 혁신해나가는 세상에서 꼭 필요한 역량과 사고방식을 습득하고 있다.
    • 주체성(Agency)
      자발적으로 학습에 임하고, 의욕적이며 자기주도적인 성인으로 자라고 있다.
    • 지식(Knowledge)
      머리에 두고두고 남을 만한 깊이 있는 학습을 통해 창조하고, 만들고, 다른 사람들을 가르칠 수 있는 능력을 키우고 있다.

    우리는 지금 문제 풀기에 치중하고 있습니다. 우리에게는 그 외에도 다뤄야 할 역량들이 많아요. 생활력, 인성, 시민의식 같은 것들도 다뤄야 합니다.

    나쁜 아이들은 없다. 나쁜 환경, 나쁜 교육, 나쁜 사례, 나쁜 생각이 있을 뿐이다.

    미적분을 배우는 대다수 학생들은 통계학 대신 미적분을 배우고 있다. 그러나 통계학이야말로 커리어, 시민의식, 개인적 의사결정에서 아주 중요한 요소다.

    AI가 많은 부분에서 그 영향력을 넓혀 나가고 있다. 어떻게 해야 내 자식이 미래에 유용한 존재가 될 것인가. 끊임없이 고민해야 한다. 지금 해볼 수 있는 것은 ‘주체성’일 듯 하다.

  • LaTex in Windows

    한글이 포함된 문서를 LaTex로 하고 싶다면, VS Code가 괜찮다.

    설치 후 Extension 에서 LaTeX Workshop을 설치한다.

    Ctrl + Shift + P를 눌러 JSON을 입력하고 Preference: Open User Settings (JSON)을 선택한다.

    이런 내용을 추가로 입력해준다.

        "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ],
            "env": {}
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "xelatex",
            "tools": [
                "xelatex"
            ]
        }
    ],
    "latex-workshop.latex.recipe.default": "first",
    "latex-workshop.view.pdf.viewer": "tab"

  • 로버트 서튼 “참아주는 건 그만하겠습니다”

    이 책이 와닿지 않은 것은 내가 또라이라서 그런 것인가, 그렇지 않기 때문에 그런 것인가… 한국식 표현을 쓰자면 갑질 대응법.

    현명한 사람은 “자신의 믿음에 따라 행동하는 용기와 자신이 잘못 생각할 수도 있음을 인정하는 겸손함을 동시에 갖추고 있으며, 보다 나은 정보가 생기면 자신의 믿음과 행동을 바꿀 준비가 분명히 돼 있다.”

    사람은 회사가 아니라 상사를 떠난다.

    그러므로 공격을 개시하기 전에 상대방의 전투력과 탈출 옵션을 최대한 깊이 고려해야 한다.

  • dnscrypt-proxy with host masking

    • 회사 내부에 DNS 서버를 두는 것은 문제가 없다.
    • 로그에 host의 IP가 있는 것은 개인정보 침해 가능성이 있다.
    • dnscrypt-proxy 옵션으로는 이것을 해결할 수 없다.
    • 다른 대안을 찾자.

    Gemini 도움으로 다음과 같이 했다. 파이프를 이용하는 것이다. 다음과 같이 서비스를 등록한다. 내용에서 알 수 있는 것으로 dnscrypt-proxy 실행 이전에 로그를 받을 준비를 해야 한다.

    /etc/systemd/system/dnscrypt-log-anonymizer.service
    
    [Unit]
    Description=dnscrypt-proxy Log Anonymizer (FIFO Pipe Processor)
    # dnscrypt-proxy가 실행되기 전에 먼저 준비되어야 함
    Before=dnscrypt-proxy.service
    Wants=network.target
    
    [Service]
    Type=simple
    User=root
    # 서비스 시작 전 파이프 파일 존재 확인 및 자동 생성
    ExecStartPre=/bin/sh -c '[ -p /var/log/dnscrypt-proxy/query_pipe.log ] || mkfifo /var/log/dnscrypt-proxy/query_pipe.log'
    # 파이프 데이터를 실시간 마스킹하여 파일로 저장
    ExecStart=/bin/sh -c 'exec sed -u -E "s/host:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|\[[0-9a-fA-F:]+\])/host:0.0.0.0/" /var/log/dnscrypt-proxy/query_pipe.log >> /var/log/dnscrypt-proxy/queries_anonymized.log'
    Restart=always
    RestartSec=2s
    
    [Install]
    WantedBy=multi-user.target

    dnscrypt-proxy는 다음과 같이 수정해 둔다.

    /etc/systemd/system/dnscrypt-proxy.service
    
    [Unit]
    Description=DNSCrypt client proxy
    Documentation=https://github.com/DNSCrypt/dnscrypt-proxy/wiki
    After=network.target dnscrypt-log-anonymizer.service
    Wants=network-online.target
    Requires=dnscrypt-log-anonymizer.service
    
    [Service]
    Type=simple
    NonBlocking=true
    ExecStart=/usr/local/bin/dnscrypt-proxy -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml
    Restart=on-failure
    RestartSec=5
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    CapabilityBoundingSet=CAP_NET_BIND_SERVICE
    StandardOutput=journal
    StandardError=journal
    
    [Install]
    WantedBy=multi-user.target