怠け者仕事

三日坊主にならない程度に備忘録

技術書典2に行ってみた

僕程度のクソ底辺SEでも、ちょっとは最新の動向が気になることはあるし、可能であればお知恵を拝借できればと思うこともある。

先人の知恵を500円やら1000円やらで手に入れることができるのであれば、それは素晴らしいことだ。

 

ってことを多少思いながら行ってきました。

雨の中。風も強かったな。

 

11時会場なので念のため10:30に会場到着したらすでに行列状態。

200人以上はすでに並んでたのかな。

f:id:epiphany-6939:20170409164912j:plain

 

列に並んでいる間に技術季報というものも購入。

まぁお布施みたいなこもだと思って、購入しておきます。

ちなみに、別にこれを購入しなくてもトートバッグはもらえたみたい。

本を買うイベントなのに財布しか入らない肩掛けカバンのみで参加するアホには大変助かりました。

 

f:id:epiphany-6939:20170409164812j:plain

 

11時少し過ぎから入場開始。

スタッフの人が少しづつ入場を促している。

少しづつだからあまり列は進まないけど、参加者の方のマナーも良いので混乱もなく列が進んでいく。

 

15分ほど待ったところで僕も入場。

 

中の雰囲気はこんな感じ。

売っている方と購入される方のコミュニケーションも活発だし、技術系と行ってもハード、ソフト、ネットワークと色々なジャンルが別れているから人も結構分散されていて、程よくストレスなく見て回れました。

 

f:id:epiphany-6939:20170409164733j:plain

 

色々購入してみました。

特に量子コンピュータに関してはちょっと触れてみたかったので、無事の購入できて良かった。

 

<購入した本>

■techbooster 様

 ・Think Web

 ・わかる!ドメイン駆動開発

■石貫會 様

 ・量子コンピュータ手習い

 ・Effective量子コンピュータ

■品質公団 様

 ・bitcoin/ブロックチェーンの仕組みが小一時間で解る本 第三版

■ふぃーるどのーつ 様

 ・TDDってなんだ

 

f:id:epiphany-6939:20170409164757j:plain

 

 

色々なもの出会えるイベントとして、とても楽しませてもらいました。

 

興味あるものを適当にかいつまんで購入したので、読むのも大変だなー。

少しづつ、少しづつ勉強させていただきます。

 

 

擬似的なお仕事サーバの構築(構想)

世の中のSI企業には、未だにろくなIDEもなく、メモ帳レベルのエディタとかで大規模なプログラムを書いているところもあります。

 

C言語とは言え、テストコードの作成やら、テスト自動化をすすめるには、IDEの導入が必要だろう、しかし、なかなか仕事中に環境作るのもなかなか大変なので、今妄想して見る。

 

お仕事環境

サーバ:Redhat Linux

DBMSOracle 11g

コンパイラGNU

その他:Pro *cの使用アリ

 

Windowsの支給端末で無料で擬似環境を作るなら、以下かな。

 

サーバ:CentOS

DBMS:Oracle11g ExpressEdition

コンパイラGNU

その他:Pro *cのためにOracle Instant Clientお導入。

 

この環境をVMwareかVirtualVoxで作成った感じかな。

 

あとで作ってみるかな。

 

chromebook flipのキーボードのnが外れた件

昨日のブログを書いてて、nのキートップが外れてしまった・・・。

 

f:id:epiphany-6939:20170226131312j:plain

 

 

なくしてわかるnの重要さ・・・。

一応打てるからいいけど。

 

部品はあるからなんとかはめようとしたけど、爪を曲げてしまったようで、上手くはまらなくなってしまった。

 

オフショアとアジャイルの組み合わせは難しいなと思った話

お仕事のお話です。

 

最近仕事で、オフショアとアジャイルを組み合わせたプロジェクトをやっていました。

そもそも、それぞれどのような利点があるかというと

・オフショア・・・単価が安く、そこそこの人材を雇えるので安価に仕事ができる

アジャイル・・・継続的にリリース・機能改善をを施すことで、ユーザにとって価値のある機能を早く提供できる。(ウォーターフォールと比較して)

 

ってことでじゃあ混ぜてやってみるかって発想です。

 

良かった点

・余計なドキュメント作成が不要

仕様書や設計書をしっかりと作成してというウォーターフォール型の開発をしていると、オフショア開発では言語の壁のせいでドキュメント作成はとても大きな負担となります。修正する方も手間ですが、解読するのはもっと大変だと思います。ここがドキュメント作成の手間が削減できるのは開発者側としてもとてもやりやすいらしいです。

 

悪かった点

・どうしてそうなった?が多い

オフショアに限らず発生することですが、伝えた要望と仕上がった仕様が大きく乖離していることが多いと思います。

じゃあちゃんと設計書を作って伝えるか。ってなるとウォーターフォールか、スパイラルで開発すべきだと思います。

そもそも、エンドユーザ(仕様決定者)と開発者側に物理的、言語的距離があるのはアジャイルのスピード感には合わない気がしました。

 

今後の課題

・距離の壁が問題なのか(ニアショアであれば解決するのか)、言語の壁の問題なのかを探りたい。

開発プロセスの再検討を行うことで、アジャイルとオフショアが共存できるのかを探りたい。

 

 

 

Chromebookでゼロから作るDeep Learning(Cloud9)その3

 

sloth-work.hatenablog.com

 

`前回、挫折して、AWS使うかーなどとほざいていましたが、

あちこち読んでると、Jupyterというものを使えば、matplotlibの結果は見れるし、

Anacondaインストール時に入ってるし、Cloud9で使えるし、ってか最初Anaconda導入でお世話になった方の記載にすべての答えがあったという・・・。

 

f:id:epiphany-6939:20161207220810p:plain

 

あーできたできた。

 

ってことで、環境構築はこれで終わり!

 

Chromebookでも無事、Deep Learningの勉強はできそうです。笑

Chromebookでゼロから作るDeep Learning(Cloud9)その2

前回、Cloud9でPythonの開発環境を構築しようとして、GUI環境がなくエラーが出て一旦中断しました。

 

sloth-work.hatenablog.com

 

 

そこで、じゃあGUI環境の構築してみるかと以下のものを導入してみます。

GitHub - noobkilervip/cloud9-vnc: Running X11 in a Cloud9 Workspace

 

結論から言います。

 

無理でした。

 

導入自体は難しくありません。

Instrationの項を見ながら順にコマンドを叩けば完了。

 

そして、Runningの項を見ながら実行しようとすると・・・。

/opt/c9vnc $ sudo ./c9vnc.sh
VNC client running at https:///vnc.html
./c9vnc.sh: line 5: supervisord: command not found

 

なるほど、よくわからないけど、supervisordが必要なんだ。

じゃあ入れようか。

 

/opt/c9vnc $ pip install supervisor
Collecting supervisor
Downloading supervisor-3.3.1.tar.gz (415kB)
100% |████████████████████████████████| 419kB 1.9MB/s
Complete output from command python setup.py egg_info:
Supervisor requires Python 2.4 or later but does not work on any version of Python 3. You are using version 3.5.2 |Anaconda custom (64-bit)| (default, Jul 2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]. Please install using a supported version.

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-7z6awo07/supervisor/

 

ってことで、Python2系が必要みたいですね。

 

両方インストールして、共存を図るのも良いですが、さすがに面倒すぎるかなー。

 

今度はAWSでも使って見ますかね。

無料枠使ってないし。

Chromebookでゼロから作るDeep Learning(Cloud9)

以下の本を買ってみました。

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

 

私のスキルですが、

Python 触ったことありません。

機械学習 なにそれ?

Chromebook 持ってる

 

という状態です。

なぜこんな本に手を出したかって言うと、衝動です。

 

さて、この本をパラパラめくると、最初に開発環境の構築があり、Anacondaというものの準備が必要そうです。

 

Chromebookでできるんですかね?

 

Linux環境を整えるとまぁできそうですが、今回は挑戦という意味でCloud9でやってみたいと思います。

 

基本要件としては、

Python3

NumPy

Matplotlib

というものが必要らしいです。

 

本書ではこれをまとめて入れるためにAnacondaというものを使用するみたいです。

 

さて、早速環境の構築ですが・・・。

 

例のごとく、基本的に人様の情報に頼ります。

Cloud9で簡単Jupyter環境構築 - Qiita

 

上記の方のご指示通りにコマンドなどを実行すると、Anacondaのインストールまではサクサク進むはずです。

 

バージョン確認を行ってみます。

~/workspace $ python --version
Python 3.5.1 :: Anaconda 4.0.0 (64-bit)

 

pythonもAnacondaも問題なく入っているようですね。

 

念のため、NumPyのテスト

>>> import numpy as np
>>> x=np.array([1.0,2.0,3.0])
>>> print(x)
[ 1. 2. 3.]
>>> type(x)
<class 'numpy.ndarray'>

 

続いてMatplotlibのテスト

>>> x=np.arange(0,6,0.1)
>>> y=np.sin(x)
>>> plt.plot(x,y)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 3147, in plot
ax = gca()
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 928, in gca
return gcf().gca(**kwargs)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 578, in gcf
return figure()
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/pyplot.py", line 527, in figure
**kwargs)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py", line 46, in new_figure_manager
return new_figure_manager_given_figure(num, thisFig)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py", line 53, in new_figure_manager_given_figure
canvas = FigureCanvasQTAgg(figure)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py", line 76, in __init__
FigureCanvasQT.__init__(self, figure)
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt4.py", line 68, in __init__
_create_qApp()
File "/home/ubuntu/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py", line 138, in _create_qApp
raise RuntimeError('Invalid DISPLAY variable')
RuntimeError: Invalid DISPLAY variable

 

ってエラーが出たのでとりあえずAnacondaのアップデートをしてみます。

conda update conda

 

エラー解消せず。

 

matplotlibの再インストール

pip install matplotlib -I

 

で状況変わらず。

 

よく見たらDISPLAYが設定されてないって、そりゃCUI環境じゃグラフの表示は無理か。

ってことでCloud9にGUIを導入してみますかね。

 

GitHub - noobkilervip/cloud9-vnc: Running X11 in a Cloud9 Workspace

 

ってことで続きはまた今度。