おふとんの中から

その辺に転がってるエンジニアの備忘録

SOFTSKILLSを読みました

ゆいなです。

先日「SOFTSKILLS」を読了したので久々の読書感想でも。

どんな本?

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

何かの技術書ではなく、ライフハック本というのが正しいかと。
技術の学習法なども書いてありますがまさかの恋愛のことまで書いてあるとは…。

そもそもこの本を手に取ったのは、
私自身が大分迷走していて今後が全く見えず、どうしていくのがいいんだろうかという悩みが。
少しでもこの悩みを解決する足掛かりとなればと思ったのが理由だったりします。

読んでみてどうだった?

今まで迷走しながら色々動いてきたけれど、動き方がマズかった部分が見えて大分反省することとなりました。

何かを勉強しようと思ってちょっと触ってみるけれど、分からない所が出てくるとすぐに挫折してしまうことが多々…
でも挫折で止まってちゃいけないなと思いました。 そりゃ、初めてやるんだもの。引っかかってなんぼでしょ。
むしろ引っかかったことを解決することが学ぶ一歩じゃないかなと思うようになりました。
自分が引っかかったところで誰かも引っかかるかもしれない。
ならそういう人のために、そしてここで引っかかったってことを自分で残しておくためにもブログに書いておく。Qiitaに書いて残しておくってことをしていくのは様々な方面でも得をすると思います。

そして、この本で自分に足りない大きな内容がありました。
それは、

セルフブランディング

そりゃ色々学んでなんでもできるよってのもジェネラリストとしてブランディングするならアリかもしれないですが、そのせいでやりたくないことをずっと続けるのは嫌。
ジェネラリストとして進んでいくにしても、やはり一つ専門分野を持っておきたい。
一つの技術や言語だけでも深く知って、この技術を使う仕事がしたい。でもこんなことも知ってるよって言えるなら、それはそれで価値を上げることになるんじゃないかなと思っています。

こうやって考えてはいますが、私自身はこれ!っていう自信を持って出せる物が現時点で何もない。
専門学校の時からこの業界に入っていても、何もできてない。
単に平凡なその辺のプログラマになってしまった。
今、会社の首切られたら、資格はあるけどなんにもできない人になってしまって今以上の劣悪環境でしか働けないんじゃないかと思っている。

なら、今関心を持ってやれることは何か?

DB、クラウド系。

元々興味はあって学生時代に勉強していたこと。
でも前までは今の仕事が重要だからと放置していたこと。

プログラミングも深く知りたい言語がある。

C#Ruby

Ruby自体は今まで触ったこともないけれど、自分と同い年だと知った瞬間なんかやってみたいと思った。
C#は3ヶ月だけ関わった業務アプリケーションで使っていた。今まで使っていたC以上に色々できて感動した経験がある。

こういうちょっとした興味から、ちょっと深く勉強してみようってするだけでもアリかなとふと思ってみたり。

じゃあこれからどうしていく?

DB、クラウド系の技術について、触っていこうと思います。
クラウド系といえば、先日参加したCogbot勉強会はAzureを使っているし、まずはAzureを触ってみようと思っています。
それにBotServiceはめっちゃC#だなと。
あ、DBもあるやん…。

なんかAzureを触れば学んでいきたいこと学べる気がしてきた←

CogBot勉強会に参加してきた #cogbot #cogbot758

ゆいなです。

3月10日(土)にCogBot勉強会に参加してきました。
名古屋での開催は初とのことで、ちょっと興味あるから行ってみようレベルで行った感じ。

内容のまとめとかを書いていこうと思います。

イベントのconpassはこちら

勉強会の内容

Cognitive Services 概要説明

人工知能(AI)ができること

人工知能とは

  • 人間の知能そのものをコンピューター上で実現したもの
  • 人間が知能を使って行うことをコンピューターで実行するもの

AI = BigData + MachineLearning
1.予測モデルの構築
2.予測モデルによる推定

AIでできること

  • 分類
  • 回帰
  • 異常検出
  • データ構造
  • 強化学習

人間の考え方をプロセスの組み合わせで実現する。

画像分析に必要な技術

  • 画像領域をオブジェクトとして認識
  • 認識されたオブジェクトを識別

MicrosoftのAIは画像認識が一番強い。

CognitiveServices更新状況

EmotionはFaceAPIに統合。顔認識登録が100万人までできるようになった。

基本的な使い方:AIに判断させる情報をAPIで送り、JSONで返す

Bot Framework 概要説明

Botとは/Bot Serviceとは

Botとは

入力を受け取って自動で処理するサービス

BotServiceとは

Botアプリを構築管理できるAzureのサービス
Azure上から2種類のアーキテクチャのどちらかを選択して使用。

  • Web App Bot → WebAppsで構築
  • Function Bot → サーバーレスアーキテクチャ(Azure Functionを使う場合とかに)
Bot Serviceのテンプレート
  • Basic
  • Form
  • Language Understanding
  • Question and Answer
  • Practive

BotServiceを気軽に作る方法としてBotBuilder SDK for .NETを提供している。(VisualStudioで使おうとすると現在Winのみ)

ソースの構成
  • Controller(リクエストの受信)
    • 識別→Dialogに渡す
  • Dialog(メッセージの処理)
    • ダイアログを作るたび、StartAsyncを呼ぶ必要あり。(初めて対話する時に使う)
      StartAsync(メッセージ開始)

      MassageReceivedAsync(メッセージ待受け)

      AfterAnswerAsync(メッセージ終了)

      MassageReceivedAsync(メッセージ待受け)
      の流れを繰り返す

BotServicesのデバッグをするためには

Bot Framework Emulator(デバッグエミュレータ)を使用する。
インストーラーなどなどはGitHubに置いてある。GitHub - Bot Framework Emulator

LT

CognitiveService使って作ってみた系のLT

ハンズオン

今回はブラウザ上でBotの作成を実施。
Botのソース構成の理解を中心に進めていました。

ショートセッション

機械学習・深層学習とは

機械学習(ML)とは

  • 解きたいタスク(T)
  • 解いたときの性能(P)を評価
  • 解くために経験(E)を積む(学習する)
    → 同じタスク(T)の処理を、経験(E)によって性能(P)を高めること。

機械学習には色々な理論を基に作られている。

深層学習(DL)とは

機械学習の一つの手法。人間の脳に似せたアルゴリズムを採用している。

パーセプトロン → 多層ニューラルネットワーク

Rectifired Liner Unit

人工知能機械学習→深層学習

CognitiveServicesをハッカソンで使ってみた

ハッカソンにて優秀賞を獲得したIoT歯ブラシの技術概要

HACK-CHU! - 「“あったらいいな”を現実に アイデアを競うコンテスト」名古屋・中村区

感想

AI関係はすこし概要を知っている程度でどうやって実現するかをあまり知らなかったので、その部分について少し知見を深められたんじゃないかと思っています。

主に今回はBot方面が興味があったこともあり、Botに関してはもっと色々試してみたいなと思っていたり。
(つい最近個人Slack用にBot作ったのですがそれは次の機会に…)

次回も是非参加していこうと思います。
主にBotの人になれるように頑張ります

rails tutorial通りにherokuにデプロイしようとしてハマった話

ゆいなです。

rails tutorialを進めようとしてハマったところをちょいとブログにしようかと。

で、どこでハマったん?

1章最後のherokuデプロイでハマりました。
理由は単純だったんですけど…

現象としては、rails tutorialの通りに以下のコマンドを入れていくと…

$ heroku create
$ git push heroku master ←ここでコケる

単純にGitからherokuにpushするところ。
$ heroku createしたんだからなんでコケるんや…と。
rails serverで動かした時は問題なく動いていたので特に…

heroku側にはビルドパックが認識できませんとか出るし…
どうなっとんや!と何回か試しましたがやっぱりダメ。
最終的に基本的なところが抜けていたことに気づきました。

何したら解決したん?

そりゃそうだろ…っていう基本中の基本でした。

$ git push heroku masterした時に、リモートリポジトリが認識できていないエラーを吐いていました。
なので、以下のコマンドを叩いてGit側にリモートリポジトリを設定。

$ git remote add origin <herokuリポジトリのURL>

これで、Git側がリモートリポジトリと認識してくれるようになり、無事デプロイ成功。

結論

herokuデプロイする時はリモートリポジトリ設定忘れんなよ!

$ heroku create
$ git remote add origin <herokuリポジトリのURL> ←これ忘れるなよ!
$ git push heroku master

多分rails tutorialそのまま見て進めている人は確実にハマるかと思います。
その際に助けになればと。

勇気出してQiitaに投稿してみたら案外なんとかなった

ゆいなです。

初めてQiitaへの投稿してみました。
なんだか敷居高いなと思っていたのですが、やってみたら大したことがなかったのでちょっとブログネタに。

なんで今まで投稿してなかったん?

一番の理由はマサカリ飛んできたら怖いってこと。
知ったかで書いて、叩きのめされたら流石に凹むので…

ちょっとした内容ならブログに書けばいいかなと思っているのも理由の一つだったり。

で、何を書いたの?

会社のSVNを一人だけ脱出してGitを使う

ということで、つい最近惚れ込んでしまったGitネタです。
git-svnでローカルでGitを使うだけ。

ググって出てきた内容だけでできなかった部分も結構あるので、
めんどくさい環境のgit-svn環境構築まとめ(但し未解決部分有)となっています。

解決しないといけない部分もまだあるので、解決したら更新すると思います。

実際に書いてみたらどう?

まだ途中とはいえ、ちゃんと技術ネタのアウトプットをしたのは初めて。

仕事でも普段でもよくQiitaを見ていますが、ちゃんと書いてある記事は結構参考になることも多いので、
出来る限り分かりやすく書こうと意識してアウトプットできたんじゃないかなと思ってます。

ブログにはざっくばらんにやったことや勉強会の感想を書いていき、誰かに役に立ちそうな技術ネタはQiitaに書くっていう使い分けをしていこうかと考えてます。

まとめ

  • やったことない人はQiitaにとりあえず技術ネタ投稿してみよう!
  • 敷居高いと思っててもMarkdown書ければ割りとどうにかなる!

Gitを触ってみた

ゆいなです。
これまでGitHubを登録しておきながら
使い方が全然分からず全く使ってこなかったので…

GitHubを使うためにGitに入門しました(

どうしてこうなったし

とりあえず経緯を…

以前のブログにSVNの使い方を習得すると書きましたが、
既に仕事で普通に使えており、かつ色々問題ある状況。 そもそもリポジトリにTrunkしかないし、そのおかげでTrunkのソフトが動かないことも…
なんで開発用にブランチ切らないんだろ…とかぶつくさ言ってます。

小言はさておき、SVNは皆さんお馴染みながら集中型バージョン管理。
集中型と対比される分散型バージョン管理として一番最初に浮かんだのがGit。

それに周りが「Gitはいいゾ〜」と推してる…

もうGitを使ってみて、どれだけ便利かを体感してみるしかないじゃない(

とりあえず本でも読んでみる

そういえば今月本買ってないなーと思って、これ買いました。

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

この本を知ったのはしがないラジオで作者の湊川あいさんの回を聞いたからだったり。
一通りの流れ自体はこれで掴めました。
漫画ベースなのでさくさく読めるし、入門にはとても良いなと思ってます。 この本の中ではSouceTreeをGitを操作するツールとして使用していますが、
SVNでToitorseSVN使っていたので、SouceTree自体はそんなに苦戦せずに触れてます。
コマンドでやらないのは甘えって言われそうだけど気にしない(

Gitを触ってみて

Gitのコマンドは使っていないので、触ってみた感想を。
これまでSVNしか触っていないので、基本SVNとの比較ベースになりますが…

個人的にGitはSVNが拡張されたバージョン管理ツールだなと感じてます。
SVNのサーバーに置いてあるリポジトリとローカルの間にもう一つリポジトリが入ってる感じ。
ローカルにリポジトリがあることで、サーバーに置いてあるリポジトリを気にせず、戻したくなりそうなタイミングでガンガンコミットできる。
全部が出来上がったタイミングでローカルリポジトリの内容をサーバー上にコミット(Git的に言えばプッシュ)できるので、他の人に影響を与えずに開発が進められる。
ブランチを切って開発してもSVNよりマージが容易。

それでも、ローカルでブランチ切る利点とかは試しに使っている分にはあまり利点を感じなかった…。
実際に何かアプリケーションでも作ってみて、ソースファイル管理して触ってみれば利点を感じるのかもしれないけれど、

個人的には会社のプロジェクトを今すぐにでもGitに変えてほしいところですが、まあできないでしょうな…
GUIツールでかつ基本操作メインで触れば、そんなに違和感なく使えるような気がするのに。

で、GitHubはどうなったの

Gitのお勉強用に公開リモートリポジトリ作ってコミットしたりしてただけで、
あんまりGitHub自体を活用してません。
一人プルリクすら試しにやってませんごめんなさい(

最後に

Gitはいいゾ〜