ラズパイで音がつづめられる問題。12GBでは足りない!

ラズパイ(Raspberry Pi 3B+)で音声ファイルを再生すると、最後に1.3秒ほどが再生されないという問題がある。 しかたなく、vtsay(VoiceText API を利用した読み上げプログラム)では sox で 1秒の無音WAVファイルを連結してから aplay に再生させるというワ…

自由ソフトウェアについて考えたい

企業のやりたいことが人を助けることはないということ。 Dr Joe Armstrong

LANケーブルのコネクタをつけなおした

Kumanの9点セットを買った。 圧着工具に加工が必要とのレビューがあるが、やはり圧着するとコネクタのツメがパキッっといく。 ツメが折れたコネクタを付け替えるために買ったのに、ツメの折れかかったコネクタのケーブルができるのは微妙である。 ツメの下に…

Raspbianの日本語ローカライゼーション

小学生 日本の小学生にも lxterminal pcmanfm guvcview v4l2ucp どうして?

木戸

勝手口の木戸が壊れている。 扉自体も板木どうしの間に隙間があったり、穴が空いたりしている。 木の柱をコンクリートの塀に固定している金具が腐食している。 金具には穴の空いた板のような部分があって、ここから木の柱を釘で固定していたが、釘が腐食して…

勉強したい?けど

何も入っていく気がしない。

SOTECのキーボード

スペースバーのパーツ壊しちゃった。 スタビライザーは無理。 ルブルくらいしかない ALPS互換。

Raspberry Pi 3B+を買った

楽しい。 動画再生機能について書く。 その前に、ラズパイのCPUはどのくらいパワフルなの? ラズパイのCPUは 1.4GHz のARMで、メインPCは一瞬なら 3.6GHz まで上がる Core i5。gcc で最適化なしでコンパイルした空ループを実行させると3倍くらい違う。これ…

はてなブログのUIなんで英語なん?

設定では日本語にしているのに。 と思ったらブラウザの言語設定で en を ja の上にしているからだった。

Values and Variables

In Ruby all values are references to objects and variables store them. To see what this means, consider the local auto variable declaration in C below. int x; When the program's control goes into the scope of `x`, certain contiguous bytes …

昔読んだ言語学の本をまとめてみた

2004年 はじめはこの2冊を並行して読んだ。Fromkin は社会言語学の章は心が乱れるので読まなかった。An Introduction to Language作者: Victoria Fromkin,Robert Rodman,Nina Hyams出版社/メーカー: Wadsworth Pub Co発売日: 2002/08/02メディア: ペーパーバ…

PeerCastIM4Linuxをいじってみた

PeerCast には設定の為に HTML サーバーが実装されているが、そのパフォーマンスはさして感心するようなものでもない。Apache HTTP サーバーのベンチマークツールである ab で計測してみる((ab -c 1 -n 1000 http://localhost:7144/html/ja/images/small-log…

Linux Assembly HOWTO を読んだ

http://www.tldp.org/HOWTO/Assembly-HOWTO/index.html32ビット x86 アセンブラについての HOWTO だ。DOS プログラマに向けて書かれてるのかな?しょっぱなから種々のアセンブラやプロジェクトの紹介が続き、おなかいっぱい。Linux のブートローダを書くのに…

カスタムウィジェットで立方体を回しやすくしてみた

陰線消去(というか陰線を点線に)して立方体を表示するプログラムがあります。ところが立方体を回すためには、矢印ボタンをカチカチ何度も押さなければいけなくて、ぎこちなかった。そこで操作の労力が減るように、カスタムウィジェットを作った。みためは…

IronRuby と irpack を使ってみた

WinForms でハローワールド 「.NETでRuby開発を体験してみよう − @IT」を参考に Ruby から WinForms を使ってみた。リンク先のコードをもとに書いたファイル main.rb がこれ。 # coding: utf-8 require 'mscorlib' require 'System.Windows.Forms' require …

カエルの作りかた

カエルの動画を見ます カエルを描きます 背景を透明にします gimp を使うと良いでしょう。魔法の杖で背景を選択して切り取ります。線にスキマがあるとうまく背景だけを選択できないので、あらかじめえんぴつツールで線を書き足しておきます。きっともっと良…

そういう仕様だった

The array is changed instantly every time the block is called, not after the iteration is over. http://www.ruby-doc.org/core-2.1.2/Array.html#method-i-delete_if ようするに条件ブロックが true を返したら次に条件ブロックが実行されるときには、…

Array#delete_if が思ったよりも遅かった

Ruby の Array は可変長配列だと聞いていたので、先頭への要素の追加削除は既存の要素の再配置が必要になるから遅かろうと思っていた。ところが、実測してみると unshift/shift は push/pop と同等の速度だった。ふむ。Array は可変長配列(C++ でいう vector…

添え字を使わずに2次元配列を回転・反転させる方法

ここでは、2次元配列とは Array の Array を意味することにします。外側の親配列が同じ長さの小配列を持っている、 matrix = [[1,2,3],[4,5,6],[7,8,9]] のようなやつですね。視覚的にはこんな数字の表を表していると考えましょう。1 5 9 の軸が主対角線で …

回転行列を使って配列を回転させる

2次元配列を回転させる方法を調べていたら、回転行列っていうのが何なのか気になった。定義には三角関数が入ってて難しげだけど、Wikipediaによると右に90°回すだけなら簡単な数字で回せるらしい。これに座標を入れたベクトルをかけると回した後の座標が…

Ruby/Gtk2 でカスタムウィジェットを作る

長いあいだ Ruby/Gtk2 でカスタムウィジェットの作りかたがよくわからなかったけど、今日 rbbr を読んでいてやりかたがわかった。クラス定義の中で GLib::Object.type_register を呼び出して GObject システムに型を登録してから、GLib::MetaInterface.signa…

Rubocop を使ってみた

Rubocop というコードのスタイルをチェックするツールがあることを知りました。rubocop とすればディレクトリの Ruby ファイルについていろいろ教えてくれます。完璧ではないものの、rubocop --auto-correct とすれば自動で変更までしてくれます。これを自分…

オブジェクト指向と関数的手続き

オブジェクト指向プログラミングでは処理はメソッドで表わされる。メソッドはなんらかのクラスに属していて、そのインスタンスのデータにアクセスすることができる。つまり、メソッドは常になんらかのインスタンスを環境*1として実行される手続きだ。しかし…

設定ダイアログを楽して作れないかな

例えばこういうオブジェクトを用意して…… Person = Struct.new :name, :age, :kawaii yukarin = Person.new 'Yukari', 17, true p yukarin #=> #<struct Person name="Yukari", age=17, kawaii=true> どういう風に表示したいか表にして…… table = [[yukarin, :name, :string], [yukarin, :age, :spin], [yukarin</struct>…

Ruby/GTK のレイアウトを作るための DSL を作った

こんなのは DSL って言わないかもしれないけれど、ウィジェットの親子関係がインデントで表せてわかりやすいです。あと、名前付きオプション引数でウィジェットのプロパティが設定できたり、シグナル名を書くだけで convention で名前が付いてコールバックが…

続・Ruby で labels できるか

先日、Ruby で labels に類似したパターンを書いたが、見た目も labels にできた。まずは実例から。例によって階乗。 def fact(n) labels iter: -> m, acc { m==0 ? acc : iter(m-1, m*acc) } do iter(n, 1) end end fact(10) => 3628800 実装は次のようにな…

Ruby で labels できるか

次のコードに等価なものを作りたい。 (defun f (a b) (labels ((g (c) (list a b c))) (g 'z))) (f 'x 'y) ; => (X Y Z) 新しい Object にシングルトンメソッドを定義しよう。 def f a, b Object.new.instance_eval { self.define_singleton_method(:g) do |…

do end で引数リストにカッコを付けてはいけない謎の文法環境

Ruby ではメソッドに渡すブロックの表記に do end と {} の2つがあるが、その違いの一つは、do end は引数リストの括弧を省略できるということだ。次のようなテスト用のメソッドを用意して、確かめてみる。 # 渡された引数とブロック引数を配列にして返す。…

S式を1つ読み飛ばすリードマクロを作ってみた

HTML のように閉じ括弧にコメントをつけられるよ。 ;; 3の倍数か? (def mult_three? (n) (if (.== 0 (.% n 3)) true false #/if) #/def)

やっぱりメソッド呼び出しを . で始めるようにした

関数位置に置けるのは、関数を表すシンボルと lambda フォーム、proc フォーム、そして meth フォーム。. は meth フォームを生成するリードマクロだ。 ラムダ > ((lambda (x) (.* x 2)) 3) read: [[:lambda, [:x], [[:meth, :*], :x, 2]], 3] ruby: lambda …