Skip to content

Instantly share code, notes, and snippets.

@mizchi
mizchi / FF14を新生から暁月まで45日で駆け抜けた感想.md
Last active Nov 25, 2022
FF14を新生から暁月まで45日で駆け抜けた感想
View FF14を新生から暁月まで45日で駆け抜けた感想.md

10/5にはじめて11/20 に 6.0 のEDまでクリアした。最新パッチではないが、公式で言う「ハイデリン・ゾディアーク編」が綺麗に完結したので、この時点での感想を書くことにする。書き上げて見直したら14000字ぐらいあった。

想定している読み手は、感想に飢えてそうな既プレーのヒカセン層、気になってるが手を付けてない新規候補の両方。ロードストーンに書かないのは、ロードストーンで響く範囲が、コミュニティの一部に閉じてる印象があるので。。。。

また、あわよくば一緒に過去の極コンテンツを予習なし下限でやりましょうという意図があります。下限、やろうぜ。

最初にまとめ

  • 「ゲームはプレーヤーと開発者との対話」派にとって、最高のコンテンツ
  • MMORPGとソロRPGの楽しみを全取りしようとしていて、それ故のちぐはぐさが残っているが、FFシリーズでも見ても最上位のプレイ体験があった。とくに 3.3 と 5.0
View FlatBundler.ts
import path from "path";
import { analyze, type Scope } from "periscopic";
import { parse } from 'acorn';
import { generate } from "astring";
import { walk } from "estree-walker";
import { type ASTNode, type namedTypes as t, builders as b } from "ast-types";
const DEBUG = true;
export class ModuleGraph {
View get_npm_tarball.ts
// @ts-ignore
import tar from "tinytar";
import pako from "pako";
const textDecoder = new TextDecoder();
const DEFAULT_NPM_REGISTRY = `https://registry.npmjs.org`;
const PACK_FILE_PREFIX = "package/";
// async function
View try-d1.md

npm i wrangler -g でアップデートした時に次のログが見えた

The latest release of wrangler is "2.0.15".

Other releases are:
  * pages: 0.0.0-96e612b
  * beta: 0.0.0-ea7ee45
  * wasm: 0.0.0-70a118b
  * d1: 0.0.0-d35c69f
View setup.yaml
jobs:
setup:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
with:
token: ${{secrets.GITHUB_TOKEN}}
- uses: actions/setup-node@v2
with:
View wasm_add_listener.rs
use wasm_bindgen::prelude::Closure;
// あとで使う as_unchecked_ref は JsCast によって定義される trait
use wasm_bindgen::{JsCast, JsValue};
fn main() -> Result<(), JsValue> {
// クリックすると値が増えるだけのカウンタを作る
let window = web_sys::window().unwrap();
let document = window.document().unwrap();
let body = document.body().unwrap();
View wip.md

放送で紹介する用。書きかけです。

ちょっと伸びたのでさらに追記。これは元々自分の勉強がてら書いていたもので、これを書く過程でどうしても自分の理解では説明できないところがあり koba789 に依頼してペアプロをしてもらった、という流れがあります。その結果が次の動画です。

https://t.co/FIBmVrR83U

生放送の流れを円滑にするために資料を公開しましたが、この記事は未完成で、あとでさらに整理して別途記事にまとめるつもりです


View linked_list.rs
#[derive(Debug)]
enum List<T> {
Cons(T, Box<List<T>>),
Nil,
}
struct ListIterator<'a, T:'a> {
cur: &'a List<T>
}
View call-this-impl.ts
export type Point = {
t: 'point',
readonly x: number;
readonly y: number;
}
function get_distance(this: Point, other: Point) {
return Math.sqrt(Math.pow(this.x - other.x, 2) + Math.pow(this.y - other.y, 2));
}
type Display<T> = {
View rusty-struct.ts
type StructFor<T extends symbol, O> = O & { t: T };
function struct2<T extends symbol, O extends {}>(t: T): (o: O) => ({ t: T } & O) {
const builder = (o: O) => ({ t: t, ...o });
return builder;
}
function create<S extends symbol, O extends {}>(t: S, o: O): StructFor<S, O> {
return { t, ...o };
}