無駄と文化

実用的ブログ

9月の体重推移

あーもう10月ですね。 9月の体重の推移を振り返ります。 8月31日から9月30日にかけて 83.7kg→78.8kg (マイナス4.9kg) という推移でした。 運動の記録 9月の消費は17,606kcalでした。目標通り10,000kcalを超えられてよかった。 こちらはウォーキングだけを抽…

Rust で借用 (参照) を取り扱うときの大事な心構え

はっきり云って Rust は難しいです。 Rust は GC を持たず、 所有権という概念の上に構成されています。 そのため所有権のある値そのものを扱うより、借用 (参照) した値を扱うほうが難しくなりがちです。 なぜ借用のほうが扱いが難しいかと云うと、 所有権…

「若さ」とは何だろう

昨晩、妻と「年上に見られがち」「若さってなんだろう」という中年のお手本のような会話を繰り広げた。 若さとは何かについては問われてみればいろいろな持論がでてきた、 一所懸命に何かに打ち込み続ける姿じゃないか ボロは着てても心はギャル、と云うこと…

自分の体重を全世界に公開するために GraphQL API を作った

先日の記事でも書いたとおり、最近 健康志向になってきてダイエットっぽいことをしています。 blog.mudatobunka.org そんなわけで毎日体重計に乗ったりしてるわけですが。日々の体重データが蓄積されてくると「このデータを広く世界中の人が使えるように公開…

Rust ではどんな値が &'static になれるのか

Rust では所有権と借用, そしてライフタイムという概念があるため、値そのものを取り扱うより参照 (借用) を取り扱うことが難しくなりがちです。 特に関数から参照を返そうとすると、そこにはライフタイムの概念が絡んできます。 例えば下記のように関数内か…

スマートバンドを買って以降まんまと健康志向になっている

2023年7月19日に『ポケモンスリープ』という睡眠ゲームアプリがリリースされました。 リリース前から話題になっていて、Twitter などでもゲーム画面のスクリーンショットなどを目にするようになりました。 それを見て、 以前から睡眠のログを取りたいと思っ…

オートマットのプレステージが好きだ

「オートマット」という製品がある。 プラスチックでできた板で、地面に敷き詰めることで簡易舗装ができる製品だ。 公式サイト ( https://www.web-prestige.com/automat/ ) より引用 私はこのオートマットを販売しているプレステージの公式 X (旧: Twitter) …

Rust における関数とメソッドの使い分け

Rust ネタです。 Rust では構造体に対してメソッドを定義できます。 公式のドキュメント では Rectangle 構造体に対して面積を求める area メソッドを定義する例が紹介されています。 struct Rectangle { width: f64, height: f64, } impl Rectangle { /// …

スマートスピーカーにはあと300ミリ秒だけ待ってほしい

我が家には Amazon Echo (通称 アレクサ) が居るんですが、最近、食い気味に聞き間違いをしてくるので少しだけ嫌な気持ちにさせられています。 一例) 三井『アレクサ、エアコン消しt...』 アレクサ「エアコンを操作するには "アレクサ、エアコン消して" のよ…

福岡出身者が "博多名物" に感じる違和感

どうも、生まれも育ちも福岡県福岡市な三井です。 「博多は飯が美味い」と認知されているのか、福岡県外でも博多フェアのようなものが企画されているのを目にします。 福岡出身者として嬉しいです。 が、福岡県外で展開されがちな "博多名物" に違和感を感じ…

バイブスで覚える Rust - 借用

ご存知の通り Rust 言語はとても厳格な型システムを持っています。 そのためノリで書こうとしてもコンパイラや Language Server から「ここ、型が合わないよ」と言われて実行すらさせてもらえないことが稀によくあります。 ですが、そんなことばかり言っても…

はてなスターを表示させた

今年の4月に株式会社はてなに入社して思ったことがあります。 それは『はてなスターってまだ使われてるんだー』ってことです。 はてブのブックマークコメントにおいてはスターがつけられることは認識していたし、実際にスターをつけることもありました。 け…

return; で何が返されるか【Perl ネタ】

Perl ネタです。 sub f { return; } sub g { return undef; } 上記の f と g は違うという話をします。 違いのわかるコード sub f { return; } print Dumper f; # => '' print Dumper { map { $_ => f } (1..4) }; # => '{ 1 => 2, 3 => 4 }' sub g { return…

substr のマジカルな挙動を再現したい

Perl に substr という関数があります。文字列を部分的に切り出したり、部分的に置換できる関数です。 典型的な使い方はこんな感じ、 my $s = 'The black cat climbed the green tree'; # 4文字読み飛ばしてから5文字取り出す my $color = substr $s, 4, 5; …

PHPカンファレンス福岡2023にスタッフとして参加していました

2023年6月24日に行われた PHPカンファレンス福岡2023 に運営スタッフとして参加していました。 当日は受付に座って主に Twitter をしていました。 4年ぶりの開催 コロナの影響を受け、実に4年ぶりの開催でした。 3年前、会場も日程も決まっているにも関わら…

Perl のショートカット集 (随時更新)

Perl には頻出するイデオムを短い書き方で代替する ショートカット が多くあります。 ショートカットを集めてみます。 目次 while ループの条件部に行入力演算子 <STDIN> を置く foreach ループで制御変数を省略する 正規表現リテラルを単体で評価する => は , のシ</stdin>…

history.back() でページを戻ったときの JavaScript の挙動

「ページ A」から「ページ B」へ遷移した後に「ページ B」で hidtory.back() が実行され「ページ A」に戻ってきたとき、「ページ A」で走っていたスクリプトの挙動について考えよう。 ちなみにブラウザの「戻る」ボタンでページを戻ったときにも全く同じ議論…

フォント読み込み完了のタイミングで処理を実行する

ブラウザにフォントが読み込まれたタイミングで JavaScript の処理を実行したいと思ったとき、以前であればサードパーティー製のライブラリを使っていた *1 けど、最近はブラウザの標準 API だけで読み込みタイミングの判定ができるようだ。 Document.fonts …

WP-Cron を cron から叩く

WP-Cron を cron から叩くとサイトの表示が若干軽くなるとのことでやってみた。 結論、問題なく動いている。 やりかた すでに多くの人が解説しているので割愛。 やるべきことは、 define('DISABLE_WP_CRON', true); を設定してデフォルトの動作を止める cron…

ラジオボタンのコーディングは

ラジオボタンのコーディングは、 <div> <input type="radio" name="foo" value="hoge"> <input type="radio" name="foo" value="fuga"> <input type="radio" name="foo" value="piyo"> </div> ではなく <div> <input type="hidden" name="foo" value=""> <input type="radio" name="foo" value="hoge"> </div>

スマートで便利な Polyfill 配信サービス Polyfill.io

どうも IE11 でも動くプログラムを書いている三井です。 先日 Github で流行りのライブラリをザッピングしていたら面白いサービスにたどり着きました。 Polyfill.io というサイトで、その名の通り JavaScript の Polyfill を気軽に読み込めるサービス のよう…

質問箱への回答: 納得 と 受け入れ

真面目に答えます。 この質問には2つのモヤモヤが混ざってると思ってて。 ①は 受け入れてるにもかかわらず納得できていないという事 ②は 納得できてないのに受け入れてしまうという事 この2つは分けて考えた方がいいと思います。 ①受け入れてるにもかかわ…

不動点コンビネータで無名再帰を作る流れをおさらい

どうも、趣味で関数型言語を書いている者です。 長らく関数型言語やってなかったら無名再帰を忘れかけていたので、おさらいがてら不動点コンビネータで無名再帰を作る流れを書き下します。 以下、Haskell の文法で書かれたコードをもとに説明していきます。 …

サービス・プロジェクト改善のモチベーション

この記事は GYOMUハック/業務ハック Advent Calendar 2018 の5日目の記事です! 4日目の担当は Kouta Sasaki さん、6日目の担当は otoan_u さんです。 どうも、未経験からたったの7年でエンジニアになった三井です。 プログラムを書き始めて16年ほど、プログ…

チームのモチベーションを高める施策としての「夢見るユニコーン🦄」の導入について

チームの生産性を高めるためにはチーム全体の雰囲気が重要です。 ポジティブで「やれる」という期待にあふれたチームは高い生産性を発揮します。 チームでお互いに讃えあい、感謝を伝え、モチベーションを高める施策として「夢見るユニコーン」を導入してい…

魔法は無い

高度な技術は、ともすると魔法のように見えるものです。 実際、世の技術は「複雑さや煩雑さを隠ぺいしてシンプルに目的を達成するために発達してきた」という側面があるので、技術の裏側について詳しくない人からして魔法のように見えるのは当然と言えば当然…

JavaScript で、指定した範囲の整数をランダムに返す関数

やっていきましょう。 実装 /** * 指定した範囲の整数をランダムに取得する * * @param {number} min ランダムに取得したい整数の下限 * @param {number} max ランダムに取得したい整数の上限 * @returns {number} min 以上 max 以下の整数 */ function rand…

Scrapy のクロール実行時 win32api の ImportError でコケる (Windows10, Python 3.5.2, Scrapy 1.5.0)

Scrapy でバグっぽい挙動にぶつかったので状況と解決策の記録です。 クローラーの実行に失敗する いつものように Scrapy でクローラーを走らせようとしたらエラーでコケました。 エラーのログはこんな感じ。 2018-01-27 14:36:06 [scrapy.utils.log] INFO: S…

いろいろなパッケージから提供されている ListT モナド変換子の違いについて調べてみる

この記事は Haskell (その2) Advent Calendar 2017 の10日目の記事です。あけましておめでとうございます。 今回は ListT モナド変換子 について調べたことをまとめます。 hackage で検索をすると ListT と名の付くモナド変換子を提供しているパッケージは4…

Haskell でλ計算のインタプリタを作っていこう ~ その3. プリティプリンタ

引き続き Mogul という名前のλ計算インタプリタを作っていこうと思います。 前回、パーザを書いたのでソースコードから抽象構文木を生成することができるようになりました。さっそく抽象構文木をいじくり回して何かしらの処理を実装したいところですが、今回…