Excelの関数でプログラミング

今日、AccessのDBから、Webで表示するデータへの変換をやりました。

Accessは、フォームを活用して、Excelで書いて紙に印刷して管理してた情報を
電子化したもので、以前のデータが活用できると好評です。

さらに、Webで見れるように、という話だったのですが、データの連携ができずに
手作業でアップすることに。

最初からトータルで組めば、いいものができたと思うのですが、プロに依頼すれば
費用もそれなりな仕組みです。地方の小規模な大学には、そんなお金は無いので
職員が手作りすることに。でも、それなりに便利な仕組みができました。

年に一回、AccessからWebにアップするくらいなら、と受けて、ちょこちょこって
Excelを操作して、アップするCVSを作成しました。

ネックになったのは、Accessのフォームのラジオボタンで実装した箇所。
ここは後から仕様を決めたので、Web側は文字列で格納し、プログラムで表示していた。

Access側は、ちょうど4つの「TURE」または「FALSE」がある訳だが、そこから
TUREに該当する分類を「、」で区切った文字列を作る。これをExcelの関数で書くには
どうするか。

私は、2つづつ文字を作っていき、最終的に4つ分の文字を作ることにしました。

こんなif文で場合分けしていきます。

=if(and(C=””,D=””),””,if(c=””,d,c))

こういうのは、どんな言語でもプログラムを書く人ならよくやるifの入れ子ですが、
Excelのセルの中に計算式として組み込むには、ちょっと複雑かな。

まあ、一行分作ったら、あとはコピペするだけなので、データが多くても使えます。

phpMyAdminがばれた

2月中に設定したCentOSに、phpMyAdminを組み込んでいたのですが、サボって制限 を設けていなかったのが、インターネット内のいたずらっ子達にばれてしまったようで 先週末からアクセスが増えていました。

急いで制限を設定したのですが、この状況がしばらく続くかと思うと、ちょっと憂鬱 な気分です。

今は大学が春休みで、アクセスする学生がいないことから、いいのかもしれませんが、頻繁に使われる時期はやめてほしい。ということで、制限させてもらました。これで、アクセスが減るといいな。

LANケーブルの自作

昔は、パソコンのほとんどがLANケーブルで、ネットワークに接続していた。しかし、ここ何年かはすっかりWiFiに置き換わってしまい、ほとんど見ない。自宅では、WiFiに接続するスマホとかゲーム機など6台もあるというのに、LANケーブルは光の終端装置とルータを結ぶ1本だけしか使っていない。

これは派遣先の大学も同じで、それこそ数百台ものPCがWiFiに接続している。しかし、校舎には 昔使ったLANケーブルが残っており、今も利用できる。今日は、WiFiが不調なパソコン向けに、 そういったLANケーブル用のコンセントを利用することになった。

とはいえ、ちょうどいい長さのLANケーブルが無い。いっしょに働いている職員の方が、サーバー室でコネクタを加工していない長めのケーブルを見つけて、コネクタを付けて使うと言い出した。

昔は私も、よくLANケーブルを自作していた。50mくらいのケーブルとコネクタを購入して、ぴったりの長さのケーブルを作ったり、コネクタのツメの壊れた端子を修理したりしていた。当時の情報システム部門の基本スキルみたいなものだ。

いっしょに働く職員の方は、得意技だそうで、あっという間にコネクタを取り付けていた。この手際の良さは、かなり慣れている。ちょっと見直してしまった。まあ、今はめったに使わないスキルですが。

pythonで感じる頭の固さ

私が学生のころ、趣味のプログラミングと言えばBASICで、マニアな人はアセンブラをやっていた。 私も経験しているが、プログラムを本格的にやったのは、C言語だったと思う。大学4年生の少なくとも 半年は時間を忘れて取り組んでいた。

その後、仕事ではサーバー管理や簡単なWebサイトを作ることがメインなので、awk や perl、 さらに PHPといったスクリプトが中心でした。かなり後になって rubyやJavascriptも使うようになったので すが、基本はC言語でなんとかやれてきました。

最近、python を使ってスクリプトを書いているのですが、これはかなり異質な感じがする。 rubyやJavascriptの配列には、かなり苦労したのだが、pythonの配列は使いこなせる気がしない。

SQLで欲しいデータを抽出するのに、副次問い合わせを何重にも組み合わせてやったことがあるが、 そういった厳しい制限がかかっている感じがする。配列が使えないとプログラムが書けない訳だが、 今日も、何でこの書き方で動くのか、理解に苦しむ、というコードに出くわした。

こういう状態を、頭が固くなった、と言うのだろうか。