ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

そして月日は経ち…

今年は色々と身の回りのことが変わっています。

職場が変わりました。

転職して椅子も座り慣れないうちにオフィスが引っ越しました。はやい。もともと間借りしていたこともあって、少しお客様感がありましたが、今は1フロアまるまる借りているのでわりかし伸び伸びやれています。

仕事が増えました。

今は少し肩代わりしてくれている人がいますが…色々あって、今の案件でフルタイムで現場に張り付いていている社員が私だけになってしまったので、色々増えています。関わっている人はたくさんいますが、私は手の届く範囲で他の人の進捗を聞いたり、青果物を見たりしている立場になりつつあります。わりかししんどい。

医療費辛い。

なお順調に医療費控除がつくコースを辿っている模様。
何でかかってるかは本人に聞くかお察しください。最近だと


とか。

貯金始めました。

小銭を貯金箱に入れるようにしています。どっちかというとお金を貯めるためというよりは、みみっちい小金を使わないようにするためにやっています。
その日家計簿をつけたら小銭をシュートしていると、100円使おうが1000使おうが気分としてはそんなに変わらなくなってくるので、なるべく単価を大きくしようとなるわけです。実際無駄な買い物がなくなったような気がします。今年は何かとお金がかかるので、ある程度お金の流れを見ておかないと絶対詰みそうですしね。

頭がいっぱいいっぱい

実はここ数年、年に1度くらいの割で人目をはばからず大泣きしています。

2015年は今日でした。文字に疲れて眠くなるまで泣かされたのはたぶん初めてですね。
今も頭がいっぱいいっぱいになってて、どっと疲れが来ています。

なんだろう…思っていたよりもいい方向に違う言葉が返ってきたので、尚更でした。
どうしてもさけては通れない相手のひとりだったので、素直にうれしかったです。

LINQ to Entitiesではまったところとか

今の会社とは違うとある案件でEntityFrameworkを使っているのですが、なぜかやたら遅くて、原因がわからずじまいでした。
今日はその原因と、そのほかはまりどころがわかったのでメモです。

発行されているクエリを確認する

これができないことには原因の調べようがありません。
とりあえずデバッグログに放流するには

using(var context = new DbContext())
{
    context.Database.Log = Debug;
}

という感じでDebugクラスを渡しておくとできます。

クエリが実行されると

Opened connection at 2015/03/03 20:20:38 +09:00
SELECT 
....

-- p__linq__0: '*******' (Type = String, Size = 4000)
-- Executing at 2015/03/03 20:20:38 +09:00
-- Completed in 52 ms with result: SqlDataReader

Closed connection at 2015/03/03 20:20:38 +09:00

といった風に

  • 接続した時刻
  • 発行されたクエリ
  • 変数(あれば)
  • クエリを実行した時刻
  • クエリのコンパイルに要した時間
  • 接続を閉じた時刻

が出力されるようになります。

今回ミスってた原因

ちなみに今回の原因はプロパティのgetterにそれ書いていたことのようです。
外部キーとかなかったので、せめてそんな感じでアクセスできたらなーというほんの出来心でした。

これにより、プロパティの思った通りのクエリが構築されておらず、getterの部分に書いてあった最低限の制約条件でSQLのクエリが発行されてしまい、その結果大量のレコードがやりとりされ、それらがメモリによっこいしょと載せられて、ごりごりとリソースを消費しながら計算・集計されていた、というわけです。
その辺に気を付けながらクエリ式を修正しつつちゃんとSQLコンパイルされるようにすると、3分かかってた処理が3秒になりました。メモリも数GB使っていたものが数十MBまで減りました。

あれが使いたいこれが使いたい

IN

`.List.Contains(T)` などを使ったときにコンパイルされるようです。私はToArrayやToList噛ませて使ってます。

LIKE '%hoge'

`String.StartWith(string)` や `String.EndWith(string)`

が使えます。 `String.Contains(string)` の場合、最初と最後に「/」を書くとそれが「%」になるようです。

MiN、MAX、COUNT

LINQのMin, Max, Countでどうぞ。

Left関数

今日初めて知ったのですが、渡した文字列の左から、指定した文字数だけの文字列を返すという関数です。
これをEntitieFrameworkで使うには、 `System.Data.Entity.DbFunctions.Left(string, left?)` を使います。

しばらくは内省的な記事が続きます。

今まで抱えていたわだかまりに自分なりの結論がついて、そこで背中をぽんと押されたのがここ最近のハイライトです。
そんなところで、今まであんまり考えたくなかった、「私はどんな人なの?」という問いにすごく答えたくなってきました。私の中ではとっくの昔に答えは出ていたのですが、それを認めて受け入れて、覚悟を決めるのに少しばかり時間がかかってしまった感じはします。
実のところ、そのしっぽは結構な人に見えていたっていうのを最近になって知ったわけですが。
どんなしっぽが見えていたのかは、もう少し後になってから、私の中で区切りがついた時にお知らせします。察しがついている方も、もうしばらく口に出すのは控えていただきたく思います。
人によっては認めて受け入れるまでにすごく時間がかかると思うし、どうしても受け入れられないってこともあると思うので。

今年のテーマは「仲間を増やす」「変わっていくこと」

今年の目標というかテーマはこれです。

仲間を増やす

去年の11月ごろ、前職の社長が次の目標にと私にくれたことばです。
その方が思うところとは少し違った意味でかもしれませんが、私の中では今年のテーマのになっています。あることを伝えて回っているのと関係が無きにしも非ず。
今まで人のことを頼るというのがなかなかできなかったというのは折に触れていっていますが、やっぱり今も難しいです。
でもそれって、ある意味人を信じていないってことだと思う、っていうことばを聞いたので、うまく人を信じられるように、仲間を増やしていけるようになっていきたいなって思っています。

変わっていくこと

あることと関わって、今年はわかりやすい変化が起きると思います。とくに私の身近にいる方や、私と長い付き合いのある方には。そうでない方は、ちょっと雰囲気が変わるくらいかもしれません。

「あること」が何か、すでに何人かには伝えてあるのですが、私の中で区切りがつくまでは内緒にしておきます。

おひさしぶりです。

ながいことほったからしてますが、その間に私もいろいろありました。
やっと落ち着いたかなと思います。

踊ってみた始めました

代々木ハレオフという、代々木公園で毎月開催される踊ってみたオフに顔を出すようになりまた。デング熱による代々木公園の封鎖が解かれたあとにあった回から参加しています。例の赤いロングスカートはここでもいいアイコンになっている模様('ω')

退職しました

12月31日付で退職しました。どんどん息が苦しくなって、ついに解散、という感じです。こういう私でも受け入れてくれる自由は、今の会社にあるのでしょうか…そんな気がします。詳しいことは後ほど。

誕生日がきました

今年はたくさんプレゼントをいただきました。送っていただいた皆さん、ありがとうございます。今年は本やボードゲームはもちろん、スカートやアクセサリーがいただけのはうれしかったですね。末永く読んだり遊んだり、身につけたりしていけたらなと思います(*‘ω‘ *)

再就職しました

2月から再就職です。ただし、現在は1月の末から請けている案件の対応をまずってしまって、発注先の会社に出向しています。今日でほぼかたをつけました。

LTしました

気心知れない人の前でLTやるのは久しぶりです。技術系のLT大会みたいな感じでしたが、今回は誰かと会って話をすることについてのお話をしました。ここ数週間思ったことや考えたことをもとにしてやったので、割といい感じに話ができたように思います。

いろいろな人に会って同じ話をしています

今までで「普段の」私にあったことのある人に、あることを話していまます。察しのつく人は察しがつくかなと思いますが…いろんな人がそのことについてどう思っているのか、これから私がどうしたいのか、ちゃんと整理できたいい機会だと思いました。しかし隠してたつもりだったけれどもあんまり隠せてないもんですね。
そうでない人は、ほぼほぼこれまでどおりのお付き合いになると思います。これからもよろしくお願いします。

Pendual稼働しましたね

選曲画面に日付と時間が表示されているのが新しいと思いました。
今回のビジュアルは割と好みです。SPADAも良かったけど今回の方が雰囲気は好きですね。
なお、いろいろリセットされたので初回プレーは死にかけました。