タオルケット体操

サツバツいんたーねっとでゲームとかガジェットのレビューとかをします

Japont (日本語Webフォントのダイナミックにサブセット化するやつ)のサブセット化部分だけを分離してモジュール化したよ

3846masa.hatenablog.jp

という良い感じの記事があって、これは欲しい! でも僕はデプロイ時に静的に生成しておきたい! と思ったのでサブセット化の部分だけをPythonのモジュール化して、ついでにコマンドラインからも使えるようにしておいたっていうおはなし。

続きを読む

Pythonのラムダ辛い問題を解決する暗黙のプレースホルダ

* ネタ元

Rubyのブロックつらい問題を解決する暗黙のブロックパラメータ - Qiita

RubyPythonのブロックラムダつらい問題

Pythonでショートコードをしようとおもうと、時々こういうことが起きます。

map(lambda it: it.upper(), ['foo', 'bar', 'baz'])

それぞれの要素に対してupcaseを適用する、ただそれだけのためにitを2回も記述しなければなりません。っていうかそもそもlambda:って読みにくいです。
Pythonはラムダをあまり使わない言語なのでこの様なコードを書く機会は少ないですが、それでもちょくちょく出番があり、やがてあなたは辟易するはずです。

続きを読む

Pythonの開発をしている人でPython製の便利スクリプトを導入するならpipsiが便利っぽい

pipsiとはpipsi = pip script installer
Flaskの人が作ったっぽいスクリプトです。

mitsuhiko/pipsi · GitHub

pipsiが流行る気配が微塵もないので書きました。たぶんクッソ地味なのでわざわざ話題にしないんだとおもいますが、個人的には重宝してます。

続きを読む

vintとvim-watchdogsでVimScriptライフを改善する

VimScriptつらいですね。
僕はたまにしか書かないのですが、たまにしか書かないからこそ何度も何度も同じ罠にハマって辛いです。一説によるとVimScriptは怒りの言語らしいので、ハマればハマるほど強くなるんでしょうがつらいものはつらいです。

続きを読む

プログラミング初心者向けのシンプルなObserverパターンの解説

増補改訂版Java言語で学ぶデザインパターン入門

まえおき

デザインパターンに関しては色々言われていますね。
個人的には、「確かに微妙だし全体的に時代遅れっぽいけど基礎教養みたいなもんなので基本情報技術なんぞを受ける暇があるなら一通り目を通しておいてもいんじゃねえの?」っていう立場です。

微妙っぽい感じなものが多いデザインパターンなんですが、それでもちゃんと押さえておいた方がいいよねっていうものの一つがオブザーバーパターンです。
アプリケーション的なプログラミングをしていると絶対に避けて通れないパターンなんですけども、以外と存在も意味も知らずになんとなくとコピペで済ませている人に未だにめっちゃ出会うのでちょっとした危機感だよねっていうのが現状です。
このパターンはみんな大好きMVCの基礎となっている設計手法で、Webとかスマホアプリだとかをちゃんとやるには避けて通れないんだ。一切勉強もせずに聞きかじりの知識で「今さらデザパタの記事とかww」「デザパタ厨わろた」とか人のことを批判しちゃう人は先生嫌いだな?

「よく使うんだから基本的な構造くらいは理解しておいた方がいいよ」と言ってもやらずに済ませる人が多い理由の一つに、多くの解説がジャバかC++で教科書通りに書いてあるからかなと思ったので、もっとシンプルな言語で簡潔に実装した例を示したらもしかしたらもしかするかなと思って頑張って書きました。
このエントリが「なんかややこしそうだから今度やろう」と思っているうちに何年も経ってしまった人の助けになればいいなぁとかおもいます。

なおJavaC++が悪い言語だということではなく、単純に言語仕様が古くさい*1のと冗長なボイラープレートコードが多すぎるせいで、こういう設計の本質を伝えるコード例には不向きだということです。

*1:Java8やC++11でラムダ式などが入りましたけども

続きを読む