聖剣伝説 Legend of Mana はじめました

PS4版を買って始めました。 https://www.jp.square-enix.com/seiken_lom/ オリジナルのときは近所の友だちと一緒にやった。 ネットの情報もなかったので、結局全部のシナリオはクリアできなかった。 あの頃を思い出して懐かしさを感じながらプレイしている。 グラフィックはきれいになっている。 きれいになっているが、フォントがオリジナルのものではなくなっているし、キャラはドットのままなので、ちょっと違和感がある。 「当時の雰囲気を残すために」ということらしいが、それなら全体の雰囲気を合わせてほしかったなと思う。 シナリオは変更ない。 操作性なども大きく変わっていない印象。ボタン連打して連携を続けるより、小刻みに弱を連打して敵をハメる技も健在。 昔ポケステでやっていたミニゲームも、ゲーム内で遊べるようになっているが、こんなに難しかったかな…というぐらい難しい。歳のせい? 一周目は好きなようにアーティファクトを置き、ぶらぶら探索しながら出てきたシナリオを順番にこなしていく。 多分もう一周するので、そのときは攻略サイトなりを見ながら見つけられなかったシナリオを回収しながらやろうかな。

July 1, 2021

ゴリラと学ぶVim講座でVimプラグインの写経をした

このページの写経をした。 Vim scriptでプラグインを作ろう 〜 Vimはいいぞ!ゴリラと学ぶVim講座(8) | さくらのナレッジ 「ゴリラと学ぶVim講座」は2020年に連載されてた記事で、今回はその最終回だけ読んだ。 vimscriptの基本的な文法を説明したあとで、sessionを保存・読み込みするプラグインの作成を通してプラグインの作り方やvimの関数について学ぶ。 これまでVimの設定は「人が書いたものを持ってくる」だけだったので、ちゃんと自分でも書けるようになりたかった。 そのためにvimscriptのチュートリアルを探していて、上記のページを見つけた。 自分にはちょうどよかった。 自分でも簡単な機能を作ってみたくなったし、連載の他の記事も読んでみようと思う。 写経する際の注意点として、neovimだと readdir 関数が定義されていないため使えない。

June 22, 2021

SodaStreamの炭酸水メーカーを買いました。

SodaStreamの炭酸水メーカーを買いました。 近くのヨドバシカメラで購入。 意外と重たくて持って帰るのに苦労した。 うちでは誰もアルコールを飲まないので、普通に炭酸水としてか、ジュースを割って飲んでいます。 炭酸の強さが3段階で変更できる。 一番弱い設定でも炭酸を入れた直後はそれなりに刺激がある。 ただ、ちょっとおいているとすぐに炭酸は抜けていくかな?という印象。 しばらくはいろいろなものを割って楽しもうと思う。

June 21, 2021

MonkeyをRustで実装し始めました。

Rustで「Go言語でつくるインタプリタ」の実装をはじめました。 Golangでの写経はしたことありましたが、他の言語で書き直すのははじめてです。 正直、もっと簡単に移植できるかと思いましたが、結構かかっています。 他にも同じことを考えた人がいるため参考には困らないですが、Rustの文法や仕様にはなかなか慣れないですね… 参考記事 [Rust] 『Go言語でつくるインタプリタ』Rustで読了 - Qiita Uminchu618/rust-monkey: Writing An Interpreter In Go(Go言語でつくるインタプリタ)をRustで

June 17, 2021

GatsbyをTypeScriptで書き換えた

もともとGatsbyのReact関連実装がJavaScriptだったので、TypeScriptで実装し直した。 必要なライブラリのインストール。 $ yarn add gatsby-plugin-typegen $ yarn add -D typescript tsconfig.jsonを生成する。 $ npx tsc --init gatsby-plugin-typegenを入れておくと、yarn buildしたときにGraphQLのクエリに対応した型を自動的に作成してくれる。 これを利用するためにはクエリに名前をつけておく必要がある。 # 名前をつけていく query Hoge { } あとはyarn buildすると対応した型のファイルが作成されるので、これを利用して実装を書き換える。 基本的にはxxx.js -> xxx.tsxで書き直していく。 型が導入されるのでエラーが出るが、Componentに対して適した型を渡していけば対応できる。 ただし、自動生成された型は値が取得できなかった場合を考慮してundefinedを許容するようになっており、値を取得する際もそれに合わせた対応が必要になる。 ?を書くことになるがちょっと気持ち悪いのでどこかで対応したい。 const Component: React.FC<PageProps<GatsbyTypes.HogeQuery>> = ({...}) => { ... } 参考 Gatsby.jsのTypeScript化 2020

May 4, 2021

JSXGraphをReactアプリで使う

JSXGraphというグラフを描画するライブラリがある。 JSXGraph - JSXGraph これをReactアプリに組み込みたかったので、jsxgraph-react-jsを使ってみた。 sytabaresa/jsxgraph-react-js: React component library for use Javascript or JessieCode for make JSXGraph boards インストール。 TypeScript対応はされていないので、JS用のライブラリを使う。 $ yarn add jsxgraph-react-js 1次関数をグラフ化するときは以下のように実装する。 import React from 'react' import JXGBoard from 'jsxgraph-react-js' const Component = () => { const xmin = -10, xmax = 10, ymin = -10, ymax = 10 const logic = (board) => { board.suspendUpdate() const func = (x) => { return x + 1 } board....

May 1, 2021

chronoクレートを使う

Rustアプリで時間を取得したかったので、chronoクレートを使ってみた。 外部クレーなので、インストールして使用する。 $ cargo add chrono 時間関連の処理が色々実装されているらしいが、今回はローカルの現在時刻が欲しかったので以下のように実装。 use chrono::Local; fn main() { println!(Local::now().format("%Y-%m-%dT%H:%M:%S")); } 参考 chrono - Rust Rustで日時を扱う - Qiita

May 1, 2021

Gitのデフォルトブランチをmainにする

Gitのデフォルトブランチがmainになるように設定した。 git v2.28でデフォルトブランチをmainに変更する - Qiitaを参考にしようと思ったが、gitのバージョンが古かったのでこれを更新することから始める。 GitはmacOSにデフォルトで入っていたものだったので、HomeBrewで最新のものをインストールする。 $ brew update $ brew install git $ git --version # 更新されていることの更新 あとは上記を参考に設定を行う。 $ git config --global init.defaultBranch main

May 1, 2021

cargo-editをインストールした

Cargoプロジェクト内でパッケージの追加をかんたんに行いたかったのでcargo-editをインストールした。 $ cargo install cargo-edit これで、add, rm, upgradeがサブコマンドとしてcargoに追加される。 詳細は --help で確認できる。 # add: パッケージのインストール # バージョンを指定しなければ最新がインストールされる $ cargo add reqwest # オプションが色々あり、featureも指定可能 $ cargo add tokio --features full # upgrade: Cargo.tomlで管理しているクレートを更新する $ cargo upgrade # rm: クレートを削除する $ cargo rm reqwest 参考 cargo-edit - crates.io: Rust Package Registry

April 29, 2021

RustでHello World

RustでHello Worldするまで。 最近はasdfを使用しているので、rustもこれでインストールした。 $ asdf plugin-add rust $ asdf install rust latest # このときは1.15.0がインストールされた $ asdf reshim rust $ asdf global rust 1.15.0 $ cargo -V 適当にディレクトリを作って main.rs ファイルを作成する mkdir rust_hello-world cd rust_hello-world vim main.rs fn main() { println!("Hello World"); } 作成したrustファイルをコンパイルして実行する。 $ rustc main.rs $ ./main Hello World 参考 Hello, World! - The Rust Programming Language 日本語版

April 29, 2021