javaのソースコードの全ての(まだサポートしていない関数もいくつかあります)メソッドにデバックプリント文を自動的に投入する!

デバックプリント文を自動的に投入するプログラムはpythonで書きました。

実行の仕方はgithubで書いた通りですけど、inject_into_funcを実行して、その実行時のパラメータにjavaのソースがすべて入っているトップディレクトリを指定します。

 

linuxでの実行例

python3 inject_into_func ( javaのトップディレクトリ)

 

注意点

複数行にまたがっている関数の定義には投入されないものもあります。そこはまだサポートしていません。

 

somefunctionName() {

   some_statement;

   other_statement;

}

 

上の() {が同じ行で書かれているものはまだサポートしてません。

 

僕がテストとして使ったmavenソースコードのほとんどがしたの形でかかれていたのでサポートするコードを書きませんでした。

mavenソースコードのメソッドの書き方

somefunctionName()

{

   some_statement;

   other_statement;

}

 

 

本や記事の読み方

文字ばかりのものは極力避ける

図1 文字ばかりの文

f:id:majitan:20200510072741p:plain

図2 文字、画像、図形、中見出しがある文

f:id:majitan:20200510073007p:plain

図1、図2を比較したばあい、図2はぱっと見て何が書いてあるか分かりやすいです。図1は実際に読んでいかないとないが書いてあるか読むまでわかりません。

情報にあふれている今の時代、すべてを読むのはあまりにも非効率的です。限られた人生という時間の中で効率よく読むことは成功するために致命的であります。


目次を見て判断する

読む前に目次を見て自分に必要な情報かどうかを見極めましょう

 

1ページ1ページ全てを読むことは絶対にしない

上でも書いたように効率よく読むことはもはや致命的なので絶対にすべてを読もうとすることはやめましょう。たくさんの本や文献を見てると、結構、他の所でも同じことを書いてある内容の重複した情報が多いです。

読む目的を決める

  • 疑問があってその答えを探す。
  • 全体像が知りたい、仕組みが知りたい、どういうものかを知りたい

などきちんと目的を決めてから読むようにしましょう。

 

 

 

 

 

 

 

画像解析をcomputer visionのライブラリを使わずpixelの処理だけで行う

画像解析を始めようと思うとopenCVなどいろいろなライブラリがあったり。。また専門書を見るとずら~っと難しそうな数学をみかけますよね。あ、もうだめだ、あきらめよと思ってしまいそうですが。。。でも、ピクセルの処理を中心に処理を考えると難しい数学もライブラリも要らないです!

 

そこでcomputer visionのライブラリ抜きで始める方法を紹介します。

 

pythonを使った例です。

基本的な手順は。。。

pythonのpillowのライブラリでピクセルを読み込み、ピクセル処理をする

 

例えば、以下は僕が作成したgithubで公開している画像解析の例です。

https://github.com/Programming641/computer_vision_algorithm2

 

ここでやっているのは画像のすべてのピクセルを216 (web safe colors) 色に置き換えています。

このようにcomputer visionのライブラリを使わずに独自のアルゴリズムを作成して画像解析をしていきます。