• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

下図のような感じのディスプレイ作ろうとしてる人いないですかね。

FiberSweepDisplay.png

撮像用途では光ファイバスキャナの研究を見かけたのですが。

ディスプレイでも行けそうですよね

posted by genki genki on Tue 21 Mar 2017 at 16:00 with 1 comment

Xの原因だと思っていたものが、実はXの結果であった、という事は結構ありますね。前後即因果の誤謬に近いかな。虚偽の原因の誤謬の一種ですね。

posted by genki genki on Fri 3 Jun 2016 at 14:20 with 0 comments

Though currently I am prefer to use CofferScript than Swift, I have thought that the defer of Swift2 is pretty cool. So I wrote a snippet that accomplishes the feature by using yield as like the manner of co is doing.

ruby>>
defer = (g) ->
deferred = []
go = (i) ->
{value,done} = do i.next
unless done
deferred.push value
go i
exit = ->
do f for f in deferred
process.removeListener 'exit', exit
process.on 'exit', exit
try go do g
catch then do exit

foo = (type) -> defer ->
console.log "#{type} 1"
yield -> console.log "#{type} deferred 1!"
yield -> console.log "#{type} deferred 2!"
console.log "#{type} 2"
if type == "exit" then do process.exit
else throw "throw"
console.log "3"

foo "throw"
foo "exit"

RESULTS

throw 1

throw 2

throw deferred 1!

throw deferred 2!

exit 1

exit 2

exit deferred 1!

exit deferred 2!

<<--

posted by genki genki on Sat 10 Oct 2015 at 00:25 with 0 comments

ということで、適当なセカンダリで重複を探して予め削除する必要が。
aggregateで探す例)
ruby>>
aggregate([
{:$group => {_id: {user_id:"$user_id", date:"$date"},
uniqueIds: {:$addToSet => "$_id"}, count:{:$sum => 1}}},
{:$match => {count: {:$gt => 1}}}],
allowDiskUse: true)
<<--

posted by genki genki on Fri 22 May 2015 at 02:26 with 0 comments

WiredTigerが非常に素晴らしいのですが、設定ファイルが

  1. /etc/mongod.conf
  2. /var/lib/mongodb/WiredTiger.basecfg
  3. /var/lib/mongodb/WiredTiger.config

のように沢山あって結構ややこしいです。

基本的には 1. はmongodbの初回起動時だけ有効で、3. が次回以降の再起動で反映されるものになります。
さらに、mongodbを動かしたままWiredTigerの設定だけ変更したい場合は、
mongoのコンソールから

js>>
db.adminCommand({setParameter:1, wiredTigerEngineRuntimeConfig:"c
ache_size=8G"})
<<--

のように修正できるようです。パラメータ名は 2. のファイルの中身が参考になります。
これによって内部的にはWT_CONNECTION::reconfigureが実行される模様。

修正したら、次回来起動した場合に備えて 3. も書き換えておくと良いでしょう。

posted by genki genki on Wed 13 May 2015 at 03:33 with 0 comments

たびたび見失ってGoogleで探すのに苦労するので道標的に。

posted by genki genki on Fri 8 May 2015 at 21:38 with 0 comments

二人前の分量です。

  • スペルト小麦(farro)80g セミペルラート(半精麦)
  • にんにく一片
  • 鶏もも肉150g (皮、脂肪を除いた重さ)
  • 白ワイン(辛口)100cc
  • オリーブオイル 25g (エクストラバージン)
  • ローリエの葉1枚
  • 固形ブイヨン1/2
  • 厚切りベーコン50g
  • パルミジャーノチーズ 10g
  • バター 10g
  • タイム一振り
  • エシャロット 1本
  • 人参1/3ぐらい
  • 塩コショウ 適量

手順

  1. スペルト小麦を冷たい水に浸して30分放置し、ザルなどで水を切って流水で洗う。鍋に1リットルの水を入れ、スペルト小麦、にんにく、ローリエを入れて沸騰させ、とろ火にして45分ほど煮込む。

  2. 鶏もも肉の皮と脂肪を取り除き、人参とともに1cm角ほどのサイコロ状に切る。エシャロットはみじん切りにする。

  3. 煮込み終わったスペルト小麦をザルなどで水切りし、ボールに移してオリーブオイルを加えて混ぜ、冷ます。

  4. ベーコンを棒状に切り、フライパンで油が出るまで過熱し、鶏肉、人参、エシャロットを加えて4分間ほど中火で過熱する(人参にしっかり火を通す)

  5. 白ワインを加えて沸騰させ、ブイヨン、塩、スペルト小麦を加えて手早くかき混ぜる。

  6. フライパンに蓋をしてとろ火で5〜10分ほど煮詰める。

  7. バター、パルミジャーノチーズを削り入れ、リゾット状になるように混ぜる

  8. タイムを一振り、塩、胡椒で味を整える。

  9. 皿に盛りつけて完成

posted by genki genki on Sun 26 Apr 2015 at 02:42 with 0 comments

そろそろDroongaをちゃんと使ってみようと思ってますが、
開きっぱなしのブラウザのタブを削減するために書き出しておきます。

posted by genki genki on Wed 30 Jul 2014 at 17:34 with 0 comments

ライブラリの内部から素のRuntimeErrorが飛んでくると対処に困りますね。
適当な例外クラスを用意してほしいものですが、とりあえず以下のような関数を定義することで、特定のメッセージの場合だけrescueできます。

ruby>>
def RuntimeError(message)
($!.is_a?(RuntimeError) and $!.message == message) ? RuntimeError : Class
end

begin

do something

rescue RuntimeError('connection closed by server') => e

...

end
<<--

posted by genki genki on Tue 29 Jul 2014 at 10:58 with 0 comments

jQueryで append すると、追加したDOM中のscript タグが実行されます。

js>>
$('#target').append(what);
<<--

script タグを実行せずに append したい場合、あらかじめ
script タグを取り除いておけば ok

js>>
what.find('script').remove();
$('#target').append(what);
<<--

posted by genki genki on Sun 6 Jul 2014 at 18:05 with 0 comments