2017/05/07

ディスプレイ用のウェットティッシュ

やられたー

いい季節になったので、窓を開けて風を入れていたら、ニャンコ登場。しばらくして出て行ったと思ったら、iMacに悲劇が。

画面の真ん中あたりにマーキングされて、下までべっとり。気付くのが遅れたので、乾いていて拭き取れない状態。困った。このiMac、Fusion Driveにしたから高いんだよ。

ディスプレイのクリーニングキット

そんなもの、持っていない。気がついたときにホコリ取り用のグロスで拭く程度で、こういったこびりついた汚れへの対策はできていないのだ。この際だから、買い揃えようと通販サイトを見ていたら、ウェットティッシュがあるようだ。それだ!
[ELECOM 1465556] 液晶用ウェットクリーニングティッシュ ハンディタイプ 15枚。そう頻繁に使うこともないだろうから、ボックスタイプではなく、一番枚数の少ない携帯用のやつを選んでみた。

無事きれいに

急いでいるときはヨドバシ.com。夜頼んで、次の日のお昼には届いた。
いわゆるウェットティッシュなのだが、大きく違うところが1点。ちゃんと液晶用のティッシュなのだ。傷がつかないように考えられたであろう、独特の、ちょっと目の荒いティッシュ。「しっとり」というほどは湿っていないので、出したら手早く汚れた部分を拭く、拭く、拭く。

これで気にならなくなった。たくさん入ったものもあるようなので、職場に置くならそっちがよさそう。



2017/04/29

Spring Bootで日本語パラメータが文字化けする

日本語が文字化け

とても便利なSpring Boot。改修予算がなくてオワコンのstrutsを使い続けなければならないプロジェクトが続いていたので、ようやくまともな世界に移れた!と思ったら、まさかの文字化け問題 orz

デフォルトは化けない

Spring Bootの名誉のために言っておくと、普通の使い方であれば、まず化けないだろう。GETパラメータやPOSTデータに含まれる日本語の文字コードは、多くの場合、UTF-8であると言い切っていい時代だ。Spring Bootのdefaultも、UTF-8のデータをうまくdecodeするようになっている。

UTF-8じゃないパラメータを扱う

UTF-8ではないパラメータをUTF-8としてdecodeすると、当然おかしなことになって、文字化けしたデータになってしまう。

  • データを一旦バイナリに戻し
  • 改めて文字コードを指定してdecodeする
という手順を踏めば、正しいデータが得られる。
new String(brokenData.getBytes("iso-8859-1"), 正しい文字コード);
でOK。のはずだが、これ、最初のdecodeがiso-8859-1で行われることを想定している。だから、最初にUTF-8でdecodeされてしまった場合、これではうまくいかないのだ。

Spring BootでISO-8859-1でdecodeさせる

TomcatとJettyを選べるのだが、defaultのTomcatの場合。NetBeansでいうところのその他のソース/src/main/rexources/<デフォルト・パッケージ>/application.properties

server.tomcat.uri-encoding=ISO-8859-1
と書く。書かなかった場合のdefaultの文字コードは、最近はUTF-8。昔は違ったようなので、これを書かなくてもうまくいくかもしれないが、バージョンアップしたときのことを考えると、書いておくべきだろう。





2017/03/26

sql_modeは悪魔の設定

なぜそのSQL文がエラーにならないのか?

久しぶりにMySQLを使ったシステムのお仕事。INSERT文でnot null制約の付いたカラムが書かれていないのに、エラーにならずに実行されていて???となったが、これ、sql_modeに STRICT_ALL_TABLES も STRICT_TRANS_TABLES もセットされていないからだった。

STRICT_ALL_TABLES と STRICT_TRANS_TABLES

MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.7 サーバー SQL モードの「厳密な SQL モード」にSTRICT_ALL_TABLES と STRICT_TRANS_TABLES の説明がある。厳密モードが有効でない場合、MySQL は無効または欠落した値に対して調整された値を挿入し、警告を生成します とあり、not null制約のカラムに値がセットされない場合は「調整された値を挿入」して辻褄を合わせてくれる。まさに、「小さな親切大きなお世話」な仕様だ。

デフォルト設定はどうなっているのか?

5.6, 5.7ではSTRICT_TRANS_TABLESがセットされる。
5.5以前にはSTRICT_TRANS_TABLESはない

5.6になってまともになったようだ。

AWS RDS MySQL 5.6にはSTRICT_TRANS_TABLESはない

ちゃんと設定しましょう。

今の設定はどうなっている?

my.cnfを確認。なのだが、

  • MySQLのサーバはインフラチームが管理していて、ログインできない
  • RDS MySQLなのでmy.cnfを見れない
といったケースもある。何のことはない。mysqlなどクライアントプログラムから繋いで
SELECT @@GLOBAL.sql_mode;
とすればOK。

sql_modeを変更するときの影響範囲は?

sql_modeはmy.cnfで設定する。ので、Server全体に影響する。だが、session単位(接続単位)で変更することができる。

SET SESSION sql_mode='設定したいmode';
複数のmodeを設定する場合も
SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
とすればよい。
いちいち書くのが面倒?当然Connectionを管理するライブラリ使っているでしょうから、そのライブラリをよーく調べてみましょう。SpringFrameworkなら、AOPでさっくりと。



2017/02/25

リクルートカードの繰上返済をWebで申し込む

楽Payの上限は10万円

1.2%のポイントがたまるリクルートカード。いいのだが、支払いが楽Payというリボ払いになり、毎月の支払いが10万円までになってしまう。リボで翌月以降に支払いがまわってしまうと、せっかくの1.2%が台無しになってしまうので、繰上返済を絶対にしなければならない。

コールセンターに電話してオペレーターに繋いでもらって繰上返済の手続きを依頼…。面倒だし時間はかかるし、1.2%の価値が全部吹き飛んでしまう。もっとスマートに申し込めないものかと、ググってみた。

繰上返済の手続きはWebからもできる

あっさりヘルプが引っかかった。
ショッピングリボルビング払いの繰上返済(一部・全額)をしたいときはどうすればいいですか?
リクルートカードもこの(3)の手順でOK。端数が揃わないだろうけど、残高を上回るように増やす分の金額を設定すれば、調整してくれる。

ヘルプにはATMで払う方法も書かれているけど、限度額まで使ったのではなければ、繰上返済だけで十分かな。

ポイントはPontaに交換

リクルートカードでたまるのはリクルートポイント。これはPontaに等価交換できるので、Pontaがたまるカードと考えて問題ないだろう。ローソンで買い物をすることはあまりないのだが、色々な商品の取り扱いがあるポンパレモールで使えるので、無駄になることはない。

還元率で得したいならおすすめカードはこれ


2017/01/20

情報処理安全確保支援士の申請書類

情報処理安全確保支援士の申請

情報処理安全確保支援士の最初の登録の申請期限が迫っている。1/31までに申請したものは4/1に登録、7/31までに申請したものは10/1に登録されるのだ。
試験は今年からなので、今は経過処置対象者(情報セキュリティスペシャリスト試験orテクニカルエンジニア(情報セキュリティ)試験合格者)からの申請だ。

「登記されていないことの証明書」を入手する

申請の書類の中で一番手間取りそうなものが、これ。東京の場合、東京法務局 取扱事務一覧表(供託、成年後見登記、国籍、人権):東京法務局をみても取り扱っている場所が少ない。
先日、後見登録課に行ったのだが、結構混んでいたので、申請書類は事前に記入して収入印紙も貼っておくのがよさそう。法務省:登記されていないことの証明申請(後見登記等ファイル用)から、申請書類と記入例を入手できる。記入例には住所と国籍の両方が記入されているが、証明書の提出先から指示がない場合、どちらかでよい。

登録申請書の勤務先欄

登録申請書に勤務先欄がある。現在無職なのでどうすればよいか問い合わせたところ、任意入力欄なので空欄のままでよいとのこと。 必須項目か任意項目か、どこかに記載されているのかな?

メリットはあるのか?

手間と費用がかかるのだが、申請するメリットはあるのだろうか?会社であれば技術力のアピールとして使うのだろうが、申請者個人のメリットは何?ニーズがあれば転職時のアピールポイントになるかもしれないけど。



2017/01/18

ガラケーのnanacoモバイルはnanacoカードとして利用する

nanacoカードで代用する?

古いお財布ケータイのnanacoモバイルは使えないので、nanacoカードを入手する必要があるかと思ったのだが、アプリを使わなくとも、カードとしては使えるようだ。iアプリが起動しない状態でも、nanacoでの支払いはできていた。

iアプリで使っていた機能は

残高確認、クレジットカードからのチャージの機能を使っていた。が、nanacoカードではこれらの機能はない。電子マネー nanaco 【公式サイト】 で行うか、店舗、ATMで残高確認、現金からチャージを行う。

これらの操作はガラケーのnanacoモバイルでもできる。ということは、アプリが動かなくなったnanacoモバイルであっても、nanacoカードと同じ程度には使えるということだ。

公式サイトとATMでチャージする

アプリが使えないので直接チャージすることはできないが、公式サイトとATM・店舗を使ってチャージできる。nanacoモバイルで10万円まで簡単にチャージする方法 | nanaco*nanacoにもあるが

  • 公式サイトで「クレジットカードからチャージ」を行い、センターお預かり分として入金する。
  • ATMや店舗で残高確認を行い、センターお預かり分からチャージを行う。
とすればよい。足りなくなったらその場でチャージするという、モバイルの手軽さが失われてしまう。10万円分をnanacoで払おうと、直接5万円チャージして、センターお預かり分としても5万円入金する、という場合も、一度ATM・店舗で残高確認する手間が生じる。が、後者はnanacoカードの場合の手順であり、つまり、nanacoカードと同等ということである。

nanacoモバイル払いはできない

nanacoカードでできないことはできない。ガラケーのアプリがあれば、カードリーダーがなくてもnanacoモバイル払いを行えるのだが、アプリが動かないので払えない。ここは、無理せず素直にクレカ払いとする。

こういう状況であれば、nanacoカードを入手しなくてもなんとかなりそうだ。



2017/01/09

キーボードを掃除する

かなり汚れるキーボード

汚れたキーボード

使っているとかなり汚れるキーボード。思い切って掃除することにした。

分解せずに掃除する

ウェットティッシュで拭く、エアーダスターで吹き飛ばすといった、比較的手軽な方法がある。表面についたホコリや汚れは取れるのだが、キー(キートップ)とキー(キートップ)の間に溜まったものは難しい。キーボードの掃除方法|分解や水洗いしなくても綺麗にする方法いろいろによると、サイバークリーン PCP-135 ブルーがいいらしい。スライムみたいにぐにゃぐにゃなので、キーの間の隙間まで入り込んでホコリを取るようだ。

分解して掃除する

キーのすきまからコーヒーやカップ麺の汁が入ってしまった場合、あるいは、サボっていて汚れがこびりついてしまった場合、分解掃除を検討しても良い。ただ、キーボードの構造は何種類かあるので、事前に検索して同じように分解掃除した例を探しておくべきだろう。人柱となることは止めないが、いずれにしろ、分解するので自己責任で。始める前に予備のキーボードを用意しておいた方がよいかと。

HHK Liteを掃除する

今回分解掃除したのは、HHK Lite。Happy Hacking Keyboard Lite2 ではない。幸いなことに、キーボードを清潔に。HHKを分解掃除してみた。というページや動画も見つかった。

というわけで、さっそくキートップを外す。外す器具はないので、精密ドライバーで代用。外したキーはバケツに入れて、中性洗剤を少し入れたお湯に浸けておく。左のShiftキー、スペースキー、returnキーには金具がついていたので、バケツに入れずにウェットティッシュで綺麗に拭いておく。 

キートップを外すと、こんな感じ。
ウェットティッシュで拭いて、細かいところは水で薄めた中性洗剤を染み込ませた綿棒で汚れをこすりとる。

キートップは、30分くらいしたら一通りかき混ぜて汚れを落としたのち、お湯を交換してゆすぐ。その後、取り出すのだが、まだ汚れているようであれば、ウェットティッシュでふき取る。その後はじっくり乾かす。細長い部分があって乾きにくいので、ドライヤーで乾かしたり、一晩おいたりして、とにかく確実に乾かす。乾いた綿棒で1つずつ水分を拭き取っていくのは、数が多いからよっぽどのことがない限りはやめておいた方がよいだろう。

乾いたら、キートップを1つずつはめて、元の状態に戻す。記号の位置とか、覚えているようで結構覚えていないので、配置のわかる画像を見ながら戻す。必ず、キートップが乾いていることを確かめてからはめること。水分が残っていると、故障する可能性があるので慎重に。