サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
april.fool.jp
zfsのバックアップは、snapshotを撮っておいて、自ホストの別zpool、あるいは他ホストの別zpoolに移すことで行われる。 バックアップは定期的に行われるものであるが、ではそのsnapshotを移す際、毎回毎回まるまる送っていたんでは帯域も時間もディスク寿命も無駄である。 zfsはそこも考慮していて、差分だけを送ればいいようにincrementalオプションがきちんと用意されている。 書式は以下の通りsendに-iオプションを与えるだけ。 (recv側にはsnapshotAがすでに転送済みの前提) よろしい。では次回からは…? ふむ。 では二回目以降はどうするのだろう? 上記の書式例でsnapshotCが出来たらどうするのだろう? まさかsnapshotA, B, Cを全部並べるのか?と思ったけどそれは間違いで、snapshotB, Cだけでよい。 recv側にはsnapshot
Windowsを複数ネットワークに繋ぎかえるとき、しかも片方がDHCPでの自動割り振りで、もう片方が固定でIPアドレスを指定しないいけない場合。 いちいちネットワークインターフェースのプロパティからIPアドレスを変更するのは大変に面倒な作業である。 調べてみたらコマンドラインでも変更はできるとか。 netshコマンドでTCP/IPのパラメータを設定する ならばバッチファイルで手軽に変えられる。 その経緯を示す。 対象OSはWindows 7。xpだと動かないかも。 結論 バッチファイル例を示す。 拡張子.batの適当な名前で保存し、必要なときに実行すればよい。 固定IPアドレスを設定するとき IPアドレスを固定で指定したい場合。 インターフェース名: “ローカル エリア接続” IPアドレス: 192.168.0.100 ネットマスク: 255.255.255.0 デフォルトゲートウェイ:
Slack/Mattermost(以降、まとめてSlack)のbotといえばHubotが有名だ。 Hubotはcoffeescriptで書かれているのだが、botのためだけに新しい言語を覚えるのも面倒。 加えてHubotを動作させるにはnpmが必要。 ちょっとそこまでは…。 Pythonなら普段使いで最初から環境は作ってあるし、楽だし。 そう思っていろいろと調べてみた。 Slackのbotに必要なことは? Slackのbotに必要なのは、端的に以下の二つ。 1. Slackからのデータ送信を受ける。 2. Slackへ何かをする。 1.は、HTTP POSTでやってくるので、POSTを受けることさえできればよい。 2.は、例えばSlack上で何かの発言をすることだが、こちらはcurl(Pythonならrequests)でも使えば簡単にできる。 PythonでHTTP POSTを受けるには?
atomのpackage管理をproxy越えで行う方法を示す。 atomは1.01、Windows 7である。 atomのpackage管理について atomのpackageはapm(atom package manager)で管理される。 proxyの背後からapmを使うには、ちょっと面倒な作業が必要だ。 apmはそれ自体で独立しているCUIプログラムである。atomの中の機能ではない。 だから、proxyの設定をしようとしたら、atomの設定を変更するのではなく、apmの設定を変更しないといけない。 つまり、atomのシャレオツなインタフェース経由ではなく、apmをコマンド操作したり、テキストファイルを修正することが必要だ。 なお、apmも実はwrapperなのだが、proxyの設定に限れば無視して構わない。 apmはどこにある? apmは以下の場所にインストールされている。
自作PythonスクリプトをWindows実行バイナリに変換する場合、pyInstallerはとっても楽ちんなのであるが、問題もある。 実行ファイルがスタートされるまで、とても待たされることだ。 その遅さに耐えかねてpy2exeを試してみたところ、ビルドまでは面倒なものの、作成した実行ファイルはめっぽう速くて驚いた。 そういったわけで、py2exeでのWindows実行バイナリ作成方法について記す。 まず最初に、pyInstallerとpy2exeで果たしてどの程度差があるかを示す。 実行速度の違い UNIX系だと、time; <実行ファイル> とすると所要時間を計測してくれるが、Windowsだとどのようにするのであろうか。 よく分からない。 あんまり興味もないのでWindowsにもあるtimeコマンドで大まかに測ってみた。 前提 ・同じスクリプトを使用する ・バイナリは一つにまとめる
経験のある方はご存じだろうが、長い間これを続けると、ディレクトリが散らかって酷い事になる。 ではバージョン管理を導入すべきか? でも、一人で管理しているサーバなのに、わざわざsubversionを入れる?それはちょっと。 というのが長らくの悩みであったのだが、実はrcsという簡便なリビジョン管理ツールがあることを知った。今さらではあるが。 しかし、これがまた実に快適であった。 快適すぎて、今ではどこのディレクトリでもRCSディレクトリ(後述)を掘ってしまうくらいになってしまった。 そんなRCSについて以下に記す。 RCSとは。 RCSとはRevision Control System。 きわめて軽量単純なGNU製のリビジョン管理システムである。 一人で使う分には十分(いちおう、ロック機能はあるよ!)。 だいたいのUNIX系OSには最初から入っている。 FreeBSDはベースシステムに入って
Sambaの4.2.0リリースに伴い、3系列サポートが終了する、とのことなので、4.xに移行した。 顛末を記す。 Samba 3系列のサポート終了について 一応はソースを。 4.2.0のリリースノートに記載されている。 https://www.samba.org/samba/history/samba-4.2.0.html With the final release of Samba 4.2, the last series of Samba 3 has been discontinued! People still running 3.6.x or earlier,should consider moving to a more recent and maintained version (4.0 – 4.2). Samba 4について(Active DirectoryにしなくてもOK
Python、Perl、Ruby、PHPなどのLight Languageは、俺みたいな素人プログラマでもじゃんじゃんコードを書けるところが素晴らしい。 さらにそのコードがGUIで動くようになるのなら、もっと素晴らしい。 wxGladeでそれができる。wxGladeでGUIを作ってみたので記す。 wxGladeとは http://wxglade.sourceforge.net/index.php wxPython向けのGUIデザイナーである。 wxPythonとはPythonのGUIツールキット。 また、GNOMEのGUIツールキットであるGladeが名前に入っている通り、wxGladeの設計思想はGladeに沿っている。 インストール こちらからどうぞ。 以下の例ではWindowsを使っている。 最初の一歩 どんなGUIを作るにしても、まず最初にすべきことがある。 起動すると以下のような
カレンダーサーバのBaikalを試してみたので記す。 ここでのカレンダーサーバとは、Googleカレンダーのようなものですな。 「だったらそんなのGoogleカレンダーでいいじゃないか」というのは仰るとおりだが、そもそも環境の都合上、Googleカレンダーへの接続ができないとか、PRISM以降、オンラインサービスを信用ならない向きには有用なサービスであります。 カレンダーサーバの選択 とはいえ、カレンダーサーバ(以降、CalDAVサーバ)を選ぶにも、かなりの数が作られている。 Wikipedia(英語版)で調べてみると、各種CalDAVサーバが一覧にされた比較表が出てくる。 これを参考に選んでみよう。 http://en.wikipedia.org/wiki/Comparison_of_CalDAV_and_CardDAV_implementations いろいろ眺めてみて、かつ、少しかじ
過日、起こしたpyinstallerのインストール方法が盛大に間違っていたので改めて示す。 (動いていたからまったく気がつかなかった・・・・) PythonでWindowsアプリケーションを作ってみよう pyinstallerとは、pythonプログラムをWindowsなどで動く実行ファイルに変換してくれるものだ。 自作pythonプログラムを他人にも使ってもらおうとすると、当然その人もpythonをインストールすることが前提になる。 しかしスタンドアロンの実行ファイルにできるなら、そんな面倒を解消できる。 ありがたいことでございます。 PyInstallerのインストール 公式のドキュメントに沿いつつ進める。 インストール先はWindows。 前提 Pythonはもちろんインストールしてあるとして、以下のものが必要 ・PyWin32 ・(場合によって)setuptools/distrib
バッチファイルにパスワードを書くときの悩み ユーザの追加や、属性の変更をバッチファイルで処理したいことがある。 しかしこういった作業には、しばしばパスワードの操作が含まれる。 しかしパスワードを平文のまま扱うわけにもいかない。 パスワードの設定・変更をするコマンドが、暗号化されたパスワードも受け付けるようになっているのは、そのためだ。 たとえばLinuxにはchpasswdというコマンドがある。chpasswdは暗号化されたパスワードを受け付ける。 もしバッチファイルを覗かれても、パスワードが暗号化されていれば、まあ大丈夫と言える。 MD5からSHA512へ ところで、こちらの記事でも触れたとおり、MD5は今そこにある危機であるからして、パスワードのハッシュ方法をSHA512に変えるOSもぼちぼち出てきた。 そういったOSにおいて、暗号化したパスワードでユーザ情報の操作をするには、とうぜん
Plexというメディア共有ソフトウェア群がある。 Plex Media ServerとPlex Media Clientの二つから成っている。 Plex Media Serverというサーバを立てておけば、Plex Media Centerのインストールされた端末から動画や音楽を視聴することができる。 もっと具体的に言うと、自宅でPlex Media Serverを立てておけば、宅内はもちろん、外出先のモバイル端末からでもメディアへアクセスできる。 動画や音楽をため込んでいるNASにPlex Media Centerをインストールできればとても便利というわけ。 クライアントは、Windows, Linux, iOS, Android向けに用意されており、PS3, XBOX360はデフォルトで対応。 しかしiOSやAndroid向けのアプリは\450と、なかなかのお値段であって、そこまでして
Jail FreeBSDにはJailという技術がある。 Jailとは、OSレベルの仮想化技術だ。 Jailを使うと、FreeBSDマシン上にいくつもの独立したシステムを構築できる。 たとえば、一つのFreeBSDのうえに、Samba, Apacheをそれぞれ独立させて構築させることができる。 独立、というのは、Apache側のシステムで何が起こっても、Samba側のシステム、ホストのFreeBSDには何の影響もないということ。 もっと深いところで仮想化するESXiやらXenやらと比べると、オーバーヘッドが小さいという利点がある(と思ってます)。 これらの方法だと、各サービスを独立させたいときには、OSごとインストールする必要があるから。 (仮にあるマシン上でDHCPサーバ, DNS, Samba, Apacheを動かすとして、それぞれ向けにOSをインストール、というのはさすがに辛い。) 詳
Standaloneモードでは、複数のホストを使った処理は行わない。デーモンも動かさない。 しかしHadoopは分散処理をしてナンボである。 分散処理をする場合には、複数のホストでいくつかのデーモンを動作させる必要がある。 それはまあ当然。 ただ、いきなり複数ホストを使うのはハードルが高い。 そこで、「Hadoopは複数ホストで動いているつもりだけど実際は1台のホストで動いている」モードで設定の確認をする。 これが擬似分散(Psuedo-distributed)モード。 擬似分散モードに必要な各設定の意味 擬似分散(Psuedo-distributed)モードの動作には以下、四つの設定が必要。 完全分散(Full distributed)モードでも変わらないんだけどね。 HDFSのメタデータを格納するnamenodeの設定 データをいくつ複製(replication)するかの設定(デフォル
192.168.100.106 - - [24/Jul/2013:22:35:26 +0900] "GET /MT/js/common/Editor/Iframe.js?v=5.14-ja HTTP/1.1" 304 - "http://192.168.100.5/MTcgi/mt.cgi?__mode=view&_type=entry&blog_id=2&id=330" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0" 192.168.100.106 - - [24/Jul/2013:22:35:26 +0900] "GET /MT/js/common/Editor/Textarea.js?v=5.14-ja HTTP/1.1" 304 - "http://192.168.100.5/MT
Hadoopのnamenode兼datanodeが電源瞬断のせいで壊れてしもうた。 勉強用のHadoopなのでダメージはないのだが、せっかくなのでfsckなどを試した結果を記す。 hadoop-1.0.0。 OS側でもfsckはしておいた。 サマリ HDFSにもfsckがある。 hadoop fsckでチェック、修正できる。 hadoop fsckと叩けば使い方の簡単な説明が表示される。 namenodeがsafemodeのためにHDFSが読み取り専用になっていることがある。 読み取り専用ではfsckで修正できないので、safemodeから出る必要がある。 HDFSでのfsck hadoop fsck <path>と指定すればよい。 CORRUPT!とのことで、壊れておりますなあ。
昨年あたりからWindows XPのサポート終了にともない、Windows 7へクライアントOSを移す企業が多い。 私の仕事PCも過日、ついに7に変更された。 さすがに色んなところが改善されていて使いやすくなっているのだが、なぜかSambaに置いてあるファイルが壊れたり、誰も開いていないはずなのに読み取り専用でしか開けない事象が頻発した。 特に共有設定したOfficeドキュメントで顕著。 しばらく悩んでいたのだが、Sambaのログにoplocks failedという記録を見つけて(おそらく)対処方法が分かった。 以下に示す。 Sambaのバージョンは3.6.22である。 結論 smb.confのglobalセクションに以下を書け。 ネタ元 ネットを渉猟したところ、やはりOplocksの評判はあまりよくない。 以下のホワイトペーパーが分かりやすかった。 Oplocksとread cachin
ある日、デスクトップ用途で使用しているFreeBSDマシンで、いきなりデスクトップ環境がブラックアウトしました。 ログを見たところこんな感じ。
タイトル通り、FreeBSDでnginx、FastCGIでPHPを動かす場合。 lighttpd + phpの場合はこちら。 必要なもの。 nginx spawn-fcgi php(fastCGI) 概要 nginxは静的コンテンツ向けのwebサーバ。 そのままでは動的コンテンツは扱えない。 どうしても必要なら、よそで動的コンテンツを生成してもらわなければならない。 その仕組みの一つにFastCGIがある。 FastCGIは動的コンテンツの受け渡しのためのインタフェースである。 spawn-fcgiはFastCGIプロセスの管理を行う。 ここで、PHPにはFastCGIサーバモードというのがある。 指定されたポートで待ち受けてリクエストに応えるというもの。 spawn-fcgiとPHPのFastCGIサーバモードを組み合わせれば、PHPのFastCGIインタフェースができあがる。 ngin
タイトルの通り。 たかがインストールして使える状態にするまでだけで苦労したからだよ! インストールした後はVagrantの使い方はこのあたり見たらいいわけですよ。 Vagrant超入門:Vagrant初心者向けの解説だよ! https://github.com/tmknom/study-vagrant インストール 手順はここ http://docs.vagrantup.com/v2/getting-started/index.html 参照。 http://www.vagrantup.com/ からインストーラをダウンロードしてとっととインストール 2014/6/7現在、ヴァージョンは1.6.3。 初期設定 コマンドプロンプトを起動してinit。
Windows xpには標準でバックアップツールが付属している。 ntbackup.exeというツールである。 使い方は以下のサイトに詳しい。 差分バックアップと増分バックアップの違い http://www.atmarkit.co.jp/fwin2k/win2ktips/305butype/butype.html しかし、ntbackup.exeには大きな穴がある。 それは、ntbackup.exeで作成したバックアップファイル(拡張子.bkf。以降.bkfファイル)をWindows 7で読めないこと。 これは大ダメージ。 なんでも、ntbackup.exeが標準装備だったのはxp, server 2003が最後だったそうである。 さてどうやってリストアするか。 結論として、Windows 7 home editionしか持っていないのだったら、xpを抹殺してはいけない。 すくなくともライ
PythonでWindowsアプリケーションを作ったとする。 たとえばファイルを引数に取り、整形するものだとする。 せっかくWindowsアプリケーション、というかGUI上のプログラムなんだから、アプリケーションにドラッグ&ドロップしたいじゃないか。 どうしたらできるか。 …まあ普通にargvで受け取ればいいんですがね。 以下、Pythonにおけるargvの使い方メモ。 sys.argv sys.argvは、コマンドラインで渡される引数が入ったリスト。 sys.argv[0]にはスクリプト自身が入る。 len(sys.argv)で引数の数をカウントできる。 できるが、スクリプト自身も含めての数であることに注意。sys.argv[0]に自分が入っているからね。 サンプルスクリプト サンプルスクリプトである。
タイトルそのままである。 たぶんGoogle様あたりが始めたのだと思うけど、何かの認証の際にスマートフォンをトークンキーとして使う仕組みはとても便利である。 二要素認証、つまりパスワード/パスフレーズに加えトークンキーも必須にすることで、セキュリティは段違いに向上する。 しかし、ちょっと前までトークンキーと言えばRSAのハードウェアで、手軽に使えるとは言えない代物だった。 それがスマートフォンで出来るんだから問答無用で便利なんである。 そんなgoogleの2段階認証を、自分のサーバのログインにも使えると聞いて驚愕して試して感動したので下記に顛末を記す。 なお、FreeBSDで試しているが、Linuxでも大丈夫。Mintでの結果を末尾に追記。 事前準備(スマートフォン側) Android、あるいはiOSにgoogle authenticatorをインストールし、2段階認証プロセスの準備をして
C:¥home¥tools¥curl>curl -O -x this.is.sample.proxyserver.com:8080 "http://download.microsoft.com/download/DefinitionUpdates/mpam-fe.exe" curlは、そのままだとダウンロードした内容を標準出力に表示する。 -Oを付けると、ダウンロード先のファイル名で保存する。 この場合だとmpam-fe.exeとして保存する。 proxyサーバは、-xあるいは–proxyで指定する。 書式は<[protocol://][user:password@]proxyhost[:port]> プロトコル指定がなければHTTP proxyとして扱われる。 ポート番号については、指定がなければ1080として扱われる。 例ではproxyサーバとしてthis.is.sample.prox
Graphvizとは、AT&T研究所の作ったグラフ描画ソフトである。 ここでのグラフとは棒グラフのグラフではなく、ソーシャルグラフとかのグラフである。 点(ノード)と線(エッジ)で表されるもので、例えば、何らかの状態遷移や、路線図や、ネットワークなどの「関係」の表現に使われる。 もともとオイラーの一筆書きのような経路探索の分野があって、それを視覚的に表現するためのツールとしてこういったソフトがある(たぶん)。 そんな分野はとても手に負えない。 しかし、グラフ描画に注目するだけでも、とても面白いんである。 例えば、ふだん利用する路線の、各駅の関係と乗降数をグラフに書いてみるだけでも、表で見たときは比べ物にならないくらいのインパクトがある。 これは、京浜急行の駅の繋がりと乗降者数をグラフにしてみたもの。 隣り合う駅は繋ぐし、特急などで途中の駅をすっ飛ばす場合も繋ぐ。 乗降者数に応じて駅の大きさ
Pythonには、pythonスクリプトを手軽にWindowsアプリケーション化できるツールが揃っている。 有名なのはPy2exeとPyInstallerである。 違いをまとめたうえで、PyInstallerでのWindowsアプリ化をまとめる。 Py2exeとPyInstallerの違い サイト http://www.pyinstaller.org/ http://www.py2exe.org/ インストールの容易さ →PyInstallerが有利 対応Pythonバージョン →Py2exe: 2.4~3.1 →PyInstaller: 2.4~2.7 単独exeファイル作成の容易さ →PyInstallerがやや有利 「manifest」ファイル埋め込みの容易さ →Py2exeが有利 手軽さの点でPyInstallerを選んだ。 PyInstallerの制限(日本語パスはダメ) ※20
HDDを増設してZFSを作ったのでメモ。 一本のHDDにpool、zfsを作成し、圧縮、重複排除機能の有効化まで。 環境は(残念ながら10.0-Rではなく)FreeBSD 9.2-RELEASE-p1。 lz4でzfsの圧縮機能を気軽に試せるように ファイルシステムで圧縮機能を有効にすると、読み書きのいずれにもCPUパワーが必要で、要するに遅くなる。 非力なCPUを使っているとなかなか使いにくい機能なのだが、圧縮方法にlz4が選べるようになってハードルは下がったように思う。 lz4はここでも触れたが、めっぽう速い圧縮アルゴリズムである。 これはぜひとも使ってみなければ。 ディスクの確認とzfs機能の確認 物理ディスクを追加し、ブートしたらdmesgを確認する。
せっかく覚えたezjailが息してない jailの設定ファイルが、rc.conf,/etc/rc.d/jailからjail.confに変わる。 https://twitter.com/m_bird/status/386369822751076352 そのせいか10.0-BETA1にしたら、ezjail使うたび怒られるようになった。 具体的にはezjail-adminでjailをうまく起動できない。 ezjail覚えたばっかなのに…。 「手動でなんとかしろよ」とエラーメッセージが出るのだが、jailの仕組みはとても複雑で、jail.confの書式も良くわからないしsampleもない。 「rc.d, rc.confをそのままコピー&ペーストしたらいいんだよ」とは言うのだけど、そもそもrc.d, rc.confを自分で書くのが嫌でezjail使ってたのに。 しょうがないんで、あんまり深く追いかけ
pkgngの公式サイトがやっと復活した。 http://lists.freebsd.org/pipermail/freebsd-current/2013-October/046055.html したのだが、proxy越しだと動かない事があって、俺含む一部のユーザはとてもガッカリしている。 原因ははっきりしていて、DNS上、SRVレコードを使っているからだ。 SRVレコードにしたのはしかし理由があってのものなので、単にAレコードに追加すればよいという話でもない。 公式MLでもえらく議論が続いているが、SRVレコードを使うというのは変わりそうにないようだ(2013/11/3現在)。 (2013/12/19追記) pkg-1.2.3で問題が解消された。 (2013/12/19追記ここまで) というわけで、公式に沿ったpkgサイトの設定のしかたと、proxy越し等で公式pkgサイトのアドレス解決が
次のページ
このページを最初にブックマークしてみませんか?
『april.fool.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く