読者です 読者をやめる 読者になる 読者になる

cloverrose's blog

Python, Machine learning, Emacs, CI/CD, Webアプリなど

Spark版xgboostでRank学習できるようにPR投げた

機械学習で有名なxgboostというライブラリに先日PRがマージされた!嬉しい! [jvm-packages] call setGroup for ranking task by cloverrose · Pull Request #2066 · dmlc/xgboost · GitHub PRを送った経緯 会社の業務で検索のランキングモデルを作っていて…

ゆゆ式 Advent Calendar 2016 17日目 AR縁ちゃんを作りました

ゆゆ式アドベントカレンダー2016の17日目です。 www.adventar.org 今年自分はARで縁ちゃんを発見するアプリ、「AR縁ちゃん」を作りました。 AR縁ちゃんとはカメラの画像をリアルタイムで解析して、縁ちゃんの目っぽいもの(コンセント)があったら、そこに縁…

Android OpenCV face-detection 動かすメモ

ブログを色々参考にしながら進めたが結構苦戦したのでまとめておく。 環境 macOS Sierra 10.12.1 Android Studio 2.2.2 ASUS Zenfone2 laser; Android version 5.0.2; API Level 21 (Lollipop) OpenCV for Android version 3.1 手順 0. Android StudioにOpen…

Ubuntu ServerでX serverを動かす手順メモ

AWSのEC2のUbuntu Server (Ubuntu Server 14.04 LTS (HVM), SSD Volume Type - ami-a21529cc) でX serverを動かす手順メモ sudo apt-get update && sudo apt-get upgrade && sudo reboot sudo apt-get install xorg sudo apt-get install python-qt4 sudo xi…

PyQt4でJavaScriptでレンダリングしてるWebページをScraping! CookieとUserAgentも扱うよ

JavaScriptでレンダリングしてるWebページをScrapingしたい!!! 自分の環境 Virtualbox (Host OS Windows 7 64bit) Guest OS Ubuntu16.04.1 LTS Desktop 64bit Python 2.7.12 PyQt4は sudo apt-get install python-qt4 でインストール 実現方法 調べたら素晴…

Raspberry Pi3 起動に苦戦

昨日Raspberry Pi3 ModelBが届いた www.amazon.co.jp NOBESのダウンロードを30分位待って、よっしゃ遊ぶぞって思って、電源を挿したらPWRの赤色LEDは点滅するけど、モニターには何も映らない。 ぐぐったら、Raspberry Pi3からは電源として5V, 2.5Aのものを使…

pywebhdfsにHAとFederationをサポートするPRがマージされた

WebHDFSについて WebHDFSはhdfsコマンドではなくREST APIにhttpでアクセスできる便利なもの。 Hoop(httpfs)とwebhdfsの違い - たごもりすメモとかが図もあってわかりやすいと思う。 背景1 (hdfsコマンドへの不満) MapReduceなどを使って解析を行って、その結…

ピープルウェア 第3版 感想

感想が、読書メーターに収まらなかったのでブログに書きます。 人月の神話の中でおすすめされていたので読みました。 Amazon.co.jp: ピープルウエア 第3版: トム・デマルコ, ティモシー・リスター, 松原友夫, 山浦恒央: 本 新しい知見が得られたり、面白か…

Pythonのjsonモジュールの便利機能

PythonでJSONを読み書きする機会が割りとあったんですが、改めて調べたり、公式ドキュメントをちゃんと読んだら便利な機能を知ったのでメモしておきます。 jsonファイルの辞書を順番通りにloadしたい 設定ファイルとしてJSONを使っている時、普通にloadする…

EmacsでGithub flavorなMarkdownをプレビューできるようにする

markdown-modeを設定すると、C-c C-c pでMarkdownで書かれたファイルをHTMLに変換して、ブラウザで表示してくれるのでとっても便利です。 しかし、オリジナルのMarkdown.plを使うと表を変換できない、CSSを設定しないとすごくそっけないHTMLが表示されるとい…

Squid調査

Squidというプロキシサーバーを使ってみました。 アクセスログの設定で調べたことをまとめて置きます。 インストール方法 MacにHomebrewでインストールしました $ brew install squid squidのバージョンは $ squid -v Squid Cache: Version 3.3.11 設定ファ…

iOSアプリでやさしさゴシックを使う

アプリを作っていると、iOSで標準で使えるフォントだけではどうもしっくりこない場面が出てきます。ググってみるとiOS3.2以降、カスタムフォントがサポートされたようで、アプリのリソースにttfファイルやotfファイルを追加して、 Supporting Files>MyAppNam…

ビリヤードシミュレーションぽいものを作る

その1 誰もがやりたいパーティクルの衝突 その9 移動する2つの球の衝突場所と時刻を得る 楽しい!クリエイト作品!: ビリヤード球の衝突の計算 JavaScript ゲームのための単純な 2D 物理エンジンを作成する 反発係数について 5.2.3.2 2物体の反発係数 ■わ…

AndroidでOpenGL ES 2.0調査

現在、Androidで何かアプリを作ろうと思い、OpenGL周りを調査しています。OpenGLで調べるとC++だったり、OpenGL 1.0, 1.1だったり、 OpenGL 2.0の 意外とWeb上に完全な情報がまとまっておらず線を引くだけでも、苦労しました。 (最初に)OpenGL 1.0について O…

MarvericksのEmacsでdefault-directoryがルートになってしまうバグへの対応

Marvericksがリリースされてからかなり経ちましたが、Marvericks版のEmacsに以下の不具合があります。 不具合 Dockから起動したEmacsのdefault-directory(Find-file等でファイルを開こうとした時に、最初にミニバッファに表示されるディレクトリ)がルート・…

dot2texiを使う

dot2texiとはdot2texをより便利にしたもの。 dot2tex=Graphviz+TeX=ノードとか辺のラベルにp_1とかTeXのように記述することができる。 dot2texi=dot2texをTeX処理系が自動で呼び出しすことで、ユーザーはtexソースに直接Graphvizのグラフを書くことができる…

GNU Emacs For Mac OS X向けの設定ファイルメモ

GNU Emacs For Mac OS XをGUIモードでターミナルから起動すると、一番上の画面として表示されないという困った問題があります。この問題を解決するために調べるとナイスな解決方法が見つかりました。 How to launch GUI Emacs from command line in OSX? - S…

GitHub Flavored Markdownを変換できるgripが便利だった

Python Markdownで検索すると、Python Markdownがヒットするけど、これはGithubが拡張したMarkdown GitHub Flavored Markdown · GitHub Help(シングルクォートでソースコード埋め込みとか)が変換できない。検索してると、Is there a command line utility …

ServerNameを設定する

sudo /etc/init.d/apache2 restartをするたびに警告が出ていたのでちゃんと設定した。 環境はUbuntu12.04です。/etc/hostsを書き換える(2行目) 127.0.0.1 localhost 127.0.1.1 cloverrose.mydns.jp precise32 # 以下略hostname --fqdnでcloverrose.mydns.j…

GNU Emacs For Mac OS X向けの設定ファイルメモ(古い情報です)

GUIのEmacsとしてMacではGNU Emacs For Mac OS Xを使っています。新しくMac book Airでの設定をメモしておきます。 パスを通す(というか起動スクリプトを書く) GNU Emacs For Mac OS Xをインストールしただけだとパスが通っていないので、ターミナルから起…

Tweepyがもうじきversion2.2に!

PythonのTwitter APIライブラリTweepy(tweepy/tweepy · GitHub)のversion2.2のリリースノートが書かれ始めていました。Add release notes for 2.2 (WIP) release. · fd7cc6e · tweepy/tweepy · GitHub ヘッダー(banner)の更新ができるようになりました 大…

Vagrantで作ったサーバの/etc/network/interfacesはいじるとダメ?

注意:この記事は完全に僕のメモ用途としての意味合いが強いです。

Vagrantでpublic_networkのIPアドレスを指定する方法

Vagrantのpublic_networkで嵌ってる時(Vagrantのpublic_networkで嵌まる → forwarded_portを使って解決! - cloverrose's blog)に、public_networkでもIPアドレスを指定することができることがわかったのでまとめておきます。 まず公式ドキュメント(Public N…

Vagrantのpublic_networkで嵌まる → forwarded_portを使って解決!

Vagrantで作ったVMにApacheをインストールして外部に公開しようとして嵌ったのでメモしておきます。普段Vagrantを使わずにWebアプリを公開するときはVirtual Boxの設定でネットワークをブリッジアダプターにして、ルータのポートマッピング設定で直接VMのロ…

Ansible環境が整ったNodeをAnsibleで構築する遊び

今までnode1, node2を作って、node1にAnsibleをインストールしてnode2に疎通確認やplaybookを使った環境構築をやっていたが、node1にsshの秘密鍵を設置したり、Ansibleをインストールしたり、inventory fileを作成したりする部分は手動でやっていました。こ…

Vagrant+ansible手順メモ

Ansible Tutorialを見ながらごにょごにょしてたけど、-kオプションつけるんだっけ?-Kだっけ?とか混乱してきたので自分用にMac OSXできちんと動いたものを記録しておく。Vagrantfileにファイル類は入れたのでエディタを起動する必要がなくて楽ちん! VMを作…

Ansible Tutorial のscp部分がいまいちわからなかったのでいろいろの方法でやってみた

自分がscp(ssh)に詳しくなかったため、Ansible Tutorialの次の部分がどういうものかわからなかった。 $ vagrant ssh-config node1 > ssh_config $ vagrant ssh-config node2 >> ssh_config $ scp -F ssh_config ~/.vagrant.d/insecure_private_key node1:.ss…

Ansible ver1.3の新機能 changed_when を使って、ファイルに追記するPlaybookを書いてみた

Ansibleで今まで書いてきたOSセットアップスクリプトを置き換えていると、.bashrcとかに追記したいときの方法が見つかりませんでした。(copyはAnsible実行側にあるファイルをリモートに置き換えるものなので違う)(書いた後に、本当はAnsible実行側に完成した…

クリーンな環境にAnsibleインストールしてローカルでpipとapt-getを試す

前回はsudoなしで済むplaybookにしていたが、aptなどsudoが必要なplaybookを試してみた。--ask-sudo-passを知らなくて--ask-passでsudoしようとしていたため躓いた。また、ローカルでやる場合も、リモートでやる場合もAnsibleをインストールする必要があるの…

Ansibleをローカルで使ってみた

Ansibleを選ぶまでに調べたこととAnsibleをローカルで動かす方法でつまづいたのでメモしておきます。 構成管理ツール選び サーバー環境をきちんと管理したくなったのでいろいろ調べてみました。Rubyではchefが有名です。Pythonで調べるとAnsibleかSaltがヒッ…

PyGraphvizがあっさりインストールできた

少し前手こずった記憶のあるpygraphvizのインストールがあっさりできたのでメモ。(Ubuntu12.04、pythonz+virtualenv環境) sudo apt-get install graphviz pip install pygraphviz

flickrapiを使って画像をUploadしてみた

PythonのFlickrライブラリであるflickrapi(Python Flickr API kit - Stüvel photography)を使って画像のアップロードと、アップロードした画像のオリジナルURLの取得ができるようになったのでメモ。 インストール pip install flickrapi アプリの作成 http:/…

FLANNでk-means++をやってみた

研究でクラスタリング的なことを使いたくなったので、調べたらk-meansの初期値選択を改善したk-means++が開発されていることを知った。Python kmeans++で検索したらAtsushi TATSUMA Web Page » Python と FLANN でお手軽に近似最近傍探索が引っかかってFLANN…

Pillow(PIL)で文字列を画像として保存(位置・サイズ自動調整)

背景 ゆゆ式ゆゆ式、すきすき(ゆゆ式が大好きという意)で何か作ろうと思ってゆゆ式アイコンを作りました。 ゆゆ式アイコンが50個に到達した記念として、アイコンが「せーのっ!」「「ゆゆ式!」」ってしゃべるようなエフェクトを付けました。 せーのっ! ゆゆ…

Pythonのicalendarモジュールを使ってみた

icalendar 3.4 : Python Package Indexicalendarモジュールを使う - 偏った言語信者の垂れ流しのサイトを見ながらやったらicalendarのバージョンアップで動作が変わっていたのでメモ。 Unify API to only use to_ical and from_ical and remove string casti…

VirtualBoxのブリッジアダプタでを試してみた

HerokuとかGAEとか使っていたけど、どうもデータベースまわりで無課金ユーザーでいれなくなりそうなので、VirtualBox上のUbuntuに移行することにした。VirtualBoxやVMwareFusion等の、仮想化ソフトのネットワーク設定について | Macとかの雑記帳を読むとブリ…

Pythonのdocstringを普通の文字列と違うfaceで扱う

Over Emacs24.2 gallina python.el is the official python.el (EmacsWiki: Programming With Python Dot El).But this elisp shows docstring like as same as normal string. If you want to show it different look, try this patch Fontify docstring wi…

Emacsのfringe(フレームの左右の余白部分)の設定

Emacs color-themeを作っていたらfringeの色を設定する部分があって、fringeってなんだろうってなったので、調べてみました。Emacs:fringe - daharuの日記に書いてあるように、Meadow/Emacs memo: 表示のカスタマイズ ― 背景色,メニューのwww.bookshelf.jp/…

UbuntuでEclipseのTooltipsが見づらいので設定する

Install and open gnome-color-chooser .Go to Specific → Tooltips and put black foreground over pale yellow background. http://askubuntu.com/questions/70599/how-to-change-tooltip-background-color-in-unity GTK+/GNOME desktop appearance custom…

AcaciaをUbuntuでビルド

sudo apt-get install libglib2.0-bin sudo apt-get install libglib2.0-dev pip install python-graph-core sudo apt-get install graphviz sudo apt-get install libgraphviz-dev pip install pygraphviz make install python acacia_plus.py --ltl exampl…

ANTLRで演算子をTOKENにしない方がいい

この間ANTLRv4でどの演算子が読まれたか調べる綺麗な方法がないからTOKEN規則として吐き出せばいいと書きましたが、あれは間違いでした。問題が発覚したのは数式の単項演算子の-と二項演算子の-のところでANTLRがパースできなかったからです。 以下、修正し…

ANTLRの左結合・右結合について

追記 2013/5/22 演算子をTOKENにする方法も間違っていました。 訂正ANTLRで演算子をTOKENにしない方がいい - cloverrose's blogruleにする場合とTOKENにする場合で挙動が違うというところや ANTLRv3とANTLRv4の違いについては参考になりそうなので、一応変更…

ANTLR v4を使ってみた

ANTLRv4ではListener(またはVisitor)でTreeをパースするらしい(以前のようにTreeParserが作れるかは未調査)講義動画ANTLR v4 with Terence Parr - YouTubeを見ながらサンプルを作ってみました。 APIドキュメント ANTLR 4 Runtime 4.0 API サンプル Githu…

Emacs Buffer Selection(bs-show)のメモ

Buffer Selection (bs)を使う設定 (global-set-key (kbd "C-x C-b") 'bs-show) (setq bs-default-configuration "files-and-scratch");;scratchも表示 でC-x C-bでBuffer Selectionを表示するようにしてます。Buffer Selectionは開いたバッファが一覧表示で…

ANTLR v4調査

ANTLRv3を使っていましたが、気付けばv4が2013/1/22にリリースされていました。どんな変更点があるのかWhy do we need ANTLR v4? - ANTLR 4 - ANTLR Projectで調べました。 その中で一般ユーザーに関係ありそうなところを抜き出してメモ。 変更点 文法解析ア…

SPINをinstall

UbuntuとMacでSPINをビルドした時のメモ ポイント SPINのビルドにはyaccが必要なのでBisonをインストール 手順 sudo apt-get install bison wget http://spinroot.com/spin/Src/src624.tar.gz gunzip *.tar.gz tar -xf *.tar cd Src* make

Remote Debugが簡単過ぎて腰抜かした

参考サイト Tomcatをリモートデバッグモードで実行する方法 » Tomcatのリモートデバッグの実行方法 TECHSCORE BLOG 乳牛日記: TomcatのリモートデバッグEclipseでリモートデバッグする方法 ローカルマシン以外で動いているjvmをEclipseでデバッグする - TIM …

SPINの基本 初期値を指定した配列の定義の仕方

SPINは配列が使えます。 int requests[100];定義時に初期値を指定しないと、型によって決まった初期値が設定されます。intやboolは0。 これは『requests[idx]が0にはならないはず』というモデルを作ると最初に0に設定されているので破綻します。配列の要素全…

Readers/Writers Algorithm2でReaderが永遠に待ち続ける欠陥をSPINで検証

前回に引き続きSPINでReaders/Writers Algorithmを検証してみました。 今回はAlgorithm2で、Algorithm1とは反対にReaderが永遠に待ち続けるという問題があります。 ソース #define NR 1 #define NW 2 int m1=0; int m2=0; int m3=0; int r=0; int w=0; int r…

Readers/Writers Algorithm1でWriterが永遠に待ち続ける欠陥をSPINで検証

Readers/Writers Algorithmについて Readers-writers problem - Wikipedia, the free encyclopediaこのアルゴリズムの中で一番シンプルなAlgorithm1は、誰かが読込中なら書き込みはしないとか書き込み中なら読み込みはしないという安全性は満たしているんだ…