タグ

2018年2月20日のブックマーク (13件)

  • Bonfire API #1 ~ヤフー、メルカリ、Gunosy、LINEの課題と解決策~

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは! Bonfire API運営の出水です。 2月1日(木)に弊社のコワーキングスペースLODGEでBonfire API #1を開催しました! Bonfire APIとは、APIやサーバーサイド技術にフォーカスした情報共有を定期的に行う勉強会/交流会イベントです。 目まぐるしく進化を続ける技術や市場環境との向き合い方について共有することで、新しい知見を得たり技術交流の輪を広げたりすることのできる場を目指しています。 テーマ「APIの役割の多様化」 Bonfire API第1回のテーマは「APIの役割の多様化」です。 海外進出によるリージョンの多様化や開発者向けAPIの公開に伴う利用者の多様化などの課題にどう対応しているか

    Bonfire API #1 ~ヤフー、メルカリ、Gunosy、LINEの課題と解決策~
    clavier
    clavier 2018/02/20
  • PostgreSQLのSKIP LOCKEDを使ってテーブルをキューとして使用する - Enjoy*Study

    SKIP LOCKED SKIP LOCKED は PostgreSQL 9.5 から入った新機能です。 What’s new in PostgreSQL 9.5 - PostgreSQL wiki PostgreSQL: Documentation: 9.6: SELECT これを使うと、FOR UPDATEの際に別トランザクションによって行ロックが取得されているレコードを除外することができます。すなわち、他のトランザクションによる行ロックが解除されるのを待つ必要がなくなります。 サンプル idというカラムを持つidsというテーブルを作成し、3レコード作成しておきます。 CREATE TABLE ids AS SELECT generate_series(1, 3) AS id; testdb=> CREATE TABLE ids AS SELECT generate_series(1,

    PostgreSQLのSKIP LOCKEDを使ってテーブルをキューとして使用する - Enjoy*Study
  • イミュータブルデータモデルへの取り組み with Ruby on Rails - リサーチ・アンド・イノベーション 開発者ブログ

    こんにちは。リサーチ・アンド・イノベーションの中村(konk303)と申します。 いわゆる「railsおじさん」的な立場で、主にサーバーサイドの開発をしています。 Introduction 稿ではQiitaのイミュータブルデータモデルと webアプリケーションにおける現実解にインスパイアされて、弊社でのイミュータブルデータへの取り組み(とその苦しみ)を紹介したいと思います。 qiita.com イミュータブルデータモデルとは? まるっと引用。 イミュータブルデータモデルと webアプリケーションにおける現実解 - Qiita 詳細はリンクに譲りますが、「履歴を全て残すようなデータ設計にし、 UPDATE を廃することで情報の追跡可能性を確保、堅牢な設計にする」モデリング手法です。 原則この手法に従うと、そうそう汚いモデルにはならないという優れもの(雑) です。イベントが起こる度に新規レコ

    イミュータブルデータモデルへの取り組み with Ruby on Rails - リサーチ・アンド・イノベーション 開発者ブログ
  • Elasticsearch にログを重複・欠損なく格納する案 - Qiita

    はじめに Elasticsearch を持っているなら、ログは余すことなく入れておきたくなるだろう。 パースは後でもできるので、とりあえず入れておくだけ。 ただし、情報量を落とすことなくログを入れたい。 ログは件数が意味をもつこともあるので、重複は避けたいし、欠損してほしくはない。 そのためには、個々のログに対して一意となる ID を指定すればよさそうである。 もしもログ送信元 (Logstash など) や送信先 (Elasticsearch) に異常が発生し再送の必要が生じても、 ID があれば重複なく格納できるようになるため、再送を十分に行えるなら欠損分を補えるだろう。 ちなみに、もし重複を許すなら、途中まで読んでいたログファイルをもう1度読み込みなおせばよい。 なお、もし再送を十分な回数できるなら、ID が(Elasticsearch の自動生成 ID など)ログに対して一意でなく

    Elasticsearch にログを重複・欠損なく格納する案 - Qiita
  • 非エンジニアが最速でSQLをマスターする方法 - Gunosy Tech Blog

    こんにちは、データ分析部の石塚です。 Gunosyではエンジニア以外の職種でもSQLを叩いて自らデータを集計・分析するという習慣と全社員が各サービスのログ*1に触ることができる環境があります。 例えば、ユーザー獲得を担っているプロモーションチームはエンジニアが0名のチームなのですが、実際にSQLを叩いています。 それによって、自分たちの獲得したユーザーはどのような行動をしているのかを確認したり、分析することができています。 これはGunosyのみの事例ではなく、AWSのRedshiftやAthena、GCPのBigQueryが台頭してきたおかげで、どの会社も低コストにログをSQLで集計・分析できる基盤が整ってきています。 個人的にはアプリやウェブの業界で働くマーケターにはSQLは必須の知識と言える時代になってきたと感じています。 そこで今回は特別プログラミングなどの経験が無い人でも、SQL

    非エンジニアが最速でSQLをマスターする方法 - Gunosy Tech Blog
    clavier
    clavier 2018/02/20
  • <mazgi.github.io 移行済>S3+CloudFrontをTerraformで設定してCircleCIで更新する - mazgi.log

    移動しました=> mazgi.log :: S3 + CloudFrontをTerraformで設定してCircleCIで更新する 「TerraformでS3+CloudFront+SSL/TLS証明書 w/ ACMを設定してHugoで作ったstaticなWebサイトをCircleCIで自動deployする」やつができた。 できたもの 普通のいかにもHugoで作ったWebサイトができた。 もう2018年なので手オペなどせずInfrastructure as Codeで構築かつCIでコンテンツdeployです。 中身はまだない。 きっと酒とメシについての何かが書かれるのでしょう。 https://sakemeshi.love/ これはそもそも先日開催したハッカソンでやろうとして途中までしか進められなかったので、その補習も兼ねてます。 なお次回ハッカソンはGoです! denatechstudi

    <mazgi.github.io 移行済>S3+CloudFrontをTerraformで設定してCircleCIで更新する - mazgi.log
  • Pravega – A Reliable Stream Storage System

    Storage Reimagined for a Streaming World Pravega is about a new storage abstraction — a stream — for continuously generated and unbounded data. A Pravega stream stores unbounded parallel sequences of bytes in a durable, elastic and consistent manner while providing unbeatable performance and automatically tiering data to scale-out storage. Distributed messaging systems such as Kafka and Pulsar hav

    Pravega – A Reliable Stream Storage System
  • textlintの結果をプルリクにコメントしてもらう(danger-textlintの紹介) - Kesinの知見置き場

    danger-textlintというdangerのプラグインを公開しました!今回はその紹介エントリです。 RubyGems: https://rubygems.org/gems/danger-textlint Github: https://github.com/Kesin11/danger-textlint dangerについて そもそもdanger自体の知名度がまだまだだと思うので簡単に紹介したいと思います。 dangerはpull requestのコードレビューを助けるためのツールです。 dangerはpull requestのデータにrubyから簡単にアクセスするためのインターフェースと、pull requestにコメントするためのインターフェースを提供してくれます。 例えばdangerを使うとタイトルに[WIP]が含まれる場合は警告のコメントを出してマージできないようにする、とい

    textlintの結果をプルリクにコメントしてもらう(danger-textlintの紹介) - Kesinの知見置き場
  • デザイナーがいないスタートアップを支援します。|Naofumi Tsuchiya / Goodpatch

    僕がグッドパッチを創業したのは2011年9月ですが、この6年半でスタートアップシーンは大きく変化しました。投資家の数は急激に増え、企業も積極的にスタートアップに投資をするようになり、資金調達額は昔なら1億や2億で大型調達だったのが10億以上の資金調達も珍しいものではなくなりました。 今の日起業家にとっては当に良い場所になったなと感じます。 グッドパッチはUI/UXのデザイン会社でもあり、資金調達をして自らプロダクトを開発しているスタートアップとしての側面を持った少し特殊な会社です。実は合計9億円調達しているのですが、そんなデザイン会社は世界でも聞いたことがないです。 スタートアップと共に成長そんなグッドパッチは創業期よりスタートアップと一緒に仕事をして成長してきている歴史があります。 起業して1番最初に仕事をしたスタートアップはGunosyでした。僕が起業前にシリコンバレーで当時東大

    デザイナーがいないスタートアップを支援します。|Naofumi Tsuchiya / Goodpatch
    clavier
    clavier 2018/02/20
  • MT4とEAを使った海外FXの自動売買環境をAWSに構築!資産運用で不労所得を得る副業にもなりMac使いにもオススメ!

    前回海外FXのメリットや海外FX業者であるXMの紹介、口座開設の記事を作成しましたが、今回はVPSを使ったサーバー上での自動売買についての説明をしたいと思います。自動売買と言うとずっとPCを起動させたり設定がめんどくさいと言うイメージがありますが、この方法は非常に簡単。自分のPCを24時間起動させたり、電気代や初期設定の費用を気にする必要もなく、ほぼ全自動で取引をおこなうことができます。 これを導入すれば、働いている間も寝ている間もサーバー上で勝手に取引をしてくれるので、うまくいけば知らないうちに資産が増えていた、なんてこともあるかもしれませんね。目指せ不労所得!ということで手順も含めて解説していきたいと思います。 後半には直近の損益結果も公開していますので、手順より結果が気になるという方は、目次から飛んでくださいね。 なぜ国内のFX業者ではなくXMを使うのかという点に関しては、国内FX

    MT4とEAを使った海外FXの自動売買環境をAWSに構築!資産運用で不労所得を得る副業にもなりMac使いにもオススメ!
    clavier
    clavier 2018/02/20
  • WebComponent を Vue コンポーネントツリーの末端として使う - kitak blog

    JSフレームワークの末端がWebComponentsになるのか、なれるのか、検証してみた - Qiita の記事を読んで、Vue だとどうなるかな、と思って軽く検証した。自分の手に馴染んているのが Vue というだけの理由で、決して React dis ではないです( ReactReact で、そのうちいいかんじの仕組みが入るような気がする )。 結論、問題なく使えると思う。 そもそも WebComponent を末端で利用するモチベーションは? 現状、CSS フレームワーク、UI フレームワークがあり、そのフレームワークをラップして View フレームワーク( React, Vue, Angular )のコンポーネントとして提供するライブラリをよく見かける( react-xxx とか vue-xxx みたいなの )。こういったライブラリの組み合わせは、UI フレームワークの数を M

    WebComponent を Vue コンポーネントツリーの末端として使う - kitak blog
  • 困ったときのパケットキャプチャ+curl - 理系学生日記

    リバースプロキシから渡ってきた HTTP リクエストで WebApp がエラーになるという状況が発生しました。 状況としては、 リバプロにはぼくたちはアクセスできないし、そのリバプロにリクエストを送ることもできない。 リバプロから WebApp 用 FW に何らかの HTTP ヘッダを連携することになっているが、果たして送られているのかが不明 という状況。正確に何が起こっているのか分からない状況で鍵になるのは事象の再現であり、このときに採った戦略はパケットキャプチャでリクエスト内容を確認し、それを curl で再現することでした。 容易にサーバ上にツールを導入できる状況でもなかったので、tcpdump が使えたことは当に有り難かったです。また、自分の端末にもソフトウェアを簡単に導入できない環境ではあったものの、WireShark が入っていたのも良かった。 この 2 つが揃っていれば、あ

    困ったときのパケットキャプチャ+curl - 理系学生日記
  • Rustのパニック機構 - 簡潔なQ

    概要: Rustのパニック機構は異常終了の処理を安全に行うためにある。この動作を詳しくみていく。 パニックとは何か Rustには2つの異なる例外処理機構があります。 発生源 対処方法 例 パニック プログラミングエラー 原則として捕捉しない assert!() 境界外参照 Result 例外的な入力 必要に応じて捕捉 I/Oエラー (File::read) パースエラー (str::parse) パニックとResultの関係についてはTRPL第2版第9章、未定義動作とパニックの関係についてはRustonomiconのUnwindingの章などが参考になります。 パニックを想定した安全性 Rustではたとえパニック状態でも未定義動作だけは絶対に避ける必要があります。そのため以下の関数は不健全 (unsound)です。 use std::ptr; // この関数はRustではunsound (

    Rustのパニック機構 - 簡潔なQ