ときたの技術ノート

アウトプット!!!近道はない。泥臭く頑張れ。

IntelliJ IDEAを導入してHello Worldを表示するまで

【やりたいこと】

IntelliJ IDEAを導入してHello Worldを表示したい。

【環境】

macOS Ventura 13.4 チップ: Apple M1 Pro

【導入背景】

今までeclipseしか使用したことがなかったので、たまには違う統合開発環境も使ってみようと思い、IntelliJ IDEAを採用することにしました。

ちなみに調べたところ、2020年の市場調査報告によると、eclipseよりIntelliJ IDEAの方がシェア率は高いとのこと。前職だと猫も杓子もeclipseだったけど、なるほど。

Java IDEの市場シェアを報告している。 JRebel 2021 Java Technology Report (2020年8月から11月の876件の回答) では、VS Codeが27%、IntelliJ IDEAが65%、Eclipse IDEが48%の市場シェアを獲得した。

手順

1. JetBrains Tool boxをインストールする

◼️ダウンロードページ
https://www.jetbrains.com/ja-jp/toolbox-app/

JetBrains Tool boxとは、JetBrains製品の管理ツールのことです。 Andoroid StudioやpyCharmなんかもここの製品みたいですね。

ダウンロードボタン押下

お好きな色を選択

既にインストールしていたソフトウェアに関しても管理してくれる

2.InteLLiJ IDEA Community Editionをインストールする

InteLLiJ IDEA Community Editionをインストールする

今回は無料のcommunity版をダウンロードしています。 15分ほどでダウンロードは完了。

3. IntelliJ IDEAで新規プロジェクトの作成*1

  1. New Projectを選択
  2. 新規プロジェクト名、ファイルの配置場所を決める
  3. JDKを入れていない場合は、入れてあげる
    No SDKという表示(→JDKが入っていない)
    JDK 20を選択
  4. Hello world」と出力する

新規プロジェクト作成したら、1~5までの数値をループで出力させるプログラムが書いてあったので、その下で、Hello Worldを出力するように追加。

出力結果

最後に

ショートカットが全然わからない。おいおい見ていきましょう。

参考

qiita.com

pleiades.io

探したら、JetBrains公式日本語マニュアルがあった。
https://pleiades.io/

ショートカット一覧はPDFで落とせる。

*1:IntelliJ IDEAで新規プロジェクトの作成はここが詳しい。

範囲を指定して画面キャプチャを取る【Windows】【Mac】

範囲を指定して画面キャプチャを取る方法のメモ。

windows PCについては、業務で使っていたこともあってショートカットキーの収集を色々としていたけど、macはまだまだだな・・・。

<mac>

[shift]キー+[command]キー+[4]キー


<windows>

Alt +  F4

あるいは、
Alt + (Fn) +  F4

 

【node】グローバルでインストールしたパッケージをnodeで使えるようにする【パスの通し方】

流れ

  1. npm グローバルインストール先を確認する
  2. nodeコマンド実行時に読み込むパスの一覧を確認する
  3. パスを通すための設定を行う

1. npm グローバルインストール先を確認する

$npm root -g
> /Users/xxxxxxx/.npm-global/lib/node_modules

続いて、以下を入力。

2. nodeコマンド実行時に読み込むパスの一覧を確認する

$node
> global.module.paths

<実行結果>

% node

Welcome to Node.js v18.16.0. Type ".help" for more information. global.module.paths [ '/Users/xxxxxxx/work/study/TIL/repl/node_modules', '/Users/xxxxxxx/work/study/TIL/node_modules', '/Users/xxxxxxx/work/study/node_modules', '/Users/xxxxxxx/work/node_modules', '/Users/xxxxxxx/node_modules', '/Users/node_modules', '/node_modules', '/Users/xxxxxxx/.node_modules', '/Users/xxxxxxx/.node_libraries', '/usr/local/lib/node' ]

先ほど、確認した

/Users/xxxxxxx/.npm-global/lib/node_modules
が上述の一覧にないことを確認する。
一覧になければパスが通っていないことになるため、次にパスを通すための設定を行っていく!

3. パスを通すための設定を行う

設定ファイルを編集してPATH/環境変数を加えればok.

3-1. zshmacでPATHを通す

open ~/.zshrc

3-2. 通したいパスを設定する

→export PATH=通したいパス:$PATH

export NODE_PATH="/Users/kurino/.npm-global/lib/node_modules"

3-3. 変更したPATHを反映させる

source ~/.zshrc

以上です!

参考リンク グローバルインストールしたパッケージがnodeで使えない時の対処方法↓

グローバルインストールしたパッケージがnodeで使えない時の対処法 | tech-broccoli.life

パスの設定方法(mac)↓

amateur-engineer.com

【Error: Cannot find module】nodeが実行できなかった

実行環境 macOS: Ventura13.4 node:     v18.16.0   やったこと Javascriptでコーディングをしており、入出力値を確認したかったので、以下のコマンドを実行したところ、エラーが出力されました。

実行コマンド

node code4-1.js

出力内容

node:internal/modules/cjs/loader:1078
  throw err;
  ^
 
Error: Cannot find module '/Users/kurino/work/study/TIL/js/code4-1.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15)
    at Module._load (node:internal/modules/cjs/loader:920:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
 
Node.js v18.16.0

  背景 Javascriptでコーディングをしていましたが、入出力値を確認したかったので、Node.jsを使用してデバッグをしようとしたところ、実行時にエラーが出てきました。 モジュールが見つからないと言う内容です。     考えたこと Node.jsのパスが正しく通っていないのでは?? グローバルでインストールしたnodeのパッケージが使えていないのでは??     解決方法 環境変数 NODE_PATHにパスを通すことで読み込めるようになる。   →フォルダ構成を変えていたことが原因だった。(単純すぎる・・・・ 実行時に指定先のパスを変えてあげるだけでok。 ↓

node js/code4-1.js

フォルダ構成 <今まで> Sample   ┗main.js ┗code4-1.js   <今回> Sample   ┗js    ┗main.js ┗code4-1.js

今回の問題に対しての解決方法は上記の通りですが、付随して Node.jsのパスの通し方について調べていたので、それについてはまた別途記事をあげます!

参考記事

teratail.com

【読了】ITIL はじめの一歩 スッキリわかるITILの基本と業務改善のしくみ

読んだ本

ITIL はじめの一歩 スッキリわかるITILの基本と業務改善のしくみ』
最上 千佳子 著/ 2019年03月11日
定価:1,980円(本体1,800円+税10%)
仕様:四六・256ページ www.shoeisha.co.jp

あらすじ

ITシステム運用管理の人気資格・ITIL。昨今は、 サービスマネジメントの重要性が高まったことにより、 IT業界だけでなく、製造業、金融、物流など、IT以外の業界からも 注目を集めています。
本書は、そんなITILの基本をわかりやすく 解説した入門書です。 「八百屋にITILを導入したらどうなる?」 「旅館にITILを導入したらどうなる?」など、 ユニークなケーススタディを交えつつ、 ITILの概要や導入のメリットについて 丁寧に説明しています。
ITILの資格取得を目指す人はもちろん、 自社にITIL導入が決まった人、自社の業務プロセスを 改善したい人などなど、ITILに興味がある あらゆる人に読んでほしい1冊です。

読んだ背景

エンジニアの友人が面白そうな本があると勧めてくれたので読んだ。 他人が自分に勧めてくれたものは、なるべく目を通したいタイプ。

感想

ITIL何それおいしいの?という状態で読んだが、読後、ITILが何たるかのイメージがつくようになった。 前半部は、ITILの考え方を具体的な事例を踏まえて紹介してくれていて、かなりイメージがつきやすくわかりやすい。旅館とか八百屋の経営改善の話が具体例として上がっていた。 ITILは、起きているビジネス課題を解決するための思考パターンなんだなという理解。

後半部は、ITILの考え方をより詳しく説明してくれていた。前半がかなり噛み砕いて説明してくれていた一方で、後半はかなり淡々と用語の解説がされていた印象。インシデント管理やリリースの話については、以前保守で参画したプロジェクトでよく耳にしていたワードだったので、あのプロジェクトでは、ITILフレームワークに沿ってやっていたのかという発見もあった。

全体的にサラッと読みやすい。ビジネス課題解決のためのフレームワークを知れてよかった。今後また必要な時に、ITIL周りの勉強をしていこうと思う。

【検証環境】ログの種類

検証環境機での調査で使用したログ4種について、備忘録。 ログへの理解がまだ浅くて、汎用的なものなのか微妙だけどメモしておく。

①auditログ

画面の入力値などが分かる。

操作内容やその結果行われる処理、データの移り変わりなどが時系列に沿って記録されているログ。

デフォルトでは、Audit システムは /var/log/audit/audit.log ファイルに保存する。

②eventログ

コンピュータシステムに起こった出来事や行われた操作などを時系列に記録したデータ。
⇨エラーがどこの処理で起きたものかを確認することができる。

③perfログ

パフォーマンスのログ。この処理にこれだけの時間がかかります、ということを確認することができる。

④traceログ

トラブルが発生した場合に,トラブル発生の経緯を調査したり,各処理の処理時間を測定したりするために採取するログ情報のこと。


おまけ

ログを仕込むとは?
ソースコードにログ出力を追加する、といった操作を指す。
ex)

log.info("任意のメッセージ")


とすることで、ログを確認することができる。 ちなみに、ログの出力先については、開発環境によって異なる。

・ローカル環境・・・(ex)eclipseのコンソールに吐き出される。
・IT, ST環境・・・環境のサーバーに吐き出される。ログファイルにログが書き込まれるが、出力場所についてはどこかのプロパティに定義される。


コメント

 そういえば、過去にリプレース作業を行なった現場が、荒れ果てたところだったというのもあり、先輩が出力されるログを見て「こんなんじゃ何もわかりゃしねぇよ!」と怒っていたなと、ふと思い出した。 ログ設計のベストプラクティスについても、今後勉強してみたいところ。

記事について、理解に誤りがある部分は、指摘してもらえるとありがたいです。

参考

・auditログ

7.6. Audit ログファイルについて Red Hat Enterprise Linux 7 | Red Hat Customer Portal

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

・eventログ

wa3.i-3-i.info

・perfログ

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/monitoring_and_managing_system_status_and_performance/common-perf-commands_getting-started-with-perf

・traceログ

itpfdoc.hitachi.co.jp

【SQLserver】文字列データまたはバイナリデータが切り捨てられます

<事象>

SQLserverで、insert処理を行おうとしたが、

「文字列データまたはバイナリデータが切り捨てられます」

というエラーが出て、insert処理が実行されない。

 

<環境>

Windows10

SQLserver

 

<原因>

テーブルで設定されているフィールド数を超える桁数のデータを追加しようとしたため、エラーが発生した。

具体的には、insertしたいテーブルのフィールド桁数が「2」であったにも関わらず、桁数「4」の値を追加しようとしたため。

→NULLを入れたかったが、文字列'NULL'(4桁)を挿入しようとしていて、桁数オーバーになっていた。

 

<解決方法>

'NULL' → NULL

 

文字列からNULLに変更してあげる。

 

<参考サイト>

mindia.jp

 

<おまけ>

カラムの文字数に問題がなくても、今回のエラーメッセージが出る場合は以下のサイトを参考にしてみるといいかも。

www.nullnullpon.com