タグ

ブックマーク / medium.com (78)

  • Reduce, recycle, reuse

    To enable a fast and reliable continuous integration process, McDonald’s turns to reusable workflows and GitHub Actions. By Michael Gorelik, Senior Solution Architect and Achintya Pillai, Software Engineer III McDonald’s Engineering teams are at the forefront of digital innovation, creating seamless and engaging e-commerce applications that allow customers to conveniently order their favorite meal

    Reduce, recycle, reuse
  • The internals and the latest trends of container runtimes (2023)

    Last week I had an opportunity to give an online lecture about containers to students at Kyoto University. The slide deck can be found here (PDF): 1. Introduction to containersWhat are containers?Containers are a set of various lightweight methods to isolate filesystems, CPU resources, memory resources, system permissions, etc. Containers are similar to virtual machines in many senses, but they ar

    The internals and the latest trends of container runtimes (2023)
  • 【1月23日追記】12月23日、24日に発生しました障害に関するご報告

    いつもSkebをご利用いただき、誠にありがとうございます。 12月23日12時よりskeb.jpにアクセスできない大規模な障害が発生しておりましたが、12月24日07時に復旧いたしました。 12月23日、および12月24日が納品期限のリクエストは納品期限を12月25日23時59分までに延長させていただきます。 みなさまには多大なご迷惑をお掛けしましたことをお詫び申し上げます。 障害につきまして詳細をご報告させていただきます。 概要日時: 12月23日12時22分〜12月24日7時00分 (JST) ダウンタイム: 18時間38分 内容: skeb.jpにアクセスできない不具合 原因: SkebはすべてのサーバとシステムをHerokuに設置していたが、障害発生時刻より同サービスのアカウントが理由の通知なく利用できなくなった。 解決: Herokuの一切の利用を中止し、すべてのサーバとシステ

  • Rustが遅すぎる?プロファイリングで性能向上!

    「開発プロセスにプロファイリングを組み込むのはどうだろう?」 ミーティングで、プロファイリングの重要性を発言するだけで、みんながあなたの深い知見、意識の高さに驚くことでしょう。もちろん、あなたは、プロファイリングのやり方を知っている必要はありません。開発の終盤に、性能目標が達成されず、解析が実施される頃には、誰もあなたの発言は覚えていません。しかし、万が一、あなたの意見が採用されても困らないように、この記事を参考にしてください。 Goは、CPU、メモリ、block、mutexなど、使いこなせないほどの種類をサポートするプロファイリングツールpprofを標準機能として提供します。一方、Rustは、そんな機能を提供しません。Rustへの愛が揺らぐかもしれませんが、Rustへの愛は、見返りを求めない純愛です。愛の見返りに何かが与えられると期待してはいけません。 Rustでもpprofあなたは、す

    Rustが遅すぎる?プロファイリングで性能向上!
  • Courseraのオンライン修士2年目が終わった

    以前にこちらのブログを書いて、その後も継続して読まれているようなので、近況をアップデートしておきます。 私は誰?高山です。2020年からNewsPicksでCTOをしています。上の記事を書いたときはピクシブでCTOをしていました。 2017年頃からぼんやりと大学院入学を考えはじめたのですが、そしたらたまたまイリノイ大学のことを知って書いたのが上の記事です。それから1年ほどかけて準備して出願して、ちょうど転職した月とまったく同じ2020年の2月に入学して社会人大学院生をしています。 コースについてまず、University of Illinoisと名の付く大学にはUrbana-Champaign (UIUC)とChicago (UIC)とSpringfield (UIS)の3つの大学があります。これらは別々の大学です。早稲田と慶應ぐらい別物だと思います。 Courseraで入学できるのはUI

    Courseraのオンライン修士2年目が終わった
  • 物理サーバを選定する際のポイント – Eureka Engineering – Medium

    こんにちは! 2016/4月入社の @sion_cojp こと、湖山です。 入社早々、社内で遊べる用の物理サーバを選定して欲しいと言われたので、 私が物理サーバを選定するときポイントをまとめてみました。 (ちなみに、新卒で入社した某データセンターの配属先がサーバ管理部門でした) ①サーバメーカーはどれ選べば良い?好みがなければトレンド率の高いメーカーを選ぶと良いでしょう。 理由は、メーカーによってBIOS設定やリモートコントロール画面の操作が違うので、 まずはよく使われる物に慣れておくと良いからです。 ラックに入れるならマウント方式とレールの長さに注意もしラックに収容するなら、通路の広さに注意しましょう。 レールの主流はスライド式ですが、 大量にサーバを管理するなら、上から下ろしてマウントし、そのあとスライドして押し込む方式がオススメです。 通路が狭すぎて、レールが最大まで伸ばせないことが

    物理サーバを選定する際のポイント – Eureka Engineering – Medium
  • NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理

    はじめに2021年7月12日にNgnixブログに掲載された記事 “Our Roadmap for QUIC and HTTP/3 Support in NGINX” では、QUICとHTTP/3機能を2021年末にはメインラインへマージする計画が言及されています。現在のHTTP3/QUIC対応Nginxは、専用の開発ブランチ (nginx-quic)で開発が進められていますが、常に最新のリリース (7月26日時点で1.21.1)を取り込んでおり、HTTP3/QUIC以外の最新機能も利用可能です。筆者も、昨年から開発ブランチの動作を試しており、HTTP3/QUICでの大きな負荷をかけても良好なパフォーマンスを示しています。 さて、Nginxブログで言及されたHTTP3/QUICに関する機能の一つとして、“eBPFを使ったマルチプロセスアーキテクチャ” という項目がありました。QUIC特有の仕

    NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理
  • DockerとPodmanの比較 [Container Runtime Meetup #3]

    Container Runtime Meetup #3 発表資料 「DockerPodmanの比較」PodmanとはPodmanは、Red Hat社を中心とするコミュニティが開発している、Docker互換のコンテナエンジンです。RHEL、CentOS、Fedora などの Linuxディストリビューションに標準で付属しています。 Podmanの使い方は、コマンド名が docker ではなく podman である点を除けば、Docker とほぼ同じです。(例: podman run -p 80:80 --name nginx docker.io/library/nginx ) “Podman”は “Pod Manager” を意味しますが、Podmanを用いてKubernetesのPodを管理することは、基的にはできません。ただし、CRIランタイムとしてCRI-Oを用いている場合に限り、

    DockerとPodmanの比較 [Container Runtime Meetup #3]
  • Recoil Patterns: Hierarchic & Separation

    This article will discuss practical patterns in Recoil. It’s an advance topic that goes beyond Recoil basics, so we won’t spend time describing Recoil or its fundamentals concepts. If you’re not familiar with Recoil I suggest starting with the following sources: * Official Recoil YouTube * Recoil documentation This article is brought to you by WeKnow and represents insights gained during architect

    Recoil Patterns: Hierarchic & Separation
  • ソケットAPIが遅すぎる?新たなio_uringを試す!

    新しいAPIが作られるたびに、私たちは、古いAPIを置き換えるだけで高速化という夢をみます。何度夢破れても、高速なAPIが追加されたと聞けば、試さずにはいられませんよね! 今回は、Linuxカーネル5.1で追加されたio_uringを使って、Rustのasyncランタイムを実装し、gRPCサーバのベンチマークを実行してみました。 io_uringとはio_uringは、ファイルシステムとネットワークの非同期I/Oのために開発されました。同期よりも非同期のほうがおしゃれ、そういう雰囲気ありますよね!クラウドネイティブも、非同期にAPIを介して、なんかやってるやつですよね。 io_uringのインターフェイスは、高い性能を目指し、1)アプリケーションとカーネル間でのメモリコピーを避ける、2)複数のI/O要求を一度にカーネルに伝えることができる、という工夫がされています。 下図のように、アプリケ

    ソケットAPIが遅すぎる?新たなio_uringを試す!
  • NVIDIA Docker って今どうなってるの? (20.09 版)

    ※ この記事は以前私が Qiita に書いたものを、現状に合わせて更新したものです。(内容、結構変わりました) ※ 2021/01/08 CUDA Toolkit 11.2 のリリースに伴い、「NVIDIA ドライバのインストール」節を更新しました。 ※ 2020/09/24 CUDA Toolkit 11.1 のリリースに伴い、「NVIDIA ドライバのインストール」節を更新しました。 エヌビディアの佐々木です。 この記事では、Docker 等のコンテナで GPU を利用するための「NVIDIA Docker」の現状を紹介します。 「DockerGPU を使うためにあちこち調べてみたけれど、nvidia-docker コマンドを使えばよいとか、--rutime=nvidiaオプションが必要とか、はたまた Docker が標準で GPU をサポートしたとか、色々な情報があってよくわか

    NVIDIA Docker って今どうなってるの? (20.09 版)
  • 【いでよ障害対応太郎】我々はインシデントにどう向き合っているのか 〜社内向け障害対応リスト付き〜

    「なんかアプリでインシデント起きてエンジニアがどこかで対応してるらしいよ」 「インシデント時のお知らせって誰がどうやって出すんだっけ?」 「インシデントの復旧作業って今どれくらい終わってる?」 「あのインシデントって振り返りしたっけ?」 「似たようなインシデント、前も対応したような、していないような」 このような会話に覚えはありませんか? FiNC Technologies社 (以下FiNC) では今まで インシデント対応をしていても自チーム内で対処しようとしてしまい、他の人が気づけないインシデント対応の仕方にフォーマットがなく、迅速な対応やお客様への報告ができないインシデントの振り返りが実施されず、インシデント時の知見が共有されないという問題がありました。 それらの問題を 気が付きやすく、シェアしやすくする = 統一のチャンネルで情報を整理し、そこにシェアしやすい空気を作る何をすべきかわ

    【いでよ障害対応太郎】我々はインシデントにどう向き合っているのか 〜社内向け障害対応リスト付き〜
  • Mac OS のクローズボタンはなぜ左配置なのか

    https://en.wikipedia.org/wiki/Mac_OSMac OS の左と右考察シリーズ。今度のお題はウインドウのクローズボタン。閉じるボタンとも言う。昔は四角かったからクローズボックスとも言われた。Windows では右配置になっているクローズボタンだが、Mac OS を前提になぜ左配置なのかを考察したい。 ウインドウは左上からはじまり、右下に終わる情報の流れの原則に従うと、ウインドウの起点は左上、終点は右下になる。右下には(かつての Mac OS では)サイズボックスと呼ばれるウインドウを拡大縮小するための箱が設置されており、それ=終点をドラッグすることで起点を固定したままウインドウの大きさを変えられた。ウインドウに収められるコンテンツも左上起点に描画されるので矛盾がない。

    Mac OS のクローズボタンはなぜ左配置なのか
  • libwebrtc (Android) のカメラ API

    はじめにlibwebrtc は Android, iOS 共にデバイスのカメラとマイクを操作する API を提供しています。両プラットフォームの API は統一されておらず、大まかな処理の流れは似ていますが個別に覚える必要があります。 Android 版はクラスとインターフェースの数が多くて把握に苦労したのでメモしておきます。カメラの映像を深くカスタマイズしたい方 (意外と少なくないと思います) のお役に立てれば幸いです。 なお、 iOS 版ではデバイス操作に関してあまり凝った API は提供されていません。内部ではわりと OS と密結合に実装されており、カスタマイズの余地は Android より少ないです。 諸注意この記事は M83 時点での情報です。記事中のコードは Kotlin です。元のコードが Java の場合は Kotlin の表記に変更しています。処理の流れカメラの映像の取得

    libwebrtc (Android) のカメラ API
  • Recoil — Another React State Management Library?

    There are many React state management libraries, and new ones pop up from time to time. But it is not every day that Facebook themselves introduce a state management solution. Is it any good? Does it bring anything new to the table? Let’s dive in and see if it’s worth your time (spoiler: yes, it does). It was quite something, watching Dave McCabe, A Facebook software engineer, introduce a new stat

    Recoil — Another React State Management Library?
  • Raspberry Pi 4 で構築する録画マシン | 空気録学電子版【公式】

    🍓 Raspberry Pi 4 が買えるようになりました2019年11月、待望の Raspberry Pi 4 技適取得版が発売されました。H.264 ハードウェアエンコーダを搭載した、リッチなシングルボードコンピュータです。2020年5月28日には 8GB メモリ搭載の上位モデルも登場しています。 はたしてこれは何をするためのデバイスなのでしょうか? そうです、録画ですね。もうテレビの録画をするために高価なパソコンを購入する必要はありません。5000円台から入手できるマシンを利用して、安価に録画サーバーを構築することができるようになったのです。 この記事では Raspbery Pi 4 を利用した Mirakurun + EPGStation での録画サーバー構築方法と、ハードウェアエンコーダを利用した録画ファイルのエンコードについて解説を行います。 筆者の⾃宅で運⽤している録画サー

    Raspberry Pi 4 で構築する録画マシン | 空気録学電子版【公式】
  • SES support for ECMAScript modules

    SES v0.8.0Up to this point, SES has supported evaluating scripts in the SES runtime. Since every non-trivial application has many modules, running an application previously required creating a script bundle with a tool like Browserify. We’re excited to announce the first release of SES that directly supports loading ECMAScript modules. This is the first in a series of milestones toward delivering

    SES support for ECMAScript modules
  • Pythonのアンダースコア( _ )を使いこなそう!

    Pythonは一番書きやすいプログラミング言語と知られ、多くの人の第二外国語(英語に次ぎ)です。でもGithubGitlabで他人のコードを参照した時や自分でclassを書いてる時、こういう疑問はあったでしょうか: 「def __init__(self): の__init__のアンダースコアは何故二つなのか?」 「def _func(x): と def func(x): とdef func_(x): に違いはあるのか?」 「y, _ = func(x)のアンダースコアは何か?」 そんな色んな所で使われてるアンダースコアの使い方を、今回整理して説明してみました! アンダースコアの使い場所Return値を無視する。関数の名付けで使い方を区別する。数字を読みやすくする。インタプリタで最後に表示された値を代表する。以上4種類の状況でアンダースコアを使いこなす事により、読みやすいpythonicな

    Pythonのアンダースコア( _ )を使いこなそう!
  • Dealing with MySQL nulls and unique constraint

  • コンテナ技術を捨て、 WASIを試す

    こんにちは、NTTの藤田です。 Dockerfileを書くのに疲れた?イメージサイズの縮小で1日が終わった?コンテナの起動が遅すぎる?コンテナ技術と悪戦苦闘する皆様のための新技術、アーキテクチャに依存しないポータブルなバイナリフォーマットと数十μsで起動するsandbox環境を実現する、WebAssembly System Interface(WASI)を試してみました。 WebAssembly System InterfaceとはWASIは、 WebAssemblyWASM)をウェブブラウザ以外の環境で実行するため、 ホストのファイルやネットワークなどの資源に安全にアクセスさせるための仕様です。 具体的には、POSIXに似たAPIが定義されており、WASMのバイナリが、OSが管理する資源にアクセスできるようになります。 WASMは、ネイティブコードなみの速度で動作する、ポータブルなバイ

    コンテナ技術を捨て、 WASIを試す