linuxサーバ関係のTips
機械学習をサーバで行うにあたって,毎回調べている気がするのでここに書いておく.
サーバを複数人で共有していると,各ユーザにsudo権限が与えられていないことも多い(そうしないとみんながパッケージを好きにインストール入れて環境を壊してしまうので).そういう場合にも対処できるtipsです.
vimに慣れていない人にも易しい,サーバ上のファイルがブラウズ&管理できるアプリ
Cyberduckおすすめです..bashrcとかいじる時も,あらかじめ設定したエディタで編集できて,保存したらそのままサーバにアップしてくれます.
cyberduck.io
サーバ上のフォルダにインストーラからインストールしたい時
例えばanacondaなどだと,pip install condaでインストールされるものと,スタンドアロンアプリでインストールされるものには違いがある.サーバが遠隔にあって直接インストールできない場合には以下のようにすればOK.
wget https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh
sh Anaconda3-2018.12-Linux-x86_64.sh
Anaconda3-2018.12-Linux-x86_64.sh は消去しておく
sudo権限なしで特定のパッケージをインストールする
pipの場合は,
pip install --user package_name
aptの場合は
apt-get download package_name
dpkg -x package_name.deb install_folder_name
アメリカでインターネットを契約する
留学中(一年間)のインターネットをアパートに引いた時のメモです.
使用期間は2019-2020年でした.
どこのインターネットにしたか?
Xfinity(Comcast)の,Performance Internetというプランにしました.
下り60mbpsです.おそらくこれが2019年時点では最もメジャーなプランかと思います.
なぜXfinityにしたか?
- 住んでいる地域のインターネットプランをサイト(https://www.whistleout.com/)で比較したところ,Verisonのfios(光ファイバー)か今回契約したComcastのXfinityが12ヶ月以内しか使わない前提だと一番安い,かつ2年縛りとかもないので,この時点で2択に
- fiosの対応モデムとルーター(接続に必要な機器です)を持っていなかった.買っても良いけど$200程度するのがネックだった.そして,一人暮らしでノートPC+スマホぐらいしか接続しないので,光ファイバーはオーバースペックかもと思いました.
- 知り合いにいただいたComcastの対応モデムとルータを持っていた(本当ありがたい)ので,Comcastにすれば金額的ネックがないのが一番の決めてでした.
- ちなみに,チャットで色々教えてもらえて超助かりました.まだ来たばかりでホテルに滞在していた頃,時差ボケで眠れなくてふとネット契約しよう!と思い立ち,現地時間の真夜中にダメ元でチャットを投げたら,普通に返事がきて驚きました..
トータルいくら必要だったか?
- 月々のインターネット料金は$34.99
- 家にきてセッティングしてくれるオプションをつけたのでそれに$29.99(つけなくてもできるのかもしれませんが,自分の場合は急いでいたので来ていただきました)
3ヶ月以上の滞在ならおそらくこれが最適?アメリカ留学中のスマホのsimカード
アメリカは国土が広く設備にお金がかかるから(?)なのか意外とインフラが高いことに驚きつつもそれも仕方ないかなぁと思ったりしています.
特に携帯は予想以上に高いし契約とか面倒..実際,自分の懸念点は以下でした.
- verisonとかsprintなどの名前聞いたことあるなーってところで契約しようとすると,二年契約とかにしても一月当たり$30-50ぐらいして高い
- SSN(Social Security Number)を取得しない場合,比較的高額なdepositを契約時に支払う必要があるものも
- 1年間の滞在なので,2年縛りとか契約できない
- ..ってゆうか日本語で聞いても複雑な携帯の契約はできれば避けたかった
そんな中,おそらく契約に割く労力的にも,金銭的にも最適解の一つと思われるものを見つけましたので,備忘録として書いておきます.これから留学,駐在等で滞在される方のお役に立てば幸いです.
- この記事が参考になりそうな方
- 結論から先に書くと,Mint MobileのSIMを購入しました
- どういう経緯でMint Mobileにしようと思ったか?
- 自分のスマホが対応しているかはどうやったらわかる?
- 自分の滞在しているところの電波状況を調べるには?
- 購入&使用開始の記録
- 注意点
- 1年間使ってみて
この記事が参考になりそうな方
結論から先に書くと,Mint MobileのSIMを購入しました
どういう経緯でMint Mobileにしようと思ったか?
- 周りの留学中の人に聞くと大抵VerisonやT-mobileなど大手を使っていて,みんな月に$50前後払っていると聞き,高いなぁと思いました..まぁ日本でも大手キャリアはそれぐらいか.
- 最近日本でもMVNOのsimが流行ってきたので,アメリカでもそういうのないのかなぁと思い,このサイト(https://www.whistleout.com/)で自分の滞在する州で使えるプランを比較しました.(自分の場合は端末を既に持っていて,自分の州を入れて月に3GB, 通話・テキストありで検索しました.ご自身の環境に合わせて検索てください)
- そしたらMint mobileが一番安かったので,amazon usのレビューや他の方の体験記をブログで見て,大丈夫そうだなぁと思い購入に踏み切りました.
自分のスマホが対応しているかはどうやったらわかる?
めっちゃ簡単です.以下のサイトに自分のスマホのIMIE(大抵,*#06#をダイヤルすると出てきます)を入れるだけです.
www.mintmobile.com
自分の滞在しているところの電波状況を調べるには?
ここを見ればわかります.まぁ,よっぽど山地に行ったりしない限りは大丈夫かと思います.州外も含めて出かけた際に繋がらなかったことはありませんでした.(でも,この通りらへんは電波弱いなってことはたまにあります.Mint mobileに限った話ではないと思います)
www.mintmobile.com
購入&使用開始の記録
注意点
1年間使ってみて
- 何ら問題ありませんでした.結構しっかりエリア化されているようで,他の州に行っても快適に使えました.ただ,私は山奥などに行っていないので,電波の届きにくい地域で多用する予定の方はちゃんとエリアマップを確認されたほうが良いと思います!
Settings for new mac
New MacBook Pro settings notes for High Sierra (10.13.1)
- 1. Short cut for switching input language
- 2. Installing Homebrew
- 3. Python
- 4. JavaScript
- 4. Atom settings
1. Short cut for switching input language
Default short cut for [Command + Space] calls Spotlight. So I changed the short cut for switching input language.
【OSX El Capitan】OSXアップグレードしたら、[Command+スペース]のショートカット割当が変わってたので自分用に変更した件 - itkhoshi.com
2. Installing Homebrew
Installing Xcode is a must. Install from AppStore (It took several hours..) After install Xcode, run following command to install command line developer tools
|| $ xcode-select --install ||<
Then, copy and paste a command from following URL to install homebrew.
macOS 用パッケージマネージャー — macOS 用パッケージマネージャー
Do not forget open Xcode.app to agree to the license.
To confirm whether homebrew is installed, run
|| $ brew -v Homebrew 1.4.1 ||<
3. Python
http://graphbooth.com/2017/05/31/pythonmac.html
First of all, install pyenv, that is a package to manage python3
|| brew install pyenv ||<
Then, prepare shell file to save settings for python 3.X
|| $ ls -la ||< In case ".bash_profile" does not exist, run touch .bash_profile vi .bash_profile export PATH="$HOME/.pyenv/shims:$PATH" source .bash_profile echo $PATH
To install python 3.X, run
|| $ brew install python3 ||<
or
|| $ pyenv install -l #check available version $ pyenv install 3.6.3 # install desirable version ||<
Then switch python 2.X to 3.X
|| pyenv global 3.6.3 ||<
4. JavaScript
Java install
$ brew cask install java $ java -version java version "9.0.1" $ javac -version javac 9.0.1
Maven install
$ brew install maven $ mvn -v
4. Atom settings
Atomのセッティング備忘録
Atomを自分好みにカスタマイズしているのですが,PCを変えるたびに設定した内容を忘れるので備忘録です.随時更新していきます.
ATOMとは
みんな大好きgithubが開発したオープンソースのエディタです. 様々なプログラミング言語に対応したパッケージが配布されており,カスタマイズ性が高いので超お気に入りのエディタです!
プログラミング言語に応じた文字のハイライトはもちろん,プレビュー機能などもパッケージをインストールするだけで簡単に使えます. 私はTex, python, C, C++, JavaScript, HTMLなどは去年ぐらいからAtomで書いています.
しかし,そのカスタマイズ性の高さから,インストールするパッケージも多く自分が何をインストールしたか忘れてしまうので,PCを変えた時用にここに備忘録として書いておこうと思います. 上記言語を使う方ならこの記事を見ていただければ簡単に快適な環境がつくれるはず!
ATOM-IDE
2017年9月にATOM-IDEがリリースされました. まだ言語は限られているものの(2017.12時点でTypeScript&JavaScript, Flow, C#, Java, PHPのみ),これまでエディタ機能のみだったATOMがIDEとしても使えます.
Windows端末ではもっぱらVisual StudioなのですがmacではC, C++のIDEで気に入ったものがなかったので,今後C, C++も対応されると嬉しい...
インストールは以下の2Step
言語依存でない共通の設定
Atomパッケージのインストール
以下のパッケージをインストール
atom-beauty (整形用)
autopep8のインストールが必要.
pip install autopep8
autocomplete-path
linter (構文チェック用)
highlight-selected (選択文字ハイライト)
言語ごとの設定
Python
Atomパッケージのインストール
以下のパッケージをインストール
autocomplete-python
HTML
Atomパッケージのインストール
以下のパッケージをインストール
atom-html-preview
ATOMでコードを編集しながら,リアルタイムにページをプレビューさせることができます.いちいちブラウザに切り替えて表示させるのはすごく手間なので,超便利! ただ,ウィンドウを開いたりアラートを出したりするコード書く時は,何度も出てきてしまったりするので注意が必要です.
Ctrl + Shift + H
で実行できます.
linter-htmlhint
HTMLの構文エラーをリアルタイムにチェックしてくれる.インストール時にlinter, linter-ui-defaultもインストールする必要がある.Requirmentはポップアップで出てくるのでそれをインストールすればOK. UIはlinter-ui-defaultとDiagnosticsが選べた.今回はDiagnosticsを選択.どちらが良いかはわからない.
JavaScript
Atomパッケージのインストール
以下のパッケージをインストール
linter-javac
構文チェック用.
Java
ide-java
ATOM IDE用のパッケージ,"ide-java"をインストール.インストール数が少なくてちょっと不安になる...
TEX
macTexのインストール
brew cask install mactex
ちょっと時間かかります.
Atomパッケージのインストール
以下のパッケージをインストール
latex
language-latex
pdf-view
Atomパッケージの設定
パッケージlatexのsettingsに行き,
Engineをuplatexに変更
Openerをdefaultからpdf-viewに変更
以前はもうちょいセッティングが必要だった気がするのですがこれで動きました.デフォルトのコマンドだと,
Ctrl + Alt + b
でコンパイルされ,pdfが画面の右に出てくるはずです.
- spell-checkのsettingsのGrammarsに
text.tex.latex
を追加
C, C++
必要な外部ライブラリなど
clang
Atomはただのエディタなので,VisualStudio, Eclipseのように関数の予測変換・補完などがデフォルトではできません.この後その補完などを実現するパッケージを入れますが,それの動作に必要なのがこれです.macには標準で入ってます.バージョン確認方法は以下.
clang++ --version
Atomパッケージのインストール
以下のパッケージをインストール
language-c
参考にさせていただいたページ
Atomで楽しくC,C++開発をする個人的設定まとめ - Qiita
また何か追加したら書き足そうと思います.
jQuery UIを使ってみる
jQuery 初心者です.とりあえず使ってみます.
jQuery UI インストール,その前に
そもそもjQueryをインストールしていない場合は以下のサイトからインストール. (今回は2018.1月現在最新版の uncompressed, development jQuery 3.2.1 をインストール)
jQuery UI インストール
執筆時点で最新バージョンの jQuery UI 1.12.1 を以下からダウンロード.一緒にダウンロードするプラグインは選択式ですが一応全部ダウンロードしておきます.
コード編集
導入はとても簡単でheadタグ内に二行書くだけ.
<script src="path to jquery/jquery-3.2.1.js"></script> <script src="path to jquery/jquery-ui.js"></script>
"path to jquery"にはファイルを保存した場所を入れてください.よくリンクをそのまま貼って使っているコードを見るけど,あれって方々からアクセスされてサーバに負荷かかってたりしないんだろうか..ちょっと心配なので,私はローカルに保存して使ってます.
jQuery UIで画像を並び替え,その順番をファイル出力
jQuery UIを使って複数枚の画像をドラッグ&ドロップで並び替え,その順番をファイル出力できるようにした時の記録です. 例として,3枚の画像の並び替えを行うコードを書きます.
jQuery UIインストール
導入は簡単で二行書くだけ."path to jquery"には保存先を入れてください.
<script src="path to jquery/jquery-3.2.1.js"></script> <script src="path to jqueryjquery/jquery-ui.js"></script>
ダウンロードの手順などは,こちらにもう少し詳しく書いています.
html側
<body > <div id="item_images"> <div id="1"><img src="画像名1" width="300" alt=""></div> <div id="2"><img src="画像名2" width="300" alt=""></div> <div id="3"><img src="画像名3" width="300" alt=""></div> </div> <p>取得した並び順 : <span id="sorted"></span></p> <br> <div id = "myForm"> <a id="download-link" href="#">Click here to download score data.</a> </div> </body>
JavaScript側
<script> $(function() { $('#item_images').sortable ({ opacity: 0.5, update: function(event,ui) { // convert sorted order to text $('#sorted').text($('#item_images').sortable("toArray")); } }); }); // for score data download var $id = function(id) { return document.getElementById(id); } window.onload = function() { $id("download-link").addEventListener("click", function() { var href = "data:application/octet-stream,"; for(var i=0; i<3; i++) { var value = $('#item_images').sortable("toArray")[i]; href = href + encodeURIComponent(value) + ","; } this.setAttribute("href", href); }, false); } </script>
挿入位置を可視化したい場合
例として黒の波線を挿入位置に表示するコードを載せておきます. 以下の関数内にplaceholder: "mark"を追加.
<script> $(function() { $('#item_images').sortable ({ opacity: 0.5, placeholder: "mark", update: function(event,ui) { // convert sorted order to text $('#sorted').text($('#item_images').sortable("toArray")); } }); }); </script>
そして,html側でスタイルを定義
<style> .mark{ border: dotted 2px black; } </style>
意外と簡単にできてよかった...!