runaround’s diary

なんとなく、つれづれ

MicronautとThymeleafを使って、サーバー側から文字列を送ってフロントで表示してみた

前回の記事はこちら。

run-around.hatenablog.com



クラスなしCSSフレームワークを使ってみて満足しちゃった前回。
今回はせっかく対応したThymeleafなのでサーバーから文字列を送ってフロント表示してみました。
今回のソースはまたこのブログ書いたあとにでもGithubにプッシュしとこうかな。

github.com



やったことはこれだけ。
- とりあえず値を保持するクラスをつくって
- ↑この入れ物クラスに値を設定して
- コントローラーからこの入れ物を送り出して
- フロント側で呼び出してみた

f:id:run_around:20200712151110p:plain


この「ほらね?」のあとに続くアルファベットは、ページをリロードするとランダムなアルファベットが表示されるのでサーバー側から値が渡されていることがわかります。



住んでるマンションの私の部屋のエアコンが今週壊れちゃって来週なんとか取り替えてもらえそうなんだけど、それまで暑くてたまらんー。
涼しいコワーキングスペースに避難して暇なのでちょっとだけ遊んでみました。


次はそろそろDBまわりをやってみようかな?
MicronautでDomaを使ってみている方がおられたので、参考にさせていただこうっと!

MicronautにThymeleafを適用して、クラスなしCSSフレームワークで遊んでみた

前回までの記事はこちら。
run-around.hatenablog.com

そして前回作ったソースはなんとなくこちら。
github.com

次回以降で考えているのは

  • プロジェクトにGraalVMを適用する
  • ちょこっとWebアプリケーションを作ってみる
  • WebアプリケーションでDBを操作してみる
  • テンプレートにThymeleafを適用してみる
  • Docker上で動くようにしてみる

の、Thymeleafをやろうかなーと。
あと、前回Java女子部できの子さんに教えてもらったクラスなしCSSフレームワークで遊んでみたくて。


変更したところはこのあとGithubにpushするから差分見れるんですけど。
- bulid.gradleにThymeleafを使えるように追加した
- Controllerでdemo.htmlを呼べるようにした
- application.ymlで"/public/***" の形で静的ファイルを取ってくるようにした
- 表示するhtmlをごりっと書いた


なんです、はい。


んで、次にやりたかった(というか本当にやりたかったやつ)こととして、クラスなしCSSフレームワークを試してみました。
参考にさせていただいたサイトはこちら。
www.webcreatorbox.com

Water.cssのデモサイトはこちら
watercss.kognise.dev


ベタなhtmlは書けますが、CSSとかやる気がなくていっつもググってる感じ。
シャレオツなサイトにあんまり興味がないもので。
動的なロジック埋め込んで、CSSのクラスも埋め込んで、・・・あー!画面のソース読みにくい!ってw

でもこのクラスなしCSSフレームワークだと、ほんとにクラス設定しなくていいんですね。


クラスなしCSSフレームワーク導入前の画面
f:id:run_around:20200704223449p:plain


クラスなしCSSフレームワーク導入後(ダークモード)の画面
f:id:run_around:20200704223533p:plain


クラスなしCSSフレームワーク導入後(ノーマルモード)の画面
f:id:run_around:20200704223603p:plain


ええー!(゚∀゚)
めっちゃ整いましたー!!!
私にはこれで十分w


head内に以下のいずれかを追加すればOKなんですね。お手軽でキレイだし

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/light.min.css">


あー、面白かった😄

スクラムフェス大阪2020@オンライン 2日目に参加してきたよ

本日2日目!
100セッション近くある日ですっ

www.scrumosaka.org



1週間前ぐらいにスケジュールを見て、参加するセッションを決めておこうと思ったのですが・・・
Webに載っていたスケジュールが凄すぎて(幅広すぎて)よくわからーん・・・となり。
ががっとコピペしてGoogleスプレッドシートに貼ったらいい感じに張り付いた。
ってことで自分が見やすいように整えてすべてのプロポーザル記事を読んでチェック。
・・・どれ見るか決めるの、半日ぐらいかかりましたw

f:id:run_around:20200627192801p:plain


当日めっちゃ見やすいPDFがダウンロードできて、ああっこれ早よ欲しかったwってなったけどw


泣く泣く諦めて録画にしたセッション数知れず。
その中で「録画なし」と「ワークショップ」に狙いをさだめていざ突撃。


ここからは恒例の私のつぶやきでまとめまーす。


https://www.instagram.com/p/CB6zidAJM8o/
えっコワーキングスペースでチャーハン食べられるやん。今日これ食べようかな。


梅田のコワーキング、お家に籠もっている間にパワーアップしてた。
トークボックスも増えてたりして。ありがたい。
結局チャーハンは食べるチャンスなかったんだけど、今度やってみよ。


ほんとに正座してたら足しびれてる。


Zoom観るぶんには良かったけれどツールとかでちょと辛い思いしたんですよ、このあと。
セッションの発表者さんで実施されている方もおられましたが、こうなるとPC2台要るんじゃないか説。


これ、今後流行るのかな。デブサミとか部屋が分かれるような大規模イベントだとハッシュタグ毎に追うのが大変で。


まずはこちら。録画なしだったんですね。いや、録画あったとしてもこれは絶対観てた。
confengine.com


最初ちょっと音が聞こえないトラブルっぽかったんですけど、ちゃんと聞こえるようになってホッとしました。


ねのさんとみやざきさんによる演奏、めちゃかっこよかったー。


その時点でいいチームであってもなくても。


スターウォーズをこじらせまくっている私としては響くというか刺さる言葉ばかり。


次のエピソードのテーマをみんなで考えてDiscordに書いて、というお題が出ました。


そうだなぁ、今聞いたおよべさんときょんさんのお話の続きを自分が話すとしたらどんなタイトルだろうなぁ・・・と
カキカキ_φ(・_・

f:id:run_around:20200627200335p:plain

あ、あれっ?なんかめっちゃいいねしてもらえた・・・
そして反応多かった人、話してみてくださいって言われたんでドキドキしながらちょこっとマイクオンにしてお話させていただきましたん。
まぁ、スターウォーズもエピ7〜9ってカイロ・レンがダークサイドから戻ってくるお話ですし・・・。


このセッション100人以上が参加してたらしいですね。
さすがです・・・!
そして今回もこれから頑張れるいいお話聞けました。


この3ヶ月ぐらいの間にみなさん物凄い技を身に着けてらっしゃる・・・((((;゚Д゚))))ガクガクブルブル


まだパダワンなのでマスタージェダイ求む(こら


聞いて楽しんでいたらランチタイムを逃しましたw


次はこちら。
confengine.com


前職の退職日に着たっけな、このDONEのTシャツ。


しかしこのあと結局Zoomのブレイクアウト機能は使えず、Remoを使うことに。
でも私はiPad Proから入ったけれどカメラとマイクが反応せずそのまま時間切れになっちゃった。残念。


Remo作ってる間に雑にふられた石井さんw
雑談の悩みをさくっと語ってくださいましたw

雑談のテクニック、めっちゃ同意しますー!
そんなに懇意にしてるわけでない間柄なのに、プライベートに踏み込むような雑談しかけちゃう人をたまに見かけるのですが。
雑談成立してる、打ち解けた、って思い込んでて後で全然打ち解けられてないことがわかったりして。


あ、これ半月じゃなかった。3ヶ月近くやってたんじゃないかな?
どこまで打ち解けられたかというと、普通に話はしていたけれど・・・
うーん、仕事にいい影響が出るところまでは目に見えてなかったなぁ。


お次はこちら。
confengine.com

きょんさんやねのさんのチームのPMさん(だった方?)。


波→並み


私は劣等感の塊なので、周りが凄く要領よく出来てるのにもたもた遅れてる自分が許せなかったりします。
憧れの人を目指して頑張れと言われたりもしましたが、そもそも目指したってなれるわけがない、と思っていたことがあります。
自分には取り柄がないから目指す人を作ってとりあえず真似っ子しとけと言われているのかなと思ったりしてました。


弱虫だって私みたいなヘタレだって、未来はいいことある、と感じた感動のセッションでした。


最後のセッション。
confengine.com

確かDevLove関西さんで紙粘土スクラムのワークショップあったんですよねー・・・。
当時、自社のイベントと被っちゃって行けなかった。
今回はオンラインということでMiroを使って動物園を作るらしい。


ZoomとMiroを使うとPCのファンがファンファンするんですが(ながせさん風)、なんとかMBAがもってくれた。
チームを分ける時に偶然開発者の枠が1つ空いたので立候補。
何をやるかわかってなくてドキドキしてたけどw

すでにバックログの優先順位は決まっていて、1スプリントでどれぐらいまで出来そうかをプランニングで話し合う。
実際にMiroで動物や木、柵などを書いて、POからレビューを受ける。
ふりかえって、次のスプリントのプランニングへ・・・といった流れでした。

Miroで動物に色を付けるのがわからなーいってなったら、色の付け方を教えてくださる方が。
あ、この方がスクラムマスターなのか。


f:id:run_around:20200627204835p:plain


ワークショップは考えたり感じたりしながら手を動かすから、座学よりも時間の流れが超特急。


Zoomに入り、各コミュニティのレーンのまとめを聞いていました。
このダイジェストスゴイ!どの動画観ようかの参考にさせていただきまーす。


なんと、イベント参加者はDiscordで500人超えていたんだそうです・・・!
物理開催だと難しい数字ですよね。
運営や登壇、関係者の皆様、お疲れさまです。そして素敵な場をありがとうございます。


というわけで、コワーキングから撤収してやっとここまで書けた・・・。
あとは録画で観たいセッションの感想などあったらまた書くかもです。

スクラムフェス大阪2020@オンライン 1日目に参加してきたよ

待ちに待って首が伸びそうになったイベントがとうとう開催。

www.scrumosaka.org



正直いろんなイベントが中止に追い込まれる中、このイベントは開催が決定し準備段階からDiscordで参加者にもほぼ丸見えですごかった。



去年初めて開催されて参加した時の思いも思い出しつつ。


Keynoteはウェビナーで開催、そのあと明日の各コミュニティのセッション紹介はZoomで、ネットワーキングはDiscordでという流れになりました。


恒例のツイッターまとめしときますー。


みんなのつぶやきがナイアガラの滝ぐらいの勢いで、どんなに動体視力良くても読めないw


Keynoteをされるながせさんが背景画像の文字の見切れを気にしておられたようで。
私はZoomをiPad Proからつないでいたのですが、画面に背景画像はすべて収まっていました。



そして前説?がスタート。


次にイベントでの注意事項などなど。

オンラインイベントならでは。
食べ物の匂いは気にならないけれど、音は気にしないとですね。
あとスクショとか取ってUPするのも気をつけて!と。
参加者の顔が入ったスクショを許可もらわずに晒してよいのかどうかは気をつけたいところ。


今までならすっごいDevLove関西さんのイベントにお邪魔させてもらって洋さんともお会いできていたのに・・・。
すごく久しぶりに洋さんのお顔拝見した気がします。


19のレーン(コミュニティ)で1日やったら100セッション近くになるんですね・・・(ヽ´ω`)


オンライン開催だから様々なところからアクセスされてるんだろうなぁ・・・すごい人数だ・・・。


このご時世だし自分の身や周りの方を危険に晒したくはないのだけど、正直言うとRSGTはリアルに参加したいかなぁ。
スピーカーはオンラインでつないでもらうでもいいのだけど、ワークショップやネットワーキングはやっぱリアルで交流したいところ。




「ちょっとした」がミソなのかもと思いました。
やろうかどうしようか迷う、たじろいでるような状態なのかなと。
迷うぐらいなら「ええぃ!」って挑戦しちゃったら何とかなりそう(私もそんな経験ある)。


酒の飲みすぎではないですよ(多分)。
やっぱ冒険に出る前は不安も多いじゃないですか。


言葉としては聞いたことがあるんだけど、今回ちゃんと説明をしていただいてもっと理解を深めようと思いました。
↓さすが、すごくわかりやすい・・・
2.2 クネビンフレームワークによる問題の分類
www.ryuzee.com



2週間スプリントやっていた時に、1日目に起こった問題を2週間後のふりかえりで初めてシェアされたときのがっかり感。
気づいたんだったらふりかえりまで温めずにすぐにアラートだそうよ・・・って思うんですけどね。


ムカついても一緒に仕事できてるっていうのは、ちゃんと尊敬しあえてるからなのかなぁと。
毒にも薬にもならない刺激にならない場合は・・・(えっと



Zoomのバーチャル背景がスライドになってて、話が進むとスライドが切り替わっていたのでずっと気になってたんですけど・・・


大きな仕掛けを用意しなくてもこんな面白いことができるっていうところがスゴイ!
真似したい(こら

あと、スピーカーの表情も見たいしスライドも見たいしっていう要求がまるっと満たされていて本当に素敵なKeynoteでした!


一応業務内で参加してましたのでw(チケットは自腹でございます)



一部どうしても都合がつかないので、あとで録画で見せていただこうと思っているセッションがあります。
見て質問とかしたくなったら・・・知ってる人いそうだからつないでもらおうかなーとかw


参加者も多いしPCにも負荷がかかっていたのか、画面共有ができない方もちらほら。
それでも臨機応変に対応されて話されてたのでさすがだなぁ。


あらたさんの説明、キレッキレでしたw


各コミュニティさんの紹介、本当にワクワクして楽しかった。
明日各Discordのお部屋回ってみようかなー。


ほんこれ。


さて、明日も楽しみ!

ちょっぴりMicronautと仲良くなってみた

5月にGraalVMをちょこっと触ってみました。

run-around.hatenablog.com

今回はMicronautとちょっと仲良くなってみます。

ホントはGraalVMからあまり時間をおかずにやってみていたのですけど・・・
MBAの容量逼迫とIntelliJのビルドが荒ぶる事態でちょっと延びてたんです。
色々と入れて試しすぎていた環境をきれいにすべくクリーンインストールを実施。
もともとはMojaveだったと思うけど今回はCatalinaにしてみた。
もうそろそろ不具合も随分直ってんじゃね?ってことで。


Micronautについても、GraalVM同様でみんなのJavaで紹介されていますね。

gihyo.jp



さて、ここからは私への備忘録。
とりあえずはHello Worldするところまでです。


まずは公式サイトをチェックするぞ、と。
micronaut.io


あらSpringBootみたいにジェネレーターもあるし、Javaのコード見てるとSpringBootとそっくりー
SpringBootのいいとこどりみたいな構成なんだそうで、なるほどねーと。
じゃ、Thymeleafとか使えるのかな?とか思ったらサンプル上げている方がおられた。

気になるところは一通り読んで、まずはプロジェクトを作ってみましょうかねー。
f:id:run_around:20200614164414p:plain


トップページに「Generate a Project」のリンクがあるのでクリック
f:id:run_around:20200614163736p:plain


ここで種類選んだりJavaのバージョン選んだり、名前変えたりできます。
Previewを押せばポップアップでどんなソースが生成されるのかも確認できる。便利ー
今回はお試しなので、すべてデフォルト状態で生成してみます。
f:id:run_around:20200614164122p:plain


スポン、とZipファイルでダウンロード出来るので解凍してIntelliJに読み込ませました。
f:id:run_around:20200614164255p:plain


特にエラーとかも出てなさそうなので、HelloControllerクラスを書いてみます。

package com.example;

import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;

@Controller("/hello")
public class HelloController {

    @Get(produces = MediaType.TEXT_PLAIN)
    public String index() {
        return "Hello World";
    }
}


コンパイルも問題なく通ってそうです。
ではAppliccationのmaimメソッドをrunしてみましょうか。
f:id:run_around:20200614165200p:plain


問題なくサーバーも立ち上がったようですね。
f:id:run_around:20200614165312p:plain


実行はターミナルからでもブラウザからでもOK。

curl http://localhost:8080/hello

f:id:run_around:20200614165741p:plain
f:id:run_around:20200614165752p:plain



無事ハローすることができました。
今回はここまでw


次回以降で考えているのは
- プロジェクトにGraalVMを適用する
- ちょこっとWebアプリケーションを作ってみる
- WebアプリケーションでDBを操作してみる
- テンプレートにThymeleafを適用してみる
- Docker上で動くようにしてみる

とかかなー。
今日はもうオシマイにして呑も呑も。

チームでムービングモチベーターズをやってみたよ

前職でもやっていたムービングモチベーターズを新しいチームでやってみました!


ムービングモチベーターズに関するこれまでのブログエントリーはこちら。
run-around.hatenablog.com
run-around.hatenablog.com
run-around.hatenablog.com


ムービングモチベーターズとは。ニューワークスさんのサイトがとてもわかりやすい。
nuworks.jp

ニューワークスさんからカードを買って愛用してます。
バイリンガル版なので前職で大変助かりましたー。


今回はオンラインで出来るように、と以下のテンプレをGoogleスライドで各自メンバー分用意。
f:id:run_around:20200606102333p:plain

上・中段の10枚がムービングモチベーターズカードです。
下段の左3種類は感情を表すカード。
下段右端は次のアクションを書く付箋です。

  1. ムービングモチベーターズ10枚のカードから、自分がモチベーションが上がるもの1位〜3位、最下位を選んで並べる
  2. 選んだカードごとに、今の満足度について感情のカードを選んで並べる(最下位については強要されてない⇨満足)
  3. 満足度が「普通」や「不満足」のカードについて、どうすれば「満足」になるか次に起こせそうなアクションを考える(もし考えつかなかったらチームメンバーと一緒に考える)

上記をステップごとに各自で行いみんなで共有、としました。
ちなみに満足度が全て「満足」の人がいた場合、どれか1つ、さらに良くするには?で考えてもらいました。


こちらは私の結果。
f:id:run_around:20200606103452p:plain


「関係性」「受容」共に「大」x 10 ぐらい満足!
「地位」は無い方が自由に動けるから最下位を選びましたw
「熟達」については、まだまだ学ぶことや慣れていくことが沢山あると感じているので「不満足」。
「熟達」を「満足」にしていくには・・・慌ててもすぐに出来るわけでは無いので、色々頑張ってつまみ食いしていくプランでいます。


あ、こういうことを尊重できればもっといいチームで動けそうだなーとか。
これはこの人の地雷だから踏んじゃダメなんだな!とか。
そうかー、こういうことで悩んでるのかー、とか。
なんか助けてあげられることないかなー、こういうのやってみるのどう?とか。

そんなことをわいわいと話せました。


前職ではモチベーションの順位を決めてシェアする、を実施するのみだったのですが、
今回は「満足度」や「次のアクション」のワークも出来て色々気づきが多かったです。


普段の雑談ではなかなか聞き出せないことも、こういうワークショップを通して知ることが出来るんだなぁと実感するお年頃です(๑•̀ㅂ•́)و

チームでジョハリの窓をやってみたよ

3月、イーシーキューブに転職し4月より新しいチームに入りました。
4人中3人(私含む)が新規参入者で、かつ、会ってすぐ在宅勤務(新型コロナめぇ・・・)。
毎日デイリーハドルで仕事&ちょこっと話をすることはあっても、メンバー同士の交流をもっと活発にしたいな!ということで。
よく外の勉強会などで登壇者さんがお話されているのを聞いていた、ジョハリの窓をやってみよ、と思い立ちました。


ja.wikipedia.org

自己には「公開されている自己」(open self) と「隠されている自己」(hidden self) があると共に、「自分は知らないが他人は知っている自己」(blind self) や「誰にも知られていない自己」(unknown self) もあると考えられる。

これらを障子の格子のように図解し、格子をその四角の枠に固定されていないものとして、格子のみ移動しながら考えると、誰にも知られていない自己が小さくなれば、それはフィードバックされているという事であるし、公開された自己が大きくなれば、それは自己開示が進んでいるととる事が出来るだろう。

コミュニケーション心理学や健康心理学などにて頻繁に使用される考え方である。


実際にやってみるまでは、自分が知ってる自分と他人が知ってる自分の差分が知りたい!が、ジョハリの窓をやりたいモチベーションでした。


さて準備。
オフラインであれば、紙を用意して各メンバーに回して当てはまる項目に印をつけてもらう・・・などが出来るのでしょうけど。
全員在宅でオンラインとなっている為、以下を準備することにしました。

potect-a.com


まずはGoogle FormでWebアプリと同じ質問への回答を各メンバーから集めておき、私が代理で入力、結果を出しました。

f:id:run_around:20200606094107p:plain

私の結果のみ公開ー。


開放の窓:自分も他人も知ってる自分の性質
盲点の窓:自分は気づいていないが他人は知っている性質
秘密の窓:他人は知らないが自分は知っている性質
未知の窓:自分も他人も知らない性質


未知の窓はWebアプリの選択肢で自分も他人も選ばなかった項目が並んでいるようです。
あと「x2」とかになってるのは2人が選んだ、のようです。

「聞き上手」は、周りからよく言ってもらえるのでそうかなーと思っていたりします。
「表情が豊か」は、きっとわかってるわかってないがはっきり表情でわかるんだと思います(爆)。ポーカー絶対負けるわ。
「話上手」は、私は口下手だと思っているのですが・・・他メンバーは選んでくれていますね。
「空気が読める」と、自分では思っているのだけど・・・w 思いついたら行動しちゃうので空気読めてないように見えるかも。



全員分の結果をチーム内で共有し、感想やフィードバックわいわい。
「ちょっと恥ずかしいけど、なんだか嬉しい」とか。
「ほぉ、そうなんだ!次は●●な感じでコミュニケーション取っていけると良さそうだな」とか。
「ずっとオンラインでしか話せてなかったけど、メンバーのことをよく知れた」とか。


やって良かったなー✌️
自分ではそう思っていなかったことも他人から「こう見えるよ」とフィードバックもらえると、なんだか嬉しいし、じゃぁ意識してやってみようかな、といいアクションが取れるのではないかなーと思っています。


また新しいメンバーが入ってきたタイミングでやってみたいな。