JAWS-UG re:Moteに行ってきた

jawsug-hokuriku.doorkeeper.jp

JAWS-UG re:Moteは初開催 13会場で同じものを見聞きしてる V-CUBEで配信

青森

http://www.slideshare.net/biatunky/jaws-remote2015t2

やっぱり、リモートでスライドショーを表示させるのは、慣れてないと難しい。

最近の趣味はEdisonとかでIoT

アクセスが数えるほどしか無い地方での話

CDPのロゴかっこいい

ICDP(INAKACLOUDDESIGNPATTERN)
地方には地方なりのクラウドの活用の仕方があるはず。
http://icdp.biz

予算はない、アクセス無い、でも落としちゃダメ

t2インスタンスは安い、速い
ただし、CPUクレジットの残量による
ゼロになると、ほぼ使いものにならない
平常時にクレジットが減るような状況だとスペックアップが必要。
CloudWathで残量が確認できる。

t2の使いどころ
テスト・開発環境・バッチ・小規模なサービス用サーバ
東北だと半分ぐらいの案件で使っている。

t2.microでWPなら1500PV/時間が目安
実際はストレステストが必要。

t2.microは使い切ったら10%しかCPU性能が出ない

CPUクレジットを使いきらないような環境であれば、t2インスタンスは使える。

磐田

http://www.slideshare.net/HidekiItou/jawsug-remote-workspaces

Amazon WorkSpaces

用途はリモート勤務・モバイル端末でのアクセス・開発環境などなど。

Amazon WorkDocs

1ユーザ $7/月〜
Google Driveみたいに使える。

沖縄

http://www.slideshare.net/shumach217/re-mote

Device Farm

calabash
BDDのツールであるcucumberを使用したUIテストフレームワーク

backdoorを使用することで、デバイスの関数を実行可能
引数を渡したり、返り値を受け取ったり出来る。
Device指定でパフォーマンスモニタをグラフ表示
スクリーンショットも見れる

Puree(ぴゅーれ)

CookPad

内部情報を容易に取得

テスト時間の短縮

backdoorは通信がボトルネックになる(スローテスト)
Pureeだとバッファに蓄えてくれる

https://twitter.com/shumach217/status/640037085911453696

初心者

http://www.slideshare.net/TakeshiWakamatsu1/cli-52443681

http://t-wkm2.hatenablog.com/entry/2015/09/05/141901

紫本をCLIでやってみた
http://www.amazon.co.jp/Amazon-Web-Services-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89/dp/4822262960/

EC2にログインしない(UserDataでインストール完了させる)
RDS利用

続きはWEBで

感想:最初は正直しんどい
手順書作成に最適(スクショとっても画面が変わる)

デモ成功(てってれー

HPC

HPC専門支部始めました

High Performance Computing
力学シミュレーションとかの工学分野

中小企業・スタートアップ・高専でもHPCを。

ブラジルの水道会社でHPCの利用事例
管理コンソール作って、ボタン一つで自分だけのクラスタを立ち上げ・破棄

高知

http://www.slideshare.net/yukihitokataoka/jawsug-remote-2015-awsiot

地方でAWSとIoT

マイキーワードはIoTと複業

環境センサ、自然災害の監視、お年寄りの見守りなど

  • Cognite(認証)
  • Kinesis(中継)+Lambda(処理)
  • S3 / DynamoDB(保管)

Cogniteは機器レベルでの認証も出来るらしい

IoTの取り組み例(施設園芸)
栽培環境をある程度調整、園芸作物を生産
気候などを調査・制御する

  • 温度が低下→ボイラー制御
  • CO2濃度低下+晴れ+高湿度→天窓を開く
  • etc

CO2センサーはちょっと高い(1万オーバー

デモサイト: http://s.ykata.net/
コードも公開されている

IoTは技術先行で、活用はこれから。
農業とか、車とか、老人の健康状態とか。

ダイブ+継続

北陸

https://speakerdeck.com/aibax/we-love-s3

Amazon S3の再復習

2006年の3月のAWSリリース時からあった。
EC2より前からある。

バージョン管理機能も付けれる。
クロスリージョンレプリケーション追加(2015/03〜)

  • スタンダードストレージ
  • 冗長化ストレージ(RRS)
  • Glacier(アーカイブ)
    • バックアップ用途

細かいファイルを沢山アップロードしていると高くなる
S3への登録は無料、ダウンロードは1GB当たり17円ぐらい

セキュリティ
ユーザ単位の権限
アクセスログの記録(監査)

使いどころ

Webサイトホスティング

Apacheやnginxの代替(POSTメソッドは使えない)
独自ドメインを使える。ただし、バケット名とホスト名を同一にする必要あり。
静的コンテンツの配信(実運用の際はCloudFrontとの併用を検討)

バックアップ・DR対策

アップロード無料
AWS CLIのS3コマンドによるファイル同期

aws s3 sync /path/to/backup s3://バケット名/

コンテンツ配信

  • アクセス頻度は低いが、常時公開が必要なデータ(古いマニュアルとか)
  • 定期的に更新する統計やマスタデータ

イベント通知

SNSでメールとかwebhook

SQS

Lambda(処理待ちサーバのコストが不要)
アップロードドリブンで処理を実行

進化してる

  • バケットに入っているオブジェクトの数
  • バケットの中の容量

→CloudWatchにメトリクス追加(ただし、1日毎に更新)

  • VPCからS3へのアクセスが出来るようになった

最近、調べていること

同期型ファイル共有

  • Amazon WorkDocs
    同期が不安定、同期状態がわかりづらい
  • CloudBerry Box
    Windowsのみ
    メタデータが入ってたり
  • GoodSync
    手動または定期同期
  • SparkleShare
    バックエンドはgit
    CodeCommitと組み合わせられるかも
  • ownCloud
    サーバが必要だが高機能

大分

AIRPO

  • BLEによるポイント配布
  • 店舗側でポイントによるインセンティブを決定できる。
  • PUSH通知を店舗側から打てる
  • 店舗内の移動をヒートマップ(?)化

愛媛

Intel Edison for Arduino

  • Cognito
    • デバイスへのアクセス許可
  • Kinesis
  • Lambda
    • KinesisへのPUTでコードを実行
  • DynamoDB

  • JavaScript

    • mraa : ハードウェアを操作するためのフレームワーク
      • cylonってのもあるらしい
    • node.js

いろいろ入ってるセンサーキット https://www.switch-science.com/catalog/1812/

context.succeedでハマった

DynamoDBへの書き込みは非同期。
その完了を待たずにcontext.succeedを呼ぶと、Lambdaが終了する。
書き込みが完了しない。

名古屋

Docomo Developer support なんでこんなことしてんのかわかんないけど、無料でいろいろ公開してる。

画像認識API

画像から商品の情報を取得

ECサイトなどをクロールして、DBに格納、画像と連動させる。

AmazonのFIREFLY的な

  • 安全性
    • Blue-Green Deployment
  • 再現性・生産性
    • Immutable Infrastracture
    • 設定のバージョン管理

バッチ処理はS3を入力にし、S3に出力することで、障害耐性を高める

突然のラジオ体操!

エバンジェリストの高岡さん

エバンジェリストとしての初の発表。 自分で、ITで仕事を無くしてきた人。 ルータ作る→ゲーム作る→外資

懇親会

北陸は鳥珍や 金賞取ってる手羽先の食べ放題。 車で行ってたので、アルコールは飲めず。

  • 石川の人も、富山に来ることはある。ファミリーパークとか。
  • 富山はインテックの一強。
  • 石川はなんとかって会社のOBが作った会社が多い。
  • 福井は特に無いから、逆にAWSの導入とかがやりやすい?
  • 富山は製造業が多く、Salesforceが強い。
  • ある程度古くからある中小のIT会社は、しがらみが多い。
  • 世の中狭い。知り合いを1人挟んだら繋がることがある。

f:id:suzaku114:20150905183828j:plain

f:id:suzaku114:20150905175858j:plain

Skip Gunosyを公開しました。

リリース報告

Skip Gunosy - Google Play の Android アプリ

本日、Skip Gunosyというアプリを公開しました。 使い方は簡単、インストール後にメールなどのGunosyへのリンクを踏むだけ。 ローディングが表示され、ちょっとすると、クッションページをすっ飛ばして元記事を開きます。 ついでに広告も出ます。

作った理由

いつも、Gunosyはメールで見ているのですが、最近(でもないですが)、Gunosyが作ったページに遷移されることが増えてきました。 ただ、一部の記事はレイアウトが崩れていたり、画像がうまく表示されなかったりと、結局元記事へのリンクを探す日々が続きました。 3度同じ事を繰り返す時は自動化する、という言葉があるように、自動化した次第です。

実装はいつもの通りGitHubに置いてあります。 要件を満たすこと以外はほとんど考えてないので、コードが汚いです。

github.com

免責事項的な?

Gunosyさんに、もし(見つからないと思うけど)怒られたら消します。 GunosyさんのHTML構造が変わったら動かなくなります。その時は、気力があれば対応します。

「Kanazawa.rb x Hokuriku.NET x JAWS-UG北陸」に参加してきた

Kanazawa.rb x Hokuriku.NET x JAWS-UG北陸 : ATND

メモはこちら

感想。 ・JAWS Toyamaが出来るらしい。手伝えることがあれば、手伝いたい。 ・北陸はやっぱり、クラウドとかの勢いは弱い。  けれど、関東と比べてそれほど比率が低いわけでは無さそう。  現に、このイベントは満員。  ただ、人口がそもそも多くないし、意識高い系の人数は少ない。 ・金沢・福井のコミュニティは比較的回っているらしい。  富山はあまり上手くいっていない。  勉強会などを開いても、人を集めるのが大変。 ・ITなおっさんらが集まると、IT大喜利が始まる。

内容。 ・AWS Lambdaは来そう。  Tokyoリージョン来るまでにちょっとぐらいやっておこう。 ・Azureも頑張ってるらしい。  イベントのストリーム処理は必要になってきそう。 ・Dockerとk8sの概要はなんとなく理解できた。  Docker自体は、小規模に使っていくだろうけど、どこまで使うだろうか。 ・ポータビリティとしてのDockerは、あまり考えてなかった。  けど、たしかに。  結構ゴタゴタしてるし、Docker大丈夫かとも思ってたけど、もうちょっとやっておいた方がいいのか。 ・便利なSaaS、いっぱいあるな。  PaperTrailとか、そろそろ使っておいた方が良さそう。

あれ、やることいっぱい。。。

f:id:suzaku114:20150620193134j:plainf:id:suzaku114:20150620193134j:plain

エンジニアだけど、ポートフォリオっぽいもの作りました

twitterなどのURLを、このHatena Blogにしてました。 そうすることで、自分の書いた記事や自分のアプリを紹介できてると思ってました。

ふとしたときにスマホで見てみると、サイドバーのアプリへのリンクが全く表示されてなかったのです。 これはまずい、ってことで、アプリの紹介をメインに、保持スキルも紹介できるようなページを作ってみました。

それがこちら↓
Ishikura Noboru portfolio

BEMもどきだったり、jade / stylusで作ったりと、フロントについてもいろいろ頑張りましたが、それよりも公開までのプロセスを一番頑張ったと思います。

というわけで、具体的な話。

コードリポジトリ

リポジトリは、 noboru-i/noboru-i.github.io · GitHub です。

ただ、masterブランチには成果物しか置いておらず、こちら noboru-i/noboru-i.github.io at src · GitHub にソースを置いています。

開発

gulp serve によって、インクリメンタルにビルド・ブラウザのリロードを行っています。
ほぼ、会社の同僚が書いていたのの劣化コピーですが。

/gulp/task に個別にタスクを記述したり、config.coffee にパスを一括で定義したりしてます。

詳細は、本人の記事を確認してもらえばと思います。

qiita.com

CircleCI

circle.yml に設定が書いてあります。

  • masterは生成結果なので、CircleCIの処理対象外にしています
  • nodeのバージョンは最新がいいだろうと思って、とりあえず0.12にしています
  • srcブランチに対して、script/deploy.sh を実行しています。

script/deploy.sh にデプロイの手順が書いてあります。

  • npm run build により、package.jsonに定義されている通り、gulpのdefaultタスクが実行されます
  • gitの設定として、メールアドレス等を設定しています
  • publicの中身をtarにまとめてArtifactとして保存しておきます
  • public内をgitのリポジトリとして初期化し、リモートをnoboru-i/noboru-i.github.ioに設定します
  • このブランチにcircle.ymlが存在しないと、デフォルトの動作が実行されてしまうので、circle.ymlをコピーしています
  • 強制的にgit add, git commit, git pushしています

イメージ図

全体としては、こんな感じ。

f:id:suzaku114:20150416235225p:plain

感想

GitHub Pagesは便利なんだけど、ソースと生成物を一緒のリポジトリに入れちゃうのは嫌だし、手動のビルドでビルド漏れも嫌ですし。

その点、リポジトリにあるコードをCircleCIでビルド・デプロイするのは、必ず・クリーンな状態で公開できるため、メリットは大きいと思います。

仕組み部分は、それなりにいい感じに出来たと思うので、酷評されてるデザイン面と、BEMもどきって言われたCSSの命名をがんばってみようかとか思ってます。

iOS証明書の期限が切れたので、再取得する

前提

  • 昔、証明書を作った
  • 今、期限が切れている
  • とりあえず、申請用の証明書を再取得したい

手順

キーチェーンアクセスを起動します。 期限、切れてますね。。。 f:id:suzaku114:20150224020306p:plain

メニューから、証明書アシスタント -> 認証局に証明書を要求... を実行します。 f:id:suzaku114:20150224020233p:plain

証明書アシスタントが開くので、メールアドレス・通称が設定されていることを確認、ディスクに保存を選択して、続けるを押します。 f:id:suzaku114:20150224020143p:plain

証明要求が作成されました。 CertificateSigningRequest.certSigningRequest が保存されたと思います。 f:id:suzaku114:20150224020144p:plain

iOS Dev Centerを開き、Certificates のAllを選択します。 「+」を押します。 f:id:suzaku114:20150224020146p:plain

ProductionのApp Store and Ad Hocを選択、Continueを押します。 f:id:suzaku114:20150224020147p:plain

Continueを押します。 f:id:suzaku114:20150224020148p:plain

先ほど作成した証明要求( CertificateSigningRequest.certSigningRequest )を選択し、Generate を押します。 f:id:suzaku114:20150224020149p:plain

生成されるので、Downloadを押します。ios_distribution.cer が落ちてきた気がします。 f:id:suzaku114:20150224020151p:plain

iOS Distributionの行が増えてますね。 f:id:suzaku114:20150224020152p:plain

行が増えてますね。 f:id:suzaku114:20150224020156p:plain

続いて、Provisioning Profileを作ります。 Expiredだらけです。 f:id:suzaku114:20150224020159p:plain

今回はDistributionのものを取得したいので、それを選択し、Editを押します。 f:id:suzaku114:20150224020201p:plain

選択されてるCertificatesが無いので、選択し、Generateを押します。 f:id:suzaku114:20150224020117p:plain

再生成されました。Downloadを押すと、 XXXX.mobileprovision がダウンロードされたと思います。 f:id:suzaku114:20150224020109p:plain

これで、申請用のipaは作れるようになりました。 同じように、AdHoc/Developmentのprovisioningも出力できそうです。

PUSH通知の証明書も切れてるので、再生成が必要です。 Apple、面倒ですね。。。

AndroidのGradleでbuildTypes毎にtaskを作成する方法

前提

build.gradleにて、下記のように書くことで、buildTypesを増やせます。

buildTypes {
    hoge.initWith(buildTypes.debug)
    hoge {
        applicationIdSuffix ".hoge"
    }
}

これだけで、 assembleHoge とかは作成されます。

src/main と同じように、 src/hoge ディレクトリを作り、そこにファイルを配置することで、それらで上書きすることが出来ます。

本題

作成した hoge 環境と、元々ある debug , release それぞれにタスクを定義したいとする。
(各環境事のapkファイルを、ゴニョゴニョやる必要がある、とか。)

GradleでAndroidアプリを起動するタスクを追加する - インターネッコはじめました

の丸パクリですが。

とりあえず、下記のように定義できる。

android.buildTypes.all { theBuildType ->
    def buildType = theBuildType.name

    task ("exe${buildType.capitalize()}", dependsOn: "prepare${buildType.capitalize()}") << {
        // 何かを実行したり
    }

    task ("prepare${buildType.capitalize()}") {
    }
}

この場合、

./gradlew exeHoge

とか、

./gradlew exeRelease

とかが出来る。

「2015 新春 JJUG 特別企画 Jenkins まつり」に参加しました

http://jjug.doorkeeper.jp/events/19259

先に感想

  • Oracle来たこと無い(あったかも。忘れた)と、どこ行っていいかわからんかった。
  • スーツ率高め。7割ぐらい?
  • Slack使ってる人がほとんど手が上がらなかったのが、ちょっと衝撃的。
  • プラグインいっぱい。実運用する前に、プラグインテスト用の環境が欲しい。作ろう。
  • UrbanCodeは、自分がエンタープライズじゃないからあんまり関係無い気がした。
  • 川口さんの話は、最初何を話しているのかわかんなかった。ついていけてからは面白かった。
    • 広い範囲を上手く自動化していきたい。
  • 荷物だけあって、結局誰も来なかった席は何だったんだろう。

Javaユーザに贈るJenkins 25のTips

Javaユーザに贈るjenkins 25のTips

Jenkins実践入門書いた人

必須

コーディング中のやつ

ジョブの設定系

  • JobConfigHistoryプラグイン
    設定の変更履歴を見れる。
    ビルド履歴にハンマーマークが出てくる。前回との設定の差分も見れる。

コンソールを見やすくする系

  • Timestamper
    コンソール出力にタイムスタンプを表示できる。経過時間も見れる。

自分色に染める

プラグインじゃないTips

  • JUnitのテストレポート表示
    JUnit互換で出力させると、Rspecの結果も表示できる。
  • マルチ構成プロジェクト
    Safarimacだけ、とかをフィルターで出来る
  • パンくずメニューでショートカット
    いろんなメニューが出てくる。 画面遷移を減らせる。
  • コンソールにジャンプ
    ビルド中の青いメーターをクリックすると、コンソール出力を見れる
  • safeRestart
    /hostname/safeRestartにアクセスすると、再起動出来る

CIを制す

CIを制したら

Jenkins実践入門は改訂予定のため、まだ電子化されない

継続的インテグレーションから継続的デリバリーへ

UrbanCodeの説明・デモ

  • プッシュボタン・デプロイメント
  • D&Dでフローを作れる
  • 細分化したViewもある
  • プラグインの活用
    Jenkinsとの連携とか、メインフレームに対するデプロイとか
    Groovyで書ける
  • 環境ごとのリリース状況を視覚的に見れる。どのバージョンが入っているかをみれる。
  • 品質ゲートの設定
  • リリース承認プロセスの定義
  • リリース状況のリアルタイム確認
  • ログインユーザに依る権限管理

Jenkinsとの違い

ビルドに焦点を当てているか、リリースに焦点を当てるか。

Chef/Puppet + Jenkinsによる継続的デリバリ

会社紹介

  • CloudBees
    • Jenkins Enterpriseなど、Jenkins周りの開発・サポートなど

背景

  • より広域なend-to-endの自動化
  • jenkins-ci.org 運用上のニーズ

個々のサービスをコンテナ化

サンプル。 https://github.com/jenkins-infra Puppetの中の人のベストプラクティスが詰まっている。

  • git -> Jenkins -> docker
    • jenkins-infra/ircbotとか
  • rspec-puppetによるプルリクエストの検証
    • jenkins-infraというコントロールリポジトリ。puppetのmanifestの集合。環境+ビルド番号を持っている。
    • まずは文法チェック=rspec-puppet。
  • serverspecによる一時サーバでの検証
    • vagrantに適用してみる。EC2でやっている。EC2でやることで、並列に高速に実行できる。
    • Vagrantfileに書いてある。
    • 今はmasterに対してだけやっている。金があれば、Pull Request単位でもいいんじゃないか。
  • r10k + puppet enterprise
    • ブランチ名=環境名になる。
  • 環境別の際を吸収するHiera
    • 階層構造も自由に出来る -> yamlファイルに外出し
  • 鍵・秘密の情報の取り扱い
    • dockerのpackageに入れなくていい
    • hiera-eyaml でパラメータの個別暗号化。eyamlというエディタで変更 -> 保存すると暗号化。鍵は別に保存しておく必要がある。
  • ブランチと環境の関係
    • Pull Requestをマージすると、自動的に本番に反映される、とか。
      ビルド履歴がGitHub上に残る。

継続的デリバリの課題

  • 実際にいつ起こったのか
  • 現在のサーバで走っているのはどのビルドか

ファイル指紋

  • md5 check sum。
  • 自動的に指紋を取る
  • テストとビルドが関連づいていなくても、追える
  • デモ
    • Jenkinsでビルド -> 手動でデプロイ(デプロイ結果をJenkinsに通知) -> Jenkinsでテスト
    • Promotionプラグインを入れておくと、デプロイされたことが星印で出てくる
  • いつ・なにが・どこにデプロイされたのかを確認できる
  • Chefとpuppertにしか対応してないけど、拡張可能な形式で作ってある
    • Chefはカスタムレポートハンドラーとして実装

今後の予定

  • データの可視化
  • ファイルじゃないのもの指紋
  • jenkins-ci.orgの運用でも使っていく

from 2014 to 2015

あけましておめでとうございます。

2015年が始まり、数日経ってしまいましたが、2014年のまとめと、2015年の目標を書いておこうと思います。

2014年にやったこと

仕事

  • 初のオフショア開発リーダー(?)

短納期で、途中からの引き継ぎだったで、ちゃんとチームでやる気もなく、やってる暇も無かった。
そんな状態かつ、初のオフショアだったもんで、出来たコードが自分の思ったのと大幅に違い、最低限は自分で作りなおすという暴挙にでる。
オフショア恐怖症が、完全に発症。自分がオフショア使うぐらいなら、会社辞めるって公言するレベルに。
お陰様で、その後はオフショアと直接やりとりすることは無くなって良かったです。

  • PM業務

iOSアプリの開発で、PM業務をやることになりました。
1回ぐらい経験しておこうかなーというのもあったので、タイミング的には良かったのですが、やっぱり面倒ですね。
見積もりから、外部設計を作り、内部設計を依頼し、実装を確認する。
しまいには実装もし始めたので、てんやわんやに。
やっぱり、マネージャーはマネージメントに徹しないとダメですね。
そして、私はマネージメントに向いてない。

  • 初、業務でAndroidアプリ開発

iOSアプリは出来てる状態で、1ヶ月程度で作れという。
突貫工事で作ったため、いろいろとまずい部分があったまま完成はしたけど、上の都合でお蔵入り。
その後、別の方向性で同じ名前のアプリを作りなおして、そっちはちゃんと設計しました。
Butter Knife / lombok とかを使って、コード量の削減にも努めました。
いろいろとチャレンジ出来たので、楽しかったです。
要件がころころ変わるのは辛かったですが。

個人

2013年9月にデベロッパー登録し、1月にようやくリリースしました。

  • Raspberry Pi / IRKit買った(5月)

IoTのきっかけとして、買ってみました。 自宅の電気・エアコンなどを操作したかったのですが、めんどくさくなって放置してます。

Speaker DeckのAndroidクライアントが無かった and Web画面が見づらかったので、作りました。 スクレイピングの勉強になったし、自分ではいい感じに使っているんですが、DL数は伸びないですね。。

全画面広告を導入したことにより、1日当たり100円前後だったのが、1日当たり800円前後ぐらいになった。

2015年にやること・目標

仕事

  • 改善業務

1月は半分ぐらい引き継ぎに割かれるけど、それ以降は基本的に案件には入らず、引いた立場となります。
具体的に何をやるかは、まだ検討段階ですが、情報共有を推進したり、CI / CDを導入したりしていく予定です。
この活動によって、品質が上がったり、稼働時間を減らしていければと思います。

  • リモートワーク

1月下旬か、2月の頭ぐらいに富山に戻ります。 (飲み会の席で社長もちらっと言ってたし、いいよね?酔ってて、正確には覚えてないけど。)
在宅での作業になります。
ちゃんとバリューを出せるかなど、不安満載ですが、頑張っていこうと思います。
ちなみに、「結婚すんの?」と言われますが、そうでもないっす。

個人

  • 各アプリの改善

Android版の詰め共円は目下改修中ですが、それ以外のアプリも、CIを導入したり、Material Designに変更したりしていこうと思います。

  • 本を読む

元々長いこと関東に住む予定も無かったので、物理的な本はあんまり買わないようにしていました。
電子書籍はそれなりに買って読んでたんですが、物理本は敬遠してました。
がっつり本棚買って、本も買って読もうと思います。

本来の言葉の定義とはちょっと違う気もしますが、新しい部屋にいろんなデバイスを導入したいと思います。
IRKitとかはあるので、あとは hue とか買ってみようかなーと思ってます。

  • 健康に気をつける

在宅での作業になると、何も考えないと、日に100歩も歩かない気がします。
27才になるので、多少は気を使った方がいいかなーと。
具体的に何するかは決めてないですが。。。

  • アニメ見る本数を減らす

毎クール20〜30本ぐらい見てたっぽいです。
毎日1時間ぐらいをアニメに費やしていたようです。
無駄とまでは言いたくないですが、もっとやるべきこと・やりたいことがあるはずです。
減らしていこうと思います。

  • 文章を書く技術をつける

前から気づいてたけど、文章作成能力が弱い。
読みやすい技術ブログが、なぜ読みやすいかを分析して、自分の力に変えていこうと思います。
ブログとか、社内の情報共有で、その成果を発揮したいです。

雑感

2014年は、結果、そんなに大きなイベントは無かったような感じです。
ただ、後半からは2015年に向けていろいろと動けた気がします。
このまま、いろいろと進めていければと思います。
個人目標はいっぱい書きましたが、それなりに達成したいです。

Travis CI と Slackを連携させる

準備

  • Slackアカウント
  • Travis CIアカウント
  • travisコマンド(gemよりインストール)

GitHubと、Travis CIは既に連携済みの状態を想定しています。

手順

  • SlackのIntegrationsより、「Travis CI」を追加
  • 表示されている「Token」と、画面左上のアカウント名を覚えておく
  • リポジトリのディレクトリにて、下記のコマンドを実行
travis encrypt "<account>:<token>" --add notifications.slack
  • .travis.yml に下記のような記述が追加されている
notifications:
  email: false
  slack:
    secure: XXXXXXXXXX
  • Slackに下記のように、緑色が出たら成功。

f:id:suzaku114:20141230223236p:plain

参考

Travis CI: Configuring Build Notifications

Referencing DOM nodes in Angular expressions is disallowed! が出たとき

Angularのイベントの最後にDOM操作を行っていました。

$scope.send = () ->
  $("#dialog")?.hide()

ng-click で上記の関数を呼び出していました。 そこで、タイトルのエラーが表示されてしまいました。

$scope.send = () ->
  $("#dialog")?.hide()
  ''

これで解決。 DOMをreturnしたらいけないっぽい。

参考:

AngularJS - Fix "Referencing DOM nodes in Angular expressions is disallowed" - Midgets standing on the toes of others