์ถ˜์„ค - ํ™ฉ๋ณ‘๊ธฐ

๋ˆˆ์ด ์˜ฌ ๋•Œ๋ฉด ์Šˆ๋ฒ ๋ฅดํŠธ์˜ ๊ฒจ์šธ๋‚˜๊ทธ๋„ค์™€ ํ•จ๊ป˜ ๊ผญ ๋“ฃ๋Š” ๊ณก์ด๋‹ค. ์˜› ๋ช…์ธ๋“ค์˜ ๊ตฌ์ˆ˜ํ•˜๊ณ  ๋‹ด๋ฐฑํ•œ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์Œ์ƒ‰์ด ๋ง‘๊ณ  ์ฒญ์•„ํ•˜๋‹ค. ์ด ๊ณก์€ ๊ทธ๊ฐ€ ์ƒ์•  ํ›„๋ฐ˜์— ๋ฐœํ‘œํ•œ ๊ณก์ด๊ณ  ๊ทธ๋ž˜์„œ ๋”์šฑ ์™„์„ฑ๋„๊ฐ€ ๋†’๋‹ค. ํ˜„๋Œ€์  ๊ฐ๊ฐ๊ณผ ์‚ฐ์กฐ์˜ ์ „ํ†ต ๊ฐ€๋ฝ์ด ์ž˜ ์–ด์šฐ๋Ÿฌ์ ธ ์ถ˜์„ค์˜ ํ’๊ฒฝ์ด ์•„๋ฆ„๋‹ต๊ฒŒ ํŽผ์ณ์ง„๋‹ค. ์ด์ œ๋Š” ๊ณ ์ธ์ด ๋˜์‹  ๋ช…์ธ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ธฐ๋ฆฌ๊ณ  ์ข‹์€ ๊ณก์„ ๋‚จ๊ฒจ ์ฃผ์‹  ๊ฒƒ์— ๊ฐ์‚ฌ ๋“œ๋ฆฐ๋‹ค. 00:00 ์กฐ์šฉํ•œ ์•„์นจ (Calm Morning) 01:10 ํ‰ํ™”๋กญ๊ฒŒ (Peacefully) 03:53 ์‹ ๋น„๋กญ๊ฒŒ (Mysteriously) 05:36 ์ต์‚ด์Šค๋Ÿฝ๊ฒŒ (Humorously)

2022-09-24 ยท (updated 2025-06-25) ยท 69 words

์•„๋ฆฌ๋ž‘ - Bruskers Guitar Duo

์„ธ์›”ํ˜ธ ํฌ์ƒ์ž๋“ค์„ ๊ธฐ๋…ํ•˜์—ฌ Bruskers Guitar Duo ๊ฐ€ ์—ฐ์ฃผํ•œ ์ž‘ํ’ˆ. Youtube์—์„œ ๋ฐœ๊ฒฌํ•œ ๊ฐ€์žฅ ์•„๋ฆ„๋‹ค์šด ์•„๋ฆฌ๋ž‘ ์—ฐ์ฃผ๊ฐ€ ์•„๋‹๊นŒ ํ•œ๋‹ค. ์„ ๋ณ„ ๊ธฐ์ค€์€ ์—ญ์‹œ ๋‚ด๊ฒŒ ๊ฐ๋™์„ ์ฃผ๋Š”๊ฐ€์ด๋‹ค.

2022-09-24 ยท (updated 2025-06-25) ยท 23 words

Lua - Interactive Mode

2023-08-11: rlwarp + readline์„ ํ™œ์šฉํ•œ ํ‚ค์›Œ๋“œ ์™„์„ฑ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ Intro ์ฝ”๋”ฉ์„ ํ•˜๊ธฐ ์ „ ๋˜๋Š” ๋น ๋ฅธ ํ™•์ธ์„ ์œ„ํ•ด ์ธํ„ฐ์—‘ํ‹ฐ๋ธŒ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋‚˜ ๋ช‡๊ฐ€์ง€ ์‹คํ—˜์„ ํ•ด๋ณด๋Š” ์šฉ๋„๋กœ์„œ ์ข‹๋‹ค. ilua๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด jupyter console, notebook ๋“ฑ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. Execute String $ lua -e 'print("hello world")' hello world Interactive Mode lua -i ๋˜๋Š” luajit -i ๋กœ interactive mode๋กœ ์ง„์ž… -i ์˜ต์…˜์ด ์—†์–ด๋„ ์ง„์ž… ๊ฐ€๋Šฅ local ๋ณ€์ˆ˜๊ฐ€ ๋‹ค์Œ ๋ผ์ธ์—์„œ ์ธ์‹๋˜์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ $ lua -i -- ๋˜๋Š” luajit -i > local a = 'hello world' -- local ๋ณ€์ˆ˜ ์„ค์ • > print(a) -- print nil -- ๊ฒฐ๊ณผ: nil > a = 'hello world' -- Global ๋ณ€์ˆ˜ ์„ค์ • > print(a) -- print hello world -- ๊ฒฐ๊ณผ: hello world > os.exit() -- ์ข…๋ฃŒ: ๋˜๋Š” Ctrl+d, Ctrl+c Opening Lua File > f = assert(loadfile('foo.lua') -- luaํŒŒ์ผ ๋กœ๋“œ > f() -- ์‹คํ–‰ > dofile('foo.lua') -- ๋กœ๋“œ ๋ฐ ์‹คํ–‰ > m = require('mymodule') -- mymodule.lua ๋ชจ๋“ˆ ๋กœ๋“œ > m.parse() -- ๋ชจ๋“ˆ๋‚ด ํ•จ์ˆ˜ ์‹คํ–‰ Load Libary Example -- file 'lib1.lua' function norm(x,y) local n2 = x^2 + y^2 return math.sqrt(n2) end function twice(x) return 2*x end > dofile('lib1.lua') -- load your library > n = norm(3.4, 1.0) -- using lib1.lua functions > print(twice(n)) -- using twice functions Command Line Arguments (-- /dev/null ์˜ต์…˜ ์ฃผ๋ชฉ) $ lua -i -- /dev/null one two three > print(arg[1]) -- one > print(arg[2]) -- two > print(arg[3]) -- three > print(arg[0]) -- /dev/null Lua, LuaJit line completion like in bash bash์—์„œ line completion๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ rlwrap ํ™œ์šฉ - -a:always-readline,-c:complete-filenames,-e:extra-char-after-completion $ sudo apt install rlwrap $ alias luajit='rlwrap -ac -e "" -pRed luajit' # add this line to ~/.bashrc $ luajit > = 2 + 2 4 > = 2 + 2 --> ํ™”์‚ดํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์œ„ ๋ช…๋ น๋ผ์ธ์„ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. rlwarp์˜ readline์„ ํ™œ์šฉํ•œ ๋ช…๋ น์–ด ์™„์„ฑ: Dictionary ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉ. $ echo "print local assert string ..." > ~/.luadict $ alias luajit='rlwrap -b "" -f $HOME/.luadic -pRed -ca -e "" luajit' $ luajit > ass(-> Press Tab Key anc Check) iLua : with Jupyter Jupyter์˜ ๋ง‰๊ฐ•ํ•œ ์ง€์›์•„๋ž˜ ์ฝ˜์†”ํ˜• ์ธํ„ฐ์—‘ํ‹ฐ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ์™„์„ฑ ๋ฐ vi edit mode ๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ ์ถœ๋ ฅ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌผ๋ก  ํŠน์„ฑ์ƒ local ๋ณ€์ˆ˜๋Š” ์—ญ์‹œ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๊ทธ๋ ‡๋‹ค. ~/.local ์ดํ•˜์— jupyter ๋ฐ ilua๊ฐ€ ์„ค์น˜๋œ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ vi edit mode๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋”์šฑ ํŽธ๋ฆฌํ•˜๋‹ค. $ pip install ilua $ echo "c.ZMQTerminalInteractiveShell.editing_mode='vi'" > ~/.jupyter/jupyter_console_config.py $ jupyter console -h # help $ jupyter kernelspec list # ๋‚ด์žฅ ์ปค๋„ ์ŠคํŽ™ ํ™•์ธ $ ~/.local/bin/ilua -i lua[jit] # ์‹คํ–‰ $ echo "alias ilua='ilua -i luajit'" >> ~/.bashrc # luajit ์ „์šฉ alias $ source ~/.bashrc $ ilua Links https://www.lua.org/pil/1.1.html https://www.tutorialspoint.com/command-line-arguments-in-lua https://lua-users.org/wiki/InteractiveLua https://github.com/guysv/ilua https://jupyter-console.readthedocs.io/en/latest/config_options.html

2022-09-22 ยท (updated 2023-08-11) ยท 422 words

์–ผ๊ตด - ์‹ฌ๋ด‰์„ ์‹œ/ ์‹ ๊ท€๋ณต ๊ณก

์ด ๊ณก์˜ ์‚ฌ์—ฐ์€ ๋‚˜๋ฌด์œ„ํ‚ค ์— ์ž˜ ๋‚˜์™€ ์žˆ๋‹ค. ์ •๋ง ๋งŽ์€ ์‚ฌ๋žŒ์ด ๋ถˆ๋ €์ง€๋งŒ ๋‚ด ๋งˆ์Œ์— ๊นŠ์€ ์šธ๋ฆผ์„ ์ฃผ๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. ์ด ๊ณก์„ ๋“ค์œผ๋ฉด ์™œ ๋ˆˆ๋ฌผ์ด ๋‚˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์–ผ๊ตด - ์‹ฌ๋ด‰์„ ์‹œ/ ์‹ ๊ท€๋ณต ๊ณก ๋™๊ทธ๋ผ๋ฏธ ๊ทธ๋ฆฌ๋ ค๋‹ค ๋ฌด์‹ฌ์ฝ” ๊ทธ๋ฆฐ ์–ผ๊ตด ๋‚ด ๋งˆ์Œ ๋”ฐ๋ผ ํ”ผ์–ด๋‚˜๋˜ ํ•˜์–€ ๊ทธ๋•Œ ๊ฟˆ์„ ํ’€์žŽ์— ์—ฐ ์ด์Šฌ์ฒ˜๋Ÿผ ๋น›๋‚˜๋˜ ๋ˆˆ๋™์ž ๋™๊ทธ๋ž—๊ฒŒ ๋™๊ทธ๋ž—๊ฒŒ ๋งด๋Œ๋‹ค ๊ฐ€๋Š” ์–ผ๊ตด ๋™๊ทธ๋ผ๋ฏธ ๊ทธ๋ฆฌ๋ ค๋‹ค ๋ฌด์‹ฌ์ฝ” ๊ทธ๋ฆฐ ์–ผ๊ตด ๋ฌด์ง€๊ฐœ ๋”ฐ๋ผ ์˜ฌ๋ผ๊ฐ”๋˜ ์˜ค์ƒ‰๋น› ํ•˜๋Š˜๋‚˜๋ž˜ ๊ตฌ๋ฆ„ ์†์— ๋‚˜๋น„์ฒ˜๋Ÿผ ๋‚˜๋ฅด๋˜ ์ง€๋‚œ๋‚  ๋™๊ทธ๋ž—๊ฒŒ ๋™๊ทธ๋ž—๊ฒŒ ๋งด๋Œ๊ณค ํ•˜๋Š” ์–ผ๊ตด ์†Œํ”„๋ผ๋…ธ - ์ •์ง€์› ๋ฐ”๋ฆฌํ†ค - ๊น€์žฌ์„ญ ์†Œํ”„๋ผ๋…ธ - ์‹ ์˜์˜ฅ ์†Œํ”„๋ผ๋…ธ - ์ดํ•ด์›

2022-09-18 ยท (updated 2025-06-26) ยท 87 words

๋‚˜์˜ ์™ธ๋กœ์›€์ด ๋„ˆ๋ฅผ ๋ถ€๋ฅผ ๋•Œ - ์žฅํ•„์ˆœ

์–ธ์ œ๋‚˜ ๋“ค์œผ๋ฉด ๊ฐ€์Šด์ด ๋จน๋จนํ•ด์ง€๊ณ  ๋ˆˆ๋ฌผ์ด ๋‚˜๋Š” ๊ณก. ์ฐจ๋ถ„ํ•˜๊ณ  ์กฐ์šฉํ•œ ๊ทธ๋ฆฌ๊ณ  ๊พธ๋ฐˆ์—†๋Š” ์†Œ๋ฆฌ์— ์ด๋‚ด ๊ทธ๋ฆฌ์›€์— ์ –์–ด๋“ค๊ณ  ๋งŒ๋‹ค. ๋‚˜์˜ ์™ธ๋กœ์›€์ด ๋„ˆ๋ฅผ ๋ถ€๋ฅผ ๋•Œ - ์žฅํ•„์ˆœ ๋„ ์œ„ํ•œ ๋‚˜์˜ ๋งˆ์Œ์ด ์ด์ œ๋Š” ์กฐ๊ธˆ์”ฉ ์‹์–ด๊ฐ€๊ณ  ์žˆ์–ด ํ•˜์ง€๋งŒ ์žŠ์ง„ ์•Š์•˜์ง€ ์ˆ˜๋งŽ์€ ๊ฒจ์šธ๋“ค ๋‚˜๋ฅผ ๊ฐ์‹ธ์•ˆ๋˜ ๋„ˆ์˜ ์†์„ ์„œ๋Š˜ํ•œ ๋ฐ”๋žŒ์ด ๋ถˆ์–ด์˜ฌ ๋•Œ์ฏค์—” ๋˜๋‹ค์‹œ ์‚ด์•„๋‚˜ ๊ทธ๋Š˜์ง„ ๋„ˆ์˜ ์–ผ๊ตด์ด ๋‹ค์‹œ ๋‚ด๊ฒŒ ๋Œ์•„์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฑธ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ฐ€๋”์”ฉ ์˜ค๋Š˜ ๊ฐ™์€ ๋‚  ์™ธ๋กœ์›€์ด ๋„ ๋ถ€๋ฅผ ๋• ๋‚ด ๋งˆ์Œ ์†์— ์กฐ์šฉํžˆ ์ฐพ์•„์™€์ค˜ ๋„ ์œ„ํ•œ ๋‚˜์˜ ๊ธฐ์–ต์ด ์ด์ œ๋Š” ์กฐ๊ธˆ ์”ฉ ์ง€์›Œ์ง€๊ณ  ์žˆ์–ด ํ•˜์ง€๋งŒ ์žŠ์ง„ ์•Š์•˜์ง€ ํž˜๊ฒจ์šด ์–ด์ œ๋“ค ๋‚˜๋ฅผ ์ง€์ผœ์ฃผ๋˜ ๋„ˆ์˜ ๊ฐ€์Šด ์ด๋ ‡๊ฒŒ ๋‚ด ๋ง˜์ด ์„œ๊ธ€ํผ์งˆ ๋•Œ๋ฉด ๋˜๋‹ค์‹œ ์‚ด์•„๋‚˜ ๊ทธ๋Š˜์ง„ ๋„ˆ์˜ ์–ผ๊ตด์ด ๋‹ค์‹œ ๋‚ด๊ฒŒ ๋Œ์•„์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฑธ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ฐ€๋”์”ฉ ์˜ค๋Š˜ ๊ฐ™์€ ๋‚  ์™ธ๋กœ์›€์ด ๋„ ๋ถ€๋ฅผ ๋• ๋‚ด ๋งˆ์Œ ์†์— ์กฐ์šฉํžˆ ์ฐพ์•„์™€์ค˜

2022-09-17 ยท 119 words