Yoichi's diary
2014-11-02
_ 近鉄電車まつり
五位堂車庫へ。マルタイの実演を見た。枕木ごとに前に進むのは自動なのかと思い聞いてみたら、手動でやっているとのこと。大変だ。
途中から雨が降ってきて、一番雨が強いと思われるときに駅に向かってしまいびしょ濡れに。また、家の近くの駅についたらバスが目の前で出発してしまったので家まで歩くハメに。その頃は雨は上がっていたが濡れた服に風があたって寒かった。
2014-11-04
_ [Haskell] Fixing foldl, Tue, 01 Apr 2014 10:38:20 GMT, by duncan
日付に注意だが、興味深い文書。 結果が違ってくる話として last が例として出されているが、絶妙である。 Prelude を眺めてみたらreverseがfoldlで定義されている。reverse = foldl (flip (:)) []が、これをfoldl'で定義したとしても、foldl と foldl' の違いは引数のリストの要素が評価されるかどうかに効かないので面白くない。
ghci> import Data.List ghci> let reverse' = foldl' (flip (:)) [] ghci> length $ reverse' [undefined, undefined] 2
_ 健康診断(人間ドック)ふりかえり
- KEEP
- 採血で倒れなかった
- 採血が痛くなかった
- バリウムは香料なしで
- PROBLEM
- 午後休取らなかった
- またもや脂肪肝
- TRY
- 脂っこいものは控えめに
- ウォーキングを継続
2014-11-05
_ [svn] Subversion update externals to a date
Subversion でリビジョン指定なしのexternalsがあるときに、特定の日付のものを取り出す方法。externals経由でチェックアウトされたディレクトリには .svn があるのでそれを探して svn up すればよいとのこと。例:find . -name .svn -execdir svn update -r {2013-12-25} \;まつびのセミコロンは find のオプション execdir の書式の一部。
2014-11-07
_ [python] Requests: HTTP for Humans
今どきは urllib2 じゃなくてこれらしい。ちょっとだけ試した。urllib2で404のレスポンスを取る例:
#!/usr/bin/env python import urllib2 try: response = urllib2.urlopen('http://geiin.org/none.html') html = response.read() except urllib2.HTTPError, error: html = error.read() print(html)requestsで404で例外スローする例:
#!/usr/bin/env python3 import requests response = requests.get('http://geiin.org/none.html') html = response.text print(html) print(response.status_code) response.raise_for_status()
_ [C++] キャスト
Cの気分で居てはまってしまった。インタフェースのポインタを受け渡ししているつもりが、メソッド呼び出し時にクラッシュしてしまい、呼び出し規約の不一致かと思ったがハズレで、Cの関数ポインタの受け渡しに変更して回避した後で後輩に答えを教えてもらった。聞いてみればなるほどと理解できたのだけど、まだまだ未熟である。% clang++ --version Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn) Target: x86_64-apple-darwin14.0.0 Thread model: posix % cat cplusplus_class.cpp #include <stdio.h> class A { public: virtual void procA() = 0; }; class B { public: virtual void procB() = 0; }; class C : public A, public B { public: void procA() {} void procB() {} }; int main() { C c; printf("%p,%p,%p\n", &c, (A*)&c, (B*)&c); return 0; } % clang++ cplusplus_class.cpp % ./a.out 0x7fff5e51ea38,0x7fff5e51ea38,0x7fff5e51ea40
2014-11-08
_ サイゼリアの間違い探し
「いろいろなグループを組み合わせてバランス良く食べよう!」の巻。初回で9個はみつけており、最後の1つをみつけられないまま数ヶ月が過ぎていたが、ついにみつけました!
2014-11-09
_ [math] 矛盾
蟹江さんの「なぜか惹かれるふしぎな数学」より、フィボナッチが出したとされる問題金貨の山を前にして、3人の男が全体の1/2、1/3、1/6を取って、残りがないようにした。 そして第1の男は手持ちの1/2を返し、第2の男も1/3を返し、第3の男も同様に1/6を返し、 その後、返した金貨を三等分して受け取った。その時、3人とも最初に受け取った金貨の枚数に等しくなったという。 このようなことが起こる最小の金貨の枚数(3人の財産の総数)はいくつか?その時、積み上げた山からそれぞれ何枚ずつ取ったか?について、そもそも問題が書き間違っている(か、私の読解が根本で間違っている)のではないかと思っている。 全数をsとすると、s/2, s/3, s/6 が3人の最初の取り分で、3人から返されたのが s/4 + s/9 + s/36 = 7s/18 、それを三等分して 7s/54 ずつ受け取って、最初の取り分と同じになったということなので、
s/2 = s/4 + 7s/54 s/3 = 2s/9 + 7s/54 s/6 = 5s/36 + 7s/54で0しか解はなさそうに思う。問題の読み間違いの可能性を考えて何度か読みなおしたけど、わからない。 数日立ち止まってしまったが、先が気になるのでひとまず置いといて読み進めよう。
2014-11-10
_ GPS発信機
昼休みに携帯がないのに気づいた。昨日どっかに忘れたかなとAndroidデバイスマネージャーで確認したら行ってない場所だった。妻にメールしたら、車の中に忘れていたとのお返事。これ、わざと置き忘れておいたら居場所がわかってしまうという話だな。ちょっとこわい。
2014-11-13
_ Microsoftが「.NET」をオープンソース化&クロスプラットフォーム化、さらに無料版「Visual Studio Community 2013」も公開
面白くなってきた。MicrosoftのCEO、サティヤ・ナデラ、Apple、Googleと比較して自社の本質を的確に指摘 に、「プラットフォームのプロバイダー、ツールのプロバイダーであることこそ、Microsoftの根本的なアイデンティティなのだ。」とあるが、先日 Windows Store App で winsock が使えるようになった(WinSock and more Open Source for your Windows Store apps)のも今思えばその流れの中の話だったのだと認識した。
Windows 8 が発表された時、winsock 使えない中で、これ誰得だよと思いつつ、力技で DLNA/DTCP-IP クライアントを Store App に移植した思い出がありますが、開発者が製品の価値の向上に集中できるようプラットフォーム 提供してくれる方向になってきたということで、いい方向になってきたなと。
2014-11-15
_ 千里中央
ぐんまちゃん(二代目)が居ました。
_ 彩都西
彩都バイオインキュベーション施設、日本赤十字近畿ブロック血液センター、医薬基盤研究所の一般公開に行ってきました。
寝坊して行くのが遅かったので、もらえるものがいろいろ無くなっていた。早起きしていくべきでした。
2014-11-17
_ USJ
息子が日曜参観の振替休暇だったので、有給取ってUSJに行きました。
朝は渋滞に巻き込まれてスタートがやや遅れたけど、夜までしっかり楽しんで、パレードも見てから帰ってきました。つかれたけど楽しかった。
2014-11-18
2014-11-19
_ [Haskell] すごいHaskell読書会 in 大阪 2週目 #11
演習問題大会。ghci> uniq [1, 2, 1, 7, 6, 2, 4, 8] [1,2,7,6,4,8]をつくろうとして
uniq :: Eq a => [a] -> [a] uniq [] = [] uniq (x:xs) | x `elem` xs = uniq xs | otherwise = x : uniq xs {- ghci> uniq [1, 2, 1, 7, 6, 2, 4, 8] [1,7,6,2,4,8] -}としたら順番が違う(後ろのがのこる)ので悩んだが、ヒントもらって帰ってから解いた。
import qualified Data.List as L uniq :: Eq a => [a] -> [a] uniq = L.foldl' (\acc x -> if x `notElem` acc then acc ++ [x] else acc) []
2014-11-23
_ 138タワーパーク
イルミネーション鑑賞を目的になばなの里に向かったが、渋滞で辿り着ける気がしなかったので行き先変更して一宮へ。以前行ったアクア・トトぎふの近くでしたが、全然車も走ってないし道間違っているのかと思いつつ暗闇を超えて公園に入って行くと、きれいなイルミネーションが迎えてくれました。
2014-11-25
_ [fpinscala] Chap 5 scanRight solution appears to calculate partial values multiple times
前に書いてた話の対処のPRが出ている。試したら確かに問題解消していた。lazy valを使うことで一度だけ評価されることを保証できるようだ。_ 筋肉痛
昨日の登山散歩のせいか太ももとお尻の筋肉が痛い。
2014-11-28
_ [DevKan] エンジニア×営業
協力してお客様に価値を届けるために、エンジニアとして営業に何をしてあげたらいいのか?という課題を持って参加したが、課題設定がそもそもよくなかったことに気付かされた。いい意味で想定を裏切られた。
エンジニアと営業は、やるべきこと、評価されるポイントが異なるという意味では別の方向を向いているが、営業はエンジニアのことを、エンジニアは営業のことを知って、互いを補完しあうことで、お客様に価値を提案、提供していくという同じ目的に向かうことができるという認識をした。そういう意味では表題の x はベクトルの外積なのかなと。
だから、それぞれがそれぞれのことを尊重しつつ、協力して同じ目的を目指すために、まずはお互いのことを知ることが大事で、雑談も含めてコミュニケーションを取るべきだということを感じた。
あと、うちの会社の場合、営業と拠点が離れていて、なかなか話をする機会がないことを相談したところ、Skype飲み会とか、チャットツールを活用した非同期コミュニケーションとかやってみるといいかもというアドバイスをいただいた。
2014-11-29
_ Lightweight memory leak debugging on linux
メモリリークの検出において、Windowsのumdhはとても強力ですが、Linuxで同様のことができないかということで、preload libraryを書いてみたという話。後で見てみる。
_ なばなの里
先週は渋滞で断念したのでリベンジ。今回は早めに行ってジャズドリームでお買い物して夕方まで過ごした後でシャトルバスで向かった。イルミネーション見て、過去2回分の金券が残っていたのを無事に使いきりました。
2014-11-30
_ [windows] LFH on Windows 8.1
An overview of the LFH, Bruno Pujos にあるように、Windows 8.1 では_HEAP_USERDATA_OFFSETSがエンコードされており、EncodedOffsets ˆ UserBlocks ˆ LFH ˆ RtlpLFHKeyとするとFirstAllocationOffsetとBlockStrideが 取れた。 wow64 dump の場合には RtlpLFHKey を取るには 32bit の ntdll を探してやればいいと思うが、ぱっとわからなかったので先送りにしてる。