ビリヤード系筋トレプログラマ

プログラミング, 筋トレ, ビリヤード, エンジニア, etc

Vue.jsの勉強

背景

Rails+Vue.jsで個人開発を進めていくにあたって、どうしてもフロントエンドを少しずつ勉強する必要性を感じた。

詰まったらそのたびに調べてだましだまし実装するのもいいけど、ある程度イメージがついたところで一度しっかり勉強しようと思った。

勉強に使用した記事

qiita.com

サンプルコードをまとめてくれているのがめちゃめちゃありがたい。HTMLとCSSとJSの関係性をある程度理解している場合はこの記事がめちゃめちゃ使える。コンポーネントの概念も説明してあり最高だった。

qiita.com

これもよかった。そもそもVue.jsってどうやって書くの?ていう疑問を解決してくれる。マジの最初のとっかかりとしてはめちゃめちゃ助かりました。こちらもコンポーネントの説明がかなり詳細です。

応用+Rails適応編

qiita.com

Docker+Rails+Vueの構成は結構調べたけど、この記事の内容に落ち着いた。

まとめ

自分の構想とマッチする記事を選ぶのが習得への第一歩。
次はDeploy編をまとめます。

ビリヤードのフォームやスタンスの観点

フォームについての観点

A級に上がるまでに色々試行錯誤しました。今も色々考えてやっています。
ここではビリヤードのフォームにおける観点を記述します。
初心者の方も何となく色々試してみてください。

※やりすぎてぶっ壊れても責任は取りません。
※個人的見解が大いに入りますので、その点はご配慮願います。

グリップ

グリップは持っている手の指でどの指で持つかや、力をどこに入れるかを考える。

  • 親指、人差し指、中指等グリップの前に力を入れて持つタイプ

参考選手
ブスタマンテ 親指、人差し指 (力は入れてない)
ボーニング 親指、人差し指(テイクバックまでは他の指も使っている)
レイズ(前3本で持っているが、かなりルーズ)
赤狩山幸男P(実際に伺いましたが、前3本らしいです)

  • 小指、薬指、中指等グリップの後ろに力を入れて持つタイプ

参考選手
ビリーソープ (後ろ3本と親指。剣道やバットのように持つ)
蔵之前氏(薬指が要になっているらしい。ストローク全体的に言うと他の指も使用している。)

※筆者の見た感想ですので、いや違う!という意見もあると思います。その辺はご配慮ください。

ちなみに私はブスタマンテ神信者ですので、親指と人差し指だけです。

ブリッジ

オープンブリッジとクローズドブリッジの使い分けは個人によります。慣れてくると雰囲気で決めてしまうことが多いと思います。ただ、最近の流れはオープンが多いのかなと感じます。
ラシャが重たくないので、そこまでキュースピードを上げる必要性がないので、厚みが見やすいオープンが多いのかなと思います。

  • オープンブリッジ

人差し指と親指でVの形を作りその間にキューを通す。

  • オープンブリッジ(フィリピン)

普通のオープンブリッジの親指を人差し指側に畳んだ形
慣れるまではよくミスをしました。

  • クローズドブリッジ

人差し指と親指でOKの指のようなわっかを作り、中指に添え、わっかの中にキューを通す。詳しくはググってください。

  • クローズドブリッジ(フィリピンブリッジ)

人差し指を中指の第一関節辺りに突き立てて三角形を作りその間にキューを通す。詳しくはググってください。

  • レールブリッジ

ビリヤード台のレールの上で組むブリッジ。
ブレイクや土手撞きで使用する。詳しくはググってください。

頭の位置

頭の位置は頭の高さのことです。

顎かキューにつくほどに低い

  • ポケット

低い選手、高い選手どちらも存在するが、最近は低い選手が多いと思います。

  • スリークッション

高い選手が多いと思います。

頭が低いほうが厚みを捉えやすく、頭が高いほうがストロークを大きくしやすく、ボールが走るラインを見やすいのかなと思います。※何度も言いますが個人的見解です。

※スリーは正直詳しくしりません。

左肩の使い方(右利き)

ブリッジを作る側の腕の肩を固めてロックするかどうか、という観点です。

  • 左肩をロックしてるように見える選手

呉坤霖(台湾)
呉珈慶(元台湾,現中国)※左利きなので右肩
アルビン・オーシャン(オーストリア)

ストローク

テイクバックが大きい-テイクバックが小さい
キューだしが長い-キューだしが短い

の観点ですので

  • テイクバック大きい-キューだしが長い
  • テイクバック大きい-キューだしが短い
  • テイクバック小さい-キューだしが長い
  • テイクバック小さい-キューだしが短い

のようにストロークを種類分けすることができます。
※ただ、長い短いは個人の主観によるところが多いので、選手は言及しません。

グリップが肘より外に出ているストローク
ブレイク時だけ、サイドストロークっぽくなる選手も多いです。

グリップが肘より内側に入っているストローク

利き目

効き目とキューの位置という観点です。
通常は顎の真下ですので、両目の真ん中ですが、
効き目の真下にキューを持ってくる選手も多くいます。

  • 利き手、利き目が逆

アルビン・オーシャン
呉珈慶(左利き)
呉坤霖

  • 利き手、利き目が同じ

ニールス・フェイエ
アール・ストリックランド

スタンス(足の形)

足を前後に開くか、左右に開くかという観点です。
これは個人の動きやすさに依存するところが大きいのかなと思います。

スヌーカー選手は足を左右に開くことが多いです。

腰の位置(スタンスに含まれる)

腰の位置を足の位置に対してどこに置くかという観点です。

腰を一番後ろに突き出し、重心を後ろとするか
腰を前足と後ろ足の間に置き尚且つ前に体重をかけて、前重心とするか。

また、個人的な見解ですが、この腰の位置は撞く瞬間のヘッドアップや体の動きに関係していて、この重心変えるだけでヘッドアップがなくなることもあるのかなと思います。※個人的見解です。

まとめ

色んな部分を試してみて自分に合ったフォームを見つける助けになればいいなと思います。

FactoryGirlって共通定義ないのか?-解決編-

解決法

普通にspec_helperにModule書いてrequireすればできた。

コード

/spec/spec_helper.rb

# test_modules
module TestNum
  TEST1   = 1000
  TEST2   = 1001
  TEST3   = 1002
  TEST4   = 1003
  TEST5   = 1004
  TEST6   = 1005
  TEST7   = 1006
end

/spec/factories/
配下の共通定義を使用したいfactoryファイルにて
require_relative '../spec_helper'
でおわり。

まとめ

冷静になってシンプルに考えよう(戒め)

東証一部上場企業SIerから転職した話

背景

現在はWeb系の現場でRailsエンジニアとして働いているが、転職の際に感じたことやどんなことを考えて転職したのかをここに残しておこうと思う。

転職理由

組み込み系の開発を3年間行っていたが、やっていることが3年間ほとんど同じで、練度や習熟度は上がっていくが、新しい技術や知見を得られそうになかったため。

自分的には幅広く色んな技術に触れて、エンジニア、プログラマとしての幅を広げたいと思った。

転職エージェント

  • レバテックキャリア
  • ギークリー

エンジニアの転職だったので、専門性の高い
2つの転職エージェントを使用した。

個人的にはレバテックキャリアのほうが対応が良いと感じました。ギークリーのほうが紹介求人数は多く出していただきましたが、調整をこちらでもある程度考えておかないとだめで、尚且つ選考する企業の日程次第では鬼のような選考日程になる。
レバテックキャリアはほとんどの調整をエージェントさんが行ってくれてかなり楽でした。

※ここに書くのは個人的な意見ですので、鵜呑みにしないでください。

転職期間

5月中盤~6月終盤の約1か月間

書類選考

Web系のSES、自社開発企業に書類選考を送りましたが体感として50%~60%は書類が通りました。

理由としてはエントリーシートの完成度だと思います。
レバテックキャリアではエントリーシートの添削を行っていただけるのですが、私の場合は開発プロジェクトの数も7つ、内容もかなり詳細に記述しましたので添削無しでした。

かなり細かく技術や、どのようにプロジェクトに貢献したのかを記載するほうが良いみたいです。

面接

質問内容はほとんど一般的なものでした。

  • 自己PR
  • 志望動機
  • どのように会社に貢献するのか
  • 趣味
  • 自己学習
  • 将来像
  • リーダー経験
  • 希望年収

通過率は70%~80%ぐらいでしょうか。エントリーシートの段階でこちらのことはよくわかっているので、個人の印象や、話し方などを確認したかったような印象をうけました。

重要なのは自分にとって何が優先度が高いのかです。

内定

1次面接を受けに行った社数は25社くらいあったと思います。
ただ、やりたいことが違ったり、明らかに条件が悪かった会社は2次以降辞退し、結局2次面接以降に進んだのは6社で、最終面接に行ったのは4社だったと思います。
内定をもらったのは4社ですので最終まで行けばほぼ落ちないと思います。

まとめ

現在はWeb系のシステム開発を行っています。
通勤時間 1時間半→20分
給料 4万UP
でトータル的には成功なのではないかと思います。

皆様の転職活動に幸あれ。

組み込み系エンジニアスキルセット 詳細追加

背景

以前Qiitaに組み込み系の開発環境まとめを乗せたのですが、その記事の補足をこちらでやります。
qiita.com

開発言語

開発を補助したり、テストを行うツール以外は全てC言語C++で開発を行いました。

  • C言語
    • プロジェクトに応じて必要なレベルは変わりますが、基本的にポインタは完全に理解しておく必要があります。
  • C++
    • C++とありますが、モダンなクラス設計や最新のメソッドを使用することはなく、ほぼCに近い設計でした。
  • Lua(Linux内でプロセスを立ち上げるときに各種設定を行うスクリプトとして)
  • Python(テストツール)
  • C#(GUIで動くテストツール)
    • 組み込み機器をテストするにあたって、パケットを作成して通信するツールや、WireSharkでは判別できない特殊なパケットを見える化する際に作成していました。

OS

ネットワークスイッチ関連ではLinux、組み込み機器開発ではiTRONが多かったイメージです。

統合開発環境

使用するマシンのCPUに合わせてチョイスしている感じです。
ネットワーク機器開発では開発用のサーバを用意して、その中でViでコードを書いてコンパイルすることが多いです。

テスト環境

Web系企業との差が大きい部分ですが、物理的なテストが必要になることが多く、自動化やコード化はできていないことがほとんどでした。

  • GDB
    • Linuxの環境にC言語のデバッガとしてGDBを入れて、関数単位のテストを行っていました。めちゃめちゃめんどくさいです。もうやりたくない。
  • CUnit
    • 関数単位でテストを行うためのテストコードをかけます。3年間で1回しか使わなかった。ただ、スタブの概念などを学ぶことができたので、個人的には良かったです。常駐先のお客様の技術レベルしだいで使うことができると思います。
  • gcov
    • C 言語で書かれたプログラムのカバレッジを測定するツールです。gcc に付属しています。Linux上で簡単に動作する上に学習コストもそんなに必要ないですので、そこそこ使ってました。

某N系企業も使えるお客様と、使えないお客様がいてびっくりしました。

プロトコル

ネットワーク機器開発では知識として必要とされるプロトコルは多いです。

  • TCP/IP
  • UDP
  • LAG
  • VLAN
  • EoE
  • リングプロトコル
    • 上記6つのプロトコルはネットワーク機器開発に必要不可欠な知識で、特にLAG,VLANは機能そもそもを実装する必要があるため、詳細な動きや決まりを知っておく必要がある。
  • TIPC
  • CORBA
  • RPC(別枠)
    • リモートプロシージャコールの略。MessagePackを使用した過去プロジェクトで使用した。動作が特殊で非同期通信を実装する時にそこそこ勉強が必要

まとめ

Qiitaに投稿した記事の中で説明があったほうがいいかなと思った内容に関して補足しました。
世の中の誰かのためになればいいです。

FactoryGirlって共通定義ないのか?

問題点

/factories/users.rb

factory :User_fac, class: User do
    trait :test1_data do
      id 1000
      name "TEST1 DATA"
      address "TEST1 DATA"
    end

    trait :test2_data do
      id 1001
      name "TEST2 DATA"
      address "TEST2 DATA"
    end
end

/factories/posts.rb

factory :Post_fac, class: Post do
    trait :test1_data do
      id 1000
      name "TEST1 DATA"
      address "TEST1 DATA"
    end

    trait :test2_data do
      id 1001
      name "TEST2 DATA"
      address "TEST2 DATA"
    end
end

上記2ファイルの1000,1001ように、ファイル間で同じ値を使用している場合にどこかに共通定義として定義して、そちらから参照する形に持っていきたいが、やり方がわからない。

試行錯誤

factoryのファイル内にenumを作る

module ModuleName
      TEST1 = 1000
      TEST2 = 1001
end

Factoryファイルで宣言するが、Rspec側でCreateされるたびに呼び出されるので
warning: already initialized constant ModuleName::TEST1
warning: previous definition of TEST1 was here
が出てうるさい。

Rspec側のbefore :suiteとかで呼び出された時のコールバックとして宣言すればいけるんだろうか。

正直色々ググったけどいい感じの解決方法が見つからない。

誰か教えてください。

プログラマと筋トレ

プログラマと筋トレの関係性

あくまで個人的な意見ですので、参考までに。
プログラマはPCの前に座ってコーディングや設計をするのが主な仕事です。

そのため、圧倒的に運動不足になりがちです。
運動不足による弊害として

  • 肥満
  • 肩こり、首コリ
  • その他運動不足による病気

これらが挙げられます。
全て筋トレで解決していきましょう。

プログラミング+筋トレ = マッスルエンジニアリング

過去Qiitaでも記事が出ています。面白いのでぜひ読んでください。
qiita.com

テストステロンとプログラミング

新しい技術への興味や、プログラミングへのモチベーションが保てなくなった時はありませんか?

そうです、間違いなくテストステロンが足りてないです。
プログラマやエンジニアとして勉強を続けていくには高いモチベーションが必要です。
テストステロンには冒険心やチャレンジ精神を高める作用があるとされています。

また、難しいことに挑戦し、勝利することでテストステロンの分泌は増える。
とも言われています。 あれ?これってプログラミングじゃね?

そうです、筋トレ→モチベUP→プログラミング(難しいことに挑戦)→技術力UP、年収UP→達成することでテストステロン分泌UP→筋トレ成果UP→筋トレ

の無限ループを回すことができるのです。

筋トレとプログラミングの相性が良すぎるのでは?w

まとめ

筋トレをすれば、プログラマの職業病に良い効果がある。・・・かもしれない。
筋トレをしてテストステロンの分泌を多くすれば、メンタルに良い効果がでて、より成果を上げられる。・・・かもしれない。