Kuranari::Logスマートフォン用の表示で見るKuranari::Log2018-09-15RailsプロジェクトのCircleCI2.0設定ファイルを定義した自分のサンドボックス用プロジェクトのCircleCIを2.0移行したのでそのメモ。今回の内容は下記のthoughtbotの記事を参考にすれば動作するはずだし、必要なことは書かれている。uglifierに依存しているため。他コンテナの起動を待つテスト用のコンテナよりもDBコンテナの起動に時間がかかり、DBへの接続が出来ずエラーになってしまうことがある。(このようなエラーとなる。)そのためdbの起動をdockerizeコマンドで待つようにした。GitHubthoughtbotのブログの設定ファイルにもその旨書かれているが自分の携わる他プロジェクトでは記述がなかったため当初dockerizeをしていなかった。そのプロジェクトではテスト用コンテナでミドルウエアやnpmのインストールのような多少時間がかかる処理が発生するため、MySQLコンテナの起動待ちとなる状況は発生しないようである。現状のCIで行うことはテスト実行のため実質不要だが、興味があったのでworkflow化をしておいた。workflowを使うと、複数のタスクを並列に実行させたり、直列に定義された各Jobの実行有無を条件によって切り分けられる。2.5の3バージョンを対象に並列でテストができるようになる。deployを行うことができる。workflowを定義することでcronのようなスケジュール実行を行うことができる。この辺は下記の記事が詳しい。qiita.comまとめRailsプロジェクトのCircleCI2.0設定ファイルの記述についてまとめた。今回はシンプルにrspecを実行するだけの設定にとどまっているが、今後デプロイ設定なども試していきたい。Lombokを使うまでのメモMavenで管理しているプロジェクトでLombokを使うための設定方法のメモです。MinutesMavenの2つの手順を踏んでいます。IntelliJなどのIDEでLombokを使うためには別途設定が必要になります。事前条件javaとmavenがインストールされていること。------------------------------------------------------------------------*Mavenのインストール直後だと時間がかかる。生成されたファイルは以下の通り。World!ここまででMavenプロジェクトの作成は終了です。続いてlombokの設定を行っていきます。Lombokを使うまでのメモTweetもっと読むコメントを書く2017-12-15FluxのRuby実装をしたこの記事は2016年11月21日に社内ブログに掲載したものの公開版となります。ソースコードは以下のリポジトリにアップロードしています。ActionをStoreに配送する。実装EventEmitterそのものをDispatcherとして使用。実際に使う場合は実行順序の制御機構などもう少し複雑になる。MVCでいうModelに相当。MVCでいうControllerに相当Dispatcherに対しActionを作成して配信する。1}など入力値(パラメータ)に相当するオブジェクトのペアで構成される。簡易版ReactComponentstate=で状態が変わったら再度renderする。雑に実装すると、ReactComponentがやってることは以下のようなことだと思う。Viewを各々EventEmitter(Dispatcher)で監視することでユーザーの入力から画面表示までの1サイクルが回ることを確認した。#01techplay.jpモチベーション東北出身のエンジニアとして将来的に東北で仕事をする可能性があるということで、イベントに参加してきました。東京にいるとなかなか東北の企業事情が入ってこないので、このようなイベントの開催はとても助かります。イベントは想像以上に熱量が高く、記事に書いていいものか怪しいほどぶっちゃけた話が聞けたのですが、とりあえず書ける範囲でメモを公開します。仙台の勉強会はほぼゼロ(あることにはあるが質はあまり高くない)セミナーを開催し、広告を打っても参加者が殆ど集まらないこともあったただし仙台(東北)だから人が集まらないなんてことは無く、本気でやれば石巻でも人を呼べる石巻に80人の学生を読んでイベントの開催も出来た勉強会参加のために社員を東京に出している企業も多い外の世界と自分がどれくらい離れているかを知ることが出来ないのが仙台のデメリット国分町1丁目にコワーキングスペースができるなどいい兆しも出てきている個人投資家は居ないが、融資は受けやすい次回いい部分だけでなく、負の話が思いっきり聞けるので東北・仙台で働くことを考えているIT関係者は一度参加してみるといいと思います。Secretsライクなライブラリを実装したWebアプリケーションを開発していく中でAPIキーやパスワードなどの機密情報をどのように管理していくかは常に頭を悩ます課題となっています。これまで機密情報は環境変数を使用する、設定ファイルをGit管理しないなどの方法を取ることが多かったのではないでしょうか。secretsという解決策を打ち出しています。secretsは機密情報を含むファイルを暗号化した状態でバージョン管理システムにコミットし、復号化のためのキーのみを環境変数やVCS管理外のファイルで保存する方法を取ります。Rails暗号化をしているとは言え機密ファイルをGit管理するのはよくないケースはあるのかもしれません*1が、殆どのケースでは「なんで今までこれを採用しなかったのか」と思うほどの便利に使っています。Nativeで使用することを見据えてjs実装してみました。リリースノートを見るとこの機能はsekretsというGemを参考に開発を進められたようなので、私もsekretsのコードを参考にしています。github.com成果物Githubにあげていますが、現状Productionでは使用していません。標準入力を取得する部分でOS依存のコードとなっているためWindowsでは動作しないです。setupでkeyファイル.secrets.keyと暗号化された機密ファイルsecrets.yml.encが生成されます。readで機密ファイルを復号化し、標準出力に表示します。world標準入力を暗号化し、secrets.yml.encに保存します。edit環境変数(EDITOR)で指定したエディタで機密ファイルを編集します。編集後は自動で暗号化されsecrets.yml.encファイルに保存されます。.secrets.keyはgitignoreに追加する必要があります。}))console.log(settings);感想sekretsが.gitignoreの更新や、keyファイルの探索、Capistranoのタスクを含んでいるなど、細かいところに気の利いたライブラリと感じました。自分のライブラリ方はと言うと、コマンドラインオプションへの対応やら、jsファイルで.encファイルや.keyファイルを明示しなければならないなど自分自信で「このライブラリのAPIイケてないな」と思う部分も多いです。Secretsライクなライブラリを実装したTweetもっと読むコメントを書く2017-12-01Sekretsで使われていたRubyの組み込みメソッドSekretsのコードリーディングを行っていた際に、これまで知らなかったメソッドを発見したため、そのまとめ。DOMエンジンとしての役割を持たせていくとのこと。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。