염산하

@[email protected] · 20 following · 15 followers

A software engineer in Seoul, and a father of a kid.

Zen's avatar
Zen

@[email protected]

**A shortcut for your shortcuts**

In the latest Zen update we introduced some improvements to the command bar, which now understands when you're not looking for a website. Just press the tab key and your search narrows down to actions like pinning a tab, opening an extension, creating a split view and much much more.

Now available in 1.16.3b
zen-browser.app/release-notes/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

機会が有ればHolloを一度大規模にリファクタリングしたいんだけど、時間が無い。リファクタリングするならやりたいことリスト:

  • Drizzle ORMをベータ版にアップグレードし、RQBv2を適用
  • ユニットテストを作成
  • 独自のフロントエンドを搭載
  • HonoをElysiaに置き換え、エンドツーエンドの型安全性を実現
염산하

@[email protected]

세 시간짜리 조용필 콘서트 KBS에서 한다 캬 좋다... 엄마랑 같이 보는 중

염산하

@[email protected]

claude.ai 의 프로젝트는 프로젝트 내의 다른 대화를 참조할 수 있는데 자동식이 아니라 수동식이다. 내가 과거 대화를 찾아보라던가 이전의 이런 대화를 어쩌고 하는 식으로 명시적 요청이 있을 때 검색해보고 사용하는 식. 제어 가능하고, 과거 대화가 새 대화에 미묘하게 영향을 주지 않아서 좋은 방식이라고 느꼈다.

나나나나미's avatar
나나나나미

@[email protected]

워싱턴포스트에 한국 인터넷 성인만화광고 문제를 지적한 컬럼이 올라왔다. washingtonpost.com/world/2025/
뉴스 기사 같은 일반 사이트에서도 '여성이 남성의 성폭행으로부터 도망치는 장면' 같은 성폭력적인 내용의 웹툰 광고가 버젓이 나오는데, 기사에서는 여러 회사나 단체가 언급되지만 누구에게 책임이 있는지는 잘 드러나지 않는다. 성인웹툰 회사들은 "개선하고 있다" 같은 원론적 답변만 내놨고.

Jaeyeol Lee's avatar
Jaeyeol Lee

@[email protected]

작업 내역

  • https://github.com/cosmoslide/cosmoslide/pull/45 PDF 업로드 기능이라도 구축은 해야할 것 같아서 진행함. 보통은 express라던가 등등 JS 기반의 웹서버 프레임워크에서는 파일시스템/S3/GCS 등의 스토리지에 파일을 업로드할때, 스토리지에 접근하는 과정 자체를 추상화하는 flydrive라는걸 쓰는데, flydrive는 NestJS에서 사용이 되지 않는 ESM-only 모듈이어서, 어떻게 해야 하나 하다가 Claude Code한테 AWS S3에 접근하는 것만 적당히 추상화해서 야크쉐이빙 해달라고 했더니 그냥 순식간에 되었다. 문서를 뜯어보고 구현해야하는 수고는 줄었고, aws sdk를 어떻게 활용하는지는 가성비있게 학습할 수 있는 기회가 되었다.

  • https://github.com/cosmoslide/cosmoslide/pull/46 프로필 화면에 Presentation 탭을 넣었고, 프레젠테이션 파일을 업로드하면 Create(Note) 액티비티가 발생되도록 처리했다. react-pdf 이용해서 커스텀 PDF 뷰어 적당히 끼워넣었다.

PDF 업로드 기능 가설 검증
ALT text detailsPDF 업로드 기능 가설 검증
프레젠테이션을 위한 커스텀 PDF 뷰어
ALT text details프레젠테이션을 위한 커스텀 PDF 뷰어
프로필 화면에 Presentation 탭 넣었다.
ALT text details프로필 화면에 Presentation 탭 넣었다.
염산하

@[email protected] · Reply to 염산하's post

아이폰에서 웹앱 형태로 설치했던 phanpy 는 로컬데이터 지우는 방법 찾기 귀찮아서 그냥 지우고 웹 브라우저 바로가기 형태로 변경했다.

염산하

@[email protected] · Reply to 푸른곰's post

@purengom 많이 쓰시네요 ㅎㅎㅎ 혹시 어디 쓰시나요? ^^

염산하

@[email protected]

배외 감정에 대한 통계가 기억나지는 않지만 지난 대선에서 조사된 2030남성 보수 지지층이 대부분 고학력자들이라는 통계와는 충돌하는 주장이라고 생각됨.

https://x.com/stingraykite/status/1974155607822516566?s=46&t=3SSCMzU8n1YA4_S4Nc9Piw

염산하

@[email protected]

hollo 0.6.12 로 업그레이드 성공! phanpy.social 은 수작업으로 로컬에 생긴 모든 데이터를 일일이 지워줘야 잘 되는 듯.

https://hollo.social/@hongminhee/0199aab3-d7c3-7e81-8ecb-e374ec6738a7

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

쓰시는 분들은 可能(가능)() 빨리 0.6.12 버전으로 올리시기 바랍니다. DM이 公開(공개) 揭示物(게시물) 페이지에서 露出(노출)되는 深刻(심각)保安(보안) 脆弱點(취약점)이 패치되었습니다.

https://hollo.social/@hollo/0199aaaf-7979-7da3-9509-73c9e487de05

염산하

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee 호옥시 0.5 계열도 올려야할까요?

이광효's avatar
이광효

@[email protected]

  • vim의 :terminal 커맨드를 사용하면서 알게 된 내용
    • vim의 :terminal excommand는 buftype이 'terminal'인 buffer를 연다
      • 확인하는 방법은 getbufvar(<bufnr(of terminal buffer)>, '&buftype') == 'terminal'
    • vim의 terminal-buffer는 커맨드라인을 이용할 수 있는 Terminal-Job 모드와 vim-keybinding을 사용할 수 있는 Terminal-Normal 모드를 지원한다.
    • Terminal-Job모드에서 Terminal-Normal모드로 전환은 키를 이용한다. (:h terminal-typing)
      • <C-\><C-N>
      • <C-W>N(CTRL-W 입력 후 그냥 대문자 N을 입력)
    • :terminal로 진입하면 기본적으로 Terminal-Job모드로 설정된다.
    • Terminal-Job모드에서 인터랙티브 셸을 종료하면 해당하는 terminal buffer가 닫힌다.
    • Terminal-Job모드는 tmap을 이용하여 제어할 수 있다.
      • tmap jj <C-W>Nimap jj <ESC> 만큼 유용하다
        • 다만 git log 등 자체적으로 지원하는 less 바인딩에서 네비게이팅하기 어려워 별도의 키바인딩을 사용하는게 좋다.
          • 예시) tnoremap <C-Q> <C-W>N
      • tnoremap <C-S-V> <C-W>"+를 이용하여 unnamedplus 레지스터의 내용을 붙여넣는다
    • 터미널 buffer에서 키입력을 보내고 싶다면 feedkeys 함수를 이용한다
      • ex: call feedkeys("i\<C-u>")
        • 터미널 버퍼에서 terminal 모드로 진입하고(i)
        • 입력된 commandline을 지운다(<C-u>)
          • $ bind -p | grep unix-line-discard "\C-u": unix-line-discard
        • 터미널 버퍼로 전환 후 입력가능한 상태로 만들 때 사용한다.
    • vim에서 open한 terminal buffer에서는 terminal-api를 이용해 vimscript를 호출할 수 있다.(:h terminal-api)
      • 보안상의 이유로 모든 vimscript를 호출시킬수는 없고 vimscript 함수의 이름이 Tapi_를 prefix로 가지는 함수만 실행 가능하다
      • 위의 Tapi_ prefix는 term_sendapi 함수를 이용해 prefix를 바꿀 수 있다
      • 호출방법이 매우 비직관적이고 예시를 찾기 어려운데, 다음과 같이 호출한다
      • 먼저 vim을 실행시키고 다음 함수를 작성후 :source %로 등록한다
function Tapi_Test(bufnum, arglist)
  echomsg a:bufnum
  echomsg a:arglist
endfunction
      • 그 후 :terminalTerminal-Job모드에서 다음을 실행시킨다.
$ printf '\e]51;["call","Tapi_Test","asdf"]\x07' 
      • vim의 :messages에서, bufnumarglist가 제대로 출력되었는지 확인한다.
      • 필자는 vim의 terminal-api는 이렇게 사용 방법이 복잡하고 8.2 버전 이상부터 지원되었기 때문에 가장 접근성 및 인지도가 떨어지는 기능 중 하나라고 생각한다.
        • 필자가 생각하는 이유는 다음과 같다
          • 애초에 이 기능을 사용하려면 vimscript를 작성 및 활용할 수 있어야 하는데, neovim이 도입된 이후 구태여 vimscript를 다루는 사람의 수는 매우 적다.
          • vimscript를 다룰 줄 아는 사람은 터미널에서 오랜 시간을 보냈을 가능성이 높다
          • vimscript까지 다루며 vim을 사용하는 이유중 하나로는 최대한의 호환성을 확보가 있다
          • terminal-api는 사용하는 방법이 매우 복잡하고, help 문서에 실사용 예시 지원이 부족하다
          • 그래서 vim 8.2 이상 버전에 추가된 terminal-api는 존재를 모르거나 알아도 호환성 등의 이유로 사용하지 않을 가능성이 있다.
      • 그럼에도 터미널 모드에서 vimscript를 호출할 수 있다는 것은 vim의 buffer 및 window와 같은 내장 객체를 사용할 수 있다는 의미로, 활용성이 뛰어나다
  • 다음은 terminal-api를 이용하여 terminal-job 모드에서 파일시스템을 네비게이팅하며 terminal-job 모드의 pwd를 vim의 pwd로 sync하는 예시이다

  • 동작원리는 다음과 같다

    • 터미널 진입시 터미널 버퍼에 setbufvar를 이용하여 osc7_dir를 설정하는 terminal-api 함수를 만든다
function! Tapi_SetOsc7_Dir(bufnum, arglist)
  call setbufvar(a:bufnum, 'osc7_dir', a:arglist)
endfunction
  • 해당하는 함수를 호출하는 커맨드를 확인하고 .bashrc에 등록한다
_setosc7dir() {
  printf '\e]51;["call","Tapi_SetOsc7_Dir","%s"]\x07' "$PWD" # for vim terminal api
}
alias setosc7dir="_setosc7dir"
  • 터미널 모드에서 파일시스템을 navigating할 때 항상 해당 함수가 호출될 수 있게끔 $PROMPT_COMMAND를 설정한다
export PROMPT_COMMAND='setosc7dir; '"$PROMPT_COMMAND"
  • $PROMPT_COMMAND는 모든 실행마다 추가적으로 실행되는 커맨드이므로, 무거운 작업을 등록하기 적절하지 않다.
    • 지금 설정한 작업은 그렇게 무거운 작업은 아니지만, $PWD가 변경되지 않아도 vimscript를 호출하는 비효율성이 있다
    • pwd가 변경되었을 때만 vimscript를 호출하도록 셸 내장 변수 __osc7_prev_pwd와 비교하는 로직을 추가한다
__osc7_prev_pwd=""
_setosc7dir() {
  if [[ "$PWD" != "$__osc7_prev_pwd" ]]; then
    printf '\e]51;["call","Tapi_SetOsc7_Dir","%s"]\x07' "$PWD" # for vim terminal api
    __osc7_prev_pwd="$PWD"
  fi
}
  • 이제 터미널 모드에서 파일시스템을 navigating 할 때 자동으로 terminal buffer의 osc7_dir 변수가 pwd로 갱신된다
  • 나머지는 해당 변수를 이용하여 cd만 호출하면 된다. 이 작업은 vim에서만 이루어진다
function! SyncTerminalPwd()
  let term_bufnr = bufnr()
  let osc7_dir = getbufvar(term_bufnr, 'osc7_dir')
  if isdirectory(osc7_dir)
    echo 'osc7_dir: ' .. osc7_dir
    execute 'cd ' .. osc7_dir
  endif
endfunction
  • 동작을 확인했으므로, 해당 함수를 TerminalOpen 이벤트 autocmdsetlocal을 이용해 키맵을 설정하자
function! SetupTerminalOpen() abort
  " <leader>cd : osc7_dir으로 pwd 설정
  execute 'nnoremap <buffer> <leader>cd :call SyncTerminalPwd()<CR>'
endfunction

" TermOpen 이벤트에 대한 자동 명령
augroup TerminalKeymaps
  autocmd!
  autocmd TerminalOpen * call SetupTerminalOpen()
augroup END
  • 다음으로 이 기능을 발전시켜 보자
  • 필자는 :sh를 이용하여 vim의 내장 shell을 매우 적극적으로 활용했는데, 기본 동작은 vim의 pwd를 기준으로 interactive shell을 열어준다.
  • 위의 터미널 버퍼를 이용한 설정에는 vim의 pwd와 sync하는 부분이 빠져있다.
  • 기능을 추가하자
  • 방법은 터미널 버퍼를 열 때, feedkeys를 이용하여 pwd로 cd하는 명령을 보내는 것이다
    • 터미널 버퍼를 처음 열 때는 기본동작이므로, 열려있는 터미널 버퍼를 감지하여 재활용 할 때 사용한다.
    • pwd는 getcwd로 얻을 수 있고, 터미널 버퍼에 해당 path로 cd하는 명령만 추가적으로 보내주면 된다
    • 터미널 버퍼에 키를 보낼 때는 feedkeys를 활용한다
      • 단, 이미 열려있는 터미널 버퍼에 명령어가 입력되어 있는 경우가 있으므로 먼저 내용을 먼저 지워준다
function! OpenTerminal()
  for listed_buffer in filter(getbufinfo(), 'v:val.listed')
    let bufnr = listed_buffer.bufnr
    let buftype = getbufvar(bufnr, '&buftype')
    let buftype = (buftype == '' ? 'normal' : buftype)
    if buftype == 'terminal'
      execute 'buffer! ' .. bufnr
      let pwd = getcwd()
      " sync vim pwd
      call feedkeys("i\<C-u>cd " .. pwd .. "\<CR>")
      return
    endif
  endfor
  execute 'terminal!'

endfunction
  • 물론 키바인딩도 추가한다

    • 기존에 오랫동안 nnoremap <C-D> :sh<CR>를 이용하여 vim->내장 셸, 내장 셸 -> vim을 토글하는 키로 <C-D>키를 사용해 왔으므로, 터미널 버퍼로 같은 동작을 하는 키를 <C-D>로 하여 대체한다
      • nnoremap <C-D> :call OpenTerminal()<CR>
  • 문제는 다음과 같다

    • <C-D>키를 이용한 vim-셸 토글이 작동하지 않는다
      • 이는 Terminal-Job 모드에서 <C-D>를 입력하면 셸이 종료되며 이를 실행하던 버퍼도 같이 닫는 방식으로 동작하기 때문이다
      • 기존의 사용 경험으로는 다시 이전 vim buffer로 돌아오는 것이 편했으므로 다음 키바인딩을 추가한다
        • execute 'nnoremap <buffer> <C-D> :buffer! #<CR>'
      • 이 외, 필요하다고 생각하는 터미널 버퍼 local 설정도 추가한다
        • setlocal hidden
        • setlocal nonumber
        • setlocal nolist
    • execute buffer 부분에서 언제나 현재 열려있는 버퍼를 터미널 버퍼로 전환하므로, 터미널 버퍼를 다른 윈도우에 분할해서 사용하는 내 사용 방식에서는 불필요하게 두개의 윈도우가 하나의 터미널 버퍼를 연다.
    • 처음으로 터미널 버퍼를 열 때 setbufvarwinid를 지정해두고, 터미널 버퍼를 찾으면 먼저 해당 버퍼에 저장된 winid를 이용해 윈도우를 전환한 후 execute buffer를 실행하여 해결한다
  • 문제를 해결한 시점의 vimscript

~/.vim/autocmd/terminal.vim

function! SetupTerminalOpen() abort
  let term_bufnr = bufnr()
  setlocal hidden
  setlocal nonumber
  setlocal nolist
  " <C-D> : 이전 버퍼로 전환
  execute 'nnoremap <buffer> <C-D> :buffer! #<CR>'

  " <leader>cd : osc7_dir으로 pwd 설정
  execute 'nnoremap <buffer> <leader>cd :call SyncTerminalPwd()<CR>'

  call setbufvar(term_bufnr, 'winid', bufwinid(term_bufnr)) " save winid
endfunction

" TermOpen 이벤트에 대한 자동 명령
augroup TerminalKeymaps
  autocmd!
  autocmd TerminalOpen * call SetupTerminalOpen()
augroup END
function! OpenTerminal()
  for listed_buffer in filter(getbufinfo(), 'v:val.listed')
    let bufnr = listed_buffer.bufnr
    let buftype = getbufvar(bufnr, '&buftype')
    let buftype = (buftype == '' ? 'normal' : buftype)
    if buftype == 'terminal'
      let term_winid = getbufvar(bufnr, 'winid')
      if win_id2win(term_winid) != 0
        " terminal buffer window is opened
        " move cursor to the window
        call win_gotoid(term_winid)
      endif

      execute 'buffer! ' .. bufnr
      let pwd = getcwd()
      " sync vim pwd
      call feedkeys("i\<C-u>cd " .. pwd .. "\<CR>")
      return
    endif
  endfor

  execute 'terminal! ++curwin'

endfunction
  • 이정도 설정으로 잘 활용하고 있었으나, 사용 중

    • 내장 셸을 그래도 활용해야 하거나
    • 터미널로 전환시 항상 pwd를 sync하는 cd 명령을 보낼 필요가 없거나
      • 예를 들어, psql이나 python등의 REPL 프로그램을 터미널 버퍼에 실행시키고 있는 경우 해당 버퍼로 전환 할 때 마다 cd path가 입력되는 것이 불편했다
    • 1회용으로 잠깐 터미널을 열고 빠져나오는 경우가 있다는 것을 알게 되어 추가 설정에 들어갔다
  • g:open_terminal_mode 글로별 변수와 모드를 전환하는 키맵을 이용해 해결한다

let g:open_terminal_mode = 0
nnoremap <space><space><space> :call ToggleOpenTerminalMode()<CR>
  • g:open_terminal_mode는 4가지 값을 가질 수 있다

    • 0: :sh 사용
    • 1: :terminal 사용 (sync pwd)
    • 2: :terminal 사용 (sync pwd 용 cd 명령을 보내지 않음, REPL 작업용)
    • 3: :vsplit에서 :terminal 사용, 1회용으로 잠깐 command를 실행할 때
  • 모드 변경 및 동작방식 확인이 필요하므로 다음 help function을 추가한다

function! PrintOpenTerminalMode()
  let terminal_modes = [':sh', ':terminal (cd pwd)', ':terminal', ':terminal (vs)']
  let mode_repr_list = []
  for idx in range(len(terminal_modes))
    let t_mode = terminal_modes[idx]
    if g:open_terminal_mode ==# idx
      let t_mode = '< ' .. t_mode .. ' >'
    endif
    call add(mode_repr_list, t_mode)
  endfor
  echomsg join(mode_repr_list, ' | ')
endfunction

function! ToggleOpenTerminalMode()
  let g:open_terminal_mode = (g:open_terminal_mode + 1) % 4
  call PrintOpenTerminalMode()
endfunction
  • 다음은 메인 로직이다

function! OpenTerminal()
  call PrintOpenTerminalMode()
  if g:open_terminal_mode == 0
    execute ':sh'
    return
  endif

  if g:open_terminal_mode > 0
    for listed_buffer in filter(getbufinfo(), 'v:val.listed')
      let bufnr = listed_buffer.bufnr
      let buftype = getbufvar(bufnr, '&buftype')
      let buftype = (buftype == '' ? 'normal' : buftype)
      if buftype == 'terminal'
        let term_winid = getbufvar(bufnr, 'winid')
        if win_id2win(term_winid) != 0
          " terminal buffer window is opened
          " move cursor to the window
          call win_gotoid(term_winid)
        endif

        if g:open_terminal_mode == 3 && len(getwininfo()) == 1
          execute 'vsplit'
        endif
        execute 'buffer! ' .. bufnr
        if g:open_terminal_mode == 1
          let pwd = getcwd()
          " sync vim pwd
          call feedkeys("i\<C-u>cd " .. pwd .. "\<CR>")
        endif
        if g:open_terminal_mode == 3 && mode() == 'n'
          call feedkeys("i\<C-u>")
        endif
        return
      endif
    endfor

    if g:open_terminal_mode == 3
      execute 'vsplit'
    endif
    execute 'terminal! ++curwin'
  endif

endfunction
Claude by Anthropic's avatar
Claude by Anthropic

@[email protected]

Introducing Claude Sonnet 4.5—the best coding model in the world.

It's the strongest model for building complex agents. It's the best model at using computers. And it shows substantial gains on tests of reasoning and math.

Photo by Claude by Anthropic on September 29, 2025. May be a graphic of crossword puzzle, calendar and text that says 'Claude Sonnet 4.5 Agentic coding Verified 77.2% Claude Sonner4 74.5% 82.0% withpe poraTeTuoH GPT-5 79.4% 72.7% Gemini Agenticterminal Agentic terminal coding Jerminal-Dench Terminal Bench 72.8% 80.2% withp 50.0% 46.5% 74.5% GPT-5-Codex 67.2% Lse 86.2% 36.4% て2ーbench 86.8% 43.8% 70.0% 83.8% 25.3% 98.0% 81.1% Computeru OSWarld 63.0% Tdrtn 71.5% 63.0% Trririi 49.6% High cumpetition AIME2025 62.6% Tenun 96.7% 100% (खसा) 42.2% 78.0% Graduate-Jevel reasoning GFLA Diamand 70.5% 99.6% (yeeKKT) 83.4% MultilingualQ& MMMLU 94.6% 81.0% 88.0% 89.1% 76.1% Visual rensaning MMMU (validation) 89.5% 85.7% 77.8% 86.5% 86.4% analysis AAemc 77.1% 89.4% 55.3% 74.4% 50.9% 84.2% 82.0% 82. 44.5% 46.9% 29.4% AI'.
ALT text detailsPhoto by Claude by Anthropic on September 29, 2025. May be a graphic of crossword puzzle, calendar and text that says 'Claude Sonnet 4.5 Agentic coding Verified 77.2% Claude Sonner4 74.5% 82.0% withpe poraTeTuoH GPT-5 79.4% 72.7% Gemini Agenticterminal Agentic terminal coding Jerminal-Dench Terminal Bench 72.8% 80.2% withp 50.0% 46.5% 74.5% GPT-5-Codex 67.2% Lse 86.2% 36.4% て2ーbench 86.8% 43.8% 70.0% 83.8% 25.3% 98.0% 81.1% Computeru OSWarld 63.0% Tdrtn 71.5% 63.0% Trririi 49.6% High cumpetition AIME2025 62.6% Tenun 96.7% 100% (खसा) 42.2% 78.0% Graduate-Jevel reasoning GFLA Diamand 70.5% 99.6% (yeeKKT) 83.4% MultilingualQ& MMMLU 94.6% 81.0% 88.0% 89.1% 76.1% Visual rensaning MMMU (validation) 89.5% 85.7% 77.8% 86.5% 86.4% analysis AAemc 77.1% 89.4% 55.3% 74.4% 50.9% 84.2% 82.0% 82. 44.5% 46.9% 29.4% AI'.
Haze's avatar
Haze

@[email protected]

회사에서 딴 짓하고 싶다는 말에 터미널로 책을 읽으면 되는거 아니냐는 이야기가 나와서, 설마 Neovim 플러그인 중에 epub 플러그인이 있을까? 하고 알아봤다. 진짜 있다. vim 사용자들의 집념은 뭘까 진짜...

https://github.com/CrystalDime/epub.nvim

염산하

@[email protected] · Reply to Woojin Kim's post

@me 흠.. 이름이 어감이 좀...

Simon Willison's avatar
Simon Willison

@[email protected]

One of the new skills required to get the most out of AI-assisted coding tools - Claude Code, Codex CLI, etc - is designing agentic loops: carefully selecting tools to run in a loop to achieve a specified goal. Do this well and you can solve many coding problems with brute force

Here's my expanded explanation of what it means to design an agentic loop, how to do it safely (while running in YOLO mode!) and kinds of interesting problems this approach can be used to tackle simonwillison.net/2025/Sep/30/

하와와못하는딜🕯️'s avatar
하와와못하는딜🕯️

@[email protected]

뉴스 얘기

룸싸롱 접대가 업무에 영향 있었는지 알 수 없다고? 어 그럼... 지귀연이 룸싸롱 간 것도 맞도 룸싸롱에서 술 마신 것도 맞고 룸싸롱에 결제한 건 남이 해준 것도 맞는 거야...? 그냥 그걸 받아먹고 청탁 들어줬는지는 알 수 없다 이거야...? 그럼 받아먹은 건 맞다는 거야...? 근데 그냥 놔둔다고? 룸싸롱 접대는 받았는데? 이 말인가? 룸싸롱 얘기 너무 많아서 룸싸롱탈트 붕괴 올 것 같음.
일단 룸싸롱 접대를 맞는 거 자체가 문제 아닌가? 접대 너무 많이 받아처먹어서 뇌가 이상해졌나? 그것도 룸싸롱 접대를?

염산하

@[email protected] · Reply to 염산하's post

@purengom 여하간 사람들이 카톡을 어떻게 쓰는지 카톡만 몰랐던 것인가... 싶고요

염산하

@[email protected] · Reply to 푸른곰's post

@purengom 카톡은 AI 때문이라기엔... ㅎㅎ

푸른곰's avatar
푸른곰

@[email protected]

맥북 에어에서 제일 마음 드는 포트를 하나 꼽으라고 하면 3.5mm 헤드폰 포트 라고 대답할까봐요. 정말 괜찮네요.

염산하

@[email protected] · Reply to Woojin Kim's post

@me 사람이 어느 정도 간단히 상상할 수 있는 것들의 관계에서는 뉴턴 방식으로 생각하는 게 사실 더 직관적이긴 하죠 사과가 길을 따라가다니 뭔 소린가 싶고 ㅎㅎㅎ

염산하

@[email protected]

궤도가 이동진의 파이아키아 채널에 나와서 인터스텔라 영화에 대해 이야기하는 영상을 봤다. 거기서

광자는 질량이 없는 것으로 여겨진다. 그런데 블랙홀은 빛도 탈출할 수 없는 곳이다. 뉴턴의 법칙에 따르면 광자가 질량이 없다면 중력과 상호작용하지 않을 것이다. 그래서 블랙홀이 있다고 해도 빛에 영향을 주지 않을 것이다. 중력이 시공간의 형태에 의해서 나타나는 현상이라고 해야 블랙홀로 빛이 끌려가는 현상이 설명 가능하다.

라는 취지로 설명하는 것을 들었는데, 이런 식의 설명은 처음 들어봤다. 오호...

염산하

@[email protected] · Reply to Woojin Kim's post

@me 저도 이번에 깜짝 놀랐지 뭡니까...

염산하

@[email protected]

종립님이 인상적이라고 하신 리스크 테이커를 읽기 시작했다. 이 사람이 네이트 실버구나...

염산하

@[email protected] · Reply to 염산하's post

공부는 스스로, 하고 싶은 것을 배우고 익히는 것. 지식보다 사고력. 대학교육 자체는 통계적으로 유의미한 사고력 증진을 끌어내지 못했다.

염산하

@[email protected] · Reply to 염산하's post

공부의 재발견. 최근의 학습과학의 성과를 알리고 교육이 아닌 “공부”에 집중하고자 함, 이라고 서문에서 이야기하는 책. 마인드스케일 좋아하는데 요 책도 그래서 좋았다. 흠? 혹시 이 교수님도 유튜브 하시려나?

염산하

@[email protected] · Reply to Woojin Kim's post

@me 저 그거 알아요 F1 피트 스탑!

염산하

@[email protected] · Reply to Woojin Kim's post

@me 둘 다를 골라야 합니다 저는.

염산하

@[email protected]

아니 사람들이 이렇게나 카톡 프로필에 사진을 많이 올렸었나? 인스타랑 다를 바가 없었네...

Older →