ぬるぬる備忘録

主にシステム系の備忘録とか雑記とかです。備えよう。

docker-composeでpostgresを構築したらpassword authentication failed for user

久しぶりです。

プライベートのwindows機でpostgres環境をdockerで作ろうと思ったら掲題のエラーが発生しました、解決しましたがかなり詰まったので備忘のために書いとこうと思います。


結論から言うと、自分の開発マシンにPostgresが既に入っていてポート5432の環境が2つ(dockerとlocal)できてたのが原因のようです。
以下を参考に判断しました。

github.com

対応は複数あるかと思いますが、使っていなかったのでローカルのpostgresをアンインストールしたことで解決しました。

 

...

かなり詰まってたんですが、以下が気づくのに時間がかかった主な要因ですかね…

  • 同じくdocker-composeで構築したpgadminからはアクセスできる
  • 「パスワードが違う」なので、見た目上疎通はできてそうだったこと

うーん。

ここにきてDiscordのBot作成(Discord4J with Java11)

こんばんは、またしても久しぶりです。
最近プライベートではDiscordを使うことが多いのですが、ふとBotってどう作るんだろうと思ったので作ってみることにしました。 最近はずっとJava触ってましたので、Discord4JというJavaのDiscordライブラリを使いました。 ついでに最近リリースされたのでJDK11でやりました。(11でやる必要ある??)

始める前に

触る前に作ってみた系の記事をいくつか呼んだのですが、ローカルで動かすのがメインの記事が多く全体の動きがよく分からなかったので今のイメージを簡単にまとめました。

f:id:null256:20181008024103p:plain
discord botのイメージ図(手書き)

すごい簡単に書くと上のような仕組みだと思うんですが、合ってます...よね?
Discordの管理画面でbotの登録・トークンの発行をすることで自分で作ったbotのプログラムや、APIにサーバに投げるリクエストが認証通せるようになるという感じですよね、多分。

実際に組んで

正直言うと、下記のQiitaの記事やGitHubのREADME.md

このあたりを読めば簡単に実装できましたので、僕が特筆することもなかったので詰まったところのみ残しておこうかなと思います。(記事書いていただいている方、分かりやすくて助かりました~ありがとうございます!)

MavenでバージョンをJava11指定するとビルドパスが「アンバインド」されてエラー

Discord4J 関係ないやんけ!という感じですが。。
自分でAdoptOpenJDKの11をインストールした上で、設定の「インストール済みJRE」でそのJDKのパスを追加してあげると直りました。
しかし、、IDEはEclipse2018-09のPleiadesを使っていたのですが、この中にもAdoptOpenJDKの11は入っているんですよね、上記の操作でエラーが取れるのはなんか納得行かない。。

感想

f:id:null256:20181008033403p:plain
ハロ―ワールド

思った以上に簡単に出来るんだな~と思いました。あとJavaでやっといてあれですが、この手の処理はスクリプト言語みたいな軽めな言語でやったほうが良さそうだなと思いました。DBに値落とすわけでもないし、イチbotでそこまでデカい実装にもならないんじゃないかなと思ったので。
あと、おすすめの居酒屋とか流してくれるbot作ろうかなと思ってたんですけど、全く同じ発想のものを作ってる人などいて、やっぱ思いつくよなぁ~という感じです。

後追いで、どっかにデプロイしたりもしたいなと思います。ではでは。

ScalaとPlayを始めてみよう - ハロワ編

こんばんは、お久しぶりです。
新年明けたので何か初めてみるかと思いまして、Scalaでも触ってみることにします。
フレームワークPlayに興味があるので、最終的にはそこまで行ければ良いですね。

環境構築

IDEIntelliJ IDEA かEclipseの二択のようですね。
IntelliJの方が主流のようですが、フリーウェア万歳なのでEclipseプラグイン入れて使うことにします。

Eclipseマーケットプレイスから「Scala IDE」をインストールする

入れなくてもIDE上で実行できるが、一応Scala自体も入れておく
http://www.scala-lang.org/download/
(インストール時のバージョンは scala-2.12.1 だった)

環境変数「Path」は勝手に追加されていた。
SCALA_PATH」を新規で作っておく。C:Program Files (x86)scala

さあ始めるぞ

偉大な先人が最初に読むべき物を纏めてくれているので、取り敢えず読んでいこう。

Scala入門時に役立つ情報まとめ - Qiita

とりあえず参考にしてHello Worldまで作っとこう。

f:id:null256:20170103220330p:plain

やったぜ。
classじゃなくてobjectで生成しないと、Eclipse上から実行できなくて少し詰まった。
objectはシングルトンを示す修飾子らしい。

Playを使う...前にsbtを入れよう

作るものも決めてないし、Play使う準備でもしようと思ったら、downloadsに

If you have sbt 0.13.13 or higher installed, you can create your own Play project using sbt new using a minimal giter8 template

 と書いてあって、sbtと言うものを入れたほうが良いらしい。下記記事のようなものらしい、一先ず入れときましょう。
超sbt入門 - Qiita

Eclipseに対応させるには、「sbteclipse」というプラグインの記述を入れたplagin.sbtを「プロジェクトのルート/project」に配置する必要があるようです。
Scala入門記004 sbt + Eclipse - うさばかSE Blog3

頭使わず記事のとおり全てコピペするとエラー出るので、ちゃんとGitHubに書いてある最新版を指定しときましょう。
https://github.com/typesafehub/sbteclipse

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.0.1")

プロジェクトのルートから「sbt eclipse」を実行して、成功すればOK
(追記 .classpathが書き換わるので、これが原因でビルド失敗するようになるときもあるかも。その時はclasspathまわりの設定を見直そう。)

sbtでPlayFrameworkもインストールだ

workspaceのディレクトリで、PlayのDownloadsにある下記コマンドを実行しよう

sbt new playframework/play-scala-seed.g8

必要な情報を聞かれるので、入力するとplayのプロジェクトが出来る
(※何も入力せずにEnterを押すとデフォルト値になる。)

This template generates a Play Scala project

name [play-scala-seed]: testplay //★プロジェクト名
organization [com.example]:
scala_version [2.11.8]:
scalatestplusplay_version [1.5.1]:
play_version [2.5.10]:

Template applied in . estplay

出来たら一先ず動かそう!作ったプロジェクトに移動して「run」だ。

cd testplay

sbt run

「Application started (Dev)」の表示が出たらhttp://localhost:9000/へアクセス

f:id:null256:20170115221714p:plain

うおーこんなにかんたんに動くとは。
で今の状態だとeclipseで見れないので、「/project/plagin.sbt」にsbteclipseの記述を追記して、「sbt eclipse」でする。終わったら「インポート→既存のプロジェクト」でeclipseに取り込む。
念のためもう一回「sbt run」で動くか確認、動く、いいね。

このあと

今回は取り敢えずここまでで。次はheroku辺りにデプロイする方法を調べてみることにする。

scalaの勉強は「Scalaスケーラブルプログラミング」を買ったので、それでやっていくことにする。Playの勉強は...一先ずWEB+DBpressのvol.71かなぁ。。(Playの特集がある)

ではでは。

Scalaスケーラブルプログラミング第3版

Scalaスケーラブルプログラミング第3版

 
WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)

WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)

 

 

キーボードが物故割れた

f:id:null256:20160612203639j:plain

愛用してた仕事用のキーボードがぶっ壊れました。
下の富士通コンポーネントさんのやつです。コーヒーはねて中に入って誤反応するようになってしまった。アホですね。。


なので、怒ったので、REALFORCEの最新モデル買いました。
クソ高かったです(怒)

 

 

両者使っての感想としては...

富士通コンポーネント
使い心地よく、説明にある通り板面が反っているからか、フィットしてtypoが少ない、気がする。音が静か。印象「めちゃくちゃ使いやすい、普通のキーボード」。

REALFORCE(静音モデル/キー押下30g)
バイ。最高。打鍵音めっちゃ静か。キー押下30g(普通は45gらしい)のおかげで溶けるように入力できる、長文打ってても全く疲れない。typoコンポーネントに慣れてたせいか、こっちに変えてからの方が多いかも。考え事してる時キーボードの上に指添える事が多いけど、キーが柔らかすぎで気付かず押しっぱなしになってることが結構ある。
使って「REALFORCEを知ると他に戻れない」という意見がなかなかに理解できた。

値段との相談があると思いますが、参考にして貰えれば良いと思います。
上記以外での高級キーボードといえば、特殊な配列で有名なHHKBなどもありますよ。私は他のキーボードが使えなくなるデメリットが無視できないので使いませんが。。

...
ちなみに、壊れたキーボードはコーヒーで汚れた部分を水洗いし、ドライヤーで乾かし、数日放置して乾燥させたところ直りました。なんなんすかね。。
今は自宅用のキーボードとして使用しております。

WebエンジニアがUnityを3日間だけ触って思ったこと

こんばんは。
先日のGWに、何か新しいことをしようってんで、Unityで2Dアクションゲームを作ろうと3日間だけUnity触りました。のでその時のことなどを綴っていきます。チラシの裏ってやつです。

言いたいことリスト

・Unityすげー
C#について

Unityすげー

 Unityはすごい。3日間触って一番感じたのは、このゲームエンジンは極力エンジニア以外の人間にも触れる用に工夫がされているということ。物理的な挙動をするオブジェクトをコードも書かず数ステップで作成できる。C#スクリプトを組んだとしても、変数をpublicで外出ししておけば、二値だろうが数値だろうが画像ファイルだろうが、GUI上から初期値を設定できる。

最初に骨組みさえ作れば、非エンジニアでも各挙動を調整出来るっていうのは、洗練されているなーと思いました(こなみ)。

C#について

UnityはスクリプトC#で書く。
(正確には独自カスタムされたJavascriptと独自言語のBooも使えるけど、昨今の流れから採用するメリットがない)
普段はJavarubyでコーディングしているもんだから、コード規約的なところで色々悩んだのでそのことを書いてきます。

大文字小文字のアレコレ

Javaはクラスは大文字、変数・メソッドは小文字で始める。

Human human = new Human();
human.getAge();

C#はpublicが大文字、それ以外は小文字で始める。。?

private age;

public GetAge() { ... }

ただ、C#の規約は結構プロジェクトとかでも違う模様?Unityの既存のソースとかもなんか微妙にニュアンス違う感じがしたし...言語レベルでは統一されていないのだろうか?
なお、C#の大文字・小文字、どうなってんの~??と調べた際は下記記事様が非常に役に立ちました。ありがとうございます。

C#コーディング規約の個人的なまとめ | jikkenjo.net

if-elseの書き方

Javaの書き方、好みはあるかと思うけどこんな感じ。

if (isOtokomae) {
    return "Ikemen";
} else {
    return "Busaiku";
}

 C#(VisualStudioのフォーマッター)だとこう

if (isOtokomae)
{
    return "Ikemen";
}
else
{
    return "Busaiku";
}

 縦にながーい。まぁelse ifの時だと、最初のifの条件と同等に扱っている感じがしていいかもな、とも思いはしますが...それでもやっぱり慣れなくて(これが一番か)やだなぁ。

上で挙げたことはギャップがあったけど、郷に従えということでとりあえずその通りに組みました。逆にC#やってるヒトはやっぱりJavaの書き方がキモかったりするんだろうか。

 

Android Studio 環境設定でしたこと

AndroidStudioのセットアップで何したか、忘れないように書いておきます。
※他の記事様の引用多しですが、お許しを。

統合開発環境(IDE)について

■まずは「Android Studio」のダウンロード
Android Studio と SDK Tools のダウンロード | Android Developers
※昔はEclipseの開発が主流でしたが、今ではこちらを使ったほうが良いでしょう

■日本語化
インストール後、下記記事の手順にてlibにjarファイルをぶち込む
Android Studioを日本語化する方法 - Android Studioでアプリ開発!

実機のテスト環境設定

AndroidStudioでは実機をUSBで刺しておけば、ビルドしたコードをそのまま実機で動かすことが出来ます。

■Zenfone4での開発
僕はAsusの格安スマホ「Zenfone 4」を持っているので、そちらで行った設定を載せときます。

どのようにZenFoneで、開発者向けオプションを有効にしますか?
①「設定→バージョン情報等→ソフトウェア情報」で「ビルド番号」を7回タップ
②設定に「開発者向けオプション」が現れるので、そこから「USBデバッグ」をON
③AndroidStudioの「Android Monitor」のウィンドウで、機種が検知できていたらOK

f:id:null256:20160124165659p:plain

※Zenfone4に関しては、別途ドライバをインストールとかはしなくてOKでした。

 

 

随時追記していくかもしれません。