読者です 読者をやめる 読者になる 読者になる

ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

入園前の保育園の説明会参加しました

4月から子どもが通う保育園の、用品の引き渡しと入園前の説明会に参加しました。

受付をして用品受け取り

乳児と幼児で分かれて受付をして、以前行われた制服のサイズ合わせ等の際に注文した用品一式を受け取りました。
用品一式が間違いなく渡されたのか確認したいところです。
ですが、その後説明会があって人がどんどん増えていることと、元通りきれいに袋に詰められそうもないので、大きな物だけ確認するだけにしました。

受付をされていた先生は、園庭解放で子どものことを覚えていてくれていて、「少し大きくなったんじゃない?」と声をかけてくれていましたが、子どもは妻の足にすがりついていました。

f:id:AJYA:20170313233423j:plain
photo credit: dOOMZ Around Komaki, 21FEB16 via photopin (license)

名前を書くのは当然だけど、マークを書くのは面倒そう

用品を受け取ってしばらく待っていると説明会が始まりました。
配布された資料に沿って説明されました。

水筒は、コップにつぐ動作でこぼすので、ストローか直飲みでいいですよと言われて、最近練習としてコップにつがせてこぼしていたので、納得でした。
半袖半ズボンの体操着の上に重ねて制服を着ると、年少ではトイレで脱ぐのが間に合わないので、4月は制服の上だけでいいですよというのも納得しました。

説明の中で疑問だったのが、半袖半ズボンの体操着を着て過ごす教育なので、その格好はわかりますが、靴下もはかないという点が、家からなの?と思いました。
説明会が終わってから確認すると、家から靴下をはかず裸足に靴をはいていくそうです。
靴は毎日消臭しないと、足ににおいがうつりそうです。

資料と一緒に名札等も配られ、持ち物に書くマークの指定もありました。
単純な○や△ではなく、花が指定されていました。
書く前に何度も練習しないと、うまく描けそうにもありません。
一目でどの子どもの持ち物なのか見分けるためなんでしょうが、書くのは手間がかかりそうです。

帰ってから気づきましたが、年少さんでもオムツが必要な子はいると思います。
その点にはなにも触れられていませんでした。
みんなトイレ行きたいとアピールはできるのでしょうか。
乳児は、オムツを預けてくださいという説明がありました。


子どもの制服やかばんをかけるため、ポールスタンドを購入しました。
自分でかけたりできるようになるには、時間がかかるんでしょうね。

ハーゲンダッツのギフト券は、値引き券として扱われました。

1ヶ月ちょっと前に、ハーゲンダッツのギフト券が当たったことを書きました。
ajya.hatenablog.jp

交換するなら、期間限定の「パンプキン」「紫いも」にしようと決めました。
www.haagen-dazs.co.jp

イオンの冷凍食品売り場をチェックしたら、最近発売された「ごま胡桃」と一緒に「パンプキン」「紫いも」があったので、ハーゲンダッツのギフト券と交換することにしました。
f:id:AJYA:20170129055332p:plain

ルフレジでは店員さんに操作してもらう

「パンプキン」「紫いも」以外には、子ども用の飲み物とひらたけの4点しか買うものがなかったので、セルフレジで会計することにしました。
ルフレジを使う前に、店員さんにギフト券はどうすればいいのか確認すると、商品を全てバーコードスキャンが終わったら、係員呼び出しを押してくださいと言われました。

言われたとおり、商品を全てバーコードスキャンして、係員呼び出しを押して店員さんに来てもらいました。
店員さんには、ハーゲンダッツのギフト券に書かれている分の金額が、合計金額から引かれますと言われ、レジを操作して金額を入力されていました。

ハーゲンダッツのギフト券に書かれていた金額は、588円です。
イオンのハーゲンダッツのミニカップは1個267円で売られていて、2個534円です。

ハーゲンダッツのミニカップ2個とギフト券の交換だと思っていたので、534円がなくなるのかと思っていたらそうではなく、「金券支払」としてレシートには記録されていました。
合計金額からハーゲンダッツのギフト券に書かれていた588円を引いた残りを支払って、会計は終わりました。


以前サークルKでクーポンが当たり、レジで商品に引き換えてもらうつもりで店員さんに渡したら、割引券扱いをされて、一緒に買おうとしたものから値引きされた金額を言われたことを思い出しました。
同じ仕組みをイオンでは採用されているんですね。

1週間の振り返り(2017/3/4〜2017/3/10)

ガストの10(テン)カラ和膳のから揚げです
f:id:AJYA:20170311232805p:plain
もう少しから揚げ自体が大きいとお得に感じますが、この大きさでは値段なりかなと思います。

  • 2017/3/4(土)
    歯医者で歯茎に隠れた歯石を取ってもらいました。
    取れた歯石を見せてもらえるのはいいのですが、ガーゼの上に血と一緒に見せられると、わかりにくいです。
  • 2017/3/5(日)
    お昼ご飯をガストで食べました。
    キッズハンバーグプレートを注文して出てきましたが、子ども用のフォークやスプーンは出てきません。
    仕方なく店員さんを呼び出して、お皿と一緒持ってきてもらいましたが、以前は子ども用のお皿はアンパンマンのイラスト入りだった気がしますが、今回はなにもイラストがありませんでした。
    キッズハンバーグプレートには、ちょっとしたおもちゃとスクラッチが付いていますが、それも言わないともらえませんでした。
    注文時に割引クーポンを示しているのに、正しく反映されず、レジで訂正してもらいました。
    店として大丈夫なんでしょうか。
  • 2017/3/6(月)
    お客さんからの質問の意味が分からず、悩みました。
    文章を読みながら対象を何度も確認した結果、やっとわかりました。


  • 2017/3/7(火)
    Safariでウィンドウが閉じないので、調べて対処しました。
    対処内容を考えると、なるほどと感心しました。

ajya.hatenablog.jp

  • 2017/3/8(水)
    2年以上前に作成したシステムで、外部の方が修正された部分を修正していました。
    当初なぜこのようなソースコードにされたのかわからず、調べる羽目になりました。
    内容把握して元々の設計思想を生かして修正しました。

ajya.hatenablog.jp

  • 2017/3/9(木)
    お客さんから、記録として残すように指示されていない項目の調査を依頼され、メールや入社日から推測して、つじつまが合うように日付を決めて回答しました。
    記録として残すように指示していないことを当然わかるでしょうと依頼するのは止めて欲しいです。
  • 2017/3/10(金)
    1件やり忘れていた仕事があって、あわてて対応していました。
    なんとか対処しましたが、普段忘れないように管理しているのが、今回は忘れていました。
    他にもないかと確認して、なかったのでよかったのですが、万が一複数あったらと思うとゾッとします。


少し落ち着いて仕事ができる予定でいましたが、先日納品した案件で時間を予定外に使ってしまって進められていなかったために、余裕なく仕事をしていました。
なんとか間に合わせている状況です。
月末ギリギリに作業を依頼されている案件の内容を確認していますが、お客さんからはあれこれ要望が出てきたので、作業結果の報告に時間がかかってもいいのか確認をしています。
時間がかかるのが困る場合は、どこまで削減できるのかの調整となり、難航が予想されます。

失敗も記録しておくことで、次の機会に生かすことができる

年間を通して、あるシステムの運用をしています。
もう6年目くらいなので、システムの運用手順は記録としてまとめてあります。
気がついた点、改良すべき点があれば、どんどん記録を修正していっています。
ディレクトリ名とファイル名が書いてあり、修正すべき点が書いてあっても、エディタでファイルを開く手間があったので、フルパスを記載するようにした等、これまで様々な修正をしました。

もうこれで修正することはないだろうと思いながら、今年の設定をして運用をしていました。

f:id:AJYA:20170311001901j:plain
photo credit: L. M. Bernhardt Fraktur Nietzsche (1) via photopin (license)

利用者のミスから、手順の記録を修正

問題なく設定を行い、運用をしていると、お客さんからデータが見えないという連絡がありました。
確認すると、確かにデータが見えません。

データを確認すると、データを登録された方が、データの一部の登録を行ったときにエラーが発生していたのに、そのまま登録を終わらせてしまっていたのが原因でした。
その後設定作業を行ったときにデータは確認していましたが、エラーが発生したまま登録を終わらせてしまっているとは想定していなかったために、気づいていませんでした。

どうすれば今回のデータが見えないという事象を防ぐことができるか考え、設定作業が終わった後の確認手順の記録を修正しました。


これからも記録を元に作業をして、修正すべき点を見つけたら修正し、より良い記録としていきます。

ソースコードとデータベースの値を見て、何をしているのか把握する

2年以上前に作成したシステムがあります。
ひととおり機能の作成が終わり、僕の手から離れました。

その後デザインを修正するというので、外部の方にソースコードとデータベースは渡りました。
デザイン修正と聞いていたので、HTML部分だけなら修正されたのだろうと考えていました。
その後特に修正完了の連絡は僕のところにはなく、気がついたらデザインが修正されてシステムは稼働していました。

外部の方の修正内容を把握する

今回システムで表示している情報や画像の変更が必要になったので、改めてシステムを把握することになりました。
デザインを修正される前の状態はなんとなく覚えてはいます。

デザインを修正された後の状態を改めて見ると、僕が作成した時点とは表示している情報量が少なくなっています。
デザインの修正だけと聞いていたのが、どうやって情報量を少なくして表示するのを実現しているのかとソースコードを確認しました。

てっきりデータベースの表示/非表示設定用のカラムを操作したのかと思っていましたが、実はそうではなく、ソースコード上で判定を行って、表示したい情報だけに絞り込んでいました。
データベースの表示/非表示設定用のカラムを操作すればできることを、わざわざプログラムでの処理部分を改変しているのです。
どうやって表示したい情報だけに絞り込んでいるのか理解するために30分ほど時間を使う羽目になりました。

f:id:AJYA:20170310003122j:plain
photo credit: wocintechchat.com wocintech (microsoft) - 222 via photopin (license)

元からある機能を有効にする

外部の方に渡す前のソースコードは手元に残っています。
ソースコードを同士を比較して、どこでどのように改変したのか把握して、デザインを崩さず、データベースの表示/非表示設定用のカラムを用いて処理するように修正すると、ソースコードの見通しがよくなりました。

データベースの表示/非表示設定用のカラムも操作して、必要なデータのみ表示の設定をすると、修正前と同じ表示をするようになりました。

この状態から、今回表示したい情報や画像を設定して、予定通りの表示をするようにしました。


小規模なシステムなので短時間で把握して修正できました。

ブラウザがSafariでも、タブで開いているウィンドウをJavaScriptで閉じる方法

先日3年前に稼働させたシステムを再度稼働させる業務を行っていると書きました。
ajya.hatenablog.jp

このシステムに、作業が終わったら終了ボタンを押して、Webブラウザのウィンドウを閉じてもらうようになっている画面があります。
Internet Explorer 11で動作を確認すると、終了ボタンを押したらタブで開いているウィンドウは閉じました。
Safariでは、終了ボタンを押してもタブで開いているウィンドウは閉じません。

終了ボタンを押すと、以下のJavaScriptでウィンドウを閉じるようになっていますが、Safariではできないようです。

onClick="window.close();"

f:id:AJYA:20170308060635j:plain
photo credit: dotConferences dotJS 2016 via photopin (license)

JavaScriptでタブで開いているウィンドウが閉じないへの対処方法

3年前もできていなかったもしれませんが、このまま稼働させていました。
対処方法がないか検索してみると、以下のようにするとタブで開いているウィンドウが閉じるという情報がありました。

onClick="window.open('about:blank','_self').close();"

実際にSafariで確認すると、終了ボタンを押したらタブで開いているウィンドウは閉じました。

このコードからすると、

  1. 空のウィンドウを現在のタブのウィンドウに開く。
  2. ウィンドウを閉じることでタブのウィンドウが閉じられる。

ということが行われているようです。


Mozilla Firefox/Google Chromeでもできたので、どのブラウザでもこの方法で対応ができるようです。

データを登録したらデータの確認は当たり前のこと

3年前に稼働させたシステムを、再度稼働させる業務を行っています。
3つの団体が利用するシステムとなっています。

3年前は同じシステムに登録するためのデータなのに、なぜか3団体がそれぞれのフォーマットでデータを作成したために、3種類のフォーマットに分かれてデータを支給されていました。
今回は3団体が統一して1種類のフォーマットでデータが支給されました。

3年前に稼働させたシステムにデータを登録するためのプログラムは、3種類のフォーマット用に分かれています。
今回は1種類のフォーマットでデータが支給されたのので、1種類のフォーマット用に作り直すべきかもしれません。
時間がないこともあって、フォーマットは同じだけれど、以前と同様に3団体それぞれに分かれた処理を行うようにしました。

f:id:AJYA:20170307125021j:plain
photo credit: Christoph Scholz Hacker mit Einsen und Nullen - seitlich via photopin (license)

チェックに利用するデータが異なる

1団体目のデータをシステムに登録しようとすると、値が一致しないためにエラーが発生しました。
データを登録する際に、既存のデータと2項目が一致しないとエラーとなるように登録するためのプログラムは作成してあります。

データを確認すると、確かに既存のデータと2項目が一致していません。
既存のデータを入れ間違えたかと確認したところ、既存のデータを登録した後に2項目のうち1項目の変更があったのを、こちらに連絡がなかったため、反映されていませんでした。
今回支給されたデータは変更が反映されていたために、既存のデータと2項目が一致しないエラーが発生しました。

データを登録して動作を確認しなければならないので、システムにデータを登録するプログラムを、変更がない既存のデータ1項目と一致したら登録するように修正したら、1団体目のデータの登録はできました。

以前はなかったデータが存在

2団体目のデータをシステムに登録すると、エラーの発生もなく、そのまま登録が終わりました。
システムで確認すると、支給されたデータには存在する情報が表示されません。

データベースを確認すると、支給されたデータには存在する情報が登録されていません。
システムにデータを登録するプログラムを確認すると、3年前はデータが支給されなかったため、該当のデータを登録をしないようになっていました。

データが存在するからには表示しなければならないので、システムにデータを登録するプログラムを、1団体目と同様に該当のデータを登録するように修正したら、システムで表示されるようになりました。


データが登録できなければ、なぜデータが登録できなかったのか確認するのはあたり前です。
データが登録できていると、信用してデータの確認を行わない可能性が出てきますが、3年前に稼動させたシステムのため、どこまで信用していいのかとデータの確認を慎重に行っています。