タグ

ブックマーク / developer.hatenastaff.com (23)

  • Docker Compose Watchのすすめ - Hatena Developer Blog

    やあ!id:cockscombです。日々の生活に役立つちょっとした知識を紹介していきます。最近は、Apple WatchやPixel Watchみたいな、ナントカWatchのリリースが多いですね。でも今日紹介するのは、WatchはWatchでも、Docker Compose Watchです。 Docker Composeは、複数のコンテナを扱った開発に用いる道具で、コンテナを活用した開発では当たり前に使われている。そのDocker Composeに、ファイルの変更を監視してコンテナの再構成を行わせるのが、Docker Compose Watchだ。Docker Compose 2.22以降で利用できる。最新のDocker Desktopにも付属している。 ホットリロードとコンテナ開発 Docker Compose Watchがどういうものかを説明する前に、Next.jsのホットリロードにつ

    Docker Compose Watchのすすめ - Hatena Developer Blog
    soh335
    soh335 2023/10/13
  • バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog

    アプリケーションエンジニアのid:tkzwtksです。今回はバッチ処理の冪等性(べきとうせい、idempotence)について、どう考えるか/考えてきたかをご紹介します。 このエントリを書くきっかけとなったのは、はてなエンジニア有志で定期的に開催しているCloudNative推進会です。ここでは、社内のシステムをクラウドネイティブにしていくため「クラウドネイティブなシステムとはどういうものか?」を考えており、この会での「クラウドネイティブなバッチ処理」の議論も踏まえつつ説明していきます。 バッチ処理における冪等性とは メッセージ送信の信頼性を考慮する クラウドネイティブで可用性を高めるために どのような場合に冪等性を考慮すべきか 冪等な実装における3つのケーススタディ ケース1: n分前までに更新されたレコードを集計する ケース2: DB上の対象レコードを更新する ケース3: 対象ユーザー

    バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog
    soh335
    soh335 2021/11/30
  • Firebase AnalyticsをBigQueryで分析したいときに役立つテクニック - Hatena Developer Blog

    こんにちは、id:kouki_danです。はてなではスマートフォンアプリエンジニアとして働いていますが、今回の記事はアプリ利用にともなうアクセス解析がテーマです。 Firebase AnalyticsやGA4を使っている方は多いと思います。無料で大量のイベントを記録できて便利な一方、以前のGoogle Analyticsであるユニバーサルアナリティクスに比べると、分析クエリの柔軟性に難があります。以前のように分析するにはBigQueryが必要になり、SQLでデータを取り出す必要があります。 Firebase AnalyticsをBigQueryで分析するときに、単にSQLを知っているだけではつまずくことが多いと感じています。料金体系の不安や、時系列で分割されたテーブルの扱い、ネストしたカラムの扱いなど、特有の事情がいくつかあります。 このエントリでは、SQLは分かるけれどBigQueryも

    Firebase AnalyticsをBigQueryで分析したいときに役立つテクニック - Hatena Developer Blog
    soh335
    soh335 2021/09/20
  • データ活用の知見や困り事を共有する「突撃! 隣のダッシュボード」会をやっている話 - Hatena Developer Blog

    こんにちは。MackerelチームにおいてCRE(Customer Reliability Engineer)をしているid:syou6162です。主にカスタマーサクセスを支えるデータ基盤の構築や、データ分析を担当しています。 最近、はてな社内のさまざまなチームでデータ活用が進んでいます。しかし、そういったデータ活用の知見は、それぞれのチーム内でとどまってしまいがちです。この記事では、チームを横断したデータ活用を推進するため、昨年の秋から開催している「突撃! 隣のダッシュボード」という会の企画を紹介します。 データ活用についてラフに議論できる場所 ダッシュボードの事例:種類といくつかの観点 ダッシュボードの設計という観点から ダッシュボードの作成という観点から ダッシュボードの活用という観点から ダッシュボードの育て方 データ活用の課題感と解決に向けた動き データ活用の3つの壁とメンバー固

    データ活用の知見や困り事を共有する「突撃! 隣のダッシュボード」会をやっている話 - Hatena Developer Blog
    soh335
    soh335 2021/01/14
  • はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog

    はてなブログでSREをやっているid:cohalzです。 2019年12月頃からid:utgwkkやid:onkとともに、はてなブログにおけるキャッシュ周りの改善を行いました。その結果、次のような成果が得られました。 ブログ記事のキャッシュヒット率が、1日平均で8%から58%に向上 アプリケーションサーバの台数を、以前の半数以下に削減 DBに届くリクエスト数が、以前の3分の2まで減少 レスポンスタイムの平均が、以前の8割まで減少 この記事では、実際にどういった改善を行ったのか、その際に気をつけたことや大変だったことを紹介します。 はてなブログがVarnishを導入した経緯と課題 開発合宿をきっかけに問題が明らかになる 進め方をまず考える ホストのメモリをできるだけたくさん利用する メモリを積んだホストでなぜかレイテンシが悪化 キャッシュが分散しないようVaryヘッダを使う デバイス情報を適

    はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog
    soh335
    soh335 2020/09/18
  • Let's Encrypt 証明書の自動更新システムを作る - Hatena Developer Blog

    この記事は はてなエンジニア Advent Calendar 2018 11日目の記事です. こんにちは,システムプラットフォーム部でSREをしているid:cohalzです. はてなでは証明書を自動更新してくれる仕組みを作っており,今回はその紹介をします. はてなの証明書自動更新といえば,はてなブログの独自ドメインにおける証明書自動更新システムのことを思い浮かべる人もいるかも知れません. 今回紹介するのは,そのシステムとは違う,開発チーム用に向けて作成したシステムとなります. ここではブログの方のシステムについて紹介は行いませんが,少し前にGeekOut様にてはてなブログのHTTPS化に関する記事が公開されましたのでそちらをご覧ください. geek-out.jp ブログのシステムと何が違うのか まずはじめに,何故ブログと別のシステムを作成したかについて説明します. 大きな違いはシステムで使

    Let's Encrypt 証明書の自動更新システムを作る - Hatena Developer Blog
    soh335
    soh335 2019/02/05
  • hatena.ne.jp ドメインのゾーンを AWS Route 53 に引っ越した話 - Hatena Developer Blog

    こんにちわ、株式会社はてなのシステムプラットフォーム部で SRE をやっている id:nabeop です。この記事ははてなエンジニア Advent Calendar 2018 の14日目の記事です。昨日は id:Pasta-K でした。 今日は hatena.ne.jp ドメインのゾーンを AWS Route 53 に移設するにあたって、AWS 初心者がどんなことを考えながら移設したかという話です。DNS ゾーンの移設の手順などについては既に様々な情報があるので、そちらを参照してください。 そもそもの始まり 僕は2018年3月に はてな に中途入社しました。入社して1ヶ月くらいたった4月のある日、「ねぇ、hatena.ne.jp というゾーンを AWS Route 53 に移設してみない?」とタスクが降ってきました。時期としては中途入社後、業務のキャッチアップをしつつ、今まで触ったことがな

    hatena.ne.jp ドメインのゾーンを AWS Route 53 に引っ越した話 - Hatena Developer Blog
    soh335
    soh335 2018/12/14
  • はてなで働くエンジニアにアンケートシリーズ第1回 KGA - Hatena Developer Blog

    こんにちは、id:hitode909です。今日から、はてなで働くエンジニアの生態を紹介する新シリーズを始めてみることにしました。 初回は、私も所属するマンガチームのテックリードのid:KGAにお話を聞いてみます。 前職でも現職でもBtoBでクライアントのいるアプリケーションを作られていて、そのこだわりなどを聞ければと思います。 id:KGAにアンケート はてなidとその由来を教えてください いつどんなきっかけで入社されましたか? 現在の仕事を教えてください チーム内の立ち位置を教えてください 今日一日の流れを教えてください 最近うまくいったことは何ですか? 最近うまくいってないことは何ですか? ふだん大切にしていることは何ですか? はてなはどんな会社ですか? おわりに id:KGAにアンケート はてなidとその由来を教えてください こんにちは id:KGA です。はてなidを取得した当時応

    はてなで働くエンジニアにアンケートシリーズ第1回 KGA - Hatena Developer Blog
    soh335
    soh335 2018/10/24
  • TypeScript の型定義ファイルと仲良くなろう - Hatena Developer Blog

    この記事は2016年に書かれた古い記事です。当時はまだTypeScript2.0も出ていないころで今とは状況がかなり異なっています。参考にする場合注意してください。 はじめに TypeScriptの型システム Declaration space Open-ended ここまでの確認 型定義ファイルを読み書きできるようになるために declare キーワード 既存のオブジェクトの型定義を拡張する グローバルなオブジェクトに対する宣言 module Export Assignments Relative or Non-relative module imports ES2015形式 実際の定義ファイル 既存の定義ファイルを拡張する declare global { } について Typings について おわりに インターン募集中 はじめに こんにちはアプリケーションエンジニアの id:t_k

    TypeScript の型定義ファイルと仲良くなろう - Hatena Developer Blog
    soh335
    soh335 2018/01/13
  • Courseraで高評価な「Algorithms, Part I」を使った社内勉強会を開催しています - Hatena Developer Blog

    はてなアプリケーションエンジニアの id:shiba_yu36 です。 最近自分が基礎的でずっと廃れなさそうな分野であるアルゴリズムを少しずつ学びたいと考えていました。しかし、アルゴリズムはあまりにも基礎分野のため、モチベーションをずっと保ち続けられるかという不安もありました。そこで周りの人も巻き込むことでモチベーションを保ち続けたいと思い、社内で勉強会を開催したいと考えました。 勉強会の教材を選定していたところ、Courseraで「Algorithms, Part I」という非常に高評価な教材を見つけることが出来たので、最近はこの教材をみんなで集まって見ながら議論をするという体裁で社内勉強会を開催しています。実際にやってみると、社内勉強会という形式を取ったのも良く、さらにこの教材を利用したことも良かったと感じています。 少しずつ社内勉強会で講義を進めていき、ようやく半分のWeek3まで終

    Courseraで高評価な「Algorithms, Part I」を使った社内勉強会を開催しています - Hatena Developer Blog
    soh335
    soh335 2017/05/10
    yosasou
  • 社内技術勉強会で「技術ブログを書くことについて」発表しました - Hatena Developer Blog

    こんにちは、アプリケーションエンジニアのid:shiba_yu36です。今回ははてなで毎週開催している社内技術勉強会で発表した「技術ブログを書くことについて」という発表資料を公開します。 speakerdeck.com 今回の発表をなぜ行ったかというと、もっと気軽に自分のやったことをブログに書くといいのではという考え方を社内に伝えたかったからです。エンジニアをしていると、ブログを書くときは他の人が書いていないことしか書いてはいけない、しかも完璧に書かなければならない、というような気持ちになることもあります。しかし、ブログを書くことで自分の学習をより深め、加速することもできるので、あまり気負いせずにブログを継続して書いて欲しいという思いを発表しました。これがエンジニアのブログに関する正しい考え方と言い張るつもりはなくて、一つのブログに対する考え方として、参考になれば良いなと思います。 発表で

    社内技術勉強会で「技術ブログを書くことについて」発表しました - Hatena Developer Blog
    soh335
    soh335 2016/09/02
  • 【Apple WWDC 2016】iOS 10のApp Transport Securityと2016年末からのATS必須化についてAppleのエンジニアに聞いてきた - Hatena Developer Blog

    Apple WWDC 2016に参加するためにサンフランシスコへ来ているid:niwatakoです。 WWDC 2016のセッション にて、App Storeに公開するアプリは今年中にATS(App Transport Security)が要求されるようになるという発表がありました。 アプリからの通信をhttps接続のみに制限するATSの有効化がApp Storeへのアプリ提出には必須になるとのことですが、はてなブックマークのようにhttpのウェブページを含む不特定多数のコンテンツの表示が必要なアプリはどこまで制限されるのでしょうか。 WWDC期間中はAppleエンジニアに質問が出来るLabが設けられているので、ATSとiOS 10でのATS周りの仕様について質問してきました。 2016/12/22 追記 2016年末とされていたApp Transport Security必須化の延期が

    【Apple WWDC 2016】iOS 10のApp Transport Securityと2016年末からのATS必須化についてAppleのエンジニアに聞いてきた - Hatena Developer Blog
    soh335
    soh335 2016/06/22
  • Unicodeプロパティを使ったPerl正規表現 - Hatena Developer Blog

    こんにちは、Webアプリケーションエンジニアのid:nanto_viです。 Webアプリケーションを作っていると、「全角文字と半角文字を統一したい」「ユーザーの入力から漢字を抜き出したい」といったテキスト処理を行う場面にたびたび遭遇します。はてなではWebアプリケーションのサーバー側プログラミング言語としてPerlを多く使っていますが、PerlならこのようなときにUnicodeプロパティを用いた正規表現パターンで柔軟な処理が可能です。 Unicodeプロパティ 現在、ほとんどのプラットフォームで採用されている文字集合がUnicodeです。Unicodeでは文字だけでなくその文字の様々な特性(プロパティ)も定められており、テキスト処理の基礎情報として活用できます。 Perl正規表現でのUnicodeプロパティの利用 Perlの正規表現では、\p{Property_Name=Value}のよう

    Unicodeプロパティを使ったPerl正規表現 - Hatena Developer Blog
    soh335
    soh335 2016/06/02
  • はてなの新卒エンジニアに贈った言葉 - Hatena Developer Blog

    はてなチーフエンジニアの id:motemen です。先日は久しぶりに上京し、GoCon に参加してきました。東京はビルが高くていいですね。 今年の4月、弊社には3人のエンジニアを含む新卒社員がやってきました。毎年この時期になると、はてなに新しく入社した新卒および中途社員にむけて各部のオリエンテーションをおこなっています。今年は私が技術部を紹介する任にあたりましたので、そのときのプレゼンテーションを紹介します。 はてな技術部紹介 2015(公開版) / Hatena Technical Division Orientation 2015 (Public Edition) // Speaker Deck エンジニア仕事 はてなにおいて技術部というのは最大の部であり、ある面その顔でもあります。ウェブサービスを提供する会社の技術部として、はてなのミッションである「知る」「つながる」「表現する」

    はてなの新卒エンジニアに贈った言葉 - Hatena Developer Blog
    soh335
    soh335 2015/06/25
  • はてながエンジニア向けイベントでアジフライを出すようになった理由 - Hatena Developer Blog

    広報・マーケティング部の id:kiyohero です。クラウドパフォーマンス管理ツール「Mackerel」(マカレル)のマーケティングや、採用イベント「Hatena Engineer Seminar」の企画・運営などを担当しています。この記事では「はてながなぜオフラインイベントを重視するのか」、またその結果「なぜアジフライをエンジニア向けイベントで配るようになったのか」についてお伝えします。 オフラインイベントを重視する理由 はてなはこれまで、オフラインイベントをそれほど積極的に行ってきませんでした。理由としては人員的な問題であったり地理的な問題(はてな社は京都にあり、大半のエンジニアも関西在住です)であったりします。また、オフラインの施策をとらなくても「それなりに」回っていたということも、積極的にオフラインイベントを行っていなかった理由のひとつでもあるように思います。 2014年にリ

    はてながエンジニア向けイベントでアジフライを出すようになった理由 - Hatena Developer Blog
    soh335
    soh335 2015/02/20
  • Swiftでenumとジェネリクスを活用したかっこいいAPIクライアントを書く - Hatena Developer Blog

    この記事ははてなエンジニアアドベントカレンダー2014の16日目です。昨日はid:nobuokaによる「【Retrofit を読む】 利用者が定義したインターフェイスに実装を提供する Java ライブラリの作り方 【リフクレション】」でした。 こんにちは。はてなアプリケーションエンジニアのid:cockscombです。 Webと連携するスマートフォンアプリを開発するとき、Web APIを抽象化したAPIクライアントを作ることがよくあります。これはWeb APIのエンドポイントとメソッドを紐付け、パラメータに名前をつけて、返ってくるJSONのレスポンスを何らかのクラスに当てはめ型付けする、といったようなものになります。 Swiftのモダンな言語機能を利用して、このAPIクライアントを書きましたので、以下に詳解します。例としてGitHubのStatus APIを取り上げています。 またネットワ

    Swiftでenumとジェネリクスを活用したかっこいいAPIクライアントを書く - Hatena Developer Blog
    soh335
    soh335 2014/12/16
  • Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog

    こんにちは。Songmuです。 この記事ははてなエンジニアアドベントカレンダーの3日目です。 昨日、Hatena Engineer Seminar #3を開催いたしました。何より参加率が高かったことに感激したのですが、その分少し窮屈な思いをさせてしまったかもしれないのは申し訳なかったです。多数のご参加当にありがとうございました。 セミナーではMackerel overviewという話をさせてもらったのですが、そこでお話したMackerelで採用している技術について説明します。 Mackerelとは? 今年の9月17日にリリースしたはてな謹製のサーバー管理・監視ツールです。 数多くのサーバーを運用しているはてなは、これまでサーバー管理ツールを内製してきたのですが、そのノウハウを活かし、サービス用に新たに一から作ったサービスになります。 また、はてなの既存サービスとは性質が異なるため、技術

    Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog
    soh335
    soh335 2014/12/05
  • アプリケーションの開発環境を Ansible でつくる - Hatena Developer Blog

    こんにちは。アプリケーションエンジニアの id:aereal です。 この記事ははてなエンジニアアドベントカレンダー2014の1日目です。 今日はアプリケーションの開発環境を作成する手順を Ansible でコードとして表現し自動化する取り組みとその背景について簡単に紹介します。 前提 この記事で扱うアプリケーションは PerlJavaScript で書かれた中規模の Web アプリケーションです。 アプリケーションを開発するチームのエンジニアとデザイナすべてが Mac OS X を使っています。手元で開発する際には VM などを動かさずに OS X でアプリケーションを起動させます。 また、開発やデプロイなどにおいて SOCKS プロキシを通してアクセスする必要のあるサーバが存在します。 開発環境の構築手順を始めとしたドキュメントは Redmine の Wiki にまとめられていま

    アプリケーションの開発環境を Ansible でつくる - Hatena Developer Blog
    soh335
    soh335 2014/12/02
  • はてなブログにおけるページ表示速度改善の取り組みについて - Hatena Developer Blog

    こんにちは、id:hakobe932です。はてなブログではユーザ体験の改善のために、ページ表示速度を向上させるための様々な取り組みを行っています。このエントリーでは、はてなブログで行っている、ブラウザキャッシュの活用、JavaScriptのページ最下部での読み込み、JavaScriptの圧縮、という3つの取り組みについて解説します。 ブラウザキャッシュの活用 同じ内容のJavaScriptCSSを、ページを表示するたびにダウンロードすると、余分なHTTPリクエストが発生しますし、読み込み時間がかかります。 ブラウザのキャッシュを利用できれば、余分なリクエストを減らすことができます。はてなブログでは、なるべく長い間ブラウザにキャッシュを保存するために、JavaScriptなどの一部の種類のファイルのレスポンスに、以下のようなヘッダを指定しています。 $ curl -I http://hat

    はてなブログにおけるページ表示速度改善の取り組みについて - Hatena Developer Blog
    soh335
    soh335 2014/03/14
  • サービス開発合宿を開催しました - Hatena Developer Blog

    こんにちは、id:onishi です。先日、はてなでサービス開発合宿を開催しました。 サービス開発合宿とは、短期間(通常2〜3日)通常の開発業務から離れ、集中して開発を行い、新しいサービスや機能を開発するという合宿です。はてなの主力サービスである「はてなブックマーク」も開発合宿から生まれたサービスです。 今回は京都のオフィスと滋賀の合宿所の2拠点に分かれての開催でした。水曜日からスタートして、金曜日の午前中までが開発タイム。チームに分かれて思い思いのテーマで開発を行います。今回の合宿では38人が11のチームに分かれて開発を行いました。金曜日の午後は京都オフィスのセミナールームに集合して、合宿の成果を発表し、投票で順位を競うイベントも開催しました。 開発した機能やサービスについては、このあと一般のユーザーのみなさまへ公開するものもあるかもしれませんのでお楽しみに。 さて、今回の開発者ブログで

    サービス開発合宿を開催しました - Hatena Developer Blog
    soh335
    soh335 2013/12/24
    楽しそう