A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your team

TypeScriptではデザインパターンとしてtagged unionによる直和がよく使われます。このときパターンマッチに相当する処理はswitchで行われますが、そこで直和に対する分岐が網羅的であることの保証を実行時と型検査時の両方で賢く行う方法がこれまでも模索されてきました。 今回、ヘルパー関数を導入せずにいくつかの問題を同時に解決する賢い方法を思い付いたので共有します。 コード これだけです。 // switch (action.type) { ... default: throw new Error(`Unknown type: ${(action as { type: "__invalid__" }).type}`); // .. } 以下、より詳しく説明します。 問題 TypeScriptではオブジェクトに type プロパティーを用意し、決まった文字列を入れることで直和を実現
ニューヨーク市で遠赤外線サウナを楽しむ女性。遠赤外線サウナには様々な健康効果があるが、汗で毒素を排出できるといううたい文句は科学的に証明されていない。(PHOTOGRAPH BY LAUREL GOLIO, REDUX) デトックスという言葉が流行語大賞にノミネートされたのは2007年のこと。以来、この言葉は私たちの生活にすっかり溶け込んでいる。「毒素を排出してきれいにする」のはとても魅力的だが、それだけに誤解も少なくない。誤った情報に振り回されないように、よく見かける“デトックス神話”のひとつである「汗をかいてデトックス」の真相を科学者が厳密に検証した研究を紹介しよう。 ギャラリー:フィンランドの驚きのサウナ 写真5点 発汗は今や健康や美容のトレンドになっている。同じく昨年の流行語大賞の候補になった「ととのう」をはじめ、「サウナ―」や「サ活」などのキーワードが生まれたサウナから、これもブ
React でフォームを作るとき「制御・非制御」コンポーネントに関する知識は必須です。デザインシステムを作成するにあたり、どちらを採用するか検討されたこともあるかと思います。 「制御・非制御」コンポーネントの差分を一言でまとめると、次のとおりです。 制御コンポーネントはライブラリ(React)が「入力要素の状態」を管理 非制御コンポーネントは「入力要素の状態」を DOM 自身が保持 「制御・非制御」コンポーネントと Form ライブラリ React Hook Form は、非制御コンポーネントを使うことで、少ないコード量で高パフォーマンスの Form 実装が実現できる人気のライブラリです。「非制御コンポーネント」として作成された<Checkbox>コンポーネントの例を見てみましょう。次の方法で<input type="checkbox" name="test" />がレンダリングされ、Fo
TypeScript (4.7 時点) において, 文字列に付けられる型には以下の 3 つ (とそのユニオン型) があります. 文字列型 string 文字列リテラル型 ("foo" など) テンプレートリテラル型 (`data-${string}` など) これらのうち, 実行時の入力, 特に事前にパターンが想定されていないような任意の入力が含まれるような文字列に対しては, string や string を含むテンプレートリテラル型を付けることはできても, 文字列リテラル型を付けることはできません. 文字列リテラル型を付けるためには型検査時 (実行の前) に入力文字列の内容がわかっている必要があるので, まあそれはそうですね. このことを利用して, 実行時の入力を含む文字列を与えようとすると型検査に失敗するような関数を作ることができそうです. まずは与えられた型が文字列リテラル型, ま
「ダークファンタジーって知ってる?」 と訊かれたら「なんか暗くて怖くて重くて人がたくさん死んでいくような、漫画で言えば『ベルセルク』とか、ドラマで言えば『ゲーム・オブ・スローンズ』とか、ゲームで言えば『エルデンリング』みたいなファンタジーのことでしょ?」と答える人が多いのではないだろうか。 でも「ダークファンタジーってホラーのことだよ」と言われたらどうだろう。確かにそんな用法を見かけることもある気がする。たとえば『呪術廻戦』は公式でそう銘打たれている。 異才が拓く、ダークファンタジーの新境地! 『呪術廻戦』|集英社『週刊少年ジャンプ』公式サイト あるいは『鬼滅の刃』などもダークファンタジーと呼ばれることが多い。 まずは簡単に、『鬼滅の刃』自体の概要を紹介しよう。本作は、「人を食う鬼と人間の闘いを描いたダークファンタジー」だ。 【解説】映画『鬼滅の刃』に宿る名作漫画への敬愛と「人の弱さ、心の
2022年8月7日、米国のクラウドコミュニケーションプラットフォームサービスを提供するTwilioは従業員がスミッシングによるアカウント侵害を受け、その後に同社サービスの顧客関連情報へ不正アクセスが発生したことを公表しました。また、Cloudflareも類似の攻撃に受けていたことを公表しました。ここでは関連する情報をまとめます。 米国2社が相次ぎ公表 TwilioとCloudflareは、従業員に対し、何者かがIT管理者からの通知になりすましたSMSを送り、記載されたURLからフィッシングサイトへ誘導される事例が発生したことを報告。 2022年8月7日 Twilio Incident Report: Employee and Customer Account Compromise 2022年8月10日 Cloudflare The mechanics of a sophisticated
先日 CDK for Terraform が GA になりました。 CDK for Terraform を使うことにより、 TypeScript や Go などといったプログラミング言語を使って Terraform エコシステムを利用したインフラの定義やプロビジョニングを行うことができます。 「Go でインフラが書ける」と聞き、ふと思ったことがこちらです。 というわけで書きました。 (2022/10/27 追記) CI/CD も Go で書いた記事を公開しました。 作ったもの GoGoGo 猫の画像をランダムで表示するサンプルアプリです。 主な利用技術について簡単に紹介します。 利用技術 Go 説明不要ですね。 Google 様が作ったプログラミング言語です。 Gin Go の軽量な Web フレームワークです。 公式の紹介に「パフォーマンスは Martini の最大 40 倍です」と書か
先日 Babel のメンテナーとして知られる Nicolò Ribaudo 氏が次のツイートを投稿した。 We finally finished migrating the Babel monorepo from Flow to TypeScript! It has been a very long process started by @z_bodya, and after migrating package-by-package @JLHwung just opened this PR 😄 pic.twitter.com/WKXxV8x2MY — Nicolò Ribaudo 🏳️🌈 • 💙💛 (@NicoloRibaudo) July 23, 2022 そう、JavaScript のトランスコンパイラである Babel のソースコードが Flow から TypeScrip
こんにちは、21Bのseasonです。この記事はtraP夏のブログリレー3日目の記事です。 自作Cコンパイラでセルフホスト達成しました。 リポジトリ: https://github.com/season1618/c-compiler/tree/main 自作Cコンパイラでセルフホスト達成しました!!!!!!🎉🎉🎉https://t.co/8fLIAJWksQ pic.twitter.com/2fgH5sKoZ0 — season (@season1618) July 27, 2022 実際にどうやって作るかを書くと長くなるので、ここでは経緯とか完成までの流れとかを書こうと思います。一応開発メモは以下に上げておきました。 開発メモ: https://github.com/season1618/note/blob/main/cs/c-compiler/index.md 経緯 大学の講義で
関西一円で巨額の寄付を集める 「あの女霊能師にやられて、私は高額の壺やペンダントなどを購入し、膨大な寄付もしてきました。その総額は3500万円ほどになります。 山上容疑者の母親が旧統一教会に寄付したうち、2000万円程度はあの女がかかわっています。関西地方の旧統一教会で霊感商法に携わる人物のなかでも、最も悪質な人だと思っています」 こう話すのは、数年前まで旧統一教会(現・世界平和統一家庭連合)に在籍していた元信者のAさんだ。Aさんは、山上徹也容疑者の母親とも旧知の関係にある。Aさんの自宅の居間には、今も旧統一教会で買わされた壺、ペンダント、指輪などが埃をかぶったままほったらかしになっている。 安倍晋三元首相の射殺事件を引き起こした山上徹也容疑者は、いま精神鑑定留置となっている。山上容疑者は、母親が旧統一教会に1億円以上の寄付などをさせられ、家庭崩壊に追い込まれたことが動機だと説明していると
「良いコード/悪いコードで学ぶ設計入門」という本がとても売れているようです。私の所属している開発チームでも、何人か購入した人がいたので、私も購入して一通り読んでみました。 結果として、いくつかの考えが整理され、私としてはこの本によって考えが深まり、本を読んで考えた事自体は有意義であったと思いました。ただし一方で、あまり知識がない状態で(自分の中での判断軸が無い状態で)この本を読むと、色々と誤解が生まれるのではないか?という事を感じました。 一つの技術書がこれだけ売れるという事はそんなに多くはない事だと思うので、つまり、 その内容が改善されるとその効果は相対的に大きい という事になります。そこで、私が本を読んでいて思ったことや、この本の内容で正しいこと、現在も賛否両論とされること、事実として認識が間違っているであろうこと、この本で触れられていないが設計において大事なこと、などについてまとめて
さまざまな人が社会に参加できるよう、障害を取り除くバリアフリー化が進む一方、時代の流れに逆行する「バリア化」が進んでいる場所がある。駅やショッピングセンターにあるエスカレーターだ。転倒事故を防止するため、歩く人の体力を奪うバリア床を導入。「歩かないマナー」の定着を図る施設が増えている。 兵庫県・淡路島内を運行する私鉄虎真名鉄道の覇厳駅では、ホーム階と改札階を結ぶエスカレーターのバリア化工事が11日に完了。接地面をこれまでの黒い床からストライプ状のバリア床に貼りかえた。バリア床は1歩進むごとにHPが15減少。覇厳駅のエスカレーターは28段あるため、全て歩くと420のダメージに達する。レベル40越えの屈強な成人男性でも致命傷を負うダメージ量だ。 エスカレーターは、急ぐ人のために左右どちらかを空けて並ぶのが長年習慣とされてきた。しかし、エスカレーター上を歩いたことによる転倒事故が全国で年間数百件
はじめに 2022年のセキュリティ・キャンプ全国大会に講師として参加しました。その際に、Goにおける脆弱性への対策はどうなっているのか調べました。この記事では、github.com/google/go-safeweb/safesqlがどのようにSQLインジェクションを防いでるのかについて解説します。 なお、@rungさんの文書を多いに参考にしております。また、セキュリティ・キャンプで用いた資料はこちらから閲覧できます。 SQLインジェクションとは? 独立行政法人情報処理推進機構(IPA)が公開している安全なウェブサイトの作り方を見ると、SQLインジェクションは以下のように説明されています。 データベースと連携したウェブアプリケーションの多くは、利用者からの入力情報を基にSQL文(データベースへの命令文)を組み立てています。ここで、SQL文の組み立て方法に問題がある場合、攻撃によってデータベ
はじめましての人ははじめまして。そうでないひとはお久しぶりです。本日付で最終出社日を迎えるエンジニアの猫ロキP(@deflis/id:deflis55)です。 ドワンゴはすごく好きな会社ではあるのですが、新卒で入社して10年以上勤めたドワンゴを離れて、はてなのノベルチームで働くことになりました。 本当に好きな会社で、どうしても人とお金が足りてないなとか色々思うところはあるんですが、それ以上に出版業界に情熱を傾けたいところが強くなってしまって、転職を決意したのでした。 何を考えて転職を決意したのか、言える範囲で説明します。 入社した経緯とドワンゴとの関わり ドワンゴの良いところ 転機 今後のキャリアプラン的なことについて 改めて たぶん書籍化の決まってないカクヨムのおすすめいくつか 書籍化しているカクヨムのおすすめ その他おすすめライトノベル おまけ 入社した経緯とドワンゴとの関わり 201
Storybook first な開発とは Storybook での呼び出され方を意識しながらアプリケーションコードを書くことをそのように呼んでいます。 道具に設計がひきづられるのはアンチパターンと言われそうな気もするのですが、コンポーネントのカタログを整備していくことは、コンポーネントが良い感じに再利用可能な形で分離できるということでもあり、やっていくとむしろ正道に近づいていくと思います。 Storybook First のコンポーネント設計や型定義をすると、パーツに限らず Storybook でカバーできる範囲が広がり、ページそのもののサンドボックスを作れます。 そして API がない状態でもデータを使って開発ができたり、特定のスナップショットの再現やタイムトラベルに近いことも可能になるというメリットがあります。 つまり、ただのコンポーネントカタログとしてではなく、開発のためのサンドボ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く