* Crazy Glue (2017) Melanie Ungarhttps://www.jamendo.com/track/1480482/crazy-glue 歌声に恵まれてる。テイラー・スイフト風。 どこかで聴いたようなオールディーズっぽい曲。 誰かのカバーなのか? 思い出せない。 orz * I Love How You Loved Me (2018) Always the Alibi
https://www.jamendo.com/track/1513477/i-love-how-you-loved-me * Fire, Fire (2018) The Devil Music Co.
https://www.jamendo.com/track/1565058/fire-fire * Constellate (2018) Fleurie
https://www.jamendo.com/track/1549463/constellate * Just a Stranger (2018) MCKOOL
https://www.jamendo.com/track/1567808/just-a-stranger * By Your Side by Mallz & Deron Alek (2018) Cartel
https://www.jamendo.com/track/1593685/by-your-side-by-mallz-and-deron-alek Taylor Swift - Look What You Made Me Do https://www.youtube.com/watch?v=3tmd-ClpJxA テイラー・スウィフトのMVに潜むヤバすぎる秘密を完全解説 https://front-row.jp/_ct/17122411 "MV"って何かと思ったらミュージック・ヴィデオのこと。 mvとpv違いとは:どのように捉えるか https://www.cyring.co.jp/%E6%98%A0%E5%83%8F%E8%B1%86%E7%9F%A5%E8%AD%98/mv%E3%81%A8pv%E9%81%95%E3%81%84%E3%81%A8%E3%81%AF-%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E6%8D%89%E3%81%88%E3%82%8B%E3%81%8B/ アカペラ https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%BB%E3%82%AB%E3%83%9A%E3%83%A9
2019年01月14日
Musicメモ 2019/01
2018年10月17日
2018年01月08日
make + guile を使うメモ 2018
はじまり だいぶ前にmake 4.0がリリースされてguile言語がバインドされた。 Makefileの中にguile言語が記述できるというもの。 (ただし、guile機能はオプション扱いでmake 4.x系でも非バインド(使えない)のものもある) guile言語はインタプリタ型の汎用言語なので、makeの標準関数だけではできなかった いろいろな処理が自由に書けることになる。 今までも $(shell ...) 関数で外部コマンドを呼び出せばそこそのことはできていたが、 Windows(32bit)(DOS窓,PowerShell)とLinux系(msys2/cygwin)で共用しようと思うと Windows側に追加ツールが必要で、かつ、互換性やコマンド同士の干渉に留意が必要だった。 make 4.x系でguile言語を使えばどのプラットフォームでも使えるMakefileが作成できる ことになるのだった。 make 4.x + guile機能はデフォルトで Onなのか? 今は2018年初頭。 デフォルトの対応状況をしらべてみた。
guile機能 | 有効化 | |
msys2 | なし | 後述 |
cygwin | あり | 不要 |
[Lu|U]buntu 16.04(Linux) | なし | $sudo apt-get install make-guile |
all: @echo $(.FEATURES)makeしてみると、
target-specific order-only second-expansion else-if shortest-stem undefine oneshell archives jobserver output-sync guile load上記の様にguileが含まれていれば有効になっている。 Windows DOS窓/PowerShell/msys2上でguile機能を使う (1) まず既存のmake.exeがある場合はそれが呼ばれないようにする。 やり方は色々あるが、make.exeをmake.exe.orgにリネームするのが簡単か。 (2) make with guile をダウンロード https://sourceforge.net/projects/ezwinports/files/ から make-4.2.1-with-guile-w32-bin.zip をダウンロードし、解凍する。 (3) 出てきたファイル群を D:\usr以下にコピーする。 Windowsの環境変数PATHに D:\usr\binを追加。 Windows DOS窓/PowerShell上からはこれで使える。 msys2: $ pacman -R make で既存のmakeを削除。 ~/.bashrc 内に export PATH=$PATH:/d/usr/bin を追加し、 $source ~/.bashrc で使用可能になる。 ドライブDがない場合: ドライブCしかない場合、或いは、ドライブD以外にインストールしたい場合は、 (a) 適当なドライブ(仮にC:)・フォルダ(仮にmakegとする)に上記解凍したファイル群をコピーする。 (b) Winodws環境変数に以下の2つを新規追加。 (i) 変数名: GUILE_LOAD_COMPILED_PATH 変数値: c:\makeg\lib\guile\2.0\ccache (ii)変数名: GUILE_LOAD_PATH 変数値: c:\makeg\share\guile\2.0 (c) Windowsの環境変数PATHに c:\makeg\binを追加。 msys2で使いたい時は、 ~/.bashrcに上記同様に追加。 以上で make + guile機能が使える様になる。 guile関数を実際に使ってみた GUILE_SCRIPT: 関数群の適当な名前。 define 名前 .... endef で関数群を定義。 $(guile $(GUILE_SCRIPT) ) で関数群をロード。 緑の部分で、定義した関数を使用した。 関数 genTargetName は引数文字列の先頭から3文字をカットした文字列を返す関数。 (やりたかったのは、Makefileを実行したフォルダの名前から先頭の3文字をカットしたものを、 TARGET名にしたかった。)(注1) Makefile
# guile関数定義 define GUILE_SCRIPT (define (genTargetName dirName)\ (substring dirName 3 (string-length dirName))) endef # guile関数ロード $(guile $(GUILE_SCRIPT) ) ARC = thumbv7em-none-eabihf FLASH_EXE = d:/STM32-ST-LINK-Utility/ST-LINK\ Utility/ST-LINK_CLI.exe DIRNAME = $(notdir $(CURDIR)) # guile関数呼び出し TARGET = $(guile (genTargetName "$(DIRNAME)" ) ) TARGET_DBG = $(TARGET)_debug TARGET_REL = $(TARGET)_release ...関数定義をやめれば同じ内容をもっと短くも書ける。 Makefile
ARC = thumbv7em-none-eabihf
FLASH_EXE = d:/STM32-ST-LINK-Utility/ST-LINK\ Utility/ST-LINK_CLI.exe
DIRNAME = $(notdir $(CURDIR))
# guile関数呼び出し
TARGET = $(guile (substring "$(DIRNAME)" 3 (string-length "$(DIRNAME)"))))
TARGET_DBG = $(TARGET)_debug
TARGET_REL = $(TARGET)_release
...
guile関数の定義部分だけ別ファイルに書いてロードすることもできる。
$(guile (load "script_foo.scm"))
makeのguile機能について
makeの標準関数の一つとして「guile」という名前の関数が増えたことになる。
引数1つの関数なので、 $(guile 引数) と言う形になる。
guile関数は最初に、makeによって通常の方法で評価(展開)され、
次にguileインタプリタで評価される。
Makefile内は文字列しか扱えないので、guileの引数も文字列である必要がる。
guileインタプリタでの評価結果(返り値)は文字列としてMakefile内で使用できる。
guile返り値の型変換
guileインタプリタ内部で扱う型は、makeへの返り値となった時、
以下の様にすべて文字列に変換される。
guile内の型 | 変換後のmake内の文字列 |
#f | 空文字。 空文字はMakefile内ではfalseとして扱われる。 |
#t | '#t'。 '#t'は文字なのでMakefile内ではtrueとなる。 |
シンボルと数値 | シンボルと数値はそれらを表す文字列となる。 |
文字 | 表示可能な文字は、同じ文字になる。 |
文字列 | 表示可能な文字のみを含む文字列は、同じ文字列になる。 |
リスト | リストは上記ルールに従って、再帰的に平坦化される。 例: (a b (c d) e) は、 Makefile内では'a b c d e' となる。 |
その他 | 上記以外の型はエラーとなる。(将来扱える型が増える可能性を否定しない)
従って、エラーを避けるなら上記の有効な型に置き換える工夫が必要。 |
2018年01月06日
Crystal言語 (Ruby系コンパイラ) 2018
Crystal言語はRubyの仕様を限定した、
ネイティブコードコンパイラらしい。
ちょっと試してみるか。
と思ったけど Windows非対応みたいなので放置することにした。
orz
ネイティブコードコンパイラらしい。
ちょっと試してみるか。
と思ったけど Windows非対応みたいなので放置することにした。
orz
2017年12月29日
Visual studio codeのメモ 2018
Visual studio code 1.19.1 が現在のバージョン。
以下vscodeと書く。
一年ぶりくらいにアップデートして起動だけしてみた。 :-)
Pros:
* プラグインの検索、インストール、無効化、有効化、
オプション設定のしやすさは非常に簡単で好印象だった。
* Vimのキーバインドは結構使えそうな感じ。 (^^)/
* プラグインの数(各種言語サポート)が増えていて、なんかスゴ。
* コンパイル時のターミナル統合感が自然で良い。
* IDE風に使えそうなんだけど、IDEじゃなくてエディタ。
* DVCS統合もできる。
* マルチプラットフォームなのは良いかも。
Cons:
* vscodeのウインドウにファイルをD&Dできない orz orz
* デフォルトで画面分割が縦分割になる orz
一応 ALT+ shit + 1 で切り替わる。
縦横混在の分割は?
* 各ウインドウのタイトルバーやタブ部分の大きさががやたらでかい。
違和感がある点:
ファイルを修正変更して未保存でvscodeを終了できる。
再起動すると変更中状態から始まる。
オプションで挙動の変更は可能と思われるが、ちょっとじゃないくらいの
違和感があった。 orz
(1) vscodeで未保存終了する。
(2) そのファイルを他のエディタで変更保存する。
(3) vscodeを再起動すると、 (2)内容が反映されていない。
orz
orz
どうしてデフォルトでそんな風にしたくなったのか謎。
マルチコミット対応なのかも。
きっとそうだ。
そうに違いない。
以下vscodeと書く。
一年ぶりくらいにアップデートして起動だけしてみた。 :-)
Pros:
* プラグインの検索、インストール、無効化、有効化、
オプション設定のしやすさは非常に簡単で好印象だった。
* Vimのキーバインドは結構使えそうな感じ。 (^^)/
* プラグインの数(各種言語サポート)が増えていて、なんかスゴ。
* コンパイル時のターミナル統合感が自然で良い。
* IDE風に使えそうなんだけど、IDEじゃなくてエディタ。
* DVCS統合もできる。
* マルチプラットフォームなのは良いかも。
Cons:
* vscodeのウインドウにファイルをD&Dできない orz orz
* デフォルトで画面分割が縦分割になる orz
一応 ALT+ shit + 1 で切り替わる。
縦横混在の分割は?
* 各ウインドウのタイトルバーやタブ部分の大きさががやたらでかい。
違和感がある点:
ファイルを修正変更して未保存でvscodeを終了できる。
再起動すると変更中状態から始まる。
オプションで挙動の変更は可能と思われるが、ちょっとじゃないくらいの
違和感があった。 orz
(1) vscodeで未保存終了する。
(2) そのファイルを他のエディタで変更保存する。
(3) vscodeを再起動すると、 (2)内容が反映されていない。
orz
orz
どうしてデフォルトでそんな風にしたくなったのか謎。
マルチコミット対応なのかも。
きっとそうだ。
そうに違いない。