タグ

ブックマーク / zenn.dev (272)

  • Kubernetesネットワーク 徹底解説

    Kubernetesのネットワークの構築要件に対して、世の中には様々なアプローチがあります。 書ではTCP/IPは知っているけれど、Kubernetesのネットワークの実現方法は知らない人向けに、メジャーな実現アプローチについてできるだけ噛み砕いてステップバイステップで体系的に説明します。

    Kubernetesネットワーク 徹底解説
    mizchi
    mizchi 2020/11/02
  • Typescriptの次はRustかもしれない

    Introduction Rustを学び始めたのは多分今年の3月くらい。 なぜ急にRustに興味を持ったのかは後述しますが、半年ほどRustをいじくりまわしてみて、まだまだ学び途中でもRustの素晴らしさを語らずにはいられず、記事を書くことにしました。 Rustは「Cの正当な後継」なんてよく言われますが、WebエンジニアからみてもRust当に素晴らしいってことが少しでも伝わればいいなと思います。 RustTypescript 「なぜRustTypescript?」って思う方は多いと思うので、順に話していきたいと思います。 2020年のフロントエンドの流行 まず2020年今日時点のフロントエンドについて雑に書くと ReactVueが主流 Typescriptがデファクト、babelなどでトランスパイルは言わずもがな サーバーサイドもNodeで書くならTypescript Jest、

    Typescriptの次はRustかもしれない
    mizchi
    mizchi 2020/11/01
  • なぜGoogle Meetの背景ぼかしが最強なのか(一般公開版)

    はじめに 最近ついに、Google Meet に背景ぼかし機能が利用可能になりましたよね。日語だとインプレスのケータイ Watchの記事などで紹介されてます。確か 2020 年 9 月末前後で順次リリースされていたと記憶しています。 このときは「背景ぼかし」の機能しかなかったのですが、最近(私が気づいたのは 2020/10/30)更にアップデートされました。アップデートで「背景差し替え」機能が付いて、ぼかし機能もぼかし効果が強弱 2 つから選べるようになりました。まだ日語のニュース記事は見てないですが、Googleによるアップデートの発表はちゃんとされています。 そして、Google AI Blog でBackground Features in Google Meet, Powered by Web MLという記事が公開され、実装についての解説がされました。 この記事はその解説記事を

    なぜGoogle Meetの背景ぼかしが最強なのか(一般公開版)
    mizchi
    mizchi 2020/11/01
  • Ancient C探訪記

    このでは「1975年頃のC言語」仕様を解説します。現在のC言語仕様とは異なるため、あなたのC言語ライフには役立たないことを予めご承知おきください。 (“C言語 Advent Calendar 2017”への投稿を転記したものです。)

    Ancient C探訪記
    mizchi
    mizchi 2020/11/01
  • RustでつくるGit入門

    Gitの仕組みを学び、Rustで実装する内容をまとめました。 Gitの仕組みの部分は無料公開されています。

    RustでつくるGit入門
    mizchi
    mizchi 2020/11/01
    おっ買うか
  • Zenn の記事を private/public repository で同期する GitHub Actions

    Zenn における GitHub 連携 ZennGitHub 連携して記事管理できる便利な機能があります。 「GitHubリポジトリでZennのコンテンツを管理する」 ただし、同期できるリポジトリは1つのみのため 「有料なは Private リポジトリにしたい」 「無料の記事は Public リポジトリにしたい(PR 受け付けたい)」 そんな場合にどっちしか取ることができません。 そこで Private リポジトリの無料公開記事を Public リポジトリ同期する GitHub Action を書いたので紹介します。 構成 Zenn と同期するのは Private リポジトリです。 Private リポジトリで執筆します。 Private リポジトリの同期ブランチが更新(push)されると Priate リポジトリで同期アクションが実行されます。 (PR のことも考えて逆方向も対応

    Zenn の記事を private/public repository で同期する GitHub Actions
    mizchi
    mizchi 2020/10/29
  • react-modal のアクセシビリティまわりの実装を読む

    react-modalのアクセシビリティまわりの実装について、ソースコードを読んでみたかったのでその記録を残します。 特にことわりがない限り、 v3.11.2 の内容に基きます。 ドキュメント react-modalのドキュメントには accessibility という項目があり、3つの機能について説明があります。 The app element Keyboard Navigation ARIA attributes The app element 主にスクリーンリーダーのユーザー向けの機能で、 aria-hidden 属性によって、モーダルが開いているときにページコンテンツを非表示と同じような状態にする機能です。視覚的にモーダルウインドウがページコンテンツの上に被さるように表示されている=ページコンテンツが隠されているのを、スクリーンリーダー向けにはモーダル以外の部分に aria-hid

    react-modal のアクセシビリティまわりの実装を読む
    mizchi
    mizchi 2020/10/27
  • React / Redux を実務で使うということは

    注意 この記事に書いてあることは古い情報になっている可能性があります 最近ReduxToolkit周りの進化がめざましく、更に追加されたReduxのドキュメントの項目がかなりわかりやすく書かれているため、基的にこちらを推奨します 既にRTKなどの概要を知っているひとは特に Tutorials > Redux Essentials のセクションを読んでほしいです こんにちは、すずです Reactを使い始めて2年半経ち、その間に3つのサービス(SPA)を立ち上げてきました その経験から、 React や Redux を実務でしっかり使ってく上でのノウハウを紹介していきます (この記事ではある程度ReactやReduxの記事・ドキュメントを読んだ初学者を対象としています) 序 フロントエンド、モノを作ったはいいものの、「変更しづらい」「スケールしない」「この作りではパフォーマンスが出ない」って

    React / Redux を実務で使うということは
    mizchi
    mizchi 2020/10/24
    あんまり賛同できなかった
  • Reactチュートリアル1:犬画像ギャラリーを作ろう

    資料について 資料は日大学文理学部情報科学科の開講科目「Web プログラミング」の教材として作成されました。資料は下記のライセンスの範囲内で、当授業以外でも自由にご利用いただけます。 対象読者 資料は、以下の教材を学習済み、もしくはそれと同等以上の知識を持っていることを前提としています。 Web 入門 HTML 入門 課題:手紙をマークアップする 課題:コンテンツページを構造化する CSS の第一歩 課題:新しい知識を使う JavaScript の第一歩 課題:バカ話ジェネレーター JavaScript の構成要素 課題:イメージギャラリー JavaScript オブジェクト入門 課題:バウンスボールに機能を追加する クライアントサイド Web API ドキュメントの操作 サーバからのデータ取得 資料で学ぶこと 資料では以下の内容を学びます。 React の基 開発の始め方

    Reactチュートリアル1:犬画像ギャラリーを作ろう
    mizchi
    mizchi 2020/10/24
  • レガシーおじさん、SPAを始めてみた。そして限界を知る

    はじめに 最近、Webの記事を見てるとReactVue.jsばかりが上がっていてJSPやERBの話をしてる人は誰もいません。jQueryの記事ももちろん見ない。 つまり、Webだけ見る限りではほとんどの人がSPAを使ってるように見えます。 私はWeb界隈には居るもののどちらかというとバックエンド寄り、もっというとそもそもWebとか関係ない領域を見る事が多いので、ちょっとキャッチアップを兼ねていくつかの個人プロダクトにVue.jsを採用してみました。 jQueryくらいで頭が止まってたので。サーバサイドもマイクロサービスでAPI化が進んでるのでフロントもそれに合った技術を選ばないとですしね。 というわけで、今回はその中で得た知見というか、従来型のサーバサイドでのWeb開発をしていた人の視点でVue.jsをキャッチアップする流れで書いていきたいと思います。 まあ最終的な結論は正直「これすごく

    レガシーおじさん、SPAを始めてみた。そして限界を知る
    mizchi
    mizchi 2020/10/19
    next.js + vercel やってみるとよさそう
  • hygen で生成 - 対話形式の Component 雛形 -

    Component 作成にあたり、storybook や test も一度にコミットする場面が増えてきました。そして CSS Modules や、特定 Component 専用の custom hooks など、一つの Component を構成するファイル群はそれなりの量になってきます。例えば、以下の様な module 構成の Component です。これを手作業で作成するとなると、少し億劫になりますよね。 └── atoms └── Button ├── Button.stories.tsx ├── Button.test.tsx ├── Button.tsx ├── dependencies.ts ├── index.tsx └── style.module.css 作成時にButtonという名称だけ決めてしまい、CLI から雛形出力できれば、作業効率向上が見込めます。(story

    hygen で生成 - 対話形式の Component 雛形 -
    mizchi
    mizchi 2020/10/18
  • blitz-js がどうやってサーバー上の関数のクライアントでの呼び出しを実現しているのか、調査した

    blitz-js prisma rails 倒し方 を書いた時、こういう疑問がありました。 この db はクライアントでもサーバーでも呼べるようにみえる。ここが blitz のキモで、サーバーではそのまま prisma として実行されるが、内部実装を読んでいないので想像だが、 この db はクライアントでは同じ API の RPC に変換されている? (ここにセキュリティ上の不安はある。すべてをクライアントから呼べてしまう恐れはないのか? あとで blitz のコードを呼んで、どうやって実現しているか確認する) この件についての調査をしました。 Isomorphism: クライアント・サーバー同型 blitz では、次のようなコードをクライアントでもサーバーでも呼ぶことができます。 // app/auth/mutations/login.ts import { Ctx } from "bl

    blitz-js がどうやってサーバー上の関数のクライアントでの呼び出しを実現しているのか、調査した
    mizchi
    mizchi 2020/10/18
    書いた。頑張ってblitz本体のコード読んだ結果。
  • シュトヘル達の名前を西夏文字 (Unicode) で書く

    初稿: 2020-10-16 小松弘幸 (@komatsuh) 記事の内容 シュトヘルという漫画がとてもよいです 西夏文字をコンピューター上で扱う方法を紹介します 西夏文字の簡易辞書を作成します シュトヘルの登場人物を西夏文字で表現します ユルール 𘅝𘚻 (U+1815D U+186BB) - 祝福 (慶喜) ハラバル 𗱈𗰞 (U+17C48 U+17C1E) - 黒虎 シュトヘル 𘄅𗾢 (U+18105 U+17FA2) - 雀子 左から順に ユルール ハラバル シュトヘル はじめに この文書に登場する西夏文字を正しく表示するためには、おそらくフォントのインストールが必要です。下記の GitHub などからダウンロードとインストールができます。 Noto fonts: NotoSerifTangut (GitHub) シュトヘルと西夏文字 シュトヘルという漫画を読んでとても好

    シュトヘル達の名前を西夏文字 (Unicode) で書く
    mizchi
    mizchi 2020/10/17
  • Cloudflare Workers の Durable Objects について

    とくに断りがない限り、引用文は Workers Durable Objects Beta: A New Approach to Stateful Serverless を Deepl で翻訳したものです。 前提知識として、 Cloudflare Workers 自体の解説はしません。こちらを参照してください。 Cloudflare Workers それは Frontend / Node.js が CDN Edge Side まで拡張されるもの 要約すると Cloudflare Workers は CDN Edge で低遅延、低スペックCPUの Node.js の Worker が高速に動くサーバーレス環境です。 Durable Objects とは 注意: まだクローズドベータです。 来は、手元で動かしてから記事を書くつもりでしたが、クローズドベータに申し込みしてから待てども待てども解禁

    Cloudflare Workers の Durable Objects について
    mizchi
    mizchi 2020/10/17
    書いた。熱い新機能なんだが、まだ Activate されてない…
  • ISUCON10予選の作問を担当しました

    この度、ISUCON10の運営に携わる機会を頂き、予選問題の作成を担当しました。作問の際に考えていたことや狙いなどを、記録として記事に残すこととします。 Github: isucon/isucon10-qualify 運営に携わることになった経緯 私は株式会社リクルートの2020年度新卒としてリクルートテクノロジーズに入社しました。 新人研修の一環として実施されるOJTでは、私を含めて3名の新人が予選問題の作成チームにアサインされました。 (通常の新人研修から外れ、ISUCONの運営を手伝う経緯になりました。) 私がアサインされたタイミングでは、以下の二点が決まっているだけでした。 テーマがISUUMOというイスと物件を購入できるサービスである 地図上をなぞって物件を探せる「なぞって検索」という目玉機能がある @yosuke_furukawaさんを含む3名にメンターをしていただきながら、新

    ISUCON10予選の作問を担当しました
    mizchi
    mizchi 2020/10/13
  • CTO協会のデジタル庁創設にかかる提言について

    このエントリは、日CTO協会が公開したデジタル庁の創設に向けた提言について私の意見をまとめたものです。 デジタル庁とは何か まずデジタル庁はまだ存在していない組織で、今後作られる予定のものです。 これが、どのようなものであるかは、以下の記事を一通り読むことでおおよそ理解できます。 デジタル庁について 過去の失敗に学ぶ デジタル庁のあるべき姿とは? 提言で主張して欲しいこと もしデジタル庁が発足するとして、デジタル庁が持つべき役割と責任範囲はどんなものになるのでしょうか? 政府や行政の抱えるどのような問題がデジタル庁によって解決し、それによって国民生活はどう改善するのでしょうか? それらを考えるにあたって、どのような理念でその組織は設立されるのでしょうか? CTO協会の皆さまにおかれましては、その理念について整理して欲しいと考えます。 提言に期待する基的な方向性 DXやデジタル化というも

    CTO協会のデジタル庁創設にかかる提言について
    mizchi
    mizchi 2020/10/09
  • 「Web 技術解体新書」執筆について

    「Web 技術解体新書」執筆について Intro 「Web 技術解体新書(Web Anatomia)」という書籍の執筆と、 zenn 上での販売についてアナウンスします。 各章を分割して執筆し公開していく予定です。 第一章: Origin 解体新書 Web 技術解体新書とは Web というものを正しく理解するために必要な知識や技術は日増しに増え、それに従い学ぶためのコストもかなり上がってきています。 一方で、多くの書籍や雑誌、 Web 上の記事、動画や音声コンテンツは充実しており、学ぶための手段もかなり広がっています。 しかし、 Web に関わる技術書籍の多くは、何らかのフレームワークの解説や、 JS/CSS などの特定技術、特定の非機能要件に特化したものが多く、(その括りの曖昧さ故) Web という括りで書かれたものはあまりありません。 あったとしても、多くは初心者向けなものが多く、ある

    「Web 技術解体新書」執筆について
    mizchi
    mizchi 2020/10/05
  • コンピューターサイエンスの学習は、職業エンジニアになることを阻害する

    「俺らはやめる。後どうするかは勝手に考えろ」 様々な考えがあるのは承知していますが、そもそも考えというものは全て様々ですので、その中の一つを表明する必要があります。 コンピューターサイエンスの学習が、駆け出しエンジニアの職業エンジニアになる過程で邪魔となるという話をいたします。邪魔をするということを具体的にいえば、職業エンジニアになるまでにかかる時間が長くなる、ということです。 なぜでしょうか。それはコンピューターサイエンスが楽しいものであるからです。楽しいというのとてもいいことですが、職業エンジニアが何故成立するのか、その原理と照らし合わせてみると、矛盾が生じてきます。矛盾には常に立ち向かう必要があります。 まずはプロフェッショナル、つまり職業としての活動というのは、どういう理由で成り立っているのか改めて考えてみる必要があります。 職業として成立するのは、お金を払ってでも他人に頼みたい面

    コンピューターサイエンスの学習は、職業エンジニアになることを阻害する
    mizchi
    mizchi 2020/10/03
    やっぱ因果が逆でまともにCSやった人が日本の経営層にいないのでCSが必要な事業を判断できずにCS雇用を創出できてない。それで上澄みが全部外資に流れる。
  • Github Actions で他のリポジトリからの変更通知を受け取ってPRを作成する Workflow

    やりたいこと リポジトリ A は npm package を publish したことを リポジトリ B に通知したい リポジトリ B は 通知を受けたら package.json を更新する PR を作成したい 個人のリポジトリでの依存ならこの需要は少ないかもしれませんが、社内でリポジトリを分割してたりすると、更新漏れが発生したりします。それを機械的に防ぎたい。でも手動マージはしたくないのでPR作成まで。そのぐらいの温度感を実現したい、という感じ。 また、リポジトリ B は リポジトリ A の通知によらず、手動でそのタスクを実行できるようにしておきたいです。 (ネタバレすると、先に手動のタスクがあって、その上でリポジトリ間通知を実装しました) (構成要素とレシピ紹介がメインで、コード自体は動いてたコードからの切り貼りなので、そのままは動かないかも。後で要確認) 実装方法 GitHub A

    Github Actions で他のリポジトリからの変更通知を受け取ってPRを作成する Workflow
    mizchi
    mizchi 2020/09/30
    書いた
  • 次世代公開鍵暗号 | Zenn

    次世代暗号の世界標準を決定する第4ラウンドが始まりました。 https://www.nist.gov/news-events/news/2020/07/nists-post-quantum-cryptography-program-enters-selection-round 効率性ではほかの候補より劣るものの、絶大な安全性を持つのがMcEliece暗号です。(実装は簡単な方だと思うし、巨大整数を使わず解読するのはものすごく難しい) 効率性で特に問題なのが、この暗号の公開鍵が800メガバイト以上あるということです。 到底ICカードには使えません。 プロセッサのキャッシュにも入りません。ただ演算装置にするときは比較的単純な回路になるだろうと思われます。 この暗号方式は誤り訂正符号に基づく暗号の代表として選抜されたようです。 もしこの方式が世界標準になれば、ほぼ強制的にRSAの代わりとして実装

    次世代公開鍵暗号 | Zenn
    mizchi
    mizchi 2020/09/29
    “公開鍵が800メガバイト以上ある”