node.jsでHello World!! (mac & Visual Studio Code)
作業ディレクトリを開き、app.js
を新規作成。
const http = require('http'); var server = http.createServer( (rq,rs)=>{ rs.setHeader('Content-Type', 'text/html'); rs.write('Hello World!!'); rs.end(); } ); server.listen(3000);
左側のバー(アクティビティーバーというらしい)にある虫アイコンをクリック、
緑色の実行ボタンを押して実行すると、下のデバッグコンソールに実行状態が
表示されます
ブラウザで http://localhost:3000/ を開くと
無事に Hello World が表示されました。
めでたしめでたし
node.jsの環境構築(mac)
この手の内容はQiitaに沢山の記事がアップされているので備忘録として…
Xcodeのインストール
AppStoreからXcodeをインストール。
Xcodeコマンドラインツールのインストール
$ sudo xcodebuild -license
ライセンス条項が表示されるので agree
を入力する。
$ xcodebuild -version
Xcode 9.2
Build version 9C40b
-version
スイッチでバージョン確認
Homebrewのインストール
公式HPで案内されているインストールコマンドを実行。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
うーん、インストール中にこんなの出たからXcodeいらなかったかな?
Downloading Command Line Tools (macOS High Sierra version 10.13) for Xcode Downloaded Command Line Tools (macOS High Sierra version 10.13) for Xcode Installing Command Line Tools (macOS High Sierra version 10.13) for Xcode Done with Command Line Tools (macOS High Sierra version 10.13) for Xcode Done.
インストール後、Command Line Toolsのバージョンを確認したらエラーが…
$ xcodebuild -version xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
はて?
Xcode → Preferences → Locations を見るとCommand Line Toolsが空欄になっていたので、 選択し直し、
再度、バージョン確認したら無事に出ました。
$ xcodebuild -version
Xcode 9.2
Build version 9C40b
HomebrewでインストールされたCommand Line Toolsがどこに行ったのか…
Homebrewのバージョンはこんな感じで
$ brew -v Homebrew 1.5.11 Homebrew/homebrew-core (git revision 622c; last commit 2018-03-20)
nodebrewのインストール
$ brew install nodebrew ==> 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 3 seconds
バージョン確認 nodebrew -v
で、バージョン・Usage・Exampleが表示されたらOK
$ nodebrew -v nodebrew 1.0.0 Usage: nodebrew help Show this message nodebrew install <version> Download and install <version> (from binary) nodebrew compile <version> Download and install <version> (from source) nodebrew install-binary <version> Alias of `install` (For backword compatibility) nodebrew uninstall <version> Uninstall <version> nodebrew use <version> Use <version> 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 <key> <value> Set alias nodebrew unalias <key> Remove alias nodebrew clean <version> | all Remove source file nodebrew selfupdate Update nodebrew nodebrew migrate-package <version> Install global NPM packages contained in <version> to current version nodebrew exec <version> -- <command> Execute <command> using specified <version> Example: # install nodebrew install v8.9.4 # use a specific version number nodebrew use v8.9.4
念のため、アップデード
$ nodebrew selfupdate Fetching nodebrew... Updated successfully
Node.jsのインストール
インストール可能なバージョンを全て表示
$ nodebrew ls-all $ nodebrew ls-all 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 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 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 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 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 local: No such file or directory at /usr/local/bin/nodebrew line 575.
安定板をインストール
$ nodebrew install-binary stable Fetching: https://nodejs.org/dist/v8.10.0/node-v8.10.0-darwin-x64.tar.gz Warning: Failed to create the file Warning: /Users/takanori/.nodebrew/src/v8.10.0/node-v8.10.0-darwin-x64.tar.gz: Warning: No such file or directory 0.0% curl: (23) Failed writing body (0 != 1017) download failed: https://nodejs.org/dist/v8.10.0/node-v8.10.0-darwin-x64.tar.gz
怒られた…調べて見るとディレクトリがないことが原因らしい
$ mkdir -p ~/.nodebrew/src
再度、実行するとインストール成功
$ nodebrew install-binary stable Fetching: https://nodejs.org/dist/v8.10.0/node-v8.10.0-darwin-x64.tar.gz ######################################################################## 100.0% Installed successfully $ nodebrew ls v8.10.0 current: none
インストールしたバージョンを指定して、使えるようにする。
$ nodebrew use v8.10.0 use v8.10.0 $ node -v -bash: node: command not found
はてー、あ、環境変数にnodebrew関連のものを追加するのを忘れた
$ vi ~/.bash_profile
以下を追加
# nodebrew export PATH=$HOME/.nodebrew/current/bin:$PATH
設定を読み込ませて、node -v
とnpm -v
でバージョンが表示されたら終わり!
$ source ~/.bash_profile $ node -v v8.10.0 $ npm -v 5.6.0
お疲れ様でした。
心機一転
デジャヴ? 前回もだいぶ期間が空いて再スタートの記事を投稿してました
この間、ユーザー企業に転職して社内SEとして働いてました Javaは使わず、VB6とDBのC/Sシステムという
グループウェア導入して、通知用のアプリとしてJavaを 使ったくらいでしたね🤔
さて、またまた家庭の事情で転職を余儀なくされた私ですが、 今お話しさせていただいているところはnode.jsやら、 Pythonなどなど使ってない言語だったので、 それらを学習していくことになりました👍
とりあえずPythonからこの辺をやろうかなと
paizaラーニング https://paiza.jp/works/python3/primer
Progate https://prog-8.com/languages/python
udemy プログラミング初心者でも安心、Python/Django入門講座 https://www.udemy.com/pythondjango-a/
買った書籍
- 作者: 柴田淳
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/12/22
- メディア: 単行本
- この商品を含むブログ (2件) を見る
…node.js ですが、こんなところを押さえてます
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2017/08/09
- メディア: 単行本
- この商品を含むブログを見る
実践Node.js プログラミング (Programmer's SELECTION)
- 作者: Mike Cantelon,Marc Harter,T.J. Holowaychuk,Nathan Rajlich,生越昌己,吉川邦夫
- 出版社/メーカー: 翔泳社
- 発売日: 2014/06/10
- メディア: 大型本
- この商品を含むブログ (1件) を見る
ちまちまブログ書けたらいいなぁー
ブランク明けでサーブレット・JSPを学び直す
前回の投稿から1年以上のブランクが空いてしまいました(⌒-⌒; )
実は家の諸事情だったり、腰椎間板ヘルニアだったり扁桃腺切除だったりと 色々ありまして全くITのIの字もない生活を送っていました。
ちょっとブランクが空きすぎたのと、実戦に活かせるようにサーバサイドの Javaについて初歩から再学習していきたいと思います。
まずは肩慣らしにスッキリわかるサーブレット&JSP入門をささっと流し読み。
スッキリわかる サーブレット&JSP入門 (スッキリシリーズ)
- 作者: 国本大悟
- 出版社/メーカー: インプレス
- 発売日: 2014/05/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
ちなみにスッキリシリーズのJava入門は評判がいいので購入してみましたが、 サーブレット&JSP入門も概略を掴むのにいい感じでした。
スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
- 作者: 中山清喬
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
開発会社の新人君がWebアプリの開発に挑戦するというストーリーになっていて 他の入門書で挫折した人でも読みやすいかなーという感想ですね。
ただ、基本的にServlet3.0以降のアノテーションベースの設定が基本だったり、 細かい部分までは触れていないので以降は以下の書籍で勉強していきたいと思います。
基礎からのサーブレット/JSP 第3版 (基礎からのシリーズ)
- 作者: 宮本信二
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/09/01
- メディア: 大型本
- 購入: 3人 クリック: 82回
- この商品を含むブログ (12件) を見る
- 作者: 山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2013/01/29
- メディア: 大型本
- 購入: 1人 クリック: 1回
- この商品を含むブログを見る
3ヶ月くらいかけて最終的にはSpringフレームワークまで学習していきたいと思います。 もう書籍は購入済みです。
はじめてのSpring Boot―スプリング・フレームワークで簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槙俊明
- 出版社/メーカー: 工学社
- 発売日: 2016/09
- メディア: 単行本
- この商品を含むブログ (1件) を見る
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る
Swiftを学ぶ #1
Javaの基礎しか分かってない私がiOSアプリに手を出そうとしてSwiftを学習するログです。
教科書は詳解Swiftです。
- 作者: 荻原剛志
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/12/10
- メディア: 大型本
- この商品を含むブログ (2件) を見る
変数
変数には値型、参照型がある。
型 | 型名 | 内容 |
---|---|---|
整数型 | Int | サイズは実行環境のワード長に依存※ |
整数型 | UInt | 符号なし、サイズは実行環境のワード長に依存※ |
実数型 | Float | 32bit |
実数型 | Double | 64bit |
論理型 | Bool | リテラルはtrue/false |
文字 | Character | Unicode1文字 |
文字 | UnicodeScalar | 文字コード |
文字列 | String | 文字列(変更可能) |
※Int/UIntでメモリサイズを意識する場合
型名 | サイズ | 範囲 |
---|---|---|
Int8 | 8bit | -128 ~ 127 |
Int16 | 16bit | -32,768 ~ 32,767 |
Int32 | 32bit | -2,147,483,648 ~ 2,147,483,647 |
Int64 | 64bit | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
UInt8 | 8bit | 0 ~ 255 |
UInt16 | 16bit | 0 ~ 65,535 |
UInt32 | 32bit | 0 ~ 4,294,967,295 |
UInt64 | 64bit | 0 ~ 18,446,744,073,709,551,615 |
Javaと違う点
符号なしのUInt、文字コードのUnicodeScalar、Stringが変更可能である
変数、定数の定義
変数
var [識別子] :[型名]
//その他のスニペット var age : Int = 18 //型を指定、値で初期化 var age = 18 //初期化値で型を推論(ageは整数型Int)
型を明示せずに整数値を初期値として代入すると推論される型はIntになる。
Javaと違う点
定数
let [識別子] :[型名]
複数行まとめて記載する場合はセミコロン(;)で区切る。
var myAge = 18; let yukarinAge = 17 // 田村ゆかりは永遠の17才
変数(または定数)をまとめて記載する場合はカンマ(,)で区切る。
var hoge = 1, foo = 2, var = 3
Javaと違う点
Javaはfinalで宣言する。
今日はここまで。
MacでJAVA_HOMEを設定した。
以下、備忘録。
Macで Apple JDK 6 と OracleJDK1.8 が共存してる環境。
この記事を参考に .bash_profile に設定。
export JAVA_HOME=`/usr/libexec/java_home` # Java SE 1.8を指定したい場合は -v オプションを指定する。 # export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
java_homeコマンドはこちらを参考に
以上
Gitを学ぶ 〜後編〜
前回に引き続き、クスールさんのGit勉強会後編です。
コンフリクトに対応する
共有ディレクトリをクローンする。
$ git clone [URL]
コンフリクトを起こすために一旦、ローカルリポジトリにコミットする。
$ git add [ファイル名]
リモートリポジトリの同じファイルを講師の方が編集、コミット、プッシュする。
※これでコンフリクトが発生する。
ローカルリポジトリをプッシュする。
$ git push
するとリジェクトが発生します。
To http://.../....git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'http://.../....git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
ローカルのリポジトリをリモートの最新で更新する。
$ git pull
更新した際、コンフリクトが発生した場合、以下のように挿入される。
<<<<<<< HEAD 自分の変更箇所 ======= 既にPUSHされている変更箇所 >>>>>>> [コミットID]
これを適宜、修正してコミットしてプッシュすればOK!
ブランチ
現在のブランチを見る
$ git branch
新規のブランチを作る
$ git branch [ブランチ名]
git branch で確認する
$ git branch * master [ブランチ名]
作ったブランチに切り替える
$ git checkout [ブランチ名]
こんな感じに表示される
Switched to branch '[ブランチ名]' $ git branch master * [ブランチ名]
リモートブランチにプッシュする場合は
$ git push origin [リモートでのブランチ名]
リモートリポジトリから変更を取得するが、マージしない。
$ git fetch
※pullはfetch+mergeのようなもの(同じではない)
マージする。
$ git checkout [マージ先] $ git merge [マージ元]
マージする時は作業ブランチにmasterブランチの変更を取り込んで、
確認してからマージするのがオススメ!
(ローカル)ブランチを削除
$ git branch -d [ブランチ名]
(リモート)ブランチを削除
git push --delete origin [リモートブランチ名]
Tips
コミットの修正(プッシュ前)
直前のコミットコメントを修正する
$ git commit --amend
※デフォルトのエディタが開くので修正、上書きすればOK
直前のコミット漏れがあった場合に追加する
$ git commit --amend [ファイル名]
コミットを打ち消す
$ git revert [コミットID]
色々なかった事にする!!
reflogで作業履歴を確認する。
$ git reflog f015603 HEAD@{0}: revert: Revert "追加した!" e866524 HEAD@{1}: commit: 追加した! 88cd3af HEAD@{2}: commit (amend): 修正完了 4e75819 HEAD@{3}: commit (amend): 修正完了 9cfcd32 HEAD@{4}: reset: moving to HEAD^ 70b81c8 HEAD@{5}: commit: mend 9cfcd32 HEAD@{6}: commit: 修正かんりょう
resetでhardオプションを指定して過去に戻る
git reset --hard HEAD@{2}
対象外のファイルを指定
ルートディレクトリに .gitignore
ファイルを作成して、指定する。
# hoge.txt ファイルを対象外にする場合 hoge.txt # hoge ディレクトリを対象外にする場合 /hoge
ちなみに各言語などで標準的な.gitignoreはgithubで公開されてます。
先生の秘伝のタレ
https://gist.github.com…
プライベートになってるので興味のある方は参加してみて下さい( ´ ▽ ` )ノ
Gitは必要不可欠だし、もう少し理解を深めたら、会社で勉強会開催してみようかな。
- 出版社/メーカー: 技術評論社
- 発売日: 2015/05/18
- メディア: 雑誌
- この商品を含むブログ (2件) を見る
- 作者: 岡本隆史,武田健太郎,相良幸範
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/10
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 103回
- この商品を含むブログ (26件) を見る
[PR]クスールさんの勉強会