blogシタテルの技術やエンジニアの取り組みを紹介するテックブログです。エンジニアをしている建山です。工場向けのマイオペというシステムの開発を行っています。シタテルではファイルをawsのs3でホスティングしています。s3のファイルを操作することは少ないのですが、やはり時々は発生します。そんなときにはaws-cliを使うこともできるのですが、s3cmdを使うとより簡単なコマンドでS3を操作できます。いくつかよく使うコマンドをまとめました。s3://バケット名これ以外にもファイル/ディレクトリアップロードや削除などいろいろなことができます。s3cmdでできます。--configureぜひ、お試ししてみてください。エンジニアをしている熊谷です。SPECというサービスのバックエンド開発(Rails)を行ってます。Tokyoに行って来たのでレポートします。2018facebookどうもこんにちはシタテルでエンジニアをしている朝野です。セキュリティーや開発インフラを担当しています。Railsを使っているプロダクトがいくつかあるのですが、そこでのセキュリティ施策の1つとしてBrakemanというGemを使っています。セキュリティチェック用のGemとしては有名どころですが、理解の確認も兼ねてまとめてみました。BrakemanとはRailsのソースコードを解析し、SQLインジェクションやXSS等の脆弱性になりかねない危険なコードを見つけ出すGemです。brakemanで実行でき、ソースコード内を確認してくれます。脆弱性が見つかった場合の終了コードを0以外にというオプションを使っています。CircleCIのためです。脆弱性が見つかった時ビルド失敗になり、開発中のブランチで脆弱性が見つかっていたらmergeできなくなるわけです。ちなみにその他オプションはこちら。毎回オプションを打つのも面倒なので、設定ファイルにまとめてしまうと便利です。-Cをつけて実行すれば、同時につけたオプションに相当する設定ファイルの内容が出力されます。保存しておけば自動でその設定が読み込まれるので、オプションをつけなくてよくなります。警告に対応しないときBrakemanを実行して出力された脆弱性を修正していくことになります。修正のしようがないときやそのままでも問題ないときというのもたまにあります。実行時のオプションの一つで、名指ししたメソッドは安全だからチェックしなくていいよ!とするものです。メソッド内はスキャンされません。無視する警告のリストです。?)というふうに見つかった脆弱性をどうするか聞いてきます。無視リストに入れられた警告は、以降出力されなくなります。このように不要な警告をスルーする手もちゃんとあるのがbrakemanのよくできているところですが、うっかり対象から外した部分に危険なコードを書き足してしまわないように注意しなければいけないですね。最初からセキュリティを意識してコーディングするのがまずは重要ですが、このようなチェックがあると安心がアップしますね。2018facebookこんにちは!シタテル株式会社CTOの和泉です。@shinobu_shiva今日はシタテルの技術ブログの管理について紹介します。実は3分の1以上がエンジニア、デザイナーというIT企業でもあります。(あまり知られてないので主張します!)突然ですが、ここで質問です!プログラマの好きなもの3つはなんでしょう?答えは!?GitHubマークダウンデプロイ自動化ですよね!そうに違いない!この独断と偏見に基づいて、シタテルの技術ブログはマークダウンで記述して、GitHubで管理レビューをして、CircleCIによって自動的にデプロイされる仕掛けにしてみました。この仕組で社内のメンバーの皆さんに1スプリントに1ブログをお願いしています。仕組みと投稿の手順を簡単に紹介します。しくみ仕組みと行っても難しいことをしているわけではないのですが、、、APIの充実したブログサービスとして、知識のない私はBloggerしか思いつきませんでした。Bloggerはマークダウンでは投稿できません。マークダウンで記述したファイルをプログラムでHTMLに変換しています。S3にアップロード&URLの書き換えを行っています。以下の手順に出てくるURLはシタテル社員限定公開なのですが、こちらの公開リポジトリでその部分のコードはご覧いただけます。いうブランチを作っています。ブランチは1人1つを使いまわしても、各自が記事ごとに切るなどしても構いません。いうフォルダを作っています。masterブランチをpull最新のmasterブランチを忘れずにpullします。content.md投稿する記事の内容をマークダウン形式で記述します。meta.json記事のメタ情報を記述します。親フォルダの内容を継承しますが、子フォルダの内容で上書きされます。例は最後に記述してあります。publishブランチに向けてPRを出します。レビュー後にマージします。}}以下はBloggerAPIへの指定パラメーター(の一部)です。記事のタイトルを指定します以下は本システム向けの設定です。マークダウンファイルの名前(変更の必要なし)記事のブログへの公開publishブランチにマージすると、CircleCIが動いて自動的にブログに投稿します。CircleCIの内部で公開日時などのメタ情報を更新したものをmasterブランチにプッシュします。これにより公開情報をGithubに記録しています。おわりに以上、シタテルの技術ブログの管理についてでした。usシタテルのミッションはテクノロジーとイマジネーションで「ひと」と「衣服」の新しい未来をつくること。クラウドシステムを使うように服作りのリソースを誰でも好きなときに好きだだけ使えるプラットフォームを目指しています。Storage移行記:バリデーション編こんにちはあさのです。Storageに移行したときの話を書こうと思います。Paperclipはファイルアップロード用のGemです。https://...SQLite3でWindow関数を試してみた!はじめまして、DevOpsチームの甲斐です。何かブログのネタはないかなーと思っていたところ、たまたま以下のニュースを発見しました。ECSに自動デプロイする(おまけで環境面の切り替えも)こんにちは、シタテルの茨木です。ECR/ECSにデプロイする為の設定例を紹介します。Nuxt.jsアプリ用に作ったものですが、言語やAPサーバが違っても共通の部分がほとんどです。