きのこカンファレンス in 関西に参加してきた🍄 #kinokokansai

luccafort.connpass.com

「きのこカンファレンス in 関西」に参加して、登壇しました!

運営のみなさま、登壇者、参加されたみなさまおつかれ様でした! たくさんの気づきや学びがあり、めちゃ楽しかったです!

会場

会場は、株式会社マネーフォワードさんの京都開発拠点でした!

登壇

「変化を楽しむエンジニアリング ~ いままでとこれから ~」というタイトルで登壇しました!

speakerdeck.com

自分がエンジニア、人生で大事にしていることや、エンジニアで成長できた出来事、「変化」を楽しむ方法という内容でお話しさせてもらいました!

Xや参加ブログを拝見していると、たくさんフィードバックがあり、ぼくが伝えたかったことが伝わってた手応えはあったかなーと思ったりしてます。

また、発表資料を作りながら、エンジニア人生をふりかえると、最近あんまりアウトプットできてないなーとか、思うところが色々とありました!

きっかけ

luccafort(id:luccafort)さんに、Kyoto.rbでの話しがおもしろかったから、「きのこカンファレンス in 関西」で登壇してもいいんじゃない?ってお誘いをいただいたのがきっかけ😊

おもしろそうだったからプロポーザルを出してみた。

ふりかえり

登壇ではお話しできなかったのですが、「変化」って成長のきっかけでもあると思うんですよね。 越境とかも「変化」ですよね。

ぼくのエンジニア力がヒヨコだったころに、「エンジニアにとって大事なことは?」と聞いたことがあり、「自分より優秀な人とつながりを作っておくこと」と教えてもらったこともありました。
ぼくにとって、それがRubyコミュニティだったのかもしれないですね。

登壇された方の発表を聞いていて、言語化が上手だなと感じました。
もともと、ぼくは言語化が苦手なので...

スライドに図形もうまく使っていて、とてもわかりやすく、めちゃ学びがありました。

懇親会

懇親会は転職ドラフトさんがスポンサーしてくれました!ごちそうさまでした🍻

みんなとワイワイできた!

告知

8月にUmeda.rbというRubyコミュニティが誕生します!

興味のある方はぜひ参加してみてください😆
会場はグランフロント大阪です!

connpass.com

最後に

こういう機会を作ってくれた運営のみなさん、ほんとうにありがとうございました!
もっともっと「ワクワク」するために、いっぱい手を動かして、アウトプットして、全力でエンジニアを楽しもうと思います!
めちゃ楽しかった😁

docker runを使って、Next.jsやGatsbyなんかをgenerateしてみるヘ(^o^)ノ

ローカル環境にnodeのruntimeがないので、Dockerを使っていろいろgenerateしてみる

Nodeのdocker imageでgenerate

基本的にはDockerのcommandを上書きしてあげると良いです

$ docker run -it -w '/app' -v $PWD:/app node:15.5.1-alpine3.12 [command]

僕の環境だとこんな感じです

$ cd dev   # ~/devにコードやらなんやらがある
$ docker run -it -w '/app' -v $PWD:/app node:15.5.1-alpine3.12 npx create-next-app my-app
$ ls -al
my-app/

Gatsbyだと

$ cd dev
$ docker run -it -w '/app' -v $PWD:/app node:15.5.1-alpine3.12 npm init gatsby
Command failed with ENOENT: git clone https://github.com/gatsbyjs/gatsby-starter-minimal.git /app/my-gatsby-site --recursive --depth=1 --quiet
spawn git ENOENT
npm notice 
npm notice New minor version of npm available! 7.3.0 -> 7.4.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.4.0
npm notice Run npm install -g npm@7.4.0 to update!
npm notice 
npm ERR! code 1
npm ERR! path /app
npm ERR! command failed
npm ERR! command sh -c create-gatsby

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-01-12T11_21_15_546Z-debug.log

templateをgit cloneしてくるところで怒られました

コンテナで確認してみます

$ docker run -it -w '/app' -v $PWD:/app node:15.5.1-alpine3.12 /bin/sh
/app # git -v
/bin/sh: git: not found

gitがインストールされてませんね

こういう場合は自分でイメージを作成する必要がありますかね

# ~/docker-images/node-dev/15.5.1-alpine3.12/Dockerfile
FROM node:15.5.1-alpine3.12 
 
WORKDIR /app 
 
RUN apk update --no-cache && \
    apk upgrade --no-cache && \
    apk --no-cache add git

buildして、もう一回試す

$ docker build -t node-dev:15.5.1-alpine3.12 ~/docker-images/node-dev/15.5.1-alpine3.12/
$ docker run -it -v $PWD:/app node-dev:15.5.1-alpine3.12 npm init gatsby
What would you like to call your site?                                                                                                                                                                                                                                                                                        
✔ · My Gatsby Site                                                                                                                                                                                                                                                                                                            
What would you like to name the folder where your site will be created?                                                                                                                                                                                                                                                       
✔ app/ my-gatsby-site                                                                                                                                                                                                                                                                                                         
✔ Will you be using a CMS?                                                                                                                                                                                                                                                                                                    
· Netlify CMS                                                                                                                                                                                                                                                                                                                 
✔ Would you like to install a styling system?                                                                                                                                                                                                                                                                                 
· Emotion                                                                                                                                                                                                                                                                                                                     
✔ Would you like to install additional features with other plugins?                                                                                                                                                                                                                                                           
· Add Markdown and MDX support                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                              
Thanks! Here's what we'll now do:                                                                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                                                              
    🛠  Create a new Gatsby site in the folder my-gatsby-site                                                                                                                                                                                                                                                                  
    📚 Install and configure the plugin for Netlify CMS                                                                                                                                                                                                                                                                       
    🎨 Get you set up to use Emotion for styling your site                                                                                                                                                                                                                                                                    
    🔌 Install gatsby-plugin-mdx                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                              
✔ Shall we do this? (Y/n) · Yes                                                                                                                                                                                                                                                                                               
✔ Created site from template                                                                                                                                                                                                                                                                                                  
✔ Installed Gatsby                                                                                                                                                                                                                                                                                                            
✔ Installed plugins                                                                                                                                                                                                                                                                                                           
✔ Created site in my-gatsby-site                                                                                                                                                                                                                                                                                              
🔌 Setting-up plugins...                                                                                                                                                                                                                                                                                                      
╔════════════════════════════════════════════════════════════════════════╗                                                                                                                                                                                                                                                    
║                                                                        ║                                                                                                                                                                                                                                                    
║   Gatsby collects anonymous usage analytics                            ║                                                                                                                                                                                                                                                    
║   to help improve Gatsby for all users.                                ║                                                                                                                                                                                                                                                    
║                                                                        ║                                                                                                                                                                                                                                                    
║   If you'd like to opt-out, you can use `gatsby telemetry --disable`   ║                                                                                                                                                                                                                                                    
║   To learn more, checkout https://gatsby.dev/telemetry                 ║                                                                                                                                                                                                                                                    
║                                                                        ║                                                                                                                                                                                                                                                    
╚════════════════════════════════════════════════════════════════════════╝                                                                                                                                                                                                                                                    
info Adding gatsby-plugin-netlify-cms                                                                                                                                                                                                                                                                                         
info Adding gatsby-plugin-emotion                                                                                                                                                                                                                                                                                             
info Adding gatsby-plugin-mdx                                                                                                                                                                                                                                                                                                 
info Adding gatsby-source-filesystem                                                                                                                                                                                                                                                                                          
info Installed gatsby-plugin-netlify-cms in gatsby-config.js                                                                                                                                                                                                                                                                  
success Adding gatsby-plugin-netlify-cms to gatsby-config - 0.157s                                                                                                                                                                                                                                                            
info Installed gatsby-plugin-emotion in gatsby-config.js                                                                                                                                                                                                                                                                      
success Adding gatsby-plugin-emotion to gatsby-config - 0.153s                                                                                                                                                                                                                                                                
info Installed gatsby-plugin-mdx in gatsby-config.js                                                                                                                                                                                                                                                                          
success Adding gatsby-plugin-mdx to gatsby-config - 0.161s                                                                                                                                                                                                                                                                    
info Installed pages in gatsby-config.js                                                                                                                                                                                                                                                                                      
success Adding gatsby-source-filesystem (pages) to gatsby-config - 1.213s                                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                              
*** Please tell me who you are.                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                                              
Run                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                              
  git config --global user.email "you@example.com"                                                                                                                                                                                                                                                                            
  git config --global user.name "Your Name"                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                              
to set your account's default identity.                                                                                                                                                                                                                                                                                       
Omit --global to set the identity only in this repository.

Initial git commit failed - removing git support

🎉  Your new Gatsby site My Gatsby Site has been successfully created
at /app/my-gatsby-site.
Start by going to the directory with

  cd my-gatsby-site

Start the local development server with

  npm run develop

See all commands at

  https://www.gatsbyjs.com/docs/gatsby-cli/

できたっぽい

公式のdockerイメージには、ENTRYPOINTCMDが設定されています

CMDを上書きする場合は、docker run コマンドのあとにつらつら追加していけばOKです

あと、ENTRYPOINTも上書きしたい場合もあるかもしれません

そんなときはENTRYPOINTを指定できます

npxコマンドで上書き

$ docker run --entrypoint npx -it node:15.5.1-alpine3.12 -v
7.3.0

no more runtime on localhost ヘ(^o^)ノ

僕の月曜日ルーティーン

どうでもいいけど僕の月曜日ルーティー

毎日

drikin vlog

www.youtube.com

  • 毎日 朝6時に公開
  • 僕は6時になると、目覚まし代わりに再生してます

月曜日

www.youtube.com

  • 月曜日の6時半からライブうやってる 癒やされます

  • あとはランニングとか瞑想とかやってる

  • 9時過ぎには出社してる

まとめ

早起きはいいですよって話でした

Enjoy Your Life ヘ(^o^)ノ

俺的WH-1000XM4レビュー

たくさんの人に背中を押されたので、WH-1000XM4をポチリました

Sonyのノイキャンは最強だと思っていて、僕が持っているSonyのヘッドホンとイヤホンと比べてみました

注) あくまでボク個人の意見ですので、ご注意ください。違いがわかる人のレビューを参考にしてね

僕の持っているSony製品

でわ、これらで聴き比べてみます

聴き比べ

  • お気に入りの音楽

ちょっと重低音の多めな楽曲でノリノリで出社できるのでおすすめ

ノイキャンはどの製品も同じかな、WH-1000XM4が効いているように聞こえるけど、ヘッドホンなんで臨場感があるだけかも

音質はWH-1000XM4がダントツです!

WH-XB900Nはガチャガチャしてます...音割れにちょっと近い?

WF-1000XM3はイヤホンなので、ちょっと不利ですがWH-1000XM4に劣らずの音質で、ノイキャンも最強クラス

たぶん、だいたいの人はこれで満足だと思う

WH-1000XM4はヘッドホンなんで、臨場感も音質もノイキャンも最高です!

こちらもWH-1000XM4がダントツです!臨場感がいい感じですー

WH-XB900Nはダメです(他の2つに比べてですが)

WF-1000XM3でも十分なのですが、WH-1000XM4にはかなわないかなー

drikinさんのレビュー

まとめ

自宅で映画、ゲームなんかはWH-1000XM4がおすすめかもです

初めてのSonyノイキャンならWH-1000XM4をおすすめします!

邪魔にならないイヤホンならWF-1000XM3ですかね

WF-1000XM3はbluetoothがブツブツ切れることもなく、音もいいし、ノイキャンもいい感じです

興味のある方はお店で聴き比べるてみては?

WH-1000XM4は音質以外に、Googleアシスタントやalexaに対応していたり、ヘッドホンを外すと音楽が止まったり機能が充実しています

あと、30時間ほど連続再生できるようですね

僕は外ではWF-1000XM3、家ではWH-1000XM4で使い分けしようかと思いますー

来週にはAppleからもヘッドホンが発表されると噂...気になります!

Enjoy Sony ヘ(^o^)ノ

Railsのconcernにはロジックを書くのはやめよう

みなさんはRailsのconcernは使ってますか?

僕はあまり使いませんが、何気に書いたコードがちょっとまずかったのでブログに書いてみます

やってしまったことは、concernにビジネスロジックを書きなぐってました

これ、なぜダメだと思ったというと、オーバーライドができない!(やりずらい)

サンプルコードはこんな感じです

module Hello
  extend ActiveSupport::Concern

  def say
    puts 'Hello'
  end
end

class Me
   include Hello
end

class You
  include Hello
end

MeYouクラスでHelloモジュールをmix-inしてます

Railsのアプリで使うなら、sayメソッドの振る舞いを変えることができます

ただ、このコードがgemだったらどうでしょうか?

アプリ側でsayメソッドの振る舞いを変更したい場合...

Me, Youそれぞれにsayメソッドを書かかないと変更できなくなります!

module Hello
  extend ActiveSupport::Concern

  def say
    puts 'Hello'
  end
end

class Me
   include Hello

  def say
    puts 'Say Hello'
  end
end

class You
  include Hello

  def say
    puts 'Say Hello'
  end
end

ダメダメですね...

では、どうすればいいのか?

ロジックをクラスに押し込むことで解決できます

class Greeting
  def hello
    puts 'Hello'
  end
end

module Hello
  extend ActiveSupport::Concern

  def say
    Greeting.new.hello
  end
end

class Me
   include Hello
end

class You
  include Hello
end

これならGreetingクラスのhelloメソッドをprependなどで振る舞いを変えることができるようになりますね

Enjoy Railsヘ(^o^)ノ

俺的、最強のデスクトップ環境を作ってみたヘ(^o^)ノ

f:id:murajun1978:20200911200145j:plain
My Desktop

在宅勤務しつつ、YouTubeで動画配信するための環境を作ってみた

前置き

  • 会社のPC Macbook Pro
    • お家で会社の仕事をするときに使うラップトップ
  • 自作PC + Ubuntu

    • お家 + 個人の仕事 or プライベートで使うデスクトップ
    • 前回のブログで紹介したコレ↓です

    murajun1978.hatenadiary.com

  • ThinkPad X1 Yoga Gen 5

    • 外出先 + 個人の仕事 or プライベートで使うラップトップ

Web会議、Live配信

Web会議であればWebカメでもいいのですが、YouTubeでLive配信するには画質にはこだわりたいなと!

なんで、ミラーレスカメラを購入しました

バッテリー駆動だと2,3時間しか持たないので、電源共有しながら使えるようにした

当たり前ですがめちゃきれいで、背景もボケてるのでプロっぽいですw

不安は三脚に延長ポールをつけて画面の上にひょこっと出してるけど、ぐらついてちょっと怖い。。。

あ、ぐらついても手ブレ補正があるので映像には影響ないです!

マイク

これもbuild-inマイクやイヤホンマイクでもいいですが、僕の美声が台無しなのでコンデンサーマイクとアームを購入

タイプすると揺れるので、Astonのサスペンションも購入

うーん、かっこいい!

いざ〜。。。あれ、聞こえない。。。

素人で知らなかったのですが、コンデンサーマイクは単独では機能しません。。。

そう!ファンタム電源が必要なのです!あと、XLRケーブルとXLR => 3.5mmステレオ変換ケーブルをポチ

キーボード

ずっとThinkpadのキーボードを使ってましたが、赤ポチを使わないので使う意味なくない?って言われたので変えました

マウス

こちらは昔から愛用しているマウスで、トラックボールは赤玉に変えてます

最近、高速スクロールマウスがほしいのです。。。

スイッチャー and ミキサー

マルチカメラでもないし、ゲーム配信するわけでもありませんが、ATEM Miniを買ってみましたw

マイクミキサーもついてたり、映像にロゴを差し込んだりもできるので、これから活躍してくれると信じてる!

USBのスイッチングハブ

会社のラップトップとデスクトップで、同じカメラ、マイク、キーボードを使いまわしたかったのでスイッチングハブを購入

ATEM Miniの映像、音声とキーボードを切り替えてますが、ボタンひとつで切り替えできるので便利!

ディスプレイ

憧れの34インチウルトラワイド

いまんとこ、このディスプレイでVSCode、TerminalとBrowserを眺めています

湾曲しているので、目線だけで追えるのは楽かも。最初はエディタが曲がってて違和感があったけどなれた

ディスプレイの下を有効活用したかったのでアームも購入。使いやすくてお気に入り

電源周り

電源はゴチャゴチャするので、こちらに全部押し込んでます

デスク

僕はスタンディングが落ち着くので、電動昇降デスクにした

これもずっと使っている

天板はどっかで購入した

こういうのやっぱ楽しいですね。みなさんも最強のデスクトップ環境を作ってみては?

自作PC組んでみたヘ(^o^)ノ

なんかRyzenが気になったので自作PCを組んでみた

スペックはこれ!

CPU Ryzen 9 3900x
CPUクーラー NH-U12A
マザーボード MSI B550I Mini-ITX
メモリ TEAM DDR4 3200Mhz PC4-25600 32GB x 2
SSD SB-ROCKET-NVMe4-1TB
グラフィックボード ZOTAC GAMING GeForce RTX 2070 SUPER MINI
電源 SF750
PCケース LianLi TU-150WX

12core 24threads 64GB memory

このPCで何をするのか楽しみですね。。。(何するんだろ

めっちゃゲーミングPCですが、僕はそんなにゲームしない

とりあえずUbuntuセットアップして、Kubernetesであそんでみるかなー

あと、YouTubeの動画編集をDaVinci Resolveでやってみる

うーん、使いこなせない感が半端ないw

CPUクーラーは空冷ですが、NH-U12Aは空冷最強?らしく、Ryzen 9 3900xでも冷え冷えです

メモリが3200MHzで動作してないのでBiosの設定をゴニョゴニョ

Enjoy 自作PC ヘ(^o^)ノ