2019年01月14日

Musicメモ 2019/01

Musicメモ 2019/01
* Crazy Glue (2017)
Melanie Ungar

https://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
posted by Copyright (C) avrin All Rights Reserved. at 21:04| Comment(0) | その他 | このブログの読者になる | 更新情報をチェックする

2018年10月17日

“もうけ”は誰の手に? 闇に消えるネット広告費 2018

“もうけ”は誰の手に? 闇に消えるネット広告費
https://www3.nhk.or.jp/news/web_tokushu/2018_1012_2.html

なんか恐ろしい話。

posted by Copyright (C) avrin All Rights Reserved. at 20:10| Comment(0) | その他 | このブログの読者になる | 更新情報をチェックする

2018年01月08日

make + guile を使うメモ 2018

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
guile機能が有効化どうか確認する方法: Makefile内に以下を記述し、
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' となる。
その他 上記以外の型はエラーとなる。(将来扱える型が増える可能性を否定しない)
従って、エラーを避けるなら上記の有効な型に置き換える工夫が必要。
make + guile 資料 このページをguileで検索 https://www.gnu.org/software/make/manual/make.html guile 資料 guile トップページ https://www.gnu.org/software/guile/ guile2.2.3 ドキュメント https://www.gnu.org/software/guile/manual/ (注) Macは非所有なのでAC。 (注1) ひょっとするとguileをつかわずmakeの標準関数でできるかどうかは未確認。 ざっとみたけど、 ?だった。
posted by Copyright (C) avrin All Rights Reserved. at 23:24| Comment(0) | その他 | このブログの読者になる | 更新情報をチェックする

2018年01月06日

Crystal言語 (Ruby系コンパイラ) 2018

Crystal言語はRubyの仕様を限定した、
ネイティブコードコンパイラらしい。

ちょっと試してみるか。

と思ったけど Windows非対応みたいなので放置することにした。
orz




posted by Copyright (C) avrin All Rights Reserved. at 20:56| Comment(0) | その他 | このブログの読者になる | 更新情報をチェックする

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
どうしてデフォルトでそんな風にしたくなったのか謎。
マルチコミット対応なのかも。
きっとそうだ。
そうに違いない。













posted by Copyright (C) avrin All Rights Reserved. at 22:44| Comment(0) | その他 | このブログの読者になる | 更新情報をチェックする