百日半狂乱

Shut the fuck up and write some code!!

Linuxターミナル、コマンドtips その2: ファイルを見つける(locate, find)、ファイルの中身を調べる(grep)

(2019/06/29追記) 実践的、網羅的かつ簡潔にまとまったドキュメントを見つけたのでメモ(日本語訳もある)*1

github.com

このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.作成の経緯はその1の冒頭および注釈に書きました.

前回の話題

linuxターミナル、コマンドtips その1: キーボードショートカットとディレクトリの移動

今回の話題

  • ファイルを見つける(locate, find)
  • ファイルの中身を調べる(grep)

*1:毎日それこそ息するように使っているものから、必要な時に覚えてなくて毎回ググっているものまで、ベタだけどまさに当時これが手元にあればなぁという内容になっていて良くできている。このブログを読んでくれるのも嬉しいけど、何ができて何を調べれば良いかをまず知る目的で一回このドキュメントも一通り読んでおくと、"あれどうやるんだっけなー"などとボヤきつつ当てもなくググる時間を減らせるはず。要チェック。

続きを読む

Linuxターミナル、コマンドtips その1: キーボードショートカットとディレクトリの移動

(2019/06/29追記) 実践的、網羅的かつ簡潔にまとまったドキュメントを見つけたのでメモ(日本語訳もある)*1

github.com

このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.きっかけはRebuild.fmのep41*2.少しでも端末操作が楽しく気持ち良くなればこれ幸い.

rebuild.fm

*1:毎日それこそ息するように使っているものから、必要な時に覚えてなくて毎回ググっているものまで、ベタだけどまさに当時これが手元にあればなぁという内容になっていて良くできている。このブログを読んでくれるのも嬉しいけど、何ができて何を調べれば良いかをまず知る目的で一回このドキュメントも一通り読んでおくと、"あれどうやるんだっけなー"などとボヤきつつ当てもなくググる時間を減らせるはず。要チェック。

*2:経緯:これまでそんなにLinuxを使っていたわけではない研究室の後輩の端末操作を後ろから見ていると、こうしたら一発で解決するのになと思うことが多々あり、かと言っていちいち指摘していたら本題から逸れるしで、かなり悶々としていた時期がありました.ちょうどその頃に、「naoya_itoの火を噴いたシェルtips」を拝見し、Rebulid: 41でもtipsの共有について触れられその内容に激しく同感.tips集を作成し、研究室内で小さな勉強会を開きました.

続きを読む

第4回 中国地方DB勉強会 in 岡山 #ChugokuDB に参加した感想、Ubuntu/DebianでMySQL5.5をapt-getでMySQL5.6にアップグレード、あるいはバルクインサートの威力の確認

第4回 中国地方DB勉強会 in 岡山 #ChugokuDB

今週の日曜日に初めて参加しました.

第四回 中国地方DB勉強会

テーマはパフォーマンスチューニング.

ハンズオンのネタとして用いられたのはSQL逆引き大全363の極意.講師の喜田 紘介さんは著者の一人.

SQL逆引き大全363の極意

SQL逆引き大全363の極意

タイムテーブルの通り、午前MySQL、午後PostgreSQL、ハンズオンと実に濃密な一日でした.

続きを読む

0.1 + 0.1 + 0.1 == 0.3 ?

パーフェクトPythonを写経中に0.1 + 0.1 + 0.1について書いてあったのでメモ.

Pythonのfloat(浮動小数点数型)は、大抵の場合はCのdouble型を使って実装されており、近代的なコンピュータの場合53ビットの精度らしい.

Python

$ python
Python 2.7.3 (default, Feb 27 2014, 19:58:35) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 0.1 + 0.1 + 0.1 == 0.3
False
>>> 0.1 + 0.1 + 0.1
0.30000000000000004

例が2系だけど3系でもFalseになる*1

Python0.1 + 0.1 + 0.10.3として扱いたい場合はdecimalモジュールをimportしてこれを用いれば良い.

Ruby

$ irb
irb(main):001:0> 0.1 + 0.1 + 0.1 == 0.3
=> false

Rubyもfalse.

パーフェクトPythonでは、もう1つJavaを例として、0.1 + 0.1 + 0.1 == 0.3がfalseになる様子が挙げられていたので、Cでも見てみた.

C

0.1 + 0.1 + 0.1 == 0.3 ?

$ gcc -Wall test_double_dig.c
$ ./a.out                   
False:0.3000000000000000444089209850062616169452667236328125000000000000000000000000000000000000000000000000

詳しいことはWikipedia参照:コンピュータの数値表現

パーフェクトPython (PERFECT SERIES 5)

パーフェクトPython (PERFECT SERIES 5)

*1:ちなみに、パーフェクトPythonはPython3.3対応の書籍です.念の為.