interlude

プログラミングや私的なこと

MongoDBのMapReduce関数について

MapReduce関数
集計を行うための関数です。

Map関数
emit = 必要な項目を抜き出す

Reduce関数
集計するロジックを担当する

最後に上2つを掛け合わせることでMapReduce関数が出来上がる

リレーショナルデータベースと違って、MongoDBはクエリの書き方が違うので
SELECT文すら分からないです。

javascriptに精通していれば、違和感無く使えるのかなーと思う。

よくググって答えを探しますが

答えそのものよりも、考え方について書いてあるほうがありがたい 答えそのものが書いてあると、自分自身の考えが入り込む余地が無い。

答えが分かった時点で思考が止まってしまう。 正確には分かったつもりになって、それ以上理由や成り立ちを追求しようとしないことが問題。 お腹が減っていると食べ物のことばかり考える。気づくと目の前にコンビニがあって、弁当か何かを買って食べる。 お腹が一杯になったらどうやって空腹を満たすか、何を食べるかなんて考えなくなるのと似ていると思う。

答えを自分の中で再度構築するといっても、答えそのもののイメージに引きずられてなかなか出てこない。 カレーをカレー以外に言い換えるようなものかも。 でも言い換えられるってことは概念を理解しているということなのかな。

答えを書くのも見た人の助けになるけど、答えに至るまでにどういう考え方をしたのかを意識して文章を書くようにしてみよう。

HTMLは何がハイパーなのか

ハイパーテキストってなんだ?

テキストは文書だけど、ハイパーが付くということは、ウィキを参照すると「上」「超越」「向こう側」という 意味があるので、「文書を超えた文書」てことになる。

どの辺りがハイパーなのか

他の文書へリンクしたり、自分の文書へリンクさせたりできる。 本を読んでて気になる語句が出てきても、意味や出展を調べたかったら辞書を引かないと調べられない。あー面倒。 でもハイパーリンクされていれば、クリックするだけで参照することが出来る。

ハイパーリンクで何が変わるのか

文書にハイパーリンクが張り巡らせられると共に、広い地域で多くの人が情報を共有することが出来た。 ハイパーテキストの本質は情報を共有することにあるということ。 言い換えるとインターネットの本質と言ってもいいと思う。

まとめ

そう考えるとインターネットは大学から始まったというのも納得感がある。 論文を読まなきゃならないけど、出展や引用のための文献も読むには大変手間だった。 ハイパーテキストがあれば、参考文献を読むためにハイパーリンクを踏むだけで充分だということ。

広い範囲で情報を共有する事ができる。それがハイパーテキストの役割です。

kintoneを無料で使う方法

使う方法は2つ。 1,30日間無料お試し期間を利用する 2,開発者ライセンスに申し込む

1,30日間無料お試し期間を利用する

以下のURLからemailアドレスを入力して送信する。 https://kintone.cybozu.com/jp/trial/

※30日間が過ぎてお試し期間が終了したら、他のメールアドレスを使えば再度30日間無料で使える。ただしサブドメインは変わる。

2,開発者ライセンスに申し込む

以下のURLから「Facebookでサインインする」「Emailでメンバー登録して参加する」どちらかを選択する。 https://cybozudev.zendesk.com/hc/ja/articles/200929540-developer-network-%E3%81%B8%E3%82%88%E3%81%86%E3%81%93%E3%81%9D

登録したら開発者ライセンスを申し込む 申し込むと自動返信メールが届く。

2-3日でライセンスが発行され、kintoneで開発が可能になる。

kintone勉強会を振り返って

【感想】

プロセス管理について参加者が理解してもらえたようだったので良かった。
参加者のkintoneへの理解度が高かったため、こちら側のつたない説明でも
プロセス管理を理解して貰えたので、参加者に助けて貰えた部分が大きい。

【どんな人だったか】
kintoneは1年ほど使っており、前提知識について充分すぎるくらいだった。

【勉強会の内容】

プロセス管理についてマンツーマンで教えた。流れは以下の通り
1,交通費申請アプリをはじめから作成してもらう
2,ワークフローについて図を用いて説明
3,ユーザの追加とロールの説明
4,プロセス管理の実装
5,課題に取り組む

【良かった点】

・内容の準備に時間をかけることが出来た
・参加者のレベルを最初に聞いたことで、既に知っていることの説明が不要だった。
・単刀直入にプロセス管理に進むことが出来たので、時間をじっくり使って説明することが出来た。


【反省点】

・参加者が一人!だったので、集客方法についてもっと色々対策をすべきだった
・kintoneの理解度が不十分
・原稿を読んでいる感が強い



【個人的に嬉しかった点】

・「早速プロセス管理を業務で使ってみる」と言われたこと

行動を先にするか、考えることを先にするか

自分は考えるより先に行動にする性格なのだけど、 何も考えずに行動すると、当初の目的から逸れていくことが多いことに気がついた。

具体的には実践と理屈の順番が 1,実践 2,理屈 になってるということ。

例えて言うなら、新作のゲーム買ってきて、説明書読む前にゲームをプレイし始めるような感覚で ゲームに行き詰まった時に初めて説明書に目を通すタイプだということ。

ただ実践が先に来てしまうと、色々と問題もあるなーと思った。 もちろん良い面もある。 そこで、実践→理屈と理屈→実践のメリット・デメリットを考えた。

実践→理屈のメリット・デメリット

メリット:
・早いもの勝ちな時に有利
・早く経験を詰む事ができる

デメリット:
・失敗が多い
・非効率な行動を取ってしまう

理屈→実践のメリット・デメリット

メリット:事前に必要な事、物を準備出来るだけ準備するため、効率的に進められる
デメリット:実践に進むまで時間がかかる

結論

実践→理屈だとスピードは早いかもしれないけど失敗も多いし非効率な部分がある。最初に大怪我してしまう可能性も高いので 理屈→実践に切り替えて速度を上げていったほうが、長いスパンで見ると効率的かつ失敗も少なくなる。と思う。

カード型データベースはエクセルみたいなもの?

カード型データベースについて調べてますが、
カード型データベース - Wikipediaを見ても
"ある構造を持ったレコードを、単純に必要なだけ積み重ねた構造を持つ。"
というなんだかよく分からない文章なので、余計に混乱する。

ある構造ってどういう構造だ。


他のソースを見ると、1件のレコードを1枚のカードにまとめて記録する、とあるからUIの特徴の話なのかと思ってしまうし。

1週間で学ぶIT基礎の基礎 - すぐわかるデータベースの基礎(2):ITpro

外観の話なのか機能の話なのか分からない。

カード型データベースは、フィールドが少なくて限られたデータ型しか管理出来ないということ?

後は「電話帳」みたいにひたすらデータを登録していくだけ、ということかなあ。。

つまりエクセルとカード型のUIを組み合わたようなものだということか?