前回のポストを見返して

統合失調の予兆な気がする。アカン。

人工知能と貧困と覇権

最近の人工知能を "人工知能" として抽象化して語られることに違和感がある。 人工知能が脅威か?みたいな議論はそれが流行るたびにあった。 少なくとも僕の生きている間ではこれが2回目で、1回目は "探索" が人工知能の正体だったとき。 将棋でボナンザが台…

最近欲しいと感じたもの

最近の(少なくとも僕の知っている)Webフレームワークというか Web アプリケーションを作るためのエコシステム全体のバランスが崩れてあまり調和が取れていない気がする。FaaSとかを使うととっても安く全世界に公開できるシステムを作れるというのに、僕が…

GNOME3用アプリケーション開発に入門してみる その3

GIO編。リファレンスをざっと見せよとのこと。 GIO Reference Manual: GIO Reference Manual ファイルシステムにかかわるのは以下の6つ GFile GFileInfo GFileEnumerator GDrive GVolume GMount GFileEnumerator はいわゆるイテレータ。 GDriveがGVolumeのリ…

GNOME3用アプリケーション開発に入門してみる その2

GObject GObject Reference Manual: GObject Reference Manual C言語でオブジェクト指向を実現する仕組み。 他言語用にAPIを提供する仕組みも備えているので、 Cで書けばC++はもちろんPythonやPHPとかからも使えるようになる。 たぶん逆もしかり。 ざっと見…

GNOME3用アプリケーション開発に入門してみる

このへんから情報を取ってきたらよさそう。 GNOME Developer Center PythonとかC++とかValaとか使った方が効率的そうだけど、最初ぐらいCでやるか。 Getting started with writing a GLib/GTK+ application in C GLib core GObject GIO GTK+ の順でやれとの…

PythonでMACDを計算する

MACD (Moving Average Convergence Divergence) | FX・証券取引のマネーパートナーズ -外為を誠実に- このあたりを参考に、EMAはこんなかんじ。 def ema(l, t): result = [] for p in l: i = len(result) if i < t: # t日目までは単純平均 result += [float(…

Rust 1.0 の abs

fn main() { let x: i16 = -32768; println!("{}", x); println!("{}", x.abs()); } とすると arithmetic operation overflowed で落ちる。 doc を見ると、"::MIN will be returned if the number is ::MIN" と書いてあるのだが…。 https://github.com/rust-…

ここ数年で読んだ良さげなチュートリアルまとめ

Python チュートリアル — Python 3.4.2 ドキュメント Python のチュートリアル.僕が初めて読んだ時は 2.7 だった気がする. 今から始めるなら 3 の方が良さそう. 2 系はユニコードの扱いがつらい. Django documentation | Django documentation | Django …

C++でファイルパスを引数にしたコンストラクタだけだとつらい

C++

ファイルパスを引数にして,コンストラクタで読んで…ってのは何も考えていないと結構やりがち. しかし,これだけだとテスト書くのがつらい. テストが実行される場所を気にしないといけないし, 例外どうするかってのもある. istream& を引数にしたやつが…

SSH 越しにクリップボードを操作する

前回と似たようなネタ X の DISPLAY を設定すれば xsel が使える. ssh [HOST] "export DISPLAY=:0.0 && xsel -b" デスクトップの Linux からノートPCに持ってこれる. -bi で設定もできる.

SSH から Gnome の画面をロックする

Gnome shell が新しくなってシンプルにしたらしく, スクリーンセーバーを起動するやつが無くなったらしい. export $(cat /proc/$(pgrep -u `whoami` ^gnome-shell$)/environ |\ grep -z DBUS_SESSION_BUS_ADDRESS | strings) dbus-send --type=method_call…

ブール関数をあつかうC++ライブラリを作った

C++

utisam/boloq utisam/boloq · GitHub BDD を std::shared_ptr とか std::unordered_map で実装してみた. 名前も標準ライブラリを意識した感じでつけてみた.

Boost Test のための gedit 用 snippet

gedit snippets for boost Test

gedit 3.14 がいろいろと便利

gedit…お前,画面分割できたのか….— Tsushima (@utisam) 2014, 12月 18 geditが落ちたりて不安定だったのでしばらくvimを使っていたが, 3.14 が普通に動くようになって久々に戻って来た. Ctrl + Alt + N で分割 vim でいうところの vsplit ができる. Ctr…

gedit 3.14 の snippet で Segmentation fault する

Fedora 21 を入れてみたけど, Nvidia で wayland が動かなくてがっかりしている. もう一つがっかりしたことがあって,gedit 3.14 の snippet が Segmentation fault する. /usr/lib64/gedit/plugins/snippets/completion.py の Provider.do_get_start_ite…

pptxをpdfにしてLaTeXに取り込む

PowerPointで図を作って、PDFにしてからLaTeXにすると、拡大してもOKだしテキストがコピペできる感じになって便利。 PDF で出力した後は、PDF Slim でトリミングしていたんだけど、Windowsが更新されてから動かなくなってしまった。 そこで、pdfcropを使う。…

スケール可能なプログラムを書くために

卒論・修論の影響なのか、ソースコードの規模が壁になって詰まっている人を最近よく見る。 Web以外の人達にももっと MVC の考え方が広まってほしいなぁ。 一定の規模を超えると、ファイルを分割したりする必要があります。 しかし、そのステップはなかなか険…

AndroidのエミュレータでSDがマウントされない

さて、AVD作って起動っと… ん、SDに書き込めない? # mount あれ、sdcardがマウントされてない。 $ cd .android/avd/Nexus7_2012.avd $ grep sdCard config.ini hw.sdCard=no ん?

Ubuntu Server で wsgi を使うと SetEnv が効かない

Django の wsgi.py は、 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") となっているので、 Apacheの設定で SetEnv DJANGO_SETTINGS_MODULE mysite.settings.prod って感じに本番環境と開発環境でsettingsを切り替えるというのは、結…

DebianのAnsibleにMySQLを入れる

DebianにAnsibleを使って単に apt: pkg=mysql-server state=latest とかすると、 root でログインできなくなる。 debconf を使うと初期パスワードが設定できるのでそれを使ってからインストールする。 - name: MySQL | Set debconf vars raw: echo mysql-ser…

某大学で変な院進する話

リアルで面識がある感じのわかる人にはわかるタイトル。 まず原則としてオススメしない 先生にも言われると思うけど(少なくとも数年先ぐらいまでは)オススメしない。 死に急いでる人以外は、思ったほどメリットがない。 実力*1が無いなら(主に事務手続き…

日本語環境でRustをビルド

Rustをビルドしてみた。 compiler-rt の Makefile が間違っていて、英語環境以外では修正してから make する必要がある。 rust/src/compiler-rt/make/platform/clang_linux.mk を以下のように修正 - LANG=C $(CC) -v 2>&1 | grep 'Target:' | cut -d' ' -f2)…

「: そのようなファイルやディレクトリはありません」

こんなエラーで手元のスクリプトが動かない。 うーん、確かに存在するし、権限もあるんだが…。 shebang は #!/usr/bin/env python3 になってるしなぁ。 : そのようなファイルやディレクトリはありません 1行目にprint文仕込んでも変わらんか。 shebangが間違…

string.xmlにJSONを埋め込む

Androidアプリケーションのプロトタイプなんかを作っていたりすると、JSONをハードコーディングしたくなるときがある。 プロトタイプでいちいちサーバ立てて通信させてとかやりたくない。 かといって .java に + でつないで何行も書くのは精神衛生上よろしく…

istringstreamを使い回す

string line istringstream ist; while (getline(cin, line)) { ist.str(line); /* なんかの処理 */ } 上記のように使いまわそうとすると失敗する。 フラグがbadの状態になっていたり読み込んだ位置とかを戻さないといけなかったりでバグになってしまう。 st…

ファイル中のコメントを無視する

入力ファイルとかにコメントを書けるといろいろとはかどる。 def comment_ignore(file_obj, comment="#"): for line in file_obj: line = line.split(comment, maxsplit=1)[0].strip() if line: yield line with open("file.txt") as f: for line in comment…

std::arrayの初期化

C++

g++(4.7.2) だとコンパイルできないけど clang++(3.3) だとできる. g++ の場合は, array<int, 3> a((array<int, 3>){1, 2, 3}); みたいにキャストで明示しないといけないっぽい(C++スタイルでする場合には何使えばいいんだろ?). たぶん g++ の方は explicit ついたコン</int,></int,>…

はてなブログにお引越し

自分で作ったブログ使ってたけどやっぱり機能面で勝てないよなーと思ってお引越し. Bloggerの時のやつもMoveable Typeで移行した(いくつかフォーマットがおかしくて漏れてるけど). Gist貼り付けがあるのでソースコードも乗せやすそう.

Fedora19でgeditが落ちる問題

シンタックスハイライトの色つきの場所で, ibus使った補完とかするとgtkがSegmentation Faultで落ちる問題が発生してた. 日本語使う時だけkateにしたりして回避してたけど, パッチ が公開されてたのでこれ使うとうまくいく. まだrpmに反映されてないっぽ…