タグ

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

  • Why Japanese Websites Look So Different

    & how to analyze design choices without jumping to conclusions Over the years, I have had many encounters with Japanese websites — be it researching visa requirements, planning trips, or simply ordering something online. And it took me a loooong while to get used to the walls of text, lavish use of bright colors & 10+ different fonts that sites like this one throw in your face: Hankoya — a website

    Why Japanese Websites Look So Different
  • ヒープについてわかりやすく解説してみた – Yasufumi Taniguchi – Medium

    的なデータ構造であるヒープについて、概要、計算量と実装、そして最もシンプルな応用であるヒープソートを紹介します。MITが講義や資料を公開しているMIT OpenCourseWareのアルゴリズムとデータ構造の講義 が非常にわかりやすかったので、その内容に沿ってまとめました。この記事ではHeaps and Heap Sortの内容を以下の順序で解説します。 ヒープの概要ヒープの表現ヒープの構築ヒープの計算量ヒープの実装ヒープソート1. ヒープの概要ヒープ (heap) は優先度付きキュー (priority queue) の実装の1つです。優先度付きキューは集合 (set) を扱うデータ型で、集合に含まれる要素が何らかの優先度 (priority) 順に取り出されるという特徴を持っています。学会のポスター発表を回るときや、旅行先での観光地巡りでは、優先度に基づいて要素を取り出すことが重要

    ヒープについてわかりやすく解説してみた – Yasufumi Taniguchi – Medium
  • TLSが難しい?RustとLinuxカーネルで実装しよう!

    TLS(Transport Layer Security)が難しすぎると、お嘆きのセキュリティファースト世代の皆様、RustLinuxカーネルを実装しながら学んでみましょう! カーネルモジュールの実装は難しい?それは誤解です。TLSをアプリケーションとして実装しようとすると、各種のライブラリを検索していたつもりが、SNSを眺めていて、一日が終わっていることありますよね。カーネルモジュールを実装するために使えるのはカーネルの機能だけです。検索する必要はなく、雑念が生じる余地はありません。その集中力があれば、カーネル開発は難しくありません。 TLSとLinuxカーネル皆様の中には、LinuxカーネルはTLSをサポートしているのでは?と思っている方がいるかもしれません。TLSは実際のデータの送受信の前に、ハンドシェイクと呼ばれる、暗号鍵の合意や相手の認証を実施します。ハンドシェイク後、Linu

    TLSが難しい?RustとLinuxカーネルで実装しよう!
  • Flutterアプリにおける、過不足ない設計の考察🎅

    Photo by Hush Naidoo Jade Photography on Unsplash「一般的なモバイルアプリ」の設計全般において、特に何に気を付ける必要があるか、あるいは逆にあまり気にしてなくても良いのではと思うことなどを述べていきます。 (…のつもりでしたが、後者含めると1記事に収めるの困難で、最後にさらっと触れつつ別記事で手厚く書きたいところです🤔) ここでの「一般的なモバイルアプリ」は規模観点では以下程度のイメージですが、それを超えるような規模でも通ずる内容も多いと思っています。 コード量: 数万〜十数万行実装者: 一桁人種類としては(スマホ向けの)クライアントアプリコードであり、以下などではないです。 パッケージ・ライブラリではないサーバーサイドではないこの種類によって適切な組み方はけっこう変わり、アプリコードは依存関係の末端側(基的に依存される側にはならない)な

    Flutterアプリにおける、過不足ない設計の考察🎅
  • 【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の一切の利用を中止し、すべてのサーバとシステ

  • テープが擦り切れるまで聞いた Rebuild.fm 厳選オススメ回 4選

    私はソフトウェアエンジニア、宮川達彦さんが運営するポッドキャスト Rebuild.fmの大ファンです。当時の同僚に勧められて初めて聞いた2014年から今まで聞いていない回はおそらくなく、何度も繰り返し聞いた回がいくつもあります。 自身で書いたブログなどでもRebuild.fmを参照させてもらったことも多く、2021年に翔泳社さん運営のWebメディア BizZineにプロダクトマネジメントに関する記事を投稿した際にも、記事内でRebuild.fmの回に触れ、放送回のタイトルを記事タイトルに引用させていただきました。 ビジネス寄りの媒体であるBizZineにRebuild.fmへのリンクが貼られているのは私の記事だけではないかと自負しています。

    テープが擦り切れるまで聞いた Rebuild.fm 厳選オススメ回 4選
  • 現行のインボイス制度に関するSkebの対応につきまして

    いつもSkebをご利用いただきありがとうございます。 2023年10月1日よりインボイス制度(適格請求書等保存方式)が開始されます。現行のインボイス制度に関するSkebの対応をお知らせいたします。 このお知らせはインボイス制度の解説を含み、非常に長い説明となっているため、先に要点を記載させていただきます。 要点Skebは現行のインボイス制度に強く反対します。インボイス制度は「クリエイターの名がファンにバレる問題」「消費税の納税義務を負うか、取引が不利になるか二択を迫られる問題」「事務負担が増える問題」などクリエイターのみなさんにとって問題点が多く、十分な議論がなされないまま開始されようとしています。Skebでは特例制度を活用し、上記の問題を解決します。 Skebを利用する取引に限っては、クリエイターのみなさんの名が登録番号経由でクライアントのみなさんにバレたり、インボイスに対応していな

  • え! QUIC無効化するの? HTTP over QUIC or TCPの接続選択を考える

    図1: QUICの無効化は待ってくださいQUICを無効化?!“Googleが遅く感じるので、QUICを無効化する” そのようなTIPSが散見されます。数年前から見ていましたが、QUICがトレンドになったのと同時に、再び目立ち始めたと感じています。IPv6が普及し始めた時期もそうでしたが、新しいプロトコルの出現時には、決まって現れる文言です。 問題に直面する利用者にとっては切実であり、無効化は間違った解決手段とは言いません。しかしエンジニアならば無効化する前に、原因を探求しなければなりません。 HTTP3/QUIC と HTTP2/TCP どちらが優先?QUICの無効化とは、TCPだけを利用する選択と言えます。はじめにQUIC, TCPの両者が使えるとき、どのように使い分けるのか見ていきます。 ある、HTTPSスキームのURL https://www.example.com/ があったとき、

    え! QUIC無効化するの? HTTP over QUIC or TCPの接続選択を考える
  • AWS IAM セキュア化の取り組み

    鍵がいっぱいあるよこの記事は Eureka Advent Calendar 2021 の 13日目の記事です。 はじめにこんにちは、エウレカ SREチーム のハラダです! 2020年頃から今年にかけて、 エウレカのSREチームとSecurityチームではAWS IAMのセキュア化を注力ポイントのひとつとして、継続的に取り組んできました。 記事では、その実践から学んできたIAM管理で守るべき大原則および、具体的にどうやってセキュアな理想像に近づけてきたか、今後の方向性などを話したいと思います。 Why “IAM” so important ?そもそもなんでIAMが注力ポイントなの?と疑問に思われる方もいるでしょう。 クラウドの大きな強みである「すべてをAPI経由で操作できる」という性質ゆえに、IAMは大きなAttack Surfaceでもあります。 Gartner社の予測によると、2023

    AWS IAM セキュア化の取り組み
  • 完全マネージドな k8s ! GKE Autopilot を解説する

    Kubernetes / GKE ファンの皆様こんにちわ。Google Cloud の Kazuu (かずー) です。GKE Autopilot が GA になりました。弊社公式ブログに続きまして、GKE Autopilot を日語で解説していきたいと思います。 記事は以下、3 部構成となります。 GKE Autopilot 概要GKE Autopilot を試してみるGKE Autopilot がハマりそうなユースケースは? 1. GKE Autopilot 概要GKE Autopilot は GKE の新しいモードです。Control Plane に加えて、Node が完全マネージドになります。これまでの GKE では Node はユーザー自身が必要台数分作成し、以後の Day 2 オペレーション (e.g. アップグレード) 等も気に掛ける必要がありました。GKE Autopil

    完全マネージドな k8s ! GKE Autopilot を解説する
  • ソケット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を試す!
  • gRPCが遅すぎる?eBPFでカーネル内で動かす!

    gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕

    gRPCが遅すぎる?eBPFでカーネル内で動かす!
  • TCPが遅すぎる?QUICを使おう!

    「それ、QUIC使えないの?」 それがなんであれ、QUICを使うことを主張することで、みんなが「なんか良くわからないけど、TCPを置き換えたほうがいいのかな?」と思うようになるはず。全てのアプリケーションを、TCPの代わりにQUICを使うように修正するとなれば、この先10年間ぐらい、エンジニアみんなの仕事を作ることができます。業界愛ですね。 すでに、SSHやDNSのQUIC対応は始められています。既存のアプリケーションをQUICに対応させる難しさを調査するために、RustでBGP over QUICを実装してみました。 QUICの実装QUICは、TCPと同じく、パケットの再送、輻輳制御など、信頼性のある通信を実現するトランスポートプロトコルです。実装面の大きな違いは、TCPがオペレーティングシステムのプロトコルスタックの一機能として実装されるのに対して、QUICはアプリケーションで実装され

    TCPが遅すぎる?QUICを使おう!
  • Google Apps Script は何が強くてどんなときに使うべきかプラクティスをまとめてみた

    はじめにGoogle Apps Script は無料で色んなことが実現できるため、ついつい「全て GAS でやっちゃおう」みたいな話になりがちです。Google Apps Script も万能ではないので、強み・弱みを理解した上で他の選択肢と比較して使うのをお勧めします。 Google Apps Script のプロジェクトを 2–30 個作ってきた中で、自分なりのプラクティスをまとめてみます。 この内容は Cloud Next ’18 in Tokyo で登壇したときの内容を含んでいます。この登壇から半年以上経ったのでアップデート部分も以下にまとめています。 Google Apps Script の強み・弱みまず、強みと弱みについてまとめてみます。 強み 1. Google Apps の API を簡単に呼び出すことができる一番の強みはこれだと思います。Google Apps Scrip

    Google Apps Script は何が強くてどんなときに使うべきかプラクティスをまとめてみた
  • Flutter FAQ 🇯🇵

    さらに自分なりに表現すると、次のように思っています。 Hot Reload/Restartによって、実装と確認のフィードバックサイクルが極めて速い(ビルドで数十秒以上程度待たされることの多いネイティブ開発環境と比べて)ネイティブアプリと見分けの付かないような高クオリティ・高パフォーマンスなアプリの開発も可能リッチなフルカスタムUIも組みやすいさらに、Google I/O 2019でもアピールされていたデスクトップ・Webへのクロスプラットフォームアプリの開発も可能になりつつある(まだプレビュー版で現時点でのプロダクション利用は厳しい)のも、今後への期待ポイントです。 Flutterの学習コストは?個人的には、以下程度に思っています。 簡単なプロトタイプ・ごくシンプルなアプリ: まあまあ簡単ある程度複雑・中規模以上のアプリ: 簡単ではない(iOSネイティブよりも少し習熟しやすいかも?程度)簡

    Flutter FAQ 🇯🇵
  • 「良いエンジニア」を言語化してみました

    「VOYAGE GROUP エンジニアの公開ガチ評価会」に参加して、最近考えていた「良いエンジニア」像がかなり良い感じだと思うようになりました。 「ガチ評価会」自体の内容は他の方のブログに譲るとして、「ガチ評価会」で聞けなかった部分、つまり「普段だったら『ビジネス的側面からの技術投資判断』とかも聞くんだけど」と言っていたところが、まさに聞きたいところだったのでニヤッとしました。聞けなくて残念♪ 妥協ない挑戦元々ピクシブの技術力評価においては、「最近やった妥協ない挑戦は何ですか?」というのをキーワードにやってました。 解決すべき課題に対して、どういう背景があって、どういう事前調査をして、どういう実装をして、どう考察するか、というところまでをきちんと考えて仕事することに成長があるんだよ、というメッセージ性です。 そんなこと言っても普段は妥協ばっかりですって?いえいえ、相反する選択肢の中で、何を

    「良いエンジニア」を言語化してみました
  • 米国トップダウン経営のメカニズム

    ずいぶんと昔、ボトムアップな経営スタイルについて記事を書いたことがあるのだが、現在は米国の大きなスタートアップに勤めているので完全なるトップダウン経営の組織にいる。 日にいたときは、トップダウンのチームというものに縁がなかったし、体験したこともなかった。米国に来て初めて、部下としても上司としてもこれを体感しているわけだが、なるほどこれは面白いなあと思ってちょっと書いてみようと思ったわけである。 もしアメリカ(の非日企業)で働きたいと思っている人には何かしらの役に立つかもしれない。 「トップダウン」=「実力主義」一言で言ってしまえば、トップダウン経営とは実力主義である。 だが日で「実力主義と聞いたときの嫌な感じ」とは全く違う。 実力主義とは「最も優秀な人」「最も判断力がある人」「チームを率いることができる人」が重要な位置につく・昇進するというシンプルなルールであって、「実力があれば何を

  • Engineering Managerの難しさTOP3

    この記事はEngineering Manager Advent Calendar 2018の14日目の記事です。 株式会社FiNC Technologiesにてエンジニアリングマネージャーやっております清水 @takayuki_shmz です。今は自分の担当の日が回ってしまいそうで焦っております。 今日はEngineering Managerをそこそこやってみて、特に難しかったなぁという点を書きたいと思います。TOP3とか偉そうに書いてますが気をつけてください、n=1の主観100%です。異論は余裕をもって認めます。 まぁ「この世のすべての不利益は当人の能力不足」とのことなので、以後でる話題はすべて自分がマネージャーを始める際の勉強不足が原因なのですが、Engineering Manager界隈も徐々に盛り上がっていますので、僕のただの後悔を書き綴ることで、誰かの役に立てばと思います。 では

    Engineering Managerの難しさTOP3
  • 「本質的に難しい問題を技術で解決するような、世界的な成果を出したい」LayerX CTOの語るブロックチェーン領域の面白さとLayerXエンジニアチームの目指す所

    質的に難しい問題を技術で解決するような、世界的な成果を出したい」LayerX CTOの語るブロックチェーン領域の面白さとLayerXエンジニアチームの目指す所こんにちは。エンジニアのサルバ(@moonty_sal)です。今回はLayerXのエンジニアリングに関するアレコレをCTOの榎(@mosa_siru)に語ってもらいました。 — 最初に自己紹介と、最近の働き方について聞いてみたいです。 2013年に新卒として株式会社ディー・エヌ・エーに入社して、2015年にGunosyにジョインし、「ニュースパス」など複数のアプリの立ち上げに携わり、アーキテクト / リードエンジニア等を担当していました。2018年8月からはLayerX設立に伴い同社CTOに就任しました。国内外を問わず、技術面や法規制面において、ブロックチェーンを取り巻く状況は日々目まぐるしく変化していて、ゲームチェンジングな出

    「本質的に難しい問題を技術で解決するような、世界的な成果を出したい」LayerX CTOの語るブロックチェーン領域の面白さとLayerXエンジニアチームの目指す所
  • OSS のためのトークン “Dev”

    “Dev” とは?“Dev” は OSS の公平な収益化を実現します。 手数料も利用料も不要です。 トークンエコノミーを活用することで、開発者は開発に集中し、投資家は OSS を効果的に支援することができます。 OSS は基的に無償で提供されています。OSS の開発者は OSS とは別の収益源を確保することで、OSS でのアクティビティを維持しています。 代表的な収益源には次のようなものがあります。 社員として働くフリーランサー寄付OSS を SaaS で提供エンタープライズサポート[1], [2] は OSS そのものの収益ではないので、OSS には限られた可処分時間が割り当てられることになります。 [3] の収益は OSS の価値とは乖離した額になりやすく、その原因は恣意性の高い評価モデルにあります。OSS 開発者はその評価を上げ続けることができるよう、技術以外のフィールドでも努力す

    OSS のためのトークン “Dev”