manabiya.techに来ています

久しぶりに勉強会的なものに来ています。

https://manabiya.tech/

これきっかけでteratail始めて、ぼちぼち楽しんでやっています。

ネタ的に、いかにパーソナルブランディングしてくかみたいな内容のものばかり選んでいます。

一コマ目

DEC→Microsoft→Googleと渡り歩いた方の、いかに技術トレンドをフォローしていくか、的な話。知識はそれだけでは役に立たず、学習と実践、経験することを積み重ねて技能にしていくのだ。
T型人間になろう。浅く広く+専門性。二個目、三個目の軸は、なるべくカブらないものを選ぼう。差別化に繋がる。動機づけは外発的・内発的両面からあるといい。最後は学びたいものを仕事にしてしまうのが良い。

二コマ目

自分経営戦略の話。経営戦略とは、限られたリソースをいかに配分するかを決断するもの。個人にとってのリソース=時間。リソースを使って何を得るかは、自分で決めるのだ。知識の取得手段は三通り。教えられること、自ら得ること、情報交換によること。情報交換は、双方向であるし、負荷分散にもなる。なるべく相手と違うことを知ってるのが良い。小さな非公式グループを作って、発表することフリーライダーの排除。貢献ベース。

三コマ目

技術顧問になるには、のクロスセッション。あんまり面白くなかった。

四コマ目

休憩。これを書いてる。

五コマ目

立ち見。OOPとFP。どっちもパラダイム、考え方の問題で、発表ではC言語での実装を見せていた。
C言語でOOPは仕事でもやってたけど、FPもやれるんだよねー。言われてみれば納得。
Haskellで挫折した身としては、目から鱗でした。

六コマ目

IT企業の採用をもっとよくして行こう的な話。
LINEの採用活動の事例とか。

七コマ目

LT。
3人登壇したうちの2番目、若いお姉ちゃんが炎上しそうな内容喋ってて、あとのおっさん二人の内容さっぱり入んなかった。タイプ別おすすめ言語。JavaScript、PHP、Java。ヤベェ。ヤベェしか出てこねぇ。

総括

技術寄りな話だけでなく、エンジニアとしての人生設計どうすんの?的な話が聞けたのがよかったかな。

Googleカレンダーの予定をSlackにリマインドしてみた

Gooble Apps Scriptが便利そうだなーと思いまして、いろいろ調べていましたところ、
Googleカレンダーの予定をメールでリマインドする方と、
GASを使ってSlackのBotを立てている方がいらっしゃいました。

いいとこどりしてみました。

Googleドライブにスクリプトを作成する

まずはGoogleドライブにアクセスしまして、「新規」→「その他」→「Gooble Apps Script」を選択します。

gas.png

上記のようなテンプレートが現れます。

SlackAppライブラリをインポートする

メニューの「リソース」→「ライブラリ…」を選択します。ダイアログの「ライブラリを追加」のボックスに「M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO」を入力、追加ボタンを押します。この辺の詳細はご本家の方の記事参照

スクリプトプロパティの登録

先に、他人様に見せたくないアクセストークンなどの情報を、スクリプトのプロパティに登録します。(こういうことができるんだ、とビックリ仰天しました!)

メニューの「ファイル」「プロジェクトのプロパティ」「スクリプトのプロパティ」タブを選択します。「行を追加」で、キーと値のペアを追加していきます。

SLACK_POST_ID => SlackのメンバーID(”@XXXXXXXX” といった形式)
GCAL_WATCH_ID => リマインドしたいGoogleカレンダーのID(だいたいメールアドレスの形式)
SLACK_ACCESS_TOKEN => Slackの投稿用アクセストークン(xoxp-XXXXXXXXXXXXXXXXXXXXXXXXXXX…とながーいやつ)

GASを書く

さあ、準備はできました。ガッと以下を書き上げます。

function postCalendarNotify() {
var calID = PropertiesService.getScriptProperties().getProperty('GCAL_WATCH_ID');
var cal = CalendarApp.getCalendarById(calID);
var dt = new Date();
dt.setDate(dt.getDate());
var events = cal.getEventsForDay(dt);
var slack = SlackApp.create(PropertiesService.getScriptProperties().getProperty('SLACK_ACCESS_TOKEN'));
var listMsg = [
"本日の予定",
"----------"
]
for(var i = 0; i < events.length; i++)
{
var msg = events[i].getStartTime() + "~ " + events[i].getTitle();
listMsg.push(msg);
}
if(events.length == 0)
{
listMsg.push("ありません");
}
var channelID = PropertiesService.getScriptProperties().getProperty('SLACK_POST_ID');
var text = listMsg.join("\n");
var option = {as_user: "true"};
slack.postMessage(channelID, text, option);
}

定時実行の設定

メニューの「編集」「現在のプロジェクトのトリガー」を選択します。「新しいトリガーを追加」で追加します。一日一回動かしたいので、時間主導型、日タイマー、午前3時~4時、を選択しました。この辺はお好きに設定してください。

あとは待つだけ

夜な夜な、当日の予定がSlackに届きます。

直近、今後の方針をどうするか

およそ一日一時間程度の作業時間、今後なにをやって行こうか、悩んでいます。

ざっくり必要に迫られていることを列挙。

  • Unityの勉強
    • 今後の仕事で必要になってきそうなんだけど、あんまり食指が伸びない
  • スキルシートのブラッシュアップ
  • 機械学習・Deep Learningの勉強
    • 畳み込みの意味とかまださっぱりわからず使っている状態なので、それを解消したいところ
  • ウェブ系技術の勉強
    • とくに、ReactとかVueとかHyperappとか
    • で、なんか作りたい。蔵書管理システムとかかな

とりあえず今日は考えて終了。

本日の進捗

ここのところ、嫁に断り入れて、一時間ほど一人で作業に没頭する時間をいただいている。

今日やったこと。

  • サイトにfavicon入れる
    • 完了
  • Google Analytics申し込む
    • 完了

favicon

以下のサイトを参考にした。

http://glatchdesign.com/blog/web/coding/943

<link rel=”SHORTCUT ICON” href=”/favicon.ico”>
<link rel=”icon” type=”image/x-icon” href=”http://www.kazto.net/favicon.ico”>

一行目はIE用、二行目がChrome用。

Chrome用は、例ではサイトのトップからのパスで行けてるようだが、URLをフルで書かないと有効にならなかった。

Google Analytics

https://www.google.com/intl/ja/analytics/

から申し込んで、必要事項適宜記入するだけ。簡単だったからスクショとかは要らんかな、と省略。

細かい設定はこれから。