Screaming Loud

研究・プログラミングなど気づいたことをメモをしています。読書記録はこちらに記載しています。https://bookmeter.com/users/75944

プログラミング

CentOS6でheartbeatとpacemakerを導入した時にハマったポイント

ハマったポイント heartbeatがyumで入れられない epelレポジトリを追加しないと、heartbeatがyumに入らない。 最新CentOS6-64bitのepelのレポジトリは以下のページにある。 epel-release-6-8.noarch.rpmと書かれたリンクからダウンロード。 Index of /Linux/…

もうそろそろ規約変更になってしまうが・・・。

そういえば、昔書いてずっと使ってたDynamicDNS自動更新スクリプトがあったので、晒す。 #coding:utf-8 import subprocess import re import time from optparse import OptionParser CRT_IPF = '/usr/ddns/CRT_IP.dat' NEW_IPF = '/usr/ddns/NEW_IP.dat' LO…

SolrをレプリケーションしてBrokerを立てて、分散検索をやる方法

CentOSにSolrを入れた時、分散検索を行うためBrokerをどう立てればよいかわからなかったので、そのメモを残しておきます。 Solrはマイナーバージョンが変わるだけで結構仕様が変わるので厄介です。 構成 CentOS6.3 Solr4.4.0 やったこと まずは、Solrのレプ…

contextからactivityのクラス名を取得する

contextからactivityのクラス名を取得しようとしていたのですが、なかなかWeb上になくハマったのでメモしておきます。 PackageInfo pInfo; String className = ""; try { pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), con…

シェルで書いたtreeコマンドの編集

shellスクリプトの練習です。 treeコマンドで表示されるtreeだけを抽出。 treeの行数を同時に表示 一番に見出しを表示させる この3点を実装しました。引数に取ったディレクトリを見ます。 もし、引数に何も無ければ、コマンドラインからの入力を受付ます。 …

BloomFilterをjavaとpythonで書いてみた。

Javaほんとに面倒くさい。 慣れていないからなのか?BloomFilterを両方で書いてみた。 python # -*- coding:utf-8 -*- from bitarray import bitarray import hashlib import sys class BloomFilter(object): def __init__(self,bitLength): self.bitarr = b…

Suffix ArrayをPythonとJavaで比較

Javaの勉強を始めたので、JavaでSuffix Arrayの実装をやってみた。 一応今日中にやるという目標を立てていたので、達成できてよかった。Python # coding:utf-8 ''' 1,文字列を分解する関数 2,ソートする関数 3,配列に格納する関数 ''' def suffix_arra…

CodeKata 9:会計システムの帰還

CodeKataの和訳シリーズ。 今回はCodeKata: Kata Nine: Back to the CheckOutです。 スーパーの会計システムの話ですね。スーパーに戻ろう。今週は、「りんご1個50セント、3個だと1.3ドル」というような価格体系の会計システムを実装してみよう。Kata1を振り…

CodeKata 8:目的の衝突

CodeKata和訳シリーズ。 今回はCodeKata: Kata Eight: Conflicting Objectivesを訳します。なんでコードを書くのだろうか?その一つとして、特定の問題を解決するためだろう。それに付随して世界に価値を提供できるということもある。しかし、それは本質的な…

CodeKata 7:どうしたらいいんだろうか??

引き続きCode Kataの和訳を作ります。 リンクはCodeKata: Kata Seven: How'd I Do?です。前回のKataのいくつかはプログラミングの挑戦だった。この週は実用的なものに戻ろう。このKataではコード(自分のコードだ!)を批判的に読むことを練習する。いい練習…

CodeKata 6:アナグラム

今回はアナグラムのお話。 リンクはCodeKata: Kata Six: Anagrams。今週は実用的な実装をやめて、クロスワードを解いてみよう。イギリスでは、よく新聞のクロスワードをやって何時間も無駄にしていた。クロスワード好きはイギリスの暗号クロスワードをアメリ…

CodeKata 5:ブルームフィルタ

今回はCodeKata: Kata Five - Bloom Filtersを訳した。 ブルームフィルタについての練習。 集合の中の要素を見つけなければいけない状況になった場合、たくさんのアルゴリズムを実装しなければいけなくなったりする。 集合が小されば、ビット配列が使える。 …

CodeKata 4:データマンジング

今日はCodeKata: Kata Four: Data Mungingを訳します。タイトルの「マンジング」(munge)は、あるデータを見慣れないものに変換するということらしいです。 mungeの意味 - 英和辞典 Weblio辞書Martin FowlerはKata2という難しい問題を出してくれたが、Yet an…

CodeKata 3 : どれくらい大きい?どれくらい速い?

今日は3つ目となるCodeKata: Kata Three: How Big, How Fast?を訳した。大雑把な見積もりが出来るのは重要な才能だ。 せっせとコーディングしているとき、突然おおよそどれくらい大きいデータ構造を扱うのか、またループがどれくらいの速さで回るのか算出し…

CodeKata 2 : 空手チョップ

2つめのCodeKata: Kata Two -- Karate Chopを訳しました。 バイナリチョップ(もしくはもっとつまらないバイナリサーチって呼ばれている)は,ソートされた配列からある値が格納されている位置を見つけるものだ。 値を探す度に、考慮中の配列を2分割すること…

CodeKata1:スーパーマーケットの価格

情熱プログラマー(オーム社)に載っている「いますぐやろう」の項目で紹介されていたCodeKataをやってみようと思い、とりあえず和訳をしてみました。 まずは、一つ目CodeKata: Code Kata One - Supermarket Pricingを和訳してみました。このkata(型)はDFW…

CodeKataとは?

CodeKataという開発者のための練習サイトがある。 これは情熱プログラマー ソフトウェア開発者の幸せな生き方という本に薦められていたサイトだ。そこで、そのサイトの問題を1ヶ月程度で考えてみることにした。 ついでなので、和訳を載せることにした。まず…

frozenset型のイテレーション速度

以前,set型とlist型のイテレーション速度 - Screaming Loudを比較したが,frozenset型に関してはどうなのだろうか?と疑問を持ち.比較してみた.実験の仕方は同じだが,以下のようになった. set 12.19 list 11.01 frozenset 22.92frozensetのイテレーショ…

Pythonで実装する類似度計算

A = {"みかん":5,"りんご":8,"ぶどう":2} B = {"みかん":5,"なし":8,"ぶどう":2,"もも":1} 辞書の要素は{単語:その出現頻度}という構成です.この2つのベクトルの類似度を計算する尺度を紹介する. PMIなど共起についての尺度は使わず,単純なベクトルの比較…

set型とlist型のイテレーション速度

set型とlist型のイテレーションによるスピードの違いを調べてみた. setiter = set(range(100000000)) listiter = list(setiter) test = "" import time #set型のかかった時間 start = time.clock() for a in setiter: test = a print time.clock() - start …

pythonでoptionを関数へ

pythonでコードを書く時,メインモジュールを使っていると思う. 自分はいつもそのメインモジュールの中にoption系を全部書いていた. option系って勝手に言ってるけど,要はコマンドラインでoptionをつけるモジュール. →15.4. argparse — コマンドラインオ…

ビタビアルゴリズムをpythonで実装してみた

ビタビアルゴリズムを理解も兼ねて実装してみました. # -*- coding:utf-8 -*- states = ("rainy","sunny") observations = ("walk","shop","clean","shop","walk") start_prob = {"rainy":0.6,"sunny":0.4} transit_prob = {"rainy":{"rainy":0.7,"sunny":0…

研究・コーディングを加速させる

研究・コーディングをしていて何をすればいいのか分からなくなってしまう時がある.そういう時ってのは,大体頭の中が整理できていない.複雑な問題の場合,頭の中だけだと片方を考えているともう片方が薄れるのでどっちがどっちかわからなくなる.頭の良い…

extbodyにおける文字化けの対処

extbody -- Blog&News本文領域抽出ツール手軽な本文抽出ツールなのですが,Unicodeにしっかり直しているのに文字化けしてしまう問題について.ソースを少し直すと大体直ります.ダウンロードしたソースのディレクトリに入り emacs ./extbody/extbody/PageInf…

mecabへの辞書追加(left-id.def でのエラー)

今回はmecabへの辞書追加でハマったのでそのメモとして残します.ほとんどhttp://fukushimu.blog.shinobi.jp/Entry/76/を参照しました. /usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u wikipedia.dic -f utf8 -t utf8 w…

Tex/YaTex環境の作成 -Mac編-

Macportsをインストールする. MacportsはXcodeが必要なので,無い人はまずXcodeから.Macportsがインストールできたら とりあえずportをアップデートしておきましょう. sudo port selfupdate sudo port upgrade outdatedそこからは以下のページを参照し,…

リスト内の最大値を見つける

最大の値を見つけるのは簡単だが,そのindexを取るのはそういえばどうやるんだっけ? と思い,少し調べて速度比較してみた. from itertools import count from operator import itemgetter from time import clock import random def func1(x): return x.in…

K-means

今回は"k-means"(k-平均法)を実装してみました. k-meansに関してはネット上でたくさん説明されています. 簡単に説明すると, 前提:クラスタ数は与えられている 1,適当に各データ点をクラスに割り振る. 2,各クラスタの重心を求める 3,各データ点を…

Windowsのフォントは嫌だ!

自分はMacとWindowsを併用しているのですが,Windowsを使うたびにフォントの汚さに嫌気がさしていました, そんな中少し調べてみるとWindowsフォントを簡単にLinuxのように変えることが出来ました.特にputty上でフォントサイズを小さくしたときのフォントが…

KNPのインストールでつまずいたあなたに

KNP4.0のインストールにつまずいていた一人です. 原因はたくさんありました. CRFのlibtool関係でエラーが出る. これに関しては最新版のCRF++5.7を入れることにより解決します. TinyCDBが認識されない. aptでtinycdbをいれていると発生します. これは一…