Yoichi's diary


2014-11-01

_ 床屋

息子と二人で床屋へ。そういえば今回は櫛を貰わなかった。(私は丸刈りなので貰えないけど、息子の方も貰ってなかった)


2014-11-02

_ 近鉄電車まつり

五位堂車庫へ。マルタイの実演を見た。枕木ごとに前に進むのは自動なのかと思い聞いてみたら、手動でやっているとのこと。大変だ。

途中から雨が降ってきて、一番雨が強いと思われるときに駅に向かってしまいびしょ濡れに。また、家の近くの駅についたらバスが目の前で出発してしまったので家まで歩くハメに。その頃は雨は上がっていたが濡れた服に風があたって寒かった。


2014-11-03

_ 安倍文殊院

残念なことに国宝5像のうち2像が出張中とのこと。善財童子像見たかったのに。獅子のどーんって迫力はすごかったが。


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-06

_ うっかりせず

今日は忘れ物しなかった。


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

_ [work] 書き書き

先月から一開発者に戻りました。ほぼ2年のブランクがあるのでいろいろ勉強し直しながら過ごしてます。


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-11

_ [python] checkio

"Run & Check" したらテストで弾かれて、問題の意図を読み違えていたということが多いが、ちょっと違う問題をいくつも解く経験を得られていると前向きに考えるようにしてる。

本来は問題ちゃんと読もうよって話だが。


2014-11-12

_ カレーの日

晩御飯のカレーを食べ終わってひと休みしてるとき、そういえば昼ごはんカレーうどんだったなと思い出した。


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-16

_ 日曜参観

音楽の授業の後、親子で協力して割り箸を使っておもちゃづくりをしました。

_ 太子温泉

生駒から信貴へドライブして、太子温泉につかって帰ってきました。

鐘の鳴る展望台と駐車場の間でどんぐり拾いをしました。


2014-11-17

_ USJ

息子が日曜参観の振替休暇だったので、有給取ってUSJに行きました。

朝は渋滞に巻き込まれてスタートがやや遅れたけど、夜までしっかり楽しんで、パレードも見てから帰ってきました。つかれたけど楽しかった。


2014-11-18

_ 高倉健さん死去

仕事中にニュースが流れて思わず声を上げてしまった。

_ [book] 行方不明の本

会社になかったので家のどこかにあると思うのだが、見当たらない。

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-20

_ 風邪ひいた

お休み。

_ [emacs] isearch in minibuffer

久しぶりにemacsを使ったら minibuf-isearch 入れてなくても minibuffer で C-r が効くようになっていた。


2014-11-21

_ [mac] spotlight vs emacs

Ctrl + spaceの件についてはひとまずSpotlightをOption+rに退避させてみた。これでしばらく様子見。

_ [python] checkio

泥臭く解く場合が多いものの、level 13 になりました。

_ 飲み会

元同僚を囲んだ。


2014-11-22

_ もみじ山

兵庫県・宍粟市(しそうし)の最上山公園 もみじ山へ。

名の通りもみじがいっぱいでした。


2014-11-23

_ 138タワーパーク

イルミネーション鑑賞を目的になばなの里に向かったが、渋滞で辿り着ける気がしなかったので行き先変更して一宮へ。以前行ったアクア・トトぎふの近くでしたが、全然車も走ってないし道間違っているのかと思いつつ暗闇を超えて公園に入って行くと、きれいなイルミネーションが迎えてくれました。


2014-11-24

_ 早起き散歩

早く目が覚めたので家から暗峠までお散歩。

お散歩の域を超えている坂道にて、重力(贅肉の重み)を感じました。


2014-11-25

_ [fpinscala] Chap 5 scanRight solution appears to calculate partial values multiple times

前に書いてた話の対処のPRが出ている。試したら確かに問題解消していた。lazy valを使うことで一度だけ評価されることを保証できるようだ。

_ 筋肉痛

昨日の登山散歩のせいか太ももとお尻の筋肉が痛い。


2014-11-26

_ [windows] Clover

Explorerをついつい開きすぎてつらい状況になっていたので入れてみた。

Win+e でウィンドウを前面に出した上でタブを開いてくれるため、そこで一覧が目にはいるので開きすぎを抑止してくれてよい感じ。


2014-11-27

_ [windows] コントロールパネルの開き方

control.exe が実行ファイルなので、Win+r control RET でいいことを知った。

これまでは Win で検索窓開いて、contr あたりまで打ったところで英語版 Windows じゃないやと気付き、backspace で消した上で日本語入力にして コントロ として出てきた検索結果から起動という非効率なことをしていた。


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 を探してやればいいと思うが、ぱっとわからなかったので先送りにしてる。