計算機

マンデルブロ集合を計算してみる2

前回:マンデルブロ集合を計算してみる - 超ウィザード級ハッカーのたのしみ 通常のマンデルブロ集合は、 でm=2として、n→∞のときにz_nが発散しない複素数cの集合です。 mを変えてみたらどうなるのでしょうか?試してみました。 m=2の場合: m=3の場合: m=4…

マンデルブロ集合を計算してみる

マンデルブロ集合を計算してみた。 マンデルブロ集合とは で表される漸化式でn→∞としたときにz_nが発散しない複素数cの集合である。 コード マンデルブロ集合を計算してPPM形式の画像を出力します。 結果 画像は複素平面を表しており、横が実数軸、縦が虚数…

データベースとオブジェクト指向と

データベースとかほとんど使わないのですが、興味があったので勉強も兼ねて、データベーススペシャリスト試験をこの前受けました。(受かっているかは知りませんが) 勉強してみて、オブジェクト指向とデータベースの関係について気づいたこと・疑問におもっ…

ターミナル上でセル・オートマトン

ウルフラムの一次元セル・オートマトンをターミナル上で計算するスクリプトを手慰みに作った。定期的にセル・オートマトンとかで遊びたくなる。 ターミナルなので幅が少ないから、あまり見た目的に面白くはない。作業に飽きた時に和むためのスクリーンセーバ…

ニューラルネットワークでデータセンターの効率化

http://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/42542.pdf GoogleのエンジニアがDCの空調とかの設定を決定しているのに、ニューラルネットワークを使った計算をしているという記事を見つけた。 Googleのデータセンターっ…

dstatが素晴らしい

dstatというコマンドがあるのですが、これが非常に便利でした。 iostat, vmstat, netstat等のコマンドがこれ1個で済みます。 入っていなければ、yumで取れます。 $ dstat -a ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr …

HTMLにTeX数式を書く。

MathJaxというライブラリを使えば簡単にできます。 <head> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']], displayMath: [['$$','$$'], ['\\[','\\]']], processEscapes: true } }); </script> </head>

コード組版システムがほしい

「ソースは人が読むものだ」というプログラミングパラダイムがあります。 ソースコードを他の人が評価できるように書くことは、プログラムの保守性・拡張性を向上させます。 また、ソースコードが生産物なのだから、作品として美しくするべきです。 しかし、…

水面波の数値解析における安定性について

どこかのだれか(たぶん世界に2〜3人ぐらい)にはきっと理解されて役に立つであろうこと。闇に葬られるのも耐え難いので、英語にして公開する。 Stability of numerical analysis about free surface flow

1m2s100msみたいな表示をミリ秒単位に

メモ 所要時間を3m10s48msみたいに表示するプログラムがいて(やめてほしい)、この値をミリ秒に変換したい。 こんな感じかな〜? (2015-03-09) ダメだったので直しました。正規表現は苦手だ #!/usr/bin/python """ Convert a time string like 1h2m3s4ms5us…

確率的にバグの有無は評価できる?

アラン・チューリングの停止性問題にあるように、バグの有無を論理的に調べることはできない。 しかし、チャティンのΩ数のようなイメージで、バグの有無を確率的に評価することはできるのではないか? もちろん、Ω数が絶対に知り得ない値であるように、バグ…

シェルスクリプトでコマンドを安全に実行したい

シェルスクリプト内で例外を処理したい。 Pythonのsubprocess.check_callメソッドみたいに、コマンド打ってエラーだったらとりあえず止まって欲しい。 とりあえず止めるだけなら以下のように関数check_callを定義しておいて、コマンドを打つ変わりにcheck_ca…

Redmineの構築

環境 Ubuntu 14.04LTS 手順 パッケージの取得 # Download Redmine package wget http://www.redmine.org/releases/redmine-2.6.1.tar.gz tar xvzf redmine-2.6.1.tar.gz sudo mv redmine-2.6.1 /opt/ # Install Ruby & Rails sudo apt-get install ruby ruby…

メタメタプログラミングとメタメタテスト

コンピュータの動作を規定するものが、コードを書くことつまりプログラミングである。 設計はプログラミングのありようを規定するものだから、メタプログラミングである。 設計のありようを規定するものが、フォーターフォール型とかアジャイル型とかの開発…

リモートのLinuxのGUIを使う

作業メモ。 サーバー側の設定 /etc/ssh/sshd_configを編集 X11Forwarding yes とする。sshdを再起動する。 Ubuntuの場合、 sudo dpkg-reconfigure x11-common でAnybodyを選択。*1 クライアント側の設定 Xming X Server for Windows download | SourceForge.…

Torchのインストール

Facebookが作っているニューラルネットワークのツールがオープンソース化されたそうで。 Torch | Scientific computing for LuaJIT. Torch | Scientific computing for LuaJIT. 環境はUbuntu14.04 ホームページに公開されている方法の通りでインストールでき…

開発ステップ数を測る

開発ステップ数を測るなんて無意味なことだと思うけど、そういうことこそ効率化! C, C++, Javaの場合について。 以下のシェルスクリプトを実行すれば修正の実効ステップ数が出るはず。 before=$1 # path to source file before modified after=$2 # The pat…

ニューラルネットワークで囲碁の終局を判定2

前回 ニューラルネットワークで囲碁の終局を判定 - 超ウィザード級ハッカーのたのしみ 何パターンか試してみた。 入力値は、終局図から黒石を取り除いたものと白石を取り除いたものを並べたものである。石がある点を1.0、石がない点を0.0としている。黒石が1…

FANNのテスト

PyBrainはあまり速くないので,名前からして速そうなFANN(Fast Artificial Neural Network Library)を試してみる. インストール方法のメモ Fast Artificial Neural Network Library (FANN) 環境はUbuntu 14.04 apt-getでも取れるがバージョンが2.1.0なので…

PyBrainのテスト 2

PyBrainでbuildNetwork関数を使わずにネットワークをつくる方法. バイアスパラメータを入れるには,BiasUnitを作って各レイヤーにつなげる必要がある. 例によってXORを学習させる. from pybrain.datasets import SupervisedDataSet from pybrain.supervis…

ニューラルネットワークで囲碁の終局を判定

ニューラルネットワークで囲碁の終局を判定する.終局したかどうかではなくて,終局状態でどこが自分の地かどうかを判定する. これだけなら,わざわざニューラルネットワークを使わずに,手続き的にプログラミングしたほうがいい.しかし,これが出来ないと…

PyBrainのテスト

ちょっとニューラルネットワークで試したいことがあるので,最初の段階として,PyBrainを用いてニューラルネットワークというものを使用してみる. 階層型ニューラルネットワークの例題としてXOR演算を学習させる. 以下,コード from pybrain.datasets impo…

数学定数でブラウン運動 2 - 1億桁で計算

前回 数学定数でブラウン運動 - 超ウィザード級ハッカーのたのしみ 1億ステップでやってみた. Mathematical Constants - Millions of Digits から数学定数のデータはもらった. メルセンヌツイスター 2の平方根 3の平方根 自然対数の底 円周率 に加えて,…

数学定数でブラウン運動

擬似乱数を可視化するためにブラウン運動を計算している. 今回は,数学定数の各桁を外力としてみる. 数学定数のn桁目をdとしたときに,時間n-1からnまでに粒子に与える外力を (F_x, F_y) = (cos(2 * pi * d / 10), sin(2 * pi * d / 10) とする. 試した数…

ブラウン運動をシミュレーションしてみる

題名の通り.擬似乱数を可視化するために,ランジュバン方程式に基づくブラウン運動を計算してみた.*1 結果の絵. コードは以下. import math import random class Particle(object): ''' A particle moving in 2D space. ''' position_x = 0.0 position_y…

バグは測定できないから管理もできない

測定できないものは管理できない あるいは, You can't manage what you can't measure. あるいは If you can't measure something, you can't manage it. 調べたけど出典がよく分からなかった.おそらくドラッカーかデミングの引用だと思われる.『まどマギ…

Javaの3種類のクラス

Java等のクラスには以下の3種類がある: 文法に組み込まれたクラス 型としてのクラス サーバーとしてのクラス Javaはこれらが区別されていないのが,不満だ. 文法に組み込まれたクラス IntegerクラスとかThreadクラスとかSystemクラスとか,java.langパッ…

コードが正しいことは証明できない

不完全性定理や停止性問題に通じる話だと思う.(不完全性と決定不可能性の関係はいまいちよく分かっていない) その証明が正しいことを証明しろと言われてもできるわけない.説明はできるが,証明はできない.内容見て正しいか判断するしかない.見る人が正…

The Art of Readable Code

The Art of Readable Code (Theory in Practice)作者: Dustin Boswell,Trevor Foucher出版社/メーカー: O'Reilly Media発売日: 2011/11/03メディア: Kindle版購入: 1人 クリック: 3回この商品を含むブログを見る ソースコードは機械が読むものにあらず,人が…

『モダンC言語プログラミング』

モダンC言語プログラミング 統合開発環境、デザインパターン、エクストリーム・プログラミング、テスト駆動開発、リファクタリング、継続的インテグレーションの活用作者: 花井志生出版社/メーカー: アスキー・メディアワークス発売日: 2013/10/01メディア: …