memorandums

日々の作業ログです。

データベースのテーブルのカラムの型についてふと思ったこと

今日、帰りの電車で統計の本を読んでいて、ふと、気付きました。

学生のときにSQL学んだことは無かったので、会社に入ってOracleを触るようになって、必要に迫られて必要な分だけ勉強した口です。

前職が制御系だったので、そんなに複雑なリレーションは必要とされず、フラットファイルに記録する代替手段として使っていた感じでした。

カラムの型は基本的にはコード(構造体)や画面仕様由来で決まることが多く、上記のツイートの通り格納するデータの内容からなんとなく決めていたように思います。

これは前職に限らず、以下のような書き込みもありましたので、まあ、よくある話だろうなぁと思ったわけです。

このエントリーの出だしで書いたように、統計の本を読んでいて、ふと、ツイートのように思ったんですね。

統計もデータベースも扱うのはデータですから結びついて当然ですが、意外と関連付けて解説している記事はないのではないかと。。。思いました。

はい。

「Googleデバイスを探す」から使わなくなったデバイスが削除できない件、つら

以下のようなことをやったことがありました。

memorandums.hatenablog.com

しかし。。。遅い。

画面は大きいけど、とにかく遅い。

Play Storeが動くので、Mendeleyとかいれて論文リーダーに使えると思ったのですが、遅い。そして重い。

先日、諦めて、工場リセットしたんですね。そしたら快適。

身の程を知るべきでした。

で、今日。

たまたま、「Googleバイスを探す」をみていたら、上記で登録した端末情報が表示されます。。。以下のような感じ。

f:id:ke_takahashi:20191206204437p:plain

参ったなぁ。。。とりあえずログアウトしたり、端末削除したりしましたが。。。ダメ。

ぐぐるとこの辺の書き込みがたーーくさんありました。1つくらいは成功した人いないかな。。。と思ったけどダメ。

How to remove unused device from Android Device Manager tool - Quora

消せない仕様のようです。

もう手元にないデバイスが、なぜか自分のデバイスとして「デバイスを探す」に表示されます。気持ち悪いですねぇ。。。

でも、端末もないし、端末が他の人の手に渡っていたら。。。そもそもログインできないでしょうから、安全という判断なのでしょうか?天下のGoogleさんは。

認識していないわけではない問題と思いますが長年対処を放置しているところを見るとそんな感じと思われます。

でもなぁ。。。「自分の」ページだから、そこから消す分には自分に権利があってしかるべきと思うんだけどなぁ。。。よっぽどコード的かシステム的か依存関係が複雑で対処するコストが見合わないのか?

対処しない理由がわかりません。

たぶん、もう一度、 Kindle FireAndroid化してデバイスを探すをオンにしてオフにすれば消えるんじゃないかなぁ。。。面倒だからしないけどねぇ。

何とかしてください、Googleさん。

■追記(2019/12/7)

やっぱり表示を消したかったので、Kindle Fireに再度、 Goole Playを入れてAndroid化?してみました。デバイスを探すに反応する(デバイスを選択して音を鳴らすなど選択すると音がなる)にも関わらず、デバイスを探した結果では「アクセスできませんでした」と表示され、さらにGoogle Playのデバイスリストにも表示されない状況でした。

せめてこの一覧に表示されれば「非表示」にするチェックボックスがあるのですが。。。あれこれやってもダメでした。最近、Androidテレビを購入したのですが、これで一度だけGoogleにログインしたので、Google Playのデバイスリストに表示されています。これもログアウトしているし、アカウントもテレビから消したので、Google Playから消したいのですが消せません。しかたがなく「非表示」という選択をしています。

表示したいものが表示できず。消したいものは消せない。何ともわからない仕様です。

道標って大事ですね、でも読んでできなくても諦めないでくださいね

今朝、Kindleで本を読んでいたらプロコン関係の本が目に留まり、レビューや紹介ブログなどをみてこの本はホンモノやなぁ。。。と思いながら、今月は支払いが多いから「あとで買う」にしとこと。

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~

関連本として、紹介されていた以下の2冊をぽちりました。

若い人がイマドキの環境で「こうやったらうまく学べたよ」というメッセージが書かれていると思いポチったわけです。

じっくり読んだ。。。というわけではないので、もしかしたら間違っているかもしれませんが。。。

こちらの方はRubyが好きな方なんだな。。。というのがよくわかるし、タイトルの通り、競プロを進める手順が詳しく書かれていて(しかも2019年なので昔の本とは違って間違いが少ないはず)参考になります。具体的な問題の解き方とかアルゴリズムの話はありません。とにかく始めたい人向けですね。

次はこれ。Ver.5とのことで、ずいぶんと売れている本なのではないかと想像します。

Web、ゲーム、AI、スマホアプリ、XRといま注目されているプログラミングをどういう道筋で学べばいいか書かれています。これだけ俯瞰した書籍は確かにないのではないでしょうか?それぞれの分野の経験者がブログやQiitaに書いている記事は見かけますが。

著者が最初の章で紹介しているプログラミング学習の基本8ステップがあります。以下、書籍からの引用です。

1.プログラミングを学ぶ目的を作る
2.自己評価を上げる
3.作りたい目標を決める
4.作るために何を学習すればいいか知る
5.作りたい物のための知識を得る
6.得た知識を組み合わせて作品を作る
7.作品を発表して改善する
8.人に教える

1〜3は精神論と著者も述べています。具体的には4からです。

本人がやりたいな〜と思えないことは学べないでしょうから、まさにその通りと思います。

でも。。。ここが難しい。

何となく「やりたいなぁ〜」とイメージしていることと、実際にやってみたときに感じる壁の高さとの間のギャップに挫折してしまう。。。

こういう状況を何とかするために、著者の方々は MOOCSを中心とした教育サービスを展開されているのだと思います。

スポーツだって語学だってちょっとした趣味だって、やってみたいなぁ〜と思うことを実際に始めるには壁がありますし、さらにそれを習慣化して1年以上続けることはさらに難しいと思います。

最近みかけたツイートによると筋トレを1年以上続けられる人は3%なんだとか。始められる人自体がそもそも少ないでしょうから、そこから実際にやり始めた人も長続きはしないってことです。

このエントリーを書こうと思ったのは、この本をdisりたいわけではありません。

ただ、プログラミングに興味を持った人が、この本を手にして、実際にやってみようとして挫折した人がいたら。。。ちょっと待ってねっていいたかったからです。

私の体験では時代が違いすぎるので参考にならないかもしれませんが。。。

今、プログラミングを学ぶ環境は整っています。パソコンとインターネットさえあれば、ほぼ無料で情報が手に入ります。必要なのはやる気と、欲を言えば仲間とメンターでしょう。

それでも、私がこの15年くらい見てきた学生さんの多くは、私が学生のときと同じように、大学生になるまでプログラミングしてアプリ開発したことがある人は稀ですし、実際に課題でプログラミングができるようになっても、自分のために努力して成果を出せる人は稀でした。

学生さんの名誉のために。。。私が知らないだけでいたのかもしれませんし、最近は在学中に成果を上げる学生さんも増えています。

そんな学生さん達も企業で働き出すとしっかりと仕事をされています。ここちょっと覚えておいてくださいね。

卒業した学生さん達に話を聞いたわけではありませんが、自分自身の経験と重ねると何となく想像できるんです。

私自身も小学生からパソコンを触り始め、ベーマガを写経してゲームを楽しんでいました。でも、自分でプログラムを一から書くことはありませんでしたし、よくわかりませんでした。

大学生になっても院生になっても、バイトや研究で必要なプログラムを書くには書きましたが、特に勉強らしい勉強はしませんでした。自信もありませんでしたし、「暇だな〜プログラムでも書くかぁ〜」とは思いませんでした。もっと楽しいことがありましたから。

長くなりそうですので、さっさと結論にたどり着きたいのですが。。。すいません。少々酒がまわっています。

著者が挙げた「何かやりたいこと作りたいことを決める」ってことが、実は普通の人には難しいのではないかってことなんですね。

本を読ませていただいたことだけではなく、自分が学生を指導してきて感じてきたことも背景としてあります。筋トレの例でも触れましたように、著者のように動機をもって始めた人が続けられるってだけでもうそれは凄いことなんですね。

そこが普通の人には難しい。。。それを私自身も体験してきましたし、そういう人もいるんじゃないかと想像するんです

会社でコードを書くようになると、自分だけのためじゃないですから、失敗すると痛い目にあいます。自分だけのためであれば、何となく適当にコードを書いてもいいわけですが、お金をもらって仕事するとなると。。。やはりしっかりとコードを書かなきゃ、テストもしっかりしなきゃ(多くはメンターや上司にしっかり指導されるんですけどね)、そもそも開発する目的もお客様から与えられます。細部がわかってくるとどんどん面白くなっていきます。

会社で仕事をしていると、自分に特に作りたいものがなくても、お客様が課題を持ち込まれて、その課題を解決するために、技術を使うわけです。。。お医者さんが病気になった患者さんを医術で治療されるのと同じです。

もし、本を読んだり、サイトや動画をみてやってみたけどうまくいかなかった人も、ぜひ諦めないでください。著者の方が書かれているようにプログラミングができるようになることで、様々な未来が開けます。

まず、ソフトウェア開発の会社に入るために。。。勉強が必要なのかもしれませんが(そのためにこの本を手に取られるのでしょうけど。。。堂々巡りか。。。)。。。もし、入社前に十分に理解できなくて自信がもてなくても、とにかく何とか入社してしまえば、あとはそこで与えられた仕事を一生懸命こなしていればプログラミングはいずれできるようになります。

この著者の方と同様に、これからプログラミングを初める方を応援しています。

いち意見として☺️

Looking Glassで少しだけ遊んでみた

昨年、発売されたときに使ってみたいと思ったものの残予算がなく諦めていました。

今年度の予算で買ってゼミ室においてみたものの研究で使う人が現れず。。。オープンキャンパス以外は出番待ち状態でした。

時間があったので少し遊んでみました。

Looking Glassの開発環境は公式では2つ挙げられていました。

lookingglassfactory.com

1つはUnity、もう1つはJSによる開発。

とりあえずJSの方が楽かな。。。と思ってサンプルを動かしたのが以下です。

簡単のようですが。。。やはり3D特有のライティングやカメラの設置をコードで書くのは辛そう。。。

と思い、Unityでやってみました。

ネット記事では結構大変だったようですが、HoloPlayの1.oが出てからは、packageをただインポートするだけで済みました。簡単簡単。

下の記事は1.0より前の版なので手順が多いですが、手順の流れを理解するのに役立ちました。ありがとうございました。

UnityではじめるLooking Glass - tks_yoshinagaの日記

結局、やることは、Holoplayのパッケージをインポートして、Holoplay CaptureというプレファブをAssetsから自分のシーンにドラッグ&ドロップで取り込みます。シーンに緑の枠線が表示されますが、そこがLooking Glassでの表示領域になりますので、その範囲でGame Objectを表示すればいいわけです。

Holoplayのおかげで、Looking Glassアプリ開発といってもただのセカンドディスプレイのような扱いになりますのでHMDなどと比べるとプレビューもすぐできるし(表示FPSは落ちますがどんな感じに表示されるかすぐにわかります)開発はスムーズと思います。

最初にやったのがUnityちゃんのお姿をクローズアップして観ましょうっていうアプリ。ただ、モデルを回転させているだけなんですが。。。

立体表示されている感じはしますが。。。なんというか驚きは少ないですねぇ。。。なぜでしょう?

あと、以前、Looking Glassを見たときにイメージした箱の中の立体空間で移動する物体を表示するとかっこいいのでは?というのを形にしてみたものです。まるで水槽のような表現になるかと期待しましたが。。。今一つです。

Leap Motionでいじれた方がグッとくるのかなぁ。。。わからん。オブジェクトを複数配置してその位置関係で立体を感じるのかなぁ。。。これもわかりません。

これだったら。。。Oculus Questの方が3Dオブジェクトの存在感を感じます。。。要改善、ということで今日は土曜日。帰ります。

プロジェクト管理を体験するための演習を考えるのに苦慮している

赴任時からプロジェクト管理という授業を担当してきました。

この科目がなかなか悩ましい。。。

現場に突っ込んで(いわゆるOJT)メンバーとして管理者として2、3個プロジェクトを経験すれば流れも問題感もすぐにわかること。。。だけど、それをお勉強として教えるってことをやっています。

今は退会しちゃいましたがPM学会に所属していたこともあります。

大学に赴任した当時はPMBOKが花盛りで、PMPの取得を奨励している会社も多かったと思います(最近、また注目されているようとも聞きますが)。

自分の経験はあくまで個人の経験なので、やはりしっかりした体系的な知識を学んで欲しいと思い、PMBOKをベースにMS-Projectなどのツール演習を中心として学んでもらってきました。

いわゆるお勉強で終わるのは。。。どうも気が引けたので、授業で工夫したことを学会発表したこともありました。

学生による実ソフトウェア開発における納期遅延要因に関する分析

CiNii 論文 -  1404 初期に小プロジェクト体験を配置したプロジェクトマネジメント講義の試行(一般セッション)

ずいぶん前の話です。

PMBOKは個人でも利用できるとは言われますが、感覚的には大規模プロジェクトじゃないと計画するオーバーヘットに見合わない(テーラリングすればいいって話はおいておいて)と思います。

ましてや実務経験のない学生が、それぞれの必要性を知識としてではなく実感したり、サークルや個人的なアプリ開発などに生かすことは難しいと思います。

必要性を感じないものをずーっと覚え続けていられるか。。。?私が学生なら無理ですね。自分もできないことを学生に強いているのでは?と疑問がわいてきたわけです。遅すぎたかもしれませんが。

最近のインターネット企業なんかの開発と自分が経験してきたSE的な世界とはずいぶんと状況が違ってきていると思いますが、それでもプロジェクトは人の活動ですから、共通する点も多くあります。

学生自身が必要性を認識して理解して体験して、その後も知識としてではなく、その後の行動でも使えるようなスキルを身に付けてもらうような内容に書き変えていきたいと考えて、今後期に学生さんと一緒に効果的な教育方法について試行錯誤的に取り組んでいます。

今週で10回目まで終えました。前半にPMBOKの基本中の基本であるスコープとタイムについての手法を学んでもらいました。座学です。9回目から2人でチームを作ってもらってPM役とメンバー役で作業してもらっています。

タカハシラボ - プロジェクト管理

9回目に、とりあえず何も言わないから大学のマスコットキャラクタを作るプロジェクトやってごらん、と言って実施してもらいました。結果は。。。マスコットはそれなりに描けたのですが、計画しないで着手するチームや、講義資料をみながら断片的にツールを適用して形だけプロジェクト管理したことにする。。。というチームもありました。

10回目は、私自身で反省しまして、スコープとタイムを計画し、実績を入力できるテンプレートシート(下図)を渡し、そこに記入しながら、監視コントロールと次回へのふりかえりなども記入してもらうようにしました。Excel使わないでプロジェクト管理ツールを使おうねって話した矢先からExcelなんですが。。。90分と限られた時間で計画し実行しふりかえりまでするには時間がなさすぎで5分単位のスケジュールをMS-Projectとかでは作れませんから。。。と言い訳して渡しました(汗

f:id:ke_takahashi:20191129173921p:plain

全チーム納期に間に合いました。形式的にはプロジェクトをやっているようでしたが。。。何かが違う。

そう。

当たり前といえば当たり前なのですが、顧客がいないし計画が存在しないので成果物の品質は自分らで決定できます。品質を下げればタイムはいくらでも調節可能なわけです。。。期限をみながらやることを判断しながら行動する。。。はできてはいましたが、プロジェクト管理本来の最終成果物を実現するためのアクティビティをWBSを作りながら漏れがないように慎重に決めて、有限のリソースをそれぞれのアクティビティに割り当ててという計画ができていません。

この辺は経験がないことが原因でしょうし、お客さんからお金をもらった対価として、お客さんに満足してもらえる成果物を作らなければならない。。。という背景もありません(学生さんによってはあったかもしれませんが)。仕様を下げることにお客さんと交渉しなければならない。。。ってことも実現できていません。

限られた時間ですべてを満足することは難しいでしょうけど。。。せめてできるだけがんばって計画しないと痛い目にあうってところを経験(失敗が多いほど評価すると伝えています)なのですが。。。失敗しろと言われた課題なんてこれまで経験したことがないでしょうから、何とか間に合わせようとしちゃうんですね。。。

やはり学校ではこの辺が限界なのか。。。イマココです。

だらだらと頭にあることを書いてしまいましたが。。。とりあえず次週やることは決めました。

さて、うまく行きますやら。

Googleスプレッドシートを使った簡易チームわけ

前置き

6年前?に以下のエントリーを書きました。

memorandums.hatenablog.com

来週の授業で似たようなことがあって、この方法でチーム作りをしました。ついでにN人ずつチームにする。。。ってのもやってみましたのでご紹介。

もちろん、Excelでも同様のことができますね。関数名が若干違うかもしれませんが。

本題

例えば、10名いるとして、10名の番号と名前をB、C列にいれておきます。A列には「=RAND()」と入力します。

f:id:ke_takahashi:20191129153441p:plain

A〜C列を選択して、下図の赤枠のどちらかを選択すると、昇順 or 降順で並び替えができます。

f:id:ke_takahashi:20191129153812p:plain

あとはA列の値を消して「=CEILING(row(A1)/3,1)」と入力します。下図の通りで、3人ずつでチームを作りたければこの式のようになって、2人ずつなら「=CEILING(row(A1)/2,1)」、5人ずつなら「=CEILING(row(A1)/5,1)」と入力すればチーム番号?を自動入力できます。

f:id:ke_takahashi:20191129154044p:plain

ちなみに、CEILは天井ですよね?

なので、数値を天井に張り付かせるイメージで。。。切り上げってことになります。

ちなみのちなみですが、天井の反対は床ですよね?

だから切り捨てはFLOORになります。

日本語の切って上げ下げする方が我々はイメージしやすいですが、天井と床をイメージすると。。。間違えないですよね☺️

名もなき雑用はITパワーでやっつけて早く帰りましょう☺️

テレビを買うときには現物をみてあわてて買わずにじっくり考えましょう>反省

自宅のテレビが映らなくなってしまい、数日前から空き時間でテレビを調査していました。

調査といっても「ぐぐり」が主でしたが。

役立ったのは価格.comでキープしてカタログ比較する機能でした。

いいなと思った機種のキープボタンを押して、あとで一覧で比較できました。

テレビを観る機会はそもそも少ないので。。。まぁ、とりあえず観れればいいな。。。と思っていました。

最初に目についたのが、いろいろついて良さそうなのがハイセンスのテレビでした。中華製です。

でも、4Kチューナーがついていないので。。。これはダメだな、と。

結局、ネットの調査では以下の2機種に絞りました。

kakaku.com

kakaku.com

ポイントは直下型LEDで、4Kチューナーがついていて、無線LANに対応していて、Bluetoothがついている、でした。

決めたあと、実は4Kチューナーがついているだけでは観れない可能性がある。。。ということがわかり、ネットでそのまま注文してもよかったのですが、実際に店舗に言って説明員の方の話を聞いてみようということになりました。

ヨドバシではなく、福岡市にあるベスト電機アウトレット店でした。型落ちや展示品を格安で売っているので。。。

まず、店舗にいって驚いたのは43インチの小ささ。これまで使っていたものが50インチだったので。。。こんなに小さかったのか。。。と。魅力半減でした。

さらに説明員の方が「同じお金を出費するならLGより。。。でしょう、確かに液晶は世界レベルだけど、映像はそれだけではないと。お客様の好みですけど」と☺️

で、展示品をみているといろいろと同価格帯(10万円以下)の商品がありまして、結局、4Kチューナーはいらないし、Bluetoothがついているからと以下の商品を選択しました。決めるときに、価格.comのレビューをみるとAndroid TVなので使っていると定期的に落ちたり再起動が必要になる人もいる。。。というのが気になりましたが、50インチで税込みで7万円くらい。まぁ、いいかと思いました。←ここが失敗でした

kakaku.com

一緒に行った嫁さんが「この画面汚い」と一語。展示説明員さんは「他のお客さんはこちらの商品の方が綺麗ですって言ってますよ」と。これも殺し文句の1つですね。。。あとから思い出せば。

自宅に設置してしばらくみていると「映像が汚い」「映像が白っぽい」でした。

今までは東芝REGZA(2K)でしたが。。。それと比べるととても「不自然」な映像でした。

その他のメニューの映像はくっきり表示されていますので、想像するに、デジタル放送の信号を映像化するときの処理の違いなのだと思います。

あれこれ調整はしてみましたが、極端に赤やピンクがドギツクてエゲツない(綺麗ではなく)感じでした。

Androidなのでアプリをいれたりアカウント登録してPlayストア軽油でアップデートできたり。。。と便利なようですが。

やはりテレビの基本は地デジやBSやCSなどの映像信号を映像化する機能だと思います。これがイケテナイのは。。。どんなにYouTubeとかBluetoothとかの機能がついていてもテレビとして下だと思いました。

こういう経験はなくはないので、できるだけしっかり調査してから買おうと思って調べて挑んだつもりでしたが、やはり現場の雰囲気に流されてしまいました。

以下のレビューにも書かれていましたが、今すぐでも買いなおしたい気持ちではあります。AQUOSは二度と買わないだろうな。。。ごめんなさい。これは安っすいやつだからしかたがないのかな。。。と思ったので、現行機種を観に行くとそれほど変わらない。。。

bbs.kakaku.com

iPhoneAndroidの差が少なくなってきているので、テレビの基本性能にそこまで違いがあるとは認識していませんでした。

でも、毎日、使うものですから。。。そのうち慣れるといいのですが、観るたびに「失敗したな。。。」と思うのは辛いものです。

基本は大事と思います。

失敗は次にいかしましょう>自分