-1からWeb作成する プロローグ
よーし、真面目に連載らしい連載するぞー。
なに連載するの?
友人の依頼でWebページを作ることになりました。
大掛かりなWebシステムではなく個人用のちょっとしたものなので、そんな大変なものでもないんですが、せっかく作るなら綺麗なものを作りたいです。
モチベーション?
で、そんなちょっとしたものをブログに書こうと思ったのは、Webサイトを作るためのプログラム技術とか基盤とかの情報はネット上にいっぱいありますが、最初(ヒアリングしたりデザインしたり)から最後(公開して運用)までまとめてるとこってあんまないなぁと思ったからです。
個人が趣味程度にWebページ作る時でも色々やることあるんだよ、という啓蒙と共に、おそらく色々と古くなっているであろう自分のノウハウにマサカリを投げてもらおうという魂胆です。
”-1から”となっているのは古い知識をアップデートするという意思を込めてます。どうでもいいけど。
-1からWeb作成 連載その0
趣味でWeb作成を請け負う心構え
プロローグなので、どんなサイト作るとかは次回からにして、Web作成を依頼された時の心構えでも書いておきます。なんかこう書くとすごい堅い話に見えちゃいますが、基本チラシの裏ブログなので(略
SIerとかで働いてる仕事柄、仕事以外でも「ちょっとWebページ作ってよー」的な依頼はちょこちょこあります。
昔(学生のころ)なら面白がって作っていましたが、職業としてシステムを作り出してからは基本的に無料では受けないことにしています。
イラストレーターの業界でも問題になっていますが、いくら仕事外でも無料で受けてるとITの価値を下げることになりかねないです。
とはいえ、今回みたいな友人の依頼に対して「じゃぁ1.5人月ぐらいだからxx万円ね」みたいなSIerじみたことはしたくないので、ちょっとご飯奢ってもらうとか利益が出たらギフトカードもらうとかそんなのでいいかなという感じです。0と1の差はでかいです。
真面目っぽいことも書いた気もしますが、基本は趣味なのでゆるーく連載していきますよー。
コーヒー飲んだり書いたり
単なる一言日記です。まさにチラシの裏。
CoffeeScriptが不人気な理由を実感している今日この頃。
理想
「あんのややこしいJavaScriptを理解しなくても、わかりやすく綺麗にしかも多様なブラウザに対応できるようにかけるぞー!うおーー!」
現実
「さーて、結局デバッグのためにトランスパイラされたJS読みますかー・・・、あーわかんね。」
いつの間にか不人気ランキング3位です。
昔は割と書きやすくて好きだったんですが、最近使う機会が増えて使えば使うほどこれはしんどいなと。
・・・まぁ結局JSちゃんと理解しとけって話ですけどね。
MacでRails動かすまでの覚え書き
Ruby on Rails動かすためにMacに構築したものメモ。
Qiitaに投稿するには類似記事が多かったのでこっちへ。
とりあえずXCode入れる
→AppStoreから
→OSアップデートしろーと出たらおとなしくアップデートする
その後、XCode Command Line Toolsをインストール
xcode-select --install
Homebrewを入れる
パッケージ管理ソフト。必要なパッケージを簡単に入れれるようにするもので、いろいろ種類はあるけど最近はこれがよく使われるらしい。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Rbenvを入れる
Rubyのバージョンを管理してくれるもの。複数のバージョンを共存させれる。
Homebrewを入れていたら、以下の手順でインストールと設定ができます
brew install rbenv
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
Rubyを入れる
利用できる Rubyのバージョンは
rbenv install -l
で確認してインストールを行います。
その後利用したいバージョンをglobalとして設定します。
rbenv install 2.4.1
rbenv rehash #反映
rbenv global 2.4.1
Bundlerを入れる
次にRubyのライブラリの管理ソフトbundlerを入れます。
Bundlerはプロジェクトで利用するライブラリとそのバージョン、依存関係なんかを管理してくれるものです。
Bundler自体もRubyのライブラリの一つなので、まずBundlerを入れて、他のライブラリはbundler経由でインストールすると便利です。たぶん。
gem install bundler
Railsインストール1
Ruby on Railsも1行でインストールできます。すごい。
gem install rails
rbenv rehash
Railsインストール2~bundlerで入れる~
Rails自体も複数のバージョンを共存させたりプロジェクトごとに変えたい場合はbundlerでインストールしておくということもできます。
まず
bundle init
を行うと、設定ファイルであるGemfileが作成されます。
そこにある
gem 'rails'
という記述を有効にして
bundle install --path vendor/bundle
を実行。(2回目以降はbundle installのみで可)
bundle exec rails s
を実行して
を確認。
技術系論文が読みたくなったらどうぞ
ちょっと技術系の論文が読めるところを探したので書き残しておきます。
さくっと手に入りそうなところ中心。
すでにそういったものをまとめている方もいたりするので二番煎じですが。
論文検索サイト
日本語論文なんかが検索できて、手に入るのがJ-STAGEやCiNiiです。
CiNii Articles - 日本の論文をさがす - 国立情報学研究所
調べたいもののキーワードが明確ならいろいろ調べれます。
ただし、出てくる論文は様々(短かったり表紙だけだったり古かったり学生論文?だったり)で、自分が欲しい情報を見つけるにはなかなかの検索能力がいりそうです。
ざっくりと最新の技術動向を見る、というのには向かないかもしれません。
自分の検索能力が低いだけかもしれません。
プレプリントサーバー
最新のものをいち早くというばあいはプレプリントサーバーを探すというのもあるようです。
プレプリントサーバーは、論文が論文誌などで公表される前に査読やいち早く公開するために使われるものらしいです。物理や数学分野の最新情報が欲しい場合はどうぞ。
学会ページ
知りたい分野が決まっているなら、学会サイトで公開されているものを見るのは非常に有用です。さすがにプレプリントサーバーよりは遅いですが、一般人にとっては最先端情報です。
というか、KDDとか論文載せてるんですね。。。(ちょっとそれ系の調べものしてたので驚いた)
、、、ということを過去に調べた下書き記事が残っていたので書いておきました。
Mac買ったので初期設定メモ
MacBook買ってみました。
あ、すいません、ちょっと見栄を張りました、2017年モデルの12インチ「MacBook」を買ったと言いたいところですが、お財布事情が許してくれなかったので2013年モデルの「MacBook Air」を中古で買いました。
Mac初心者としては十分です。
これまでApple製品にほぼ無縁だったので、「Macの使い方メモ」みたいな低レベルな記事が増えるかもしれませんがご容赦ください。
ということで早速そういうたぐいのメモを。
初期設定する
ああ、こういう記事ってありがたい。
もうすこし操作に慣れてきたら、インストールしたアプリまとめとか書きたいです。
とりあえずvivaldiを入れてみると、やたらクラッシュするのでちょっと悲しいです。
ターミナルを見やすくする
Mac自体はまだまだわからないことだらけですが、「とりあえずターミナルが使えれば何とかなるんじゃね?」という思想のもとターミナルを使ってみます。
お、、、なんか色分けとかがされなくて使いづらいぞ。。。
ということで、ターミナルの設定をします。
ほぼ参考サイトのまんまです。
いい感じになりました。
(さて設定系は早く終わらせて技術的な記事かかなきゃ。)
【ネタ】東京−大阪間で流し素麺しようとするとスカイツリー44本分の高さから流せば良いらしい
完全にタイトルで出落ちです。ネタ記事なのでご注意ください。
書きたいことがいろいろとある今日この頃ですが、ごたごたしてたりネット環境が不安定だったりしてとち狂ってしまった結果、ネタ記事でも書いてお茶を濁しておくことにしました。
・調査テーマ
東京から素麺を流して大阪でキャッチするにはどのような設備がいるのか
・調査1:角度
素麺を流すレールはどのくらい角度をつけるのか調べたところ4〜5度程度という記述あり。
市販の流し素麺器もだいたいそのぐらいの角度のようだ。
ということで4度と仮定する。(適当)
なお、うまく流すコツとしては角度浅めで水多めだそうだ。
・調査2:レールの長さ
東京ー大阪の直線距離が401kmだそうな。
角度4度とするとスライダー自体は402km必要になり、流し始める位置は地上28kmとなる。
28kmというのはスカイツリー44.2本分、富士山7.4個分である。
なお、上空28kmというと成層圏に位置する。入道雲の遥か上、ジェット機の高度の2倍ぐらいの高さであり、外気温はマイナスである。いい感じに素麺が冷えそうである。
・調査3:竹何本いるか
やはりレールは竹で作ってこそなので、竹が何本必要か計算してみる。
竹はかなりの種類があるようだが、成長速度が早く大きく育つ「真竹」や「孟宗竹」を使うと仮定する。
※参考 http://ww3.tiki.ne.jp/~kondou/take/take.html
これらの竹は20m程度に成長するらしい。また大量の竹が必要になると想定されるため竹林の密度も確認しておくと、700〜1500本/1000平方m程度。
※参考 http://www.pref.kagawa.lg.jp/kankyo/midori/tikurin/siryou1.pdf
1本につき、15mを利用できるとすると、半分に割るので30m分のレールが作成できる。そうすると402kmのスライダーを作るために13400本の竹が必要になり、これは約116m四方の竹林を刈り尽くすことで準備できる。今の季節なら同時にタケノコも収穫できて一石二鳥である。
追記1
さて、どうでもいい日記を書いてリハビリもできたので、次からまじめに書いていこう。
追記2
そういえば小さい頃、空想科学読本をよく読んでいました。ああいう記事が書けるようになりたいというのがブログを書くモチベーションになっているような別にそうでもないような。
SIerからみるデータサイエンティストの立ち位置
↓昔書きかけてた記事を発掘したので公開↓
この記事は「ポラム」カテゴリです。「コラム+ポエム」の造語で”駄文以上日記未満”を目指す記事なのでご注意ください。
~~~
たいそうなタイトルを付けてしまいましたが、データサイエンティスト(以下DS)と呼ばれる職業(?)のことについて聞かれたり、「あなたはDS?プログラマ?」みたいなことも聞かれたりもするので、そもそもDSって一般にどう認識されていて、なんで当事者含めてよくわからない状態になっているのかの考察です。
データサイエンスの普及
まず、ここ数年でDSという名前が取り沙汰される要因は、いろいろ言われていますが
・ユーザ企業で蓄積されたデータ量が爆発的に増えた
・データを処理できるだけの性能をもったハードが一般に普及
・データ処理アルゴリズムが人間の性能を超え出した
という点で、速い話が専門家以外の人でもデータサイエンスの成果を利用しやすくなったためです。特に「グーグルが猫を発見した!(画像認識の話)」とか「AIが囲碁・将棋でプロに勝った!」というような一般人にもインパクトを与える話が出てきたここ数年、SIerをはじめお客さんになにかしら提案する立場の人たちにとってはいい材料となるわけです。
SIerに突きつけられた課題
そこで、データサイエンスを提案やシステムに盛り込もうとしたとき、SIerも当然その準備がいります。
まず、そもそもSIerはこのような立場で仕事をしています。(もっといろいろあるぞー、とかいい加減すぎるぞー、という批判はごもっともですがざっくりで説明させてください。。。)
お客さんの課題に対して、システムで対応できるところを考えて導入していくわけです。
お客さん側の課題というのは、大体「フロー化されている作業の自動化」なわけです。つまりSIer側はフローの理解と複雑なフローをアルゴリズム化し、実装できる技術力が必要とされます。
さて、ここにデータサイエンスを導入しようとしたときに起こったのがいわば、システム開発とは似て非なるレイヤの登場です。
「データ量爆発をどうにかしたい」や「なんかニュースでよく見る人工知能を使ったら業務が改善できるかも」というフロー化されていないあいまいな(しかも高度な)要望が出てきたわけです。
出てきたというか、たぶん昔からずっと漠然と課題としては持っていたが不可能だとあきらめていたものが、データサイエンスという何とかしてくれそうなキーワードをひっさげて表面化してきたんだと思います。
そしてそれらを解決しうる手段(データサイエンス)は、ずっと進歩を続けていて実社会で十分活用できるレベルになっていたわけです。
そうすると図の赤枠に対応できる人が必要になってくるわけです。要望とシステムと情報科学を結ぶ人たち。それを担う(と期待された)人のがデータサイエンティストと呼ばれた、、、と思っています。
データサイエンティストの受難
おそらく上記の話はDSに興味を持っている人やSIerに所属している人にとってはなんとなく見聞きしていることかもしれません。
ただ、わざわざ図を作って整理したかったのはこの赤枠の広さを知ってほしかったためです。要望と解決手段(データサイエンス)とシステムを結ぶにはSIerと呼ばれる組織と同等とまではいかなくてもそれぐらいの分野をカバーする必要があります。
これに対し、DSという一つの枠で対処しようとすると、「データサイエンスの知見があり、分析基盤を構築し、分析結果のレポートや必要に応じてツールを提供してお客さんの要望をかなえるポジションの人材」みたいなスーパーマン探しが始まるわけです。
さすがにそれは無理だと気付くと、「SIerの各分野の人たちがデータサイエンスを学んで対応しよう」となってきます。お客さんへの営業やコンサルに近い動きをしていた人は提案にデータサイエンス要素を加えてデータアナリスト的な動きとなったり、基盤構築や運用をしていた人が大容量データや機械学習に適した環境を整えるデータエンジニアになったり、開発していた人が各種分析ツールやライブラリを学んでみたり。
これにより、なんとなくDSっぽいポジションがこなせるような感覚になりますが、そこはなかなか難しい課題が残ります。データサイエンスは難しいんです。それはもう世界中で盛んに研究されているんだからそれはそうです。
ということで、ちょっと素人が勉強してニュースになるような眼を見張る結果が出るわけもないですし、システム開発すら高速に行うことが求められる時代にじっと一つの課題に取り組み続けることも困難です。そうして「なんかうまくいかなかったなぁ」という評価だけが残るわけです。
そしてDSとして課題に取り組んだ面々は不完全燃焼のまま、「あれ、自分はインフラ屋として参戦したけどよくわからない案件だったなぁ」ということになってしまいます。
解決策は?他業界も一部
とりあえず、SIerで起こっていると思われる問題とその中でDSと呼ばれる人たちの現状はこんなところじゃないのかと思っているわけです。
結局これを解消するためには、システム屋側からだけでなく、データサイエンスを専門で学んできた人の参入が必要でしょうし、データサイエンティスト協会がまとめているような3分野(ビジネス力・データサイエンス力・エンジニアリング力)ごとに育成して、チームを組んで対応というのが現実解な気がします。
また、ここではSIerのことばかり書いていますが、別業界では見方も全然違うと思います。特に大学発ベンチャーとか、データ処理が必須のWeb系企業なんかでは「え、いや、機械学習とか昔からやってますし、、、」となったり、研究機関を持つ大手なんかはそういったDSのポジションや組織のノウハウもあるとおもいます。
しかしデータサイエンスをキーワードとして使う世の中の多くの中小SIerではこのような時代の変化の中、どういう立ち位置でビジネスするのか、個人個人のエンジニアとしても自分の立ち位置を考えないといけない状況なんだろうなぁ、という感じです。
参考
まぁこのあたりの話はいろいろとすばらしい先駆者がいらっしゃるので、これからこの分野を目指す人や会社方針でDS的なポジションになった人はいろいろ情報を探してみると、様々な立場の人たちの話があって面白いです。
どうでもいい余談
・ちょっと自分にも関係あるのでまとめました。
・最近こういうコラムやポエム的なものを自分でも書いてみたいなと思っているので、いろいろ書くと思います。そして数年後に恥ずかしくなって消すと思います。
・新社会人や人事異動が多い4月(当時)にこんな話をまとめているということは「あ、この人って社内でこういうこと説明しなきゃいけない人なのかな」とでも思っていただければ(略