タグ

ブックマーク / lowreal.net (40)

  • ピアノの教材 - 氾濫原

    完全初心者だとやることが多い 楽典 (楽譜のよみかたとか) 運指 ソルフェージュ っていっても同時になんでもできるわけじゃないので、とりあえず子どもの教材といくつか試してみる。どんな感じですすめていくかわかれば今後子どもがやりはじめたときにも役に立つだろう。 よくきく教材に「バイエル」というのがあるが、昨今では流行ってないらしい。退屈だとかヘ音記号の登場が遅いだとかDISられまくってる。いくつか調べた結果以下の教材を買ってみる。 トンプソン 現代ピアノ教1 バスティンピアノベーシックス ピアノのおけいこ レベル1 無理のない指のトレーニングのために大人からはじめるハノンピアノ教 基礎教材はトンプソンかバスティンがとりあえず良さそうなので、買ってみてどっちもやって合うほうの続きを買うつもり。ハノンはまだ必要だとは思えないが、運指の練習がどんなものか興味があるので手に入れる。 あとモチベー

    ピアノの教材 - 氾濫原
    cho45
    cho45 2018/05/18
    id:whirl プライベートモードのはてなブログに書いていたエントリを、書いた当初の日付を元に公開日を調整してインポートしたせいです!(聞いてない)
  • cdd とお別れして、別の cdd を定義した | tech - 氾濫原

    ずっと cdd ( http://secondlife.hatenablog.jp/entry/20080218/1203303528 ) を使ってたけど、以下のような感じでいいかなと思ったのでついに使うのをやめてみた。(cdd はスクリーンの別ウィンドウのディレクトリに簡単に移動するためのコマンド) function cdd() { if [[ $1 == "" ]]; then local selected_dir=$(lsof -c zsh -w -Ffn0 | perl -anal -e '/cwd/ and print((split /\0.?/)[1])' | uniq | peco) if [ -n "$selected_dir" ]; then cd ${selected_dir} fi else local pid if [[ $(uname) == "Darwin" ]

    cho45
    cho45 2015/10/27
    perl -anal の例です
  • リファレンスマニュアルをインクリメンタル検索するやつを Electron で実装した | tech - 氾濫原

    https://github.com/cho45/Chemrtron 機能 インデックス用のクローラ 作ったインデックスのインクリメンタル検索と表示 できるだけ雑にインデックス作成用のクローラを実装できるようにしたかったので、そのようになっている。 オフライン閲覧はあんまり考慮してないが、file:// でインデックス登録すればオフラインでも使えると思う (ネットワークよりもディスクサイズのほうが厳しいのでオフラインにあまり興味がない…) 動かしかた レポジトリをクローンする場合 electron-prebuilt が必要。 npm -g install electron-prebuilt git clone https://github.com/cho45/Chemrtron.git cd Chemrtron electron . または https://github.com/cho45

    cho45
    cho45 2015/10/14
  • 2D 描画でも WebGL を使うべきか? スペクトラムウォーターフォール最速決定戦 | tech - 氾濫原

    上のように、スペクトラムのウォーターフォール表示ではよく下に1行追記して全体を上にスクロールさせていくみたいな見せかたをするが、全体の再描画が必須なため、かなり描画負荷が高い処理となる。 いくつか実装を書いてどのぐらい差がでるかを検証してみた。 毎回 canvas の内容を全部描く http://cho45.stfuawsc.com/spectrum-performance/canvas-redraw-whole/ ctx.putImageData( ctx.getImageData(0, 1, canvas.width, canvas.height - 1), 0, 0 ); 上のようなコードで canvas 全体を 1px ずらして、最後の一行に新しいデータによる putImageData() をさらに行う。 ピクセルデータを直接シフトさせるやりかただと、一番ナイーブで実装が簡単だが実

    2D 描画でも WebGL を使うべきか? スペクトラムウォーターフォール最速決定戦 | tech - 氾濫原
    cho45
    cho45 2015/10/05
  • CSS Animation Sine Wave | web - 氾濫原

    http://cho45.stfuawsc.com/misc/css3-sine-wave.html CSS 自体では自由な曲線は描くことができないが、CSS animation では、animation-timing-function で cubic-bezier() を使い定義したベジェ曲線に従ってプロパティーの変化量を決めることができる。 なので、複数の animation する要素を組合せることで、全体としてサイン波を描くことができる。 ポイントは animation-timing-function はキーフレーム間 (1回のアニメーション全体ではない) に適用される点で、勘違いしているとひたすらハマる。 上記の例ではアニメーションさせたままだが、animation-delay に負の値を指定して animation-play-state: paused; を指定すれば止めた状態に

    cho45
    cho45 2015/10/05
  • DOM の KeyBoardEvent の e.keyCode とか e.which とかを文字列としてとりたいやつ | tech | [js | javascript - 氾濫原

    昔 keyString.js という KeyBoardEvent からなんとなく押されたキーの文字列表記になおすやつを書いたことがある。 https://github.com/cho45/keyString.js しかしこれは実装が不完全で一部のキーがちゃんと判定されなかったりした。が、マルチプラットフォーム・マルチブラウザで検証するような気力はないし、そんなことしても無駄になるのは目に見えているのでやる気はおきない。 KeyBoardEvent.key KeyBoardEvent に key というプロパティが DOM Level 3 Events ではできることになっていて、これは Enter キーの場合 "Enter" という文字列が入り、物理的なキー位置(ということになっている謎の数値)ではなく、論理的なキーを表現するということになっている。が、全てのブラウザで同じように実装されて

    cho45
    cho45 2015/10/05
  • OsmAnd で自転車ルートをターンバイターン・ルートナビゲーション | tech - 氾濫原

    概要 OsmAnd はターンバイターンで事前に決めたルートをナビゲーションできる現状でほぼ唯一のアプリケーション OSS なため挙動が謎ならコード読めばいい安心感がある 普通のプロダクトだとカスタマイズできないことがカスタマイズできる安心感がある Google Maps で自転車ルートナビゲーションは辛い Google Maps は日ではそもそも自転車ルートを検索できないので、使うとしたら徒歩ルートとして検索するしかない。しかし徒歩ルートはかなり曲がりまくる道をルートされるため、実際のところ移動という点ではあまり実用的ではない。 そして自転車で走りやすいルートというのは、なかなか難しいものがあるので、基的に事前に調査をしてルートを決めてそのルート通りに走りたくなる。 Strava で事前に走行ルートを決める Strava はPC版にルート作成機能があり、他人のも含めた走行データをもとに

    OsmAnd で自転車ルートをターンバイターン・ルートナビゲーション | tech - 氾濫原
    cho45
    cho45 2015/06/18
  • CopyHook というペーストボードの中身をいじるツールを作った | tech - 氾濫原

    https://github.com/cho45/CopyHook ペーストボードにコピーが行われたときに、JavaScript で何かするというツールを書いた。 競合するソフトウェアがいくつかあると思うけど (dot-clipboard とか)、すぐできそうだし Swift で書かれたのはなさそうということで書いてみた。 ユースケースとしては Slack のチャット画面を適当にコピーしたのを、自動でフォーマットしてペーストしやすくする リッチテキストとしてコピーされるのがウザいので、プレーンテキストにしてしまう 画像を自動でグリッチする というのがあります。 つかいかた 起動するとアクセシビリティを有効にしろといわれるのでする 有効にしたらもう一度起動する。 コピーのイベントをキーイベントの Cmd+C を見ることで実現している (設定で変更可能) あとフォーカスされているアプリとかウィ

    cho45
    cho45 2015/03/18
  • 自宅をかっこいい作業環境にしたい | tech - 氾濫原

    自宅で使っているデスク Garage CL-147H というやつ (約24kg)。fantoni GT-147H というやつ (約34kg) のほうがかっこいいけど、高い。 天板の色が濃くて、丈夫なやつが安くほしかった。これはかなり満足してる。ウォールナットタイプは幕板がないので左右に揺れやすいみたいだけど、普段使いでは全く気にしたことはない 。 天板自体に鉄パイプで補強がしてあり、60kg まで耐荷重がある。最近のモニタは軽いのでまずギリギリになることはなさそう。ゆすろうとすれば揺れるが、キーボード叩きまくる程度ではほとんど揺れることはない。キーボードを叩いてモニタが揺れたりすると、案外かなりイライラしてくるので、机はできるだけ丈夫で重いのを買うほうが良いと感じる。 デスクの配置 窓に背を向ける形、部屋の中のほうを向いて座っている。こうするとモニタを隔てて狭いスペースに身体が押しこめられ

    自宅をかっこいい作業環境にしたい | tech - 氾濫原
    cho45
    cho45 2015/02/13
  • YAPC 初心者ほど YAPC にトーク応募すべき10の理由 - 氾濫原

    懇親会対策 基的にこういうイベントは懇親会が一番重要といってもいいぐらいだが、コミュ障だと懇親会とかで誰と何を話せばいいのかさっぱりわからなくなる。LT でもなんでもいいがトークをすると一定の人から認識され、トーク後や懇親会などで話しかけられやすくなる。逆に話かける側としても「あれおもしろいですね」と気軽に言いやすくていい。 また一応の話題を前もって作れるのでコミュニケーションしやすくなる。YAPC にきて「いやぁ今日はいい天気ですね」とか話はじめるわけにはいかないので、このような話題を持っておけるのは気が楽になる。 つまりコミュ障ほど応募すべき 強制的アウトプット 普段生活していると、アウトプットといってもブログになんちゃら書いて終わりがちか、あるいはそれ自体も忘れて日々バタバタ過ごしてしまう。何らかのイベントのタイミングにあわせてアウトプットを出すといいモチベーションになる。 それと

    cho45
    cho45 2014/06/17
    思うところを殴り書きしました
  • WebAudio FSK モデム | tech - 氾濫原

    前文 我々は、ブラウザの WebAudio サポートによって、空気をメディアに使う方法を手に入れた。これにより、またひとつクロスドメイン通信の方法が増えたといえよう。 知っている人は少ないと思うが、古代人は空気によって伝送できる程度の周波数を用いてデータ伝送を行っていたという記録が残っている。これは失われた暗黒の技術であって、現在ではもはや ITU という国連の機関によってその存在の記録が残されているのみである。 デモ 小さな画像を音声帯域を使って送受信する http://cho45.stfuawsc.com/WebAudio-Modem/FSK/modem.html 実際にマイク入力を使う場合、 http://cho45.stfuawsc.com/WebAudio-Modem/FSK/modem.html#mic マイク入力はやはり難しくて、周囲の環境によって波形が乱れるとうまくいかなか

    WebAudio FSK モデム | tech - 氾濫原
    cho45
    cho45 2014/03/27
  • アセンブリ (arm-linux-eabi) で富豪的にCGIブログ (blosxom) を作る。 | tech - 氾濫原

    前文 たとえ全く使ったことがない言語であっても、それがスクリプト言語であれば1日もかからない内容をアセンブリ言語で実装するということは、時間リソースを大変富豪的に使うプログラミングである。 レポジトリ https://github.com/cho45/blosxasm-arm-linux-eabi 仕様 あまり仕様が多いとつらいので絞りに絞り以下だけ実装することにした インデックスでのリスト表示 パーマリンクページ表示 制限事項など たどるディレクトリは1階層だけに制限 エントリファイルサイズには制限はない テンプレートファイルサイズは4KBまで ファイル数に制限はない テンプレートはhtml 1種類のみ (flavour 機能はない) プラグイン機能もない 設計 せっかくなので覚えたことを使おうと以下のようにしてある。大変メモリとシステムコールを富豪的に使う エントリのファイル名などを持

    アセンブリ (arm-linux-eabi) で富豪的にCGIブログ (blosxom) を作る。 | tech - 氾濫原
    cho45
    cho45 2014/03/23
  • ARM Linux EABI の asm で動的メモリ確保 | tech - 氾濫原

    asm で動的にメモリ取得をしたいと思っても、malloc は libc の関数であるので、libc 依存しないなら自分で書かねばらない。 ということで、動的なメモリ確保を書いてみる。malloc を書く、というと荷が重すぎるので、単にプロセスが確保するメモリを動的に増やしていく、という大変基礎的な部分だけをやってみる。 brk まず brk システムコールを試す。brk は program break の意味らしい。program break とはプログラムの data セクションの最後のことで、brk システムコールはこの data セクションの最後の位置を変更するというシステムコールになっている。これにより、プロセスにメモリを割りあてたり、OS に返したりできる。いわゆるヒープ領域というやつ。 program break の初期値 brk システムコールの引数は変更後の progra

    ARM Linux EABI の asm で動的メモリ確保 | tech - 氾濫原
    cho45
    cho45 2014/03/17
  • ARM Linux EABI の asm で簡単な ls を作る | tech - 氾濫原

    単に実行したディレクトリのファイル名を表示するだけのプログラムを asm で書いてみる。 普段全くディレクトリエントリの構造を意識しないけど、システムコールを直接呼ぼうと思うと意識せざるを得ない。 使うシステムコールは以下の通り open getdents close write (表示用) exit libc レベルだと opendir/closedir というふうにディレクトリ対象の open 操作は分かれているので、システムコールもそうなのかと思っていたけど、そうではなく普通の open/close で統一されている。ディレクトリ内容を読むには readdir というシステムコールもあるが、getdents が現代版らしいので、最初からこちらを使う。 getdents open/close はともかく、getdents の挙動を理解するのに苦労した。 struct linux_dir

    cho45
    cho45 2014/03/16
  • ngResource は何が便利なのか? | tech - 氾濫原

    ngResource は単にAPIのラッパーという感じではなくて、JS でサーバ側のモデルとうまく同期するように作られている。 最も簡単な例だと以下のように使うが、Entry.get は XHR が完了する前に、とりあえず空のオブジェクトが返るようになっており、XHR の完了とともに破壊的に書きかえられる。これにより、entry の変更がすぐ全体に伝わるようになっている。 var Entry = $resource('/entry/:id'); $scope.entry = Entry.get({ id : 0 }); デフォルトで定義されている query/get/save/delete だけを見ると単に REST API のラッパーのように見えるが、独自のメソッドを追加するとより理解しやすいコードを書ける。 以下のコードは、デフォルトで下書き状態で生成される Entry オブジェクトを

    cho45
    cho45 2014/03/15
  • Togetter でまとめられた Twitter ユーザーを一括でブロックするウェブサービス | tech - 氾濫原

    を作った。Togetter とかで「ああ、こういう話題に言及する人とは関わりあいたくないな」っていうことが時々あると思いますが、そういうときに使える便利なツールです。 http://block.lab.lowreal.net/ 余談 僕はホワイトリスト的な、つまり Twitter の場合プライベートアカウントだったりあるいは、そもそもフェイスブックだったり、というやりかたが好きではない。当然ホワイトリスト的なソーシャルネットワークのほうが安全ではあるが、新しい思いのよらなさ、というのがないのは詰らない。 しかし一方で、完全にオープンというのも全くよくない。表現をないがしろにするモヒカン的なゴミクズというのはそこらじゅうにいるし、一瞬でも隙を見せれば攻撃してくる人というのもいる。いろいろ面倒なことになるリスクだったり、思いもよらず傷つくリスクのほうが、思いもよらず良いことがある、というメリッ

    cho45
    cho45 2014/03/10
  • Raspberry Pi で bare metal している blinker05 の ARM ブートコードを読む | tech - 氾濫原

    Raspberry Pi で bare metal をやっているこのコードを読んで理解したいと思います。README に殆ど書いてありますが、ちょっとよくわからないところがあったのでさらに詳しくしてみます。 https://github.com/dwelch67/raspberrypi/blob/master/blinker05/vectors.s 前提として、ld スクリプト の通り、このプログラムの冒頭は 0x8000 からはじまっています。 割込みハンドラの実行 まず _start の最初には割込みハンドラの定義が書いてあります。 _start: ldr pc,reset_handler ldr pc,undefined_handler ldr pc,swi_handler ldr pc,prefetch_handler ldr pc,data_handler ldr pc,unus

    cho45
    cho45 2014/02/28
  • perl 5.19.9 の signatures 構文に引数リストをとれる機能を足す | tech - 氾濫原

    [tech] perl 5.19.9 の signatures 構文 (普通に引数を書ける構文) を試す | Mon, Feb 24. 2014 - 氾濫原 で「ただ引数の名前とかは外からとることができない。せっかく構文に組込まれたのなら、とれてもよさそうだなと思った」と書いたので、すこしだけ実装を書いてみた。 blead perl ecb4de39577c95734821743685366f6fe7f59a2d へのパッチです。

    cho45
    cho45 2014/02/25
  • Ruby でスコープをはずれたときに自動で何かをする | tech - 氾濫原

    Guard オブジェクト Perl だと Guard オブジェクトとかいうハックがあって、スコープを出るタイミングで必ず呼ばれるファイナライザを使って、あるスコープでだけ有効な処理を書けたりします。 例えば、DB のトランザクションや、あるいは以下のように依存するプロセスをあるスコープでだけ起動して終了するような用途で使われています。 { my $guard = Proc::Guard->new(command => [ "memcached", "-p", "12321" ]); # do something ... }; # memcached has been killed 適当なメソッドにブロック(サブルーチン)を渡せばええやん、という気もしますし、実際 Ruby の transaction の場合そういう感じになります (Perl でももちろん同じようなサブルーチンを書くことはで

    cho45
    cho45 2014/02/20
    Ruby よくわかりません
  • プログラムが書けない人に「仕様変更」について説明するには | tech - 氾濫原

    「仕様変更」という言葉はプログラム書く人じゃないと、そのイメージが掴めないと思う。イメージが掴めない人に対してそれを説明するとしたら何がいいだろう? と思った。 とりあえず、料理に例えたらいいのではないかと思ったので、それに例えて考えてみる。 仕様とはレシピのことであり、最終的には具体的に「べることができる美味しい料理」すなわち「うまく動くプログラム」を作ることを目的としている。 仕様というのは、最初は「イタリア料理」「日料理」「中華料理」程度しか示されない。当然この時点では方針程度しか考えることができない。材を買うこともできない。せいぜい使う調味料を揃えるぐらいしかできない。 もう少し進むと、料理名まで具体化される。スパゲティを作りましょうとか、ピザを作りましょうとかだ。とりあえずここまできたら小麦粉を買おうとかまではできるかもしれない。でも実際に作りはじめることはできない。 さら

    cho45
    cho45 2013/03/01