おふとんの中から

その辺に転がってる底辺PGの備忘録

CodeRetreatに行ってきた #coderetreat #geekbar

ゆいなです。

GW前まで仕事が忙しくブログを書く余裕が全然なかった上、GWは祖母の帰省の運転手で時間の余裕が全然なかったのでご無沙汰してしまいました。

今回は5/12に行われたCodeRetreatに行ってきました。
CodeRetreat @ 名古屋ギークバー

CodeRetreatってなんぞや?

簡単に言えばひたすらコードを書くイベント。
詳細はCoderetreat ~プログラミングのスキル向上に効果的な教育プログラム~を見たほうがわかりやすい。

参加してみてどうだった?

参加してまず感じたのは、私って全然コード書けないじゃん…って奴。
コード書くのは好きだけれど思い立ってすぐ書けるかと言われたら違ったという。

あとはテンパってしまったなってのはあります。
正直ペアプロをしたのは初めてで、なにをしたらいいのかよく分からないし、とりあえずコードかけばいいのか内容を理解する所からスタートするのか、どんなモジュールを作るか決めるのか、人によって様々。

とりあえず各セッションを簡単に振り返ってみます。

1セッション目

使用言語:C#

どういう動きをするのかを理解することに重点を置きました。

動きは理解できたので、実装にだいぶ課題がありそうという感じ。

2セッション目

使用言語:C#

画面を作る途中で終了。全然実装できませんでした。

基本すら怪しいなとだいぶきつい感じが出ていた頃。

3セッション目

使用言語:C# + NUnit

テストコードすらまともに書いたことがなかったので、ここではテストコードの書き方を理解する感じで進めました。
NUnitで環境作ってテストを動かすところまで。

テストコードの書き方はわかっても実際にどうやってやっていけばいいかがいまいちよく分からない感じに。

4セッション目

使用言語:C# + NUnit

画面は作らず、ロジックをTDDで作っていく感じで進めていきました。完成には至らず・・・。

ここでやっとTDDがちょっと分かった気がする。

5セッション目

使用言語:Ruby + RSpec

こちらも画面は作らず、ロジックをTDDで作っていく感じで進めていきました。こちらでも完成に至らず。
RSpecの名前は知ってましたけど、実際に使うのは初めてで書き方をペアプロで教わった感じ。

Rubyのテストフレームワークといえば、minitestは触ったことあるくらい。 RailsTutorialで触っていたが簡単なテスト以外は書ける状態じゃなかった・・・。 RSpecが書き方が独特で1テスト書くだけで結構時間使っちゃいました。

6セッション目

1〜5セッション目で大分心折れたので、モブプロに混ざりました。

言語はjavaでしたが、TDDについては何をしていくのか大体わかってきました。

今回の収穫は?

自分がコードを全然かけなかったことと、テストコードをまともに書かずにやってきたことがここまで響くとは・・・って感じです。

これまでテストコードを書くような開発をほぼしてこなかったことはありますが、個人ですらほぼかけていなかったことにだいぶ反省。

このイベントの後に一人で時間をかけて作りきったのは反省から学んだ一つかなとも思います。
だってできないの悔しいじゃない?

自分が全然できないことを痛感して、どんどんコード書いていかなきゃって思いました。

slackbotをちょこちょこ作ってるなう←

ゆいなです。
最近Qiitaに書いているSlackBotの話をちょっと書こうかなと思います。

なんのSlackBotだよ

電車の運行情報を通知してくるSlackBotです。
特定の時間に通知と、スラッシュコマンドで即時通知を行ってくれるようにしています。

大体の内容はQiitaに書いてあります。

SlackBotで電車の運行情報を通知してもらう
SlackBotで電車の運行情報をスラッシュコマンドで通知してもらう

ブログで書くのはこのQiitaの投稿の間のお話。

で、何があったん?

最初の記事のときに課題がいくつか有りました・・・

  • 即時知りたいときに何かしらのアクションを受け取るようにする必要がある。
  • 路線を指定して通知できるようにする。
  • トークンがベタ書き ← 緊急

そうなんです。トークンベタ書きだったんです。
あかんやつ・・・

ということでこれをとりあえず対策することにした訳です。

どうしたん?

初心者がGASでSlack Botをつくってみた - CAMPHOR- Tech Blog
こちらを参考にしました。

ソースはプロパティからトークンを取得するように修正。

var slackAccessToken = PropertiesService.getScriptProperties().getProperty('SlackAccessToken');

function doPost(e) {
  〜
}

これでトークンが直接表に出てこないので、そのままのソースでGitHubに上げられるようになりました。

次は何を改修するん?

次の改修は路線を指定して通知できるように修正する予定でいます。 但し気が向いたときにちょろっと改修するレベルなので、多分また1ヶ月後になるんじゃないかな・・・

カイゼン・ジャーニーを読みました

ゆいなです。

カイゼンジャーニーを読み終わったので、毎度恒例読書感想を書いてみようかと思います。

だからどんな本だよ

業務改善の手法、アジャイルをベースとしたチームマネジメントをストーリー形式で解説していく本。

手に取った理由は単にTwitterで話題になってたからって理由ですw

読んでみてどうだった?

まず最初の部分で今の自分と全く同じ状態でした。
今の勤務先に先がないのを感じて外部で色々と動いてる状態。

外部の勉強会に行くことには何も問題ない。むしろ外から刺激を貰うことは大事なこと。

現職が派遣契約のエンジニアなので自分から変えることはできないのもあります。
与えられた作業を行うだけ。それ以上の動きを咎められる状態です。
今の案件が前職の関連の案件だから特になんですが…。

それでも問題意識はあるし、こうしたらもっとよくなるんじゃないかっていう考えもある。

一人からすることで周りがどうでも自分が変われるなら。
まずは一人から始めていくべきと思いタスクの可視化等を実践しています。
作業見積もりもあまり上手いわけではないし。

私一人だけでも課題・問題は多い状態。
まずは自分の課題・問題を解消していかなければいけないなと思いました。

さて本の中に戻りまして、2章以降は自分の会社に当てはまるような物ではないアジャイルの話。
一つの体験だと思って読むことができました。
こんなこともあるんだっていう知見になったような感じです。

それでもアジャイルな開発に憧れてしまいますね。
短いスプリントで一つの物を作り上げる。大変なことですが、その分自分も成長できると確信しています。

これからどうしてく?

  • タスクの可視化
  • 見積もり方法の学習

この2つについてはエンジニア以外でも必要な内容。セルフマネジメントです。

まずはセルフマネジメントから。そして外へ。
これができるなら一番いい道に進めるかな思っています。

とりあえずやってみるの精神でやってみて自分なりのやり方にしていければ。

インフラ勉強会に登壇してちょっとDBの話をしてみた #インフラ勉強会

ゆいなです。

先日、インフラ勉強会にてDBについてお話させて頂きましたので、纏めておこうと思います。

そもそもインフラ勉強会とはなんぞや?

Discord上で行っているインフラ系の勉強会。
インフラとは言っているが、インフラエンジニアのためならある程度何でもアリな所もあるかも。 ほぼほぼ毎日何かしらの勉強会をやってます。

インフラ勉強会ポータル

どんな話したん?

「今から始めるOracleDatabase」というタイトルで、OracleDatabaseをベースにRDBについてお話しました。

勉強会議事録(インフラ勉強会Wiki)

どうだった?

今回初めて技術的なことを話させてもらいました。
主に初心者向けとして話をしたこともあり、一部至らない点もありましたが、
お話したいことは伝えられたかなと思っています。

やっぱり発表するのは難しいですね。 今回Discord上でオンラインの声だけだからこそ話しやすいところもありました。 対面でってなると今回のような話しやすさは減るのかな・・・。

勉強会等でLTはまだしたことがないため、実際にやってみたらちゃんとできるのかなって不安がちょっと・・・。

今後はどうしたい?

勉強会などで対面でのLTを次はやってみたいと思っています。 何で話すかってのもなかなか難しい部分はありますが。

正直LT駆動開発(勉強)もありかもとかww

ひとつひとつできることからやっていければと思います。

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そのまま見て進めている人は確実にハマるかと思います。
その際に助けになればと。