技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

日本のITにもの申す

techplay.jp

youtu.be

Togetter: 「日本のITに物申す・比較できる立場にいる外国人から」まとめ - Togetter

コメントが乱暴なのは、パネリストの言葉が乱暴だったのではなくて、私が乱暴な方がメモが早いからです

パネリストと自己紹介

  • KANI
    WFが主流すぎる…スピードなさすぎだろ。国際社会と戦うならスピードがないとヤられるぞ。
    コミュニケーション力:チーム、コード、知識、発送のコミュニケーションを会社にもプロダクトにも必要だろ
    英語:日本のマーケットだけて戦ってたら防戦一方だ。英語に進めば新しい事が全部できる様になるんだぜ?
    ダイバーシティがなぁ。男性、女性とか年齢とかごちゃ混ぜのダイバースなチームでないといいのができないぞ?
    世界にアピールするならそうでもないとダメじゃないのか?
  • MIKE
    開発古過ぎだろ、WF を使うべき場所はあるけど、なんでもWFし過ぎw
    英語力なさ過ぎだろwww
    新しい方法をほとんど取り入れない。
    どんどん取り入れて、役員の説得がひつようなんだよね。
    シリコンバレーと違って、日本のエンジニアは、自分の仕事に高い意識を持ってない気がする。
    意思決定が遅い。大きい組織ほど、責任を分別して、小さな自己組織化を進めて、意思決定を早くすべきだ。
  • ROOMELELE
    投資がへぼい。レガシー使い過ぎだ。
    人事でみると、ソフト開発者が評価されてない。企業に対して需要なのになんで?
    ソフト開発者の給与が低すぎる。シリコンバレーからみて低すぎる
    最近サンフランシスコ住みにくいw
  • DANIEL
    全然 SaaS とかの活用が進んでない。
    なんか自分たちでどうにかつくりがち。
    保守とかで結局足引っ張られるから、自分で作ってメンテナンスするというのが効率が悪い。
    クラウドが普及してて、サーバ持たなくていいので、どんどんクラウド使って、インフラ維持とか保守やめようぜ。
    職人文化が足引っ張ってないか?最初から一筆書きに完璧を求めすぎだと思う。ちょっとスピード感が厳しい。 日本で一番びっくりするのは開口一番「納豆食べますか』って聞かれる。ちなみに納豆は大好きだw

質問とコメント

  • 失われた20年…この成長のなさの問題。
    なんか高度経済成長期に貯めた貯金で、年金生活になってる感が強い。
    変化できなかった理由はなんだろう?
    • R: 要素が大きいのは労働市場の特別さ。終身雇用のせいで、人を上手に生かされてないきがする。
      転職もしにくいし…同じ企業で転々と移動してて、専門性もつかない。
      専門性が求められてるのに、転々と移動しているとどこ行っても初心者なんだよね。
      人が同じ会社にいて、流動性がないと、成長してる中小が育たないとか、古くて成長しない大企業が人ばっかプールしてたり、日本が弱る。
      Happy でなくてもだらだら会社にしがみつく…体壊してやってるし…
      日本の最大の資源は勤勉さだぞ。そんな貴重な資源が無駄塚おされてる
    • K: 20年前に日本がシリコンバレーになってる事もあり得たんだ。
      日本はハードウェアがうま過ぎて、ソフトが軽視されちゃったんだ。
      起業しにくすぎる。法律として、従業員の作業時間を記録しないとダメ?
      効率化とか考えるなら、働き方自由にしたいのに…。
      もっと働き方というのを法制度も含めて考えないとだめじゃね?
  • 日本がAIで戦うにはどうすればいいだろう?遅れ過ぎてるんだよね
    • D: ダイバーシティとかやり方とか、英語とか、たくさんやることはある。
    • K: 一つ思ったのは、AI ってブームなんだけどさ、逆にどんな問題を解決すべきなのかって方から考えたらいんでない?
      中小企業みると、プロセスが統一化と最適化がすでにされてる。町工場の職人的経験で、最適化されてんじゃん。
      そういう意味ではAIのニーズがなくないかって話。
    • D: バッチファイルでどうこうってのはよくあるんだけど、日本は三人くらいで綺麗に回せちゃってたりする。
      海外だとそれはない。でもこれスケールしない(汗
  • 日本のエンジニアの待遇が悪いのはなんでだろうね?
    • R: 一つは従業員の流動性の問題で、海外だとより良い給料を出せば集まる。こうした人集めの競争によって待遇はよくなる。
      特に優秀なエンジニアだとねぇ。シリコンバレーだと、ビジネスの成功は有能な開発者を確保できるからだ。
      だが、日本はそういう意識がない上に、労働市場もそうではないので、市場原理的にも待遇が上がらない。
      しかも専門性が育たない上に、レガシーシステムのスキルばかり貯めてたらね…。
    • D: 大企業で昔ながらの仕事やってるとこなんだけど、エンジニアがいないと連携できない、SIer にかけると金がかかる。
      で、保守だけのメンバーをアサインしたら、そいつらは楽しそうだった。
      優秀なのはいる。要するに使われ方が悪い。
    • M: シリコンバレーと日本のエンジニアのスキルはそんな変わらん。
      シリコンバレーは、エンジニアのやりたいことってのを突き進められる。
      日本はそれがない。エンジニアから会社の為に提案するという働きもない、環境としてそれも受け入れないから立場もあげにくい。
    • K: そのトーリ
      下請けだらけで、だから3K,5K なんだよね
      シリコンバレーだとエンジニアは貴重なリソースなんだけどね(汗
      Gmail とか Calendar 連携とかもエンジニアが案を出して走ってるんだぜ
      内製すればみんなハッピーになれるんだよ。
  • SIer に丸投げが起きちゃってね…発注する側もそう考えてそうなんだよね。
    発注する側が変わらないとダメなんじゃね疑惑がある、それはどう思う?
    • M: 国内意識が強いよね、賭け事とかしない国だから。強いやつが内製して成功すれば後に続くんじゃないかな(汗
  • 日本とアメリカのいいどこどりできるとしたらどこ?
    • M: シリコンバレーも日本も理想郷ってわけではない。
      これはエンジニア同士が話し合って、コミュニティを作って、情報を共有しながらやってみるしかない。
      それも国際的にコミュニティを持ちたいよね。
  • 日本のこの流動性のなさって、終身雇用や人材プール、総合職問題もそうだけど、高度経済成長期の「人月を増やせば儲かる」のビジネスモデルに法律も含めて過剰な最適化がされすぎた結果だと分析できるんだけど、この流れや法を変えようと思ったら、どういうアプローチをすればいいのだろう?(私の質問)
    • R: 会社に任せちゃうってマインドがよくないよね。
      そういうのをどうにかしないと、法整備しても結果はでない。
    • K: こういう勉強会の場を増やして啓蒙していかないとね。
  • スタートアップでも古臭いと思うことってない?
    • R: ルールとか習慣とかが古臭い。上場準備すると、へんなコンサルとルールがあって、働き方が固定化されちゃうんだよね。
      過剰なお役所体質がだめなんだよね。
    • D: 上場企業が目的になってたりするよね。上場しなくていいんじゃない(笑
      お役所仕事に巻き込まれるよ?WWW
  • WFから変わるにはどうすればいい?
    • R: もちろん方法やプラクティスは必要だけど、マインドセットが重要で、それがないとうまくいかない。
      生産性と8つの習慣、これが重要。検索すればブログ出るので、これは参考になる。
  • 今日は大変な日。日本の確定申告。これレガシーそのもの(笑)。
    累計で 3000 億とかメンテナンス費用かかってるんだよね(汗)。
    レガシーすぎて、アーキテクチャを選んじゃう。今時 JRE6 とかね…。
    なんかこういうのに問題を定義する法律とかってない?
    • M: 米の政府機能も日本と似たり寄ったりでクソですwww
    • K: バックエンドの古いのに対応たラッパー作っちゃう。そのユーザビリティで利用料を取るのが一つのビジネスだよね。
    • M: 最近はよくなってきてるものもある。オバマケアのサイトとか。
  • 今の日本の若い世代、ウキウキワクワクしててほしい。
    こういうアイディアはビジョンがないと生まれない。こういうワクワク感を醸し出すにはどうしたらいい?
    • M: 日本で戦う夢じゃなくて、世界で戦う夢が必要。そういうビジョンがほしいんだと思う。

最後に

  • D: 自分の良さを知る。自分を客観して、世界に挑むべきだ。
  • R: 日本人はみんな弱みは言える、強みは言えない。この強みを意識してくれ。強みを伸ばした方がペイできる。
  • M: 日本はものづくりの歴史がある。それをソフトウェアに向けてくれ。
  • K: 日本がエンジニアリーダーになるには、英語とソフトウェアだ。今やれば来年の今頃にはできるようになってる。まずはやるんだ!

【3/14】アプリからドライバまで現役エンジニアの濃い話#8

sciencepark.connpass.com

このイベント行ってみました。

  • 最初はExcelでいけると思ってたけど途中からしんどくなってきたデータのためのPython Pandas (複数インデックス編):サイエンスパーク株式会社 西村さん
  • WinDbg Previewについて: 日本マイクロソフト株式会社 大橋さん
  • git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう:サイエンスパーク 須藤さん

公式にある程度資料は乗ってるけど、これら内容のダイジェスト!

最初は Excel でいけると思ってたけど…

西村さん

Excel 使ってたけど、pandas に乗り換えたという話。

四人の頭の位置座標データを認識、線を引くのだけど、リアルタイムだと CSV でもしんどい。
データの種類が増えたとき、二次元表では、横に長く、Excelシートだとシートが増えすぎる。
1シートでマージするとなると、ピボットテーブルするとめんどくせえ(汗

なので pandas 使った。
データの取り回しが楽。そのままバイナリで共有もできるwww

dataFrame.assign でカラムが増やせて、concat で結合していける。
setIndex, sortIndex ソートもできる。いいよね。

WinDbg Preview

大橋さん

WinDbg は新しい Windows 向けデバッガ。
ビジュアライズが非常に強くなった他、速度が早くなった。
Windows StoreからDLできる。

Win10 で搭載された機能でスクリプティングというものがある。

Scripting は、厳密には Store アプリではない。
WindowsApps 配下に exe が置いてある。
コイツの引数でアプリケーションを起動すると、しれっとデバッグコンソールがいじれる。

-c コマンドを突っ込むと、スクリプトとして実行できるようになる。

こいつは、デバッグ実行のインスペクションとインジェクションをスクリプトとして記述しておける。
定型の動作検証が非常にやりやすくなる。

Debug Extension : WinDbg の拡張なのだけど、これまで C/C++ だったものが JavaScript で書ける様になった。
これにより、解析/デバッグスクリプトが、素早く作成/デバッグできる様になった。

現在フィードバックを集めている最中で、日本語でもいいので言えば追加されるかも?

所感

これぞ濃い話!
スクリプト化の何がいいかというと、デバッグに「このスクリプトやってみてー」とか指示できたり、よく詰まる所を自動検証/デバッグできる。

解析がめちゃめちゃ早くなる可能性がある。
ただし、アンドキュメント。

git初心者から...

須藤さん

git は非常に強力な一方で、使い方を決めていかないと、非常に混乱を招く。
このセッションでは、Subversion と比較しながらどういったところが違うのか?どういうメリットがそこにあるのか?などを話されてました。

また、チーム運用の為の、Git-Flow モデル、Hit-HubFlow モデルの運用方法説明も入ってました。

すみません、このブログ書いてる私が構成管理をやる派なので、途中からメモが途切れている…

scikit-lern 練習

ついでに

今回の日記は実は全部 jupitor notebook からのコピペなんだ…すまない。
やばすぎるわこれ(汗

まずは使うライブラリを取り込んでみる

  • numpy : 行列演算ライブラリ
  • scipy : 科学技術計算ライブラリ
  • matplotlib : グラフ作画ライブラリ
  • pandas : データ加工とか表示とか…なんか使った印象でこれ matplot 要るのか?(汗
  • IPython : python シェルの強化拡張ライブラリ
  • mglearn : https://github.com/amueller/mglearn オライリー先生の書籍専属ライブラリ。ヘルパー扱い。
%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt
from scipy import sparse
import pandas as pd
from IPython import display
import mglearn

疎行列を作る

numpy で単位行列を作ってみる

eye = np.eye(4)
print(f"Numpy array\n{eye}")
Numpy array
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]

Numpy 圧縮行格納形式(CSR)変換

numpy 行列は、sciPy 行列に変換可能

sparse_matrix = sparse.csr_matrix(eye)

print(f"CSR matrix\n {sparse_matrix}")
CSR matrix
   (0, 0)   1.0
  (1, 1)    1.0
  (2, 2)    1.0
  (3, 3)    1.0

行リスト(COO)変換

data = np.ones(4)
row_indicates = np.arange(4)
col_indicates = np.arange(4)
print(col_indicates)
[0 1 2 3]
eye_coo = sparse.coo_matrix((data, (row_indicates, col_indicates)))
print(f"COO \n {eye_coo}")
COO 
   (0, 0)   1.0
  (1, 1)    1.0
  (2, 2)    1.0
  (3, 3)    1.0

Matplot で適当なグラフ作画

x = np.linspace(-10, 10, 100)
y = np.sin(x)

plt.plot(x, y, marker="x")

f:id:white-azalea:20190304231927p:plain

Pandas を使ってみる

data = {
    'Name': ['John', 'Anna', 'Peter', 'Linda'],
    'Location': ['NY', 'Paris', 'Berlin', 'London'],
    'Age': [24, 13, 53, 33]
}
data_pandas = pd.DataFrame(data)

data_pandas
Name Location Age
0 John NY 24
1 Anna Paris 13
2 Peter Berlin 53
3 Linda London 33
data_pandas[data_pandas.Age > 30]
Name Location Age
2 Peter Berlin 53
3 Linda London 33

Iris データを読み込んでみる

from sklearn.datasets import load_iris
iris_dataset = load_iris()

iris_dataset.keys()
dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])

詳細を読み取ってみる。

print(iris_dataset['DESCR'])
.. _iris_dataset:

Iris plants dataset
--------------------

**Data Set Characteristics:**

    :Number of Instances: 150 (50 in each of three classes)
    :Number of Attributes: 4 numeric, predictive attributes and the class
    :Attribute Information:
        - sepal length in cm
        - sepal width in cm
        - petal length in cm
        - petal width in cm
        - class:
                - Iris-Setosa
                - Iris-Versicolour
                - Iris-Virginica

    :Summary Statistics:

    ============== ==== ==== ======= ===== ====================
                    Min  Max   Mean    SD   Class Correlation
    ============== ==== ==== ======= ===== ====================
    sepal length:   4.3  7.9   5.84   0.83    0.7826
    sepal width:    2.0  4.4   3.05   0.43   -0.4194
    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)
    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)
    ============== ==== ==== ======= ===== ====================

    :Missing Attribute Values: None
    :Class Distribution: 33.3% for each of 3 classes.
    :Creator: R.A. Fisher
    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)
    :Date: July, 1988

The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken
from Fisher's paper. Note that it's the same as in R, but not as in the UCI
Machine Learning Repository, which has two wrong data points.

This is perhaps the best known database to be found in the
pattern recognition literature.  Fisher's paper is a classic in the field and
is referenced frequently to this day.  (See Duda & Hart, for example.)  The
data set contains 3 classes of 50 instances each, where each class refers to a
type of iris plant.  One class is linearly separable from the other 2; the
latter are NOT linearly separable from each other.

.. topic:: References

   - Fisher, R.A. "The use of multiple measurements in taxonomic problems"
     Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to
     Mathematical Statistics" (John Wiley, NY, 1950).
   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.
     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.
   - Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System
     Structure and Classification Rule for Recognition in Partially Exposed
     Environments".  IEEE Transactions on Pattern Analysis and Machine
     Intelligence, Vol. PAMI-2, No. 1, 67-71.
   - Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule".  IEEE Transactions
     on Information Theory, May 1972, 431-433.
   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al"s AUTOCLASS II
     conceptual clustering system finds 3 classes in the data.
   - Many, many more ...
print(iris_dataset['target_names'])
['setosa' 'versicolor' 'virginica']
print(iris_dataset['feature_names'])
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
print(iris_dataset['data'][:5])
[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 [4.7 3.2 1.3 0.2]
 [4.6 3.1 1.5 0.2]
 [5.  3.6 1.4 0.2]]
print(type(iris_dataset['target']))
<class 'numpy.ndarray'>
print(iris_dataset['target'].shape)
(150,)
iris_dataset['target']
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

データを学習用と検証用に分離

train_test_split を利用すると、デフォルトで 75% を学習用、25% をテスト用に分離してくれる。

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)

最初にデータを観察

pd.DataFrame から pd.scatter_matrix をしてやると、任意の二組の相関図を出してくれる。
やっべなんだこれ…データ解析捗りすぎんだろ…(汗

iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
grr = pd.scatter_matrix(iris_dataframe, c=y_train, figsize=(15,15), marker='o', hist_kwds={'bins': 20}, s=60, alpha=0.8, cmap=mglearn.cm3)

f:id:white-azalea:20190304232009p:plain

The機械学習

K-最近傍法で処理してみる…むかしやったなーこんなやつ。

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=None, n_neighbors=1, p=2,
           weights='uniform')

…めっちゃ簡単になっとる…機械学習本見て根性で実装してたのになぁ(汗
まずは適当なデータで特徴量を表示

X_new = np.array([[5, 2.9, 1, 0.2]])
X_new.shape
(1, 4)
prediction = knn.predict(X_new)
prediction
array([0])
print(iris_dataset['target_names'][prediction])
['setosa']

なんかそれっぽい。

早速確認用データを食わせる。

y_pred = knn.predict(X_test)
y_pred
array([2, 1, 0, 2, 0, 2, 0, 1, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1,
       0, 0, 2, 0, 0, 1, 1, 0, 2, 1, 0, 2, 2, 1, 0, 2])

なんか出てきた。 結果を比較

np.mean(y_pred == y_test)
0.9736842105263158

は…(゚o゚;;
これだけでこんな行くんかい…

駄文…というか予想

2019 年の SI 業界予想。

技術は置いておいて、大激変の年になるのは間違いない。

働き方改革」による、プロジェクト運営方法の変更だ。

コレは予測というよりも、やる・やらないの差が、ブラック企業/ホワイト企業をほぼ明確に分ける。
残業規制や有給の強制取得などが盛り込まれており、守らなければブラック企業(公式)扱いになるためだ。
現実問題として、人手不足という現状があり、その上で作業時間を減らす必要が出る以上、仕事の進め方そのものを変え(時間に対しての作業の質をあげるなど)なければ崩壊するか、ブラックに転落するかしかない。

必要なのは組織運営の見直しなのであって、現場に丸投げする様では、社員はきっと逃げるだろう。

この改革は王手のような巨大組織とそこに紐づく下請け SIer がおそらく暫くはブラックに近くだろう。
組織規模が大きいと変化が難しく、でも残業などは回せないから下請けに流す事になる。
下請けは作業量が増えるので、必然的にルールを守りきる事が難しくなる。
なので下請けは選択を余儀なくされるはずだ。

一度ブラックの称号がついてしまうと、中小に限って言えば、こと求人で言えばかなり致命的だろう。
存続も難しくなるはずだ。

blackcorpmap.com

昨今の新卒や転職社もこのサイトは大体知ってるし、考え方はシビアだ。
するとどうなるか?

  • 元請けに対応しきれなくなって下請け事業の撤退、もしくは規模縮小。そこに続く元請け化と内製。
  • 下請けがブラック転落、先細り、元請けも先細る。
  • 元請け共々働き方改革で協力して共に生き残る。

とても個人的な意見(偏見も多分にあるので、あくまで個人的見解)最後のケース望みが薄い…下請けの力関係みたいなものは体育会系の上下関係に等しいものが見える。もちろんそれが全てとは言わないが、体感的にそんなケースが多いように見える。
SIer の体質(というよりは巨大規模の体質)の変わらなさは個人的に見てもやばいレベルな気がする為だ。
加えて言えば出向を行ってる人貸し業も体質変更は死ぬほど難しい。一人一人体質を変えようにも貸し出して手元にいないのだから変えようがない。
(司令だけ渡してアウェーな現場でそんなの守れるわけもなく…度がすぎると退職者を産む)

逆に中小で内製企業は改革は行いやすい。そういう意味では住みやすくなる可能性は非常に高い(変化を受け入れられるならばだ)。
で、ここにきてどうなるかと言えば、だいたい方向性は見えてる。

  • WF/Agile などを適度に使い分けるようになる。

のは大前提だろう。
何か画期的な手法が生まれれば別だが、IT 本家米を見ても Agile 派生が幅をきかせてる位しか見えない。
画期的手法が生まれるというのは望み薄いと思う。
強いて言えば日本人の気質になった Agile にはなるだろうくらい。

WF は不測の事態への対応コストが高すぎて、こう変動期に全部 WF で回すなんて悲惨な未来しか見えない。
規模が小さいからこそ、意思疎通コストの低さを生かして、小さく立ち回れる利点がある。
当たり前だがWFの方が向いてる仕事もある。人命がかかるとか、何を置いても確実性が必要なケースだ。

  • 規模の大きな開発系企業から、IT のアウトソースが減り、内製にシフトし始める。

これも結局同じ流れ。
アウトソースして出来上がったシステムが出てくるのは数ヶ月後、結局うまく最新の局面にマッチしなくなる。
結果として、Agile の様に現在の状況に即した開発に切り替わるが、Agile だとすると要するに開発チームを囲い込む状況に近くなる。
ならば内部で開発チーム置いた方がコストがよくなるという発想だ。

SIer は怖れよ、コレには実例がある。
カイゼン・ジャーニー発刊1周年記念イベント「私たちのジャーニー」 - DevLOVE | Doorkeeper

稼働率100%男が、稼働率100%をやめるジャーニー」というセッションがそうだ。
スライドが見つけれないのが痛いが…

結局こうなるのではなかろうかという予想。

コアな領域では、企業はエンジニアを雇いたがる。そして技術継承も踏まえ、改善しながら持続させる方針をとるはずだ。
一方で、日本は人手不足。小さい開発を行うにしても人手がたらなくなる。
しかしこの小さな開発の為だけに、人員を増やしてしまうと、その後に解雇もしづらく問題になる。

結果として、その隙間を SIer が埋める事になりうる。

今現在 SIer なので、SIer 視点で考えれば

  1. 需要はなくならない、しかし大口の開発は減る。
  2. つまり、大きな規模としての SIer はその規模を縮小せざるを得ず、中小 SIer もその数は減じる。
  3. 中小企業では、ICT 人員を雇う事事態もままならず、これも SIer 頼みになる。

つまり SIer は小さな開発をたくさん受けるような業態に落ち着く。
「売り上げ = こなした数」となるので、人貸しでは稼ぎにならず、社内に仕事を引っ張り込んでパイプラインんぼごとく(リーン)開発するのではなかろうか?

【初心者向け】Kaggleで機械学習を勉強しよう!

liberal-arts-for-tech.connpass.com

ここんい参加したきた。
半分近くが学生さんというすごい状況。
モノが学術方面なので、その分学生のほうが寄り付きやすいのかも知れない。

内容

といっても基本は交流の場+もくもく会といった状態でした。
Kaggle 初心者の為の入門方法もやってるので、どのタイミングで参加しても初学者に優しそうだ。

その意味で、 勉強会初参加とか、機械学習自体が初学者でも問題なく入っていける というのはとても強みだと思う。

次回はすでに他の勉強会が挟まってるので参加は多分無理なのだけど…

Kaggle 入門

素敵なことに、スライドがあって、Kaggle のアカウント作成〜チャレンジのエントリー〜データのダウンロード〜回答のアップロードまでの手順を順に説明してくれるというとても親切なものだった。
(その横でもくもくしている人もいるという)

ちなみに入門車は Titanic (Kaggle チュートリアルチャレンジ)だった。

真面目な話、アルゴリズム自体は色々弄ってるので、根拠のない自信で「やれるんじゃね?」と思ってたのが甘かった。

チュートリアルレベルでもデータの整形、補完、不要なデータの除去など、前処理を行うらしい。
当然ながら、アルゴリズム実装だけやってると、そんなことはしてない訳で、しょっぱなからつまづいた。

ここでこの勉強会が親切だなと思った点は、前処理〜モデル生成〜性能評価の一連の流れの説明や、Kernel(他の人が書いた解説)なんかの読み方まで説明してくれる点だ。
時間が短かったので、精度を高めるなんて話までは進まなかったのは残念だが、凄まじい刺激である。

個人的にやらんとなーと思ったこと

具体的に(予め断っておくが全て Python3.6+)

  • pandas
    データ読み込み、加工、保存のライブラリ。
  • scikit-learn
    機械学習ライブラリ

なんてのを弄ってた。
そして悟った…numpy 一つでスクラッチ実装も無駄ではないが、効率考えたらライブラリ使えと。

仕事でやってないで趣味でやってるからスクラッチなんてマネができる訳で(汗
そりゃコンペやるくらいなら、ライブラリでもなんでも投入してやれよなって話だ。

刺激

機械学習を仕事にしてる人の話は過去何回か聞いた。
アルゴリズム自体は研究分野を除けばだいたい一般化していて、結局彼らのお仕事は「前処理係である」とはよく聞く話だ。

で、今回勉強会へ行って驚いたのが、参加した大学(学部)学生がすでにそう言うのが必要と自分で気づいてる点。
コレは乗るしかないこのウェーブにッツツ!!!

reading-circle-beginners.connpass.com

と言うことで申し込んだ!
学生たちの話を聞くのも非常に面白かった。

曰く

  • TypeScript どうやって入門しましょう?
    一気に入門しないと書籍は陳腐化するからおすすめは公式
  • wasm どうなんでしょう?

みたいな話。
WASM すらっとは出てこないけど、改めて考えると

言語も広まってる。昔 asmjs もあったけど…
結構いろんな言語が対応してきてるけど言語で差が激しい。

多分セキュリティ的なものもあるから、そこまで自由度は増えないと予測。
コアロジック見たいのは書けても、ソケットとかDOM操作とかまではサポートされないと思われる。

ただ、TypeScript/C# 両方が Microsoft なので、TypeScript 中でシームレスに C# が書ける様になる可能性がある。
そうでなくとも、TypeScript 自体は GitHub - AssemblyScript/assemblyscript: A TypeScript to WebAssembly compiler 🚀 経由で WebAssembly 化できるので、その意味でかなり強そう。

やっぱ MS はここ5年くらいでかなり変わった。

続きを読む

カイゼン・ジャーニー一周年記念イベント〜私たちのジャーニー〜

と言うのに参加してみた。
タイパーじゃないので、かなりの漏れはあって、口調みたいなものが消えて訳本臭い書き方になってたりもするけど気にしないで欲しい。

マジでテープレコーダーとかビデオとか買おうかな…

https://devlove.doorkeeper.jp/events/87126

主催: 市谷さん、新井さん

dev summit にて、技術書大賞があった。 そこで大賞は取り損ねたのだけど…

カイゼンジャーニーは現場で越境(役割やこれまでの慣習を断ち切ってすすむ)の為の本。 一人型初めて、チームになって、みんなを巻き込む所まで。 段階を追って行く。

ジャーニーって誰のジャーニーなのか? これは著者の経験、記録から編集して構成してる。

  • 西村さん:agile samurai の訳者。
    カイゼンジャーニーの西方さんは、西村さんがモデル。
  • 楽天の及部さん: アジャイル系で登壇しまくるチャレンジャー(逆境好き)の人。
    主人公の江ノ島さんのモデル。
  • 角谷さん: 2007 年のデブサミで喋った人。石神さんのモデル。
  • 竹本さん: がたせさんのモデル。二人なら始めれる、もっと変えられるって言い出した人のモデル。
    devlove の発祥の人。

こうした人たちのジャーニー、それがカイゼンジャーニー。

続きを読む