IntelliJ IDEAからGitHubやBitbucketのリモートリポジトリに初期コミットする

よく使うので備忘録として残しておきます。
本エントリーは下記バージョンで動作確認しています。

IntelliJ IDEA Ultimate 2017.2.5

1. 前提としてリモートにリポジトリを作成しておくこと

各Gitホスティングサイトでよしなに

2. ローカルプロジェクトのGitを初期化する

  • VCS」→「Enable Version Control Integration...」を選択

f:id:yasay:20171024200807p:plain

  • Gitを選択してOKを押下

f:id:yasay:20171024200912p:plain

3. リモートリポジトリに接続する

  • プロジェクトを右クリック→「Git」→「Repository」→「Remotes...」を選択

f:id:yasay:20171024201046p:plain

  • プラスボタンを押下
  • 「Name」と「URL」に適切な値を設定してOKボタンを押下

f:id:yasay:20171024201216p:plain

4. pull & fetchをしてリモートからReadme.mdなどのファイルを取得する

よしなに

5. ユーザ名とEmailアドレスを設定する

よしなに下記のコマンドを
※名前とメールの値は適宜変更

git config --local user.name "user-name"
git config --local user.email "user-email"
git config --local --list

6. Unversioned Filesが大量に出てくるので"Add"する。

よしなに
f:id:yasay:20171024192550p:plain

7. Commitする

よしなに
f:id:yasay:20171024192859p:plain

8. Pushする

ここまで手順通りにやっていればpushに成功するはず・・
f:id:yasay:20171024201742p:plain

成功!お疲れ様でした!
f:id:yasay:20171024201840p:plain

以上です♪

「JAWS-UG CLI専門支部 #95 Lex入門」に参加しました

Lexってまだ日本に来てなかったんですね。
今回はバージニアリージョンでお試しです!
jawsug-cli.doorkeeper.jp

CLI専門支部への参加は今回で2回目でまだまだ不慣れなのですが、
ハンズオンの操作には慣れて来たような気がします。
(まぁ、基本コピペなんですがw)

つまづいたところ

jsonlintインストールしてなかった

インストールしようとしたら、ハンズオンから
どんどん置いてかれそうだったので、手順はスキップしました。

後ほど、下記手順を見てjsonlintをインストールしました。
qiita.com
次回は大丈夫!

めんどくさいからdefaultのProfileは設定したおいたほうがよさそう

個人的なaws cliの使い方として必ず"--profile"オプションをつけて実行しているんですが、
ハンズオンだとちょっと面倒なのでdefaultのProfileは設定しておいたほうがよさそう。
というか、ハンズオンの時だけ環境変数でprofileを指定しておいてもOK。

参考資料↓
qiita.com
(QiitaがSEOに力を入れてることもあって検索によく引っかかるなぁ)

iterm2はコピペに失敗した

特にjson形式の文字列をiterm2にペーストした時に
書式が崩れました。残念ですがハンズオンでは今後iterm2を使うことはないと思います。

所感

30分位でチャットボットの基本機能を構築できるって、
AWSやっぱ面白いなーと思いました。さすがマネージドサービス!
今回を通して、Lexの詳細な機能を深掘りするきっかけとなりそうでよかった。

(LexのWebコンソールからのService-linked role削除はとても分かりにくいですね・・
AWSさん改善よろしく・・
しかしながら、Service-linked roleをCLIから削除できないことも、問題な気がしますが・・)

CLI支部は参加すると何かしら有益な情報を持ち帰ることが多く、
結構ガチな感じの勉強会で楽しみにして参加してます。

懇親会にも参加したいとは思っているのですが、
体調が悪いことが多く、なかなか機会に恵まれません・・。
引き続きどうぞよろしくお願いしますー。

以上です!

OS別のウインドウリサイズ(スナップ)機能

Windows10の「スナップ」に代表されるウインドウのリサイズ機能は、
一度使い始めると手放せなくなり、作業効率も上がると思っています。

OSによって導入方法やショートカットが違うので、
各OS別のウインドウリサイズ機能を備忘を兼ねてまとめていきたいと思います。
随時更新予定です!

Windows

スナップ(標準機能)

Windows 7以降に標準で搭載されている機能。

意味 コマンド
左半分 Winキー + ←
右半分 Winキー + →
左上 (左半分にスナップしている状態で)Winキー + ↑
左下 (左半分にスナップしている状態で)Winキー + ↓
右上 (右半分にスナップしている状態で)Winキー + ↑
右下 (右半分にスナップしている状態で)Winキー + ↓

Mac

記号の意味

記号 意味
コマンドキー
オプションキー
コントロールキー
シフトキー

Spectacle

無料で使うならこれかなーと。

意味 コマンド
左半分 ⌥ + ⌘ + ←
右半分 ⌥ + ⌘ + →
左上 ⌃ + ⌘ + ←
左下 ⌃ + ⇧ + ⌘ + ←
右上 ⌃ + ⌘ + →
右下 ⌃ + ⇧ + ⌘ + →
フルスクリーン ⌥ + ⌘ + F
参考サイト

www.softantenna.com

Xubuntu

ウィンドウマネージャー

デフォルトではショートカットが設定されていないので、
設定してあげる必要があります。

私は下記のように設定しました。SuperはWinキーです。
f:id:yasay:20171024095920p:plain


以上、備忘録的なエントリーでした!

「Android Bazaar and Conference 2017 in KAWASAKI」に出展側として参加してきました

行ってきました、「Android Bazaar and Conference 2017 in KAWASAKI」!
japan-android-group.connpass.com

私は初参加でした!当日はあいにくの天候でしたが、一生懸命、自社製品をアピールしました(笑)

基調講演やカンファレンスも見れた

f:id:yasay:20171023173418j:plain

  • ↑Kotlin入門のセッション。

NULL安全とか最高じゃん。
Java言語使いならNullPointerExceptionには相当苦しんでいるはず・・っ!
f:id:yasay:20171023173739p:plain

所感

出展側として参加することで
いつもとは違う経験を積むことができたので貴重な体験でした!
ありがとうございます!

短文ですが、以上です!

「Vuls祭り#3」に参加してContributeした話

Vuls祭り#3行ってきました!
vuls-jp.connpass.com

六本木グランドタワーのDMM様オフィスで開催されました。
初回はFuture様オフィスだったような。
実は初回は参加してまして、その時の記事はこちら↓
xblood.hatenablog.com

10月後半からは勉強会ラッシュです。
11月にはJJUC CCCとSpring Day、
合間にJAWS UG CLI支部にも参加する予定です。
来年はScala Matsuriにも参加したいのでScalaの腕を上げておかないと・・!
Java9のキャッチアップも行わないといけないし、
MVプロジェクトも進めなきゃいけないしで時間足りない(T_T)

レポート①

Vulsの最新アップデートと今後の機能拡張について

f:id:yasay:20171023170745j:plain

0.4.0 解説

root権限使いたくないと偉い人が言ったのでモードが増えた。

  • First Scan Mode
    • rootなしのモード
  • Deep Scan Mode
    • rootが必要なモード
  • ovalのデータベースを0.4から使えるようになった
    • -> パッケージのバージョンとマッチングしてレポートする的な。
  • ネットに繋がっていなくても使えるようになった
  • パッチを提供していない脆弱性も検知できるようになった。
    • -> 0.3まではパッチを提供している脆弱性のみしか検知できなかった。
  • スキャン情報使ってレポーティング
  • バグが見つかったので修正したバージョンの0.4.1を使ってくれ。
    • -> 全パターン網羅とかでテストが大変だった。-> コミュニティの人がテストに参加した -> Thanks!
  • 取り組んでいること
    • suseのenterpriseへの取り組み
    • checkRestart -> 最新なんだけど動いているパッケージが古い場合の検知
    • docker image alpineへの対応(北米はdockerのalpine人気?)の取り組み

ここでなんと、コントリビュート作業開始w

基調講演で「単語のスペルミスとかあえて残してるので今がコントリビュートするチャンスです」と言ってたので、
残りのセッションを聞きながらスペルミスを探す作業を開始www

Atomでスペルチェックするも、なかなか見つからない。
あれぇ・・スペルミスないじゃん?と思っていた矢先、見つけましたw
その場でFork -> 修正 -> プルリクという流れw

実際のプルリクはこちら↓
github.com

レポート②

vulsrepoの最新アップデートについて

qiita.com
登壇者の方、Future社員になった様子。Vuls転職w
NVD, JVNタブを廃止して一画面に集約したのでスコアの差が分かりやすくなったらしい。

vulsの運用tips紹介と機能要望

www.slideshare.net
400台あるサーバをVulsでスキャンとか、つまりVulsいけてるってことですね!

大規模環境でのVuls運用(仮)

www.slideshare.net
3000台・・つまりVulsいけてr(略

Vulsで検知した脆弱性への対処について

Vuls経由ではなくて、CVEディクショナリー自体を活用することに主眼を置けば見方が変わる的な。

LT

サーバレスVulsアーキテクチャ再び

サーバレスVulsアーキテクチャ再び / serverless-vuls-again - Speaker Deck
CloudFormationテンプレートが公開!素晴らしい!

弊社の既存システムをVulsで診断してみた ~診断しかできないVuls環境の作り方~

すません、あまり覚えていないので割愛

Vulsだけで完結しない、WEBサイト脆弱性対策について

www.slideshare.net
Vulsに適用できる・できない範囲を再確認してVuls使うといいよ的な話。

脆弱性検知後のパッチ適用運用が捗るサービスを作ってみた話

Vuls Cloudの紹介だったと思います。UIがクール!

所感

今回は前日になって急ぎで参加を決めたわけですが、
理由はもちろん社内でVuls使えないかなー?と思ったので
最近のVuls動向を掴むためです。

シースーとザーピー食べて、ルービー飲みながら
Vulsバリバリ活用している人たちの話を聞く至福の一時だった。

f:id:yasay:20171023170829j:plain
※1,000円の参加料を払ってます。
スポンサー企業様に感謝!

f:id:yasay:20171023134148p:plain
↑Contributeもしたよ!

OSSにContributeするきっかけって大事だと思う

Readme.mdを読むことでOSSプロダクトの知識を増やすことになるわけだし、
ドキュメントの整備はソースコードへのContributeを目指すための第1歩だと思っている。

ドキュメント周りで人が足りないって話はOSSではよく聞く話だし、
これからも何らかのContributeをしていきたいと思っています。

以上です!

「ファーストリテイリング × クラスメソッド勉強会」に行ってきたよ!レポート

マイクロサービスとAIについての勉強会ということで、
わくわくしながら行ってきました。場所はSAPオフィスです。
dev.classmethod.jp

ユニクロなど大手衣料品店を経営するファーストリテイリング様と、
クラスメソッド様の合同勉強会です。
採用活動も目的としてあるようでしたが、私はエントリーする予定ありません(笑)
マイクロサービスの苦労話が本当に参考になる勉強会でした。
また、パネルディスカッションは私の価値観を大きく変える可能性のあるものでした。

まずは、レポートしていきます!

レポート

FRが取り組むmicroservicesとアーキテクチャ変革

  • FRの取り組み
    • 技術力の長期的な確保と選定
    • 日本から世界に向けてチャレンジを
    • グローバルチームの構築
  • IT内製の実態
    • AWS4000台、マルチリージョン利用
    • AzureやGCPも使っている。
    • CDNにはAkamai
    • JavascriptJavaがメインになる。
  • マルチブランド・マルチリージョン
    • 店舗・EC含めてビジネスが十分に複雑
    • 変化のスピードが非常に早い→通常の会社より5倍くらいのスピードがある会社。
  • Queueにkafkaを利用してたりする。
  • Microservice 良い点
    • 技術負債は返しやすいので技術選定の心理的負担が比較的低い
    • 障害の局所化。全死のリスクが低い
    • 開発が平行でできやすい
    • クラウドで力技回避が比較的しやすい
    • 責任分界がわかりやすい
    • FR様のような複雑な環境下では、逆に他の方法ではうまくいかない。
  • Microservice 課題
    • 技術的に統制効きにくい
    • 運用は自動化込みじゃないと難易度があがる
    • 各サービスでのプロダクトマネージメントの観点が必要
    • 各サービスでオーナーをしっかりたてていく必要がある
  • プリミティブなビルディングブロック探しが大事(最初のキーとなるコンポーネントがあるから、上のサービスができる)
  • ビジネスバリューを出すための最小粒度が大切(ビジネスドメインとWillが重要)
  • 大事なのはビジネスを支える最小単位のコンポーネントは何かを考える必要がある
  • Microservices for data
    • 実績データ
    • 計画領域
    • IoT
    • 各種マイクロサービス
    • イメージ管理
    • アナリティクスなど
  • →データプラットフォームに格納して、あとからどうやって活用するかを考える。
    • データの長期の保存と、データの利活用を分ける。すごいなー。
  • Microserviceを支えるDevOps
    • インフラの自動化+デプロイの自動化が基本。
    • 課題は標準化・大きな粒度での自動化などがまだ
    • ツールだけから、組織で広域な自動あの取り組みへ
  • 自動化していくにあたり、問題にぶちあたる
    • 大量の技術負債
    • 組織的な問題や仕事の分量そのものの見直し
    • プロセスの見直しや役割がおかしい部分が明らかに
    • 全員がちょっとづつコンフォートゾーンから出る必要性
  • 自動化そのものよりも、その過程でのプロセスや組織体制・チームの分担などの変化が大事に思える。
    • ツール選びで何か変わったわけではない。
    • 呼び水となったのは運用不可を劇的に下げたいなど
  • ビジネスのバリューストリームへの貢献度は低い
    • 今品質が大事なのか、タイムラインが大事なのか、
    • それに応じて自動化の仕組みが変わってくる。
  • みんなで取り組まないと定着しない・・。
    • ツールだけで達成できるものじゃない。
  • これからのアーキテクチャを考える。
    • 基本的にはone way(大きなものを適切な粒度に分界)で、これは避けられない
    • SoR的なことだけが求められているわけでもなく、顧客同行により常に変化していく必要がある
  • KISS
  • YAGNI
  • 関心事の分離
  • リスコフの置換
  • Microservice.ioを見れば、どのようなデザインパターンや黄金律があるのか、大体まとまっている。
    • すごいな。microservices.io/patterns/index.html
  • まとめ
    • Microserviceは総合力。技術だけでなくて、チーム編成からDevOpsまで含めてやらないと効果はでない
    • 足回りのDevOpsは当たり前に強化する必要がある
    • チーム編成も大事。色々なタイプの人が必要。
    • 全体の相互理解・底上げ、普通の話だが大事
    • 世の中の複雑さをいかにシンプルに解決するか
    • ビジネスを成立させるための最小粒度のコンポーネントが大事

Amazon Alexa の衝撃と新たなエコシステム

  • Alexaを使った音声インターフェースの事業部について
    • クラスメソッドってデカイんだなー・・。
    • 700社から1000社と取引
    • 世界にまたがるオフィス
    • セルフマネジメントとアウトプットを重視する会社
    • 子供が生まれたら半強制的に休ませる
  • Alexa事業部について
    • 設立の経緯は、一言でいうと面白そうだから。
    • iPhoneが出てきた頃の黎明期に似ている!?
    • 新しいUIが出てくる頃には世の中は激変する傾向にある?
  • 世代別の利用サービスから見る音声の需要
    • シニア層は音声インターフェースを必要とするはず
    • 国による違いはなくなってきているけど、世代間のギャップのほうが大きい
  • 働く人が必要なのに減る。
    • 人が少なくなっていくなかで、付加価値の高い業務に注力して、付加価値の低い業務は自動化などを推し進めていく必要がある
  • 裏側のシステムが重要(カスタムスキルはOAuthを利用する必要ある的な)
  • カスタムスキルの例
    • スタバ - 直近10店舗で注文したドリンクの再注文やスタバカードの残額確認
  • クラスメソッドのカスタムスキル、20個くらいある。
  • 帳票の仕組み+音声サービスでユーザーエクスペリエンスを目指す→それがEcho Show
  • dash wand→バーコードリーダーがついていて、Amazonで注文できる。さらに音声操作できる。
  • VUIによる個人ではなく企業への問題解決のために、事業部署を設立的な。
  • まとめ
    • 音声はすべての人々にリーチする
    • その技術を使って、事業の価値を高める。

所感

たまに、このような魅力的な勉強会があるから、勉強会は本当に行くべきだと思う。
今回は、自分自身のITの価値観が変わる出来事だったかもしれない。

それはパネルディスカッションで起きました。

レガシーになることを意識する

私はここ最近、様々な技術知識の吸収を行ってきましたが、
これらの技術も最終的にレガシーになりえるわけなんですよね。
つまり、技術を追い求める上で、その知識はどれもレガシーになりえることを覚悟しておかなければならないわけですね。
これはAWSも同じことなんだと思います。。私はAWSの認定資格を取得しましたが、
この認定資格すら、レガシーになりえるわけですね。

そして、AWSは100以上のサービスがあるわけですが、
実際に主流として使われているサービスが100以上あるわけではないということも、
理解しなければいけませんでした。
AWSなどのパブリックIaasは非常に魅力的ですが、その全てのサービスが
ITベンダーに受け入れられているわけではない、ということなんだと思います。

主催会社様の意外な印象

個人的に意外な印象を受けたのが主催会社様の運用保守メンバーが
全社員の3分の1近くを占めていることでした。
私は今まで散々運用保守はやってきたので、
最近はもっと違うことをやってみたいと考えています。
しかし、お客様と取引する関係上、
やはり簡単に今の案件を抜けることは難しいのでしょう。
システム屋、とくにサーバ屋は運用保守とは切っても切れない関係にあるのでしょうね。

「分からない」ということを正確に伝えることのリスク

それと、自分が今持っている引き出し知識以上のことが分かっていないことを
ちゃんと伝えられることは重要という話がありましたが、これってリスクもあると思っています。

私は上記のことを実践しています。なぜなら、嘘をつくよりはわからないと伝えたほうがいいから。
でもこれが、たまに舐められることがあるんですよ。見下されるんです。
個人のバックグランドや得意技術はそれぞれ異なるはずなので、一緒に知識を補って補完してくれる
メンバーと一緒に仕事したいですよね。と、心底思います。

ITエンジニアの出せるパフォーマンス

ITエンジニアが一人で出せるパフォーマンスの現実を、
私はもっと理解しなければいけないと思います。

一人のスーパーエンジニアが10のパフォーマンスを出せるとして、
他のエンジニアが5しかパフォーマンスが出せないとしても二人いることで
スーパーエンジニアのパフォーマンスに届く可能性があります。
そういったエンジニアの集まりでチームを形成し、一人では長時間かかる案件を
短時間で作り上げていく。
私たちは一人では出来ない事をチームで実現することが多いのです。

チームで仕事をするとなると、どうしても技術レベルの低い人に合わせることがあるし、
全員にスーパーエンジニア並みのパフォーマンスを求めるのは不可能です。

技術勉強会では登壇者が主役となり、アウトプットを見せることがありますが、
もしそれがチームで行った成果なら、そのアウトプットの背後には
チームメンバーが出した成果も含まれていることもありえると思います。

一人で仕事をしたいなら、フリーランスになって
自分自身のやりたい仕事をマネジメントしてみたほうがいいかもしれない。

会社が個人のアウトプットを重視するのか、チームのよる成果を重視するのかによりますが、
どちらにしても本当に自分自身が居心地のいい職場が存在するかというと、
どうなんだろうと思ってしまいます。

参加した皆さん、お疲れ様でした!
以上、かなり長文になりましたが、レポート終わります!

JQuery Sortableで子要素が完全になくなった場合でも再設定させる小技

備忘録的なエントリーになります。

本エントリーは下記バージョンで動作確認しています。

JQuery 1.9.1
JQuery UI 1.9.2

JQuery Sortableって面白いですよね。
jqueryui.com
以前担当していた案件で、連携先のシステムが使用していたんですが、
座標のことを気にしないでドラッグアンドドロップで移動できるところが
気軽に使える感じでいいと思いました。

そんなJQuery Sortableなんですが、
実は要素を全て移動してしまうと、元に戻せないという
ケースがありました。

例えば、こちらのページで要素を全て移動してしまうと、
元に戻せません。
jqueryui.com

ですので、要素が全部なくなってしまった時に、
移動できない固定の要素を挿入するようコーディングしてみました。
こうすることで、要素を元の場所に戻すことができます。

JSFiddleはこちら↓
jsfiddle.net

JQuery Sortableは活用する機会があれば、
ガンガン使っていきたいですね!

以上です。