之山

実践メモ

之山

実践メモ

マガジン

  • Monkey言語の拡張

    Go言語でつくるインタプリタ,で実装しているMonkey言語を拡張してみた経過のメモです.

  • Blockly

    Blocklyを使って独自のブロックを作成していく.

  • Go言語で音を鳴らす

    Go言語を使って音を鳴らしてみたい.

  • C言語で絵を動かす

    タイトル通り. ペンライトを左右に振れるようにしたい.

記事一覧

Monkey言語:冪乗の二項演算子"^"実装

目標「2^3」のような冪乗の演算をMonkey言語に実装する. 字句解析トークンの定義 token/token.go にHAT = `^`を追加.(p.4) const ( ILLEGAL = "ILLEGAL" //トークン…

之山
8か月前

コードが反映されない問題

目標ブロックを置いてもコードが表示されない問題の原因を探り,解決する. 現状自分が作ったブロックの中でコードで出力されるものとされないものがある この記事では…

之山
9か月前

Blocklyで変数ブロックを作成

目標ブロックで変数宣言,代入を可能にする. 実装実装はすぐに終わる. Toolboxに次のコードを挿入するだけ. <category name="Variables" colour="330" custom="VARI…

之山
9か月前
1

CodePenを使わずにブロック追加

前回の記事前回は,ひとまずBlocklyが動かせるか確認するために基本的な動きを確認した.ただ,ここからは実装の都合上CodePenを使わないこととする. CodePenのメリット…

之山
10か月前

Blocklyで独自言語のピースを作成2:手法変更につき中断

前回の記事ブロックをDeveloper Toolで作ってExportしたはいいものの,そのファイルへの参照方法に迷って迷走してしまったので,GitHub Pagesを用いてその解決をはかる. …

之山
10か月前

Blocklyで独自言語のピースを作成(心機一転):失敗

前回までの流れこんな感じでやってきたけど,GitHubから持ってきたものの中にサイトで指定されてたパスがないわ,ブラウザから手元のファイルを上手く使えないわで躓いた…

之山
10か月前
1

Blocklyで独自言語のピースを作成1:手法変更につき中断

前回の記事前回は,ひとまずBlocklyが動かせるか確認するために基本的な動きを確認した. 今回の目標自分で設計した言語に合わせてBlocklyで置くことができるブロックを…

之山
10か月前

MacBook AirでBlocklyの使用

目的自作のプログラミング言語をビジュアルプログラミング言語にしたい.ひとまず導入や簡単な操作確認を行う. 無料で Web アプリの画面 (フロントエンド) を作れるサー…

之山
10か月前

DiscordにMusicGenのbotを導入(失敗)

目標タイトル通り,DiscordのチャンネルにMusicGenのbotを導入し,DiscordからMusicGenを使えるようにする. 参考公式でやり方は載せてくれているので,これに則りなが…

之山
1年前

UnityのプロジェクトをGitHub, SourceTreeで管理

目的UnityのプロジェクトをGitHubとSourceTreeで管理しようとしたらアクセス周りの話で色々問題が発生したので,対処法のメモ. 現状やったことリポジトリの作成 Unityで…

之山
1年前
2

Mac VScode tex環境構築

環境・MacBook Air M1, 2020 macOS Monterey ver. 12.6 ・VSCode バージョン: 1.72.0 (Universal) 参考 手順LaTeX Workshopのデフォルト設定ファイルを上書き (1)Tex作…

之山
1年前
7

ブラウザ上で.wavをドロップ,再生

目標タイトル通り,ブラウザ上に.wavファイルをドロップさせ,その音源が再生できるようにしたい. ドロップなしで音源を配置一旦,元から指定した音源を置いておき,再生…

之山
1年前

Monkey言語:サンプル音源の再生

目標組み込み関数sampleを作成して,引数によって録音された音源を流せるようにしたい. この記事を参考に書いていく. テストケースを書くfunc TestSampleFunction(t *t…

之山
1年前

Go言語のhttpパッケージ周りについて整理

背景この記事で静的ファイルサーブをすることになったが,普通に localhost:8080 を開くのと同時にやる方法がわからなかったから整理する. localhost:8080開くだけのコー…

之山
1年前

XMLHttpRequestでブラウザからローカルファイルにアクセスしようとしたけど無理だった

背景この記事で,ブラウザから,ローカルにあるテキストファイルを読み込む必要がでたので,XMLHttpRequestを使って実現しようとした. 行ったことこの記事の「読み込みの…

之山
1年前

Go言語:ファイル入出力

環境・macOS Big Sur ver. 12.6 (21G115) ・MacBook Air M1, 2020 メモリ 8GB ・go1.18.3 darwin/arm64 目標main.goを実行したら指定したテキストファイルを初期化(白紙…

之山
1年前

Monkey言語:冪乗の二項演算子"^"実装


目標「2^3」のような冪乗の演算をMonkey言語に実装する.

字句解析トークンの定義

token/token.go にHAT = `^`を追加.(p.4)

const ( ILLEGAL = "ILLEGAL" //トークンや文字が未知であることを示す EOF = "EOF" //識別子,リテラル IDENT = "IDENT" //関数や変数など INT = "INT"

もっとみる

コードが反映されない問題



目標ブロックを置いてもコードが表示されない問題の原因を探り,解決する.

現状自分が作ったブロックの中でコードで出力されるものとされないものがある

この記事ではコードを反映させることが出来ている.

しかし,新しく作成した,次の画像にあるようなrandom,gaussブロックではコードが出力されない.

原因究明入力方法の違い?

一目見てみて,明らかに違うところはplayがブロックの中に引

もっとみる

Blocklyで変数ブロックを作成


目標ブロックで変数宣言,代入を可能にする.

実装実装はすぐに終わる.

Toolboxに次のコードを挿入するだけ.

<category name="Variables" colour="330" custom="VARIABLE"></category>

結果

注意点VSCodeのプレビュー機能にてindex.htmlを開くと,Create variableを押しても変数を作成出来ない.

CodePenを使わずにブロック追加


前回の記事前回は,ひとまずBlocklyが動かせるか確認するために基本的な動きを確認した.ただ,ここからは実装の都合上CodePenを使わないこととする.

CodePenのメリットとしては,index.htmlの結果を見ながら出来る,共有が楽というものであったが,VScodeのプレビューを使用すれば前者は問題ないし,共有もGitHubで十分である.ブラウザであるCodePenで行うとローカルの

もっとみる

Blocklyで独自言語のピースを作成2:手法変更につき中断


前回の記事ブロックをDeveloper Toolで作ってExportしたはいいものの,そのファイルへの参照方法に迷って迷走してしまったので,GitHub Pagesを用いてその解決をはかる.

GitHub Pagesとは

リポジトリのSettingsからPagesに行くとこのような画面になる(Public).
Privateの時はGitHub Pagesを使えないので違う画面が出る.

Br

もっとみる

Blocklyで独自言語のピースを作成(心機一転):失敗


前回までの流れこんな感じでやってきたけど,GitHubから持ってきたものの中にサイトで指定されてたパスがないわ,ブラウザから手元のファイルを上手く使えないわで躓いたので,心機一転,やり直す.

とは言っても,少し同じ作業はあるので,その部分は短くする.

今回の目標自分で設計した言語に合わせてBlocklyで置くことができるブロックを変更していく.
一旦は,"play(60, 0.5);" のよ

もっとみる

Blocklyで独自言語のピースを作成1:手法変更につき中断


前回の記事前回は,ひとまずBlocklyが動かせるか確認するために基本的な動きを確認した.

今回の目標自分で設計した言語に合わせてBlocklyで置くことができるブロックを変更していく.
一旦は,"play(60, 0.5);" のようにplay関数を表現できるようなものを作成.

ブロック作成このサイトを一旦参考にしてみる.

Blockly Developer Toolsを使用するらしい.

もっとみる

MacBook AirでBlocklyの使用


目的自作のプログラミング言語をビジュアルプログラミング言語にしたい.ひとまず導入や簡単な操作確認を行う.

無料で Web アプリの画面 (フロントエンド) を作れるサービス CodePen と、JavaScript のライブラリーを配信している CDN の JsDelivr を使って、Blockly を動かす.

環境Apple M1: メモリ8GB

Ventura 13.5

Google

もっとみる

DiscordにMusicGenのbotを導入(失敗)



目標タイトル通り,DiscordのチャンネルにMusicGenのbotを導入し,DiscordからMusicGenを使えるようにする.

参考公式でやり方は載せてくれているので,これに則りながら進めつつ,わからないところを補強していく.

Prerequisites(前提条件)Python 3.9.6

Terminal on Mac(M1: 8GB)

macOS Ventura 13.5

もっとみる

UnityのプロジェクトをGitHub, SourceTreeで管理

目的UnityのプロジェクトをGitHubとSourceTreeで管理しようとしたらアクセス周りの話で色々問題が発生したので,対処法のメモ.

現状やったことリポジトリの作成

Unityでプロジェクトを作成(中身の変更はなし)

Unityでignoreするとよいらしいものをまとめた.gitignoreをダウンロード

SourceTreeにGitHubのアカウント追加

問題SSHキーがうまく

もっとみる

Mac VScode tex環境構築

環境・MacBook Air M1, 2020 macOS Monterey ver. 12.6
・VSCode バージョン: 1.72.0 (Universal)

参考

手順LaTeX Workshopのデフォルト設定ファイルを上書き

(1)Tex作業用ディレクトリを作成.
ここではtexWorkディレクトリを作成した.

(2)texWorkディレクトリでVSCodeを開く.

(3)V

もっとみる

ブラウザ上で.wavをドロップ,再生

目標タイトル通り,ブラウザ上に.wavファイルをドロップさせ,その音源が再生できるようにしたい.

ドロップなしで音源を配置一旦,元から指定した音源を置いておき,再生できるようにしてみることにする.

index.html

<html> <head> <meta charset="utf-8"/> <script src="wasm_exec.js"></scr

もっとみる

Monkey言語:サンプル音源の再生

目標組み込み関数sampleを作成して,引数によって録音された音源を流せるようにしたい.

この記事を参考に書いていく.

テストケースを書くfunc TestSampleFunction(t *testing.T){ tests := []struct { input string expected interface{} }{ {`sample("drubase")`, "drubase

もっとみる

Go言語のhttpパッケージ周りについて整理

背景この記事で静的ファイルサーブをすることになったが,普通に
localhost:8080
を開くのと同時にやる方法がわからなかったから整理する.

localhost:8080開くだけのコードpackage main import ( "log" "net/http") func main() { port := "8080" http.Handle("/", http.FileServer(h

もっとみる

XMLHttpRequestでブラウザからローカルファイルにアクセスしようとしたけど無理だった

背景この記事で,ブラウザから,ローカルにあるテキストファイルを読み込む必要がでたので,XMLHttpRequestを使って実現しようとした.

行ったことこの記事の「読み込みのみなら」という部分に着目し,manifest.jsonを作ってやってみようと思う.
HTMLファイルと同じ階層に作ればよいらしいのでdocsフォルダに作ることになる.

ファイル構成 (+ manifet.json)

├─

もっとみる

Go言語:ファイル入出力

環境・macOS Big Sur ver. 12.6 (21G115)
・MacBook Air M1, 2020 メモリ 8GB
・go1.18.3 darwin/arm64

目標main.goを実行したら指定したテキストファイルを初期化(白紙化)し,ある関数(play)を実行するとそのテキストファイルに文字列を書き込み,webassembly.goでそのテキストファイルを読み込む.

ファイ

もっとみる