build, compile

ソースコードインストール時は、build、コンパイルを経てインストールとなる。
こちらはお馴染みですね。

$ ./configure # 設定
$ make # build
$ sudo make install # インストール実行

C言語、C++をコンパイルするには、GNU Compiler Collection, GCCのインストールが必要
コンパイル → オブジェクトファイル → リンク → コマンド
↑コンパイルからリンクまでの一連の流れがビルド

ubuntuにgcc, makeが入っているか確認します。
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ gcc –version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ make –version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu

hello.c を作る

#include <stdio.h>
	main(){
		printf("hello world.\n");
	}

vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ls
hello.c
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ gcc hello.c
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ls
a.out hello.c
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ./a.out
hello world.

makefile

hello : hello.c
	gcc -o $@ $<

clean :
	rm -f hello

vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ls
a.out hello.c Makefile
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ make
gcc -o hello hello.c
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ls
a.out hello hello.c Makefile
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ./hello
hello world.

makeはカレントディレクトリにmakefileがあるとそれに従って動く

bitcoin coreのmaikefile
https://github.com/bitcoin/bitcoin/blob/master/Makefile.am

WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
  $(top_srcdir)/share/pixmaps/nsis-header.bmp \
  $(top_srcdir)/share/pixmaps/nsis-wizard.bmp \
  $(top_srcdir)/doc/README_windows.txt

OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_FANCY_PLIST) $(OSX_INSTALLER_ICONS) \
  $(top_srcdir)/contrib/macdeploy/$(OSX_BACKGROUND_SVG) \
  $(OSX_DSSTORE_GEN) \
  $(top_srcdir)/contrib/macdeploy/detached-sig-apply.sh \
  $(top_srcdir)/contrib/macdeploy/detached-sig-create.sh

OSXとwindowsだとビルド方法やパッケージが異なるなるのかな。

センサー技術

震度センサー
圧力・気圧センサー
電流センサー
雨量・水位センサー
風量センサー
マイクロホン
人感センサー
開閉センサー
CCD/CMOSイメージセンサー
二酸化炭素センサー
GPS
電子コンパス
湿度・温度センサー
ジャイロセンサー
照度センサー

スーパーコンピュータ

Sequoia (supercomputer)
– IBMが開発
– 速度: 20.13 PFLOPS
– 目的:核兵器、天文学、エネルギー、ヒトゲノム、気候変動

神威・太湖之光(Sunway TaihuLight)
– 江蘇省無錫市の国立スーパーコンピューターセンターにあるスーパーコンピュータ
– 速度:93 PFLOPS ※理論性能:125.4359PFlops

Summit(OLCF-4)
– IBM, NVIDIA, Mellanox Technologies
– 処理速度:200 PFLOPS
– アーキテクチャ: ヘテロジニアス、4,608 ノード、9,216 CPU (POWER9)、27,648 GPU

ヤベーことになってるな。これ。
しかし、なんでこんなに差がついてるんだ。

Cloud term what does SaaS mean?

What is SaaS?

SaaS is an abbreviation of “Software as a Service”.

Refers to software provided in the cloud. Instead of installing the software on the user side, the vendor (provider) side runs the software, and the user leverages the functionality of the software via the network. Can think of what has been sold as packaged products up to now as available via the Internet.

Examples include email services such as Gmail, blog services, and services such as Salesforce. It is is useful in the sense that you can achieve the purpose immediately, but if you have low degrees of freedom and you want to use your own program, you need to use PaaS or IaaS as described.

Typography error

“Typography error”
It is abbreviated as “Typo”. The code doesn’t move because of a typo.

e.g.
get hello/index のところを get hello/indox などとtypingをミスすことをタイポエラーという。

タイポグラフティエラー対策??
うーん、正直よくわかりませんな。。

モダンな開発環境とは何か?

とにかく今のプロジェクトのクオリティを上げることが最優先、と考えていたが、思っていたより直ぐに「モダンな開発環境とは何か?」という問いに直面してしまった。

自分なりに整理してみる。
まず、技術トレンドに乗っている
これが大事では。レガシーなシステムは切り離して、トレンドを忠実に追うこと。そのためには、まずそういう環境に身を置くことが大事。ちゃんと技術トレンドに沿っているエンジニアと一緒に仕事をしないといけない。
– 言語はpython
– クラウドはaws
– mac

積み重ねだと思うが、結構大事かも。

次に、、、
積極的に新しい技術を学んでいけ
やっぱりこれは大事なんじゃないか。。と思い始めた。

結果的にそれが価値に繋がるのでは。

最近思うのは、競争相手は中国やインドなどのエンジニアだということ。働き方改革など悠著な事を言っている場合ではありませんね。

SLA

SLA is an abbreviation of Service Level Agreement, which is an agreement on the level of service (definition, scope, content, achievement goals, etc.) established between the provider of the service and its users. This is a statement to the extent that the service provider can guarantee the quality to the contractor.

SLAs are often used mainly for communication services, cloud services, rental servers, etc. We define service definition and guarantee items such as communication speed and upper limit of use stop time, and if the service quality falls below the guarantee value of SLA, reduction of charge will be performed.

Technical debt(技術的負債)とは

Technical debt is a new metaphor that refers to a sloppy software architecture and the consequences of unsatisfying software development. It is also referred to as “design debt”.

What kind of technical debt is there?
– Low coverage or no written test code
– Findings that smooth sharing has not been done between developers and stakeholders.
– Ignored compiler warnings and code analysis results
– Designs and codes that are unnecessarily complex
– Code not in compliance with coding conventions
– Unwanted odor (this metaphor is often used for refactoring)
– Old versions of languages and frameworks
– Difference between development environment and production environment

書評: KAIZEN JOURNEY 市谷聡啓著

たった1人からはじめて、「越境」するチームをつくるまで

推薦されたので、読了した。
最初、「越境」という意味が、国境を超える、と思っていたのだが、そうではなくて、一歩踏み出す、という意味だ。
本書はソフトウェア開発における悩みやその解決のアプローチ方法を多数提示している。よって、環境や立場は異なるが、各登場人物の心境に共感できることが多く、読み物として楽しめる。俯瞰して読むことで、チーム開発においては、身勝手な行動は一切慎むべきだということが手に取るようにわかる。また、突き詰めると、エンジニアや当事者のスキルセット次第ということもよくわかる。スキルが足りないと、コミュニケーションミスが齟齬が起きやすいように感じた。