まず、読み物としておもしろかったです。
本書中に名前がでてこないけれど、何年も前にテレビ番組で勝間和代さんを論破したことになっている話とかについて書かれていたりもする。
おそらく、本書を手にする方は、西村博之さんの議論時のノウハウについて興味があって、そこから何かを得ようとしていると思うけれど、本書は議論時に論破する手法について西村博之さんの持論、いや事実が書かれているが、おそらくそれをそのまま鵜呑みしても議論時の論破力が向上するとは思えない。
個人的には、西村博之さんは自分自身を記憶力悪いと言っているけれど、そんなことなくて、知識量豊富で引き出し多いし頭の回転が早いと思うので、そもそも頭がいいか、議論の場数をこなさないと議論の論破力は強くならないじゃないかと思った。
なので、本書を読んだだけで議論での論破が強くなる気はしない。
あと、本書は西村博之さんが過去に動画で話していたりしたこととかも書かれている。
2018年10月13日土曜日
2018年10月11日木曜日
Node express ect multerのサンプルをGitHubで公開
以前にNode express ect multerでファイルアップロードする機能を実装した記事を書いた。
今回は、そのNodeのプロジェクトを少しブラッシュアップして、GitHubに登録、公開した。
※ブラッシュアップ箇所は、日本語を英語に変更、プログラム内の不要なステートメントの削除など。
node express ect multerでファイルアップロード
手順は次のとおり。
自PCはMac book Pro、masOS High Sierra バージョン10.13.6
GitHubで新規リポジトリを作成する。
GitHubの自分のリポジトリの画面で、New repositoryボタンをクリック。
Repository nameに、multer_sample を入力。
Initialize this repository with a README をチェック。
Add .gitignoreで、Nodeを選択。
これら以外は、デフォルト値のまま。
Create repositoryボタンをクリック。
リポジトリが作成直後。
次の手順に進める。
自分のPCに作成したリポジトリをCloneするために、Clone or downloadボタンをクリック、SSHでClone用のテキストをコピーする。
自PCにmulter_sampleのプロジェクトをCloneする。
Gitのコマンドを入力する。その際にGitHubに登録したSSH keyのパスフレーズを聞かれるので入力が必要。
※[XXXXX]はユーザディレクトリ。
自PCにmulter_sampleプロジェクトをClone直後。次の手順に進む。
multer_sampleにプログラム一式をコピーする。
multer_sampleプロジェクトの状態を確認してみる。
Gitのコマンドを入力する。
コピーしたプログラム一式をステージ領域に登録、確認をする。
Gitのコマンドを入力する。
自PCのGitのリポジトリへ、前の操作でステージ領域に登録された内容をコミットする。
Gitのコマンドを入力する。
GitHubのリポジトリへ、自PCのGitリポジトリにコミットした内容をPushする。
Gitのコマンドを入力する。その際にGitHubに登録したSSH keyのパスフレーズを聞かれるので入力が必要。
※[XXXXX]はユーザディレクトリ。
GitHubの画面でPushされた内容を確認する。問題なくPushした内容が反映されているみたいだ。
次は念のため、GitHubのmulter_sampleプロジェクトをCloneして動作するか確認する。
自PCのmulter_sampleプロジェクトがあるディレクトリではない別のディレクトリでCloneを行う。
Gitのコマンドを入力する。その際にGitHubに登録したSSH keyのパスフレーズを聞かれるので入力が必要。
※[XXXXX]はユーザディレクトリ。
multer_sampleプロジェクトに必要なパッケージをインストールする。
npmのコマンドを入力する。
※package.json内で指定しているバージョンがdeprecateになっているものがある。2016年1月に作成したプログラムなので古いから、deprecateになっててもおかしくない。動作確認が目的なので、とりあえずそのままにしておく。
いよいよ、multer_sampleプロジェクトを動作させる。
npmのコマンドを入力する。
ブラウザで、multer_sampleプロジェクトを表示してみる。
ちゃんと表示された。あとアップロードも正常に動いた。
これで終わり。
ちなみに、GitHub上のmulter_sampleのリンクは次のとおり。
https://github.com/takaharu-kobayashi/multer_sample
今回は、そのNodeのプロジェクトを少しブラッシュアップして、GitHubに登録、公開した。
※ブラッシュアップ箇所は、日本語を英語に変更、プログラム内の不要なステートメントの削除など。
node express ect multerでファイルアップロード
手順は次のとおり。
自PCはMac book Pro、masOS High Sierra バージョン10.13.6
GitHubで新規リポジトリを作成する。
GitHubの自分のリポジトリの画面で、New repositoryボタンをクリック。
Repository nameに、multer_sample を入力。
Initialize this repository with a README をチェック。
Add .gitignoreで、Nodeを選択。
これら以外は、デフォルト値のまま。
Create repositoryボタンをクリック。
リポジトリが作成直後。
次の手順に進める。
自分のPCに作成したリポジトリをCloneするために、Clone or downloadボタンをクリック、SSHでClone用のテキストをコピーする。
自PCにmulter_sampleのプロジェクトをCloneする。
Gitのコマンドを入力する。その際にGitHubに登録したSSH keyのパスフレーズを聞かれるので入力が必要。
※[XXXXX]はユーザディレクトリ。
git clone git@github.com:takaharu-kobayashi/multer_sample.git Cloning into 'multer_sample'... Enter passphrase for key '/Users/[XXXXX]/.ssh/id_rsa': remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (3/3), done. remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (4/4), done.
自PCにmulter_sampleプロジェクトをClone直後。次の手順に進む。
multer_sampleにプログラム一式をコピーする。
multer_sampleプロジェクトの状態を確認してみる。
Gitのコマンドを入力する。
cd ./multer_sample/ git status On branch master Your branch is up to date with 'origin/master'. Untracked files: (use "git add..." to include in what will be committed) app.js bin/ package.json public/ routes/ views/ nothing added to commit but untracked files present (use "git add" to track)
コピーしたプログラム一式をステージ領域に登録、確認をする。
Gitのコマンドを入力する。
git add . git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git reset HEAD..." to unstage) new file: app.js new file: bin/www new file: package.json new file: public/javascripts/jquery-2.1.4.min.js new file: public/uploads/dummy.txt new file: routes/index.js new file: views/error.ect new file: views/footer.ect new file: views/index.ect new file: views/layout.ect new file: views/script.ect
自PCのGitのリポジトリへ、前の操作でステージ領域に登録された内容をコミットする。
Gitのコマンドを入力する。
git commit -m "Added multer sample files" [master f20cf5d] Added multer sample files 11 files changed, 296 insertions(+) create mode 100644 app.js create mode 100755 bin/www create mode 100644 package.json create mode 100644 public/javascripts/jquery-2.1.4.min.js create mode 100644 public/uploads/dummy.txt create mode 100644 routes/index.js create mode 100644 views/error.ect create mode 100644 views/footer.ect create mode 100644 views/index.ect create mode 100644 views/layout.ect create mode 100644 views/script.ect
GitHubのリポジトリへ、自PCのGitリポジトリにコミットした内容をPushする。
Gitのコマンドを入力する。その際にGitHubに登録したSSH keyのパスフレーズを聞かれるので入力が必要。
※[XXXXX]はユーザディレクトリ。
git push Enter passphrase for key '/Users/[XXXXX]/.ssh/id_rsa': Counting objects: 19, done. Delta compression using up to 4 threads. Compressing objects: 100% (14/14), done. Writing objects: 100% (19/19), 32.59 KiB | 5.43 MiB/s, done. Total 19 (delta 0), reused 0 (delta 0) To github.com:takaharu-kobayashi/multer_sample.git 80e8133..f20cf5d master -> master
GitHubの画面でPushされた内容を確認する。問題なくPushした内容が反映されているみたいだ。
次は念のため、GitHubのmulter_sampleプロジェクトをCloneして動作するか確認する。
自PCのmulter_sampleプロジェクトがあるディレクトリではない別のディレクトリでCloneを行う。
Gitのコマンドを入力する。その際にGitHubに登録したSSH keyのパスフレーズを聞かれるので入力が必要。
※[XXXXX]はユーザディレクトリ。
git clone git@github.com:takaharu-kobayashi/multer_sample.git Cloning into 'multer_sample'... Enter passphrase for key '/Users/[XXXXX]/.ssh/id_rsa': remote: Enumerating objects: 23, done. remote: Counting objects: 100% (23/23), done. remote: Compressing objects: 100% (17/17), done. remote: Total 23 (delta 1), reused 19 (delta 0), pack-reused 0 Receiving objects: 100% (23/23), 33.63 KiB | 242.00 KiB/s, done. Resolving deltas: 100% (1/1), done.
multer_sampleプロジェクトに必要なパッケージをインストールする。
npmのコマンドを入力する。
※package.json内で指定しているバージョンがdeprecateになっているものがある。2016年1月に作成したプログラムなので古いから、deprecateになっててもおかしくない。動作確認が目的なので、とりあえずそのままにしておく。
cd ./multer_sample/ npm install npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade npm WARN deprecated constantinople@3.0.2: Please update to at least constantinople 3.1.1 npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer npm WARN deprecated coffee-script@1.12.7: CoffeeScript on NPM has moved to "coffeescript" (no hyphen) npm notice created a lockfile as package-lock.json. You should commit this file. added 136 packages from 155 contributors and audited 212 packages in 3.884s found 15 vulnerabilities (8 low, 2 moderate, 5 high) run `npm audit fix` to fix them, or `npm audit` for details
いよいよ、multer_sampleプロジェクトを動作させる。
npmのコマンドを入力する。
npm start
ブラウザで、multer_sampleプロジェクトを表示してみる。
ちゃんと表示された。あとアップロードも正常に動いた。
これで終わり。
ちなみに、GitHub上のmulter_sampleのリンクは次のとおり。
https://github.com/takaharu-kobayashi/multer_sample
ラベル:
ect
,
JavaScript
,
Node
,
Programing
2018年9月17日月曜日
Nodeを再インストール(nodebrewにする)
Web上でちょっとしたWebAPIとかだとNodeの情報をよく見かける。
そんじゃと、ひさしぶりにNodeでプログラミングをしようと思うのだが
Nodeは3年くらい前にインストールしたまんまである。
(ちなみに本記事についてですが、OSはmacOS High Sierraバージョン 10.13.6で操作しています。)
Nodeのバージョンを確認してみる。
すると、0.x系だったのだけど相当古いみたいだ。
そして、Nodeのバージョンアップは頻繁に行われているみたいだ。
Node.jsのバージョンによる違い
Nodeのサイトをみると推奨版8.x系で、最新版は10.x系になっている。
なので、ボクのPCのNodeは最新とは程遠いバージョンである。
ということで、Nodeを再インストールすることにする。
そして、Web上でそれらの情報を探しているとnodebrewっていうNodeのバージョン管理ソフトウェアがあるみたいなので、それを入れてみることにする。
まず、Nodeのアンインストールを行う。
Nodeのインストールした手順は覚えてないけれど、PC内にあるファイルを見てみると、
2015年9月11日に「node-v0.11.11.pkg」ってファイルをダウンロードしてインストールしたみたいだ。
Web上でアンインストールの方法が見つかったので、その通りに実行してみる。
Mac OS X から Node.js をアンインストールする方法
アンインストールのコマンドを実行する。
パスワードを聞かれるので入力する。
次にnpmの削除を実行する。
ひとまず、Nodeのアンインストールは終了。
次にnodebrewをインストールする。
nodebrewのインストール手順は次のサイトを参考にした。
nodebrewでnodeのバージョンを切り替える方法
なんか、エラーが出力されている。
Homebrewの設定が悪いみたいだ。
Web上でこれらのエラーの情報を探してみるけど、どうも根本的な解決策らしきものが見当たらない。
ということで、Homebrewを再インストールすることにする。
Homebrewの再インストールの手順は次のサイトを参考にした。
Homebrewがおかしくなったら再インストールしよう
Homebrewをアンインストールする。
Homebrewをインストールする。
そして、nodebrewをインストールする。
今回はエラーが出力されなかった。
nodebrewのコマンドを入力する。
nodebrewのセットアップをする。
次はNodeのインストールをする。
一応インストールできるNodeのバージョンを見てみる。
インストール可能なバージョンは見たものの、最新バージョンをインストールする。
インストールされたNodeのバージョンを設定する。
次に現在のNodeのバージョンを確認。
すると、エラーが出力。
この件についても、先程参考したサイトに記載があるね。
nodebrewでnodeのバージョンを切り替える方法
.bashrcファイルをviで開く。
次のパス設定内容を入力する。
そして保存。
..bash_profile ファイルをviで開く。
次のパス設定内容を入力する。
そして保存。
別ウインドウのTerminalを起動し、現在のNodeのバージョンを確認する。
大丈夫みたいだ。
今回はこれで終わり。
そんじゃと、ひさしぶりにNodeでプログラミングをしようと思うのだが
Nodeは3年くらい前にインストールしたまんまである。
(ちなみに本記事についてですが、OSはmacOS High Sierraバージョン 10.13.6で操作しています。)
Nodeのバージョンを確認してみる。
node -v v0.11.11
すると、0.x系だったのだけど相当古いみたいだ。
そして、Nodeのバージョンアップは頻繁に行われているみたいだ。
Node.jsのバージョンによる違い
Nodeのサイトをみると推奨版8.x系で、最新版は10.x系になっている。
なので、ボクのPCのNodeは最新とは程遠いバージョンである。
ということで、Nodeを再インストールすることにする。
そして、Web上でそれらの情報を探しているとnodebrewっていうNodeのバージョン管理ソフトウェアがあるみたいなので、それを入れてみることにする。
まず、Nodeのアンインストールを行う。
Nodeのインストールした手順は覚えてないけれど、PC内にあるファイルを見てみると、
2015年9月11日に「node-v0.11.11.pkg」ってファイルをダウンロードしてインストールしたみたいだ。
Web上でアンインストールの方法が見つかったので、その通りに実行してみる。
Mac OS X から Node.js をアンインストールする方法
アンインストールのコマンドを実行する。
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \ | while read i; do sudo rm /usr/local/${i} done
パスワードを聞かれるので入力する。
Password:
次にnpmの削除を実行する。
sudo rm -rf ~/.npm
ひとまず、Nodeのアンインストールは終了。
次にnodebrewをインストールする。
nodebrewのインストール手順は次のサイトを参考にした。
nodebrewでnodeのバージョンを切り替える方法
brew install nodebrew Updating Homebrew... ==> Homebrew is run entirely by unpaid volunteers. Please consider donating: https://github.com/Homebrew/brew#donations ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> New Formulae amtk fauna-shell libsignal-protocol-c rbspy angle-grinder fork-cleaner lsusb safe apache-arrow-glib fortio luarocks schema-evolution-manager ark gambit luit serverless aws-es-proxy gcc@7 mariadb@10.2 sfst aws-okta genact micronaut shellharden badtouch geogram miniserve skopeo bat gitlab-gem mk-configure sonarqube-lts bats-core go@1.10 mkcert soundpipe beagle golang-migrate mkl-dnn squashfuse bitwarden-cli goreleaser mongodb@3.6 stm32flash black gptfdisk mysql-client taskell bloaty gradio mysql@5.7 thors-serializer brew-php-switcher graph-tool netdata topgrade cash-cli hapi-fhir-cli nifi-registry triton cglm hcloud node_exporter tunnel circleci helmfile openapi-generator ucloud click howard-hinnant-date pagmo unp64 clozure-cl hyperfine patchelf util-linux cmdshelf imageoptim-cli pcapplusplus vsts-cli cointop infrakit perltidy wcslib confluent-oss jrtplib peru weaver cquery json11 petsc wireguard-go cuba kakoune petsc-complex wiremock-standalone cwlogs keepkey-agent pgweb woff2 deark kubecfg phplint wsk density kubernetes-service-catalog-client phpmyadmin wskdeploy deployer kustomize picat xcodegen dita-ot lf pijul xidel docker-credential-helper-ecr libbitcoin-client prettier xsimd docker-machine-driver-hyperkit libbitcoin-protocol prototool yamllint drafter libde265 pulumi yarn-completion eccodes libheif pygitup zlog eless libimagequant pyside erlang@20 libplctag python-yq eslint libpsl range-v3 ==> Updated Formulae gdbm ✔ doctl imagemagick@6 mpich rtf2latex2e gradle ✔ doitlive imake mpop rtv mongodb ✔ dosbox imapsync mps-youtube rubberband openssl ✔ double-conversion imlib2 mpv ruby-build pyenv ✔ dovecot immortal mpw ruby-install pyenv-virtualenv ✔ draco inetutils mr rust python ✔ dropbear infer mrboom rustup-init readline ✔ druid influxdb mrtg s-nail sqlite ✔ dscanner innoextract mruby s3-backer xz ✔ dspdfviewer innotop msgpack s3cmd abcde dtc inspectrum msitools s3fs abcl dub inspircd mujs s6 abcm2ps duck instead multimarkdown sagittarius-scheme abcmidi dungeon internetarchive mupdf saldl abnfgen duo_unix ios-deploy mupdf-tools samtools abyss duply ios-sim mutt sane-backends ace duti ios-webkit-debug-proxy mvtools saxon ack dvm iozone mydumper sbcl acme dwarfutils iperf mypy sbt acpica dwdiff iperf3 mysql sbt@0.13 activemq dxpy ipfs mysql++ sbtenv adplug dynare ipython mysql-connector-c++ scala adr-tools e2fsprogs ipython@5 mysql-sandbox scala@2.11 advancemame efl isl mysql@5.5 scalapack adwaita-icon-theme eigen iso-codes mysql@5.6 scale2x afflib ejabberd ispc mytop scamper afsctool elasticsearch itex2mml n sccache agda elasticsearch@2.4 ivykis nagios sceptre agedu elasticsearch@5.6 jabba nano schismtracker aircrack-ng elektra jack nanomsg scipy akamai elixir jadx nanomsgxx scm-manager alexjs elm jags nanopb-generator scour algernon elm-format jansson natalie scrcpy allure elvish jbake nativefier scw alluxio emacs jboss-forge nats-streaming-server sdb amazon-ecs-cli embulk jdupes naturaldocs sdcc ammonite-repl emscripten jemalloc ncmpc sdl2_gfx amqp-cpp encfs jena ncmpcpp securefs angband entr jenkins nco selenium-server-standalone angular-cli ephemeralpg jenkins-job-builder ncview seqtk anjuta eprover jenkins-lts ndpi ser2net annie erlang jetty neko sfcgal ansible erlang@18 jetty-runner neo4j sfk ansible-cmdb erlang@19 jfrog-cli-go neofetch shadowsocks-libev ansible-lint esniper jhiccup neomutt shairport-sync ansiweather etcd jhipster neovim shared-mime-info ant etsh jigdo nesc shellcheck ant@1.9 evince jlog nestopia-ue shfmt apache-arrow exercism jooby-bootstrap net-snmp shibboleth-sp apache-drill exiftool joplin netcdf shml apache-flink exim jpeg-archive nethack shogun apache-geode exomizer jpeg-turbo netpbm shyaml apache-opennlp expat jpegoptim newsboat sile apache-spark exploitdb jruby nexus silk apache-zeppelin eye-d3 json-c nfdump simgrid apibuilder-cli f3 json-fortran nghttp2 simutrans apktool faas-cli jsonnet nginx singular apm-server fabio jsonpp ngspice sip app-engine-java fabric jsonrpc-glib nifi sipp app-engine-python fades juju nnn siril appscale-tools fakeroot juju-wait node sjk aptly fantom jump node-build skaffold arangodb fastd jupyter node@6 skafos archey fastme just node@8 skinny archivemount fastqc jvgrep nodeenv skipfish argyll-cms fb-client kafka nomad skktools aria2 fbi-servefiles kaitai-struct-compiler notmuch sleuthkit arm-linux-gnueabihf-binutils fd kallisto npth smali armadillo fdclone kapacitor nsd smlnj armor fdk-aac-encoder kedge nspr snakemake arp-scan fdroidserver keepassc nsq snapcraft arpack feedgnuplot kerl nss snownews artifactory feh kettle ntl softhsm asciidoctor ffmbc keychain ntopng solr asciinema ffmpeg khal ntp sonar-scanner asdf ffmpeg2theora khard nudoku sonarqube asio ffmpeg@2.8 kibana nuget sops ask-cli ffmpegthumbnailer kibana@5.6 numpy sord aspectj ffms2 kitchen-sync nuxeo source-highlight assh fftw knot nvc source-to-image at-spi2-atk fibjs knot-resolver nvi sourcekitten at-spi2-core field3d kompose nvm sourcery atari800 fig2dev konoha nyancat sox atdtool file-formula kontena nzbget spades atk file-roller kops ocaml sparse atlassian-cli filebeat kore ocaml-findlib spdlog atomicparsley fio kotlin ocaml-num speedtest-cli ats2-postiats firebase-cli krakend ocamlbuild sphinx-doc aubio fits krb5 ocamlsdl spigot audacious flac kube-aws ocrmypdf spotbugs auditbeat flann kubectx octave spring-roo augeas flashrom kubeless odpi sqldiff augustus flatcc kubernetes-cli offlineimap sqlite-analyzer automake flintrock kubernetes-helm ohcount sqliteodbc autopep8 flow lablgtk ola sqlmap autossh fluent-bit lammps ompl sqoop avimetaedit fluid-synth landscaper oniguruma squid aws-elasticbeanstalk flyway languagetool open-cobol sratoolkit aws-sdk-cpp fmt lapack open-mesh src aws-shell fn lastpass-cli open-mpi srt awscli fobis latex2rtf open-scene-graph srtp azure-cli folly launch openblas ssh-copy-id b2-tools fontconfig launch4j opencoarrays ssh-permit-a38 babel fonttools lcdf-typetools opencv ssh-vault babeld fop lcm opencv@2 sshguard babl ford ldc opendetex sshrc bacula-fd fossil lean openexr sshtrix ballerina fq lean-cli openfortivpn sslsplit bandcamp-dl freeciv ledger openh264 sslyze baobab freediameter lego openimageio stanford-ner bareos-client freeimage lensfun openjazz stanford-parser baresip freeipmi leptonica openrct2 stella bartycrouch freeling lftp openrtsp stern basex freeradius-server lgogdownloader opensaml stlink bash freetds libarchive opensc stone-soup bash-completion@2 freetype libatomic_ops openshift-cli storm batik freexl libbi openssh streamlink bazel frege libbitcoin openssl@1.1 strongswan bcal fribidi libbitcoin-explorer opentsdb stubby bcftools frugal libbitcoin-server openvdb stunnel bdw-gc fruit libbpg openvpn subnetcalc bear fselect libccd optipng subversion beast fstar libcdr ortp suite-sparse bedops fstrm libcouchbase osc sundials bench fswatch libcue osm-pbf supersonic bento4 fuego libdazzle osm2pgrouting suricata berkeley-db fuse-emulator libdca osm2pgsql svgcleaner bettercap fuseki libdill osmfilter svtplay-dl bgpstream futhark libdmtx osmium-tool swift bibtex2html fwknop libdvbpsi osquery swift-protobuf bibtexconv fwup libebml osrm-backend swiftformat bibutils fzf libedit ott swiftlint binaryen galen libepoxy overmind swimat bind gammaray libetonyek p11-kit syncthing binutils gandi.cli libewf pacapt synfig binwalk gauche libextractor packer sysbench biogeme gauge libfabric packetbeat sysdig bison gcc libfaketime packmol talloc bit gcovr libfixbuf paket tarantool bitcoin gdal libfreehand pam-u2f tarsnap-gui bitrise gdb libgcrypt pam_yubico tbb blackbox gdcm libgit2 pandoc tbox blockhash gdk-pixbuf libgpg-error pandoc-citeproc tectonic bluepill geckodriver libgphoto2 pandoc-crossref tee-clc blueutil gecode libgsf pango telegraf bmake gedit libgsm paps teleport bnd gegl libgweather parallel telnet bochs geoipupdate libhdhomerun parallelstl template-glib bogofilter geos libhttpseverywhere pari tenyr boost geoserver libical parquet-tools tepl boost-bcp get-flash-videos libidn pass termius boost-build get_iplayer libidn2 passenger terraform boost-mpi getdns libimobiledevice pazpar2 terraform_landscape boost-python ghc libiscsi pbrt terragrunt boost-python3 ghostscript liblcf pc6001vx tesseract botan gibo liblwgeom pcb testssl bower giflib libmaa pcb2gcode texmath bowtie2 gifski libmagic pcl tgui brew-cask-completion gimme libmatio pcre2 the_platinum_searcher bro gist libmatroska pdal the_silver_searcher brotli git libmonome pdfgrep thefuck buildifier git-annex libmspub pdfpc tig buku git-archive-all libmwaw pdfsandwich tiger-vnc burp git-cola libmypaint pdftoedn tika bwfmetaedit git-credential-manager libngspice pdftoipe tile38 byacc git-extras libofx pdns timelimit byobu git-fixup libomp pdnsrec tinc byteman git-ftp libosinfo pdsh tippecanoe bzt git-lfs libosmium pegtl titlecase cabextract git-quick-stats libpcap percona-server tj caddy git-secret libpeas percona-server-mongodb tkdiff caf git-sizer libphonenumber percona-server@5.6 tmate caffe git-town libpng percona-toolkit tmux cake gitbucket libpq percona-xtrabackup tmux-xpanes calabash giter8 libpqxx perkeep tmuxinator-completion calicoctl gitlab-runner libpst perl todo-txt camlp4 gitup libqalculate perl-build todolist camlp5 gjs libraw perl@5.18 todoman capnp gjstest librdkafka pgbouncer tokei capstone glib libre pgcli tomcat cargo-completion glib-networking librealsense pgloader tomcat-native carrot2 glibmm librem pgpdump tomcat@7 carthage glm libressl pgplot tomcat@8 cask globus-toolkit librtlsdr pgpool-ii tor cassandra gloox libsass pgroonga tox castxml glslang libsoup phoronix-test-suite tracebox cataclysm glslviewer libsoxr php traefik cayley gmsh libspectre php-code-sniffer trafficserver ccache gmt libspectrum php-cs-fixer transcrypt ccextractor gmt@4 libssh php@5.6 translate-shell ccrypt gnatsd libstfl php@7.0 transmission cdrdao gnome-builder libswiften php@7.1 trash ceres-solver gnu-cobol libtensorflow phpunit travis certbot gnu-indent libtiff pianobar treefrog ceylon gnu-prolog libtomcrypt pianod trezor-agent cfengine gnu-smalltalk libtorrent-rasterbar picard-tools ttfautohint cfitsio gnu-units libtrace pick tty-solitaire cfr-decompiler gnumeric libu2f-host pidgin ttyd cfssl gnupg libu2f-server pike tundra cgal gnupg@1.4 libuninameslist pilosa tup cgrep gnuplot libunistring pioneers twarc chaiscript gnuradio libuv pipenv twoping chakra gnutls libvirt pkcs11-helper twtxt chamber go libvisio planck txr chapel go-bindata libwebsockets plantuml typescript charm go-jira libwps platformio u-boot-tools check_postgres go-statik libxc plenv ubertooth checkbashisms go@1.9 libxkbcommon plowshare uftp checkstyle gobject-introspection libxlsxwriter plplot uhd chrome-cli gobuster libxmlsec1 pmd unbound chronograf gocr libxo pngquant uncrustify cimg gocryptfs libyaml poco unixodbc citus godep libzdb pod2man unpaper cjdns goenv libzip pony-stable unrar ckan goffice lighttpd ponyc upscaledb clac gollum link-grammar poppler uptimed clamav gomplate linkerd postgis upx clang-format google-benchmark links postgresql urbit clblast google-java-format liquibase postgresql@9.4 urh clhep googler liquigraph postgresql@9.5 uriparser cliclick goose lldpd postgresql@9.6 utf8proc clingo gopass llnode postgrest uwsgi cloc gosu llvm pound v8 clojure gource llvm@5 povray vagrant-completion clojurescript gpac lmod ppsspp vala closure-compiler gperftools lnav pqiv valabind cmake gpgme log4cplus pre-commit vapoursynth cmark-gfm gphoto2 logcheck prest varnish@4 cmocka gr-osmosdr logentries presto vault cockroach grafana logstalgia primesieve vcftools cocoapods grails logstash progress vdirsyncer codec2 grakn logtalk proguard veclibfort coffeescript graphene lolcat proj vegeta collectd graphicsmagick loudmouth prometheus verilator collector-sidecar graphite2 lrzsz proselint vert.x commandbox grc lsof protobuf vim compcert grib-api lsyncd protobuf-c vim@7.4 composer gromacs lua protobuf-swift vips conan gron lua@5.1 protobuf@2.6 virtuoso confuse groonga lxc proxychains-ng visp conjure-up groovy lynis proxytunnel vnu conserver groovysdk lynx pspg vowpal-wabbit consul grpc lysp psqlodbc vrpn consul-backinator grunt-cli lz4 pstoedit vte3 consul-template grunt-completion mackup ptex vtk container-diff grv macvim pulseaudio wabt convox gsettings-desktop-schemas mafft pumba wandio coq gsl magic-wormhole purescript wartremover coreos-ct gsoap makeself pushpin watch coreutils gspell mame puzzles watchexec corsixth gssh mapcrafter pxz watson couchdb gst-editing-services mapnik py2cairo webalizer cp2k gst-libav mariadb py3cairo webdis cpanminus gst-plugins-bad mariadb@10.0 pybind11 webp cppcheck gst-plugins-base mariadb@10.1 pycodestyle webpack cppcms gst-plugins-good math-comp pyexiv2 webtorrent-cli credstash gst-plugins-ugly maven pygobject3 weechat creduce gst-python maxwell pyinvoke wesnoth cromwell gst-rtsp-server mbedtls pypy wget cryptol gst-validate mcabber pypy3 whois cryptopp gstreamer mdcat pyqt widelands csvkit gtk+3 mdds python@2 wildfly-as csvprintf gtk-mac-integration mdp pytouhou wine csvtomd gtk-vnc media-info pyvim winetricks ctl gtksourceview3 mediaconch qbs wiredtiger cucumber-cpp gtksourceview@4 mednafen qcachegrind wireguard-tools curl gucharmap megacmd qcli wireshark cython guile megatools qd wla-dx dar gupnp memcached qemu wolfssl darcs gutenberg memcacheq qjackctl wp-cli darksky-weather gws menhir qmmp wpscan dartsim gwyddion mercurial qpdf wrangler dash gx meson qpid-proton wslay datetime-fortran gx-go meson-internal qpm wtf dateutils h2o mesos qrencode wxmac datomic hadolint metabase qrupdate x265 davix hadoop metaproxy qscintilla2 xapian davmail hana metashell qt xdot dbhash handbrake metricbeat qtfaststart xmake dbus haproxy mg qtkeychain xml-security-c dbxml harfbuzz mgba quantlib xml-tooling-c dcd hashcat micro quex xmount dcm2niix haskell-stack micropython quicktype xmrig dcos-cli hbase midnight-commander r xonsh dcraw hdf5 mighttpd2 rabbitmq xqilla ddclient hdf5@1.8 mikutter rabbitmq-c xrootd debianutils heartbeat mill radare2 xsv dehydrated hebcal mimic raine xtensor dep heroku minetest rakudo-star xxhash dependency-check hesiod mingw-w64 rancher-cli yaf derby hevea minidlna ratfor yafc dfix hexgui minimal-racket rawtoaces yara dfmt hfstospell minimesos raylib yarn dhall-json hg-fast-export minisat rclone yash di hh miniupnpc re2 yaws dialog highlight minizinc re2c yaz diamond hive mint reattach-to-user-namespace yelp-tools dict hledger mitmproxy recoverjpeg ykman diff-pdf hlint mkdocs redis ykpers diffoscope homebank mkvtoolnix redis@3.2 yle-dl digdag homeshick mlkit redshift you-get direnv hopenpgp-tools mlt remarshal youtube-dl discount hss mm-common remctl yq dislocker html-xml-utils mmseqs2 reminiscence yubico-piv-tool distcc htmldoc moc rename z3 django-completion htop modd reposurgeon zabbix dlib htslib modules restic zanata-client dmd httpd monax restview zbackup dmtx-utils httpie monero rgbds zbar dnscrypt-proxy hub monetdb rhash zebra dnsdist hugo mongo-c-driver rhino zenity dnstwist hydra mongo-cxx-driver riemann zero-install docfx hyperscan mongo-orchestration riemann-client zimg docker hypre mongodb@3.2 ripgrep zita-convolver docker-completion i2p mongodb@3.4 rmlint zmap docker-compose icarus-verilog mongoose robot-framework znapzend docker-compose-completion icdiff monit rocksdb znc docker-credential-helper ice mono roll zookeeper docker-machine icu4c mosh rom-tools zopfli docker-machine-completion idris mosquitto root zorba docker-squash igv mp3gain roswell zsh docker-swarm ii mpc rpm zsh-autosuggestions docker2aci ilmbase mpd rsstail zsh-completions dockviz imagemagick mpfi rsyslog zstd ==> Renamed Formulae cdiff -> ydiff geth -> ethereum rebar@3 -> rebar3 wpcli-completion -> wp-cli-completion crystal-lang -> crystal latexila -> gnome-latex saltstack -> salt ==> Deleted Formulae artifactory-cli-go boot2docker ecj gpg-agent llvm@3.7 monotone aws-cloudsearch boot2docker-completion ghc@8.0 i3 luciddb node@4 bokken dirmngr gnupg@2.0 i3status mediatomb wry Error: Could not link: /usr/local/share/man/man1/brew.1 Please delete these paths and run `brew update`. Error: Could not link: /usr/local/share/doc/homebrew Please delete these paths and run `brew update`. ==> Downloading https://github.com/hokaccha/nodebrew/archive/v1.0.0.tar.gz ==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v1.0.0 ######################################################################## 100.0% ==> Caveats You need to manually run setup_dirs to create directories required by nodebrew: /usr/local/opt/nodebrew/bin/nodebrew setup_dirs Add path: export PATH=$HOME/.nodebrew/current/bin:$PATH To use Homebrew's directories rather than ~/.nodebrew add to your profile: export NODEBREW_ROOT=/usr/local/var/nodebrew Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions have been installed to: /usr/local/share/zsh/site-functions ==> Summary 🍺 /usr/local/Cellar/nodebrew/1.0.0: 8 files, 38.4KB, built in 6 seconds
なんか、エラーが出力されている。
Error: Could not link: /usr/local/share/man/man1/brew.1 Please delete these paths and run `brew update`. Error: Could not link: /usr/local/share/doc/homebrew Please delete these paths and run `brew update`. ==> Downloading https://github.com/hokaccha/nodebrew/archive/v1.0.0.tar.gz ==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v1.0.0
Homebrewの設定が悪いみたいだ。
Web上でこれらのエラーの情報を探してみるけど、どうも根本的な解決策らしきものが見当たらない。
ということで、Homebrewを再インストールすることにする。
Homebrewの再インストールの手順は次のサイトを参考にした。
Homebrewがおかしくなったら再インストールしよう
Homebrewをアンインストールする。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" Warning: This script will remove: /Users/[XXXXX]/Library/Caches/Homebrew/ /Users/[XXXXX]/Library/Logs/Homebrew/ /usr/local/.git/ /usr/local/.gitignore /usr/local/.travis.yml /usr/local/.yardopts /usr/local/CODEOFCONDUCT.md /usr/local/CONTRIBUTING.md /usr/local/Cellar/ /usr/local/LICENSE.txt /usr/local/Library/ /usr/local/README.md /usr/local/SUPPORTERS.md /usr/local/bin/brew -> /usr/local/Homebrew/bin/brew /usr/local/share/man/man1/brew.1 Are you sure you want to uninstall Homebrew? This will remove your installed packages! [y/N] y ==> Removing Homebrew installation... ==> Removing empty directories... ==> /usr/bin/sudo /usr/bin/find /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/share /usr/local/var /usr/local/Cellar /usr/local/Homebrew /usr/local/Frameworks -name .DS_Store -delete Password: ==> /usr/bin/sudo /usr/bin/find /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/share /usr/local/var /usr/local/Cellar /usr/local/Homebrew /usr/local/Frameworks -depth -type d -empty -exec rmdir {} ; ==> Homebrew uninstalled! The following possible Homebrew files were not deleted: /usr/local/.yardopts /usr/local/heroku/ /usr/local/CODEOFCONDUCT.md /usr/local/bin/ /usr/local/.com.apple.installer.keep /usr/local/remotedesktop/ /usr/local/etc/ /usr/local/Homebrew/ /usr/local/var/ /usr/local/Library/ /usr/local/README.md /usr/local/.gitignore /usr/local/CONTRIBUTING.md /usr/local/SUPPORTERS.md /usr/local/lib/ /usr/local/.git/ /usr/local/LICENSE.txt /usr/local/.travis.yml /usr/local/share/ You may wish to remove them yourself.
Homebrewをインストールする。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ==> This script will install: /usr/local/bin/brew /usr/local/share/doc/homebrew /usr/local/share/man/man1/brew.1 /usr/local/share/zsh/site-functions/_brew /usr/local/etc/bash_completion.d/brew /usr/local/Homebrew ==> The following new directories will be created: /usr/local/include /usr/local/sbin /usr/local/opt /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks Press RETURN to continue or any other key to abort ==> /usr/bin/sudo /bin/mkdir -p /usr/local/include /usr/local/sbin /usr/local/opt /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks Password: ==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/include /usr/local/sbin /usr/local/opt /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==> /usr/bin/sudo /bin/chmod 755 /usr/local/share/zsh /usr/local/share/zsh/site-functions ==> /usr/bin/sudo /usr/sbin/chown [XXXXX] /usr/local/include /usr/local/sbin /usr/local/opt /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/include /usr/local/sbin /usr/local/opt /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==> /usr/bin/sudo /bin/mkdir -p /Users/[XXXXX]/Library/Caches/Homebrew ==> /usr/bin/sudo /bin/chmod g+rwx /Users/[XXXXX]/Library/Caches/Homebrew ==> /usr/bin/sudo /usr/sbin/chown [XXXXX] /Users/[XXXXX]/Library/Caches/Homebrew ==> /usr/bin/sudo /bin/mkdir -p /Library/Caches/Homebrew ==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew ==> /usr/bin/sudo /usr/sbin/chown [XXXXX] /Library/Caches/Homebrew ==> Downloading and installing Homebrew... remote: Counting objects: 38, done. remote: Compressing objects: 100% (20/20), done. remote: Total 38 (delta 10), reused 26 (delta 7), pack-reused 3 Unpacking objects: 100% (38/38), done. From https://github.com/Homebrew/brew 1b4566651..5772493e2 master -> origin/master HEAD is now at 5772493e2 Merge pull request #4895 from MikeMcQuaid/vendor-bundle-standalone ==> Migrating /Library/Caches/Homebrew to /Users/[XXXXX]/Library/Caches/Homebrew... ==> Deleting /Library/Caches/Homebrew... Already up-to-date. ==> Installation successful! ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics documentation (and how to opt-out) here: https://docs.brew.sh/Analytics.html ==> Homebrew is run entirely by unpaid volunteers. Please consider donating: https://github.com/Homebrew/brew#donations ==> Next steps: - Run `brew help` to get started - Further documentation: https://docs.brew.sh
そして、nodebrewをインストールする。
brew install nodebrew Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> Updated Formulae gradle ==> Downloading https://github.com/hokaccha/nodebrew/archive/v1.0.0.tar.gz ==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v1.0.0 ######################################################################## 100.0% ==> Caveats You need to manually run setup_dirs to create directories required by nodebrew: /usr/local/opt/nodebrew/bin/nodebrew setup_dirs Add path: export PATH=$HOME/.nodebrew/current/bin:$PATH To use Homebrew's directories rather than ~/.nodebrew add to your profile: p export NODEBREW_ROOT=/usr/local/var/nodebrew Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions have been installed to: /usr/local/share/zsh/site-functions ==> Summary 🍺 /usr/local/Cellar/nodebrew/1.0.0: 8 files, 38.4KB, built in 5 seconds
今回はエラーが出力されなかった。
nodebrewのコマンドを入力する。
nodebrew nodebrew 1.0.0 Usage: nodebrew help Show this message nodebrew installDownload and install (from binary) nodebrew compile Download and install (from source) nodebrew install-binary Alias of `install` (For backword compatibility) nodebrew uninstall Uninstall nodebrew use Use nodebrew list List installed versions nodebrew ls Alias for `list` nodebrew ls-remote List remote versions nodebrew ls-all List remote and installed versions nodebrew alias Set alias nodebrew unalias Remove alias nodebrew clean | all Remove source file nodebrew selfupdate Update nodebrew nodebrew migrate-package Install global NPM packages contained in to current version nodebrew exec -- Execute using specified Example: # install nodebrew install v8.9.4 # use a specific version number nodebrew use v8.9.4
nodebrewのセットアップをする。
nodebrew setup Fetching nodebrew... Installed nodebrew in $HOME/.nodebrew ======================================== Export a path to nodebrew: export PATH=$HOME/.nodebrew/current/bin:$PATH ========================================
次はNodeのインストールをする。
一応インストールできるNodeのバージョンを見てみる。
nodebrew ls-remote v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6 v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7 v0.1.8 v0.1.9 v0.1.10 v0.1.11 v0.1.12 v0.1.13 v0.1.14 v0.1.15 v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23 v0.1.24 v0.1.25 v0.1.26 v0.1.27 v0.1.28 v0.1.29 v0.1.30 v0.1.31 v0.1.32 v0.1.33 v0.1.90 v0.1.91 v0.1.92 v0.1.93 v0.1.94 v0.1.95 v0.1.96 v0.1.97 v0.1.98 v0.1.99 v0.1.100 v0.1.101 v0.1.102 v0.1.103 v0.1.104 v0.2.0 v0.2.1 v0.2.2 v0.2.3 v0.2.4 v0.2.5 v0.2.6 v0.3.0 v0.3.1 v0.3.2 v0.3.3 v0.3.4 v0.3.5 v0.3.6 v0.3.7 v0.3.8 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.4.7 v0.4.8 v0.4.9 v0.4.10 v0.4.11 v0.4.12 v0.5.0 v0.5.1 v0.5.2 v0.5.3 v0.5.4 v0.5.5 v0.5.6 v0.5.7 v0.5.8 v0.5.9 v0.5.10 v0.6.0 v0.6.1 v0.6.2 v0.6.3 v0.6.4 v0.6.5 v0.6.6 v0.6.7 v0.6.8 v0.6.9 v0.6.10 v0.6.11 v0.6.12 v0.6.13 v0.6.14 v0.6.15 v0.6.16 v0.6.17 v0.6.18 v0.6.19 v0.6.20 v0.6.21 v0.7.0 v0.7.1 v0.7.2 v0.7.3 v0.7.4 v0.7.5 v0.7.6 v0.7.7 v0.7.8 v0.7.9 v0.7.10 v0.7.11 v0.7.12 v0.8.0 v0.8.1 v0.8.2 v0.8.3 v0.8.4 v0.8.5 v0.8.6 v0.8.7 v0.8.8 v0.8.9 v0.8.10 v0.8.11 v0.8.12 v0.8.13 v0.8.14 v0.8.15 v0.8.16 v0.8.17 v0.8.18 v0.8.19 v0.8.20 v0.8.21 v0.8.22 v0.8.23 v0.8.24 v0.8.25 v0.8.26 v0.8.27 v0.8.28 v0.9.0 v0.9.1 v0.9.2 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9 v0.9.10 v0.9.11 v0.9.12 v0.10.0 v0.10.1 v0.10.2 v0.10.3 v0.10.4 v0.10.5 v0.10.6 v0.10.7 v0.10.8 v0.10.9 v0.10.10 v0.10.11 v0.10.12 v0.10.13 v0.10.14 v0.10.15 v0.10.16 v0.10.17 v0.10.18 v0.10.19 v0.10.20 v0.10.21 v0.10.22 v0.10.23 v0.10.24 v0.10.25 v0.10.26 v0.10.27 v0.10.28 v0.10.29 v0.10.30 v0.10.31 v0.10.32 v0.10.33 v0.10.34 v0.10.35 v0.10.36 v0.10.37 v0.10.38 v0.10.39 v0.10.40 v0.10.41 v0.10.42 v0.10.43 v0.10.44 v0.10.45 v0.10.46 v0.10.47 v0.10.48 v0.11.0 v0.11.1 v0.11.2 v0.11.3 v0.11.4 v0.11.5 v0.11.6 v0.11.7 v0.11.8 v0.11.9 v0.11.10 v0.11.11 v0.11.12 v0.11.13 v0.11.14 v0.11.15 v0.11.16 v0.12.0 v0.12.1 v0.12.2 v0.12.3 v0.12.4 v0.12.5 v0.12.6 v0.12.7 v0.12.8 v0.12.9 v0.12.10 v0.12.11 v0.12.12 v0.12.13 v0.12.14 v0.12.15 v0.12.16 v0.12.17 v0.12.18 v4.0.0 v4.1.0 v4.1.1 v4.1.2 v4.2.0 v4.2.1 v4.2.2 v4.2.3 v4.2.4 v4.2.5 v4.2.6 v4.3.0 v4.3.1 v4.3.2 v4.4.0 v4.4.1 v4.4.2 v4.4.3 v4.4.4 v4.4.5 v4.4.6 v4.4.7 v4.5.0 v4.6.0 v4.6.1 v4.6.2 v4.7.0 v4.7.1 v4.7.2 v4.7.3 v4.8.0 v4.8.1 v4.8.2 v4.8.3 v4.8.4 v4.8.5 v4.8.6 v4.8.7 v4.9.0 v4.9.1 v5.0.0 v5.1.0 v5.1.1 v5.2.0 v5.3.0 v5.4.0 v5.4.1 v5.5.0 v5.6.0 v5.7.0 v5.7.1 v5.8.0 v5.9.0 v5.9.1 v5.10.0 v5.10.1 v5.11.0 v5.11.1 v5.12.0 v6.0.0 v6.1.0 v6.2.0 v6.2.1 v6.2.2 v6.3.0 v6.3.1 v6.4.0 v6.5.0 v6.6.0 v6.7.0 v6.8.0 v6.8.1 v6.9.0 v6.9.1 v6.9.2 v6.9.3 v6.9.4 v6.9.5 v6.10.0 v6.10.1 v6.10.2 v6.10.3 v6.11.0 v6.11.1 v6.11.2 v6.11.3 v6.11.4 v6.11.5 v6.12.0 v6.12.1 v6.12.2 v6.12.3 v6.13.0 v6.13.1 v6.14.0 v6.14.1 v6.14.2 v6.14.3 v6.14.4 v7.0.0 v7.1.0 v7.2.0 v7.2.1 v7.3.0 v7.4.0 v7.5.0 v7.6.0 v7.7.0 v7.7.1 v7.7.2 v7.7.3 v7.7.4 v7.8.0 v7.9.0 v7.10.0 v7.10.1 v8.0.0 v8.1.0 v8.1.1 v8.1.2 v8.1.3 v8.1.4 v8.2.0 v8.2.1 v8.3.0 v8.4.0 v8.5.0 v8.6.0 v8.7.0 v8.8.0 v8.8.1 v8.9.0 v8.9.1 v8.9.2 v8.9.3 v8.9.4 v8.10.0 v8.11.0 v8.11.1 v8.11.2 v8.11.3 v8.11.4 v8.12.0 v9.0.0 v9.1.0 v9.2.0 v9.2.1 v9.3.0 v9.4.0 v9.5.0 v9.6.0 v9.6.1 v9.7.0 v9.7.1 v9.8.0 v9.9.0 v9.10.0 v9.10.1 v9.11.0 v9.11.1 v9.11.2 v10.0.0 v10.1.0 v10.2.0 v10.2.1 v10.3.0 v10.4.0 v10.4.1 v10.5.0 v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4 io@v1.1.0 io@v1.2.0 io@v1.3.0 io@v1.4.1 io@v1.4.2 io@v1.4.3 io@v1.5.0 io@v1.5.1 io@v1.6.0 io@v1.6.1 io@v1.6.2 io@v1.6.3 io@v1.6.4 io@v1.7.1 io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4 io@v2.0.0 io@v2.0.1 io@v2.0.2 io@v2.1.0 io@v2.2.0 io@v2.2.1 io@v2.3.0 io@v2.3.1 io@v2.3.2 io@v2.3.3 io@v2.3.4 io@v2.4.0 io@v2.5.0 io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1
インストール可能なバージョンは見たものの、最新バージョンをインストールする。
nodebrew install stable Fetching: https://nodejs.org/dist/v10.10.0/node-v10.10.0-darwin-x64.tar.gz ######################################################################## 100.0% Installed successfully
インストールされたNodeのバージョンを設定する。
nodebrew use v10.10.0
use v10.10.0
次に現在のNodeのバージョンを確認。
すると、エラーが出力。
node -v -bash: node: command not found
この件についても、先程参考したサイトに記載があるね。
nodebrewでnodeのバージョンを切り替える方法
.bashrcファイルをviで開く。
vi ./.bashrc
次のパス設定内容を入力する。
そして保存。
export PATH=$HOME/.nodebrew/current/bin:$PATH
..bash_profile ファイルをviで開く。
vi ./.bash_profile
次のパス設定内容を入力する。
そして保存。
source ~/.bashrc
別ウインドウのTerminalを起動し、現在のNodeのバージョンを確認する。
大丈夫みたいだ。
今回はこれで終わり。
node -v v10.10.0
2018年9月11日火曜日
macにVisual Studio Codeをインストール
macにVisual Studio Codeをインストールをした。
以前にNodeで作成したファイルアップロードのサンプル
をブラッシュアップしてGitHub上に置いておこうとと思いつく。
node express ect multerでファイルアップロード
今までのようにEmacsで作業してもいいけど、IntelliSenseが機能する開発環境の方が作業効率がいいので、Visual Studio Codeを使うことにした。
https://code.visualstudio.com/ のサイトを開く。
右上の Download ボタンを押下。
中央右の Mac のボタンを押下。
画面の表示が切り替わり、少し待つとダウンロードが完了する。
ダウンロードしたzipファイルを解凍する。
これで、IntelliSenseが機能する開発環境で作業ができる。
以前にNodeで作成したファイルアップロードのサンプル
をブラッシュアップしてGitHub上に置いておこうとと思いつく。
node express ect multerでファイルアップロード
今までのようにEmacsで作業してもいいけど、IntelliSenseが機能する開発環境の方が作業効率がいいので、Visual Studio Codeを使うことにした。
https://code.visualstudio.com/ のサイトを開く。
右上の Download ボタンを押下。
中央右の Mac のボタンを押下。
画面の表示が切り替わり、少し待つとダウンロードが完了する。
ダウンロードしたzipファイルを解凍する。
/Applicationsフォルダに Visual Studio Code のファイルを移動する。
Duckのアプリケーションを選択すると、Visual Studio Code が含まれているので、このアイコンを押下する。
警告ダイアログが表示されるけど、開く を押下する。
Visual Studio Code が起動した。
これで、IntelliSenseが機能する開発環境で作業ができる。
ちなみに、macOSはHigh Sierra バージョン 10.13.6
2018年9月9日日曜日
WEB+DB press vol.106 Spring Boot
WEB+DB press vol.106で、Spring Bootの特集があった。
すごくわかりやすくていい内容だった。Spring Bootを気になってて内容を理解したいのであれば、確認した方がいいと思う。
Spring BootとThymeleafのサンプル、Vagrantを使用して動かすことまで網羅してある。
(ちなみにThymeleafのDialectについては記載されてなかった。)
ただ、気になったのがビルドツールにGradleでなくMavenを使っていた。
Mavenって記述方式がXMLで設定するだけ。
Gradleは記述方式がスクリプト。
Mavenって多分設定だけ、Gradleのようにスクリプトは使えない、はず。
また、最近はMavenよりGradleの情報の方を見かける。
なので、MavenよりGradleの方がいいのではないのかな、知らんけど。
すごくわかりやすくていい内容だった。Spring Bootを気になってて内容を理解したいのであれば、確認した方がいいと思う。
Spring BootとThymeleafのサンプル、Vagrantを使用して動かすことまで網羅してある。
(ちなみにThymeleafのDialectについては記載されてなかった。)
ただ、気になったのがビルドツールにGradleでなくMavenを使っていた。
Mavenって記述方式がXMLで設定するだけ。
Gradleは記述方式がスクリプト。
Mavenって多分設定だけ、Gradleのようにスクリプトは使えない、はず。
また、最近はMavenよりGradleの情報の方を見かける。
なので、MavenよりGradleの方がいいのではないのかな、知らんけど。
Spring BootのHot deploy
Spring Bootでは、Hot deployができる。
これは便利というか、これをしないとjavaファイルを変更してコンパイルしたり、html、jsファイルなどを変更してもSpringを起動し直さないと反映されない。
Hot deployだと、そんな煩わしさが解消される。
設定方法は次のとおり。
ボクはgradleを使っているのでgradleで設定をした。
build.gradleのdependencies {・・・}内に次の1行を設定。
そして、gradleの設定を反映すればいい。
(STSだと、build.gradleを選択し、右クリックし、「Gradle」-「Refresh Gradle Project」をクリックすればいい。)
上記について参考URLは次のとおり。
Mavenの設定も記載されている。
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html
これは便利というか、これをしないとjavaファイルを変更してコンパイルしたり、html、jsファイルなどを変更してもSpringを起動し直さないと反映されない。
Hot deployだと、そんな煩わしさが解消される。
設定方法は次のとおり。
ボクはgradleを使っているのでgradleで設定をした。
build.gradleのdependencies {・・・}内に次の1行を設定。
そして、gradleの設定を反映すればいい。
(STSだと、build.gradleを選択し、右クリックし、「Gradle」-「Refresh Gradle Project」をクリックすればいい。)
compile("org.springframework.boot:spring-boot-devtools")
上記について参考URLは次のとおり。
Mavenの設定も記載されている。
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html
2018年6月9日土曜日
SpringでThymeleafのDialectのレイアウト表示をする。
テンプレートエンジンThymeleafのDialectを使ってのレイアウト表示をする。
画面構成はヘッダー、コンテンツ、フッターの3箇所をレイアウトにする。
ヘッダー、フッターは共通化して、コンテンツがページごとに変わる感じだ。
以前、仕事でしたことあるstrutsのtilesみたいなものだな。
(現在も使われているんかいな?)
さて、まず、build.gradleにthymeleafの設定をする。
compile('org.springframework.boot:spring-boot-starter-web') は削除する。
そして、代りに compile('org.springframework.boot:spring-boot-starter-thymeleaf') を設定する。
次のサイトを参考にしたけれど、`spring-boot-starter-web` に依存するため、`spring-boot-starter-web` を明記する必要はないみたいだ。
Spring Boot における Thymeleaf サンプルコード
それと、thymeleafとdialectのバージョンを設定する。
ext['thymeleaf.version'] と ext['thymeleaf-layout-dialect.version'] を設定する。
それぞれのバージョンは次のサイトを参考にすればいいみたいだ。
https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring4
https://mvnrepository.com/artifact/nz.net.ultraq.thymeleaf/thymeleaf-layout-dialect
このバージョンについての情報は次のサイトを参考にした。
Spring Boot で Thymeleaf 使い方メモ
そして、build.gradleは次のとおりになる。
コントローラプログラムの HogeController.java は次のとおり
以前のSpringでlog4j2(Gradleでプロジェクト作成)は、"Hello World!" の文字列を表示していたけれど、今回は表示するテンプレート "index" を設定している。
次にDialectのレイアウト全体のテンプレート "layout.html" を設定する。
ソースは次のとおり。
次が "layout.html" でヘッダ部分を取り込む箇所 "<header layout:replace="~{layout/header::header}"></header>" で取り込まれる "header.html" を設定する。
ソースは次のとおり
次が "layout.html" でフッタ部分を取り込む箇所 "<footer layout:replace="~{layout/footer::footer}"></footer>" で取り込まれる "footer.html" を設定する。
ソースは次のとおり
レイアウトの定義は以上で、次に上記コントローラプログラムで設定した表示するテンプレート "index" のテンプレート "index.html" を設定する。
ソースは次のとおり
これでThymelaefのDialectのレイアウトでの画面表示するプログラムは用意できた。
動かしてみる。
画面表示は次のようになる。
本画面のHTMLは次のように生成されている。
これで終わり。
画面構成はヘッダー、コンテンツ、フッターの3箇所をレイアウトにする。
ヘッダー、フッターは共通化して、コンテンツがページごとに変わる感じだ。
以前、仕事でしたことあるstrutsのtilesみたいなものだな。
(現在も使われているんかいな?)
さて、まず、build.gradleにthymeleafの設定をする。
compile('org.springframework.boot:spring-boot-starter-web') は削除する。
そして、代りに compile('org.springframework.boot:spring-boot-starter-thymeleaf') を設定する。
次のサイトを参考にしたけれど、`spring-boot-starter-web` に依存するため、`spring-boot-starter-web` を明記する必要はないみたいだ。
Spring Boot における Thymeleaf サンプルコード
それと、thymeleafとdialectのバージョンを設定する。
ext['thymeleaf.version'] と ext['thymeleaf-layout-dialect.version'] を設定する。
それぞれのバージョンは次のサイトを参考にすればいいみたいだ。
https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring4
https://mvnrepository.com/artifact/nz.net.ultraq.thymeleaf/thymeleaf-layout-dialect
このバージョンについての情報は次のサイトを参考にした。
Spring Boot で Thymeleaf 使い方メモ
そして、build.gradleは次のとおりになる。
buildscript { ext { springBootVersion = '1.5.13.BUILD-SNAPSHOT' } repositories { mavenCentral() maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/milestone" } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/milestone" } } dependencies { compile('org.springframework.boot:spring-boot-starter-thymeleaf') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' } compile('org.springframework.boot:spring-boot-starter-log4j2') testCompile('org.springframework.boot:spring-boot-starter-test') } ext['thymeleaf.version'] = '3.0.9.RELEASE' ext['thymeleaf-layout-dialect.version'] = '2.3.0'
コントローラプログラムの HogeController.java は次のとおり
以前のSpringでlog4j2(Gradleでプロジェクト作成)は、"Hello World!" の文字列を表示していたけれど、今回は表示するテンプレート "index" を設定している。
package com.example.hoge; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; @RestController public class HogeController { private static final Logger logger = LoggerFactory.getLogger(HogeController.class); @RequestMapping("/") public ModelAndView index(ModelAndView mav) { logger.info("#index START"); mav.setViewName("index"); return mav; } }
次にDialectのレイアウト全体のテンプレート "layout.html" を設定する。
ソースは次のとおり。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.thymeleaf.org"> <head> <title layout:title-pattern="$LAYOUT_TITLE - $CONTENT_TITLE">My website</title> <meta charset="UTF-8" /> </head> <body> <header layout:replace="~{layout/header::header}"></header> <article layout:fragment="content" style="background-color: lightpink;"></article> <footer layout:replace="~{layout/footer::footer}"></footer> </body> </html>
次が "layout.html" でヘッダ部分を取り込む箇所 "<header layout:replace="~{layout/header::header}"></header>" で取り込まれる "header.html" を設定する。
ソースは次のとおり
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <body> <header id="global-header" layout:fragment="header" style="background-color: beige;"> <p class="text-center">This is header</p> </header> </body> </html>
次が "layout.html" でフッタ部分を取り込む箇所 "<footer layout:replace="~{layout/footer::footer}"></footer>" で取り込まれる "footer.html" を設定する。
ソースは次のとおり
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <body> <footer id="global-footer" layout:fragment="footer" style="background-color: aqua;"> <p class="text-center">This is footer</p> </footer> </body> </html>
レイアウトの定義は以上で、次に上記コントローラプログラムで設定した表示するテンプレート "index" のテンプレート "index.html" を設定する。
ソースは次のとおり
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/layout}"> <head> <title>INDEX PAGE</title> </head> <body> <div layout:fragment="content" class="text-center"> <p style="height: 150px;">This is index page.</p> </div> </body> </html>
これでThymelaefのDialectのレイアウトでの画面表示するプログラムは用意できた。
動かしてみる。
画面表示は次のようになる。
本画面のHTMLは次のように生成されている。
これで終わり。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>My website - INDEX PAGE</title> <meta charset="UTF-8" /> </head> <body> <header id="global-header" style="background-color: beige;"> <p class="text-center">This is header</p> </header> <div style="background-color: lightpink;" class="text-center"> <p style="height: 150px;">This is index page.</p> </div> <footer id="global-footer" style="background-color: aqua;"> <p class="text-center">This is footer</p> </footer> </body> </html>
登録:
投稿
(
Atom
)