Dora's Sound!

イントロクイズの話とか、プログラム関係の備忘録だったり。書きたいことを気が向いたときに書きます。

快適なイントロクイズ出題環境に向けてfoobar2000の整備をしていく

イントロクイズをオンラインで出題しようということで多くの方がfoobar2000を導入いただいているようで、こちらの記事が結構見ていただけているようで。

pgdora56.hateblo.jp

結構、foobar2000での出題が増えてきた中、foobar2000のセッティングで質問をいただくことが増えてきたので、foobar2000のComponentsについてまとめてみようかな、と思っています。

Componentを始める前に

基本的なfoobar2000についてまだあまりご存知でない方はこの辺りのサイトで一通り慣れて頂いてからをオススメします。第1回・第2回辺りは最低限抑えておくとよいかと。Columns UIについては当記事でも扱います。

wikiwiki.jp

Componentとは

そもそもfoobar2000は素うどんみたいなものなので、何も拡張機能を追加せずに使うと本当に音楽が再生できるだけのプレーヤーっぽい感じになってしまいます。美味しいけど。

素うどんでは寂しいので、各々好きなトッピングをしていくことをオススメします。そのトッピングの自由度が高いのがこのfoobar2000のウリです。言ってしまえば素うどんに合うトッピングを、キッチンで自分で料理できてしまうくらい、もっと言うなら素材から作れてしまうくらい、本当に自由度が高いです。

Componentはこのトッピングにあたるものです。これを駆使することで自分だけのfoobar2000が完成します。Componentは世界中のfoobar2000ユーザの方々が開発してくださっています。自分で作る必要がない程度には十分なComponentが存在します。

つまり、カスタマイズすればするほど自分色になりますし、自分が使いやすいものになります。

Componentのインストール方法

foobar2000の左上にある File→Preferences の中から Components を開いてあげてください。こんな画面になると思います。

f:id:pgDora56:20200412181254p:plain
Components

ここには、自分が導入したComponentが一覧になって表示されます。最初から導入されているComponentもいくつか入っていると思います。

この中の Install... というボタンから、DLしたComponentのファイルを選択してインストールするのが基本的なインストール方法です。

Componentの配布方法には2種類あり、

  • ~~~.fb2k-component というファイル
  • foo_~~~.zip というファイル

のいずれかです(~~~にはComponentごとに別のものがくる)。 Install... からこのファイルを選んでやればComponentのインストールができます。このときの注意として、zipファイルについては展開せずにそのままComponentから選択してください。展開すると多分何も選べなくて終わります。

Componentを探す

とりあえず公式サイトのここには大量にあります。

www.foobar2000.org

まあ英語で読みにくいですが……ここから探すのも一つ楽しいところかもしれません。

それよりは、こちらに日本語でまとめてくださっています。ここから興味のあるものを見つけるのがベターですね。

foobar2000.xrea.jp

また、foobar2000の公式サイトの他にも、各々がGitHubなどで配布してくださっていることもあります。いい感じのComponentを探していきましょう。

イントロ向きのComponent

イントロ向きというか、イントロ勢なら入れておくと良いかな、というやつを抜粋して掲載します。

Columns UI

これはfoobar2000自体の構成を自由に変えられるやつです。従来のDefault User Interfaceでは、上にプレイリストがタブで表示されます。ですがこれではプレイリストが増えたときに見づらくて仕方ありません。

そこで、この子を入れてあげると、色々と配置を変えたり出来ます。Default User Interfaceでは使えない/使いづらいComponentもおそらくあるので、これはほぼ必須でしょう。

導入は以下のサイトなどを参照ください。

howto-it.com

foobar2000.xrea.jp

注意点として、古いVersionのfoobar2000を使っていると最新のColumns UIが使えないことがあります。その際はfoobar2000を更新してもいいですし、Columns UIのOld Versionを使ってもいいと思います。大きくは異なりません。

また、新しいバージョンのColumns UIの場合はLayoutの位置が過去の記事とは異なることがあります。その際は以下の画像のような位置を確認してみてください。

f:id:pgDora56:20200412194605p:plain

Spider Monkey Panel

WSH Panel Mod → JScript Panel → Spider Monkey Panelの流れです。

このComponentは自分でプログラムを記述することで、このパネル上で様々な情報を表示させたり、様々な便利機能が実現できるComponentです。つまり、Component上でプログラムを書くことを想定されているわけですね。

イントロ界隈ではこれを活用してイントロ向けのプログラムを書いていたりする人がちょくちょくいます。私もDoraIntroPanelというパネルを作成しています。BOOTHで無料配布しているのでもしよければ。

dora-sail.booth.pm

勿論自分で作っても構いませんが、あまりにも日本語の文献やサンプルプログラムが少ないんですよね……基本的には有識者が配布してくださっているものをこの上で動かすイメージです。導入することで驚くほどオンライン出題が捗ることと思います。ラントロやアウトロができるようになります。イントロ特化ですからね。

イントロ特化で配布されているプログラムおそらくこの上で動く形で配布されていることが多いです。その意味で、このComponentはぜひ導入しておきたいところでしょう。

導入方法が少し独特でわかりにくいのでこちらで解説します。

まず、GitHubのReleasesページへ飛びます。

Releases · TheQwertiest/foo_spider_monkey_panel · GitHub

このページには上から新しい順に「更新を配布するよ=Releaseするよ!」という感じに、開発したプログラムが配布されています。ですので、一番上にある項目の「Assets→foo_spider_monkey_panel.fb2k-component」をDLしてください。それをComponentsからInstallしてあげればOKです。

f:id:pgDora56:20200412195808p:plain

その他

適当に並べていきます。また思い出したら追加します。

Component 何が出来る?
Masstagger 曲情報をまとめて変更できます。リネームが本気で捗るのでマジで便利。
Playlist Organizer プレイリストの一覧表をフォルダのように階層構造に出来ます。プレイリストがバカ増えがちなイントロ勢の強い味方です。
Spotify Decoder foobar2000Spotifyの楽曲がストリーミング再生できます。所持音源とサブスク音源を混ぜて出題できるのは本当に便利。
Playlist Revive) Media Libraryの管理下で曲のフォルダ等の移動があった際に自動で変更を修正してくれます。音楽の保存ファイルを変えて、Media Libraryの場所を変えたときに「再生できなくなっちゃったよ~(o・∇・o)」ってなったらこいつの出番です。
Affix Silence 曲の前後に空白を入れられる。曲頭が切れるときとかに使える。

詳しい説明は暇なときにまた加筆しておきます。

オンラインイントロクイズ出題環境の構築方法についての提案

自分自身への備忘録も兼ねて、オンラインクイズの出題環境構築方法を記載しておきます。Windows環境を想定しています。

全体的に他のサイトに頼りがちです。ごめんなさい。おいおい修正してここだけで完結できるようにします。

オンラインでイントロクイズをしていると、時折解答側の声が返ってきてしまっていることがあると思います。 と、言うのも、私自身自分の声がとても嫌いです。なのでこの現象には割と悩まされていたりします。

そこで、物理的にそれが起こらないような構築をどのように行うか、というのをつらつらと書き記したいと思います。

今回の記事を書くに辺り、学生のJPopイントロ界隈では知らない人はいないであろう、TQCのCGくんに実際にこの環境構築を行っていただきました。その結果、声が返ってくる現象がゼロになり、さらに音質の飛躍的な向上も見受けられました。 ご協力ありがとうございました。

構築方法は少し下からです。「そもそも何故声が返ってくるのか」「提案」の項は適宜すっ飛ばしてください。


目次


そもそも何故声が返ってくるのか

そのような出題者さんは「出題者サイドのヘッドホンに入る音すべて」をDiscordに流しています。つまり、Discordから出る解答者側の声もすべて流してしまっているのです。 軽減させることは勿論可能なので、実質的にほぼ入らずに出題することは可能ですし、現にそのように出題されている方もいらっしゃいます。

ですが、あまり機械が得意でない方はその辺りの微調整ができずに解答者側の声を跳ね返す状態で出題してしまっているのだと思います。ならば、端からそんなことが起きないように出題すればよくね?というのが私の提案です。

図にするとこんな感じで音を流しています。

f:id:pgDora56:20191103011709p:plain
従来の音の流れ

提案

考え方は至って単純で、「出題者サイドのヘッドホンに入る音すべて」を流すからダメなのであって、「音楽だけを流す」ようにすればいいのです。

ただ、このためには追加で設定が必要です。といっても、それによって良い効果が得られる、という面を考えればそこまで重い手間ではありません。

図にするとこういう感じです。

f:id:pgDora56:20191103015027p:plain
提案する音の流れ

無駄な音をカットするので、純粋に音楽だけ聴こえる利点は想像以上に大きかったです(CGくんとやった感じ)。


必要なソフトウェア

この設定には以下のソフトウェアが必要です。

foobar2000

出題のためのメディアプレーヤー。出力先を細かく設定できるメディアプレーヤーであれば大丈夫ですが、foobar2000の軽快さと多くの機能を追加できる点は他のメディアプレーヤーの追随を許さないところがありますので、特段の理由がなければイントロクイズを行う際にこれを使わない手はないと思います。

オンライン出題においては特にSonyのMedia CenterやAppleiTunesなどの重いメディアプレーヤーは途中でのトラブルの原因となりかねません。

アマミキ!

ステレオミキサー。自分の声と音源を混ぜて、それをDiscordに流すためのソフトです。PCに標準搭載でステレオミキサーが入っている場合もありますので、それで代用も可能です。

Yamaha NETDUETTO

一番の目的としては何のソフトなんですかね、いまいち分かってないです。遠くの人とセッションしたりするときに使えるソフトっぽいですが、ここではその機能は使いません。

私は仮想オーディオデバイスの部分だけ使ってるんだと思ってるんですが、どうなんでしょう。有識の方教えてください。この子にはアマミキとDiscordの中継をしてもらいます。

VB-CABLE

仮想オーディオデバイスです。foobar2000とアマミキの中継をしてもらいます。金を払えば3つまで増やせるので、NETDUETTOなしにできるかも?確信はないですが。

環境を作っていく

実際に作っていきましょう。

標準の再生デバイスと録音デバイスの確認

すべての設定を始める前に、再生デバイスと録音デバイスを確認していきましょう。

再生デバイスはPCから再生するデバイス、すなわち「ヘッドホン」であったり「スピーカー」であったりです。 録音デバイスはPCから録音するデバイス、つまり周りから音を集めるわけですので、「マイク」がこれにあたります。

普段自分が使っているものが何なのか、必要になる箇所が多いです、把握できている方は問題ありませんが、出来ていない方は確認ください。

Windowsメニュー(左下)→Windowsアクセサリ→コントロールパネル→ハードウェアとサウンドサウンド

の中に、「再生」と「録音」というタブがあると思います。ここで「既定のデバイス」となって緑色のチェックマークがついているものが普段使っているものと考えて問題ないです。

f:id:pgDora56:20200408233127p:plain
サウンドの確認部分

この例では「マイク 3-UAB-80」が既定のデバイスになります。再生と録音、それぞれ確認ください。

foobar2000のインストール

www.foobar2000.org

とりあえず最低限このサイトのDownloadから手順に沿ってインストールすればOKです。

ただ、自分好みにめちゃめちゃカスタマイズできるソフトなので、多少いじってあげたほうが使いやすいと思います。 個人的には最低限Columns UIというのを入れると幸せになれると思います。

foobar2000でColumns UIを使う手順 | ハウツーIT

やりたい方はこちらから。

さらに、イントロ向けのパネルとしてg2さんや私が配布しているものを使うと幸せになれそうな気がします。また別の機会に。

NET DUETTOのインストール

www.netduetto.net

こちらから各々のPCに合うものをインストール。ウィジェットの流れに沿っていくだけです。

アマミキ!のインストール

そもそもアマミキは動画配信の「アマレコ」についてる付属品みたいなやつなんですが、それが割と有用なので配信に活用している人が多いんですよね。

www.amarectv.com

こちらから「【デスクトップ&ビデオキャプチャ】 旧版 アマレコTV Live アマミキ!」というところのダウンロードページに進み、適当なフォルダにダウンロードします。

ダウンロードしたら、解凍まで行ってください。最近のWindowsであれば解凍はエクスプローラ上で簡単にできるはずです。

解凍後まず「live_setup300.exe」を実行してください(名前は変わっている可能性がありますが、「live_setup***.exe」という名前かと思います)。案内に沿っていくとアマレコがインストールされます。これでアマミキの使用準備ができました(アマレコは使いません)。

VB-CABLEのインスト―ル

こちらを参考にお願いします。

仮想オーディオデバイス「VB-CABLE」インストール方法。再生と録音デバイスを無料で追加できる | ARUTORA

VB-CABLEは無料でシンプルなサウンドバイスが手に入るという点において非常に優れたソフトウェアではあるのですが、インストール後に自動で既定のデバイスVB-CABLEに変更されてしまいます。これでは普段何かPCによって音を聞いたり、マイクで発言したりすることがすべてできなくなってしまいますので、修正が必要です。

この際、以下のサイトなどを参考に既定のデバイスを元に戻してください。

qa.elecom.co.jp

つないでいく

先程の図のように接続していきます。再掲。

f:id:pgDora56:20191103015027p:plain
接続図

接続前に、適宜再起動するとよいかと思います。各ソフトウェアのインストール時に「再起動してくれよ~」ということを(英語かもしれませんが)言われていると思いますので。

やるべきことは、

  • アマミキの設定を行う(一回きり)
  • foobarの音を「VB-CABLE」に送ってあげる(出題の度)
  • Discord側で「ライン」に送ってあげる(出題の度)

です。

アマミキの設定

アマミキをDLして展開したフォルダに戻ると、「AmaMix.exe」というアプリケーションがあります。これが「アマミキ」本体です。その他のアプリケーションは使用しませんので、全く使いません。

これを起動すると、まず設定画面に行くと思います。上のタブを見てもらって「全般」「録音デバイス」「再生デバイス」の3箇所を設定していきます。

全般

f:id:pgDora56:20200408234052p:plain
全般の設定

これは正直どうであろうがアマミキの動作には関係ないんですが、「最小化してトレイに収納」がデフォルトでOnになっているので、起動しているはずなのに起動していないように見えてしまいがちです。ここのチェックを外しておくと良いかと思います……多重起動でわけのわからないエラーを吐く、という混乱に陥りがちです。

アイコンの色等その他は自由に設定してください。

録音デバイス

f:id:pgDora56:20200408235521p:plain

録音デバイスは4箇所ありますが、2箇所しか使いません。foobarからの音を受けるところ(VB-CABLEからの音)と、マイクからの音を受ければOKです。それぞれここでは「CABLE」「マイク」として設定しています。

マイクの「録音デバイス」は各々が普段使っている録音デバイスに設定、ほかは上記の通り設定ください。

ただし、ここでCABLEのHzはPC側と設定を一致させる必要があります。コントロールパネルのサウンドの設定*1から、「CABLE Input→プロパティ→詳細→既定の形式」で、「48000Hz」が選ばれていることを確認してください。おそらく「DVDの音質」と書かれていると思います。

f:id:pgDora56:20200409010014p:plain
サウンドの設定

再生デバイス

f:id:pgDora56:20200408233335p:plain
再生デバイスの設定

<つづきはおいおい書いていきます……すみません>

*1:「標準の再生デバイスと録音デバイスの確認」の項で確認したところと同じです。「Windowsメニュー(左下)→Windowsアクセサリ→コントロールパネル→ハードウェアとサウンドサウンド」で入ってください。

再開カルテット

数年ぶりにこのブログの存在を思い出したのでなんとなく再開しようかなと思ったり。

ただ数年前とは状況があまりに違って。まず大学進学もしたし、イントロクイズに出会ったのもその後。書く内容はきっと変わっていくんだろうな。 昔の記事を見返しながら、「あ~~クソ雑魚技術野郎だなぁ~」なんて思ったりしてた。まあ今もそんなに高いわけではないから……

技術的な話は引き続き書きたい。Qiitaの事件もあったし、よく考えるとブログのほうが好きに書けるし。まあまあ上手く使っていきたいな。

イントロの話なら入手した音源のことは書いて行きたさ。新譜の話が主ですかね。

あとはBOOTHを始めた。有料で売る気はあんまりなくて、自分の制作物を配布する場所として、GithubのReleaseだと慣れてない人がむずめなので、そういう意味でBOOTHを活用させてもらいたい。

Dora's Sail - BOOTH

そんな感じでいい感じに使っていこう、などと。 コロナのせいでだいぶ暇だし。

タイトルは最近『異世界かるてっと』を見ているため。曲は聴いてるけど見てなかったので…原作全部知らないけど、とりあえず楽しめています。

C# Programmer meets Python

最近、Python(3.x)なんかを触ったりしていたのですが、少し変わった言語だな~~と思ったので、C#プログラマ視点からいくつか特徴的な点を紹介してみようかなと思います。

いくつかの他言語(C#,Java等々)からPython使おうとしてる方は多少参考になるかもしれません、

ただし、私はC#大好きです

そのため、多少否定的になってしまうかもしれませんが、それはご愛嬌ということで。


Python 2.x系は微妙に内容が違いますので、そちらをこれから学ぶ、という方は十分にご注意ください。

全体像として

とりあえずHello, World.の比較。

using System;

namespace sample
{
  class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine("Hello, World!");
    }
  }
}


print("Hello, World!")

C#、圧倒的敗北感。

やはりというかなんというか。スマートさではPythonには叶いません。そりゃそうだよ。

かくいう私もpaizaなんかで簡単なコードサクサクやるときはPythonですし。


変数定義

int i = 100;

string player = "SHIZUKA MOGAMI";

bool flag = true;


i = 100

player = "SHIZUKA MOGAMI"

flag = True

型明示しなくていいのか~~なんか気持ち悪いな~~

と私は思ってしまいました。ちなみにC++大好きな先輩にも意見を求めたところ同じ感じでした。

もっとも暗黙的に型宣言してるだけで、型の概念はあります。当たり前です。
初めて入る人にはいいかもしれませんが、ここから明示的な言語に移る時、ちょっと大変な気もしなくもない。まあこの程度ならすぐ慣れますかね~~


条件分岐(=if)

とりあえず簡単に、合格点かどうかなんかを判断させてみます。

int score = 20;

if(score == 100)
{
  Console.WriteLine("満点です!すばらしい!");
}
else if(score >= 80)
{
  Console.WriteLine("合格です。");
}
else
{
  Console.WriteLine("不合格です。");
}


score = 20;

if score == 100:
  print("満点です!すばらしい!")
elif score >= 80:
  print("合格です。")
else:
  print("不合格です。")

括弧で囲わないのか…と、少し最初見にくかったりはしましたが、そこはだんだん慣れてコロン1個が楽になってきました。

そんなことよりelifって。少しは略されたseの気持ちも考えてやれよ!!

はい、茶番です。大体の言語でelse ifのままで略されませんから、少し不思議ではありますよね。


繰り返し構造(=for?)

forの後ろに?がついてるのに気づいた非Pythonプログラマの皆さん。よくぞ気づかれた。

なぜならPythonのforは他言語だとforeach1に当たるのです!!

「おいおい、for使いにくすぎやん!!」

と思われた方、私もそう思いました。

とりあえず "一般的なfor" を使おうとする場面を考えましょう。

for(int i=0;i<10;i++)
{
  Console.WriteLine(i);
}


for i in range(10):
  print(i)

「あれ、思ったより変じゃないのでは?」

ポイントはこのrangeという関数。

これは引数を1つあるいは2つ取りますが、それにより以下のような挙動をします。

list1 = range(5)
# ここでlist1には [0,1,2,3,4] というリスト(配列と似たもの)が代入されるイメージ(正確には違う)

list2 = range(-5,3)
# ここでlist2には [-5,-4,-3,-2,-1,0,1,2] というリストが代入されるイメージ(正確には違う)

つまり、rangeは整数の配列を作る関数と捉えてもらえれば問題ありません2。これをPythonfor(=foreach)と併用したら…

とても強力なのは言うまでもありません。この関数があるため、foreachforを一本化しても問題ないのでしょう。

では、普段のforeachのように使ったときを見てみましょう。

string[] cities = new string[]{"Yokohama", "Nagoya", "Osaka", "Hakata" };
foreach(string c in cities)
{
  Console.WriteLine(c);
}

// (以下出力される値)
// Yokohama
// Nagoya
// Osaka
// Hakata


cities = ["Yokohama", "Nagoya", "Osaka", "Hakata"}
for c in cities:
  print(c)

# (以下出力される値)
# Yokohama
# Nagoya
# Osaka
# Hakata

一つの関数で両方できるのは分かりやすかったりするのかな―と思ったり思わなかったり。他言語やってからやると、慣れれば難しいことはなかったです。

Pythonからプログラミングを始めた方は他をやろうとしたときに「うわっこれいちいち2個に分けてんのかよめんどくさ」とか思うんでしょうかね…

まとめ

とりあえず私がやっていて結構違うな、と思ったところを数点あげてみましたが、とにかくPythonは書きやすいです。

思い立ったらサラッと書ける。

でもやっぱりC#のほうが得意なことはあるわけで……上手に使い分けていければいいんだろうなーということです。どの言語にも言えることですが。

あ、turtleのことを書き損ねた。実用性はどうなのか分かりませんが、手軽にグラフィックが扱えるモジュールのturtleってのがあるので、興味がある方はどうぞ調べてみてください。気が向いたら取り上げます。

そういえばあんまり否定的にならなかったなー(o・∇・o)


  1. (ご存じない方向けの簡単な解説)配列などを指定し、その配列各要素に一度ずつある処理を行わせる、forの姉妹のようなものです。C#の例は繰り返し構造後半で提示するプログラムを参照ください。

  2. range関数、実際にprintしてみるとリストは出ないで、range(10)的なのがそのまま出るんですよね。内部的には遅延評価みたいにしてるんだろうか?その辺は勉強不足。まあ使う上ではリストだと思って使えばほぼ問題ないでしょう。

わかばちゃんと学ぶ、Git使い方入門<GitHub、Bitbucket、Source Tree>

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

買いました!!読み終わりました!!

とりあえずこの本片手にやったGit/GitHub挑戦記的なものを書きます*1

これまでのあらすじ

今までもGitにチャレンジしようとしたことは何度かあったのですが、いまいち分からず挫折してました。

「まーじ?ふぇっち?ぷる?なんだ~~~~~??」

って感じです。カタカナに弱い。

本を買った経緯

まずこの前作に当たる(?)『わかばちゃんとWebサイト制作の基本』を買ったところからです。当時はTwitterで評判が良いのと、電子書籍の使い勝手を見たかったというので、Web制作それなりに分かってはいましたが、kindle版を買いました。

わかばちゃんと学ぶ Webサイト制作の基本

わかばちゃんと学ぶ Webサイト制作の基本

いや~わかりやすいな~~~~~、と。 「自分が初心者のときに欲しかった!!」と自然に口にしてしまうくらいでした。周囲にいるWeb制作学びたい人に片っ端からおすすめしてます(現在進行形)。

そんな中、Git版が出るという話を聞きました。 これは買わない訳がありません。

ちなみに今回は書籍で買いました。基本的に電子書籍スマートフォンで見るので少し文字が小さく、ガッツリ学ぶなら書籍かな、と。 こればっかりはkindleなりタブレットなりほしいですね。

まずGitから

本の最初はSource TreeをダウンロードしてGitです。「さあ~はじめるぞ~」というところにSource Treeを作っているAtlassianのサーバー不具合か何かでGoogleもAtlassianもログインできないというトラブル。わかばちゃん流行り過ぎかよ~とか思いつつ、一旦本を置いて翌日にやりました。
UIが多少変わっていたりはしましたが、大した支障はありません。

この項ではGitの基本、ステージング・コミット・チェックアウトなんかをやり、以前触ったときにつっかかってたのがウソのようにすぐ理解できました。
しばらく自分の既に作ってあったプログラム何かを使って実験してみる。便利。ほんとに。

以前CSS等々のバージョン管理で苦労したのもあったので、その便利さは一入でした。

そんなこんなでLet’s コミット~とGitをエンジョイしつつ、痩せなきゃなーと思う序盤(違うコミット)。
ライザップは高い。チェックアウト(リバウンド)したくないので向いてるのかもしれませんが。

…………話がそれた。 とりあえずWeb制作でバージョン管理に四苦八苦してた私は使うべきだったツールだな~と思ってました。

続いてGitHub

要するにみんなでGitしよう!のコーナーです。なので友人を一人巻き込みました(後述)。

そもそもとして以前Gitをやろうと思ったときの理由がGitHubだったので、アカウントだけはあったんですよね。プッシュもフォークもできなくて空っぽの悲しい感じになってましたが。 というわけでアカウント作成は飛ばして、フォークから。

私みたいに友人が少ない人にはフォークする練習場所があるのはとても嬉しかったです。そしてそこを色々見てたらビタワンさん*2がいて驚いたり。以前触ったときよりすごく楽しめてます。

その後、同じく用意されてるところからプルリクエストしてくるのが本筋のルートなんですが、ここで友人を巻き込み、とりあえず私が即興で作った適当なPythonリポジトリを友人にフォーク&クローンさせたりなんだりして、互いにプルリクエストを送ったりしました。

ここで分からなくなったのが、フォークした後、フォーク元のリポジトリが更新され、それを追いかける方法。

グーグル先生に頼って色々やってみた結果、Source Treeのほうでリモートブランチ的なところにフォーク元のmasterブランチを適当な名前をつけて、それを追跡(?)する方法です。実際自分でも何やったのかイマイチ理解できていません。発展的な内容な感じはしたので、もう少し慣れてから再チャレンジします。

その他にも、この項ではコンフリクトの対応だったり、ブランチの作成だったり、GitHubを使う上で必要になるSource Treeの使い方も学びました。ここまで学んで「お~使えてる~~」っていう実感が一気に増してきます。楽しい。

実用Git

ここではここまでに触れてこられなかったGitの機能等について、解説されています。一つ一つ実践して「ほぇ~便利~」っていう小学生みたいな感想を口にしたりしてました。
扱った内容はこんな感じ。

  • リバート
  • リベース
  • スカッシュ
  • フェッチ
  • マージ
  • スタッシュ
  • チェリーピック

果たして何を言っているのか。そんなことを思った昔の私みたいな方はぜひ読んで下さい。

その後

Git&GitHubの入門を果たした私は、とりあえず毎日GitHubを触っていこうかな、って感じのチャレンジをしています。やっぱりコードに毎日触るのは大事かな、と思ったのと、GitHubのcontributionsの存在です。モチベーションになる。

f:id:pgDora56:20170430010456p:plain GitHubのcontributions。活動に応じて1日1マスで緑色に塗られていきます。全部埋まったら達成感すごそう。

本当にこの本を買ってよかったと心から思える本でした。前回のWeb制作はもともと知っていたのでここまでは感じませんでしたが、全く知らないところからここまでスッキリ理解できると本当にうれしいです。この本を出版してくださって本当にありがとうございました。

そしてGit触ったことない方はぜひおすすめです。どんな言語使ってる方も、世界が広がる気がします。
まだ大した使い方はできていませんが、今後どんどん活用していきたいと思います。

*1:今回Bitbucketは目を通すだけにしてGitHubに重点を置きました。GitHubに慣れてくるor非公開リポジトリを使わなきゃいけなくなったらチャレンジします。

*2:社畜ちゃんを描いてる方 (https://syachiku-chan.com/)。いつも読ませていただいてます。

ガジェットとか

久しぶりに筆を執ります。

なんだか最近いろいろなことがあり、何を書こうかな、となったとき、とりあえず生活が変わって増えたPC周りの物品を書いていこうかなと思います。


PC

新しいのを入手しました。Windowsなので結局C#をいじるのから離れられなそうです。*1

ec-club.panasonic.jp

Amazonでいい感じのが見つからなかったのでPanasonic公式を。Win10Pro+Corei7-7500Uみたいな感じで今までのPCからのグレードアップがすごいっす。何もかもがサックサク。


トラックボール

今まで通りLOGICOOLのM570tは使い続けていますが、少し大きめで持ち運びに不便だったので小さめのを新たに買いました。

持ち運びには便利ですが、クリック音が小さい静音タイプなのが少し慣れない。そのうち慣れる(自戒)。それ以外はとてもいいですが、数百円足せば無線モデルにできたのでそっちにすればよかったかなーという若干の後悔はあります。


ガジェットケース

生活環境が変わり、PCを持ち運ぶ機会が増えたので、「ACアダプタからトラックボールから色々持ち運べるケースが欲しい!!」ってことでケースを購入。

「出張に最適!」とありますが、普段使いするのにもいい感じです。Amazonの割引でSサイズより値段が低いパラドクス。まあラッキーってことで。


イヤホン

PCってかXperiaWalkmanに使うんですが、今まで使ってたWalkman付属のが壊れてしまったので、オーディオ系に強い友人に連れられ秋葉原のe☆イヤホンに行きました。場所がとてもわかりにくかった。
ほぼすべてのイヤホンが試聴可能ってのはやっぱりすごいですね。少ない予算の中から自分の好みに合いそうなものを選ぶのに最適でした。

結局選んだのがこれ。

結局ソニーかよっていう。メーカーはあまり気にしてなかったんですが、私の耳はソニーがお気に入りみたいです。

最後までこいつと迷いました。

ちょっと新しいモデルって感じでしょうか。ただ音色は少し違う感じで値段も高く、財布が許せばこっちが良かったんですが…なにぶん金欠で。誰か恵んでください。

そこまでお金をかけなくてもそれなりのイヤホンが買える世界。とても幸せな世界です。

ちなみにその友人は8万のイヤホン買ったって言ってたりしたような。興味はすごくあるけど金銭的に手が出せない。


こんなところでしょうか。生活環境がガラリと変わったので色んな物を買いましたね。他にも買った気がする。

しばらくはこんな感じでちょくちょく変化したことを書いていきそうな気がします。主に音楽の管理用にまだ旧PC(Ubuntu)は使うと思いますが、しばらくはUbuntu実践記的なものはおやすみになりそうな予感です。

(o・∇・o)

*1:UbuntuでもmonoでC#書いてましたけどね。去年Visual Studio for Macがリリースされたので、C#の舞台広がってくれないかな~と思うこの頃です。がんばれXamarin!!

Ubuntu After ~Firefox

前記事でデュアルブートについて書いたので、そのあとUbuntuで色々やったことをメモします。Firefox編です。

あ、バージョンは上記記事と同じく16.04です。それ以前は使っていなかったのでわかりません。

Firefox関連

インストール時から入っているブラウザはFirefoxですから、このまま使うなら色々いじって使いやすくしていきたい。ということでFirefox周り。


Shockwave Flash導入

標準で入っていないFlashYoutubeHTML5になりましたが、これを書いている現在まだまだFlashを使ってる動画共有サイトはありますから、とりあえず入れておきます。*1*2

大まかな流れを書くと、

  1. Flash Playerダウンロードページから「その他のLinux用.tar.gzファイル」をダウンロード
  2. ダウンロードしたファイルから「libflashplayer.so」を抽出
  3. 抽出したファイルをFirefox規定のpluginsフォルダに移動

という感じ。インストーラとかはないです。ただただファイルをFirefoxに渡すだけ。
ダウンロードは、Linuxで上のリンクからページに飛んで、プルダウンメニューから「その他のLinux用.tar.gzファイル」を選んで進んでいくだけなので省略。

ダウンロードが完了したら、ターミナルを開き以下のコマンドを実行していく。1行目でファイルを保存した場所へ移動、2行目で抽出。

cd [ファイルを保存した場所]
tar -zxvf [保存したファイル名]

<例>
cd /home/(ユーザー名)/Downloads
tar -zxvf install_flash_player_11_linux.i386.tar.gz

ここでGUIから、保存したファイル内にlibflashplayer.so(とフォルダ・ファイルがいくつか)できてるのを確認してもいいかもです。

そして、libflashplayer.soがあるフォルダにいる状態で、以下のコマンドを実行します。抽出したファイルをコピーさせてます。GUIのほうでやろうとしても貼り付けができないはず。

sudo cp libflashplayer.so (Firefoxのpluginsディレクトリ)

<例>
sudo cp libflashplayer.so /usr/lib/firefox-addons/plugins

Firefoxのpluginsディレクトリは、色々と調べて回った結果、Ubuntu14.04以前では「/usr/lib/mozilla/plugins」になっている方も見かけました。バージョンが変わってディレクトリの構成が変わったのかもしれない。Ubuntu16.04の私は上の例の感じで行けました。

これで完成。Firefoxを起動していたなら再起動したほうがいいのかも。

Firefoxのスペルチェック

とりあえずFirefoxでブログを書いている時にすごく気になるこの赤い下波線。Windowsでも見覚えがあるスペルチェックです。書いたところ全てにかかってしまいます。

f:id:pgDora56:20161207175151p:plain

ここまで引っかかるとうざったくて仕方ないですが、普段使いで気にしたことほぼ無いですし、必要もないでしょう。ということで直さずに単純にスペルチェックを無効にしました。

設定→詳細→「自動スペルチェック機能を使用する」のチェックボックスを外して完了。


Firefoxの設定はこんな感じ。まあアドオン追加したりはしてますが、今回はFirefoxのアドオンまとめるつもりの記事でもないのでそこは省略します。

開発環境とか

とりあえず今メインでやってるのはC#だったので、LinuxC#やるのがどうなのかは知らないけどMonoDevelopを導入しました。これはUbuntu Softwareから直接入れられます。前はWindowsが重いからかVisual Studioが度々止まってましたが、今度はそんなことはない。超快適。ただしGUIは作りづらいけれど…まあ仕方ない。
MonoDevelop入れたらGTK#なるものを発見して、Windows/Mac OS X/LinuxGUIアプリケーションがまとめてできちゃう的なものであることが分かったので、これをやってみたいな、と思っていたり。ただ残念なことに資料が少なく、なかなかに手こずっていて……いい書籍なりサイトなりご存知な方いらしたら教えてくださいって感じです…

あとWeb関係もちょくちょくいじるので、その辺の環境もそのうち整えます。Sublime Textはとりあえず導入しました。方法は…レポジトリ追加してインストールですが、色々設定必要なのでまたその辺りは別の記事で…

P.S.

というか、この記事下書きのままこさえておいてFirefox以外のこと(それこそSublime Textとか)もまとめてしまおうかと思ったんですが、諸般の事情でChrome(Chromium)を使うことになってしまって、それをFirefoxとは別記事で書きたかったので、こんなことになりました。なのでなんか区切りが悪いかもな〜とは思いました。後悔はしていません。
というわけで近々Ubuntu After 〜Chrome(Chromium)的なものを書きます。言っておかないと多分書かない。
→言っておいても書かない(2017/3/27現在)

最後になりましたが、有識者の皆さん、またツッコミどころがあればぜひください。初心者からのお願いですm(_ _)m

*1:ちなみに、ご存じの方も多いようにLinux版はだいぶ前に更新が止まり、サポートしかしてくれないです。本当に「とりあえず」入れておく感じになりそうです。まあそのうち必要なくなるでしょうけど、それでも某ニコニコとか見たいので入れます。(ニコニコのβ版HTML5プレイヤーは再生不可でした。だから入れる気になったんですが。)

*2:追記:私が下書きで放置している間にLinux版も開発が再開されていたらしい。というか予告はもうされていたんですね。アンテナをしっかり建てないと時代に乗り遅れてしまう…というわけで、この方法では古いかも?です