20190701のMacに関する記事は8件です。

【リンク集】今すぐ勉強を始めよう!ブラウザでプログラミングが動くサイト(随時更新)

想定読者

手取り早くプログラミングを学習したい方。
駆け出しエンジニア!手頃でかつすぐに勉強を始めたい方。
環境構築がよくわからない方。

前提

駆け出しエンジニアがプログラミングを簡単に早く学習したい方に向けて書いています。
環境構築とか一切不要で、ブラウザのみでプログラミングを実行できるサイトを紹介しています。
有料の場合は明記しておきます。
なるべく日本語対応、英語は明記。

とにかく書いて実行してみたいという人に向けてお勧めできるサイトを集めました。

ブラウザ開発環境

プログラミング別

HTML&CSS

SQL

Ruby

PHP

Python

Git

総合学習サイト

実際にコードを書いて勉強ができるサイト

終わりに

本当にリンク集になってしまいましたが、
もし他にもあれば教えてください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【リンク集】今すぐ勉強を始めよう!プログラミングをブラウザ上で学習できるサイト(随時更新)

想定読者

手取り早くプログラミングを学習したい方。
駆け出しエンジニア!手頃でかつすぐに勉強を始めたい方。
環境構築がよくわからない方。

前提

駆け出しエンジニアがプログラミングを簡単に早く学習したい方に向けて書いています。
環境構築とか一切不要で、ブラウザのみでプログラミングを実行できるサイトを紹介しています。
有料の場合は明記しておきます。
なるべく日本語対応、英語は明記。

お勧めできるサイトを集めました。

ブラウザ開発環境

プログラミング別

HTML&CSS

SQL

Ruby

PHP

Python

Git

総合学習サイト

実際にコードを書いて勉強ができるサイト

終わりに

本当にリンク集になってしまいましたが、
もし他にもあれば教えてください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

tmuxのおすすめconf設定@2019

概要

正直何番煎じかわからないがQiitaでのtmux.confの情報が軒並み古くなってしまっているため、今日(2019年7月1日)現在でそこそこ新しいバージョンである2.9に対応したtmux.confを晒す。
みなさんのより良いtmuxライフの足しになればと思います。
tmuxってなに?何が便利なの?という人はこちらの記事が参考になります。
個人的な(tmuxをおすすめする)意見を書き始めるとそれはそれでまた一つの記事になりそうなので、省略しますが、ざっくり言うと下記の理由です。

  • 私はiTerm2が非常に好きだったのですが、いかんせんWindowsにはない。
    • 環境によらずペインの分割を自由自在にしたい
  • 再起動時などにコンソールの状態を保存しておきたい

この記事でできるようになること

  • 完成図
    Untitled.gif

  • 見た目の特徴

    • 非アクティブのペインが白っぽくなる(アクティブペインが見やすい)
  • 機能的特徴

    • マウスが使える
    • クリップボードとの連携(プラグインは不要)
    • ペインの移動がprefix不要でスムーズに
    • ペインの並列実行の有無をトグルで行う

前提

  • 対象環境

    • Mac(Mojabe)
      • tmux 2.9
      • iTerm2
        • クリップボードとの連携をするため(赤い部分にチェックをつける) ScreenShot 2019-07-01 22.14.58.png
    • Ubuntu(18.04) in WSL
      • tmux 2.9a
        • aptで入るのは2.1と古いので最新はこの方の記事を参考に入れるとよいです。
        • @ha4gu様、掲載許可ありがとうございます!
      • win32yank.exeを導入してクリップボードと連携する。
        • win32yankはクリップボードと連携するツール。
        • 上記URLからダウンロード&解凍後Windows側でパスの通ったディレクトリに配置。

本題

さて、気になるconfの内容ですが、こちらです。

# 基本設定
## 256色端末を使用する
set -g default-terminal "screen-256color"
set -g terminal-overrides 'xterm:colors=256'
## Escキーの遅延を解消
set -s escape-time 0
## status line を更新する間隔を1秒にする
set-option -g status-interval 1
## ウィンドウのインデックスを1から始める
set -g base-index 1
## ペインのインデックスを1から始める
setw -g pane-base-index 1
## アクティブなペインのみ白っぽく変更(真っ黒は232)
set -g window-style 'bg=colour239'
set -g window-active-style 'bg=colour234'

# キーの割り当て変更
## prefixキーの割り当て(Ctr+a)
set -g prefix C-a
## prefix + -で水平分割
bind - split-window -v
## prefix + \で垂直分割
bind \ split-window -h
## ペインの移動をprefixなしで行う(Shift + 矢印キー)
bind -n S-left select-pane -L
bind -n S-down select-pane -D
bind -n S-up select-pane -U
bind -n S-right select-pane -R
## ペインの順次移動をCtr + o に設定
bind -n C-o select-pane -t :.+
## 並列実行のトグル化
bind e setw synchronize-panes \; display "synchronize-panes #{?pane_synchronized,on,off}"

# status lineの設定
## window-status を中央揃えで配置する
set-option -g status-justify "centre"
## status line の背景色を指定する。
set-option -g status-bg "colour238"
## status line の文字色を指定する。
set-option -g status-fg "colour255"
## status-left の最大の長さを指定する。
set-option -g status-left-length 20
## status-left のフォーマットを指定する。
set-option -g status-left "#[fg=colour255,bg=colour241]Session: #S #[default]"
## window-status のフォーマットを指定する。
set-window-option -g window-status-format " #I: #W "
## カレントウィンドウの window-status のフォーマットを指定する
set-window-option -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]"
## status-right の最大の長さを指定する。
set-option -g status-right-length 60
## status-right のフォーマットを指定する。
set-option -g status-right "#[fg=colour255,bg=colour241] #h | LA: #(cut -d' ' -f-3 /proc/loadavg) | %m/%d %H:%M:%S#[default]"

# 操作系
## マウス操作を有効化
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
## コマンドモードでの選択方法をvim風に変更
set-window-option -g mode-keys vi
setw -g mode-keys vi
bind-key -T copy-mode-vi v send -X begin-selection
## クリップボートとの連携
### ☆MacOS
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
### ☆Windows(WLS)
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "win32yank.exe -i"
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "win32yank.exe -i"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "win32yank.exe -i"
unbind-key -T prefix v
bind-key v run "win32yank.exe -o | tmux load-buffer - && tmux paste-buffer"

最後の☆2つの箇所はOSによって書き分けてください。
2つ同時に書くとどうなるかは保証できないです。

解説

基本設定

これらは見た目の問題なので拘る必要はないです。
私は割とシンプルに基本的なものしか入れてませんが個性が出るところなのでこだわりたい人はここでもりもりしてください。
基本的にはコメントのとおりです。

キーの割り当て

  • prefixは初期だと個人的には使いにくいのでControl + aに変えてます。
  • ペインの切り替えはより直感的に[-]で水平分割、[|]のキーである¥で垂直分割です。
  • ペインの移動はシフトキー + 矢印キーで動けます。
    • bind -nはprefix不要、という意味です。他でも使えますのでお好みで設定してください。
    • 別途 Control + oで順次移動もできます。
  • prefixキー + eで同時実行のオンオフにできます。
    • オンオフの様子はこんな感じ Untitled.gif

ステータスラインの設定

ステータスラインを下に表示するのですがそこの設定を書いてます。
基本的にはコメントのとおりです。

操作系

基本的にはマウスでのスクロールを有効化したり、prefix+[で入るコマンドモードでのコピーの仕方をvi風にしている。
またそのコピーしたデータをクリップボードと連携するための設定が記されている。
WindowsもMacも同じことができるが書き方が違うので環境に応じて書き換えてください。

おわりに

以上です。
皆さんからもおすすめの設定があれば教えてください。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

お気に入りmacのディスクトップアプリ

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macを手に入れてからgit completion bashとgit promptを使えるようになるまで

概要

Macを購入したら待ち受けている数多くの初期設定。
GUIツール以外にも、CLIで使う系のものは骨が折れますよね。

そんな中で、毎回git completion bashとgit promptに関しては調べてやっていたのでメモ書きとして。

各ツールの概要

git completion bashとは

Gitコマンドの補完を効かせてくれるやつです。
途中まで入力したブランチ名とかをTABキーで保管してくれたりします。

git promptとは

シェル上でのgit情報をわかりやすく見せてくれるやつです。
こういうの↓
スクリーンショット 2019-07-01 18.04.09.png

ブランチ名とか出てきて良い感じになります。

インストールしていく

Homebrewインストール

まずは、公式サイトからHomebrewを入れましょう。

Gitインストール

デフォルトでは、Xcodeのcommand line toolsが使えるようになっています。
しかし管理のしやすさなどから、Homebrewを使って今回は入れていきます。

brew install git

その後に、~/.bashrcを作成して下記を追加します。
gitのパスをインストールしたものに置き換えます。

~/.bashrc
export PATH="/usr/local/Cellar/git/2.5.0/bin:$PATH"

上記の2.5.0はインストールされたgitのバージョンが入るので、各バージョンによって書き換えましょう。

bash completionを入れる

各種コマンドの保管を行ってくれるやつです。
~/.bashrcに下記を追加します。

~/.bashrc
if [ -f $(brew --prefix)/etc/bash_completion ]; then
  source $(brew --prefix)/etc/bash_completion
fi

git completion bashを入れる

こちらも~/.bashrcに追加します。

~/.bashrc
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\[\033[37m\][\[\033[36m\]\u\[\033[37m\]@\h \[\033[32m\]\W\[\033[37m\]]\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '

.bashrcにパスを通す

初期状態は~/.bash_profileがなく、今回作成した~/.bashrcにパスが通っていません。
そのため、~/.bash_profileから、~/.bashrcにパスを通しましょう。

~/.bash_profile
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

これでシェルを立ち上げ直せば、git completion bashとgit promptが使えるようになります!

参考記事

https://qiita.com/koyopro/items/3fce94537df2be6247a3

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Fortran 90/95 で "Hello, world!"

はじめに

環境は macOS Mojave (10.14.5) で Homebrew の gcc (gfortran) を使っています。
他のOSでも大きな問題はないはずです。

初心者向けに、何回かに分けてFortranの記事を書くつもりでいます!
(私自身、バリバリFortranを使っているわけではないので、ゆっくり更新になると思います)

Fortranって何?

https://ja.wikipedia.org/wiki/FORTRAN にはこう書いてあります。

FORTRAN(フォートラン)は、1954年にIBMのジョン・バッカスによって考案された、コンピュータにおいて広く使われた世界最初の高級言語である。

だそうです。

直感的には「数値計算が得意な言語」です。

そのため、大学の研究室や、研究施設ではまだまだ使われています。
(もちろんC++にすでに置き換わっていたり、Pythonを使っていたりする場合もありますが...)

余談ですが、私は物理出身です。
私自身は最近Fortranを使っていないのですが、友人はバリバリ使っています。

「Fortran」 vs 「FORTRAN」

これは些細な問題ですが...
大文字で「FORTRAN」と書いたときはレガシーな FORTRAN 77 を指します。
小文字表記で「Fortran」と書いたときはモダンな Fortran 90/95 以降を指します。

今回は、よりわかりやすくてモダンな Fortran 90/95 を対象に記事を書いていくので小文字表記になっています。

Fortran 90/95 で "Hello, world!"

本題です。
以下のファイル「hello_world.f90」を作りましょう。

hello_world.f90
program hello_world
    write(*,*) 'Hello, world!'
end program hello_world

ターミナルでコンパイルをして...

Terminal.app
$ gfortran hello_world.f90

「a.out」というプログラムができているはず

Terminal.app
$ ls
a.out           hello_world.f90

実行すると!

Terminal.app
$ ./a.out
 Hello, world!

おわりに

お疲れ様でした。
次回は、コメントアウトの方法などを記事にしたいなぁとなんとなく考えています。

間違いなどありましたら、コメントで教えていただけるとありがたいです!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【技術備忘録③】容量監視コマンドの「df」「du」コマンドの習得で、原因究明力の向上

  • 現在利用している言語や技術の記法や不明点等を記録していく記事第三弾。
  • 素晴らしき先人たちの「タイトル命名術」を事細かく調査した結果、センスや感性が最終着地点であることが判明し、史上最大の悟りに没頭。
  • 今回は、容量監視コマンドである「df」「du」コマンドを記録して、原因究明力を更に上げていくことにしよう。

作業環境

  • Amazon Linux 2
    • ※結果画面や利用確認等の、メイン環境として使用。
  • Mac OS X 10.13.4
    • ※Macでの操作性と利用可否確認のために使用。

dfコマンド

概要や特徴

  • OSのディスク容量のサイズや使用率等の情報を表示するコマンドツール。
  • 手元の環境のシステムがどのくらいの容量を有しているのかを確認する際に用いる。
  • パソコンの挙動の不具合・サーバーエラー等の際の原因究明に便利。

基本操作

  • 基本的な使用例は下記。

test.png

  • 基本的な項目の見方は下記。
項目名 意味
Filesystem(ファイルシステム) ディスク名
1K-blocks(1K-ブロック) 使用可能なディスク容量
Used(使用) 使用済みディスク容量
Available(使用可) ディスク空き容量
Use%(使用%) ディスク使用率
Mounted on(マウント) ファイルシステムの位置(場所)
  • 基本的な操作方法は下記。
内容 コマンド
通常表示 df
サイズ容量表示 df -h
全ファイルシステム容量表示 df -a
サイズ単位での表示 df -BMで1024 * 1024単位
df -BMBで1000 * 1000単位
df -Hでサイズ単位に合わせた表示
iノード(ファイル属性情報データ)での表示 df -i
ファイル場所指定での表示 df ファイルパス
ファイルタイプの表示 df -T
バージョン表示 df --version
ヘルプ表示 df --help

duコマンド

概要や特徴

  • ファイル容量のサイズや使用率等の情報を表示するコマンドツール。
  • dfコマンドと同様に、サイズや使用率の表示コマンドだが、ファイルごとの表示のため、より詳細な情報を確認することができる。
  • dfコマンド同様に、挙動の不具合やサーバーエラー等の原因究明に便利。

基本操作

  • 基本的な使用例は下記。

hsh.png

  • 基本的な操作方法は下記。
内容 コマンド
カレントディレクトリ(現在位置)下の全ての表示 du
※HOMEディレクトリ等で行うと、大量の処理が走るため注意
容量の合計のみ表示 du -s
du -s ファイル場所で特定ディレクトリでの合計表示
サイズ単位での表示 du -h
du -shみたいに組み合わせて利用する場合が多い。
階層指定 df -d階層数
例 : df -d1で1つ目の階層までの表示指定
du -hd1みたいに組み合わせて利用
バイト単位表示 du -b
バージョン表示 du --version
ヘルプ表示 du --help

実践コマンド

  • 実際に挙動不具合等での確認の際に便利なコマンドは主に下記。
# 2階層指定で、ファイル容量の多い順での表示
$ du -hd2 ファイル場所 | sort -nr

# 2階層指定で、ファイル容量の少ない順での表示
$ du -hd2 ファイル場所 | sort -h

# 特定ディレクトリの合計のみの表示
$ du -sh ファイル場所

まとめ

  • 今回は、容量監視コマンドの学習ということで、知らぬ間の容量の無頓着使用に、自分への怯えと同時に愛着を感じながら記事を書く。
  • 試用中毒であるため、そろそろクラウド中心を検討する時期がきたことに、表情筋を自由に踊り狂わせる生活。
  • コマンドツールにも視覚性を求める現代技術者のため、次回は容量監視を可視化できるツールを探して試用することにしよう。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ローカル上にLocalStackをDockerで実行

はじめに

開発用にAWSのサービスをローカル環境に構築できる、LocalStackというプロジェクトがあります。
https://github.com/localstack/localstack

今回はDockerを使ったLocalStackの実行方法をまとめます。

環境

OS: macOS Mojave 10.14.5
Docker: 18.09.0
Docker Compose: 1.23.2

プロジェクトをプル

git clone https://github.com/localstack/localstack.git
cd localstack/

サービスの指定

環境変数 SERVICES にカンマ区切りでサービス名を指定することで起動させたいサービスを選ぶことができます。
指定がない場合、全て指定と同意です。

指定できるサービスは以下の通り

サービス サービス名 エンドポイント
API Gateway apigateway http://localhost:4567
Kinesis kinesis http://localhost:4568
DynamoDB dynamodb http://localhost:4569
DynamoDB Streams dynamodbstreams http://localhost:4570
Elasticsearch elasticsearch http://localhost:4571
S3 s3 http://localhost:4572
Firehose firehose http://localhost:4573
Lambda lambda http://localhost:4574
SNS sns http://localhost:4575
SQS sqs http://localhost:4576
Redshift redshift http://localhost:4577
ES (Elasticsearch Service) es http://localhost:4578
SES ses http://localhost:4579
Route53 route53 http://localhost:4580
CloudFormation cloudformation http://localhost:4581
CloudWatch cloudwatch http://localhost:4582
SSM ssm http://localhost:4583
SecretsManager secretsmanager http://localhost:4584
StepFunctions stepfunctions http://localhost:4585
CloudWatch Logs logs http://localhost:4586
STS sts http://localhost:4592
IAM iam http://localhost:4593
EC2 ec2 http://localhost:4597

※ サービス名はaws cliのリファレンスから
http://docs.aws.amazon.com/cli/latest/reference/#available-services

注意点: Dockerに割り当てるメモリが少ないと正しく起動しない

Dockerへのメモリ割り当てが少ないと、指定した全てのサービスが正しく実行されないことがあります。
例えば、以下のような elasticsearch の起動で実行エラーが発生します。

...
WARNING:infra.py: Service "elasticsearch" not yet available, retrying...
ERROR:infra.py: Error checking state of local environment (after some retries): Traceback (most recent call last):
...

だいたいメモリを 4 GB にすれば全てのサービスが実行できました。

多くのサービスを実行させたいときは、割り当ての量を増やすか、増やせないときは最小のサービスを指定して実行が必要です。

Dockerで実行

Docker Composeを実行

TMPDIR=/private$TMPDIR \
DATA_DIR=/tmp/localstack/data \
SERVICES=apigateway,kinesis,dynamodb,dynamodbstreams,elasticsearch,s3,\
lambda,sns,sqs,redshift,es,ses,route53,cloudformation,cloudwatch,\
ssm,secretsmanager,stepfunctions,logs,sts,iam,ec2 \
docker-compose up -d

TMPDIR : Macの場合は指定が必須
DATA_DIR : データの永続化のために指定
SERVICES : 実行するサービスを指定 (全てのサービスを実行する際は指定はいらない。上ではサンプルとして全てを列挙)

バックグランドで実行のために -d オプションをつけています。

ログの最後に Ready と出れば、起動完了です。
すると、デフォルトではDocker上に localstack_localstack_1 という名前でプロセスが実行されていると思います。

ホストOS起動時に自動で実行するように設定

ホストOSが再起動した際も自動で実行されるよう設定値を変更します。

docker update --restart=always localstack_localstack_1

まとめ

これでAWSサービスをローカルで利用できる環境が整いました。
あとは、CLIやSDKで、各サービスのエンドポイントをLocalStackへ向けることで利用可能となります。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む