今年の仕訳

前提

やること

  • 普段の出費を自動で記録されるようにクレカもしくは電子マネーを使う
    • 電子マネーの利用履歴は内容の詳細がわからないことが多いので極力クレカ
    • スタバみたいに専用のカードがあると突合が楽でいい
    • 自分のビジネス口座はジャパンネット銀行なのだがここはカードにVISAデビットがあるので、実際はクレカではなくこれを使っている
      • 即時に引き落としがされるので、クレカのように未払金を経由しなくていいので仕訳が楽
  • カバンに常時封筒を入れておいて仕事に関わってそうなレシートは常に入れておく
  • 月末になったら封筒を入れかえる
  • MoneyForward確定申告で1ヶ月分の仕訳をレシートと突合せながら行う
    • レシートが見付からなければその項目の仕訳は保留(年末までに見付かれば計上するし、見つからなければ諦める)
  • 終わったら封筒を封印

レシートを分類するみたいな話を聞いたとがあるけど、1ヶ月単位に纏まってたらそれも必要ないかなーと思い今年はこのやり方で言ってみようと思う。
すでに1月2月分の締めは完了しました。

MySQLのgenerated columnを使ってOR検索を潰す

製品に販売期間設定がある場合に、販売可能なものを探すのに↓のようなクエリが発行されるとする
(valid_from と valid_to が null の場合は、期間の設定が特に設定されておらず期限のチェックが不要という意味)

SELECT
    *
FROM
    products
WHERE (valid_from < '2018-12-26'
    OR valid_from IS NULL)
AND (valid_to > '2018-12-26'
    OR valid_to IS NULL)

このとき valid_from と valid_to の複合インデックスがあっても、or検索があるため上手く使ってもらえない(と思う)
このorを消す方法を考える

valid_from、valid_to に NOT NULL制約をつけそれぞれに日付の最小値、最大値を入れることができればこの問題は解決できるが、既存のテーブルに値を追加していくのはDBでの対応以外にもアプリケーション側での対応も必要になる場合があり、すぐに対応ができないことがある。

そこで今回はgenerated columnを使う方法を試みる。

ALTER TABLE products ADD filled_valid_from datetime AS IFNULL(valid_from, '1000-01-01 00:00:00')
ALTER TABLE products ADD filled_valid_to datetime AS IFNULL(valid_to, '9999-12-31 23:59:59')

↑のクエリを投げると、AS 移行の計算結果が filled_hogehoge の中に入ることになる。これによりNULLがない日付型のカラムが利用できることになる。

SELECT
    *
FROM
    products
WHERE filled_valid_from < '2018-12-26' AND filled_valid_to > '2018-12-26'

というわけで↑のように OR 〜 IS NULL を消すことができた。

あとは↓のようにインデックスを貼ればよい。

ALTER TABLE products ADD INDEX idx_filled_valid_dates(filled_valid_from, filled_valid_to)

(ただこの例だと filled_valid_to が使われることはない?かもしれない)


やはりnull許容のカラムは悪い文明!!
粉砕する!!!


初稿時、不等号の向きとかがおかしかったので修正しました…

2018年に買いはじめたコミック/ライトノベル

表題の通り去年2018年に1巻を買いはじめたりまとめがいをしたシリーズなどをだらだらと列挙していく

バーナード嬢曰く。

バーナード嬢曰く。: 1 (REXコミックス)

Twitterとかでコマが引用されてるのはよく見てセールかなにかで購入。
読んだ直後は小説とかが読みたくなる。

我らひとしくギャルゲヒロイン

我らひとしくギャルゲヒロイン (角川コミックス・エース)

自分たちがギャルゲのヒロインだと自覚したキャラのマンガ。
メタい突っ込みがウケる。

ゆるキャン△

ゆるキャン△ 1巻 (まんがタイムKRコミックス)

アニメを見て全巻購入。
キャンプに行ってみたい。

ロッキンユー!!!

ロッキンユー!!! 1 (ジャンプコミックスDIGITAL)

ロックいいよね

スピリットサークル(完結)

スピリットサークル (1) (ヤングキングコミックス)

惑星のさみだれでも思ったけど水上さん最高すぎる

彼方のアストラ(完結)

彼方のアストラ 1 (ジャンプコミックスDIGITAL)

rebuild.fmをキッカケに全巻購入。
ネタバレを見てしまう前にぜひ読んで欲しい。

もやしもん(完結)

もやしもん(1) (イブニングコミックス)

読んでなかったのでまとめ買い。
いろいろ勉強になった。

宇崎ちゃんは遊びたい!

宇崎ちゃんは遊びたい! 1 (ドラゴンコミックスエイジ)

デカい

将来的に死んでくれ

将来的に死んでくれ(1) (週刊少年マガジンコミックス)

これを勧めたらタイトルがひっかかって凍結されたアカウントがあったとかで知った漫画。
菱川のテンションの高さがおもしろい。

五等分の花嫁

五等分の花嫁(1) (週刊少年マガジンコミックス)

一、三派。 アニメ楽しみ。

THE IDOLM@STER CINDERELLA GIRLS After20

THE IDOLM@STER CINDERELLA GIRLS After20(1) (サイコミ)

U149もそうだけどデレマスの世界観が広がってよい。
ウチの担当も何らかの形で出て欲しい。

ブルーピリオド

ブルーピリオド(1) (アフタヌーンコミックス)

美術をテーマにこんな熱い漫画が出来るのか!って衝撃。
続巻がめちゃくちゃ楽しみ。

佐伯さんは眠ってる

佐伯さんは眠ってる(1) (少年マガジンエッジコミックス)

惰眠にまっすぐな佐伯さんかわいい。

ぼくたちは勉強ができない

ぼくたちは勉強ができない 1 (ジャンプコミックスDIGITAL)

先生派

推しが武道館いってくれたら死ぬ

推しが武道館いってくれたら死ぬ(1) (RYU COMICS)

推し事の勉強になりました。

青春ブタ野郎はバニーガール先輩の夢を見ない

青春ブタ野郎はバニーガール先輩の夢を見ない 『青春ブタ野郎』シリーズ (電撃文庫)

アニメを見てまとめ買い。
劇場版になるであろう「ゆめみる少女」「ハツコイ少女」のとこは最高だったので絶対に見て欲しい。

PixelaでTweet数を計測する

みんな大好き Pixela

これが成果物

こういうのはまずIFTTTで出来ないか考えるんだけど、Request headerをイジれなさそうでTOKENが送れないから却下
次にZapier を確認したら大丈夫そうだったのでこちらで設定した

TriggerをTwitterのMyTweetに設定して

f:id:Chiastolite:20181021223746p:plain

ActionをWebhookのPUTにして、URLに https://pixe.la/v1/users/{user_name}/graphs/{graph_name}/increment、headerにX-USER-TOKENl: TOKENを設定すれば終わり

簡単簡単

TokyuRuby会議12でLTしてきた #tqrk12

ツイッターで宣言してた通り継承の話をしてきた。

speakerdeck.com

今回のモチベーションとしては、無職だからあんまコード書けてなくてネタに困ってた いろいろ調べたりしたことが当面は使うことがない知識になってしまうのもったいないので軽く共有をという感じ。
法律の専門家でもないので、説明にあやまりが含まれているとは思うけど大枠が伝わってればいいかなと。

今回はタイムテーブル見た感じテックな話やコミュニティ周りが多そうで、ぶっ飛んだ方向でインパクト与えればLT王も取れるのでは?とひそかに狙ってたんだけどそこまで甘くはなかった(結果3位でした)

こんなメモ も残してあるので、何かあったら参考にしてください。

退職前にSlackアカウントを停止すると捗る

明日の最終出社にそなえてSlackのアカウントを一時的に停止してもらった。
これをすると自分が設定しているインテグレーションがすべて停止される。

f:id:Chiastolite:20180522161349p:plain

↑このようにインテグレーションが停止された旨のメッセージがチャンネルに投げられる。
今後も必要なものは他の人に有効化してもらえばいいので、いい感じに棚卸しができる。

ただし、private チャンネルに向いたインテグレーションに関しては他人から触れないので、既存のは削除して作り直しが必要。
これをしないと↓のように削除も編集もできないインテグレーションの残骸ができてしまう…

f:id:Chiastolite:20180522162804p:plain

参考

近況報告

5月31日付で現職を退職します(最終出社はもうちょっと前になる予定)
今年のRubyKaigiは2日目から無職での参加です。

そのあとは家庭の事情でいろいろ整理をしなくてはいけないものがあり1,2か月はフルで働けない予定なので、週2ぐらいのお仕事あったらご相談させてください。