Skip to content

Instantly share code, notes, and snippets.

View Densyakun's full-sized avatar

電車君 Densyakun

View GitHub Profile
@Densyakun
Densyakun / .md
Created January 21, 2025 15:06
Type error: Object is possibly 'undefined'.

何故か次のコードを含む Next.js アプリの npm run build を実行すると、 x.mapの箇所で Type error: Object is possibly 'undefined'. が発生する。 if (x) により undefined の可能性を排除しているのにビルド時に解釈されない。

const x: string[] | undefined = [];
if (x)
  return <>{ x.map(() =>/*...*/) } </>;
@Densyakun
Densyakun / .md
Last active January 16, 2025 12:24
ORS シリアライズなどの肥大化したコードをまとめる

データのバインディングが面倒 シリアライズなどでコードが肥大化 それをまとめたり、使いたい方法で使えるようにするライブラリがほしい

  • 使いたい方法=THREE.Vector3か、THREE.Vector3Tupleか
  • valtio
  • ORSの(ココ)
    • シリアライズのためにtypeを指定する代わりにpathが無くなったけど、代わりに同期するためのシリアライズでpathからtypeを求めるコードが増えた
    • デシリアライズで列車を設置するときに、他のデータに依存しているためgameStateを渡しており、デシリアライズする順番がある

バグをなくしたい バグ=コードの間違い () コードの読みやすさ コードの設計

↑すでにこれがバグ 改行してると思ったのに改行されていない

  • 編集操作に合わせたパラダイムでJSONを変換すれば編集しやすくなる
  • JSONを編集するUI: JSON Forms
  • JSON FormsでJSON Formsを作成するエディターが欲しい

ソースコードだけでなく、ディレクトリ構成もJSONと相互変換できるようにする

  • ディレクトリ構成とソースファイルの編集操作に合わせた構造を作成する(アプリケーションに依存する)
  • 現時点でTSXファイルと変換できるが、ディレクトリ構成に対応したエディターではない
  • 方法
/*a*/import/*b*/
/*c*/"@"/*d*/
/*e*/;/*f*/
/*g*/
@Densyakun
Densyakun / .js
Created October 17, 2023 01:54
ORS radio input touchmove マスコン
function myFunction() {
var x = document.getElementById("myRadio");
x.checked = true;
}

CPUを使用してpakファイルを展開するために、UnrealEngine製ゲームの起動にかかる時間を、短縮する方法

  1. allcoolthingsatoneplace/UnrealPakTool を使ってpakファイルを展開する
  2. ゲーム名\ゲーム名\フォルダと、ゲーム名\Engine\フォルダをバックアップする
  3. pakファイルを展開したディレクトリにある、ゲーム名\フォルダと、Engine\フォルダを、ゲームのディレクトリに配置する
  4. ゲーム名\ゲーム名\フォルダと、ゲーム名\Engine\フォルダにそれぞれバックアップしたBinaries\フォルダを追加する
  5. ゲームを起動する
import * as React from 'react'
import * as THREE from 'three'
import { useFrame } from '@react-three/fiber'
import { Instance, Instances, useGLTF } from '@react-three/drei'
export default function Tracks() {
let r = 0
const { scene } = useGLTF('https://raw.githubusercontent.com/Densyakun/assets/main/railway/track/rail-50n-1067.gltf')
import * as React from "react";
import { Admin, Resource, ListGuesser, EditGuesser } from 'react-admin';
import callbackableFakeDataProvider from '@/lib/callbackableFakeDataProvider';
const App = () => {
const [data, setData] = React.useState({
"resourceName": state.value,
});
return (