サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
labs.septeni.co.jp
こんにちは、丸山です。 ご存知の方も多いと思いますが、Fluentdというログ収取用のミドルウェアがあります。その特徴の一つにプラグインによる様々な形でのログ収集というものがあります。プラグインの組み合わせによっては、ログだけではなく、様々なメッセージを収集し、別のところへ転送するといった連携を行うことが可能です。 そこで今回はtwitterとSlackに対応したプラグインを使用して、ツイートをSlackに流してみます。 Fluentdのインストール(Mac OS X) ここからdmgファイルをダウンロードしてインストールします。 デフォルトでは設定ファイルの場所は/etc/td-agent/td-agent.conf、ログの場所は/var/log/td-agent/td-agent.logになります。 プラグインのインストール 次に各プラグインをインストールします。 以下は今回インストー
はじめまして。 セプテーニ・オリジナル代表の武藤です。 早速ですが大層なタイトルで恐縮です。。 明日から開催される Scala Matsuri で『将軍』スポンサーをする事になりましたので全力で乗っかってみました。m( )m 当日会場でも流しますがこの映像の会社になります。 会場で配られる手提げ袋に『技術読本』と『ステッカー』が同梱されてますので良かったらお使い下さい。 また、このパーカーを着たスタッフがブースでお待ちしておりますので冷やかしに来て頂ければ幸いですm( )m さて、セプテーニ・オリジナルですが今月で2周年を迎えました。 今回はこれまでの2年間でいかにエンジニアの働きやすい環境をつくり、優秀な仲間が集い、セプテーニグループの事業を通じて世の中に貢献して行くかを目指しながら、試行錯誤してきた施策の中から『7つ』をご紹介出来ればと思います。 (※因みに、「セプテーニ」はラテン語で
こんにちは、中途三年目の堀越です。 近頃、Scalaのコミュニティにおいて Functional Programming による実装テクニックを紹介する記事や発表を見たり聞いたりすることは珍しいことではなくなってきました。弊社にもたくさんの関数型ニキ*1が在籍しており、わたしも日々影響を受けています。 ということで、本日はわたしが所属するチームでの日々の Scala 開発における取組みや戦略をサンプルコード*2と合わせて紹介していきます。 高カインド型によるEffect型の抽象化 私達はドメイン駆動設計を実践しています。なのでドメインロジックはドメインの関心事に集中できるのが理想です。ドメイン層を抽象化し、特定の実行環境や技術的関心事に依存しない戦略として 高カインド型 を用いてEffect型を抽象化します。 インターフェース定義 例えば Repository のインターフェイスのは以下の
新卒で入社してもうすぐ一年目を迎えようとしている大久保です。(´-`) 最近ジョインしたプロジェクトでIntelliJ IDEAを使っているのですが、あまり機能を使いこなせていないなと感じたので、IntelliJ IDEAのショートカット調べました。(´-`) 自分がググったとき、ショートカットキーだけじゃなくて、Gif画像付きで使用例も見れたらうれしいので可能な限り作ってみました。(´-`) 例で使用しているコードの言語はScalaです。 現在使っているのがMacなので記述はMac版のショートカットのみです。 エラーや警告の出ている箇所でクイック・フィックスする ショートカットキー:Alt + Enter コピー履歴から貼り付け ショートカットキー:Command + Shift + V 選択行を上下に移動 ショートカットキー:Alt + Shift + ↑/↓ 選択行を他の行と入れ替え
こんにちは、ゆのうえです。 近頃、主にAndroid界隈で話題沸騰中(希望的)のJVM言語Kotlin。 この度、「ファッションコーディネートアプリMANT」でもAndroidアプリ開発にKotlinを導入しましたので、既存のJavaプロジェクトにKotlinを導入してよかったことや、気をつけなければいけないことなどを2ヶ月半ほどの導入経過からお伝えしたいと思います。 プロジェクトの進め方 基本的に新規クラスはKotlinで書いています。 既存クラスも余裕があれば随時コンバートを進めていきます。 プラグインにJava→Kotlinの自動コンバート機能がありますが、問題ないと判断できる所でしか使用していません。そのままではきれいなコードになりませんし、例外が発生するリスクがあるからです。 導入してよかったこと ・null安全 Android Javaと他のJVM言語(あるいはRetrolam
こんにちは。新卒1年目の佐野です。 弊社のほとんどのチームではドメイン駆動設計(以下、DDD)を実践しており、どのチームでもドメインの詳細やドメイン同士の関係性などコンテキストマップを図として可視化させています。Cacooなどのスケッチツールを用いているチームもありますが、僕の所属するチームではPlantUMLを用い、Cacooよりも便利に感じられたので紹介したいと思います。 PlantUMLとはコードから自動でUML図を生成してくれるツールです。 PlantUMLを使用した感想としては、 バージョン管理した時の変更点がわかりやすい 図を意識せず、コーディング感覚でバシバシ簡単に書ける epsやpngなどの形式で保存できる などがあるかと思います。 導入方法 IntelliJやAtomなどのプラグインとして利用できますが、僕はAtomを使っているのでその導入方法です。 Javaランタイムの
S3にあるファイルを加工したり中間結果のファイルを保存したりTreasureDataに格納するような処理を書いていったときに発生したエラーメモ。 digdag version 0.9.24 github.com サーバーモードでdownload_fileオプションが使えない プロジェクトディレクトリ内にダウンロードしたはずのファイルが次のタスクで消え去った ファイルに保存せずにスクリプトを書いてDigdag.envを使ってクエリ結果を変数に保持させて対応 別の方法も(参考 digdagのtd>のdownload_file) プロジェクト外のディレクトリを参照できない SQLファイル動的に生成してtdオペレータに渡すようなタスクを作った 生成したファイルをプロジェクトディレクトリに保存するようにしたが次のタスクでNo such file or directoryになり参照できず(ローカルモー
こんにちは。菅野です。 Scalaを使って集計バッチなどを書くと、ふつうは以下のようにコレクションのメソッドを駆使してデータをこねくり回しますよね? val 何かのデータ: Seq[String] = ??? 何かのデータ .groupBy(identity) .mapValues(_.size) .toSeq .sortBy(_._2) .foreach(println) Scalaのコレクションは強力で使いやすいので、とりあえずこんな感じで日々のデータを処理すると思います。 しかし実行時間はデータ量に比例するように長くなり、そのうちOutOfMemoryErrorと叫びながらプロセスが爆散するようなります。 でも、もっと速く、もっと大量のデータを処理したいという要求が出た場合にはどうするのでしょうか? ものすごい廃スペックマシンを用意すれば力技で解決できそうではあります。 それはそれで
GANMA!開発エンジニアの盛岡(@morizooo)です。 3月からScrumへの取り組み方を変えており、形になってきたので、 どのような変化があったかを共有したいと思います。 背景 今までの開発手法としてはSCRUM BOOT CAMPを読んだ後に独自で考えた手法で、 以下のように行っていました。 2週間Sprint 計画時にタスクを全員にそれぞれアサイン タスクの消化方法は個人まかせ SCRUM BOOT CAMP THE BOOK 作者: 西村直人,永瀬美穂,吉羽龍太郎出版社/メーカー: 翔泳社発売日: 2013/02/13メディア: 単行本(ソフトカバー)購入: 5人 クリック: 13回この商品を含むブログ (33件) を見る 既存の開発で大きな問題はないように感じてはいたのですが、 チームリーダーがScrum AllianceのCSM研修を受講する機会があり、 Scrum Al
こんにちは、杉谷と申します。 いま運用している"GANMA!"のCache周りは比較的ちゃんと出来ている気がしていまして、 サービスの特性もありますがアクセス数の割にはMasterDB1台Slave無しでも負荷すっかすか、というくらいには負荷が押さえられています。 GANMA!はDDDを採用していますが、 "Facebookの数千台規模のmemcached運用について" のような高度な物と比べるととても原始的とはいえ、 DDDとパフォーマンスを絡めた記事は余り見かけないので、せっかくなのでどのような実装を行っているのかをご紹介させていただきます。 どなたかのご参考になれば幸いです。 Cache方針 Cache機構は 使う側がCacheの都合を気にしなくて良い データ更新後に明示的にCache更新しなくても良いとか 儀式をやらなくても勝手にCacheが使われる 富豪的に呼んで良い "反映待ち
こんにちは、清水(@_smzst)です。直近の業務でマルチテナントな DB でアプリケーションでのスイッチロール機能を実現するために Amazon Cognito や表題にある Row Level Security について技術検証や設計検討を行っていました。 今回はこの Row Level Security について PostgreSQL での例を挙げて挙動を確認しながら、実際に導入するにあたって必要な知識や注意点までを網羅します。本記事が安全で堅牢なアプリケーション構築の一助となれば幸いです。 1. マルチテナントとは 2. Row Level Security とは 3. 実際に試してみる 3-1. 実現するための SQL 3-2. RLS 有効化前 3-3. RLS 有効化後 4. 補足 4-1. クエリのパフォーマンスについて 4-2. ユーザーとロールの管理について 4-3.
貴子です。 弊社では絶賛docker乗り換え中で、コンテナ内のjarプロセスを監視したくなりました。 監視ツールとしてはmackerelとsensuを使っていますが、 まだその2つでグラフ表示したりメモリーの使用率のアラートを設定したりまでは出来ていません。 この記事は「コンテナ上でplayのjarを実行して、Jolokiaを起動して、ホスト側から値を取得するところまで」です。 Jolokiaとは? リモートJVMにアクセスをするためのJavaエージェントで、http経由でJVMの情報を取得できる様になります。 詳しくは公式サイトをどうぞー。 jolokia.org Jolokiaを使ってコンテナ内のjarをホスト側から取得する ホストOSにはAmazon linuxを使っていて、コンテナはCentOS6で試しています。 1.ホスト側でjolokiaのjarを用意する cd Jolokia
2024-08-07 研修終了後ブログ BN研修の締めとして振り返り #エンジニア #新卒 #研修 2024-07-31 【24卒】FLINTERSエンジニア研修を終えて 研修 株式会社FLINTERSに新卒でエンジニアとして入社し、3ヶ月間の研修を終えたのでその概要をお伝えしようと思います。 #24卒 #25卒 #研修 #新卒 #新卒エンジニア 2024-07-24 雰囲気と研修内容:FLINTERSの新入社員の3ヶ月振り返り 2024年度BN研修まとめ 2024-06-21 Webフロントエンドプロダクト用にテスト戦略を考えた話 ブログ祭り梅雨 Webフロントエンドプロダクト用にテスト戦略を考えた話 2024-06-21 今期振り返り ブログ祭り梅雨 今期振り返り #今期の振り返り 2024-06-21 今期の振り返り AWS ブログ祭り梅雨 今期の振り返り #AWS 2024-06-
こんにちは。菅野です。 近頃はビットコインなどの暗号通貨の話題を目にすることが多くなっていますよね。 ブロックチェーンという言葉を聞いたことがないエンジニアはいないと思います。 もうブロックチェーンを使ったDApp1のひとつやふたつくらいは作っているのではないでしょうか。 ところでDAppとは何ですか? ちなみに私は今年になって初めてそれを知りました。 分散型アプリケーションDApp DAppとはDecentralized Applicationの略で、サービスを提供する管理サーバーがある普通のアプリとは違う、非中央集権型のアプリです。 なぜ今DAppなのかというと、高機能なスマートコントラクトを実装したEthereum等が登場したことに関係しています。スマートコントラクトを利用することで簡単にDAppを作成できて、お金のやり取りまで簡単に組み込めるためDAppの数が増えています。 プラン
こんにちは、広幡です。 現在携わっているプロジェクトで、フロントエンドはES6で記述しています。 ES6を触るのは初めてで、勉強せな・・と感じたので、 学習用に Gulp + Babel の環境を作ってみました。 これが結構便利だったので、今回はその環境の作り方をご紹介します。 下記のES6で記述したJavaScriptが、その下のES5に変換されるようになればいいですね。 // これが... const add1 = i => i + 1 const multi = (n, m) => i * j // こうっ! var add1 = function add1(i) { return i + 1; }; var multi = function multi(n, m) { return i * j; }; ちなみに私が使用しているNode.jsのバージョンはv5.0.0です。参考まで。
元記事はこちら→http://qiita.com/h0ng0yut0/items/9e1bb519966c905641ca この記事は、ただのFlux的な実装してみたことの雑記です。m( )m "なんとなく"JSのブラウザクライアント側の仕事めんどくさいなぁ〜と思ってた 巷でよくきく話 「なんか、いじるの怖い〜」 「なんか、少しいじったらアプリ壊れた〜」 一言でいうと、改修の影響範囲が見づらい問題ですよね。 こういうことってしばしば起こるんですが、結構 俗に言う"バケツリレー"たくさんある&多岐に渡る → めんどいなぁわからんなぁ の流れが多い気がします。 そんなこんなで、 バケツリレー辞めたい。 → データのフローが1方通行で、アプリの状態が1箇所にまとまるFlux的なものやりましょう。 という流れはどこもありそう。 やってみて 基本的なVuexの考え方 以下の感じですね。 なんか、こう
こんにちは。菅野です。 最近はスマホアプリ全盛期ですね。誰しもが毎日たくさんのアプリを使っていると思います。 アプリでしかサービスを展開していないものもたくさんあったりします。 そのアプリを開発するときには、バックエンド側はFirebaseのようなmBaaSを利用するのが一番手軽だと思います。 ただ、mBaaSが用意するデータベースの中にはちょっと特殊なものもありますよね。別のサービスに乗り換えたくなったときとかに困るのでは?と思ったりもします。 あと、DBはRDBであることが要件の場合も少し悩ましいです。 そこで、mBaaSに頼らずに手軽にアプリのデータ置き場を作成できるか試してみるためにPrismaを使ってGraphQLのバックエンドを作成してみたので紹介します。 Prismaとは www.prisma.io Prismaとはnode.jsのORMです。特徴はGraphQLとの親和性の
こんにちは。3月にセプテーニ・オリジナルに入社した河内です。 新しい環境でフレッシュな気持ちで業務に取り組んでおります。 さて scala.concurrent.blocking() は全く新しくない話ですが、あまり知られていないのかな、と感じるので書いておきます。 scala.concurrent.blocking() をブロッキング処理をマークするのに使います。 実行中のスレッドに関連付けられた *1 BlockContext によっていい感じに取り扱われます。 デフォルトの BlockContext は渡された引数を単に評価するだけです*2。 BlockContext.withBlockContext() を使うと、指定した BlockContext を使ってブロッキング処理を扱うことができます。 次の例では blocking 前に log を出す BlockContext を作って
こんにちは、菅野です。 近頃はWeb上で様々なサービスが誕生し、誰もが便利に使っていると思います。また、IFTTTでそれらを繋いだり、イベントをLINEに通知したりするのも簡単です。 それはAPIが公開されているからなのですが、データがほしいけどAPIが公開されていない場合はスクレイピングで自力でデータを取ってくるしかありません。 人力ではなくてプログラムでWebサイトにアクセスするときは、気をつけないとスクレイピング先のサーバーに思わぬ負荷をかけてしまうかも知れません。 早朝に自宅に警察が押し寄せてきて逮捕されてしまうのは避けたいので、サーバをいたわるようにスクレイピングしたいと思います。 Throttleで流量制限 という訳でAkka Streamでさくっと作りたいと思います。 せっかくなのでHTTPクライアントはAkka HTTPを使います。 材料は以下です。依存ライブラリに追加しま
こんにちは、丸山です。 去年の7月頃から、Scalaを使った開発をしています。普段はMacbookで作業をしています。 そこで今回、Raspberry Piとスマホという、いつもとは違ったScala動作環境を作ろうと思います。 Raspberry Piとは ご存知の方も多いと思いますが、Raspberry Piとは安価(5000円くらい)で小型(手のひらに乗る大きさ)のPCボードコンピュータです。CPUにはスマホやタブレットにも使われているARMが使われています。大量生産されているスマホやタブレットと同じCPUを使うことで低価格が実現されています。 今回使うRaspberry Pi2には1GBのメモリが搭載されています。 Scalaインストール では、さっそくScalaをインストールしていきます。 なお、ここではすでにRaspberry Pi2にRaspbian JessieというOSがイ
前書き セプオリのしもむらです(@s10myk4) 弊社では、DDDによるソフトウェアの設計手法を積極的に採用していますが、 私は、DDDを具体的な開発プロセスの中で実践する際にユースケース駆動での予備設計を行うことで 要件定義フェーズからドメインについての理解を深め、 顧客が求める要望の理由についてより深い解釈ができるようになりました。 ユースケース駆動による予備設計によって、概念的にどのような方法で顧客の要求(機能要求)が実現されるかをユースケースとして言語し、 それをドキュメントとして管理・更新していましたが、AtlassianのConfluenceでの運用はコードとの同期が大変でした。 ユースケースの概念モデルをそのまま実装に落とし込むことで、 異常系の考慮漏れを減らせるのでは? 正常系と異常系が1つのユースケース上で表現される凝集度の高い部品が作れるのでは? メンバーが仕様を理解
こんにちは、まるやまです。 現在仕事でVue.jsを使っていますが、最近そのVue.js用のselectコンポーネントをいくつか試してみたので使った感じや、問題点をまとめてみました。 vue-select まずはvue-selectです。 使い方の例 <template> <div> {{selected}} <v-select :value.sync="selected" :options="options" multiple ></v-select> </div> </template> <script> import vSelect from 'vue-select' export default { components: {vSelect}, data() { return { selected: null, options: ['ねこ','うし','いぬ','ぞう','とら',
http://to-a.ru/様より 0. はじめに 皆様はじめまして、エンジニアの原田です。 題名は出落ちなので、無視してください。 今回は毛色を変えて、弊社の勤怠制度のお話をしたいと思います。 弊社では「裁量労働制」をとっており、簡単にいうと好きな時間に働いて、好きな時間に帰ることができます。 (一部、この時間は必ずでてくださいといったMTGがある場合はあります。) 1.裁量労働とは? 「労働者は実際の労働時間とは関係なく、労使であらかじめ定めた時間働いたものとみなされる」 といった制度です。 つまり、 会社に5分でも出社していれば1日いる扱いになる 逆にいえば20時間働いても8時間労働と同じである といったものです。 これだと、好きに働けるという毛色が強いのですが、一応許されないこともあります。 1つは無断の休日出勤です。 これは、労務上別扱いになるため、駄目だそうです。やったことな
この記事は Scala Advent Calendar 2019 の6日目です。 こんにちは。最近はPYXISのデータ基盤チームでSREっぽいことしている 門脇(@blac_k_ey)です。 TETRIS99の次はポケモンに進捗を奪われる日々を送っています。 締め切りギリギリまで ポケモンで忙しかった 「これ書きたい!」というテーマが思いつかなかったので、個人的に最近のScala開発でお世話になっているライブラリやツールなどを紹介していこうと思います。 詳細はあまり書かず、「ここが好き!」ぐらいのお気持ち表明ぐらいの文章でしかないので、ゆるく暖かい気持ちで読んでくれたら幸いです。 Ammonite リッチなScalaREPL、Scalaスクリプト。 自分のScala生活が豊かになっている大きな要因のひとつ。 Magic Importsを使って、ライブラリをちょっと試したいときにササッと使え
こんにちは。 昨年の8月に入社した嶽(だけ) @masayadk1229 です。 今回は私も携わらせて頂いている2017年のセプテーニ・オリジナルの新人研修についてご紹介したいと思います。 新人研修を担当されている方、新卒/中途問わず弊社に入社を考えている方などは少しでもご参考にして頂ければ嬉しいです。 ※弊社では、新人のことをBN(Brand New)と呼んでいるので、これ以降はBNと記載致します。 全体的な流れとしては、以下の形でご紹介させて頂きます。 2017年BN研修チーム発足の経緯 2016年のBN研修について 2016年のBN研修の課題 BN研修チームで最初に決めたこと BN研修のゴール BN研修に取り組む姿勢 BN研修内容を決定するまでの経緯 BN研修内容を決定するまでの流れ 弊社で必要となるスキルのブレスト結果 BN研修の内容について BN研修のカリキュラム チーム開発研修
こんにちわ。Xiaoです。 1月30、31日に開催された日本最大級のScalaカンファレンス、Scala祭りに参加してきました。 scalamatsuri.org 今回のScala祭り2016では、初心者向けから上級者向けまで、コーディングのベストプラクティスからシステムの設計まで、リファクタリング、コンパイラ、関数型プログラミング、Reactive、マイクロフォーサーズなど、種類豊かな面白いセッションが沢山あって、とても素晴らしいコンファレンスでした。 特に最近自分が興味を持っているReactiveに関してのセッションに参加して、大変勉強になりました。 ではここからは自分が参加したセッションについて、紹介したいと思います。 [10:00 - 10:40] Refactoring in Scala Refactoring in Scala Scala の Object Oriented P
こんにちは。エンジニア2年目の大北です! 最近同期がtigを導入していたので、私も入れてみました。 こんな感じです。 tigの機能は素晴らしくて、1行だけgit addしたり、addしたやつを戻したりなどが自由にできるんですが、かなりカラフルで目がチカチカしてきます。。 そこでターミナルの色を綺麗に整えてくれるSolarizedを入れてみることにしました! Solarizedのポイント 1. 優しいコントラスト Solarizedの公式サイトによると普通のディスプレイはコントラストが強すぎるらしいです。 晴れた夏の日、私は外で読書をするのが好きだ。太陽が照りつけるところではなく、木の下の影ができたところが良い。影が映った紙にくっきりと文字が映える。もしそのコントラストを測ったとしたら、あなたのディスプレイの白い背景と黒い文字のそれより、ずっと低いだろう…(意訳) 2. 美しいアクセントカラ
こんにちは、Xiaoです。 今のプロダクトは最近、本格的Akkaを取り込んでいってエラーした処理だけリトライ出来るバッチ機構を実現しました。そのバッチ機構の実行効果を確認するので、KamonとDatadogを使ってAkkaプログラムの監視をやってみました。 Kamon とは JVM上で走るアプリケーションを監視するためのオープンソースツールです。 Kamonで出来る事 アプリケーションを監視するため、Kamonはいろんなをツールが用意されています。今回はAkkaを監視するため使うものを紹介します。 メトリックツールとトレーシング kamon-core 基本のメトリックツールとトレーシングAPIとその基盤。他のモジュールが全部kamon-core依存している。内部はAkkaを使ってSubscriberとメッセージ通信で実装しているらしいです。 kamon-scala Scala、Scalaz
次のページ
このページを最初にブックマークしてみませんか?
『FLINTERS Engineer's Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く