ターニングポイントさん!?

カテゴリー: 技術 Page 1 of 16

【TypeScript】Turbo 8は燃えているか

Twitterで話題になっていたのだが、Turbo 8っていうライブラリ(Star 5.4k)がTypeScriptの記述を廃してバニラなJavaScriptの実装になったんだそうな。

Turbo 8 is dropping TypeScript (hey.com)魚拓

まぁ読んでて色々言えるんだけど、Turbo 8にも色々な事情があったんでしょう。

◆プルリク

アプリストア解放と技術倫理観

技術と法律の話は毎度残念な結果をもたらしたりしている。以下の記事を読んで、いつものように少しガッカリしていた。

アップルに「アプリストア」開放義務づけへ、政府が新たな巨大IT規制…他社参入促す : 読売新聞 (yomiuri.co.jp)魚拓

いわゆるサイドローディングの解放。アプリストア外からアプリをダウンロードできるようにしろという要請。

あんまりこれうまくない。

◆独占はよくないが

独占が良くないというのはそう。その通りで、俺だって独占というものが嫌いです。スパイダーマンのDVDがTSUTAYAでしかレンタルできなかったことに反対してました。パテントトロールも許せないし、2000年代Microsoftの過剰かつ利益最優先のベンダーロックイン施策も看過できたものではなかった。

【JavaScript】ブラウザ標準APIでInflate/Deflate/gzipするのとStreamのはなし

◆結論

Compression Streams API – Web API | MDN (mozilla.org)

例えばdeflateの解凍だけを関数にしたら以下のとおり。

export const inflate = (data: ReadableStream): Body => {
  const decompressedStream = data.pipeThrough(new DecompressionStream('deflate'));
  return new Response(decompressedStream);
};

export const inflateBlob = (data: Blob): Body => {
  const decompressedStream = data.stream().pipeThrough(new DecompressionStream('deflate'));
  return new Response(decompressedStream);
};

export const inflateArrayBuffer = (data: ArrayBuffer): Body => {
  const resp = new Response(data);
  if (!resp.body) return resp;
  const decompressedStream = resp.body.pipeThrough(new DecompressionStream('deflate'));
  return new Response(decompressedStream);
};

‘deflate’を’gzip’にすればgzipだし、DecompressionStreamをCompressionStreamにすれば圧縮できるし。

上記はTypeScriptなんで、JavaScriptで使おうと思ったら「:」の型指定を消して差し上げろ。exportも不要なら消せ。

◆いきさつ

鬱退職ブログを読んだのでコード設計について書く

不幸なブログ記事を読みました。

自社開発メガベンチャーをわずか半年で鬱退職した雑魚エンジニアの話|JoanOfArc (note.com)

◆余談:設計下手、静的型付け言語にキレがち。

まず余談。読み飛ばしてよい。

ふだんお仕事でC#とかTypeScriptみてぇな静的に型が判る言語(≒静的型付け言語)を使ってるんですけど、別チームの同僚から「これこれこうで型がキツいしワケわからん」みたいな相談事を受けることがある。

AI感

人工知能の発展目覚ましく、ただ我々からしたら何が起こるんだか良くわからない状態でもある。IT技術者である拙者からしてもAIよくわかってないでござる。

非専門家として思ったこと書いておく。星新一とかいうおじさんが既に考え済みのことをなぞっている部分も多いかもしれない。五月雨で書くから読み易くもない。

◆とっとこしゃべるよAI太郎

チケプラはパスワードの平文をメールで返却してくるから終わってる

チケプラ カンタン便利な電子チケット (tixplus.jp)

俺の周囲をうろつく謎の女がBUMP OF CHICKEN TOUR 2023 be thereのチケットを宮城4/1長野4/9とダブルで当ててきたので俺の分を受け取ろうと思ひたちてチケプラというサービスをアレしてた。チケプラの利用は初めてで、eplusっていうゴミサイトからのアカウント連携で入った。だからパスワードがよくわからん状態。パスワードわからぬのでサイトから変更かけたい。

バグとエラーと不具合と例外と正常系と異常系と準正常系

以下に俺の認識を書く。プログラム分からない人でも読めなくもない感じに書く。でも読んだところで何か得られるというものでもない。時間の無駄。

書くにあたって特に調べ直したわけではないから、時に正しくない。Wikiのリンクを張っている場所があるけど、極力内容を読まずにリンク張ってます。なんとなく。

◆バグ

プログラム(ソースコード、設計)の間違い。根源的には人的なミス。バグによってエラーや不具合が引き起こされる。ソフトウェアのみならずハードウェアの設計に考慮漏れがあったりしたらそれもバグ。

【TypeScript】nestしたオブジェクトのプロパティにインデックスでアクセスする

◆結

前提として、型安全で引いてくるのは限度がある。

例えばあるオブジェクトの”piyo.a”の値をとりたいときは以下の感じ。

const a = {
  hoge: "",
  piyo: {
    a: "text",
    b: 100,
  },
};

const getValue = (s: string, item: object) =>
  s.split(".").reduce<unknown>((p, c) => p?.[c as keyof typeof p], item);

const b = getValue("piyo.a", a);

この形を取らざるを得なくなったら設計を見直したほうがいい。何かおかしいことをやろうとすると、こういったおかしいコードを書かされるはめになる。

オブジェクト指向について一席

ちゃんと書こうと思ったらまた果てしねぇ時間が溶けるので、さわり(広く芸能で、中心となる見どころ・聞きどころ。また、話や文章などで最も感動的、印象的な部分。)だけ書く。

◆おことわり

この記事は、意図的に何も見ず何も調べずに書いている。なぜなら際限がないと思ったから。一部リンクを張るためにググったのはあるけども。

きょうのアーキ「飛んできた通信をとにかく食って正常ステータスコード返しつつキューで食いなおすやつ」

こんにちは。料理研究家のプロレタリアプログラマー人間です。ここのところ梅雨がね。梅雨が短い…あの…季節ですね。はい。バイウハザードっつってね。えぇ。

毎日のお献立に困っていらっしゃる主婦の方が多いとか多くないとか小耳に挟みまして、大変そうだなと。可哀そうに。可哀そうなので救済を与えたいなと存じました。

ですから、普段お料理をなさらない雑魚でも簡単に作り置きできる、体に嬉しいシステムアーキテクチャを紹介します。

Page 1 of 16

Powered by WordPress & Theme by Anders Norén