タグ null
新着順 10 users 50 users 100 users 500 users 1000 usersRe: 履歴テーブルから最新の1件を取ってくる方法
そーだいさんが執筆された記事で、履歴テーブルから最新の1件を取ってくる方法について解説している。PostgreSQLの例だと以下のようなユーザーの履歴データに対し: CREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, data TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); IN... 続きを読む
落合陽一、神社を建てる その名も「計算機自然神社」 “ヌルの神様”と“オブジェクト指向菩薩”が鎮座
神社の運営などを手掛ける日本文化伝承協会(東京都渋谷区)は11月9日、落合陽一さんを神職に迎え、「計算機自然(デジタルネイチャー)神社」を創建したと発表した。デジタル技術と日本の神仏習合思想を掛け合わせる空間として設立。計算機科学で無を意味する「ヌル」(Null)の概念を神格化した「ヌルの神様」などを祭... 続きを読む
null or undefined #kyotoasterisk とその補足など - Object.create(null)
Kyoto.なんか #6 で発表しました. speakerdeck.com 以下はその補足情報など. 仕様書中の出現頻度 null と undefined がそれぞれの仕様でどの程度使われているのかは, 仕様書中の出現頻度を見るだけでもある程度わかりりそうです. ということで ECMAScript 2024 と WHATWG の標準 (2024-09-07 時点) のうちいくつかの仕様... 続きを読む
ESLint の Flat Config を書く時に読んでほしい記事 (2024-08版) - Object.create(null)
ESLint v9 から Flat Config がデフォルトの設定ファイルの形式となり, 徐々に対応しているプラグインも増えて移行が進みつつありますが, 実際に移行したプロジェクトを見ているとしばしば勘違いなどから誤った設定をしている事例を目にします. ということで, Flat Config を書くにあたっていくつか知っておいて欲しいこ... 続きを読む
Object.groupBy で作られるオブジェクトの prototype は null - Object.create(null)
おさらい: prototype JavaScript のオブジェクトはみんな prototype というのを持っていて, この prototype からプロパティを継承, より正確には, プロパティアクセス時にそのプロパティがオブジェクトに存在しなければ prototype を辿って見つけにいくことになっている. あるオブジェクトを prototype とした別のオブジ... 続きを読む
Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)
およそ 4 年前に「TypeScript で型レベル Brainfuck」という記事を書きました. susisu.hatenablog.com それから 4 年間の間に TypeScript も進化し, 型レベルプログラミングの技法にも大きな変化がありました. 特に顕著な影響があったものでは, TypeScript 4.0 のタプル型の改善 TypeScript 4.1 のテンプレートリテラル... 続きを読む
JavaScript である値がオブジェクト型であることを判定する変なテク
TC39の活動で有名なJordan Harbandが作成した下記issueで知ったのでメモ。 前提として、次のコードによって x がオブジェクト型であることを判断できる。JavaScriptにおける null は typeof の結果が "object" になるという有名な変な挙動がカバーされている。 function isObjectA(x) { return (typeof x === "object" &... 続きを読む
TypeScript 5.5で型述語を推論できて最高。配列のfilterも型安全に
結論を先に言うと、6月リリース予定のTypeScript 5.5で次のようなコードが型安全になります。 従来: TypeScript 5.4以前 function isNumber(value: number | string): value is number { return typeof value === 'number'; } const result = [12, null, 24, undefined, 48] .filter((value): value is number => value ... 続きを読む
ESLint の共有設定を Flat Config に対応させる - Object.create(null)
まえがき こんにちは, 人間 ESLint です. そんな人間 ESLint の私ですが, 私一人があらゆるコードに注意深く目を通して, さらに修正案まで提示するというのは大変です. 多くの問題は機械的に検知できるはずなので, そういった仕事を私の代わりにしてくれるメカ人間 ESLint が欲しくなってきます. そんなわけで, 4 年ほど... 続きを読む
中止ボタンがしいたけに見えて困る - Object.create(null)
令和最新版. Vivaldi でアイコンがカスタマイズできるようになっている テーマ設定画面を眺めていたら, Vivaldi 6.0 からツールバーのアイコンがカスタマイズできるようになっているのに気がつきました. 流石 Vivaldi です (?) vivaldi.com しいたけ復活 こうなっては中止ボタンをしいたけにするしかありません. しいた... 続きを読む
TypeScript 型レベル関数型プログラミング in 2023 - Object.create(null)
ちょっと前に話題になった hotscript の技法の紹介やら, ラムダ計算を TypeScript の型にコンパイルする話やらなんやら. 通常の型レベル関数 TypeScript の型エイリアスはパラメータを取れるので, これは型レベルの関数であるとみなせます. type IsNumber<X> = X extends number ? true : false; type A = IsNumber<42>;... 続きを読む
TypeScript エラー処理パターン - Object.create(null)
M 年前にも N 年後にも人類は同じ話をしている. まとめ エラーの発生方法は throw と return に大別できる throw には簡潔さ, return には明瞭さと型安全性といった特徴がある どちらの方法がより適しているかはプログラムの規模, エラーの種類, ハンドリングの方法などが判断の材料になる 実際にどちらの方法を使うかは... 続きを読む
JavaScript の undefined と null を完全に理解する
JavaScript で頻出する undefined と null について語ります。 言語仕様上の違い JavaScript (ECMAScript) において、仕様上 undefined と null は当然ながら明確に区別されています。いくつか言語仕様上の扱いについて挙げてみます。 比較 厳密な比較演算子 === において undefined と null は区別されます。ゆるい比較... 続きを読む
令和最新版: PostgreSQLの安全なSET NOT NULL | Wantedly Engineer Blog
データベースのスキーマを変更するときは、スキーマの変更作業によってテーブルが長期間ロックされてしまわないように注意が必要です。 2019年にリリースされたPostgreSQL 12.0以降では、NOT NULLを安全に追加するためによりよいベストプラクティスができています。まだ知らない人もいるかもしれないので、ここで紹介し... 続きを読む
TypeScript で実行時の入力を含む文字列を型で弾く - Object.create(null)
TypeScript (4.7 時点) において, 文字列に付けられる型には以下の 3 つ (とそのユニオン型) があります. 文字列型 string 文字列リテラル型 ("foo" など) テンプレートリテラル型 (`data-${string}` など) これらのうち, 実行時の入力, 特に事前にパターンが想定されていないような任意の入力が含まれるような文字列に... 続きを読む
データベース設計におけるNULL - kawasima
3値論理の話は「3値論理 ―― 神のいない論理」が詳しい。 NULL絶対ダメ論や現実的には無理だから上手く付き合っていくしかないんだよ論など見られるが、せっかくCodd博士が上図の分類を提示しておられるので、これを元にもっと詳細化して考えてみよう。 ここで考えた全体のデシジョンツリーは以下のとおり。 ※ イミュータ... 続きを読む
TypeScript 型レベルプログラミング フリースタイルガイド - Object.create(null)
TypeScript の型レベルプログラミングのための真面目なスタイルガイドではありません. 型なしラムダ計算で喜ぶような人間が使うための諸刃の剣です. この記事の内容は TypeScript の 2022 年 1 月時点での最新版である 4.5.4 に基づいています. 将来のバージョンでの妥当性は保証しません. 「型〜」「〜型」という用語の... 続きを読む
CloudWatch Logs Insights を使って Mackerel 上にアプリケーションのメトリック監視環境を手早く構築する - Object.create(null)
この記事は Mackerel Advent Calendar 2021 の 15 日目の記事です. 昨日は id:kazeburo さんの mkr plugin install 時の403 API rate limit exceededエラーを回避する方法 でした. こんにちは id:susisu です. 普段は Mackerel 開発チームでアプリケーションエンジニアをしています. 先日 mackerelio-labs にて cloudwat... 続きを読む
TypeScript をより安全に使うために その 2: オブジェクトの具体的な形にアクセスするのを避ける - Object.create(null)
前回はこちら. susisu.hatenablog.com 引き続き環境は以下を前提とします: TypeScript 4.4 (この記事を書いている 2021 年 11 月時点の最新版) strict: true 原則: オブジェクトの具体的な形にアクセスするのを避ける ここで「オブジェクトの具体的な形にアクセスする」とは, 静的な型によらずに, 実行時にオブジェクト... 続きを読む
exactOptionalPropertyTypes によせて - Object.create(null)
TypeScript 4.4 に exactOptionalPropertyTypes というオプショナルなプロパティに関するコンパイラオプションが追加されるのを受けて, そもそもオプショナルなプロパティとは何なのか, どう使うと良いのか, exactOptionalPropertyTypes がどう嬉しいのかを考えてみます. あらかじめ私個人の立場を明らかにしておくと, ... 続きを読む
破産退場のNutsついに事件化、虚偽情報開示による偽計の疑いで元社長らが逮捕 : 市況かぶ全力2階建
nutsからnullへ pic.twitter.com/ANMgD2uGFD — 焼きパイナップル (@BUYANYSTEEL) October 3, 2020 ※破産退場のNuts、外部調査委員会の調査報告書で「ハコ系上場企業」と認定される(2020/09/29) パイナッツプル食べ太郎?@joggingbeer恥を忍んでご報告しますが、ptsでnutsで遊んでたら逃げ遅れました 株辛すぎる 2020/... 続きを読む
HTTPキャッシュ入門の入門 – cat /dev/random > /dev/null &
ローカル・経路上のキャッシュを併用しよう キャッシュは再利用されるほどいいものです。 サイトの規模にもよるのですが、ローカルと経路上のキャッシュはそれぞれ性質が異なるため、ブラウザキャッシュだけ適切に設定しておけば経路上では不要というわけではありません。 ローカルキャッシュはキャッシュを持つクライア... 続きを読む
正しいIT用語の読み方
最近の若者は物を知らない。 IT企業に就職したのに、IT用語の読み方を間違える恥ずかしいやつが多くて困る。 新入社員でもこれぐらいは抑えておいてほしい。 nginx: んぎぃぃっんくすhtml: はとむるAlt: あるとhidden: ひでんheight: へいとnull: ぬるUbuntu: うぶんつPHP: ぺちぷUPnP: うぴんぴPPPoE: ぽぽぽえーIEEE: ... 続きを読む
Web配信の技術という本を書きました – cat /dev/random > /dev/null &
twitterでなんどもつぶやいてるので多分知られているとは思うんですが、Web配信の技術という本を書きました。 せっかくなんで、なんでまたこんな本を書いたのかとかどういう流れだったのかみたいなのを簡単に書いてみようかなと そもそもどういう本なのか 非常にタイトルを決めるのが難しい本でした。 サブタイトルに「H... 続きを読む
TypeScriptにはanyが4種類、undefinedが3種類、……
このツイートの解説をします。 TypeScriptにはanyは4種類、undefinedは3種類、nullは2種類、trueは2種類、falseは2種類、neverは5種類あるのか。普通に使ってる分にはわからないが…… TypeScriptでは表面上は同じ名前でも内部的に異なる型が割り振られている場合がいくつかあります。そのようなもののうち、プリミティブ... 続きを読む