サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブックレビュー
tech.sideci.com
こんにちは、id:Pocke です。 この記事では、Go Meta Linter がサポートするツールについて記そうと思います。 Go Meta Linter とは Go Meta Linter とは、Go言語で使用できるLinterをまとめて実行することが出来るツールです。 そのため、Go Meta Linterは多くのGoのツールに依存しています。 この記事では、その依存している各ツールがどのような機能を持つのかを述べようと思います。 なお、既に Go の CI で lint と カバレッジ回して非人間的なレビューは自動化しよう in 2016年 - haya14busa という素晴らしい記事があるため、そちらで説明されているツールに関しては適宜この記事へのリンクを貼っています。 上記の記事で言及されていないツールを重点的に説明させていただきます。 Check 三兄弟 レポジトリ: o
あけましておめでとうございます。 id:Pocke です。 GAS(Go AST Scanner) という、Go言語用のセキュリティ検査ツールがあります。 この記事では、そのツールに含まれるルールを洗い出してみました。 記事のルールは2017/01/05現在のものになります。 https://github.com/GoASTScanner/gas/tree/d4f9b88cbf6b9f190a2425120c9cecc466ec363b コードナンバー GASの各ルールにはG101の様なコードナンバーが付与されています。 この番号にはそれぞれ以下のような意味があります。 G1xx : misc G2xx : injection G3xx : filesystem G4xx : crypto G5xx : blacklist では、このルールをひとつづつ見ていきましょう。 G101: Loo
こんにちは、 id:Pocke です。 12月に入り寒さも本格化してきましたが、いかがお過ごしでしょうか? さて、先日RuboCopのバージョン(0.46.0)がリリースされました。 https://github.com/bbatsov/rubocop/releases/tag/v0.46.0 0.46.0 には、多数の機能追加やバグ修正が含まれています。 このリリースには、SideCIメンバーによるPull Requestも4個含まれています。 今日はそのCHANGELOGから、気になる新機能を見ていきましょう。 新規Cop追加 Copとは、RuboCopにおいてひとつのルールを指す言葉です。例えば、「インデントが正しいかチェックする」「非推奨メソッドを使っていないかチェックする」などが1つのCopの単位になります。 この章では、0.46.0で新たに追加されたCopをひとつずつ紹介します
こんにちは、 id:yykamei です。 今回の内容は、 SideCI でも利用している Flake8 についてです。 ちょうど 1 年ほど前に 弊社の記事 で取り上げた内容と 重複する部分もありますが、主に Flake8 のプラグインについて述べたいと 思います。 ここでは、 記事執筆時点で最新の Flake8 (バージョン 3.2.1) をベースに、 主に以下の内容を取り上げます。 Flake8 についておさらい Flake8 のプラグインとは Flake8 プラグインの作り方 Flake8 についておさらい Flake8 は以下のツールのラッパーとして実装されています。 PyFlakes pycodestyle Ned Batchelder’s McCabe script ここで 1 年前の記事には出てこなかった、 pycodestyle というツールが登場 します。これは pep
こんにちは。最近何も考えたくないときはアニメ「ゆゆ式」を観ている笠井です。 前回のブログを書いたえりいさんも笠井姓ですが、特に親戚というわけではありません。10人前後の会社で笠井姓が2人いるってどんな確率なんだろうかなどと考えています。 今回は、構成管理ツールの「MItamae」を使って開発環境を作ってみました。なお、環境は macOS Sierra です。 MItamae とは github.com MItamae は @k0kubun さんが開発した、mruby-cli を利用した pure mruby 実装の構成管理ツールです。 元々は itamae-mruby という名前でした。 読み方は「見給え」ではなく「えむ・いたまえ」です。 元々 Itamae という Ruby DSL で書ける構成管理ツールがありますが、MItamae と Itamae の大きな違いは、 Ruby や ge
初めまして、笠井枝理依です! 下の名前を読めない方が時々いらっしゃるので念のため、「えりい」と読みます。サザンオールスターズのファンである父が、『いとしのエリー』という曲から名前をとりました。(皆さんに名前を覚えていただく作戦です!) Actcatには初のデザイナー&初の女性メンバーとして9月頭に入社し、バンクーバーからリモート勤務しています。私は今でこそデザイナーとして働いていますが、ずっとそうだったわけではなく、IT業界で様々な職種を経験してきました。 ハウツーサイトを運営する企業でインハウスライター 決済サービスを運営する企業で法人営業 人材紹介プラットフォームを運営する企業でマークアップエンジニア IT企業への投資をメインに展開する、バンクーバーの企業でUIデベロッパー Actcatでデザイナー Actcatではこれまでの経歴を活かしてライティング、マーケティング施策から実装まで幅
こんにちは、id:Pocke です。 ハロウィンはどう過ごされたでしょうか? 私は渋谷にあるオフィスには行かずリモートで勤務していました。 さて、先日RuboCopのバージョン0.45.0(The Halloween Release!)がリリースされました。 https://github.com/bbatsov/rubocop/releases/tag/v0.45.0 0.45.0 には、多数の機能追加やバグ修正が含まれています。 このリリースには、SideCIメンバーによるPull Requestも10個含まれています。 今日はそのCHANGELOGから、気になる新機能を見ていきましょう。 新規Cop追加 Copとは、RuboCopにおいてひとつのルールを指す言葉です。例えば、「インデントが正しいかチェックする」「非推奨メソッドを使っていないかチェックする」などが1つのCopの単位になり
こんにちは、RuboCop大好き!Pockeです。 先日、RuboCopのバージョン0.44.0、0.44.1がリリースされました。 https://github.com/bbatsov/rubocop/releases/tag/v0.44.0 https://github.com/bbatsov/rubocop/releases/tag/v0.44.1 0.44.0 には、多数の機能追加やバグ修正が含まれています。また、0.44.1は1件のバグ修正を含んだhotfixリリースです。 このリリースには、SideCIメンバーによるPull Requestも5個含まれています。 今日はそのCHANGELOGから、気になる新Copを見ていきましょう。 新規Cop追加 Copとは、RuboCopにおいてひとつのルールを指す言葉です。例えば、「インデントが正しいかチェックする」「非推奨メソッドを使っ
この記事で説明したGitの話には、私の誤解が含まれています。コメントまで見てください。(EFSにリポジトリを置くと遅いのは本当。) 先日教えてもらったのですが、Amazon EFSというめちゃくちゃ便利に見えるサービスがあります。 複数のEC2インスタンスで共有できるストレージ 事前に容量を決める必要がない(使ったら使った分だけ増えていく) 要するにNFSで、EBSと違って複数のEC2インスタンスから共有できるのが特に便利に見えます。具体的に言うと、SideCIでgit cloneしてきたリポジトリを保存して共有するのに最適に見えます。(見えました。) SideCIでは、Gitリポジトリの操作を抽象化したサーバの開発を現在進めていて、 git cloneして欲しいリビジョンをgit archive git diffして変更された行を特定 などの操作をWeb API経由で実行できるようになり
こんにちは。最近SideCIのインフラまわりを見ている@wata727です。最近注目しているサービスはArukasです。個人的に未来を感じているサービスなので、今後の機能追加にワクワクしています。 今回は最近のSideCIにおけるSpotFleetの活用事例についてお話したいと思います。 SpotFleetってなに SpotFleetとは、AWSの低価格なサーバリソース群、スポットインスタンスを保持するための仕組みです。スポットインスタンスは、AWSで使用されていないリソースを対象に、需要と供給にあわせて、価格が変動するインスタンスです。そのため、通常のインスタンスよりもお安く購入することができます。 ただ、普通に使うだけでお安く購入できる、、なんて甘い話は無くて、価格は常に変動するため、希望する購入価格を超える場合には起動しているインスタンスが削除されてしまいます。 そのため、従来は途中
こんにちは!シン・ゴジラをあと3回くらい見たい @sweep3092 です。 Railsでユーザ認証といえばもはやセットのようになっている devise + omniauth という構成が一般的ですが、 今回はありそうでなかなか情報が見つからない、Railsでモデルを持たずにさくっとユーザ認証をする話をしようと思います。 モデルを持たずにユーザ認証を実装するのは、なんと言っても既存のユーザ認証の仕組みとバッティングしにくいのがメリットです。 deviseを使うといろいろとイイカンジに設定してくれるのでとても便利ですが、別の管理のユーザ認証の仕組みを追加しようとしたりすると嵌まりがちです。 ここで原点に立ち返って、「devise使わないでもいいのでは?」となり、「そもそもモデル要らないのでは」となったのが本記事を書いたきっかけになります。 ユーザ認証の仕組みだけをさくっと提供するのが目的なの
こんにちは、RuboCop大好き!Pockeです。 先日、RuboCopのバージョン0.43.0がリリースされました。 Release RuboCop 0.43 · bbatsov/rubocop このリリースには、筆者を始めとするSideCIのメンバーによるPull Requestも11個含まれています。 今日はそのCHANGELOGから、気になる新機能を見ていきましょう。 新規Cop追加 Copとは、RuboCopにおいてひとつのルールを指す言葉です。例えば、「インデントが正しいかチェックする」「非推奨メソッドを使っていないかチェックする」などが1つのCopの単位になります。 この章では、0.43.0で新たに追加されたCopをひとつずつ紹介します。 Style/DocumentationMethod PR https://github.com/bbatsov/rubocop/pull/
こんにちは、家から捕まえられるポケモンだけを捕まえて僕のポケモンGoは終了しました。@wata727です。 弊社ではインフラ自動化の一環として、AMIの作成にPackerを利用しています。PackerはAMIを作るまでは自動化してくれるものの、作成されたAMIは残り続け、使わなくなった古いAMIは手動で削除しなくてはいけません。 この点に関して、公式*1では、 Packer only builds images. It does not attempt to manage them in any way. After they’re built, it is up to you to launch or destroy them as you see fit. If you want to store and namespace images for easy reference, you
こんにちは。 Atom大好き! @sumyapp です。SideCIのプロダクトオーナー的なことをしております。 この記事はこのテックブログの記念すべき10回目です。 しかしながら、最近まったく開発をしていない私で御座いますので、今回はインタビュー形式で社内の開発環境を取材していきたいと思います。 取材途中で全員分取材すると分量が大変そうなことに気づいたので、今回は4名分だけ。 セパレートキーボード始めました @sumyapp インタビュー形式といいつつ、まずは私の環境から公開です! 最近の業務内容と得意領域を教えて下さい 最近の業務内容は開発以外の全てですね。プロダクトのワイヤフレームを作ったり、ヒアリングにお伺いしたり。その他、オフィス(物件)を探したりとか、ほんとに何でもやっています。 得意領域は以前はネイティブアプリ(Obj-C, Android Java)とRailsといった感じ
こんにちは!RubyMine大好き!vexus2です。 自分は「開発効率の向上が大好き、効率化のためなら生産性が落ちても良い(健康のためなら死んでもいい的な)」をモットーにしているので、こと開発マシン内の最適化にはこだわることが多いです。 最近メインモニタを40インチにしたり開発環境周りを多少変えてみたので、私が使っている主に開発周りでのMacアプリをいくつか紹介してみます。 なお、エディタ系とかKarabinerとか、Alfredみたいな定番のいわゆる「おすすめアプリまとめ」の類はあえて省いています。 TotalSpaces2($11.99) totalspaces.binaryage.com 仮想デスクトップを構築するソフトウェアです。OSX Mavericks以降はMissionControlでも似たようなことが出来ますが、MissionControlだと横一列にデスクトップが並ぶの
はじめまして。 SideCI運営元のアクトキャットにてグロースハック及びマーケティング周りを担当している@cage0703と申します。 今回は「グロースハッカーがエンジニアと会話するときに心がけている7ヶ条」と題しまして、スタートアップという限られたリソースの中で開発に集中しなければならない組織において、非エンジニア職である私がどういったことを心がけながらエンジニアとの業務にあたっているかという点をまとめてみたいと思います。 通常エンジニアとグロースハックは別の組織になることが多いかと思いますが、目的達成のためには2者間における入念なコミュニケーションは必須です。 ただ弊社のようなスタートアップフェーズにある組織では、エンジニアのリソースもまだまだ少ないことから、MTGなどの共有・調整作業は最小限に抑える必要があります。 よってすべての業務において時間をかけずに最適な解を導くという考えで物
こんにちは。 @sumyapp です。 6月29日にSideCIチーム主催でテックイベント(勉強会)を開催しました!その様子をご紹介します:) 株式会社はてなさんのMackerelチームと共同で開催させて頂きました。 テーマは「エンジニア向けサービスを支える技術」です。 エンジニア向けサービスを提供している会社様3社に登壇して頂きました。(+弊社) sideci.connpass.com ダイジェスト 19:30~19:40 イベント内容や登壇者様、会場のご紹介 19:40~20:50 発表 + QA SideCIのインフラ構築を自動化した話 エンジニア向けSaaSを開発・運用するということ ~ Mackerelの場合 Mobingi: Have FUN! with Spot Instance DeployGateの作り方 20:50~21:00 懇親会の準備 & 宣伝タイム & 事後アン
こんにちは、RuboCop大好き@pockeです! 先日(日本時間2016年6月26日)、RuboCop 0.41及びバグ修正リリースの0.41.1がリリースされました。 0.41 では13個のCopの新規追加の他、機能追加、バグ修正などが行われております。 また、0.41.1では新規追加されたCopがRailsプロジェクトにおいてクラッシュしてしまう問題が修正されています(該当のPR)。 そのため特にRailsプロジェクトでRuboCopを使用しているのであれば、バージョン0.41.1を使用することをおすすめします。 また今回のリリースでは、先ほど紹介したバグ修正を含むいくつかのコミットに私も関わっています。 ですので今回のリリースの概要を紹介させていただきたいと思います。 では、CHANGELOGを読んでいきましょう。 Release RuboCop 0.41 · bbatsov/ru
こんにちは!アクトキャットでエンジニアをやっています、 sweep3092 と申します! ユーザ視点に立ったものづくりが得意で、SideCIでも主にクライアント寄りの開発を担当しています。 先日、SideCIの社内向け管理画面のリニューアルを担当いたしました。本記事ではその際に私が心がけたポイントをいくつかご紹介いたします。 ActiveAdminを使わない理由 リニューアル前は管理画面にActiveAdminを使用していたのですが、リニューアルに当たってフルスクラッチで開発をすることにしました。 SideCIでは多くのお客様の多種なプロジェクトに対して解析を行っているという特性上、 たとえば不具合のご指摘をいただいた際には都度詳細なエラー内容の調査が必要になります。 迅速な返答や対応のためには、適切な検索条件を設定できることや、エラー情報を生データではなく調査に最適な表示をすることが望ま
こんにちは。RuboCop大好きpockeです! SideCIでは対応ツールの追加など、主にサーバーサイドの開発を担当しています。 今回は、SideCIでも使用しているRubyの静的解析ツール、RuboCop のプラグインの作り方について書こうと思います。 実際にRuboCopプラグインを作りながら手順を解説します! はじめに 今回は、よくあるバグを検出するCopを作ってみましょう。 以下のコードにはバグがありますが、一見しただけだとその存在に気が付かないかも知れません。 def foo raise StandardError "error!" end 本来このコードには、StandardErrorと"error!"の間にカンマが必要です。 カンマが抜けていると「StandardErrorというメソッドを"error!"という引数で呼び出す」という意味になってしまい、想定しない挙動になって
こんにちは。SideCIを運営しているアクトキャットの代表の角です。SideCIは日本発の数少ないCI系サービス、エンジニア向けサービスの1つであり、全員がエンジニア経歴の持ち主であるエンジニア組織で運営しています。 今回は、普段私が組織づくりにおいて心がけていることをご紹介します。 はじめに エンジニア兼代表という私の肩書きについて色々ご質問頂く機会があったので、いくつか回答してみます。 「元エンジニアだとコード書きたくならない?」 もちろん、なります。が、書けていません。書いていません。そして、それを心がけています。 直近1年間の私のGitHub上での草の生え具合は次のようになっています。 「コードを書かないって寂しくないですか?腕が鈍っていく感覚とかありますか?」 やっぱり、寂しいです。また、腕が鈍っていく感覚もあります。 ただ、これもまた、生き方の選択によるもので、書かないことが今
はじめまして。4月にアクトキャットにjoinしたwata727です。主にサーバサイドの開発やAWSをはじめとしたインフラ周りを担当しています。よろしくお願いします。 今回は直近行ったSideCIインフラのAWS完全移行に、TerraformやPackerを採用した話について書いてみます。 SideCIのインフラ構成 SideCIではサーバの役割をフロント側でユーザの操作やリクエストを受け付けるweb群と、Rubocopなどのツールを実行するnode群に分けています。役割を分離することにより、関心事を分けることができ、必要に応じてスケールアウトやスケールアップがしやすくなるメリットがあります。 もともとはAWSとGCPのハイブリットクラウド構成をとっていたのですが、さまざまな問題があり、今回の再構築の段階でAWS側に完全に寄せる形になりました。 Infrastructure as Codeの
こんにちは!アクトキャット VP Engineeringのvexus2です。エンジニアチーム発信の技術ブログはじめます! 弊社はSideCIというエンジニア向けのコードレビュー自動化支援のCIサービスを作っています。 現状はRuboCopやPHP_CodeSniffer、flake8などOSSで提供されている各言語の静的解析ツールをラップしたCode Inspection as Serviceという機能をメインで提供していますが、RuboCopなど一部のツールはアップデートが頻繁に掛かることもあり、手動アップデートではとても工数が見合わないこともあり自動化しています。そんな仕組みの一部をご紹介します。 やっていること SideCI内でのRuboCopやPHP_CodeSniffer、flake8などのツールはそれぞれ独立したDockerコンテナで立ち上げて実行する仕組みになっています。 そ
このページを最初にブックマークしてみませんか?
『tech.sideci.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く