へなちょこSEの考察

0x22歳のへなちょこSEが、日々思うことを考察します。自社内、金融系を経て現在法人系PKG開発に従事。

e-お薬手帳

大阪でお薬手帳を電子化するという試みが始まったようです。
携帯にお薬手帳の情報を記録していけるというもの。
これいいですねー。
実際、病院行く時に必ずしもお薬手帳を持っていけるわけでもないですし。


ただ、一点思ったのは、クラウド化しとけばよかったのにな-ということ。
携帯失くしたらデータ消えちゃうんじゃちょっと困りますよね。
あと、災害時にお薬手帳は持ち出せないけど携帯なら持ち出せるよね、って発想らしいのですが、それすらダメだった時に困ります。
クラウド化しとけば、携帯すら持ち出せなくても、検索して探せる。
より災害時に強くなるんじゃないかなぁ。


フィンランドかどこかでは電子カルテを全病院で共通化しているそうですが、お薬手帳もそういう風にしていけたら、スマートな医療に繋がりそうですね。


そう言えば電子カルテって今は各病院ごとに入れてるのかなぁ?
であれば、SaaS型のサービス作ってなかなか電子化出来ない小規模の病院に導入を促すとかしたら売れそう。
と思ったらそういうのすでにありました。

MegaOakSR for SaaS

まぁそりゃそうか。

憲法改正しようとする人の言い分

憲法改正をしようとする人の言い分として、こんなのがあります。
「恒久的に平和な国なんて幻想だ」と。


これ、言ってることはよく分かるんです。
そりゃまぁ今の近隣国の状況とか見ても、ずーっと平和なままってことはなかなか難しいだろうと思います。
自分たちから攻めこまなくても、攻め込まれる可能性は全然ある。
でも、ちょっと待てよとも思います。


理想って、それを目指すから意味があるんでしょと。
平和が仮に幻想だとしても、平和を目指すのがあるべき姿なんじゃないのかなぁ。


残業はしないのが理想なんだから、残業0を目指します!が理想で、でもまぁ現実的には無理だよね、って感じですかね。
現実的に無理だからって、残業0を目指すことは意味が無いことではないはず。
というか0を目指さなきゃ減らすことなんてきっと無理だし。


自分は、今の憲法はすごくいいと思います。
そしてそれを誤魔化しながら存在する自衛隊という存在も、現実解を暗に示しているだけなのではないかなと。
理想を目指している憲法を、わざわざ現実に合わせてスケールダウンさせる必要はないのではないかなぁ。
もしも戦争が起こってしまったら、誰も自衛隊が戦うことを否定しないと思うし。
グレーはグレーなままでも、いいのではないかと思ってしまいます。

就職活動の時期

就職活動の時期を大学4年生の4月以降にしよう、というのがあるようです。
もっと学業に専念させるために、就活は遅くしようという意図みたいですね。


これってなんかおかしいなぁと思うのは、本当に就活が学業に専念しない理由なのか?というところです。
そもそも就活が始まる前から学業に専念してないんじゃないの?
少なくとも僕の場合、3年生の就活時期なんて、もう単位もだいたい取り終わってて、就活は大して影響がありませんでした。
普通に1,2年次に学業に専念していれば、3,4年次は研究に専念するわけで、そうするとむしろ4年次に就活が被るほうが影響があると思います。


大学の授業に魅力がない、というのもあると思います。
大学に意思を持って進学してない、というのもあると思います。
大学も学生もどちらも恐らく悪いところがあって、噛み合ってないのでしょう。


あとは、就活が大変だということも問題なのではないでしょうか。
自分は比較的うまいことやって、且つ氷河期前でもあったのであっさり決めちゃった方ですが、人によっては30社も40社も受けてます。
そんなに受けても一社も受からないのは、自己分析が甘いか企業研究が出来てないか、何かしら原因があるはずです。
それをサポートする体制を充実させた方が就活を早く終わらせられることが出来て、学業に専念させられるのでは?


とりあえずステレオタイプな「就活マニュアル」「面接マニュアル」をやめて、もっと自己分析と企業研究をしっかりやらせる。
きちんと自己分析ができて企業研究が出来れば、自分の長所と企業のニーズがマッチしてるかわかるし、わかっていれば自信を持って売り込める。
入社後のミスマッチも減って企業側も喜ぶ。
そういう形にしていく必要があるんじゃないかなぁ。


そのためには、企業側も「誠実な」企業にならないといけないけど。
理想論だし、空想論かもしれませんね。

「Javaは出来ますか?」と聞くのは重要か?

言語知識を問われることは、SEなら多いと思う。
その時、Javaの案件だからといって「Javaの開発経験は?」と聞くのはちょっとずれているのでは、と思う。
もちろん、Javaが出来るに越したことはない。
でも、プログラミング言語のスキルって、もうちょっと幅広く見て考えたほうがいいのではないだろうか。


たとえば、関西弁の文章を書かなきゃいけない仕事があったとして、「3年間関西弁話しました!」という外国人と、「生まれてこの方広島弁です」という日本人と、どちらのほうが上手く書けそうだろうか。
さすがに年数に差がありすぎてあれだけど、まぁ普通に考えれば「日本語」に長けている方を採用するのでは。
プログラミング言語にしても一緒で、Javaができる、というよりも、「オブジェクト指向プログラミングができる」とか「静的型付け言語が使える」というレベルでスキルの高い人を探すのが筋なんじゃない?と思う。
そういう意味合いを兼ねての「Javaは出来ますか?」なのかもしれないけど。


なので、新しいプロジェクトに入るときに「C#は出来ますか?」って聞かれた時、「やったことないけど出来ると思います」って答えた。
もちろん入ったその日から即戦力という訳にはいかないし、未だにC#の文化に慣れない部分もあるけど、できている、と思う。
むしろ「Javaできます!」って言っていて、見てみたら全然オブジェクト指向じゃなかったって人もいます。
その時思うのは、「あなたが出来るのはJavaじゃなくて広い意味でのプログラミングですね」ということ。


そういう意味では、自分が「Javaができる」と自信を持って言うのってすごく難しいです。
それにSEに必要なのは特定の言語知識じゃなくて、「開発経験がある」ということと、「新しい言語でも習得することができる」ということなのではないかと。
どこにいってもなんでもできるようになります、っていう人になりたいです。


と、ここまで書いてでもこれって多分一部の会社の話なのかなぁとも思ったり。
SE派遣とかで行く場合は、「即戦力」を求められるから、「Java!」とか「Oracle!」とかに縛られるのかなぁ。


IT業界の「スキル」ってすごく曖昧だなぁと感じていますというお話。多分。

「○○はもう古い!」という言説

Javaはもう古い!次の主流は「関数型」


上記記事をチラ見して。
といっても上の記事とは直接的には関係ありません。


「○○はもう古い!」とか「○○は死んだ」とかよくある言説で、特にIT系の人はこの話題が好きなようです。
まぁ確かに、新しいものがどんどん出てきて、それを勉強したらそっち使いたくなって、「○○はもう古い!」と言いたくなる気持ちはよくわかります。
僕も新しもの好きなので、「Javaはもう古い!」とか言ってScalaに行ってみたりしたい所ではあります。
(でも、Scalaのことは全然わかってません)


とは言えこの言説につきものなのが、あらゆる背景を無視していることが多いこと。
(再度申し上げますが、上で挙げた記事のことではありません)
「これからは関数型の時代だ!」って言ったって、関数型に不向きな処理も当然あります。
新しいものは便利な機能や既存技術の悪いところを直していることが多いので、優れている場合は多いですが、時と場合。
静的型付け言語がうんぬんなんて話も盛り上がってましたが、それだって使いドコロの問題。
万能な言語なんてありませんし、万能包丁は石は切れません。
足踏みミシンなんていまどき誰も使いませんが、電気がないときでも使えるというメリットが有る。


でも、「やっぱJava最高だわ一生Javaでいくわ」とか言うよりは、「Javaはもう古い!次はScala!」って言う人のほうが、前に進むことは出来る気がするんですよね。
もちろんJavaの技術を磨くことも重要ですけど、新しいものがあるということを知っている上でJavaを使い続けるのと、知らずに使い続けるのは雲泥の差です。
昔、Strutsの存在すら知らない人が生J2EEで書かれた社内フレームワークを頑張って使っていました。
それがまた結構バグが有ったので、いろいろ苦労していたのですが、Strutsを知っていればもうちょっと楽だったろうになーと思います。


結局はバランス感覚が大事なのだと思いますが、SEはアンテナを張ってなんぼなのではないかなと言う気はします。
自信を持って「○○はもう古い!」といえるように、もっと勉強して行かなければなと思う今日このごろです。

SQLでの切上げ(Oracle)

Oracleの関数で、小数第○位切捨てにはtrunc関数が使えます。
trunc(column, 2) とすれば、小数第三位切捨てとなります。
マイナスを指定すれば整数の上位桁による切捨て(十の位、百の位など)も可能です。


が、切り上げに関しては整数値への切上げのceilという関数しかありません。
四捨五入もあるのに、なんで切り上げだけ小数桁に対応していないのでしょうか。


とはいえやりようによってはできます。
ceil(column * 100) / 100 とすれば、小数第二位にて切上げできます。
100の位でやりたければ*と/を逆にすればよいです。


切上げを手で実装するよりははるかに楽だと思います。
できることとやりたいことのギャップを見極めて、その差を埋める何かを考えればいいわけですね。

クイズに必要なこと

ちょっと「え、それどうなの?」と思う記事があったので。


「割り算」を操る人、「割り算」に操られる人


ビジネスにおいて、割り算は大事だよって話。
ビジネスに割り算が大事(というか評価基準をきちんと立てることが大事)という点はまったくその通り。
どの基準で物事を測るかによって、ぜんぜん違う結果が出ます。


問題は最初のクイズ。

6÷2(1+2)=?

というやつ。
これの答え、9だとおっしゃる。
いやいや、1でしょと思った方。
数学好きな方とお見受けします。・・・・違います?


この問題のキモは、「2(1+2)」をどう解釈するか。
初めの2の後に×が存在するはずですが、省略されています。
するとこれは係数と考えられます。
2(1+2)は(2×(1+2))と捉えられるわけです。
そうすると最初の式は、6÷(2×(2+1))=1。


で、この記事を書いた人は恐らく、係数ではなくただの省略と捉えている。
そうすると、6÷2×(2+1)なので、3×3=9となる。
あくまでもどちらも、数式の捉え方の問題であり、場合によって"("の前の数字を係数とするか乗算記号の省略とするかは変わるので、どちらも間違いでないということになります。
(一般的には、カッコの前の省略は係数と捉えるものではないかと僕は思いますが・・・・)
この問題は、式の読み方の「前提」をきちんと定義していないと答えが変わるわけです。
イメージとしては、日本の文化を前提にクイズに答えたら、アメリカの文化を前提にした答えを言われたみたいな。


この手の問題(クイズ)は昔からありますが、クイズというのは必ず1つの答え(答えが複数としたらその1セット)が導き出せるものでなければならないと思います。
そのために前提は必要で、「前提が足りているかどうか」という視点が大事なように思います。