dotfilesã®ã»ããã¢ããã¹ã¯ãªãããæ¹è¯ãã
å°ãåãŸã§ã¯ã·ã³ããªãã¯ãªã³ã¯ã®äœæããããŠãããªãã»ããã¢ããããæ°ã®ãªãsetup.shã§ããã
ãããããã§ã¯ããOSã®ã¯ãªãŒã³ã€ã³ã¹ããŒã«ãããPCã®è²·ãæ¿ãããªã©ã§ç°å¢ã®åæ§ç¯ãããªããã°ãªããªãæãéåžžã«æéãæãã£ãŠããŸããŸããããåã®ç°å¢ãšå šç¶éããããããšãã£ãç¶æ³ã«é¥ã£ãŠããŸããŸãã
ãªã®ã§ãèªåååºæ¥ãããªæã¯èªååããŠã¿ãã!! ãšããããšã§ãã»ããã¢ããã¹ã¯ãªããã®æ¹è¯ã«æ²¡é ããŸããã
ãã¢
ãªããžããª
å®è¡æ¹æ³
ããèŠãããã¯ã³ã³ãã³ãæ¹åŒã§ãã
bash -c "$(curl -LSs https://raw.github.com/n2kia4/dotfiles/master/setup.sh)"
å°ãåãŸã§ã¯ãã決ãŸãã®ã¹ãªãŒã³ãã³ã(clone, cd, å®è¡)æ¹åŒã ã£ãã®ã§ãããå°ãã§ã楜ã«ç°å¢ã®åæ§ç¯ããããç§ã¯ãã¯ã³ã³ãã³ãã§ã»ããã¢ãããè¡ãªã£ãŠããŸã(ãã£ãŠããããšã¯åãã§ã)ã
ã»ããã¢ããããã»ã¹
ã»ããã¢ããããã»ã¹ã¯ãããªæãã§ãã
OSã®ãã§ãã¯
dotfilesã®ããŠã³ããŒã:
Gitã䜿ãã ->
git clone
Gitã䜿ããªã ->
curl
ã·ã³ããªãã¯ãªã³ã¯ã®äœæ
Homebrewã®ã€ã³ã¹ããŒã«
-> ã€ã³ã¹ããŒã«æžã¿ãªãSKIP
Homebrewã®ã¢ããããŒã
Homebrewã®åé¡ããã§ãã¯
ããã±ãŒãžã®ã€ã³ã¹ããŒã«
-> ã€ã³ã¹ããŒã«æžã¿ãªãSKIP
Vimãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«
Vimãã©ã°ã€ã³ã®ã¢ããããŒã
ãã°ã€ã³ã·ã§ã«ã®å€æŽ
-> æ¢ã«ãã°ã€ã³ã·ã§ã«ã$(which zsh)ãªãSKIP
ã·ã§ã«ã®ãªããŒã
ã³ãŒãæ§æ
ããã»ã¹æ¯ã«é¢æ°ãäœããmainé¢æ°ã§ãŸãšããŠããŸãã
#!/bin/bash check_os() { os_name="$(uname)" if [ "$os_name" != "Darwin" ]; then print_error "Sorry, this script is intended only for macOS" exit 1 fi } download_dotfiles() { #... } #... main() { check_os download_dotfiles symbolic_links install_homebrew install_packages install_vim_plugins update_vim_plugins change_login_shell reload_shell } main
çµããã«
ã ãã¶ç°å¢ã®åæ§ç¯ã楜ã«ãªããŸãããä»åŸãæ¹è¯ãç¶ããŠããããšæããŸãã
(Python3)venvã®activateãšdeactivateãèªååãã
ç§ã¯pyenv + pyenv-virtualenvã䜿ãããHomebrewã§å ¥ããPython3 + æšæºã©ã€ãã©ãªã®venvã䜿ã£ãŠããã®ã§ãããactivateãšdeactivateã®ã³ãã³ããæã€ã®ãé¢åèãã®ã§èªååããŸããã
ç°å¢
macOS Sierra 10.12.3
èªåå
ã³ãŒãäŸã眮ããŸãã®ã§ã.zshrc(.bashrc)ãããã£ãŠãã ããã
chpwd() { if [ -d venv ]; then source venv/bin/activate elif [ "$VIRTUAL_ENV" != "" ]; then deactivate fi }
ããã§cdå
ã«venv/ãããã°source venv/bin/activate
ãvenv/ããªã+ä»®æ³ç°å¢ãæå¹ã«ããŠããã°deactivate
ãèªåã§è¡ã£ãŠãããŸãã
çµããã«
ä»®æ³ç°å¢ãäœæããéã«ã¯ãéæšå¥šã«ãªã£ãpyvenv
ã§ã¯ãªãpython3 -m venv
ã䜿ããŸãããã
Play framework 2.5ã§Bootstrap
æè¿ã¯ScalaãæžããŠããã®ã§ãPlay framework2.5ã«ã€ããŠæžãããšæããŸãã
æå§ãã«Bootstrapã®å°å ¥æ¹æ³ããã
éçºç°å¢
Play framework 2.5.10
Bootstrapã®å°å ¥
build.sbt
ã«äŸåæ§ãå®çŸ©ããŸãã
libraryDependencies ++= Seq( ... ... "org.webjars" % "bootstrap" % "3.3.7" )
IntelliJ IDEAãã䜿çšã®å Žåã¯ãAuto importãæå¹ã«ããŠãããšèªåã§äŸåé¢ä¿ãæŽæ°ããŠãããã®ã§éåžžã«äŸ¿å©ã
ä»åã®äŸã§ã¯3.3.7ã䜿çšããŸãããWebJarsã§ã®ææ°çã¯4.0.0-alpha.5ã§ã(2017/1/30)ã
main.scala.html
ã«ãŠå©çšããã
<head> ... ... <link rel="stylesheet" href="@routes.Assets.versioned("lib/bootstrap/css/bootstrap.css")"> ... ... </head>
çµããã«
ç Žå£çãªå€æŽãå€ããããPlay2.5ç³»ã®äººå£ã¯å°ãªãã®ããªãæ å ±ãå°ãªãããã
lsã®è²ä»ã + cdãããls
zshã®lsã³ãã³ãã䟿å©ã«ããŠã¿ãŸããã
åèèšäº: LS_COLORSを設定しよう - Qiita
lsã«è²ãä»ããŠèŠããã
ãŸãMacã«ã¯BSDçã®lsããå ¥ã£ãŠããªãã®ã§ã GNUçã®lsã䜿ããããã«ããŸãã
Homebrewçµç±ã§coreutils(Unixç³»ã®OSã§äžå¿çãªcatãlsãrmãªã©ã®ãŠãŒãã£ãªãã£çŸ€ã®ããã±ãŒãž)ãã€ã³ã¹ããŒã«ããŸãã
$ brew install coreutils
åã¯Terminal, Vimã®ã«ã©ãŒã¹ããŒã ãsolarizedã«ããŠããã®ã§ãä»åèªã¿èŸŒãã«ã©ãŒèšå®ãdircolors-solarizedã«ããŸãã
$ git clone https://github.com/seebi/dircolors-solarized.git
.zshrcã«ãŠdircolors.ansi-universalãèªã¿èŸŒãã§ã¿ãŸãã
eval $(gdircolors ~/dircolors-solarized/dircolors.ansi-universal)
zshã®è£å®æ©èœã«ãè²ãä»ããŠèŠããã
ãã¡ãã.zshrcã«æžã蟌ã¿ãŸãã
if [ -n "$LS_COLORS" ]; then zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} fi
cdãããls
cdã§ãã£ã¬ã¯ããªã移åããŠããäžèº«ã確èªããããã«lsãããããšã£ãŠããªãå€ãã
æ¯åºŠé¢åãªã®ã§ããã£ã¬ã¯ããªã移åãããšåæã«gls -AF --color=auto
ãå®è¡ãããŸãã
chpwd() { gls -AF --color=auto }
çµããã«
äžèšã«å ããŠlsãglsã«çœ®ãæãããšã€ãªã¢ã¹ãcdãªãã§ãã£ã¬ã¯ããªç§»åãåºæ¥ãauto_cdã®èšå®ãããŠãããšäŸ¿å©ããšã
ããã§ãŸãå°ãTerminalã©ã€ããå¿«é©ã«ãªããŸããã
rpwgã®ã¢ã«ãŽãªãºã ãæ¹åãã話
ä»å¹Žãããšæ°æéã§çµãã£ãŠããŸããŸããã
ãããªäžãã€ãéãRustãæžããŠããåã§ããŠãrpwgã®ã¢ã«ãŽãªãºã ãè¯ãæãã«æ¹ååºæ¥ãã®ã§ã2016幎æåŸã«ãªãã§ãããèšäºãæžãããšæããŸãã
æ¹åå
ãŸãæ¹ååã®ã¢ã«ãŽãªãºã ããæžããŠãããŸããã
ããã©ã«ã(rpwg
)ã§å®è¡ãããša-z, A-Z, 0-9ã®äžããã©ã³ãã ã«8æååãåºããæååã«å€ããŠåºåããã£ãŠä»çµã¿ã§ããã
ã§ããããã ãšè²ã ãšåé¡ããã£ãŠãa-z, A-Zã ã£ãããa-z, 0-9ã ã£ãããææªã®å Žå0-9ã®ã¿ã§æ§æããããã¹ã¯ãŒãã«ãªã£ãŠããŸããã§ãããã
ããã«rpwg -S
ã§ç¹æ®èšå·ãå«ãã-Sãªãã·ã§ã³ãä»ããŠããçæããããã¹ã¯ãŒãã«ç¹æ®èšå·ãå«ãŸããŠããªããªããŠããšã«ãã
ããã ãšå®å šæ§ã®ä¿èšŒããªãã®ã§æ¹åããããšã«ããŸããã
æ¹ååŸ
次ã«æ¹ååŸã®ã¢ã«ãŽãªãºã ã§ããã¡ããrpwg
ã§å®è¡ããå Žåã§è©±ãé²ããŠãããŸãã
â a-zãã1æåãA-Zãã1æåã0-9ãã1æåãã©ã³ãã ã«åãåºãVec
â¡a-z, A-Z, 0-9ãã5æå(æå®ã®é·ã:8 - â ã§ã®æåæ°:3)ãã©ã³ãã ã«åãåºãâ ã®Vec
â¢é åã®äžèº«ãã·ã£ããã«ããæååã«å€ããŠåºåããã
ããã«ããå°ãªããšã1æå以äžã¯ã¢ã«ãã¡ãããå°æåã倧æåãæ°åããã¹ã¯ãŒãã«å«ããããšãã§ããŸããã
rpwg -S
ã§ç¹æ®èšå·ãå«ãã-Sãªãã·ã§ã³ãä»ããå Žåã§ããã¢ã«ãã¡ãããå°æåã倧æåãæ°åãç¹æ®èšå·ã®ããæäœ1æåãã€ããã¹ã¯ãŒãã®äžã«å«ããããšãã§ããŸãã
ããããã¹ããã©ã¯ãã£ã¹ãã©ããã¯åãããŸããããæ¹ååãã確å®ã«å®å šæ§ãäžããããšãã§ããŸããã
çµããã«
幎æãããã¯ãŸãå°ããã€rpwgã®æ¹åãããªããããããããšåŠãã§ãããããªãšã
ããšClapã«é¢ããèšäºããã€ãæžãããšæã£ãŠããŸãã
Rustã§ãã¹ã¯ãŒãçæããŒã«ãäœã£ã話
Rustã§ã©ã³ãã ãã¹ã¯ãŒããçæããCLIããŒã«ãäœããŸããã
command line parserã«clapãã©ã³ãã ãªæååãçæããããã«randã䜿çšã
https://github.com/n2kia4/rpwg
çµç·¯
clapããæãã ããRustã§äœãCLIããŒã«äœã£ãŠã¿ãã âš æ®æ®µãããããäžè©±ã«ãªã£ãŠããHomebrewã§ã€ã³ã¹ããŒã«ããpwgen
ãRustã§æžããŠã¿ããããšããéãªæãã§ãã
ã€ã³ã¹ããŒã«
cargo install
ã§ããŒã«ã«ã«ã€ã³ã¹ããŒã«ããããšãåºæ¥ãŸãã
$ cargo install rpwg
䜿ãæ¹
䜿ãæ¹ã¯ä»¥äžã®éãã
$ rpwg [FLAGS] [OPTIONS]
rpwg
ã§å®è¡ãããšãa-z, A-Z, 0-9, ç¹æ®èšå·ã®äžããã©ã³ãã ã§8æååãåºãããã¹ã¯ãŒããçæããŸãã
(a-z, A-Z, 0-9, ç¹æ®èšå·ã¯ããããå°ãªããšã1æåã¯ãã¹ã¯ãŒãã«å«ãŸããŸã)
FLAGS
$ rpwg -0
æ°åãé€ãã
$ rpwg -A
ã¢ã«ãã¡ãããã®å€§æåãé€ãã
$ rpwg -S
ç¹æ®èšå·ãé€ãã
OPTIONS
$ rpwg -l <LENGTH>
ãã¹ã¯ãŒãã®é·ããæå®ã
$ rpwg -q <QUANTITY>
çæããæ°éãæå®ã
$ rpwg -n <NUMBER_COUNT>
ãã¹ã¯ãŒãã«å«ããæ°åã®æåæ°ãæå®ããŸãã
$ rpwg -u <UPPER_COUNT>
ãã¹ã¯ãŒãã«å«ããã¢ã«ãã¡ããã倧æåã®æåæ°ãæå®ããŸãã
$ rpwg -c <LOWER_COUNT>
ãã¹ã¯ãŒãã«å«ããã¢ã«ãã¡ãããå°æåã®æåæ°ãæå®ããŸãã
$ rpwg -s <SYMBOL_COUNT>
ãã¹ã¯ãŒãã«å«ããç¹æ®èšå·ã®æåæ°ãæå®ããŸãã
çµããã«
åããŠRustã§CLIããŒã«ãäœã£ãã®ã§ãããç¡äºã«v0.1.0ãšããŠcrates.ioã«å ¬éåºæ¥ãŸããã
å¿ èŠæäœéã®æ©èœããå®è£ åºæ¥ãŠããªãã®ã§ãããããæ¹è¯éããŠãããŸãã
è¿œèš
ã³ãã³ããå¢ã次第ã説æåãéæè¿œå æŽæ°èŽããŸãã
Versionãäžããéã¯cargo install rpwg -f
ã§ããããããš(çŸåšv0.3.0ãææ°ç)ã
RustãåŠã³å§ãã
ã¿ã€ãã«éãRustãåŠã³å§ããŸããã
ã®ã§ããšããããRustã®æŠèŠ + ã€ã³ã¹ããŒã« + Hello, world! ã«é¢ããèšäºã§ãæžããšããŸãã
Rustãšã¯
Mozillaãäžå¿ãšãªã£ãŠãªãŒãã³ãœãŒã¹ã§éçºãããŠããèšèªã
ãã調æ»ã«ãããŠéçºè ã«æãããŠããèšèªã©ã³ãã³ã°ã§1äœãç²åŸããããã§ãforkæ°(12æ18æ¥çŸåš:3721)ãèŠãŠãæããèšèªã ãªããšå®æããŸããã
å®å šæ§ãé床ã䞊è¡æ§ã«ãã©ãŒã«ã¹ããC++ã«ãå¹æµããæ§èœãéçºã掻çºãèšèªä»æ§ãçŽ æŽããããšãã£ãç¹ãç¹åŸŽã§ãããã
Install
å ¬åŒãµã€ã: The Rust Programming Language
$ curl https://sh.rustup.rs -sSf | sh
Hello, world!
ãã¡ããåèã«å®è£ ããŸãã(æ¥æ¬èªVerã¯ãã¡ã)
$ mkdir hello_world && cd hello_world
main.rsãäœæããã³ãŒããæžããŠãããŸãã
fn main() { println!("Hello, world!"); }
次ã¯ã³ã³ãã€ã«ãšå®è¡ã
$ rustc main.rs
$ ./main
å®äºã§ããã ã§ãããRustã«ã¯ãã«ãã·ã¹ãã ãããã±ãŒãžãããŒãžã£ããããžã§ã¯ã管çãåããCargoããããŸãã
Cargoã䜿ã£ãHello, world!
å®è¡å¯èœã¢ããªã±ãŒã·ã§ã³ãäœãé㯖binããã©ã€ãã©ãªãäœãéã¯å¿ èŠãããŸããã
$ cargo new hello_world --bin && cd hello_world
çæããããã¡ã€ã«ã¯src/main.rs, Cargo.toml, .gitignoreã®3ã€ãCargo.tomlã¯èšå®ãã¡ã€ã«ã§ãAuthorsã®å€ã¯git configãåºã«çæãããŸãã
src/main.rsãèŠããšãå ã»ã©ã®main.rsãšåæ§ã®ã³ãŒããæ¢ã«çšæãããŠããŸããã§ã¯ãã«ããšå®è¡ãã
$ cargo build
$ cargo run
å®äºã§ãããã¡ãªã¿ã«æé©åãæããéã¯build, runå ±ã«–releaseãã€ããŸãããã
ãšãŸããããªæãã§ã