日々のログ

日々にしたい

Github Gistにいろはにほへとのランダム出力公開

いろはにほへとを一文字づつランダム出力し、それを判定するプログラムを書きました。

二文字あっていた場合で分岐させたいのですが今回はいったんここまで。

 

gist.github.com

intellij IDEAはとても使いやすいですね。

コード補完してくれるのでつづりがうろ覚えでもさくさくかけますし、位置をしっかりそろえてくれるので見やすいコードになります。

日本語パッチも公式からでているので初心者が最初に使うのには最適かもしれません。

Eclipseもいいのですが見た目はこちらのほうが好みです。気分が上がります。

はてなブログはhtml編集もできるので少しならhtmlの練習もできそうです

Javaの自動型変換について

Javaの自動型変換について
いつもお世話になっているサイトを参考に書いていきたい。

www.javadrive.jp


Github Gistを扱えるようになったため今後はGistで見やすくしていきたいと思う。

自分用ざっくり解説
リテラル…何らかの値、文字列、数値など
オペランド…式の中の演算子以外の変数または値のこと

基本的にはPHPと同じような動作をしています。
違いがあるのは最初に変数の型を決める所でしょうか。
PHPでは整数を整数で割って小数点になるとき、自動的に出力結果をint型(整数)からdouble型(浮動小数点)に変換して出力します。

gist.github.com

Javaでは整数を整数で割って小数点になるとき、自動的にint型からdouble型に変換されないため整数部分のみが出力され切り捨てになります。

gist.github.com
このような違いがあるのでごっちゃになっていると痛い目をみます。みました。

Javaでは先にint型を宣言し、整数以外の値は受け付けません。これにより小数点以下の値は切り捨てられる仕様になっているため、この場合は2に変換されます。
小数点以下の数値も出力したい場合は最初からdouble型で宣言をする必要があります。
double型で宣言した場合はint型のリテラルでも小数点を含めた結果として出力される。

gist.github.com

自動変換により思いもよらない動きになりプログラムの動作がおかしくなることもあるため意識していきたい。

 

07/09 文章修正

Githubにプロジェクトを公開した

Githubとの連帯をしてみました。

Intellj IDEA を経由して公開をしています。

参考にしたのはこのサイトなど。

Githubの登録自体は結構前に行っていたのですが、講座でGitを使ってみるまではよくわからず活用していませんでした。

流れは

  1. Gitをインストールする。
  2. GithubIntellij IDEAと連帯する
  3. メニューバーにVCSが表示されているか確認
  4. Githubにプロジェクトを共有を押す
  5. プロジェクトの名前、公開設定、コメントなどを記入して実行
  6. 公開されているか確認する。

手順としてはとても簡単でした。

ソースコードだけ公開するGistもあり前回はそちらの方を貼り付けていました。

Gitと連帯ができた場合はメニューバーのVCSがGitに置き換わっておりそこで操作もできます。

知識がまだ足りていないため細かく記入することができないようです。しっかり覚え次第書き直したいところ。

keyno63.hatenablog.com

 

 

github.com

突然起動するなぞの忍者ターミナルに悩まされた

結論から言うと、

犯人はMySQLのInstaller、ManifestUpdateが毎日0時に更新がないか探していたのが原因でした。

タスクスケジューラーにて毎日0:00に起動するようにトリガーが出来てました。

解決するまで一週間くらいかかりました。疲れました。


ターミナルまたはコマンドプロントっぽい黒い画面のなにか、それが突然画面左上にシュッと立ち上がり目に入ったと思ったら消えている。

パソコンのスペックを高めにしたせいか一瞬で処理が終わって何も確認できない。

素早すぎてスクショを撮る間もない。

ということが何日も渡って起きていました。

カスペルスキーも特に反応もせず、気楽にそのうちなくなるかな?と

思いきやいつも突然ポップして消える。黒いしもはや忍者。おそらく頭文字Gのほうが遅いでしょう。

 

さすがに何日も続くと不気味なこと極まりないので友人に相談してみたら、その時はJDRや何かが更新版を探しているのでは?という推測をしてもらいました。

実際に何がいつ動いているのかどうやって調べればいいのか悩んだところ、タスクスケジューラーから確認すればいい!と気が付きました。

 

場所はWindowsマーク→Windows管理ソフト→タスクスケジューラー

 

その日はタスクスケジューラーを開いたものの、なぜかタスクの状態が24時間選択でもすっからかんのため確認できず。

しばらく起動したけど何かわからない状態が続き、ある日0:00ぴったりに動いてると気づきます。

時間が絞り込めたため、改めてタスクスケジュールのタスクの状態を

確認すると動いたログが残っているものが2つ。

 

Consolidator 実行開始 5/17 0:00:00 5/17 0:00:00

ManifesUpdate 実行開始 5/17 0:00:01 5/17 0:00:02

 

おそらくこのどちらかだろうという絞り込みができました。

ConsolidatorはWindows カスタマー エクスペリエンス向上プログラムが動いている。

ManifesUpdateはMySQLのアップデートの確認をしている。

この日はひとまずConsolidatorの方を無効化して次の日に様子見をすることになりました。

しかし次の日もターミナルが立ち上がり一瞬で立ち去っていきました。

この日は他の問題が勃発しその対応をしていたことでスクリーンショットを取ることもできずに敗北しました。

ただConsolidatorを無効化しても動いたためほぼほぼManifesUpdateで間違いないだろうという予測はつきました。

最後にターミナルのスクリーンショットを撮ることで内容の確認をすれば確定します。

 

そして厳しい目押しをなんとかクリアし犯人を撮ることが出来ました。

 

ターミナルらしきものはMySQLInstallerConsole.exeであること

内容は

Start Initalization
MySQL Installer is running in Comunity mode

Initializaing product requirements
loading product catalog
checking for product paclafes in the bundle
categorizing priduct catalog
finding all installed packages

 

機械翻訳

起動の開始
MySQLインストーラがコミュニティモードで実行されている
製品要件の初期化
製品カタログの読み込み
バンドル内の製品パッケージのチェック
製品カタログのカテゴリー化
インストールされているすべてのパッケージの検索

でした。

ここで犯人が確定したため、タスクスケジューラーにて無効化することで解決しました。

おそらく明日からはおとなしくしてくれるでしょう。

 

P.S.

解決しました。

MySQL + MySQLWorkbench のインストール、環境構築

これはMySQLとMySQLWorkbenchのセットで開発環境を整えようとし七転八倒した記録です。
スマートに解決する記事ではないのであしからず。
友人にはとても助けてもらいました。


環境
Windows10 Home 64bit
MySQLWorkbench 8.0
MySQL 8.0

 

つまずきその1

XAMPPのMySQLとMySQLWorkbenchはセットで使えない。

 

PHPの環境を作るためにXAMPPをインストールしていたので、一緒にインストールされているMySQLを使おうとしました。
XAMPPのコントロールパネルではMySQLという名前にはなっているものの中身はMariaDBとなっており色々違っています。

 

MySQLMariaDBはもとは同一のプロジェクトから派生したものとなっており互換性が非常に高いです。


どうして生まれたのかはこちらのサイトが分かりやすいです。

www.xplenty.com

 

MariaDBがどういったものかはこちらのサイトが分かりやすいです。

www.winserver.ne.jp

こういった経緯があるらしくXAMPPではMySQLと表記されているものの別物になっています。
ただもとは同じでなるなら使えるのではと試しに純正のMySQLWorkbenchで使おうとしましたが、ここで第二のつまずきが発生。

 

つまずきその2
MySQLWorkbenchがインストールできない

 

インストーラーを起動すると警告文がでて終了してしまう。
内容を読んでみるとVisual C++ 2019がないので実行できませんといったような内容でした。


警告文はこちらの記事のものとほぼ同じでした。

qiita.com

 

MySQLWorkbenchを実行するためにはVisual C++ 2019再配布可能パッケージが必要となっており、それが私のパソコンには入っていなかったようです。

 

こちらのサイトを参考にインストールを試みたところ無事にインストールできました。

www.web-jozu.com

 

MySQLWorkbenchのインストール手順に関しては特に難しいこともなくインストール作業はすぐに終わりました。Workbenchに関しては。

 

インストールが終わったあとはデータベースの登録をWorkbenchにて行います。
使い方に関してはこちらのサイトがわかりやすかったです。環境はMacですがだいたい同じですね。

 

qiita.com

ここでMariaDBへ接続を試みたところ以下の警告文がでてきます。(つまずきその1


Incompatible/nonstandard server or connection protocol detected.
a connection to this database can be establoshed but some MySQL workbench features maynot work properly since the datebase is not fully compatible with the supported versions MySQL.

 

機械翻訳してもらったところ

 

互換性のない接続プロトコルです。
このデータベースへの接続は確立できますが、日付ベースがサポートされているバージョンのMySQLと完全に互換性がないため、一部のMySQLワークベンチ機能が正しく機能しない場合があります。

 

といった内容だったためMariaDBでの接続をあきらめてMySQLのDLをしようとしました。

 

ですがここでもつまずきポイントがでてきました。

 

つまずきその3
「なんだかDL解説サイトと画面が違う…」

 

どうやら先にMySQLWorkbenchをインストールしたため、それをインストーラが検出しここに何を加えますか?と聞かれている状況でした。
初心者は画面がちょっとでも変わると戸惑うので割と困りました。

 

こういった表示になっていました。

これはすでにインストール済みの状態でスクリーンショットを撮っているためMySQL Seberの表示がありますが、インストール時にはありませんでした。

自動的にバージョンを確認して古ければ表示してくれるのは楽ですね。

 

f:id:koahpuro:20210506015046p:plain

見たことのない画面だ…



意味から考えるとおそらくここを押せばいいだろうとadd(追加する)を押します。


そこでまた見たことのない画面に切り替わりまた頭を抱えました。
一個づつ解読したところ、MySQL関連のものが何もインストールされていないならば、開発者デフォルトで選択されているソフトを自分で選んでインストールする…といった状況になっていました。


つくづく初心者の心を折ってきます。


MySQLとMySQLWorkbenchがそろっていれば学習用として十分なため、ここではMySQLのバージョンを一つ選びnextを押します。

これは一番下の早戻しマークのような矢印を選択しているので選択不可になっていますがいろいろ選ぶことは可能です。

 

f:id:koahpuro:20210506015528p:plain

また見たことのない画面だ…


ここまでくれば解説サイトとだいたい同じになりました。

 

インストールのガイドにはこちらのサイトを参考に進めました。

sukkiri.jp

 

High Avaikabiliryの選択の項目は出てこなかったのですが、おそらくWorkbenchのインストールを先にしていたためスキップされたのかもしれません。

 

ここで管理者パスワードも設定するのですがそれをしっかりと控えておきます。
その他の設定に関しては何かあったとき分かりやすいため、いじることなくそのままの状態にしています。

 

インストールが完了されるとスタートメニューにMySQL 8.0 Command Line Clientが追加されます。
MySQL 8.0 Command Line Clientを起動させ管理者パスワードを入力し接続が確認できればインストールの完了となります。

 

ここまで終わればあとはMySQLWorkbenchを起動させMySQLとの接続をすれば環境構築の完了です。


MariaDBを接続するために作っていたDBそのままでいいのかな?と思いつつMySQLの管理者パスワードを入力したところそのまま接続されました。
以上を持って環境の構築完了となります。

 

Workbenchを扱うのにもわからない部分が山程出てきましたが別の記事へまとめます。

とても疲れました。