とりあえずアプリを英語対応→欧米OK…は甘かった

ドイツ語ユーザは数値入力キーボードでピリオドを入力できない
ドイツ語ユーザは数値入力キーボードでピリオドを入力できない

DoF Tableのユーザフィードバックで得た貴重な学びを備忘録。「とりあえず英語対応しておけば欧米ユーザの多くは使えるだろう」と思っていたのだけれど、少し甘かった。というのも、iPhoneの数値入力用キーボードレイアウト(UIKeyboardTypeDecimalPad; 電卓のように数字を入力するのに適している)で入力可能な文字は言語圏によって違うことに気付いていなかった。

続きを読む “とりあえずアプリを英語対応→欧米OK…は甘かった”

未ログインユーザがデータ変更URIにアクセスした後のログイン成功後、リダイレクトする先は?

最近Webアプリの開発手法について勉強しています。主にDjangoを使った開発で勉強しているのですが、今日はWebアプリ全般に共通する設計上の疑問が出てきたので備忘録します。疑問というのは、ログインしていない状態でデータ変更用URIにアクセスした場合、ログイン画面にリダイレクトするのが普通だと思います。で、そのログインに成功した後、どこにリダイレクトするべきなのか、という疑問です。

続きを読む “未ログインユーザがデータ変更URIにアクセスした後のログイン成功後、リダイレクトする先は?”

Python 3でMeCabを使えるように(続)

Python 3からMeCab (UTF-8モード)を使えるよう環境を整えるという話です。前回はCentOS 7でPython3とMeCabをビルドして実行させたところ「libmecab.so.2が見つからない」というエラーでMeCabモジュールのインポートに失敗したところで終わりましたが、今日やっと環境を整えることができました。

続きを読む “Python 3でMeCabを使えるように(続)”

Python 3でMeCabを使えるように…あれ、できない?

Linux (Cent OS 7)な環境で、Python 3からMeCabを使うプログラムを試作しようとしたところ、MeCabが標準(?)で配布しているPythonバインディングが古く2系のPythonでしか使えません。ということで少し使えるように試行錯誤した内容を備忘録的にメモします。

続きを読む “Python 3でMeCabを使えるように…あれ、できない?”

関数は「どう呼ばれうるのか」も考えて仕様を設計すると良い

問題。文字列の指定位置にあるマルチバイト文字が何バイトで構成されているか判定する関数を考える。その関数の引数として、与える文字列の長さに等しい値を、判定すべき文字の位置(インデックス)として指定した場合、この関数仕様は以下いずれが望ましいか。

  1. 成功とし、0バイトと判定する
  2. 例外(対象が見つからない)とする
  3. 例外(引数不正)とする

続きを読む “関数は「どう呼ばれうるのか」も考えて仕様を設計すると良い”

コーディングパターン: ループ条件の定石を覆して良いことも

昔のメモを見つけたので投稿しておきます。 手続き的なプログラミング言語ではループをよく書くと思いますが、大半は定型パターンがあります。たとえば配列のようなものから特定の条件を満たすものを検索する場合、普通は配列の要素を列 … 続きを読む コーディングパターン: ループ条件の定石を覆して良いことも