トラックバックを実装しました
トラックバックを実装しました
といってもサイト内のエントリ間の言及を表示するだけです。いわゆる古代のオープンなトラックバックではありません。
古いエントリに新しいエントリへのリンクがないのは不便だなと思い、とりあえずさくっと LIKE 検索で機能を足してみていたのですが、良さそうなので、ちゃんとリレーションテーブルをこしらえたりしました。
しかし、全体的にページキャッシュ機能を入れているので、単に機能を足すだけでも考えることが増えてしまいます。イメージではトラックバックが送られたページに更新がかかるというだけですが…
キャッシュ処理も見直して、全体的にテストも書いたりしました。キャッシュが入ると複雑性が増す分、独り人力QAには限界があるので、みっちりテストを書くほうがかえって省力化します。
関連エントリー
- しょぼい個人サイトのキャッシュ 殆どアクセスがないサイトは、ファーストアクセスでキャッシュを作るようなサーバサイドキャッシュの戦略が全く意味がないので、バッチで予めキャッシ...
- ブログのキャッシュバックエンドの変更 今までは Cache::FileCache によるファイルシステムキャッシュにしていたけど、いくつか問題があって SQLite にかえた フ...
- ✖ 日記の公開を遅延する機能 | tech - 氾濫原 この機能を実装してみたので、徐々に使ってみる。 実装的には結構やることがあって面倒だった...
- スケートボードのトラックの音鳴りとグリスを塗ってはいけないところ 先に知っておくこと ブッシュの上下にはグリスを塗らないこと。ここがすべってしまうとトラックの動きがおかしくなることがある。トラックがやわらか...
- ページャの実装変更 今までのページャは良くある ?page=2 みたいな形式でした。これは内部的には offset / limit を使う SQL になります。...
子供用の椅子の買いかえ
Stokke ストッケ ベビーチェア ハイチェア 本体 トリップトラップ 食卓 赤ちゃん 椅子 ウォールナットブラウン cho45
2歳になって自分でできることが増えてきたり、「みいつけた」で椅子を見ているせいか、椅子が好きになってきたみたいなので、本人だけで座れる椅子を買いました。
ちょっと高いけど、10年ぐらい使えそうなので、そう考えればそこまで高くないかなと思ったのと、こういう大物は買ったり捨てたりするのが面倒なので、ストッケ・トリップトラップというのを買ってみました。色はウォールナットブラウン。
届いて組み立ててる最中から子供はだいぶテンションが高くて、六角レンチでボルトを締めようとしたり(むしろ緩めてたけど)していて面白かった。
ちゃんと独りで座ることもできるし、安定しているので良さそう。ただ子供は「新しいものは様子を見ながら使う」というのがわかってないので、ドンドコドンドコやっててハラハラする。
ところで最初組み立て図を見ても、座面とかにはボルトがなくて、どうやって固定されるかがよくわからなかった。組み立ててる途中でようやくわかったが、これの座面は左右の支えの窪みに入れた状態で、他の部分のボルトを締めていくことで挟みこんで固定されるようになっている。面で固定されるから直接ボルトで固定するよりもいいのかな。増し締め忘れないようにしないといけなそう。
1週間ぐらい既に使っているけど、表面塗装のせいか汚れても思いのほか拭き取りやすい。あと、倒れないように足の底部に滑る部品(滑り止めではない)がついていて、面白かった。子供がテーブルを蹴って後ろに倒れないように、椅子自体を滑らせるという形のセーフティになっている。ただ、性質上、床面がフローリングでないと機能しない。うちはフローリングにマットを敷いているので残念ながら意味ない。
今まで使っていたもの
これを今まで使っていた。まだ使えそうだけど、自分で座ることができなくてちょっと可哀そうになってきた。それに毎回大人が持ちあげる必要があるが、子供も既にそこそこ重い(12kgぐらい)ので結構つらい。
汚れたら風呂場でザーーーと洗って干すという雑な運用をしていたけど、半日ぐらいですぐ乾いてくれるので良かった。値段も安かったし、十分に使えたと思う。
関連エントリー
- イトーキのプラオチェアを買った cho45 ★ 3.0 / 5.0 cho45 これの中古を13000ぐらいで買った。椅子にそんなにこだわりを持っていなくて、高いのを買うの...
- エアロハンドル用のスマフォマウント エアロハンドルは断面形状が円形ではないので、市販のほとんどのマウントが使えなくて困ります。ということでなんとかします。 CATEYE フロン...
- エルゴが壊れた Ergobaby(エルゴベビー) 抱っこひも おんぶ可 [日本正規品保証付] (日本限定ベビーウエストベルト付) (洗濯機で洗える) 装着簡...
- 3Dプリンタで任意長ハタガネの自作 ハタガネは300mmで1本あたり700円程度する。多数必要なのでなかなか単価が高いのが効いてくる。 それほど使用頻度が高くないため、もうすこ...
- 「みいつけた」がおもしろい NHK Eテレの番組はそれぞれ対象年齢が設定されていて、「いないいないばぁ」は0〜2歳、「おかあさんといっしょ」は2〜4歳、「みいつけた」は...
子供用の本棚
RiZKiZ 子供用絵本ラック 木目調 キッズブックシェルフ マガヒンラック 収納に便利な仕切り棚付き (3段タイプ/ダークブラウン) cho45
今までの本棚に不満があったのでこれを買ってみました。本体がかなり重くてしっかりしてます。
子供は特に何の反応もなく本棚と認識して使っていて、あっけない感じだった。絵本渡して「ないないして」というとちゃんと入れてくれる。よかった。
今まで使っていたもの
森井紙器 すまいるキッズ 絵本ラック レッド cho45
買ったときはあんまり本もないからいいかと思ったけど、急激に増えてしまって納まりきらなくなった。
この商品はダンボールでできていて軽いんだけど、おかげで子供が中の本を全部出して、本棚を振り回して遊んでることが多々あった。さすがに最近はそんなことしないけど、軽くて小さいというのも考えものだなあと思った。あとダンボールなので、乱暴に扱うとかなりヨレてしまう。
結果的にはこれを買ったのは失敗だった。最初からそこそこのものを買ったほうが良かった (どうせ必要だから)。
関連エントリー
- 「PULUZ 30cm Mini LED Photography Shadowless Light Lamp Panel Pad」というやつを買ってみた。 要は撮影用のライト。下に置いて使うタイプ バッテリーとかは特になく、ただのライト。Type-C 給電。 特に箱とかを用意して組み立てる必要も...
- 今年 子ども関係で買ったもの 先にまとめておくと、おむつの支出が支配的で、それ以外だと直接子ども用のものをあんまり買ってない。絵本とかをあんまり買ってない気がする。 おし...
- 子供用の椅子の買いかえ Stokke ストッケ ベビーチェア ハイチェア 本体 トリップトラップ 食卓 赤ちゃん 椅子 ウォールナットブラウン cho45 Stok...
- デスク裏の整理 こんな感じで壁に背を向けて座る感じでデスクを設置したので、普通に部屋に入ってくるとき、デスクの裏側が見えるようになってる。 ケーブル自体はデ...
- 無線マウスの電池を軽量化 id:h2u エルゴマウスの持ちやすさ。単三*2で重いマウス、単四+スペーサーにして軽量化とかはやってた。 http://b.hatena....
ブログのキャッシュバックエンドの変更
今までは Cache::FileCache によるファイルシステムキャッシュにしていたけど、いくつか問題があって SQLite にかえた
ファイルシステムキャッシュで困っていたこと
- なんか遅い
- キャッシュ無効化の処理のためにキャッシュを生成元とキャッシュのキーをキャッシュ内に格納したいが、アトミックにやるうまい方法がなかった
SQLite 選択
Redis とかを立てるのが機能的には便利そうだけど、リソース的にあんまりサーバプロセスを増やしたくはないので、SQLite とした。
CREATE TABLE cache (
`cache_key` TEXT NOT NULL PRIMARY KEY,
`content` BLOB NOT NULL
);
CREATE TABLE cache_relation (
`id` INTEGER PRIMARY KEY,
`cache_key` TEXT NOT NULL,
`source_id` TEXT NOT NULL
);
CREATE INDEX cache_relation_index_cache_key ON cache_relation (`cache_key`);
CREATE INDEX cache_relation_index_source_id ON cache_relation (`source_id`);
CREATE TRIGGER on_cache_deleted AFTER DELETE ON cache BEGIN
DELETE FROM cache_relation WHERE cache_key = old.cache_key;
END;
CREATE TRIGGER on_cache_related_deleted AFTER DELETE ON cache_relation BEGIN
DELETE FROM cache WHERE cache_key = old.cache_key;
END; こんな感じでキャッシュ本体 (cacheテーブル)と、そのキャッシュを生成するのに使ったもののid(文字列)のリスト(cache_relationテーブル)を持って、お互いにトリガーで消しあうようにしておく。
こうしておくと、通常のキャッシュキーによる追加・削除だけではなくて、生成元が更新された時に関連するキャッシュをまとめて消せる。
なお、キャッシュ用のDBファイルは元データと分けた。というのも、元データのDBは毎日バックアップとしてGmailに送りつけているので、キャッシュを含めたくなかったから。
関連エントリー
- 関連画像を表示 libpuzzle の Perl binding である Image::Libpuzzle を使って関連画像を実装してみた。pHash や ...
- SQLite の WITHOUT ROWID の効果測定 SQLite で「PRIMARY KEY」を《真のプライマリキー》とするには | tech - 氾濫原 の続きです。 以下のような簡単なベン...
- TF-IDFとコサイン類似度による類似エントリー機能の実装 TF-IDFによる類似エントリー機能の実装をしてみました。ほぼSQLiteですませるような構成です。 やっていることの概要 エントリーのHT...
- リクエスト時の Cache-Control、max-age=0 と no-cache の違い ほとんどのブラウザで、通常リロードは Cache-Control: max-age=0、スーパーリロードで Cache-Control: n...
- RaspberryPi を家庭内 LAN の DNS キャッシュサーバーに LAN向けのDNSキャッシュサーバ 経緯としてRTX1200 の DNS 機能が TCP フォールバックに対応してないのでオフにした、という...
スイッチが切れた
1週間前ぐらいまで毎日いろいろと資料を読んでコード書きまくったりしていたけど、例によって急激にやる気が失われてほとんど何もしていない。
- ハードウェア周りのコード書くやる気が急激に失われる
- サイトの最適化まわりにやる気を出す
- 全てのやる気が失われる (だいたいやったから)
という感じで進行した。やる気があるときは「ゲームとかやってる暇全くないし、ゲームとか完全に無駄な時間を過ごすだけ。酒飲んで頭回らない時間をつくるのも無駄」みたいな意識の高さがあるが、そうでないときはとにかく頭を一切使いたくないという感じになる。
ハードウェアまわりは明確にやりたいことはあるけど、途中でやる気がなくなったのでそれ以来全くすすめていない。
ディアブロ3を久しぶりにちょっとやってるけど、目が疲れる。
どっか散歩したいけれど、忌中なので神社には行けない。つつじヶ丘あたりを地図なしで歩いたりしてみたりしたけど気分は晴れず。ストレスは溜まるがやはり解消方法がない。
関連エントリー
- 手持ち高感度撮影はノイズと手ぶれの駆け引きがおもしろい 高感度撮影ではディテールが失われる前提のため、被写界深度は深くなるとみなせる。というか絞り開放以外に選択肢はない。それを前提に、さらに感度を...
- WebAudio のデバッグ用のオシロスコープ WebAudio で ScriptProcessorNode とかを使ってちょっと変なことしようと思うと、波形が実際どうなっているのか見たく...
- ✖ スキルセット的にいろいろできるとは思うが、アルゴリズムとデータ構造とか機械学習まわりはほんとに苦手なので、そのへんでコンプレックスがある。 ...
- 急激な体調不良 月曜日20時ぐらいに急激に全身倦怠感が起こり、だんだん体が重く、21時には寝はじめたがこのときはもうほとんど動く気がしないぐらいだった。寒気...
- 『JavaScriptから現実世界に干渉する7の方法: ブラウザでハードウェアをコントロールする技術』という本を書いた JavaScriptから現実世界に干渉する7の方法: ブラウザでハードウェアをコントロールする技術という本を書いてみた。前々からこのテーマで...
保育園に行ったら保育園が開いてなかった
二重の意味で(出勤も保育園も)はぁ嫌だなあと思いながら保育園に行ったら、保育園が開いていなかった。意味がわからなかったけどとにかく開いていなくて、どうしようもないので帰ってきた。
自分はこういう予期していないトラブルに滅法弱くて、普段に数倍に嫌な気持ちが増幅されるんだけど、そうはいっても現実として「誰が子供の面倒見るの?」という問題を解決しないといけないので、会社を休んだ。
結局なんだったかといえば保育園は諸事情 (特に複雑な事情ではなくて、年間行事表には書いてあった) によって休みだった。昨年は土曜日にあたっていたようで意識しなかったし、休みになるという認識がなかった 。そして今年は直前に子供の発熱があったせいか特別休みの予告がなかったので、誰も休みを認識してなかった。
来年同じことがないようにカレンダーにリピートを入れた。
別に保育園が悪いわけではないけど、ほんと保育園関係は嫌な気持ちになることが多い。暦通りじゃない休みがこんなにアナウンスされないものなのか。
準備して、子供が寝てるとこを起こして(朝食をとったあと、たまに寝ることがある)、だっこして、門まで連れていって、開いてない。平日だから当然出勤するつもりでいる。出勤する人の流れが見えるから平日なのは間違いない。寝ボケていて時間を間違えたのか。開いてないから帰るしかない。おやつやら昼食やらをどうするか考えないといけない。夕方までの間のすごしかたを考えないといけない。スワップアウトされてるもろもろを頭の中のワーキングメモリにロードしなおさないといけない。
関連エントリー
- ✖ ほんと保育園関連のアレコレが嫌すぎて嫌すぎてどうしようもない…… なんとかしてくれ……… こんな無限に時間がないのにクソどうでもいい(子供の...
- 賃貸契約更新 全くもって気はすすまないが(単に金が出ていきつつ面倒な書類作業をするだけなので)、賃貸契約更新をした。 駅前の路上喫煙とかがものすごいひどい...
- 体調不良 あいかわらず断続的に体調不良。一日会社を休んで寝てたら回復した気がしたが、また腹痛になった。吐き気はしないのでまだマシ。 ここ最近、夜中に子...
- ✖ ちょっと困ったことが起きており、一昨日からワンオペ。 普段ルーチンに入っていないので、一番面倒なのが食事。平日は朝食だけ用意すれば良い。もと...
- ✖ 先々週ぐらいに子どもがB型インフルエンザになっていた。 金曜ぐらいから微妙な感じだったけど、土曜日に高熱になり嘔吐したりしていた。普通の風邪...
とてもイライラするとき
自分のイライラするシチュエーションを考えみると「ワーキングメモリに大きなデータをロードする必要がある」ことと「予期してない」ことが大きく関係しているような気がしている。
自分は頭の中のワーキングメモリに、何らかの仕事(プログラム全体の設計とか)をロードするのにとても時間がかかる。このロードされたイメージが何らかの出来事(外部割込み由来)で無駄になるときにイライラする。
生活全般で
保育園なんかで、1円にもならない仕事をやらされたりする。全体としてたいしたことじゃなくても、その仕事をロードするたびに、趣味にしろ仕事にしろ、頭の中のイメージにリセットがかかる。そして再度元の仕事をロードする必要がある。
予期できることもあるけど、そもそもストレスかかる仕事が多いのでコンテキストスイッチが発生するだけで不愉快。
仕事において
しばしばあるのが、些細な仕様変更・追加で、これにより根本的に直す必要がありそうだというケース。
そういうことが起こらないように、将来的にどんな仕様の追加がありそうかということをエスパーして、予期されるそれらへの変更耐性を設計に組み込んだりするする。そういうのも含めて、ピースをうまく噛み合せて全体的に「これでうまくいきそうだな」というイメージを構築するまで、まずとても時間がかかる。
しかしいろいろ考えたとしても、考慮外の仕様が出現したりする。この「考慮外の追加仕様」はイライラする。というのも
- 頭の中にロードされたイメージの中にどのように割り込ませるかを考えたうえで
- 場合によって全体のイメージを再構築する必要がある
それほど複雑ではない場合は部分的な再構築ですむのでそれほど最悪な気分にはならないが、全体を再構築する必要がありそうな場合は、頭の中を全部一旦空にするので再度全体の設計をロードしなおすまで時間がかかる。その間ずっとイライラしている。
どうすればいいのか
頭の中にロードする時間自体を短縮するのは難しそうなので、イメージのサイズを小さくするとか、予期できそうなことは予期しておくしかない? しかし予期できそうなことを予期しておくというのをやるとイメージのサイズが大きくなる。
そもそも何故頭の中のイメージが初期化されることでイライラするのか。
関連エントリー
- ✖ 仕事を中心にして考えてるのがそもそもの間違いだと思う。あたりまえだけど業務時間外は「自分の時間」であって、仕事のための勉強をする時間ではない...
- サイトの写真の表示方法の変更 サイトのCSS・JSのちょっとした変更。1ヶ月前ぐらいから写真まわりにちょいちょい変更をいれてる。 写真の高さを 100vh に制限するよう...
- OWON SDS7102 のロータリエンコーダの不具合をなおす OWON デジタルオシロスコープSDS7102 超薄型 1Gsサンプリング100MHzFFT機能付カラーポータブルフルセット【国内正規品】 ...
- 保育園に行ったら保育園が開いてなかった 二重の意味で(出勤も保育園も)はぁ嫌だなあと思いながら保育園に行ったら、保育園が開いていなかった。意味がわからなかったけどとにかく開いていな...
- Adsense の新しい広告ユニット 最近になって「関連コンテンツ」と「ページ単位の広告」というのが beta になって登場した。サイト最適化と同時にこれらも有効にしてみたりして...
Adsense のレスポンシブ広告の正しい使いかた
前提知識:レスポンシブ広告といっても、既定の広告サイズからコンテナサイズによって選ばれて表示されるだけで、広告そのもののサイズは固定です。
そのまま使うと、広告がロードされた時にページの高さの再計算が入って、コンテンツがガタガタと動いて大層鬱陶しいです。とりあえず便利そうだから貼ってみると、この挙動でギョギョっとします。
しかし、レスポンシブ広告はCSSで設定する width/height によって正確に対応する広告サイズを入れることができ、この場合は高さが固定になるのでガタガタしません。CSSなのでメディアクエリでサイズを変えられ、レスポンシブサイトと大変相性が良いです。
公式のドキュメントに詳細な設定方法が書いてあります。といっても width/height をコンテナに設定しているだけです。
既にサイトがメディアクエリによってレスポンシブになっているなら、レスポンシブ広告にした場合、広告サイズもCSSで指定するだけでよくなってます。
余談:Adsense の広告コードの修正・改変
「広告コードには一切の変更が認められない」みたいなことが過去に書いてあったような記憶があるんですが (記憶違いかも)、現状では上記の通り、改変が認められるケースがあり、悪意をもってやるようなことじゃなければだいたい大丈夫そうな雰囲気があります。
関連エントリー
- このサイトの Google Adsense 止めた そういえは結構前に Google Analytics は止めていたようだ。いつ止めたかわからない。まったく見てもいないのにサイトレスポンスを...
- Adsense の新しい広告ユニット 最近になって「関連コンテンツ」と「ページ単位の広告」というのが beta になって登場した。サイト最適化と同時にこれらも有効にしてみたりして...
- flex layout によるレスポンシブ入力フォームの勘どころ 重要な点 常に単に縦に並べるだけなら flex layout はいらない。 適用箇所 たくさんの項目をできるだけ詰め込む場合 flex la...
- サイトの写真の表示方法の変更 サイトのCSS・JSのちょっとした変更。1ヶ月前ぐらいから写真まわりにちょいちょい変更をいれてる。 写真の高さを 100vh に制限するよう...
- サイトの画像サイズを再びアップグレード 昨年の4月にデザインの調整ということで、写真の最大サイズを 1024px まで上げていたのですが、これは Google Photos の無料...
緑色になってしまった電気ケトルの買い替え
ティファール ケトル 1.2L ジャスティンプラス サーブル たっぷり 空焚き防止 自動電源OFF 湯沸かし KO340177 cho45
これの古いモデルをずっと(7年ぐらい)つかっていたが、底のステンレス部分が緑色に錆びのようなものができていて、さすがにどうかと思ったので買い替えた。
緑色の何かの正体はよくわからず。こすっても落ちないし使用頻度が高いのでカビではないと思うが、クエン酸を入れて沸かしてもとれなかった。
ティファール ケトル 電気ケトル 0.8L アプレシアプラス メタリックノワール コンパクト 空焚き防止 自動電源OFF 湯沸かし ステンレスボディ BI805D70 cho45
これにした。沸かせる量が減ったが、1.2L 沸かすことがまずなかったように思えるので小さいモデルに。外装がプラスチックのものは嫌だったのでステンレスのものにした。燃費を上げるためか全体を金属にしたものはないみたいだった。
電気ケトルの電気料金
メーカーのページを見てみると、同じメーカーのほぼ同じモデルでも微妙に電気料金が違く書かれている。
例えば、アプレシアプラス(プラスチックモデル)では約0.44円/カップ1杯と書いてあるが、アプレシアプラスメタリックでは約0.50円/カップ1杯となっている。といっても、この差だと365回沸かしてようやく約22円程度の差なので誤差ではありそう。
なお、このメーカーの場合だとスペック上で最も燃費が悪いもので約0.56円/カップ1杯、最も良いもので約0.44円/カップ1杯と、0.12円の差がある。
関連エントリー
- ✖ ポリスチレンはカッターで切れるのと、プラモデル用の接着剤が使えるのが良い点だなあ。
- Zenfone2 を買ったぞ。 1.8GHz 2GB RAM 32GB Flash の安いモデル。ヨドバシで予約して発売日当日に届いた (実際は不在だったので翌日だったけど...
- 大量のファイルのバックアップにNASを使うのは適切なのか? すこし昔書いたGoogle Keepのメモを発掘してきました。 NASの維持コスト 電気料金 を30円/kWh、NAS の消費電力を 20W...
- モデリングしたものを削り出す Fusion 360 で SVG をインポートしてスケッチに利用する | tech - 氾濫原 でモデリングしたものを削り出した。 ちょうど...
- オーブンレンジをパナソニックのビストロに買い替え パナソニック スチームオーブンレンジ ビストロ 30L ヘルツフリー ブラック NE-BS805-K cho45 パナソニック(Panaso...






