年内最終出社

一年間お疲れ。自分。入社して9ヶ月。
プログラミング以外の時間もあったけど、IT系で触れたことをここで振り返る時間にしよう。

HTML/CSS, JavaScript(jQuery) の基本的な学習。
プログラミング課題を解く。

Javaの研修。
四則計算、if文といった基本的な内容から、Java8以降使えるLambda(ラムダ式)などを
プログラミング課題を通じて学習。
MVCフレームワーク。DAO/DTO, Factoryデザインパターンを用いたWebアプリケーションを作成する課題(サーバーサイドの学習)。

Closure Libraryを用いた課題。

Spring Frameworkを用いた課題。

DB操作。SQL文などで必要なレコードの抽出・削除を行う。

不具合対応を行う。Javaから吐き出されるエラーログを解読する勉強。

他人が書いたプログラムが正しく動くかテストを行う。
なお、プログラムがどう動いているかは複雑すぎて全く追えない。。

OpenStackにサーバをたてる。立てたサーバにwarファイルを配置し、展開することでURLからアクセスできるようにする。

他にも課題管理ツールの使い方など今の会社で業務を行うために必要なツールは少しずつ使いこなせるようになっている。しかし、研修課題で学んだJavaのコーディングが全く活かせていない点が不安ですな。

個人的には実現できるならプログラミング言語はなんでもいいやと思っちゃうタイプなので、実務でコーディングができないことをそこまで気にはしないですが。。
→いずれ1人または少数で開発を行うことを決意する必要があるか。

なんにせよ。今年もよくやった。
学んだことは小さなことでもいいから書き続けてみよう。

 

今日はこれで

ファイル形式(jar, war) メモ書き

jar(Java archive) ファイル:
javaで実装したファイル(XXX.java)を1つにまとめて実行や配布しやすい形式にまとめたもの。

war(web Application archive)ファイル:
HTML/CSS, JavaScript, jarファイル, クラスファイル(servlet)などがまとめられたjava製のファイル。
TomcatなどのAPサーバ(アプリケーションサーバ)のwebapp/ いかに
〇〇.war を配置するとファイルが展開、同じ階層にフォルダが作成されることで、
デプロイが完了するイメージ。


tomcat/data/webapp/ 〇〇.war →このwarファイルが展開されることで
          〇〇/ このフォルダ以下に
             css/
             js/
             などが入るイメージ

 

EAR(Enterprise archive)ファイルは、、まだ扱ったことがないので別の機械に、、

JAR,WAR,EARそれぞれの違いについて - Java習得を目指すブログ

 

 

 

 

EclipseでWorking Setを作ってprojectをグループ化と注意点

 

会社ではEclipseを用いて開発やバグの再現を行う。
会社で使うProjectの数がとにかく多い!
git clone
して自分のフォルダに落とし、特定のブランチに切り替えたのち
mvn eclipse:eclipse
をターミナルで叩いてEclipse上にimport できるようにする。
Eclipse上にimport した際はProjectが10個近くある。

上記の作業を複数回行うとProjectは100個行くことも、、
これだとProject Explorer から特定のファイルを探すのが面倒、可読性が落ちる。

そのため、以下のサイトを参考にプロジェクトをグループ化した。

おかげでProjectがスッキリした。

ただ、会社だとmvn コマンドを複数回叩いたり、フォルダ上でファイルを追加したりする。その場合、Eclipse上で F5(refresh) をたたく必要がある。ただ、F5コマンドは
Working Setを選択してF5を押してもrefresh されない。Working Setを開いて、
Projectにカーソルを合わせた状態でF5 を叩かないと ProjectがCleanされない。
→それで1回やらかして余計な時間食ったので気をつける。


qiita.com

ポートフォワード(メモ書き)

ポートフォワーディング(port forward):
特定のポートに流れてきたデータを別のコンピュータに渡す。

今回のプログラミング参考書で行っていたことは、ゲストOSのポート(8080)に
流れてきたデータをホストOSのポート(80)に受け渡して、ホストOSのWebブラウザに表示させることをしている。

Vagrantfile にこんな記述をしていると思う。
config.vm.network :forwarded_port, guest: 8000, host: 8000

lsof -i:8080

で確認したら、ゲストOSのポートが使用されていると確認できる。
しかし、localでredmine が開かない状況は変わらず。。

Vagrantfileの中身の仕組みから学ぶ必要あるかも。。メモ書きを記す。(なお今週も忙しそうで参考書を進めるのは難しいだろう。。)

Vagrantのおけるポートフォワーディングではまった - Qiita

https://wa3.i-3-i.info/word12664.html




python プロフェッショナルプログラミング 第3版 備忘録2

ansible-playbook -K -i hosts site.yml

を叩いた後に、
ok: [localhost] => {
"msg": "インストールが完了しました。 http://10.0.2.15/redmine/ にアクセスしてください。"
}
と言われて http://localhost:8080/redmine/ にアクセスしたが、403 エラーがでる。。

コマンドを叩く時に発生したWarning メッセージ

```
[DEPRECATION WARNING]: Using tests as filters is deprecated. Instead of using `result|changed` use `result is changed`. This feature will be removed in version 2.9.
Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
skipping: [localhost]

```

下記の記事を参考に
roles/redmine/tasks/main.yml
ファイルのresult_database_yml|changed をresult_database_yml is changed
に変更した。

github.com

 

その後もう一度同様のコマンドを叩くも結果は変わらない。

 

ゲストOS作り直すところから戻って
ansible-playbook -K -i hosts site.yml を再度叩くも
TASK [apache : PassengerのApache用モジュールのインストール]

の部分から一向に進まない。。

一旦localにredmine インストールするのやめるか。。
ansible-playbook 使わずにredmineインストールするか。。

 

Pythonプログラミング参考書勉強備忘録1

Pythonプロフェッショナルプログラミング 第3版 - 秀和システム あなたの学びをサポート

学習中。自分のPC(Mac)で写経してちゃんと動かせるか検証。
乗りログプログラムの作成にて

f:id:taku1008sawa:20181223195429p:plain

error_log



NameError: name 'request' is not defined

 

ってエラーログが出てるんだけど。。
python request.form」とかで検索すると、Flaskの基本的な使い方として、
from flask import Flask, request, render_template
って書いてあった。

qiita.com


参考書にimport にrequest 書いてないやん。気をつけよう。
エラーログをネットで検索して、原因を自分で特定する訓練の時間。

→公式サイトに訂正でimport requestについて書かれていた。

if __name__ == ‘__main__’:
が参考書の中で出てきたけど意味がよくわからなかったので、下記のサイトを参考
http://programming-study.com/technology/python-if-main/


モジュール:スクリプトファイル(XXX.py)など
再利用したい場合は import XXX の形で呼び出せる


__name__ に変数が自動的に生成され、スクリプトのモジュール名が代入される。
そして、モジュール名を直接実行した場合に「__main__」というモジュール名が代入される。
逆に直接実行しない場合は、「test2.py」が「test.py」をimportする場合をさす。

この場合
__name__ にtest という文字列が代入され
if __name__ == ‘__main__’:

の条件式はfalse と判定される。

トースト

画面の隅(右下、左下)にポップアップとして現れる小さな長方形のメッセージを表現するUIデザイン。
「保存しました」「削除しました」みたいなやつ。
一定時間がたつとフェードアウトして画面から消えていく。

最近自分が使ってて見かけたものだと、Gmailの迷惑メールを削除した時に表示されるメッセージがそれにあたる。
→「保存」「更新」「削除」「追加」の通知以外で使う用途はあるだろうか??

トーストのスペルは食パンの「Toast」と同じで長方形の形であったり、
ポップアップの通知がトースターから「トースト」が出てくる様子を見立てたとされている。

→この手の名称って誰がつけてるんですかね。パンくずとかも絶妙なネーミングセンスを感じる。