ハッカソンにスポンサーとして参加した話

会社に来ているアルバイトの学生(彼は同じゼミの後輩であり、奇遇にも大学院も同じである)が主催したハッカソンに、会社として協賛することになった。協賛している会社は15分間スピーチする権利が与えられ、立場上私が担当することになったのだが、正直何…

40%未満キーボード Collide39 を作った話

ここ数か月、自作キーボードの沼にはまってしまい、meishi, crkbd, Gherkin, Collide39, cocoa40, Reviung39s と制作してみたが、自分的に Collide39 がかなりお気に入りなので、キーマップの工夫なども含めて記事にしてみる。 手前から Gherkin, Collide39,…

Cygwin 環境でのコピー&ペーストをコマンドラインで

Python の動作環境をどうするかは常に悩みどころで、以前は Windows 上の VirtualBox で環境を作り、Cygwin から ssh することが多かった。が、最近は顧客要望もあって Windows の Anaconda を使うことが多くなってきた。とは言えファイルの操作は相変わらず…

HP 35s でプログラミング - 4

前回 HP 35s 向けにそこそこ複雑なアルゴリズムを実装してみたが、なかなかパフォーマンス的に厳しい事実が垣間見えてしまった。ほかに何かネタが無いか考えあぐねいていたところ、出版されたのはだいぶ前だが「ハッカーの楽しみ」という本のことを思い出し…

HP 35s でプログラミング - 3

前回 RTA に必要な ceil() が実装出来たので、RTA 本体を実装してみようと思う。 RTA に関する詳細な説明は https://dspace.jaist.ac.jp/dspace/bitstream/10119/13748/5/paper.pdf の定義1, 例2に譲るとして、ここでは最低限 RTA の定義とアルゴリズムを簡…

HP 35s でプログラミング - 2

ここ数年、本腰を入れて取り組んでいるリアルタイムスケジューリングの研究分野では、与えられたタスクセットがスケジュール可能か判断するための様々な手法が提案されている。シングルコアでの手法は確立されており、RTA = Response Time Analysis というの…

HP 35s でプログラミング

仕事柄、ちょっとした計算や基数変換をする場面が多く、その度に Windows の電卓や、シェルから expr や、ちょっとしたループを伴う計算には awk を使っていたが、起動のオーバーヘッドもあり不便を感じていた。たまたま寄ったオフィス用品店で目に留まった…

Haskell でラムダ式を簡約させてみる - 3

Haskell でラムダ式を簡約させてみる - 1 - pragma666の日記 Haskell でラムダ式を簡約させてみる - 2 - pragma666の日記 前回は自由変数の判定を行う関数を定義した。次はβ簡約の中心的な役割を担う、λ項の置換を定義する。 置換の定義 再び Hindley の教科…

Haskell でラムダ式を簡約させてみる - 1

ラムダ式について勉強する機会があったのでメモ。ラムダ計算について前々から興味はあったのだが、残念ながら日本語による良質な書籍を私は知らない。ので勉強した内容をまとめてみました。 ラムダ計算の名を冠した本に高橋正子先生の本がある。計算論 計算…

Haskell でラムダ式を簡約させてみる - 2

Haskell でラムダ式を簡約させてみる - 1 - pragma666の日記ここからはラムダ式を Haskell で表現していく。 そのためには幾つかの定義が必要だが、全ての定義は Hindley の著書 Lambda-Calculus and Combinators: An Introduction から拝借させて頂いた。La…

RM と EDF を awk で実装する

代表的なハードリアルタイムスケジューリングアルゴリズムである RM ( Rate Monotonic ) と EDF ( Earliest Deadline First ) を awk で実装してみた。https://sourceforge.net/projects/rmvsedf/ git clone git://git.code.sf.net/p/rmvsedf/code rmvsedf-c…

yices, awk, ocaml を使って秒速で数独を解く

yices という SMT Solver を使って、数独を秒速で解いてみた。http://sourceforge.net/projects/ssyao/ git clone git://git.code.sf.net/p/ssyao/code ssyao-code数独を解くための制約式を awk (と勉強を兼ねて ocaml )で作ってやり、yices にその式を解…

TinySCHEME のソースを読む -5 define の例

TinySCHEME のソースを読む -1 セルの構造 TinySCHEME のソースを読む -2 シンボル、環境 TinySCHEME のソースを読む -3 TinySCHEME の処理エンジン TinySCHEME のソースを読む -4 トップレベルからの処理の流れ TinySCHEME のソースを読む -5 define の例 t…

TinySCHEME のソースを読む -4 トップレベルからの処理の流れ

TinySCHEME のソースを読む -1 セルの構造 TinySCHEME のソースを読む -2 シンボル、環境 TinySCHEME のソースを読む -3 TinySCHEME の処理エンジン TinySCHEME のソースを読む -4 トップレベルからの処理の流れ TinySCHEME のソースを読む -5 define の例 t…

TinySCHEME のソースを読む -3 TinySCHEME の処理エンジン

TinySCHEME のソースを読む -1 セルの構造 TinySCHEME のソースを読む -2 シンボル、環境 TinySCHEME のソースを読む -3 TinySCHEME の処理エンジン TinySCHEME のソースを読む -4 トップレベルからの処理の流れ TinySCHEME のソースを読む -5 define の例 t…

TinySCHEME のソースを読む -2 シンボル、環境

TinySCHEME のソースを読む -1 セルの構造 TinySCHEME のソースを読む -2 シンボル、環境 TinySCHEME のソースを読む -3 TinySCHEME の処理エンジン TinySCHEME のソースを読む -4 トップレベルからの処理の流れ TinySCHEME のソースを読む -5 define の例 t…

TinySCHEME のソースを読む -1 セルの構造

TinySCHEME は scheme 実装の一つで、コード量は 4千行程度である。R5RS の大部分の仕様が実装されており、学習のためにソースを読む機会があったので記録しておく。TinySCHEME のソースはインデントが統一されていなかったり、数字と演算子の間の空白が極端…

tsdbg TinyScheme 用デバッグ extension

TinySCHEME のソースを読む機会があったので、内部のセルがどうなっているか調べるために extension を作った。http://sourceforge.net/projects/tsdbg/ git clone git://git.code.sf.net/p/tsdbg/code tsdbg-codeセルを再帰的に表示したり、graphviz dot フ…

cx_Oracle で python から Oracle に接続する

SQL*Plus があまりにも使いにくいので、cx_Oracle を使って python から、別のサーバにある Oracle DB へ接続する環境を整えたのでその時のメモ。最初は Cygwin 環境に作ろうとしたが何故かうまくいかず、結局 VMWare を入れて環境を作ることにした。 使用環…

Qt Embedded を DirectFB で動かす

仕事の都合上、Qt の移植作業が中途半端な状態でストップしてしまう。途中経過をメモ。 ARM Omap3 のボードに DirectFB を移植し、Qt をその上で動かす、というもの。1. ソースをダウンロード http://qt.nokia.com/downloads/embedded-linux-cpp http://get.…

Qt DirectFB で、devmem の領域が解放されない

Qt Embedded を DirectFB の devmem で動かすと、devmem の領域が解放されない、という問題があった。記録して役に立つかは分からないが、一応メモしておく。 環境は Qt Embedded 4.7.3 と DirectFB 1.4.3。DirectFB は devmem と自前の gfxdriver で blit, …

Porter & Duff のテストプログラム

DirectFB の gfxdriver を開発するにあたって、Porter & Duff について軽く調べたのでメモ。 Porter & Duff の説明は wikipedia:アルファチャンネル に詳しいので、ここでは C で書いた簡単なテストプログラムのみを載せる。 Wikipedia を見ると、TeX じゃな…

pkg-config をクロス開発で使う

今更だが、pkg-config をクロス開発用に使ってみた。 (今までは configure をコツコツとハックしていた)pkg-config は、どのようなライブラリがインストールされているかを教えてくれるツールで、クロス開発における使われ方は、あるライブラリ/アプリケー…

qemu-arm を使う

qemu で ARM や MicroBlaze のエミュレーションが出来るそうなので、インストールして使ってみた。インストールは configure, make するだけ。 $ wget http://download.savannah.gnu.org/releases/qemu/qemu-0.14.1.tar.gz $ tar xvfz qemu-0.14.1.tar.gz $ …

MicroBlaze の TLB を直接いじってみる

本や仕様書を読んでも、なかなか MMU の理解が進まないので、実際に MicroBlaze の TLB をいじってみることにした。そーいえば、ポインタを理解したときもデバッガでメモリダンプを見て初めて納得がいった気がする。TLB を使うための簡単なプログラムを書い…

MicroBlaze linux xmd でデバッグ tips

kernel の本家にマージされる前の MicroBlaze linux を作るのはけっこうステップが多くて面倒くさかった記憶があるが、Xilinx の git サーバで公開されている kernel と dts を組み合わせると驚くほど手間をかけずにとりあえず MicroBlaze で linux が起動す…

KINESIS 自分用メモ

KINESIS の Contoured Keyboard Advantage のマクロ/リマップのメモ Reset Program + Shift + F10 Program + Remap ESC -> += += -> -_ -_ -> "' "' -> |\ |\ -> |\( Insert ) ↑ -> ↓ ↓ -> ↑ Alt -> Option Alt Program + Macro CapsLock -> Alt + ~` Disabl…

awk メモ 1 svn 用

awk

エリック・レイモンドの The Art Of Unix Programming には、awk なんて out of date な言語、今どき使ってるやつなんていねーよ的なことが書かれていたような記憶があるが、私は awk が好きだ。 そんな awk のメモ。今回は svn 用 svn で ? なファイルを消…

コマンドラインから Quartus II を使った場合のメモ

たまたま Altera の Quartus II を使う機会がったのでメモ。 調べたことはコマンドラインから Quartus II を使う方法と、ピン制約のやり方について。Introduction to the quartuss II softwareの1章に書かれていることをピックアップして記述する。普段は Xi…

無駄に Boost/STL でソリティアを実装

ソリティア社員が国を滅ぼすという記事を読んだ。読んだからどうというわけではないのだが、そういや昔、仕事暇な時にソリティアこっそりやるためにソリティアを作ったっけなぁ、と思い出したので SourceForge にページを作った:http://sourceforge.net/pro…