done is better than perfect

自分が学んだことや、作成したプログラムの記事を書きます。

Pythonの文字列連結に"+"演算子は必要ない

Pythonの入門サイトとかだと,文字列連結に+演算子を使うことがよく例示されているようです. s = "this " + "is " + "test" print(s) ==> "this is test" ですが,Pythonにおいて文字列連結には+演算子は必要ないです. s = "this " "is " "test" print(s) …

git diffで日本語の文字化けを治す

このページのまんまです. ファイルはutf-8なのになぜか文字化ける(というか,みたいな表記になってしまう)ので,↑のように設定しました. 環境はMac OSΧ 10.10.1,git versionは2.2.1です. $ git config --global core.pager "nkf -w | LESSCHARSET=utf-8 …

情報セキュリティスペシャリストに受かった

情報セキュリティスペシャリストに受かった 表題の通りです.大学院生の間に高度試験に一つは受かっておきたかったので目標が叶いました. 行った対策などを残しておきたいと思います. 情報セキュリティスペシャリストとは? 独立行政法人であるIPAが行って…

Pythonを始めた時から知っていたかったベターな書き方

かなり基本的な内容です.それと記事に一貫性があるわけではないです. 1. with statement 定番のwithです.ほとんどの場合で使えると思うので,積極的に使いましょう. Goでは同じようなことをdeferを使ったりしますね. # not good... f = open("./test.tx…

指定ディレクトリ(デフォルト: カレントディレクトリ)の指定サイズ以下(デフォルト: 4096 bytes)のファイルを削除するスクリプト

を作りました。 大量にファイルをダウンロードした時にゴミがいっぱいある時、一時ファイルを削除したいときなどにお役立てください。 Python3依存です。 gist

Numpyで1-of-K表現を簡単に作る方法

愚直にやるとめんどくさそうでしたが、結構簡単に出来たのでメモ。 一応、1-of-K表現とは、ある要素だけが1で、それ以外が0なベクトルです。 [0, 0, 1, 0, 0] みたいな奴。 ここでは、あるidxの要素が1、それ以外が0であることがわかっていると仮定する。 im…

Go言語でのSet(集合)型について

Pythonとかではset型が標準でありますが、Go言語には標準ではなさそうなので調べてみたら便利なライブラリが見つかったので簡単に紹介。 deckarep/golang-set 使い方は以下のような感じです。 package main import ( "fmt" "github.com/deckarep/golang-set"…

Go言語のencoding/gobは1GBまでのファイルしか読み込めない

結構悩んだのでメモ。あるmapやsliceなど、何かしらのデータの入った変数をファイルとして書き出して、後で利用したいことがたまにあります。 Pythonならpickleなどを使いますが、Go言語ではencoding/gobという標準ライブラリを使うと似たようなことができる…

Yosemiteに入れたアプリ

前回の続きです。取り敢えず最低限な感じで自分に必要なソフトを入れました。 GUIなアプリケーションのみで、CLIは含んでいません。 Google Chrome なんだかんだいって外せません。そういえば最近ChromeのアプリでMarxicoというアプリを入れました。雰囲気は…

Yosemiteを入れてからやったこと(クリーンインストール)

Mac miniが2年ぶりにやっとアップデートされたので買ってきました。某掲示板では結構酷評ですが、自分は今の所満足しています。Yosemiteでの環境構築を一から書いてみます。 homeの暗号化 Mac標準のFileVaultを使用します。システムの環境設定→セキュリティ…

GNU/LinuxやWindowsに入れたいフリーソフト

特にGNU/Linuxとかだと割りと頻繁にOSセットアップすることがあるので、個人的によく使うソフトを書き出してみます。 GNU/Linux (Ubuntu) Google Chrome ド定番ですね。OSを選ばず使えるのが本当に便利でよく使っています。Firefoxでもいいのですが、やっぱ…

脱Googleについて考えてみる

TL;DR やっぱ無理 気がついてみると、世の中Googleに完全に支配されている。検索エンジンのみならず、ブラウザ、IME、Android、Chromebook、将来的には車の自動運転やら原義通りのアンドロイドやら出てきそうな勢い。 別にGoogle嫌いではないし、むしろ好き…

Matplotlibで株価の推移を時系列で表示する

株や統計の勉強を兼ねて、まずはPython3+matplotlibで株価の推移を見てみることにしました。 シンプルにX軸に日付、Y軸に株価(終値)をプロットしてみます。 1. データ 今回使用するデータはk-db.com様からダウンロードしました。 一部抜粋すると、以下の様な…

プログラミング言語別ソースコードのエンコーディング規約

2014年になっても文字コードには悩まされることはしばしば。 最近だと取り敢えずUTF-8ということが多いですが、 プログラミング言語だとどうなっているのかちょっと気になったので調べて纏めてみました。 プログラミング言語の選定には特に意味はありません…

Go言語でコマンドラインAA表示

Go言語で予め用意しておいたAAをランダムに表示するプログラム書いてみました。 はっきり言って実用性は皆無です。text/templateを使ってみたかっただけです。 プログラムとテンプレート // aacreator.go package main import ( "fmt" "io/ioutil" "log" "os…

Go言語でNgram (with channel)

Go言語で簡単なN-Gramのカウント部分(tokenに分割し、カウントするだけ)を実装してみたいと思います。 ただ実装するだけではつまらないので、channelを使って少しでも早くしてみます。 以下で出てくるGo言語のソースコードで、最初の行に書かれているのはフ…

7つのPythonにおける正規表現例 (Re Match Search FindAll)

7 Python Regular Expressions Examples – Re Match Search FindAlの一部翻訳+αです。 正規表現は特に混乱することが多いのでメモ。一部端折るので必ず元記事の方も参照して下さい。 また、必要に応じてPythonの公式ドキュメントも参照しています。 Pythonの…

Go言語のArrayとSliceについて

Go言語のArrayとSliceについて 調べるたびに忘れるのでメモしておきます。 基本的にGo Slices: usage and internals に基いています。 というかほとんど直訳です。 Introduction Sliceは他の言語のArrayに似ているが、違う部分がある。 Arrays Slice型はGo言…

bzip2とgzipのParallel版、pbzip2とpigz

bzip2とgzipのParallel版、pbzip2とpigz 巨大なテキストファイルを圧縮する必要に迫られたのですが、標準のbzip2やgzipは並列処理に対応しておらず、今どきのマシンだともったいないです。 そこで調べてみると、それぞれのParallel版が見つかりました。pbzip…

Pythonでのanyの速度

Pythonにはanyやallといった便利な関数があります。 こちらのサイトに、 しかし特にany関数では、ジェネレータ式を使用した方がパフォーマンスが良いと思う。 と書いてあったので、せっかくなのでipythonに慣れることも兼ねて簡単に計測してみました。 結果…

PythonでSkip-gramを実装した

Skip-gramについて、詳しくはこちら 英語版のWikipediaはこんなニッチな技術も乗っていたりするんですね。びっくりしました。 コードはこちら そうとう不効率な実装になってしまったが、いい実装が思いつかない…

Change apt source (Ubuntu 14.04)

If sudo apt-get update command failed like this: W: Failed to fetch http://jp.archive.ubuntu.com/ubuntu/dists/trusty/InRelease-- W: Failed to fetch http://jp.archive.ubuntu.com/ubuntu/dists/trusty-updates/InRelease-- W: Failed to fetch htt…

SSHでGNU/Linuxにログインした時のメッセージを変えてみた

SSHでDebian GNU/LinuxなどのUNIX系OSにログインした際,以下の様なメッセージが表示されることがあります. Linux v157-7-141-207 3.13-1-amd64 #1 SMP Debian 3.13.10-1 (2014-04-15) x86_64 The programs included with the Debian GNU/Linux system are …

文章間の距離を様々な尺度で計算できるパッケージを書いた[Golang]

Go言語でLevenshtein距離など様々な尺度で文章間の距離を測ることができるパッケージを書きました。 https://github.com/masatana/go-textdistance (現在のところ)対応している尺度は以下の通りです。 Levenshtein distance Damerau-Levenshtein distance Ja…

青空文庫のクローラをGo言語で作った

青空文庫のクローラをGo言語で書いてみました。 GitHub - masatana/aozorago 実際の実装はGitHubのリポジトリを見てもらえればわかると思います。 基本的にはトップページ→インデックスページ→図書カードページ→zipの流れで取ってきています。 Goroutinesを…

Install OpenCV via Homebrew

TL;DR Use Homebrew You can use Xcode! 1. Uninstall Macports Unfortunately, Macports and Homebrew will not coexist well together. Before installing Homebrew, you should uninstall Macports. (If you can’t uninstall it for some reason, please …

CourseraのMachine Learning EX6でハマったこと

今CourseraのMachine Learningのオンライン授業を受けています。 第6週まで来たのですが、Octaveの3.6.4バージョン以上を使っている人は注意が必要です。 visualizeBoundary.mの21行目を以下のように編集しましょう。 contour(X1, X2, vals, [0 0], 'LineCo…

Install tmux, python, numpy, scikit-learn, scipy from source (CentOS 5.5)

表題のとおりです。とある事情があって既存の環境を壊すことができなかったので、HOMEディレクトリに環境を整えてみました。 インストール時に躓いたものだけメモ代わりに残しておきます。 インストールする先は/home/{user}/binです。これだとインストール…

Web業界のエンジニアブログをまとめてみた

Web業界で有名(=僕がよく読む)なエンジニアブログをまとめてみました。順不同です。 Facebook Google Yahoo! Twitter Mixi GREE DeNA CyberAgent Hatena pixiv Evernote Microsoft Cybozu Wantedly=>Wantedly GitHub

OS Χ (Mavericks)でbrew install haskell-platformが失敗する

Mountain LionからアップグレードしたMavericksで、brew install haskell-platformが失敗しました。 $ brew install haskell-platform ==> Downloading http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-p Already downloaded: /Library/Cac…