まじごみ日記

パチスロ・アニメ・特撮好きの日記です。最近の趣味は筋トレ。

Javaに関する基礎の基礎

1日中仕事だけして眠るのは嫌な性分なので、昨日は面談準備が終わったあと(2時過ぎ)から3時間ほどダラダラ過ごして、結局寝たのは5時くらい。眠い。

早く次の仕事が決まると落ち着くんだけど。。

 

今週はすごく疲れたので、今日はJavaについて軽く調べて終わりにする。

今までなんとなくでしか分かってなかったことを調べてみよう。

 

Java SE

Java Standard Edition。

Javaの基本機能をまとめたもの。

Javaのコードを動かすためのAPI(=jarファイル)。

System.out.printlnなどはこれに入ってる。

 

Java EE

Java Platform, Enterprise Edition。

Webアプリケーション開発に必要なライブラリやフレームワークがセットになったもの。

HttpServletRequestなどのサーブレットAPIはここに入っている。

現在は「Jakarta EE」に名称が変わった。

 

Glassfish

Java EESDKに同梱されている、アプリケーションサーバ

 

JVM

Java Virtual Machine

Javaが動作する仮想環境。

これがOSとプログラムの仲介をしてくれることで、Javaは環境に依存せずに動作できる。

 

JRE

Java Runtime Environment。

Javaプログラムを実行するうえで最低限必要のソフトをまとめたパッケージ。

コンパイラは含まれていない。

 

JDK

Java Development Environment。

こちらはコンパイラが含まれる。JDKJREを内包している。

これをインストールすれば

が使えるようになる。

 

 

・・・ご飯が炊けたので、今日はここまで。

 

さらばFFⅦ

ルビーウェポン戦。

f:id:majigomi:20190719192108j:plain

うっかりユフィにリボンを付け忘れてしまった。

(直前にマジックハンマーラーニングのため、操る確率アップのアクセサリを装備してそのまま挑んでしまった。)

 

カウンターとナイツオブラウンドで削りなから、マジックハンマーでMPも削っていく作戦だったんだけど、MP削りきる前に倒せた。

 

時間は掛かったけど余裕でした。

面談用の自己紹介

今日は定時後に帰社したので、家に着いたのが22時過ぎ。

ここから、明日までに面談用の原稿を考えなければいけない。

今は23時過ぎ。何時に終えられるのやら。。

 

自己紹介

Javaを利用したWebアプリケーション開発を中心に、要件定義からシステムテスト、運用まで様々なプロジェクトに携わってきました。

要件調整のためお客様と直接接する機会も多く、説明資料の作成やプレゼンテーションを得意としております。

※プレゼンに関して補足:PREP(Point結論、Reson理由、Example例、Pointまとめ)の流れを意識して説明することを心がけています。

 

また、業務改善・効率化を積極的に行うことを心がけており、これまで要件定義からテストまで、様々なフェーズで改善提案を行ってきました。

この経験を今回のプロジェクトでも活かしたいと考えております。

 

業務経歴の説明

今まで携わってきたプロジェクトの中から、いくつかピックアップして説明いたします。

 

■まず、○○番の○○システムですが、

iPadにも対応したスケジュール管理システムの改修で、カレンダー上の予定をドラッグ&ドロップで編集する機能を作成しました。

(【くどくなるから説明いらないかも】ドラッグ&ドロップは関連システムで実装されており、こちらと全く同じ挙動を要望されたため、便利なD&Dライブラリの使用はできず、mouseup、mousemoveなどのイベントを1つ1つ拾って実装しました。)

 

ドキュメント類が不足している中、ソースコードから設計書を起こしたり、今後のメンテナンスのための資料を作成するなど、機能の実装以外の対応もあわせて行いました。

 

■次に、○○システムですが、

 新規開発の求人広告サイトのテストを、seleniumを使って自動化を行いました。

テストのみの参画でしたが、テストコード作成の過程でHTML属性やノードの階層構造のルールが統一されていないことが分かったため、ルールの明確化を図り、ソースコードの修正も行いました。

 

■次に、○○システムですが、

 リーダーの立場で要件定義からシステムテストまで携わり、開発規模の見積も行いました。

またメインの開発部隊は遠隔地におり、ブリッジSEとして仕様伝達やスケジュール調整などを行いました。

ここで、分かりやすい資料の作成や齟齬なく情報を伝達する力、スケジュール管理の方法など、プロジェクトを円滑に進めるノウハウを学びました。

この経験を今回のプロジェクトでも活かしたいと考えております。

 

(業務経歴の説明は、面談する案件に合わせて都度内容を見直す必要あり)

 

今日はここまで。シャワー浴びて早く寝ないと。。

 

さらばFFⅦ

エメラルドウェポン戦。

f:id:majigomi:20190718230750j:plain

カウンターマテリア12個のチカラで難なく撃破。

さらに

  • マスターコマンドとHPきゅうしゅう、れんぞくぎり
  • まほうカウンターとケアル
  • ファイナルアタックとフェニックス

の組み合わせを3セット用意するという、磐石の布陣。

 

余裕でした。

JavaScriptに関するあれこれ

いよいよ面談が正式に決まりそう。

昨日までは行き当たりばったりで気になったことを調べてきたけど、今日は面談で話題になりそうなことをピンポイントで調べていこうと思う。(薄く広く)

 

JavaScript開発で抑えておくこと

JavaScriptを使った開発案件を紹介されそうだが、まともに使って開発したことがない。

案件への参画が決まったら勉強するのは必須として、とりいそぎ、数日でどうにか面談を乗り切るだけの知識を身につけておきたい。

 

DOM

Document Object Model

プログラムからHTMLを操作する仕組みのこと。

階層構造をとりノードで表現される(親ノード、子ノード)。

 

SPA

Single Page Application。

単一のWebページでアプリケーションを構成する設計構造の名称。

滞在時間の長いサービスに適しており、逆にブログなどの直帰率の高いサービスには適していない。

サーバとの通信料やサーバリソースを減らすことができる。

 

クラウドホスティングサービス

外部からのアクセスや処理負荷の増減に応じて、サーバの処理能力を柔軟に増減できるサービス(レンタルサーバ)。

利用実績に基づく従量課金となっているサービスが多い。

 

BFF

Backend For Frontends。

フロントエンドのためにAPIをコールしたり、HTMLを生成したりするサーバのことを指す。

従来のWebアプリケーションサーバとの違いは、直接ユーザに触れる入力情報の取得やページ構築などのUX向上に特化したサーバを設けるアーキテクチャ設定とのこと。

 

UX

ユーザエクスペリエンス。ユーザ体験。

ユーザがサービスを使用したときに得られる経験や使い勝手、満足感などの全体を指す。

 

Node.js

サーバサイドで動くJavaScriptのライブラリ。

小規模で機動性の高いWebアプリケーションに向いている。

 

Bootstrap

CSSフレームワーク

デザイン性ある高機能なWEBアプリを簡単に作れる。

 

Aurelia

Angularの特徴を取り入れつつ、さらに使いやすいように改良されたフレームワーク

コンポーネント機能」「双方向バインディング」「ルーティング機能」がより洗練されている(?)

 

コンポーネント

機能を持つ各パーツ(部品)の集合体のこと。

機能分割することをコンポーネント化という。

コンポーネント指向ライブラリとしてはReactが多く使われているらしい。

 

バインディング

XMLなどのデータソースとアプリケーションやウェブページのユーザインタフェースを静的または動的に結合する技術。
分離されたデータソースとユーザインタフェースの間を橋渡しする役割を果たす。
データが変更されるとそれに応じてユーザインタフェースが変更される一方向なデータバインディングと、併せてユーザインタフェースの変更または操作に応じてデータが変更される双方向のデータバインディングがある。

(もろwikipedia。。)

 

ルーティング

JavaScript関連技術としてのルーティング(ルータ)は、URLを解析して、URLのパターンごとに開発者が割り当てた関数もしくはメソッドを実行する機能をもつライブラリのことを指す。

 

Foundation

レイアウトを自由に変更可能なフレームワーク

WEBサイトの中でも特にECサイト向き。

 

ECサイト

自社の商品(広義では他社の商品)やサービスを、インターネット上に置いた独自運営のウェブサイトで販売するサイトのこと。

Amazon楽天みたいなサイト。

 

(おまけ)レジリエンス

変形から元に戻ろうとするときの「弾力性」とか、変化に対する反動としての「回復力」「復元力」という意味らしい。

・・・なんのこっちゃ。

 

とりあえずここまで。

明日帰社した際に面談内容について相談するため、夕食後にも調査は続ける。。

 (飯食ったら何もしたくないけど。。)

 

今日の出来事

f:id:majigomi:20190717191636j:plain

AmazonプライムデーでFireタブレットを衝動買いしてしまった。

10インチタブレットが1万以下で買えるなんで驚き。

これでおれもアレクサデビュー!

 

今週は面談の準備があるので、落ち着いていじり倒せるのは週末かな。楽しみ!

 

そういえば、令和ライダー「仮面ライダーゼロワン」が本日発表された。

9/1の放送と、変身ベルトで遊ぶのが楽しみ!

Vue.jsとはなにか?

いきさつ

「Kotlin」については、まだ全然調べたりないけど、「Vue.js」を使ったWebアプリ開発のお仕事を紹介されそうなので、全く知らない「Vue.js」についても軽く調べておくことにする。

今まではサーバーサイドやバッチの仕事が多かったから、そもそもフロント側について詳しく無く、JavaScript自体もほぼ素人。。

 

Vue.jsとは

 

コンポーネント

プログラムを部品化して再利用可能とする仕組み。

Vue.jsでの使い方やコンポーネント構成は以下の公式ドキュメントに記載がある。

https://jp.vuejs.org/v2/guide/components.html

 

むむ、、けっこう難しい。

 

こういうのは、実際に動かしてみないと身につかなそう。

仕事が決まったら、もっと具体的な調査をしようと思う。

 

Directive

Directive(ディレクティブ)と呼ばれる、Viewの要素に付与できる独自属性がある。

 

https://jp.vuejs.org/v2/guide/custom-directive.html

 

これを利用することで、直接DOMを操作するコードの記述量を減らせるみたい。

 

Vue.js以外のJavaScriptフレームワーク

JQuery以外知らないので、どんなものがあるのか軽く調べておく。

  • AngularJS

   SPA開発に向いてるが、学習コストが高い。

  • React

   SPA開発に向いている。

   Vue.jsと違いデータバインディングが画面からHTML方向のみ。

  • Riot.js

   シンプルで学習コストが低い。

   カスタムタグの作成が可能。

  • Hyperapp

 

調べ足りないこと

全部だけど、特に知っておくべきことは、SPA開発に向いているフレームワークみたいなので、SPA実現のためのどんな機能があるか、とかかな。

コードサンプルとか追っていくと時間がすぐ過ぎちゃうので、なんとか概要だけ手っ取り早く知る方法は無いものか。。要改善。

 

今日はここまで。お腹すいたのでもう無理。

 

さらばFFⅦ

けっこう前の話だけど、6/11にプレイステーションクラシックのFFⅦをクリアした。

記事にしようといくつか写真をとっておいたので、ここで記録しておくことにする。

f:id:majigomi:20190716192338j:plain

レベル上げ(マテリア経験値稼ぎ)スポット。

ここに20時間くらいは滞在した気がする。

 

この場所で・・・

f:id:majigomi:20190716192521j:plain

カウンターマテリアを12個ほど作ったところで、作りすぎたと気づき、修行を終えた。

強敵と言われるエメラルドウェポン、ルビーウェポンは果たして倒せるのか?

 

f:id:majigomi:20190716192739j:plain

ここまでのプレイ時間は約67時間。

DISC3に入ったところでプレイ時間は35時間ほどだったので、30時間以上ひたすらマテリアを育てていたことになる。

 

そういえば、

f:id:majigomi:20190716193001j:plain

海チョコボはすぐ作れました。

Kotlinについて調べてみた

第一回

今日からはじめる、「毎日何かを調べてみる」。

薄い知識を広く身につけていく試み。

 

いきなり張り切ってすぐやめてしまうのは避けたいので、とりあえず1時間という制限を設けて、時間内で出来る範囲でやってみようと思う。

調べたりないことは、翌日以降のネタにする。

 

今日はとりあえず「Kotlin」というキーワードから、気になったことを調べようと思う。

 

Kotlinとは

 

特徴

Javaとの相互利用ができる

KotlinからJavaコードを呼び出す、JavaからKotlinのコードを呼び出す、ということが簡単にできるみたい。

※voidを返すJavaメソッドはKotlinから呼ばれるとUnitを返す、みたいな、

言語仕様の違いによる読み替えが発生するみたい。

 

コードが簡潔

  • トップレベルに関数を定義できる
  • 型の指定は不要
  • セミコロンなど省略可能

など。

 

Null安全

NullPointerExceptionを起こさないような仕組みのこと。

Kotlinでは、型指定時に「非Null型」「Null許容型」を分けて宣言する。

 

■非Null型の例

var a:String = "AAA"

a = null

コンパイルエラーになる

 

■Null許容型の例

var a:String? = "AAA"

a = null

コンパイルエラーにならない

 

こうしてNull許容の有無を明確に宣言することで、「もしかしたらNullかも」という不要なケースを想定したコードの記載が不要になる。

 

String型とString?型は別もので、String型にString?型を代入することはできない。

String型にString?型の子クラスみたいな扱いで、String?型にString型を代入する分には問題ない。

 

調べ足りないこと

  • Kotlinの特徴(続き)
  • Javaとの違い
  • 他のJVM言語について(Scala、Groovyなど)
  • 静的型付けの言語って?他に何があって、何が違うの?

 

1時間じゃあまり調べられなかったけど、これ以上やっても続かなそうなので明日もこんな調子でちょっとずつ調べて行こうと思う。

あと、ソースコードとかをエディタ風に書く方法とか、ブログを書くためのノウハウ的なことも知りたい。

 

とりあえず、お腹すいた。。

 

今日の日記

上京してからすぐに買った自転車を今日捨てた。

もう9年も前に1万円で買った自転車なので、よく頑張ったものである。

f:id:majigomi:20190715190247j:plain

 

先日パンクの修理に持っていったところ、タイヤがもう限界で前輪、後輪共に交換しないと無理だそうで、買い替えを勧められた。

カゴもボロボロだったし、1万近く修理代を掛けてまで思えなかったので、素直に買い換えることにした。

 

新しい自転車はこちら。

f:id:majigomi:20190715190351j:plain

一番安いやつじゃなく、プラス千円くらいでカゴが丈夫そうなやつにした。

16,700円で予定外の手痛い出費となったが、満足。

(ギア切り替えは、壊れそうでちょっと心配)

 

休みの日に晴れたら、ちょっと遠出したい。

ブログで人生を楽しくしよう

最近、なんだか辛い

今の仕事が忙しいわけではないけど、9月からの仕事を探すためにいろいろ行動していて、落ち着かない。

スキルシートを書いたり直したり、仕事探しのメール出したり。

 

特にスキルシートは新フォーマットで一から書き直したので大変だった。

アピールできることや目標、努力など、何一つ無いことがハッキリと分かってしまう。

 

今までは、目の前の仕事に(時にプライベートの時間を削って)全力で取り組んできたけど、それは当たり前のことで、「何を目指して」「どんな行動を起こしたか」が、仕事を探す上で重要だ。

 

自分は、技術的なことに興味が無いし、この業界が好きでもない。

プライベートの時間を使って、今の仕事に直接関係が無いことを調べたり、何かを身につけたりしてこなかった。

 

気づけば、うすっぺらいクソザコエンジニアになってしまった。

エンジニアとして低く評価されていることに気づいてしまった。

憂鬱になる。

 

あと、営業のハングアウトグループに入れてもらって、過去のやり取りに目を通したが、そこでも自分は評価されていないことが分かってしまった。

なにかを任せられると思われていないし、そもそも期待されてもいない。

社員として空気のようだった。

この営業のグループの中では明らかに自分は場違いで、(通知が来て)携帯が震える度に憂鬱な気分になる。

 

何かをしなければと気があせり、最近は技術的なことを調べたりして携帯をいじっている時間が増えたが、集中しているわけではないので時間だけが過ぎていく。

常に何かをやらなければという気分のまま、時間だけが過ぎていく。

 

シチューを作ってもテンションが上がらない。

筋トレもやめてしまった。

アニメを見ても集中できず、時間を無駄にしている気分になる。

 

何をやっても面白くない。

このままではいけない。

 

人生は、楽しまなければいけないのだ。

 

ブログについて

元々わかっていたことだけど、このブログは誰にも読まれない。

ツイッターとか、フェイスブックとかでブログのことを公開したりしないと、誰も知ることはない。

そして知り合いには見られたくないブログなので、教えたりしない。

(ツイッターとかフェイスブックもやってないし)

 

三者には見られてもよいけど、そのためには検索で引っかかるような記事を書く必要があるが、これも無理。

 

今後も誰かに読まれることは無いので、

完全に個人の日記として、割り切ってやっていこうと思う。

 

毎日何かを調べよう

最近、何をやっても楽しくない原因は、

「何かしなければいけない」という焦りをずっと引きずっているから。

 

何かをして「今日はやることをやった!」という線引きができれば、残りの時間は気楽に楽しく過ごせる気がする。

 

じゃあ、何をするか?

 

直近の不安は、「仕事が見つからない不安」と「見つかっても面談で蹴られてしまう不安」にある。

 

仕事が見つかるかどうかは、スキルシートの内容と営業先がすべて。

スキルシートは散々時間をかけてなんとか絞り出したアピールポイントをこれでもかと書いたし、自分のできる範囲で営業先にメールで打診した。

今回は、もうやれることは無い。

自分のスキルにマッチする案件が見つかるのを、ただ待つのみ。

 

問題は、せっかく紹介してくれた仕事が、面談でダメになるのでは、という不安のほう。

 

知らない技術の話題で、それが何なのか?(言語なのか、ミドルウェアなのか、製品なのか。どんなものなのか)が分からないと、会話に詰まってしまう。

浅く、広く、でよいので、知識をつけていけば、面談に対する不安は少しは軽減されると思う。

 

なので、「毎日何かを調べて、ブログに書いていく」ということをはじめようと思う。

これを、帰宅~夕食までの時間を使って毎日やっていく。

 

夕食前に済ます、というのが重要で、こうすることで夕食以降の時間を「今日はやることをやった!」という気分で気楽に楽しく過ごせるはず。

 

どんなことを調べるかというと、

例えば「Kotolin」と「Vue.js」を使った開発案件が紹介される可能性があるとする。

ここから、

 

■Kotolin

⇒どんな言語か?どんな特徴があるか?

Javaに近い言語、他にどんなものがあるか?

Javaは経験があるので、大丈夫です」と言えるために

  ⇒Javaとの違いはどんなところにあるか?

  ⇒最新のJavaのバージョンは?バージョンによる違いは?

 

■Vue.js

⇒どんなフレームワークか?特徴は何か?

JQueryと似たようなものか?違いはどんなところにあるか?

JavaScriptフレームワーク、他にどんなものがあるか?

 現在の主流は何か?

 

など、知っておくべきこを洗い出す。

これらを全く知らないで面談に向かえば、話を振られたときに詰まって、「詳しくないやつ」の印象を強くしてしまう。

知っていれば、「未経験ですが、~なので大丈夫です」「勉強します」という言い方ができて、未経験でも悪い印象を軽減できるはず。

 

具体的な知識とするため、実際にコードを書いてみるなどの経験は勿論大切だが、今の目的は面談をクリアすることなので、1つに時間を掛けるのは効率が悪く、絶対に間に合わない。(=不安が消えることはない)

 

まずは、付け焼刃でよいので「知っている」ということが大事だと思う。

次の仕事が決まったら、仕事の内容に絞ってより具体的な知識を身につけていけばよい。

 

なんだか、気分が楽になった。

思いつきではじめたブログだけど、有意義に使っていこう。

ブログで人生を楽しくしよう!

 

関係ないけど

何も画像が無いと寂しいから、毎日なにか載せて一言日記みたいなのにしたい。

 

以下は6/25にパチスロを打ったときのもの。

(10万貯めるまで打たない宣言・・・)

f:id:majigomi:20190714234021j:plain

バケを否定しているのが最高

このリーチ目が最高に好き。

 

f:id:majigomi:20190714234134j:plain

1G連

この日は1G連もした。バケだったけど。

詳しくないので多分だけど、このスイカの外れ方はバケで、コンドル、7、7が揃うときのほうがビッグが多い気がする。

この日のクラセレは(バケに寄ったけど)当たりが軽くて本当に、本当に楽しかった!

パチスロの楽しさが凝縮されていた。

 

この日は結局-2kで負け。

25k使って23k取り戻したので、勝った気分。

(クラセレは1kしか使ってないので、クラセレだけなら22k勝ち)

 

後日、5スロでコードギアス(C.C.)、HANABIを打って-6kで負け。

今月(7/25の給料日まで)は一旦打ち止め。

収支は-8k。

5スロで6k負けたのが痛いが、傷を抑えたほうだと思う。

 

8月は以下のように出費が多いため、いかにカードを切らずに生活できるかが勝負。

  • 6月のキャッシング連打のせいで手元に残る給料は2万ちょい
  • CSMブレイラウザー到着(5万)
  • 奨学金返済(3万)
  • お盆に帰省(2~3万)

そして8月を乗り切ったら、9月からは貯金をはじめるのだ。

プラ板でフィギュア棚を強化してみる

おい地震

最近、地震が多い気がする。

本棚の上の部分をフィギュア棚として使用しているので、地震の度に不安になる。

 

f:id:majigomi:20190624214454j:plain

家に帰るとこうなっていることが玉にあるので、地震があった日はドキドキ。

今回はパーツ外れはあったけど、大事には至らなかった。

(落ちているのはフィギュアーツの鎧武勢と真骨彫轟鬼。)

 

ちなみにいままでに犠牲になったフィギュアはまだ1体だけ。

f:id:majigomi:20190624214748j:plain

 

仮面ライダーバースの首のボールジョイントが折れてしまった。

比較的安価で帰るフィギュアだったし、差し替え用の首を乗せて一応飾ることはできるので、傷は浅いと言える。

f:id:majigomi:20190624215514j:plain

首は乗せてるだけ

 

対策!

ずっと気になっていたので、実は対策を考えていた。

f:id:majigomi:20190624215635j:plain

f:id:majigomi:20190624215657j:plain

プラ板である。

これで正面を覆えば、さながら市販のフィギュア棚のようになるのではと思い、前に買っておいたもの。

遂に重い腰を上げるときがきたのだ。

 

試してみる

サイズもちょうどよさそうなので、まずはお試しにプラ板だけ買ってみた。

うまくいきそうなら、サイズをカットしてキレイに整えたいと思う。

 

f:id:majigomi:20190624220035j:plain

カットするどころか幅が足りなかったのは誤算だった。。

 

左右が足りてなくても、蓋の役目は果たしてくれるはずと思い、とりあえずマスキングテープを貼って配置してみる。透明具合は悪くないし。

 

f:id:majigomi:20190624220333j:plain

もうこれでいいんじゃない?という気分になる。

急に面倒になってきた。平日の夜にやるもんじゃないなコレ。

 

今回プラ板で覆わなかった右側のドライブ勢の無事を祈るのみ。

※ロボット系のフィギュアは接地面が大きいので地震でもあまり倒れたりしない。

 

ちなみに

今飾っているフィギュアの金額を大まかに計算してみた。

 

フィギュアーツ:46体 × 6,000円 = 276,000円

METAL ROBOT魂SEED:3体 × 1,5000円 = 4,5000円

ROBOT魂パトレイバー:6体 × 5,000円 = 30,000円

フルパワーグリッドマン:15,000円

 

合計:366,000円

 

まずフィギュアーツが46体も本棚にいたのが驚き。学校のクラスか!

1体6,000円計算はかなり甘めで、定価以上の値段で買ったものも少なくないので、実際はもっといってる気がする。

 

なにより恐ろしいのは、

f:id:majigomi:20190624222035j:plain

この何十倍も持っているということ。

METAL BUILDやDX超合金などの高額アイテムはクローゼットの中で控えている。

恐ろしいけど、今後計算してみよう。