にじかくれてみえず

てきとーかもです

DjangoのFormを使う

以前作ったGPAシェアサイトを作った時に知った便利な機能の覚え書きです。 hamkatsu.hatenablog.jp

Formをつくる

そもそもフォームとは

f:id:hamkatsu:20161210221813p:plain

このようなブラウザ上で表示され、クライアントからの情報をサーバに送信するためのインターフェースである。

ブラウザ上に表示されるということは、HTMLで記述されている。上の例では、

<form action="" method="POST">
  <label for="id_naem"> 名前;</label>
  <input id="id_name" maxlength="32" name="name" type="text" />
  <label for="id_gpa"> GPA:</label>
  <input id="id_gpa" name="gpa" step="0.001" type="number" required />
  <!-- 中略 -->
  <input type=submit>
</form>

このような感じでフォームを作るためにHTMLを記述しなければならない。

私もDjangoのフォームの機能を知るまではこのようにHTMLでシコシコと書いていたわけである。 フォームを作る際には、作成したモデルとにらめっこして、どのようなデータを入力するフィールドをつくるか、どのような形式のフィールドを作るかなど考えなければならない。 また、フォームで送信されたデータは適正なものか検証もしなければならない。

人力でやると面倒ってわけ。

そこでDjangoのFormの機能

続きを読む

UIのはなし ~ Dash Button と 宅配ロッカー ~

Dash Buttonで注文をする

前回の続きみたいな感じです。

早速ボタンを押して注文しました。注文の仕方はとてもカンタン。ボタンがひとつしかないからね。これを押すことしか操作ができない。

押す -> 注文 って感じで操作と動作が一対一で結びつく。

スマホと比較する

スマホっていうのは多機能である。多機能だから故に操作がたくさん必要になってしまう。 それと対照にDash Buttonは単機能であるからボタンがひとつ(UIがシンプル)になる。

機能の数とUIのシンプルさはトレードオフの関係にある。

なんでも単機能にしてUIをシンプルにすべきということではない。スマホが単機能に分割(電話のデバイス、メールのデバイス、文字入力のデバイス、、、)されたならば不便であることは言わずもがな。

UIなどは目的、誰が使うかなどを考えたうえで設計しなければならないと思った。

宅配ロッカーの話

amazonの受け取りに宅配ロッカーを使ってみた。

PUDOステーション (プドー・ステーション) | パックシティジャパン

前から一度使おうと思っていたのだが、なかなか軽いものを頼むことがなかったので、今回はリステリンだけで割と小さかったので使ってみた。 手順は

  1. 宅配業者がこのロッカーに荷物を入れてくれる

  2. 届け先の人にメールかなにかで暗証番号が2つ届く(私の場合は数字4桁が2つだった。みんなそうなのかな?)

  3. 暗証番号を打ち込む

  4. タッチパネルにサインをする

  5. 荷物を受け取る

ってかんじ。

暗証番号が2つのワケ

4桁の暗証番号が2つ必要な理由がよくわからなかった。 なぜ2つ?8桁ひとつだとダメなのかな?

ちなみに私が使ったロッカーには20個ぐらい荷物が入るスペースがあったと思うので。4桁だと

20/104 = 0.002

4桁*2つだと

20 / 104*2 = 0.0000002

になりますよね。 4桁でも500回の試行でようやく1回開く感じです。4桁だけでも十分有意だと思うのですがね? ここらへんの話は公式サイトには乗ってなかったので中のシステムが少し気になります

タッチパネルにサイン

これが使いにくかった。最近ではクレジットカードのサインをタブレットみたいなものにすることはよくあるので、そういうのには慣れてるつもりでしたが、これは違う。

cards.hateblo.jp ↑こういうのね

このロッカーのタッチパネルは地面からの高さが大体私の胸の付近(120cmとか?)にあって、地面に対して垂直に画面が付いていた。 暗証番号はこのタッチパネルでスムーズに打てたが、サインとなると別であった。

垂直に付いているタッチパネルにはもじがなかなか書きづらい。また指でサインをするのは意外に難しい。

上のクレジットカードのサイン端末では、ペンであり、かつ、水平な面に書くことができる。

文字を書く場合、ペンかつ、水平な面で書くほうが普段からそうしているようにやりやすい。これはUI設計のだめなところかなって思った。

あくまで私の主観であり、もしかしたら、地面と垂直な面に指で文字を書くほうが好きな人もいるかもしれないけどね。

まとめ

何が言いたいかっていうと、UIを作るときには、誰が、なんの目的でってことをよく考えて作らないといけないねってことです。

あと意外にリステリン重かったので普通に家に配達してもらえばよかった

Amazon Dash Button と タブレット

Dash Button 買いました

私はAmazon信者である。大学の学生証を手に入れて即Amazon Studentsの会員に申請したり、教科書の8割5分はAmazonで購入している(たまーに品切れがあるのでその時は仕方なく大学生協)。

発売のアナウンスでその日に購入。リステリンのボタンを買いました。実際、近くのスーパー(イオン)で商品の値段を比較すると、Dash Buttonで購入できる商品は、スーパーで買ったほうが安いものが多い。リステリンだけが使うものでスーパーより安かった(たぶんドラッグストア行けばソッチのほうが安かったりして)。ただ、水などの重たい商品ならば、amazonで購入したほうが楽かもしれないね。残念ながら、我が家は浄水器使っているのでペットボトルの水は買いませんが。。。

↑連打しても一回の注文としか認識されないっぽい

設定でつまる

続きを読む

研究室選びの季節

私の大学の研究室選び

私の大学の学部(以下本学)では研究室への配属の決定する際に学生の希望が尊重されますが、当然、全員の希望が通ることもなく、希望はGPAが高い人ほどよく通る仕組み。第一志望の研究室がGPA順で配属人数を超えた瞬間、競争に敗れた人は第二、第三となるわけですが、第二のひとよりも第一志望の人のほうが優先されるために、結果的に人気ワーストの研究室に配属されることになる。死亡。

そこで

各々競合がなくなるように志望提出までに話し合いで平和的に解決することが望まれるというわけ。

もう少しうまくしたいなーって思ってなにか作ろうかと考えた。

要件

1. 匿名で使えること

2. 研究室ごとに何人志望しているかわかること

3. 自分のGPAがどれくらいのものか理解(ランキング?グラフ?)できること

  1. 研究室ごとの志望者でランキング

  2. 全体でランキング

匿名にこだわったのは作った私が人の成績盗み見できる感があっていやだったから。(仮に匿名じゃなくても背徳感でしてないと思う。多分)

できたもの

金土日の3日でこういうのができた↓↓

続きを読む