個人的なまとめ。

てきとーに何か書きます。

bashのRANDOMコマンドの最大値

Bashで大量データを作成する時にRANDOMコマンドを使って数値を生成していたのだが、
Bashのmanページを見てみると、

RANDOM Each time this parameter is referenced, a random integer between 0 and 32767 is generated. 
The sequence of random numbers may be initialized by assigning a value to RANDOM. 
If RANDOM is unset, it loses its special properties, even if it is subsequently reset.

と書いてあり、0から32767までの数値しか生成してくれないみたいだ。
試しに50000件ほどRANDOMで書き出してみると、最大値が32767で重複している数値が複数見られたので、
RANDOMの代わりに、shufコマンドを使用する事にした。

shuf -i 0-100000 -n 1

とやれば、0から100000の範囲の中で1度だけ数値を出力してくれる。
shufはshuffleの略らしい。
詳しくはmanページを見ると良い。あんまり引数の種類が無いから、そんなに覚える事も無くて楽に使えそう。
https://linuxjm.osdn.jp/html/GNU_coreutils/man1/shuf.1.html

Flutterをインストールして動かしてみる

最近Flutterが熱いらしい(?)ので、とりあえずインストールしてサンプルを動かしてみる所までやってみました。

基本的には公式のインストール方法を元に構築していくだけです!

flutter.dev

Bash系触るのが久々すぎて、bash_profile(またはzsh_profile)を変更後に、source ~/.bash_profile(~/.zsh_profile)するのを忘れていたせいで、flutterがコマンドとして認識してくれなくてちょっと時間食いました。

flutter doctorした後に必要な環境が揃っているか自動的にテストしてくれますが、先頭にビックリマークが表示されている項目に関しては推奨なだけなので別に設定しなくても問題ないです。

そもそもFlutterが注目されてるのは、Hot Reload機能が便利だからっていう事とAndroidiOSマルチプラットフォーム対応っていうのが熱いって言われている理由なのかなって思ってます。

とりあえず公式のサンプルと下記のURLを参考にしてデモまで動かしてみました。

f:id:kosuke128:20200125235733p:plain
Flutter_Sample

Macは環境構築が楽でいい感じですね。

参考にしたもの。
qiita.com

qiita.com

(研究室で)知っておくと便利なUbuntuのコマンド

Ubuntuには便利なコマンドが沢山用意されています。
全部の使い方を理解するのは絶対無理なので、研究室にいる時に覚えておけば便利だなぁって思ったコマンドを幾つか列挙します。

※lsとかifconfigとか基本中の基本のコマンドは除きました。
気になる方は、プログラマーが知っておくと良いLinuxコマンド - Qiitaを参考にすると良いかも。

コマンド名 用途 使い方 参考リンク
nkf 文字コードを変換する nkf -w --overwirte FILE名 nkfで文字コード変換 - Qiita
pdftk PDFのファイルを結合・一部切り出しが出来る pdftk Input.pdf cat output Output.pdf pdftk の基本的な使い方 - Qiita
find ディレクトリの中からファイルを探す find . -name "*.pdf" Linux findコマンド - Qiita
grep ファイル内を検索 grep "Text" file.txt grepの利用技まとめ - Qiita
xargs パイプで繋いだ時に繋ぐ前の結果を後に引き継ぐ find . -name "*.pdf" | xargs grep "text.txt" xargs のオプションいろいろ - Qiita
convert 画像の拡張子を変換する convert Input.png Output.eps ImageMagickの使用例 -- 入門 - Qiita
scp ssh経由でローカル-リモート間でファイルをコピーする scp -r /Sending_path Receive@Receive_IP:/Receive_path scpコマンド チートシート - Qiita


他にも色々あると思うけど、思い出したら追記する。

findはファイルを探すのに有能だし、xargsは他にも色々使い道があるから知っておくとすごく便利になる。
scpは送る方と受け取る方を間違えると大変な事になる事があるので、気を付けて使いましょう。
書いてませんが、historyコマンドを使うと左側に番号が書いてあるので、もう一度使いたい番号の前に!を付けて実行すれば簡単にコマンドが再実行できます。
例:

500 ifconfig
501 ls -a
502 pwd
kosuke@Desktop:~$ !501
ls -a

といった感じで簡単に実行できます。一々コピーしたり打ち直さなくて良いです。

bstファイルをちょっとカスタマイズする

Texで参考文献を書く時に、Texファイル内のthebibliography環境を作ってやるのも別に悪いとは言いませんが、個人的には.bibファイルを作って参考文献を書いた方が楽だと思ってます。

で、そんな.bibファイルを読み込む際に使う.bstファイルは各学会がテンプレートを用意してると思うのでそれに従えば良いと思ってます。

が!時にはちょっとした事情でbstファイルを書き換えたい時が来ると思います。

今回はデフォルトで入っているunsrt.bstをベースにちょこちょこっと改良しました。

続きを読む

TeX Studioで個人的に便利な機能

小ネタです.
だいぶ前にたまたま気づいた機能なので,もしかしたら既出かも知れないですが...

例えばこんな状況があったとします.
f:id:kosuke128:20180910162748p:plain

ここで,「あいうえお〜たちつてと」をitemizeして,各行の頭に\itemを付けたいとしましょう.
f:id:kosuke128:20180910162806p:plain

ここで,\itemを入れたい所にctrlキーを押しながらドラッグをすると,下の図みたいに選択することができます.

f:id:kosuke128:20180910162804p:plain

後はその状態のまま,\itemと入力すればまとめて選択した行全てに\itemが挿入されます.
f:id:kosuke128:20180910162800p:plain

連続した複数の行に同じ文字を追加したり削除する場合はこの方法が楽かなと思います.
隔行毎に処理を行う場合はvimを使うやり方が楽だと思います.