jakelizziのブログ

jakelizziの日常時々Techなブログです

日記 2022/02/01

昨日の反省を生かしてMarkdownモードで書き始めた!便利!

今日業務でやったことなど

  • 直近2週間の振り返りを行った。
  • DockerDesktopの件は結構会社内でも話題になった(昨日も含めてだけど)
  • やっぱりDockerDesktopをDockerDesktopとして使っている人はあんまりいなかった。
    • 単純にDockerが動けば良い。というか、コンテナが動けば良いという状態だったので、今一度ローカルの開発環境を考え直す良いタイミングなのかも?
  • 画面イメージの設計やらなんやらをやっていたんだけど、やっぱりもとに立ち返って下記のを掲げてやらなければだめだと指摘されたし思った。

www.casleyconsulting.co.jp

これから今日中にやろうと思っていること

  • Podcastの編集を少しだけ。。。と思ったけどできなさそう。

その他

  • やっぱり0時ころ寝たら朝は早く起きられない事がわかった。
  • ホリエモンの動画を最近見まくってる。その流れで新R25の動画もめっちゃみて、ヨビノリさんの数学の動画にたどり着いてしまった。
  • 東大の数学を解く動画を見たけど、やっぱり数学は本当に楽しいなぁと思った。
  • 明日までにはテクフリの感想をツイートしなければ。。。結局1月はツイートできなかったから。

今日はもう時間も時間だから内容がほとんど無いというか、Markdownにしたけどコード一切書かなかったけど、このへんで。 おそらく数日は顧客が本当に必要だったものを考えるのでしばらくコードは日記に出ないかも?

日記 2022/01/31

とりあえずアウトプットを再開してみる

Markdownモードで書き始めなかったからMarkdownモードでかけなかった。途中で変更はできないみたい。。。?

明日の日記からはMarkdownモードで書こう

仕事でやったこと

DockerDesktopが有料になるということで、取り合えずUninstallして変わりにPodman入れてみた。

まぁ、そもそもDockerDesktopを使う必要もなく、Docker-CEで十分だったんだけど、Macに慣れてなくてよくわからずとりあえず `brew install` したらDockerDesktopが入っちゃったんだけど。。。

Podman自体はすごい簡単に入った( `brew install` でサクッと入った)けど、docker-composeの部分がうまくいかなさそうだった。

というのも、Podman自体はdocker-composeは公式にはサポートしないよ!Kubernetesこそオーケストレーションツールのデファクトだからそっち使ってね!というスタンスらしい。

一応サードパーティ製のpodman-composeというのもあるらしいけど、こういうのは公式のものに乗っかておくほうが吉だろうと思ってその公式の方法をやろうと思ってやってた。直接業務と関係ない事やっているからそんなに時間かけずにやろうと思ったんだけど、なんかすっごい時間かけちゃった(反省)

いまよく読んだら公式でサポートされてるっぽい。。。明日また試してみよう

会社で使っていたdocker-composeのスタックが

だったので、これを一つのPodに入れて podman play kube してみた。

手順を備忘的に載せておくと

  1. DockerDesktop をアンインストール : brew uninstall docker
  2. Podmanをインストール : brew install podman
  3. docker-composeで使用していたDockerfileのおいてあるディレクトリまで行って podman 用のイメージをビルド : podman build .
  4. podの作成 podman pod create my-pod
  5. podman pod ls で pod の確認
  6. podman run -d ..... (以下Dockerコマンドと同じ)でコンテナを動かす
    1. この時のオプションで --pod 
    2. この際に --restart-alwaysにしてしまって面倒くさかった。。。
    3. そして、mysql のコマンドが長くて、なんか知らんがうまく行かなかった。おそらく実行ユーザーがrootユーザーだと、charasetなどのコマンドを受け付けないみたいなので、そのへんは今後調べなきゃいけない。。。

 

参考にさせていただいたブログ

rheb.hatenablog.com

denor.jp

zenn.dev

www.redhat.com

 

↓の記事がよく見たらdocker-composeサポートしてるじゃん!となった記事。記事のななめ読みは良いこと無いな。。。早く終わらせようと思ったらもっとちゃんと読むべきですね。急がば回れ。何度同じ失敗をすればよいのやら。ブログを書くことで、この辺が改善されることを祈ります!

www.redhat.com

 

個人的にやったこと

  • FXをやってみた。相場の上がり下がりはまだちょっとよくわからない。。。
  • ツールの使い方をすこ~ししれた程度かな?でも証拠金めちゃくちゃ少額でやったので、結局何にもなってないw
  • ホリエモンチャンネルで、トヨタ・テスラ・ホンダの企業説明を聞いた。これはめちゃくちゃ面白いし、感動するから覚える。そして、自分もなにかしたいという気持ちになる。
  • NewsPicksで落合さんのいろんな考えを聞いた。この辺の人の話は本当に面白い

やりたかったけどできなかったこと

  • 株取引。ちょっとガチでやってみようと思っていて、今猛勉強中。
    • 株の勉強=世界経済や日本経済の勉強になって、楽しい。もはや株で利益を出すのは二の次になっているくらい楽しい。
    • コロナの状況や、FOMCの議事録について。原油価格やウクライナ情勢について株やってなかったら全く知らずに生きていた。世界が知れて嬉しい
  • 読書(プロダクトレットオーガニゼーション)
  • 輪読会準備(プログラミング言語GO)
  • エアロバイク(この記事書いたあとにやる予定)
  • お風呂に入る

 

ってな感じでだらだらとやったこととかを何かしら書いていこうと思います。

2年前も同じこと書いてると思うけど、今度はどのくらい続くかな?やったことを書くだけなら続きそうな気がする。あと、一応ネタもためているからそれができれば良いな!

Bitcoinの取引をちょっとだけ始めてみた

TL;DR;

前回のブログから1ヶ月あいてしまいました... このこの期間は毎週末は結婚式の準備などでとてもバタバタしていてブログを書く元気は残っておりませんでした。
ですが、気を取り直してブログを書き続けてみようと思います!(FORTEさんの始める技術続ける技術読まねば!)

本題

本日ブログで取り上げようと思ったのはBitcoinの取引をちょこっとだけやってみたので、実際に起きたことや雑感を書いてみようと思います。
※自分は本当にBitcoinやFX取引の素人ですので、もし間違ってたらご指摘をお願いいたします。また、素人の人はこの情報を鵜呑みにしないでちゃんと調べてください。このブログでは一切責任は負いかねます※

Bitcoin取引所へのアカウント登録

Bitcoinに関しては前々から興味はあって、Bitcoin取引所への登録は済ませてありましたが、一応覚えている範囲で書いてみます。

  1. Liquid by quoine にアカウントを作成
  2. 必要な情報を入力し、免許証などの身分証をアップロード
  3. 数日後に住所確認のためのにハガキを送られる。
  4. ハガキに書いてある認証コード?を入力後やっと取引ができるようになる

おぼろげな記憶ですが、こんな感じだったかと思います。もしかしたらマイナンバーも登録したかも?
あまり覚えていないですが、やろうと思ってもすぐには取引はできませんでした。
ちなみに大手の取引所といえばCoincheckBitflyerなのですが、確か自分がアカウントを作成したときはCoincheckが色々やらかしたときだったので、CoincheckはやめてLiquidとBitflyerでアカウントを作りました。
しかも確かLiquidはまだベータ版だったはず。ただ、ダッシュボードの見た目の良さ、使いやすさは断然Liquidだったので、Bitflyerは全く使っていません。
スタイリッシュな見た目が好きな方はLiquid by quoineがおすすめです!

bitflyer取引画面
Bitflyer取引画面

Liquid取引画面
Liquid取引画面

実際のBitcoin取引

めっちゃ短い期間(2019/10/08から2019/10/10)でかつかなりの少額(2万円)ですが、なんとなくな感覚を掴むには丁度いいかなと思ってやってみました。

とりあえず下記のキャプチャを御覧ください。

チャート
チャート

よくわからないまま8日の最高値のときに買ってしまい、買った直後からマイナスの指標が出続けてしまっていましたw
ただ、しばらく様子を見てみるかと思って放置してこのブログを書くために開いてみたらよくわからない上昇があり、なんとプラス500円になってました! 今回はただの様子見だからとりあえず売買を成立させておくかと思って売ったので500円の利確。(だと思います)

ここでよくわからなかった用語についてちょこっと書いておきます。(誰か一人にでも役に立てばいいなと思って。)

表示 意味
レバレッジ取引 実際に持っている金額を元本にして数倍の金額で取引をすることができる取引のこと。倍率は取引所ごとに違うみたいです。
ロング注文 Bitcoinの円相場が買った時より売った時のほうが高ければ利益になる。上で紹介したような利益の出し方はこの方式です。
ショート注文 ロングの逆で、買った時より売った時のほうが安ければ利益になる。

あと知らなかったのは、Bitcoinを注文して約定させた状態でしばらく時間をおいていたら、ポジション料として数十円取られていたことです。

下記参照

quoinexjp.zendesk.com

レバレッジ取引をする際はこの辺に気をつけておくといいかもしれませんね。
また、youtubeなどでも色々解説している動画が上がっているので、それも参考にしてみるといいかもしれません。(許可とか撮ってないので載せることはしないです。)

まとめ

今回はたまたまプラスになりましたが、本当に運ゲーですね。特にBitcoinはなんで上がるのか、下がるのかの理由もよくわからないので、先が全く読めません。

まだまだ知らないことがたくさんある分野なので、勉強していてとても楽しいです!ただ、お金がかかることなので、ギャンブルにならないように注意したいですね!あくまで余剰資金で遊んでみた的な内容なので !(じゃないと嫁が般若になっちゃう)

蛇足

今後も定期的に何かしら気になるTOPICについて書いていければなと思います!そろそろTech系な内容書きたいな。。。

以上、駄文失礼しました。

初めてリモートワークをやってみて感じたことなどなど

今日起きたこと

 今日(2019/09/09)台風15号の影響が見越されるため、JRなどの鉄道各局は計画運休を発表しましたね。
 最近、計画運休などちゃんと事前に伝えてくれる様になったおかげで色々と対策とか取りやすくなったと思います。
 実際、台風自体は観測史上最強クラスで、関東でも死者2名でたり、工事現場の資材などが飛ばされたりと、経済的な打撃が結構あったんじゃないかと思います。
 JRに関しては、朝方は計画運休以外にも土砂崩れや駅の天井が飛ばされて架線に引っかかったりして、特に海に近いところではかなりの影響がありました。ダイヤは乱れまくり、入場規制によって人も駅の周りに溢れてました。

 現職では、前日のうちに「午前中は自宅待機せよ」との通達が来ていたので混乱に巻き込まれた方も少なかったのかなと思います。
 ただ、その状態だと「午後は出社しなきゃ!」と思ったひとは私を含め多くいたようで、11時を過ぎても駅がカオス状態で、家を出たはいいがなかなかたどり着けない人の悲鳴もSlack越しにたくさん聞こえてきました。
 私もその悲鳴を聞きながら、「しゃーない、行くか」と思って最寄り駅まで歩きました。
 台風一過で超絶猛暑。大量の汗とともに駅の前についた時点でSlackから通知が。

「駅の混雑も凄そうなので、本日リモートワークできる方はリモートワークで対応してください。判断が遅れて申し訳ございません。」

 ん~~、、、もうちょっと早く知りたかったww

 ただ、個人的にはまだ電車に乗っていない状況だったし、多分午前中はリモートワークになるなと思ってPCを持ち帰っていたので、その瞬間に家に帰りました。

リモートワークの内容

 私は家ではデスクトップPCを使用しています。
 PC自体は机の下においてあるのですが、机の上に関しては、お恥ずかしながらキーボードとマウス以外にもたくさんの物で溢れかえっております。
 ペンや手紙やはがき、貼っていないIT企業のステッカー、小さいフィギュアや使用していないUSBケーブルなどなど。。。
 つまり、家に帰ったあとPCを出してやろうと思っても、会社のPCを置くスペースがないのです。ですので、最初の業務としては、仕事ができる環境を作ること(部屋の掃除)からはじめました。
 とは言っても、上においてあるものを適当な袋に入れて別のところに追いやっただけですが、精密機器などもあったので、なんだかんだで30分ほど消費してしまいました。

 12時前くらいに掃除が終わり、やっと仕事ができる環境が整いました。そこから適当にお昼休憩を混ぜながら19時近くまで仕事を行いました。

リモートワークをやってみて

 自分は今日初めてリモートワークとやらをやってみました。

 最初に思っていたこととしては、正直誘惑に負けてちゃんと仕事できないんじゃないか?という疑念です。

 実際、転職の際に約1ヶ月ほど有給消化期間があり、その期間内に簡単なWebアプリとかを作ってみようとか思っていたのですが、FF14しかやっていませんでした。

 その経験から、「自分は誘惑に弱い」と思い込んでいました。

 しかし、Slackの向こう側で同僚が作業をしている、と思った途端に自分もやらなきゃなという気分になり、しっかりと集中して仕事ができました。

 現在の仕事としては自社サービスの新規機能の実装という、いかにもリモートワークしやすい仕事だったということも要因だと思います。
 ですが、ちゃんとプログラムは書け、プルリクも出せました。

 ぶっちゃけ、出社してもしなくてもやる作業としては何も変わらないと思いました。
 むしろ出勤退勤の時間がない分疲労もなく(自分は炎天下の中最寄り駅までの往復で、仕事初めはちょっとグロッキー状態でしたが)お昼ご飯もサクッと食べて、横になりながらテレビを見てリフレッシュできました。

 ひと目を気にせずお昼休み中にテレビなどを見ながら横になれるこれがかなりいいですね。

 前職ではリフレッシュスペース的な場所があり、横になれる場所はあったのですがスペース的に全員は無理ですし、よだれがたれないようにとか、なんだかんだ周りを気にしなきゃいけなくて、余り使う機会はありませんでした。

 しっかりと休むことで、いつもは少し眠くなるお昼過ぎの時間も、眠くならずにめちゃめちゃ集中できました。

まとめ

 初めてリモートワークをやってみて、自分は案外リモートワークも向いているなと思いました。

 やっぱり眠いときや、集中できない瞬間は横になったり、テレビ見たり、ゲームしたり、何かしらの気分転換を周りに気を使わずいつでもできることがとても大切だと思います。

 また、自分の場合は、とても優しく心理的安全性を高めようとしてくれる上司に恵まれたため、上記のような時間をとっても何も言われないという自身があったことも、今日の仕事でパフォーマンスを出せた大きな要因だと思います。

 やっぱり心理的安全性は大事!!

 以上、ありがとうございました。

アウトプット

最近思ったこと

 雑にまとめているので、全くまとまっていないともいますし、他の人へ見せるような内容でもないかと思いますので、ご了承願います。

 今年の頭に #しがないラジオ に出演し、それをきっかけにもっと外へ出ていこうと思っていたのですが、案の定というかやっぱりというか全くアウトプットができていないことを日々思っておりました。
 今ブログ記事を書こうと思ったきっかけとしては、しがないラジオ出演のきっかけをくださった #aozorafm のFORTEさんのポッドキャストを聞いたことがきっかけです。
 雑でもいいし、何でもいいからできるだけ頻度を高くアウトプットしていく癖をつけたいなと思った次第です。

 実際、FORTEさんすごいですね。登壇やらポッドキャストはやしたり、コミュニティにも積極的に参加されていて本当に素晴らしいと思います。

 ただ、自分はガミさんやずっきーさん、FORTEさんとは違い飽きっぽい性格でもあるので、まぁ無理せず自分のペースで続けていければなと思ってます。

やろうと思っていること

 雑にアウトプットをする上で続けていきたいなと思っていることをとりあえず下記に列挙しておきます。

  • 技術書典で購入した書籍を読んで雑感やまとめの記事を作成する。
    • おそらく10冊くらいはあるから1章ずつとか何らかの形でアウトプットが続けられるかなと思っています。
  • 転職後の状況についてまとめる
  • Spring Boot, gradleのアップデート戦記
  • MySQL -> Aurora移行戦記
  • TwitterAPIなどを使った簡単なシステム作成日記
  • AquaBlendServer(自分のやってる音楽バンド)のサイト作成日記
  • Felicaを用いた集計アプリの作成
  • スーパーマリオRPGやってるのでその感想
  • FF14の感想
  • 結婚式について

 意外とネタはある気がしますね。。
 必ずやるわけではなく、なんとなく記録として書いておこうと思います。
 あわよくばすべてエントリとしてアウトプットできるといいな!

 というわけでこのエントリを皮切りにどんどんアウトプットして行こうと思います!
 (三日坊主にならなきゃいいな)

レガシーjavaエンジニアが最近のweb技術に触れたときに調べたいろいろなこと

まずはじめに

everyone outputter というコミュニティのアドベントカレンダーに参加させていただきました。 しかし、仕事が大変でなおかつ引っ越しや年末行事などとかぶってしまい、期限内にブログを書くことができず、申し訳ございませんでした。 はじめてのブログのため、勝手がわからず、変なことをしてしまっているかもしれませんが、生暖かい目で見てやってください。

whoami

しがないエンジニアです。 普段はjavaservletSQLをゴリゴリ書く人です。

最近reactなどのモダンフロントエンドについて興味があり、個人で勉強してます。

普段硬いプログラムをいっぱい書いていると、フロントエンド周りのキラキラしたものに興味を持ってしまいますね!

モチベーション

とりあえずアウトプットをしていこうと思ったのはいいものの、何を書けばいいのか悩みました。

そこで、java屋さんがnpmなどモダンな環境を学ぶにあたって躓いたことを書きながら、gatsbyjsの魅力などを少しでもお伝えできればと思い、はじめての技術ブログを書きました!

書くこと

普段の業務ではNodejsやReactなどは一切触れないので、独学で勉強するにあたって躓いたことについて書いていこうと思います。 ちなみに自分のレベルとしては、「普段触ってるJavaScriptには const などない... 一体何なんだ!?」というレベルでしたw そういった本当に初歩的な部分から、自分がちょっとでも「ん?」となったことについて書きます!

書くことリスト

  • JavaScript (ES6) <- ここを書きます。
  • Nodejs
  • npm
  • React

JavaScript (ES6)

数年前までJavaScriptに関する知識はES5までで止まっていました。(未だに周囲のエンジニアはES5止まりです。業務で使用しないので、仕方のないことなのですが...) そんな数年前の自分に対して教えるつもりで書きます。

JavaScriptのバージョン

JavaScriptにもバージョンがあり、当時の自分が知っていたJavaScriptはES5と呼ばれるものでした。 ざっくりとした自分の理解ですが、ECMAScript2015という仕様があり、それ以降のバージョンをまとめてES6と呼ぶイメージです。つまり2015年以降に出てきたJSのバージョンというイメージです。矢文やマサカリが怖いですが、間違っていたらご指摘をお願いいたします。

ES6の変数宣言

まず、変数宣言に関してですが、ES5では、varしか存在しませんでした。varvariableから来ていることも知りませんでしたw ES6でもvarは使用できますが、基本的に使用するのはconstletになります。というのも、JSのvarで宣言した変数はグローバルとして宣言されたものになってしまうため、ちゃんとスコープが効いた形で使用できるのがconstletのメリットです。即時実行関数とかは使用しなくて良くなります!

const

定数宣言。constで宣言した変数を変更しようとしてもできなくなります。

const hensu = 123;
hensu = 456; // <- エラー

最近のモダンな言語ではこのような記述ができることが増えてきましたね! プログラマが変数を追う際に、「今この変数に何が入っているんだ?」といったことをしなくて良くなるので、保守性が上がります。 このように、最代入ができない不変のものを、「イミュータブル○○」とよく言います。 イミュータブルオブジェクトとか、イミュータブル変数とか。英語の強ければ簡単に意味が理解できますが、普段のしごとでは全く聞き慣れない言葉なので一応ご紹介しておきます。

let

変数宣言。letで宣言した変数は再代入が可能です。スコープのついたvarと思っていただければOKだと思います。 上記のconstが「イミュータブル」だったのに対して、「ミュータブル」といいます。

基本的にconstで宣言できるものはできるだけconstで宣言して、それができないときにだけletを使うようにしましょう!

ES6でよく使用する無名関数

自分が普段使用しているJavaScriptでは、関数の宣言をする際は、下記のように宣言していました。

function sampleFunction(){
    // ここに処理を書く
}

また、下記のような場面も多々ありました。

function sampleFunction(){
    say('hello world!');
}
function say(message){
    alert(message);
}

それが、色々なサイトを見ていると、下記のように関数名を指定しないで使用できることを知りました。

function sampleFunction() {
    function(message){
        alert(message);
    }
}

確かに、その瞬間その場でしか使わない関数に名前をつけようとしても名前は思いつかないものですw そんなことに対して考える時間がもったいない!ということで、無名関数便利だ!と思いました。 ただ、ここまではES5の世界です。ES6では下記のように記述することができます。

const sampleFunction = () => {
    (message) => {
        alert(message);
    }
}

なんか一気にモダンになりましたね! まず、用語として、=>のことを「ファットアロー」と読みます。イコールがファットなので、->は「アロー」です。 なので、無名関数のことを、「アロー関数」ということもあります。

// 1
function(){}

// 2
() => {}

1と2は同じ意味になります。 そして、普段Javaを使用している人からすると、イメージしづらいのが下記の記述だと思います。

const sampleFunction = () => {}

単純に関数を変数に代入して使用するイメージです。このように変数に関数を代入することをクロージャといいます。 ここで、関数とメソッドの違いについて若干記述します。

関数とメソッド

あくまでも私の認識の話をします。

  • 関数は第一級オブジェクトとして扱うことができ、メソッドは第一級オブジェクトとは限らないこと。
  • メソッドには副作用があり、関数では副作用を持たないこと。

ここで気になる、第一級オブジェクトとは?副作用とは?ということに関しても記述させていただきます。

副作用とは?

まず、副作用とは、「状態をもつこと」や「状態(state)に対して影響を与えること」を指す言葉だと思っています。 では、「状態」とは? 簡単な例で言うと、Javaでいうフィールドを持ち、そのフィールドの値によって振る舞いが異なる場合です。 この場合は、フィールドに依存しているため状態を持っていることになるので、そのメソッドを使用する場所やタイミングによって戻り値や状態が変わります。 中学校や高校で習っていた数式y = f(x)ってありましたよね? この場合f(x)が関数になり、その関数の戻り値がyになります。 このとき、xの値によってyの値が決まりますが、xの値が一定であるならば、この世界のどこでも、どのタイミングで実行してもyの値は変わらないですよね? つまり、副作用を持っていないのです。

これが、関数とメソッドの大きな違いだと自分は思っています。

第一級オブジェクトとは?

第一級オブジェクト(ファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使用できる対象のことである。(参考:wikipedia)

この記述ですべてを表しているかと思います。

おわりに

眠い目をこすりながら少しずつ書いたので誤字脱字はあるかと思いますが、自分なりに頑張って書きました。 また、間違った記述があると行けないと思いますので、もし間違った記述があればご指摘をお願いいたします。

...今度からはちゃんと守れる期限で参加したいと思います。

今後はNodejsやnpmなどについても記述していければと思っております。

最後まで読んでいただいた方がもしいましたら、感謝申し上げます。ありがとうございました。