detfcというのを作りました。
普段はGNU Makeで$(wildcard)とかを使ってなんとかしているのですが、どうにもビミョーな場合が良くあるので。
でもわざわざ作っても、結局なんだかビミョー。
detfcというのを作りました。
普段はGNU Makeで$(wildcard)とかを使ってなんとかしているのですが、どうにもビミョーな場合が良くあるので。
でもわざわざ作っても、結局なんだかビミョー。
wavファイルの合計時間が欲しかったのだけどsoxとかではあんまりうまく出来ないみたいなので自分で書いてみた。バイナリファイルの処理なので、なんとなくPython。
import sys import os import struct import fractions if len(sys.argv) != 2: print "Usage: python %s <directory>" % sys.argv[0] quit() dir = sys.argv[1] files = [y for y in [os.path.join(dir, x) for x in os.listdir(dir)] if os.path.isfile(y) and os.path.splitext(y)[1].upper()==".WAV"] totalSeconds = fractions.Fraction() for file in files: print file f = open(file, 'rb') riff = f.read(4) if riff == "RIFF": riffSize, riffType = struct.unpack('<I4s', f.read(8)) samplesPerSec = 0 blockSize = 0 while True: chunkType,chunkSize = struct.unpack('<4sI', f.read(8)) if chunkType == "fmt ": formatId,channels,samplesPerSec,bytesPerSec,blockSize,bitsPerSample = struct.unpack('<HHIIHH', f.read(chunkSize)) elif chunkType == "data": totalSeconds += fractions.Fraction(chunkSize / blockSize, samplesPerSec) break else: f.seek(chunkSize, os.SEEK_CUR) f.close() print "totalSeconds " + str(float(totalSeconds)) print "totalMinutes " + str(float(totalSeconds / 60))
なんて書いてみたら、後からwaveライブラリなんてものがあることに気がついたorz。
import wave w = wave.open("a.wav") w.getframerate() w.getnframes()
みたいな感じでサンプリングレートとサンプル数が取得できるんだって。
ポピュラスみたいなゲームがやりたくて探していたら Godus というのを見つけたのでプレイしてみました。
ヒーター・モリニューの最新作でまだベータ版らしいです。
とりあえず一通り見終わりました。
第一話の段階で特に目を引いたものはありませんでした。
最近、伊藤園の緑茶のティーバッグを色々試しています。これまでに次の三種類を飲みました。
どれも十分美味しいと思います。味の評価としては、
深蒸し=ぞっこん>抹茶入り
という感じですね。価格相応です。
抹茶入りは伊右衛門みたいな味がします。いかにも抹茶でごまかされたという感じがしてしまいますが、安いことを考えれば妥当かもしれません。
ぞっこんは最近ペットボトルのおまけでティーバッグが付いていたので、飲んだ方も多いと思います。とにかくまろやかさを前面に出したような味ですね。
深蒸しはちゃんと深蒸し茶っぽい香りと味がします。綺麗な緑色、強い甘みと弱めだが確かに感じる渋みのバランス。
どれを買っても後悔はしないと思います。
個人的にはやっぱり普段から飲み慣れている深蒸し茶が好きかなぁ。
深蒸しだと20袋で36gと書いてますね。お茶屋さんで1000円/100gくらいで買った方が安いのですが、いつも全部飲みきる前に悪くなってしまうので、それを考えるとそんなに高くはないのかも。
Amazonで見かけて最初の数ページ読んでみて、続きが気になったので購入しました。
なかなか読ませるじゃないですか。ちゃんと魔法使いの弟子の成長物語になっています。最後まで一気に読んでしまいました。
物語中では「オートマトン」とかその手の専門用語は極力出てこないようになっていて、物語中の設定に従った用語に置き換えられています。
なので知識の無い人でも小難しい単語に翻弄されることはありません。
一応巻末で物語中に出てきた概念と計算理論での概念との対応付けや、それについて詳しく学びたい場合の参考文献が紹介されています。
私はこのあたりの理論は大学や独学で少しかじったり、プログラミング言語などを製作する上で必要な部分を多少知っていたりするだけですが、物語を読みながら「ああ、これはε遷移のことを言ってるんだな」とか記憶を呼び起こされながら読みました。
でもそういう知識が無くても普通に物語として読めるのでは無いかと思います。
後半になるにつれて少し難しくなっていきますが、そういう所は適当に流して読んでも問題ないと思います。
時間があれば、主人公が直面する問題について一緒に解きながら読んでみても面白いかもしれません。
この手の抽象的な理論は、身近な応用と結びつけるとより分かりやすくなると思うのですが、そういった例は自動販売機の例くらいでしょうか。
そういう例がもっとあると、読んだ後にもっとスッキリするのかなぁと思いました。
少し疑問に思ったのは、偽クフ語と万能機械について。偽クフ語の詩集は万能機械に入れる命令を表しているということだと思うのですが、それは偽クフ語をそのまま万能機械に入力すると言うことなのでしょうか。万能機械は、入力された偽クフ語を構文解析して実行する?
偽クフ語は、作中において手作業で解析をしていましたが、字句の区切りを見つけるのが難しく、また、かなり曖昧な部分が出る言語です。
なので、実際に万能機械を作るとしたら、どのようになるのだろうというのが気になりました。
おそらく命令として有効な文にはさらなる制約があるのでしょうね。
GIGAZINEで紹介されてた冷やし味噌ラーメンを食べてみました。まぁ、普通のコンビニの冷やし麺かなぁ。
食べログ評価4.1を超えるラーメン店麺屋 彩未監修の「冷し味噌ら~めん」をローソンで買って食べてみた - GIGAZINE
JavaScriptでHTML5のAudio要素を使う方法について、軽くおさらいします。
仕様書:
WHATWGとW3Cの関係とかバージョン違いとかありますが、リンク先が変わってしまうと嫌なので以下ではW3CのCRへリンクします。
[NamedConstructor=Audio(), NamedConstructor=Audio(DOMString src)] interface HTMLAudioElement : HTMLMediaElement {};
DOM的には new Audio(url)
(urlは省略可能)という形で HTMLAudioElement というインタフェースを持つオブジェクトを生成できます(他にもdocument.createElement("audio")という形で生成できたりもします)。
HTMLAudioElementインタフェースはHTMLMediaElementを継承しただけのものなので、具体的な中身(メソッドやプロパティ)についてはそちらを参照します。
Audioの場合、基本的な使い方は次のようになるでしょうか。
部分的なループは難しそうです。厳密でなくても良いのならtimeupdateイベントを使ってできると思います。
イベントの一覧については 4.8.10.16 Event summary に書いてあります。
仕様書を読んでみるともっと詳しく面白いこと書いてあります。
少し変わった構成の曲ですよね。最初は軍歌っぽい部分がイモっぽいなぁと思っていたのですが、カッコいい部分もあって何度も聞いているうちにやみつきになりました。
私も「もぅそぅシドニッアッ」と聞こえた口ですが、歌詞カードを見てはじめてなんと言っているのか知りました。うーん、まぁ、納得。
何となくヒロイックエイジのOPを思い出したり。歌い手と宇宙ものというくらいしか共通点はありませんが。
今日は朝から雨。
当分は雨が降りやすい天気が続くようです。
速報では今日ごろから梅雨入りと考えられるみたいです。
雨対策を十分して出かけましょう。