備忘録 blog

Docker/Machine Learning/Linux

React-Nativeで便利なUIライブラリ

tl;dr React-NativeでiOSやAndroidのネイティブアプリを作る際、自分が使った中で便利だったUIに関するライブラリをいくつか紹介する。 探し方や導入方法など github.com ここにReact-nativeに関連する様々な情報がまとまっており、その中にライブラリも多数…

PRML 3.4-3.6 メモ

線形回帰モデルの流れ 3章では、に対して、 yと決定変数tの間に加えられるガウスノイズの精度パラメータとしてβ、モデルパラメータwの事前確率分布を期待値0の、分散の等方的ガウス分布としてαという2つのハイパーパラメータを導入している。ここで、ベイズ…

KerasでLSTMを使ってテスト駆動開発してみた

tl;dr Kerasという機械学習のフレームワークのサンプルにあるLSTMを使い、テストコードを生成して、それをもとにテスト駆動開発してみた。 Kerasを試してみる 以前、紹介記事を書いたのでそちらを参照していただけると幸いです。 sharply.hatenablog.com ま…

プロセスあたりのメモリ使用量を知りたい

tl;dr それぞれのプロセスがどのぐらいのメモリを使用しているかを知りたい。 コマンドで確認する システム全体のメモリ使用量を確認する cat /proc/meminfo linuxではデバイスもプロセスもファイルとして扱えるので、catできる。 MemTotal: 8073996 kB MemF…

KerasのサンプルでMLPを使って文の分類を試してみる

tl;dr Kerasに付属しているサンプルを使って、MLPで簡単な文書解析を試してみた。 Kerasを試してみる 前回、紹介記事を書いたのでそちらを参照していただけると幸いです。 sharply.hatenablog.com MLPで文を分類してみる 単純なパーセプトロンはニューラルネ…

Paxos, Raftなど分散合意プロトコルを概観する(2)

前回の記事 sharply.hatenablog.com 本稿ではRaft, Bitcoinの Proof of Work, Proof of Stakeそれぞれのアルゴリズムについて説明する。 分散合意プロトコル Raft 難解であったPaxosより簡単であることを標榜しているアルゴリズムで、そこまで多くないノード…

Paxos, Raftなど分散合意プロトコルを概観する(1)

tl;dr 分散合意プロトコルについてサーベイしたので、メモを残す。 2PC 3PC Paxos Raft(次回) Proof of Work(次回) Proof of Stake(次回) 分散システムについては素人の筆者が書いたため誤りが多いと思うので、できれば確認のため元論文を参照してもらいたい…

word2vecによる文章表現 / ディープラーニング所感

tl;dr Kerasを用いてDeepLearningをした上で得られた知見や、感じたことについて適当に列挙する。 Kerasについて sharply.hatenablog.com 以前に書いた。依然としてKerasはオススメである。 Optimizerについて ExampleではしばしばSGDを使っているが、上の図…

ownCloudのアプリを作る

php

tl;dr ownCloudはphp製のオープンソースオンラインストレージであり、社内Dropboxのようなものとして使えるが、プラグインのような形でAppを自作・追加することができます。このAppはHookやCronジョブのほか、ownCloud内にアプリ用のページを実装することも…

若者の生態を青春小説の系譜から探る

若者 は常に、良くも悪くも時代を象徴する存在であった。太陽族、竹の子族、ヒッピー、アッシー君……といった時代を象徴する文化や言葉には、背後に若者の大きな力があった。しかしながら、一億総中流と呼ばれた日本人が多様化をする中で、人口に対する若者の…

Wantedly SyncのGithub連携を試してみる

Wantedlyがリリースしている社内向けグループチャットツールSyncに、github連携できる機能がついたので早速試してみました。 github連携を有効にすると、プルリクなどを通知してくれるようになります。 方法 Syncにアクセスします。 Sync 左下の歯車のマーク…

ディープラーニングをKerasというフレームワーク上で行う

はじめに 機械学習、特にディープラーニングが近頃(といってもだいぶ前の話になりますが)盛んになっています。CaffeやChainerといったフレームワークもありますが、特にGoogleがTensorflowでtensorboardと呼ばれる簡単に使える可視化基盤を提供して有名に…

IBMのx10チュートリアルをやる

x10

tl;dr IBMのx10言語という、並列計算に向いた言語がある。言語仕様の詳細は省くが、scalaライクにオブジェクト指向で書ける言語の割に、MPIほど面倒なことを書かなくてもネイティブなC/C++のコードを吐いてくれるので速度が出るというありがたい言語である。…

Gentoo Linuxにxmonadを導入する

動機 Gentoo Linuxではコンパイルに時間がかかるので、大規模なデスクトップ環境を構築しようとするとすごい時間がかかる。 当方はGNOME派だが、恐らくGNOMEやKDEを入れるのは骨が折れるだろう。コテコテのデスクトップ環境を構築するのもそれはそれで一興だ…

Gentoo Linuxでうどんワールドする

tl;dr Gentoo LinuxでPortageを使う際、 # emerge --uDNva @world をしたときに大量に循環依存やエラーメッセージが出た場合の対処策。 まずはメッセージを読む $ man emerge emergeコマンドの説明(できれば英語版のようがよい)を読みながら、出力の意味を…

Gentoo Linuxでtestingブランチを使わないことにする

tl;dr AMD64環境のGentoo LinuxにXmonadを入れるときに、一部のdev-haskellパッケージのUSEフラグで~amd64を追加するように指示された。 /etc/package/make.confにACCEPT_KEYWORDS="~amd64"と指定してうどんワールド *1 してしまったせいで、次の日から大量…

Gentoo Linuxをインストールする

パーティション設定 * sda2 128M part /boot ext2 * sda3 論理パーティション * sda5 8G swap * sda6 96.8G part / btrfs メモリを2GBしか積んでいないので、コンパイル時にSwap領域を使うかと思って8GBぐらい確保しておいた。 btrfsが死なないことを祈る。 …

Dockerでサーバーを立てる(2)

それでは実際に、Docker-composeでRailsアプリを立てるところまでやってみたいと思う。 構成 今回のdocker-compose構成は以下である。 nginx(Arch linux) app(rails - puma) data(busybox) supervisordで1つのコンテナに全て立てるのはやはりdockerの原則に…

cross-originでiframeが埋め込めないとき

What I want to do あるサービスをwww上で展開しているのだが、元のドメインのURLをそのまま晒すのがちょっと嫌なのでそれを隠すためにurl-forwardingをしたい。 tkドメインを試す www.dot.tk *.tkとかいうドメインはタダで手に入る。(但し有効期限がある)…

Dockerでサーバーを立てる(1)

はじめに 様々なところで語られていますが、Dockerはコンテナ型のサーバー仮想化のエコシステムとして知られている。ここでは、DockerでRailsアプリを立てることを目標とする。 大まかな概略をつかむには以下のページが参考になった。 Dockerについての調査…

DockerでMattermostサーバーを立てる

自前のサーバーでSlack, Hipchat系のチャットサービスを使いたいと思った時に。Golang製。 Mattermost 立ててみる Local Machine Setup and Upgrade — Mattermost 2.0 documentation docker run --name mattermost-dev -d --publish 8065:80 mattermost/plat…

インターンシップを終えて

IT系のインターンシップに1週間ほど行っていたので、感想を簡単に記す。 概観 求められる水準は高く、仕事中は常に頭脳をフル回転させていなければならなかった。そのためインターンシップの期間中は全くといっていいほど、それ以外のことに手がつけられなか…

Python2を高速化するtips(続)

sharply.hatenablog.com これの続き。 単純に高速なアルゴリズムを使う 例えば"ham"という文字列がある配列に含まれるか?という問いに対して、 some_list = ["spam", "ham", "eggs"] if "ham" in some_list というリスト検索ではO(log(n))ですが、Rubyにお…

Golangで開発、特にAPIサーバーを立てるときに

開発環境 IDEは特にないので、Atomを使うかVim。Atomならgo-plusが強い。Vimでは以下。 qiita.com qiita.com チュートリアル github.com フレームワーク qiita.com qiita.com

APIサーバーが必要となった時のために

自前で実装する サーバー側にけっこう大きなロジックが必要となる場合。この場合は、単なるRESTなリソースを提供するだけでなく、返り値のロジックが必要となるので、結局自分で全部書いたほうがラクになるということになる。HerokuやOpenShiftといったPaaS…

Python2のコードを高速化するための覚書

実行時間の測定方法 CPythonでpythonの素のコードを実行するとヤバイぐらいに時間がかかる。実際にどのぐらいかかるのかを調べる。 import time def main(): start = time.time() hoge() elapsed_time = time.time() - start まあこれでもよいのだが、 pytho…

Bootstrapの導入時に発生するエラーと解決法

ActionController::RoutingError (No route matches [GET] "/fonts/glyphicons-halflings-regular.woff") Ruby on Rails4の開発で/vender/assets/stylesheets/によそからもってきたbootstrap.cssを入れているとき、上記のエラーが発生することがある。 その…

POH6をPythonで解く

動機 最近、学科内でPythonがブームとなっているようなので便乗して勉強してみた。 ただ勉強するだけでは面白くないので、オンラインハッカソンに挑戦して実際に書きながら学んでみたいと思う。 paiza.jp コード paiza.jp input_lines = int(raw_input()) wa…

Firefoxを布教する

Firefox ・ Javascript Firefoxでは、Shift + F4を押すことで、スクラッチパッドと呼ばれる画面を開くことができます。そこでjavascriptのコードを手軽に実行することができます。 javascriptとは、主にブラウザ上で実行されるプログラミング言語で、動的な…

Slackを布教する

Slackとは IT系は一般にチームワークで仕事をしますが、その際に必要なのはコミュニケーションツールです。もちろん直接のオーラルコミュニケーションも大切ですが、非同期型の方法で文字に残る形でのやりとりもしたいはずです。 そんなとき、lineやFacebook…