Monthly Archives: 7月 2014

[メモ] Pythonで標準エラー出力に表示するには

Pocket

sys.stderrを使う。

例1)

import sys
sys.stderr.write('Error occurred!')

例2)

import sys
print >> sys.stderr, 'Error occurred!'

 

http://docs.python.jp/2/library/sys.html#sys.stderr
http://stackoverflow.com/questions/5574702/how-to-print-to-stderr-in-python
https://sites.google.com/site/diveintopythonjp/home/10-sukuriputo-to-sutorimu/10-2-hyoujun-nyuuryoku—hyoujun-shutsuryoku—soshite—era

[メモ] sambaのパスワードファイルに登録されているユーザ一覧を表示するには

Pocket

smbpasswdにはそういった機能がない。
pdbedit -Lを使う。

pdbeditとは

manによれば「SAM database(sambaユーザデータベース)を管理するコマンド」

pdbedit -L

ユーザデータベースに登録されているユーザアカウントをすべて表示する。
「ユーザ名:uid:フルネーム」という書式で表示。
以下、実行例はすべてmanから。

$ pdbedit -L
sorce:500:Simo Sorce
samba:45:Test User

-vを付けると詳細に。

$ pdbedit -L -v
---------------
username:       sorce
user ID/Group:  500/500
user RID/GRID:  2000/2001
Full Name:      Simo Sorce
Home Directory: ¥¥BERSERKER¥sorce
HomeDir Drive:  H:
Logon Script:   ¥¥BERSERKER¥netlogon¥sorce.bat
Profile Path:   ¥¥BERSERKER¥profile
---------------
username:       samba
user ID/Group:  45/45
user RID/GRID:  1090/1091
Full Name:      Test User
Home Directory: ¥¥BERSERKER¥samba
HomeDir Drive:
Logon Script:
Profile Path:   ¥¥BERSERKER¥profile

そのほかのオプションはpdbedit –helpあるいは、もちろんman。

[メモ] FreeBSD10にhadoopインストール

Pocket

素の状態のFreeBSD 10にpkgngでhadoopをインストールしたときのメモ。

2014/7/4時点でのpkgにはhadoop-1.2.1が入ってる。

pkgのインストール

pkgの初回インストールに成功した試しがない。
pkgのpackageをダウンロードしてインストール。
具体的には、pkg-staticを取り出し、pkg-staticでpkgのpackageをインストール。

$ fetch http://pkg0.isc.freebsd.org/freebsd:10:x86:64/latest/Latest/pkg.txz
pkg.txz                                       100% of 2013 kB  552 kBps 00m03s
$
$  tar xvzf ./pkg.txz --include "*pkg-static" --strip-components 4
x pkg-static
$
(rootになって)
# ./bin/pkg-static add ./pkg.txz
Installing pkg-1.2.7_3... done
If you are upgrading from the old package format, first run:

  # pkg2ng
root@hdmock:/home/doe # 

pkg update。

# pkg update
Updating repository catalogue
digests.txz                         100% 1112KB 556.1KB/s 192.2KB/s   00:02
packagesite.txz                     100% 5014KB 626.7KB/s 373.9KB/s   00:08
Incremental update completed, 23278 packages processed:
0 packages updated, 0 removed and 23278 added.
# 

シェルとか、sudoとか、必要なものがあればインストールする。

hadoopのインストール

$ pkg search hadoop
apache-hadoop-1.2.1_1
$ sudo pkg install hadoop
Updating repository catalogue
pkg: No packages matching 'hadoop' available in the repositories
[doe@hdmock ~]$ sudo pkg install apache-hadoop
Updating repository catalogue
The following 39 packages will be installed:
(中略)
[39/39] Installing apache-hadoop-1.2.1_1...===> Creating users and/or groups.
Creating group 'hadoop' with gid '955'.
Creating user 'hadoop' with uid '955'.
 done

OpenJDKのための設定

hadoopについてくるOpenJDKのためにfstabに設定を加える。
OpenJDKインストール時のメッセージに沿って進める。

======================================================================

This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
procfs(5) mounted on /proc.

If you have not done it yet, please do the following:

        mount -t fdescfs fdesc /dev/fd
        mount -t procfs proc /proc

To make it permanent, you need the following lines in /etc/fstab:

        fdesc   /dev/fd         fdescfs         rw      0       0
        proc    /proc           procfs          rw      0       0

=====================================================================

fstabに以下に行を追加。区切りはtab。

fdesc           /dev/fd         fdescfs rw      0       0
proc            /proc           procfs  rw      0       0

mount。
mountと叩いてmountされていることを確認。

$ sudo mount -a
$ mount
/dev/ada0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
fdescfs on /dev/fd (fdescfs)
procfs on /proc (procfs, local)

以上。
続きはこちら

[メモ] MacにPythonのmatplotlibをインストール

Pocket

matplotlibには、gfortran、freetypeが必要で、こちらはbrewでインストールする。
あとはpipでnumpy, scipyをインストールし、やっとmatplotlibをインストールできる。

gfortran, freetypeのインストール

gfortran。

$ brew install gfortran
==> Summary
 /usr/local/Cellar/gfortran/4.8.2: 960 files, 113M

freetype。libpngも入る。

$ brew install freetype
==> Installing freetype dependency: libpng
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/libpng-1.6.
######################################################################## 100.0%
==> Pouring libpng-1.6.10.mavericks.bottle.tar.gz
/usr/local/Cellar/libpng/1.6.10: 17 files, 1.3M
==> Installing freetype
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/freetype-2.
######################################################################## 100.0%
==> Pouring freetype-2.5.3_1.mavericks.bottle.1.tar.gz
/usr/local/Cellar/freetype/2.5.3_1: 60 files, 2.5M
$ 

numpy, scipyのインストール

$ pip install numpy
Successfully installed numpy
Cleaning up...
$
$ pip install scipy
Successfully installed scipy
Cleaning up...

numpy, scipyのテスト
以下のようなスクリプトを実行

import numpy
print numpy.__version__
import scipy
print scipy.__version__
quit()

実行結果

$ python ./test.py 
1.8.1
0.14.0

matplotlibのインストール

やっとmatplotlib

$ pip install matplotlib
Downloading/unpacking matplotlib
  Downloading matplotlib-1.3.1.tar.gz (42.7MB):  69%  29.5MB
(略)
Successfully installed matplotlib python-dateutil tornado pyparsing nose six backports.ssl-match-hostname
Cleaning up...
$ 

おしまい。

[Windows] スクリーンショット取得ツールScreenshoterはブサイクだけど楽すぎる

Pocket

ひょんなことから知ったスクリーンショット取得ツールScreenshoter。
見た目が悲しいくらいにブサイクでまったく期待してなかったのだが、意外に使い勝手が良くて驚いたので記す。

Screenshoterとは、繰り返しになるがスクリーンショットの取得をサポートしてくれるツールである。
あらかじめ決めておいたフォルダに、これまた決められたファイル名でスクリーンショットを保存してくれる。
撮影対象も、全画面、アクティブウインドウ、任意の範囲で決められる。
つまり設定だけしておけば、あとはじゃんじゃんPrintScreenを連打すればいいだけ(Altキーを押しながらとか要らない)。

おそらく同じようなツールは他にもあるだろうが、Screenshoterにはそれ以外にも「おお!それだよそれ!」という気遣いがあるのだ。
下記にまとめる。

Screenshoterの特徴

公式サイトより引用しつつ追加:

  1. ツールのボタンクリックか、print screenキーを押すだけ(Altを押しながらとか不要)で撮る
  2. 撮影対象は、①全画面、②アクティブウインドウ、③任意のエリアから選べる
  3. マウスカーソルを撮ることもできる(デフォルトではカーソルは消える)
  4. 保存形式は①JPG、②PNG、③BMPから選べる
  5. ファイル名は①連番、②日時、③都度設定、から選べる
  6. ツール表示をコンパクトにできるし、タスクトレイに収納することもできる
  7. ツールは海外製だけど日本語表示もできる
  8. スクリーンショットを撮るときには空気を読んで消えてくれる
  9. インストール不要ッ!
  10. ここまで素晴らしいのに見た目はブサイク。だがそれがいい

見た目は公式サイトを見てくれい。
ツール自体のスクリーンショットを撮ろうかと思ったら上記特徴8のせいで撮れなかったよ!