並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 261件

新着順 人気順

nullの検索結果1 - 40 件 / 261件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

nullに関するエントリは261件あります。 プログラミングprogrammingTypeScript などが関連タグです。 人気エントリには 『データベース設計におけるNULL - kawasima』などがあります。
  • データベース設計におけるNULL - kawasima

    NULL絶対ダメ論や現実的には無理だから上手く付き合っていくしかないんだよ論など見られるが、せっかくCodd博士が上図の分類を提示しておられるので、これを元にもっと詳細化して考えてみよう。

      データベース設計におけるNULL - kawasima
    • JavaScriptのモダンな書き方 - ES2020のオプショナルチェーン、null合体演算子、動的import、globalThis等を解説 - ICS MEDIA

      JavaScriptのモダンな書き方 - ES2020のオプショナルチェーン、null合体演算子、動的import、globalThis等を解説 JavaScriptの仕様であるECMAScriptは年次で仕様が更新されています。ECMAScript 2020(ES2020)は2020年6月にリリースとなりました。現行のすべてのブラウザでES2020の機能は利用できますが、フロントエンドエンジニアにとって使いこなしたい記法ばかりです。 本記事ではES2020に焦点をあて、JavaScriptの新しい記述方法のメリットと使いどころを解説します。 オプショナルチェーン Optional Chaining(オプショナルチェーンやオプショナルチェーニングと呼ばれています)とは、?.構文を用いてnullやundefinedになりうる値へ安全にアクセスできる仕組みです。 利用シーン nullやunde

        JavaScriptのモダンな書き方 - ES2020のオプショナルチェーン、null合体演算子、動的import、globalThis等を解説 - ICS MEDIA
      • HTTPキャッシュ入門の入門 – cat /dev/random > /dev/null &

        ローカル・経路上のキャッシュを併用しよう キャッシュは再利用されるほどいいものです。 サイトの規模にもよるのですが、ローカルと経路上のキャッシュはそれぞれ性質が異なるため、ブラウザキャッシュだけ適切に設定しておけば経路上では不要というわけではありません。 ローカルキャッシュはキャッシュを持つクライアント自身がサイトを再訪する場合は有効ですが、キャッシュを持っていない新規クライアントには無効です。 経路上のキャッシュは新規クライアントに対してもキャッシュを返すことができるため、例えばサイトへの流入が突然増えるといった事態でも対処がしやすいです。 そのためコンテンツ次第ではありますが、ブラウザキャッシュのように特定のクライアントでしか使えないprivate cacheにするよりも、 効率を考えてローカル・経路上のどちらでもキャッシュができ、多数のクライアントで共有できるshared cache

        • テストの説明に安易に「正しく」とか書かない - Object.create(null)

          みなさんテストは書いていますよね. 書いていなければふりだしに戻る. 例えば関数 add に対して, 以下のようなテストコードがあるとします. describe("add", () => { it("正しく計算できる", () => { expect(add(1, 2)).toBe(3); }); }); よさそうですね? もしよくないと思うのであればここから下は読まなくても大丈夫なくらい理解している方だと思います. 続いて関数名を変えただけのこちらをどうぞ. describe("sub", () => { it("正しく計算できる", () => { expect(sub(1, 2)).toBe(3); }); }); なんだか明らかに間違っている気がします. もしこのテストが通過してしまったとき我々はどうすればよいのでしょうか. 考えられるパターンは 2 つあります. 実装もテストも正

            テストの説明に安易に「正しく」とか書かない - Object.create(null)
          • JavaScript の undefined と null を完全に理解する

            JavaScript で頻出する undefined と null について語ります。 言語仕様上の違い JavaScript (ECMAScript) において、仕様上 undefined と null は当然ながら明確に区別されています。いくつか言語仕様上の扱いについて挙げてみます。 比較 厳密な比較演算子 === において undefined と null は区別されます。ゆるい比較演算子 == においては両者は区別されません(仕様 7.2.14)。 console.log(undefined === null); // false console.log(undefined == null); // true 他の falsy な値(false とみなされる値)との比較は、ゆるい比較演算子であっても区別されます(仕様 同上)。 console.log(undefined == fa

            • 「NULL」というカスタムナンバープレートを取得したところ、大量の駐車違反切符を受け取る結果に | スラド idle

              米国・カリフォルニア州でセキュリティリサーチャーが「NULL」という4文字のみが書かれたカスタムナンバープレートを取得したところ、大量の駐車違反切符を受け取る結果となったそうだ(Mashableの記事)。 「droogie」というハンドルで活動するこのセキュリティリサーチャーは、DEF CON 27でその顛末を発表した。droogie氏はナンバープレート読み取り装置を混乱させることができたら面白いと思って「NULL」を選んだという。安全運転を心がけるdroogie氏はナンバープレート取得後1年間、違反切符を一切受け取ることなく過ごしていた。しかし、登録をオンラインで更新しようとしたところ、情報が正しく入力されていないとして更新を拒否される。その後駐車違反をして違反切符を1通受け取ると、以降は無関係な駐車違反切符が多数郵送されてくることになる。 Hacker Newsでは2016年、「NUL

              • ヤンジャンの漫画が「Null」を「ゼロ」と言ってしまい、一部の界隈が反発

                リンク となりのヤングジャンプ [第1話] アルマ - 三都慎司 | となりのヤングジャンプ 「もう世界は僕らだけなのかもしれない」荒廃した世界で生きるものの影ふたつ。 自分たち以外の人類を探し、見つけるための歩みの先には…!? この世界に残る魂を探し求める人類の近未来幻想譚

                  ヤンジャンの漫画が「Null」を「ゼロ」と言ってしまい、一部の界隈が反発
                • Web配信の技術という本を書きました – cat /dev/random > /dev/null &

                  twitterでなんどもつぶやいてるので多分知られているとは思うんですが、Web配信の技術という本を書きました。 せっかくなんで、なんでまたこんな本を書いたのかとかどういう流れだったのかみたいなのを簡単に書いてみようかなと そもそもどういう本なのか 非常にタイトルを決めるのが難しい本でした。 サブタイトルに「HTTPキャッシュ・リバースプロキシ・CDNを活用する」とあるようにいわゆるHTTPキャッシュの本なわけですが、コンテンツ配信の技術といえばCDNの印象が強く出ますし(本書はCDNの使いかたというわけではないです)、Web配信といえば動画ストリーム配信(VTuberの配信とか)を思い浮かべる人も多いと思います。 今考えればWebコンテンツ配信の技術とすればよかったかもと思いつつ、今度は長くなりすぎるのでなかなか難しいです。 ということでHTTPキャッシュを使ってWebサイトを高速化した

                  • 世間はお花見シーズンだけど肝心の桜が咲いてないので「おnull見」という新概念が爆誕している

                    Shichiro @pakuriman 外国人観光客たちがこのジャップたちはこんな何もない枝を見に来て何がしたいんだ??と怪訝そうな顔で歩いてたけどまだ彼らは日本人への理解が足りない、なぜなら日本人にとってお花見の本質は桜を観ることではなく花を見るという口実で集って白昼堂々屋外で酒を飲み倒すことなので pic.twitter.com/Hb7v7StxgH 2024-03-30 14:28:36

                      世間はお花見シーズンだけど肝心の桜が咲いてないので「おnull見」という新概念が爆誕している
                    • NULL嫌いのUPDATEしないDB設計 #DBSekkeiNight / DB design without updating

                      DB設計したいNight #6 正規化 [online] https://dbnight.connpass.com/event/177859/

                        NULL嫌いのUPDATEしないDB設計 #DBSekkeiNight / DB design without updating
                      • TypeScript エラー処理パターン - Object.create(null)

                        M 年前にも N 年後にも人類は同じ話をしている. まとめ エラーの発生方法は throw と return に大別できる throw には簡潔さ, return には明瞭さと型安全性といった特徴がある どちらの方法がより適しているかはプログラムの規模, エラーの種類, ハンドリングの方法などが判断の材料になる 実際にどちらの方法を使うかは上の判断材料と, フレームワークやプロジェクトのコーディング規約なども合わせて複合的に決めるのがよい エラー発生方法の分類 まず前提として, 関数から呼び出し元にエラーを伝える方法は以下の 2 つに大別できます. 逆にこの記事ではこれ以上の具体的な方法についての議論はしません. throw エラーを throw して呼び出し元に伝える方法です. 例えば以下のようなものが当てはまります. throw new Error("...") Promise.rej

                          TypeScript エラー処理パターン - Object.create(null)
                        • TypeScript 型レベル関数型プログラミング in 2023 - Object.create(null)

                          ちょっと前に話題になった hotscript の技法の紹介やら, ラムダ計算を TypeScript の型にコンパイルする話やらなんやら. 通常の型レベル関数 TypeScript の型エイリアスはパラメータを取れるので, これは型レベルの関数であるとみなせます. type IsNumber<X> = X extends number ? true : false; type A = IsNumber<42>; // = true 一方でこのようにして定義された関数は第一級ではない, つまり関数そのものを他の関数の引数として渡したりすることができません. type FilterUnion<F, X> = X extends unknown ? (F<X> extends true ? X : never) : never; // ~~~~ // ^ Error: Type 'F' is n

                            TypeScript 型レベル関数型プログラミング in 2023 - Object.create(null)
                          • 中止ボタンがしいたけに見えて困る - Object.create(null)

                            令和最新版. Vivaldi でアイコンがカスタマイズできるようになっている テーマ設定画面を眺めていたら, Vivaldi 6.0 からツールバーのアイコンがカスタマイズできるようになっているのに気がつきました. 流石 Vivaldi です (?) vivaldi.com しいたけ復活 こうなっては中止ボタンをしいたけにするしかありません. しいたけアイコンは以下で用意されていたものを拝借します*1. バッテン髪飾り派の人も安心. momizine.hatenadiary.org というわけで完成です. フラットデザイン全盛の時代にスキュモーフィックしいたけが悪目立ちしていて最悪ですね. *1:画像の究極の出典ではないかもしれないので, そのあたりの扱いは自己責任で

                              中止ボタンがしいたけに見えて困る - Object.create(null)
                            • 令和最新版: PostgreSQLの安全なSET NOT NULL | Wantedly Engineer Blog

                              データベースのスキーマを変更するときは、スキーマの変更作業によってテーブルが長期間ロックされてしまわないように注意が必要です。 2019年にリリースされたPostgreSQL 12.0以降では、NOT NULLを安全に追加するためによりよいベストプラクティスができています。まだ知らない人もいるかもしれないので、ここで紹介します。 何が問題なのか?次のようなDDLコマンドを考えます。 -- posts.moderatedをNULL禁止にする ALTER TABLE posts ALTER COLUMN moderated SET NOT NULL;これはテーブルをACCESS EXCLUSIVEでロックしたままフルテーブルスキャンを行います。その間は他のトランザクションはこのテーブルに関する処理を進行できません。 テーブルが小さければこれで特に問題ありません。しかし、postsがそれなりに大

                                令和最新版: PostgreSQLの安全なSET NOT NULL | Wantedly Engineer Blog
                              • 車のナンバープレートに「NULL」を登録した男性が駐車違反で膨大な額の罰金を請求されてしまう

                                by Charleston's TheDigitel 車のナンバープレートには一般的に文字や数字の組みあわせが使われていますが、アメリカでは追加料金を支払うことで、他人とかぶらない好きな文字列をナンバープレートに使用することが可能。この仕組みを利用して、プログラミング言語などで何も示さないことを意味する「NULL」という文字列でナンバープレートを登録した男性が、大量の駐車違反による罰金を請求されてしまったそうです。 He tried to prank the DMV. Then his vanity license plate backfired big time. https://mashable.com/article/dmv-vanity-license-plate-def-con-backfire/ アメリカでは車のナンバープレートに自由な文字列を使う人が多く、日本では考えられない

                                  車のナンバープレートに「NULL」を登録した男性が駐車違反で膨大な額の罰金を請求されてしまう
                                • 共通化すれば良いとは限らない - Object.create(null)

                                  ここのところ偶然なのか「共通化」という言葉を多く聞いているのですが, その言葉を聞くたびに身構えていることに気がついたので, この気持ちの出どころを共有しておきます. なぜ身構えているかというと, 共通化が必ずしもコードを良い状態にするとは限らないにも関わらず, それ自体が目的になってしまっている (ように見える) ことが多いからです. この手のリファクタリングの目的はあくまでコードの改善のはずで, そのことを忘れて共通化するだけで満足してしまうと, 良くてリファクタリングの効果が半減, 悪ければ逆効果になってしまいます. 個人的にコードを共通化する上で注意してほしいと思っているのは以下の二つです. コードを共通化すべきでない場合もある 共通化されたコードは一般的な原則にしたがって設計されなければならない 似たようなことは歴史の中で何度も繰り返し言われていることだろうと思いますが, 改めて

                                    共通化すれば良いとは限らない - Object.create(null)
                                  • プログラムの複雑さ・表面積・グラフの構造 - Object.create(null)

                                    特に何かしらの出典はありません. プログラムの複雑さに対する大局的で直感的な指標として, 表面積とグラフの構造というのを個人的に意識しているという話. いわゆる code smell をどう嗅ぎつけているか. 表面積 プログラムは最も単純には 1 つの入力チャンネル (引数) と 1 つの出力チャンネル (戻り値) でモデル化できます. 要するに関数ということですが, 関数型プログラミングに限らず大抵は似たような考え方ができます. graph LR yield[ ] -- 引数 --> program[プログラム] -- 戻り値 --> return[ ] 一方で現実世界で価値のあるプログラムとなるためには引数と戻り値だけでは不十分で, 実際にはその他の入出力チャンネルも必要になってきます. 例えば, 可変な変数の読み書き 環境変数の読み取り ユーザー入力の読み取り 画面への出力 ファイル

                                      プログラムの複雑さ・表面積・グラフの構造 - Object.create(null)
                                    • [第1話]少女Null - 中西鼎/あきま | 少年ジャンプ+

                                      少女Null 中西鼎/あきま <毎週土曜更新>有機物製のロボット・義人が普及し、人々が豊かな生活を送っている23世紀東京。そこに住む少年・リアハは、ある一体の義人との出会いをきっかけに、世界の秘密に巻き込まれていく… 『火遊び同盟』のコンビが描く巨弾SF!! [JC2巻発売中]

                                        [第1話]少女Null - 中西鼎/あきま | 少年ジャンプ+
                                      • 「null総理大臣が責任を負い被告になる」天皇陛下が議会総理の任命拒否→議会が天皇を訴訟した場合に発生するバグについて

                                        くばーに @Kubaanistan 議会総理を選任 ↓ 天皇が任命を拒否 ↓ 議会が天皇を訴訟 ↓ 皇室典範により天皇の法令違反は総理大臣が責任を負う ↓ null総理大臣が責任を負い被告になるバグが発生する 2020-10-02 04:06:44

                                          「null総理大臣が責任を負い被告になる」天皇陛下が議会総理の任命拒否→議会が天皇を訴訟した場合に発生するバグについて
                                        • 「Dart 3」が来年登場。完全Nullセーフな言語となり、Nullセーフティなしの実行はサポート外に

                                          「Dart 3」が来年登場。完全Nullセーフな言語となり、Nullセーフティなしの実行はサポート外に アプリケーションフレームワーク「Flutter」で使われているプログラミング言語「Dart」の開発チームは、来年(2023年)半ばにメジャーバージョンアップとなる「Dart 3」のリリースを予定していると発表しました。 The road to Dart 3 Dart 3, expected by mid 2023, will only support sound null safety. Learn more about how Dart's sound safety compares to other languages, and how we're preparing for this major release in the blog by @MiSvTh → https://t.

                                            「Dart 3」が来年登場。完全Nullセーフな言語となり、Nullセーフティなしの実行はサポート外に
                                          • 強いキャッシュ 弱いキャッシュとはなにか – cat /dev/random > /dev/null &

                                            先日とらのあなラボ様の勉強会に参加していたところ「強いキャッシュ」「弱いキャッシュ」とキーワードが出てきました。 初めて聞く表現だったので質問したところやはり知らない定義だったため、少し調べてまとめてみたものです。 なお、強いキャッシュ・弱いキャッシュという説明を否定するものではなく、補完したいと考えています。 強いキャッシュ・弱いキャッシュの定義 ネット上を調べると日本語・中国語・英語で説明が出てきますが、調べた限りでは強いキャッシュ・弱いキャッシュの初出はWebフロントエンド ハイパフォーマンスで、定義は以下の通りです。 ExpiresヘッダーとCache-Controlヘッダーでは強いキャッシュを設定できます。 ETagヘッダーとLast-Modifiedヘッダーでは弱いキャッシュを設定できます。 Webフロントエンド ハイパフォーマンス p124 こちらの文書の前後に詳しい定義があ

                                            • OpenAPIにおけるundefinedとnullの設計 | フューチャー技術ブログ

                                              はじめにOpenAPI仕様に則ってREST APIの設計をする際に、値が存在しないという状態をどのように表現するかというお話です。 undefinedとはまずはじめに、ここでundefinedと言っているのは、OpenAPIの仕様において、リクエスト/レスポンスのデータ型を定義するSchema Objectのプロパティの1つであるrequiredが指定されていない状態を指します。 OpenAPIにおけるrequiredの定義を確認してみましょう。 OpenAPIの仕様を参照すると、Schema ObjectはJSON Schemaの仕様に従うと記載されています。 The Schema Object allows the definition of input and output data types. These types can be objects, but also primit

                                                OpenAPIにおけるundefinedとnullの設計 | フューチャー技術ブログ
                                              • TypeScript の DI 手法あれこれ - Object.create(null)

                                                TypeScript で DI (依存性注入) するためのライブラリを作ったんですが, それを紹介する前に既存手法をまとめておいた方が説明が楽だなと思ったのでまとめておきます. そもそも DI の目的とは, みたいなところは詳しく説明しないのであしからず. 手法の比較 DI なし Service Locator エフェクト Constructor Injection Setter Injection デコレータ typed-inject 次回予告 手法の比較 DI なし まずは DI を使わない場合を見ていきましょう. ここでは例として, 以下のような時刻と乱数を必要とするコンポーネント MyService が, 時刻と乱数を扱う機能をそれぞれ提供するコンポーネント Clock と Random に依存するような場合を考えます. type Clock = { getTime: () =>

                                                  TypeScript の DI 手法あれこれ - Object.create(null)
                                                • TypeScript をより安全に使うために まとめ - Object.create(null)

                                                  こういう一連の記事を書きました. susisu.hatenablog.com susisu.hatenablog.com susisu.hatenablog.com TypeScript の型安全性 TypeScript の型システムは健全ではありません. TypeScript Design Goals にある通り, そもそも言語設計の段階で完璧な型安全性は目標になっておらず, 既存の JavaScript の言語仕様や資産を活用しやすいように, 生産性や利便性とのバランスをとることを目標としています. では TypeScript の型システムではどの程度の安全性が保証されるのでしょうか? 型安全性を第一の目標に置いていないとはいえ, TypeScript がまったく見当違いな型検査をしているというわけではありません. したがって, ある制限された範囲内であれば, 安全性を担保するのに十分

                                                    TypeScript をより安全に使うために まとめ - Object.create(null)
                                                  • 【C】srand(time(NULL))をしても同じ乱数が生成される

                                                    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

                                                      【C】srand(time(NULL))をしても同じ乱数が生成される
                                                    • TypeScript 型レベルプログラミング フリースタイルガイド - Object.create(null)

                                                      TypeScript の型レベルプログラミングのための真面目なスタイルガイドではありません. 型なしラムダ計算で喜ぶような人間が使うための諸刃の剣です. この記事の内容は TypeScript の 2022 年 1 月時点での最新版である 4.5.4 に基づいています. 将来のバージョンでの妥当性は保証しません. 「型〜」「〜型」という用語の「型」はしばしば省略します. 値レベルの話題は一切登場しません. 以前作った型レベル Brainfuck インタプリタはこのスタイルに則っているので参考にどうぞ. いつまでこのネタを引きずるんですか? パラメータに対して制約を付与しない 型定義のパラメータに対して extends を使って制約を付与すると, そのパラメータに与えられる引数を制約を満たすもののみに限定することができます. 例として, 以下の Append には string の部分型のみ

                                                        TypeScript 型レベルプログラミング フリースタイルガイド - Object.create(null)
                                                      • TypeScript をより安全に使うために その 2: オブジェクトの具体的な形にアクセスするのを避ける - Object.create(null)

                                                        前回はこちら. susisu.hatenablog.com 引き続き環境は以下を前提とします: TypeScript 4.4 (この記事を書いている 2021 年 11 月時点の最新版) strict: true 原則: オブジェクトの具体的な形にアクセスするのを避ける 具体例 in 演算子による型の絞り込み Object.keys の誤った使用 Object.values, Object.entries の使用 リテラルの先頭以外での object sperad 次回 原則: オブジェクトの具体的な形にアクセスするのを避ける ここで「オブジェクトの具体的な形にアクセスする」とは, 静的な型によらずに, 実行時にオブジェクトがどのようなプロパティを持っているかといった情報を取得することを指しています. ある種のリフレクションと呼んでも良いかもしれません. こういった操作には, JavaSc

                                                          TypeScript をより安全に使うために その 2: オブジェクトの具体的な形にアクセスするのを避ける - Object.create(null)
                                                        • TypeScript をより安全に使うために その 1: オブジェクトの mutable な操作を避ける - Object.create(null)

                                                          ふだん TypeScript のコードレビュー時に参考に貼ったりしている内部ドキュメントがあるのですが, 内部では何かと人目につきにくいので, 内容を整えて公開していきます. TypeScript の型システムは安全ではありません. つまり型検査を通過したコードであっても, 実行時にエラーが発生する可能性があります. TypeScript の設計についてのドキュメントにおいても, non-goals の一つとして Apply a sound or "provably correct" type system. Instead, strike a balance between correctness and productivity. が挙げられており, 完全に安全なものを目指すのではなく, 安全性と利便性とのバランスをとるものとされています. かといって TypeScript を使うなら

                                                            TypeScript をより安全に使うために その 1: オブジェクトの mutable な操作を避ける - Object.create(null)
                                                          • TypeScript で実行時の入力を含む文字列を型で弾く - Object.create(null)

                                                            TypeScript (4.7 時点) において, 文字列に付けられる型には以下の 3 つ (とそのユニオン型) があります. 文字列型 string 文字列リテラル型 ("foo" など) テンプレートリテラル型 (`data-${string}` など) これらのうち, 実行時の入力, 特に事前にパターンが想定されていないような任意の入力が含まれるような文字列に対しては, string や string を含むテンプレートリテラル型を付けることはできても, 文字列リテラル型を付けることはできません. 文字列リテラル型を付けるためには型検査時 (実行の前) に入力文字列の内容がわかっている必要があるので, まあそれはそうですね. このことを利用して, 実行時の入力を含む文字列を与えようとすると型検査に失敗するような関数を作ることができそうです. まずは与えられた型が文字列リテラル型, ま

                                                              TypeScript で実行時の入力を含む文字列を型で弾く - Object.create(null)
                                                            • 次期「Dart 3」はNullセーフ、WebAssemblyとRISC-Vサポートなど、Googleが発表。Flutter Forward 2023

                                                              次期「Dart 3」はNullセーフ、WebAssemblyとRISC-Vサポートなど、Googleが発表。Flutter Forward 2023

                                                                次期「Dart 3」はNullセーフ、WebAssemblyとRISC-Vサポートなど、Googleが発表。Flutter Forward 2023
                                                              • Flutter 2.2正式リリース。Null安全がデフォルトに、Windows、macOS、Linux対応をシングルコードで。Google I/O 2021

                                                                Flutter 2.2正式リリース。Null安全がデフォルトに、Windows、macOS、Linux対応をシングルコードで。Google I/O 2021 Googleは、5月19日未明(日本時間)に開催したオンラインイベント「Google I/O 2021」で、Dart言語向けのアプリケーションフレームワーク「Flutter 2.2」正式リリースを発表しました。 Welcome to Flutter 2.2 Learn more about the latest growth and updates in the Flutter 2.2 release just announced in the #GoogleIO Developer Keynote! Read https://t.co/kcR6nzhxFI pic.twitter.com/EljCc0cvx1 — Flutter (

                                                                  Flutter 2.2正式リリース。Null安全がデフォルトに、Windows、macOS、Linux対応をシングルコードで。Google I/O 2021
                                                                • TypeScript で型レベル Brainfuck - Object.create(null)

                                                                  TypeScript の型システムはチューリング完全ということが知られていますが, 同じくチューリング完全な言語である Brainfuck のインタプリタを実装することで, その計算能力を確認することができます. この記事のコードは TypeScript 3.8.3 で動作確認しています. ゴール 型レベルで Brainfuck のインタプリタを実装します. type Program = [ ",", ">", ",", "<", "[", ">", "[", ">", "+", ">", "+", "<", "<", "-", "]", ">", "[", "<", "+", ">", "-", "]", "<", "<", "-", "]", ">", ">", ">", ".", ".", "." ]; type Input = [2, 3]; type Output = Brain

                                                                    TypeScript で型レベル Brainfuck - Object.create(null)
                                                                  • プログラミング言語「Dart」が“null安全”に ~テクニカルプレビュー版がリリース/年内にも安定版に。「DartPad」で気軽に試すことも可能

                                                                      プログラミング言語「Dart」が“null安全”に ~テクニカルプレビュー版がリリース/年内にも安定版に。「DartPad」で気軽に試すことも可能
                                                                    • `undefined` vs. `null` revisited

                                                                      Many programming languages have one “non-value” called null. It indicates that a variable does not currently point to an object – for example, when it hasn’t been initialized yet. In contrast, JavaScript has two such non-values: undefined and null. In this blog post, we examine how they differ and how to best use or avoid them. undefined vs. null  # Both values are very similar and often used inte

                                                                      • Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)

                                                                        およそ 4 年前に「TypeScript で型レベル Brainfuck」という記事を書きました. susisu.hatenablog.com それから 4 年間の間に TypeScript も進化し, 型レベルプログラミングの技法にも大きな変化がありました. 特に顕著な影響があったものでは, TypeScript 4.0 のタプル型の改善 TypeScript 4.1 のテンプレートリテラル型や条件型での再帰 TypeScript 4.5 の条件型での末尾再帰の除去と, 再帰の上限の緩和 などがあります. こういった変化も踏まえた上で, いまから TypeScript の型レベルプログラミングに入門する人に向けて改めてまとめ直したものがこの記事です. 内容は記事執筆時点の最新版である TypeScript 5.4.5 で動作を確認しています. ぜひ Playground などを使って,

                                                                          Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)
                                                                        • ecspresso v2とTerraform null_resourceで一発構築 - KAYAC engineers' blog

                                                                          SREチームの藤原です。 この記事はTech KAYAC Advent Calendar 2022 5日目の記事です。 この記事では筆者が開発しているAmazon ECSデプロイツール ecspresso (v2)と、Terraformのnull_resourceを組み合わせて、 TerraformによるECS関連リソース作成とecspressoによるECSサービスのデプロイを一発で実行する手法について説明します。 ecspresso とは github.com ecspressoは筆者(fujiwara)が開発している、Amazon ECS用のデプロイツール(OSS)です。ECSにタスク定義とサービスをデプロイするツールはAWSが作っているものを含めて世の中に多々ありますが、ecspressoは次のような特徴を持っています。 Go 言語で書かれた OSS (MIT LICENSE) です

                                                                            ecspresso v2とTerraform null_resourceで一発構築 - KAYAC engineers' blog
                                                                          • コードや Pull Request をコミュニケーションの手段として使ってほしい - Object.create(null)

                                                                            レビューなり, 過去の経緯を調べる目的なりでコードや Pull Request (以下 PR) を読むとき, 書かれていてほしいと思う内容が書かれていないことが少なくない. 例えば, 背景や目的 全体的な実装方針 (特に複数の PR で一つの目的が達成される場合) これまでやったこと, 今やっていること, この次にやること 実装方法 他の方法との比較検討, あえてやらなかったこと, 今はやらないこと 気持ち 気になっていること, 迷ったこと, 自信がないこと, わかっていないこと ということで, こういうのを列挙してなぜ書いてほしいのかをまとめよう...かと思ったけど, 挙げるときりがないし, それぞれは表層的な問題でしかないのでやめた. では根底に何があるかというと, コードや PR がコミュニケーションとして成り立っているかどうかだと思う. 上に挙げたような個別の要求は, コードや P

                                                                              コードや Pull Request をコミュニケーションの手段として使ってほしい - Object.create(null)
                                                                            • 辞書を作る関数に TypeScript で執拗に型をつける - Object.create(null)

                                                                              未来人のみなさまご機嫌いかがでしょうか. この記事が書かれた時点の TypeScript のバージョンは 3.6.4 です. お題 以下の JavaScript の関数に TypeScript で型をつけることを考えます1. function makeDict(prop, entries) { const dict = {}; for (const entry of entries) { dict[entry[prop]] = entry; } return dict; } これは見ての通り, 配列から辞書を作ります2. const entries = [ { id: "a", name: "Foo" }, { id: "b", name: "Bar" }, { id: "c", name: "Baz" }, ]; const dict = makeDict("id", entries);

                                                                                辞書を作る関数に TypeScript で執拗に型をつける - Object.create(null)
                                                                              • null11blg.site

                                                                                This domain may be for sale!

                                                                                  null11blg.site
                                                                                • 鵜呑みにしないで! —— 書籍『クリーンアーキテクチャ』所感 ≪null 篇≫ - 株式会社カブク

                                                                                  はじめに 最近よくクリーンアーキテクチャが話題になってて、関心が高まってる感じしますよね! ということでカブク社内でも書籍『クリーンアーキテクチャ』の輪読会が開催されました! この記事は null 個人の考察です。 クリーンアーキテクチャとは 書籍を読んでみた結果、次のブログ記事がすべてだと言っていいと思いました。 クリーンアーキテクチャ(The Clean Architecture翻訳) | blog.tai2.net https://blog.tai2.net/the_clean_architecture.html 上記ブログ記事に比べて書籍に含まれる文字数は膨大ですが、膨大なのは前提知識(プログラミングパラダイムとか設計原則とか)と歴史と補足(と著者のカタルシス)です。 以下の私の記述は基本的に上記ブログ記事に対する考察と取っていただいても差し支えありません(ただし引用文は書籍からの

                                                                                    鵜呑みにしないで! —— 書籍『クリーンアーキテクチャ』所感 ≪null 篇≫ - 株式会社カブク

                                                                                  新着記事