移転しました

別に新年だからという訳でもないですがはてなブログの方に移転しました.ついでになんとなくアカウント名も一新. こちらの記事はそのまま残しておきます. http://mmi.hatenablog.com/

PyQt5でさくっとGUIを作る

普段GUIを作成する場合はC++withQtで作成してます.実のところQtを使えば簡単にGUIが作成できるんですが,わざわざQtプロジェクトを作るのもあれだなーという時 にPython用のQtバインディングであるPyQt5を使うともっとお手軽にできるのではないかと思って試…

goのstructとinterface辺りのメモ

go

・ポインタはよしなにdereferenceしてくれる http://golang.org/ref/spec#Selectors http://play.golang.org/p/WtCuLsr824 package main type T0 struct { x int } func (recv *T0) M0(){ println("*T0:",recv.x) } type T1 struct { y int } func (recv T1)…

木を綺麗に描画するアルゴリズム

少し前に作ってそのままにしてたんですが,木(特に2分木)を綺麗に描画するかというアルゴリズムについて少し資料にまとめました. 木を綺麗に描画するアルゴリズム from mfumi スライドで紹介している reingold tilford アルゴリズムを実際にjavascriptで実…

IPSC2014 D問題について

昨日おこなわれたIPSC2014にひっそり参加していました.IPSCとはInternet Problem Solving Contestの略で,ひとくくりにいってしまえば競技プロコンですが,普通の競技プロコンと違って,単純なアルゴリズム系でない問題もでます. 僕はCとDを解いた(という…

CPythonのgrennlet(グリーンスレッド)の実装について

OSが管理するスレッドと違って,ユーザのプログラムによって管理されるスレッドのことをグリーンスレッドといいます.他にもマイクロスレッドとか軽量スレッドとかいったりすることもあるようです.ネイティブスレッド(OSが管理するスレッド)と比較したとき…

vimのconcealを使ってJavadocを奇麗に表示

この記事はVim Advent Calender 2013 118日目の記事です.VACは2011,2012と書いていたのですが気づいたらこんな時期になっていました.まぁまだ2013年度ですし何の問題もないですね.過去2回はよく分からないことを書いてしまったんですが今回は普通です. -…

Java8のラムダ式

最近ぼちぼちJavaをやり始めたところタイミング良くJava8がリリースされたので新機能であるラムダ式について少し見ていこうと思います. まず,Java8におけるラムダ式は一体何なのかというと,それはずばり抽象メソッドを一つだけ持つインタフェースのインス…

グラフ(ネットワーク)を奇麗に描画するアルゴリズム

グラフはノードと辺の集合から構成されているだけなので,その描画方法は任意です.例として,以下の3つのグラフはどれも同じです. グラフをどうやって奇麗に描画するかという研究は昔からおこなわれていて,そのうちの一つに力学モデルがあります(Wikipedi…

NetworkXによるスモールワールドネットワークの生成

NetworkXはpython製の複雑ネットワークのためのライブラリです.NetworkXを使うと,お手軽にグラフ構造が作成できます.平均経路長(2点のノード間の平均距離)やクラスタリング係数(隣接ノード同士が接続している割合)といったネットワークの特徴量を求める関…

PageRank 解説

web

Mining of Massive Datasetsというのを輪読していて、PageRankに関する部分のスライドを折角作ったのでslidshareに置いておきました。 最後のRでのPageRankの実装について補足をしておくと、Rで固有値を求める場合行列の全ての固有値・固有ベクトルを求めて…

bootstrapめも

web

CSSとか書きたくないんだけどナビゲーションバーぐらい欲しい.. って思って少し調べてたらbootstrapをcdnで配信してるのが見つかったので利用してみることに。 <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"> <style> body{ padding-top: 20px; } </link></meta></head></html>

pythonのitertoolsのrecipeのメモ

公式にitertoolsのrecipe集があるのでそれのメモ. バージョン: python3.3 参考: itertools — Functions creating iterators for efficient looping — Python 3.7.3 documentation ・take(n,iterable) 最初のn個の要素をリストとして返します from itertools…

pythonのitertoolsメモ

バージョン: python3.3 参考: http://docs.python.org/3/library/itertools.html itertoolsのpythonによる実装が書いてあるので勉強になります. ・itertools.accumulate(iterable[, func]) In [2]: it = itertools.accumulate([1,2,3]) In [3]: for i in it…

gitosisからgitoliteに移行(Ubuntu)

git

参考: http://gitolite.com/gitolite/gsmigr.html サーバをupgradeしたついでにgitosisは古いらしく無くなってしまったのでgitoliteに移行. aptitudeで入れようとしたらバージョンが古いみたいなのでgitから入れる. $ git clone http://github.com/sitaram…

FUJI ROCK FESTIVAL 2013 前編

個人的にThe CUREは一番最初に好きになったバンドで,今でも一番好きなバンド.6年前に23年ぶりに来日したときはとても見にいける状況になくて泣く泣く見にいくのを断念したんだけどそんなCUREの今年のフジロックへの出演が3月末に発表されたとき,7月末の予…

FUJI ROCK FESTIVAL 2013 後編(CURE編)

Vampire Weekendが終わったところでモッシュピット入れ替えがあったのでえいやっと中に入る.流石に最前列は無理だったけどちょうど中央あたりの前から2,3列目を確保.まぁ最前列にいくと嫌でも怖いセキュリティの兄ちゃんと目を合わせなくては行けないので…

vimでiTunesで再生中の曲の歌詞を表示

vim

mpcが好きなんだけどiTunesを使うこともあるので. :GetITunesLyrics で取得できます.要webapi.vim. 歌詞取得関数自体は昔作ったmpc操作用のプラグイン(mpc.vim)で実装してたのでそこから取ってきた物です.あとは相変わらず気持ち悪いapplescriptでiTunes…

foldtextでfizzbuzz

vim

これを読んでたら唐突に思いついたので. 以下をvimに入力し:so % silent exe "normal! \<c-w>n:setl noai\<cr>:setl nosi\<cr>i\<tab>a\<esc>yypA\<cr>a\<esc>ggVG\"zygg99\"zP:setl fdm=indent\<cr>:setl fdt=v:foldstart%15==0?'FizzBuzz':v:foldstart%5==0?'Buz':v:foldstart%3==0?'Fizz':v:f</cr></esc></cr></esc></tab></cr></cr></c-w>…

colorcolumnの値を動的に変化させる

vim

vimでプログラミングをしているとき,気分を変える手段としてはカラースキームを変える方法がありますが,カラースキームを変えることに飽きたらcolorcolumnの値を動的に変化させてみてはいかがでしょうか. 以下を.vimrcに記述 :StartChangeCC で開始. 便…

xv6のコンテキストスイッチを読む

第2回APASEC+第2期サイボウズ・ラボユース合同勉強会の発表資料です. xv6のコンテキストスイッチを読む from mfumi xv6はMITで開発された教育用OSで,UNIX V6をもとにx86向けに書き直されています.主な特徴として, ・マルチプロセッサに対応 ・バイナリ…

unite.vimでカラースキームの色相を変化させる

vim

huerotation.vim素晴らしいですね.でもどうせだったらunite-colorschemeのように変化の様子が見たいですよね. ということで作りました.ちゃんと独立してunite.vimのソースを作ってもいいんですが,100行にも満たないでしょうから.vimrcに直接書くことにし…

listingsでスペースを省略させない

tex

texでソースコード貼り付けにlistingsを使うとソースコード中の複数個の空白が1個の空白に置き換えられてしまって困っていたけど次のオプションを設定してあげればよかった. \lstest{keepspaces=true} まぁ,ちゃんとマニュアルは読みましょうという話. CT…

Mac OS X で lcc

c

Mac OS X で lcc (lcc, A Retargetable Compiler for ANSI C) を使う方法普通にビルドできます $ git clone https://github.com/drh/lcc.git $ cd lcc $ mkdir build $ export BUILDDIR=./build $ make rcc $ build/rcc -target=x86/linux tst/8q.c build/rcc…

シンボル間の引き算

再配置情報について調べてたらアセンブリでのシンボル間の引き算についてelf/i386とmach-o/x86-64で挙動が違ったのでめも. elf/i386 の場合 (実行環境: Ubuntu 10.04LTS (linux 2.6.32), GNU assembler version 2.20.1 (i486-linux-gnu)) まず.シンボル間…

R_386_8

ELF/i386な再配置情報のR_386_8とかいったいいつ使うんだろうかと思ってたけど次のようにすれば現れることに気づいた例) a.s .data a: .byte 1 d: .byte a 普通にコンパイルするとベースアドレスが0x8048000なので.byte領域に収まらなくてエラーになるので次…

ELF/i386 の再配置情報

ELFでi386なときに使われる再配置情報は以下のとおりです(elf.hより). /* i386 relocs. */ #define R_386_NONE 0 /* No reloc */ #define R_386_32 1 /* Direct 32 bit */ S+A #define R_386_PC32 2 /* PC relative 32 bit */ S+A-P #define R_386_GOT32 3 /…

Vimでお絵描きプログラミング

vim

この記事はVim Advent Calender 2012,第23日目の記事です.前日は@y_uukiさんのPerl屋さんに便利なVim Pluginを2つ書いた - ゆううきブログでした. pietというプログラミング言語があります.pietは普通の言語とはちょっと変わっていて画像を使ってプログラ…

第01回北関東情報セキュリティ勉強会に参加してきました

2012/12/8日に群馬県新島短期大学でおこなわれた第01回北関東情報セキュリティ勉強会に参加してきました.なんか参加者の方がすごかったです.. 午前 午前には目覚ましLTということで10:30から1時間ほどLTがありました.・@dragon_TA さん ボランティアとセキ…

エンディアンの話

asm

・x86の場合 nasm(intel syntax) mov dword[eax+0x08],0x1234 アセンブル結果 c7 40 08 34 12 00 00機械語解読のためにはオペコードのフォーマットに関する知識が必要で、詳しくはインテルのマニュアル参照ですが簡単にまとめると prefix(1-4byte) opcode(1-…