1.21 jigowatts

Great Scott!

Visual Studio CodeでVisual Studio Live Share

概要

Visual Studio Live Shareがモブプログラミングに良さそうだってことでVisual Studio Code(以下VS Code)で早速試してみることにしました。とは言え、相手がいないのでPC二台用意して一人でLive Shareですよ(´¬’)bb
www.visualstudio.com

環境

PC#1 macOS High Sierra バージョン 10.13.4
PC#2 Windows 10
Visual Studio Code バージョン 1.23.1

準備

VS CodeのExtensionsでVS Live Shareをインストールしておきます。

f:id:sh_yoshida:20180601014755p:plain

PC#1 Mac

ステータスバーのSigh inをクリックするとブラウザが開きます。

f:id:sh_yoshida:20180601014801p:plain

MicrosoftアカウントかGitHubアカウントでサインインできるようですね。

f:id:sh_yoshida:20180601014858p:plain

今回はGitHubアカウントを選択。

f:id:sh_yoshida:20180601014910p:plain

連携できたようなのでVS Codeに戻ります。

f:id:sh_yoshida:20180601014932p:plain

ステータスバーが変わりましたね。
この状態でShareをクリックすると、クリップボードに招待用のリンクがコピーされます。

f:id:sh_yoshida:20180601014945p:plain

通知もでます。

f:id:sh_yoshida:20180601015008p:plain

Slackなどに張り付けてリンクを相手と共有しましょう。

PC#2 Windows

f:id:sh_yoshida:20180601015958p:plain

リンクにアクセスし、Live Share for VS Codeを開くをクリックします。

f:id:sh_yoshida:20180601020230p:plain

VS Codeが起動し通知が出るのでLaunch Sign inよりサインインします。
こちらも同じGitHubアカウントでサインインしてみました。

f:id:sh_yoshida:20180601020004p:plain

Live Share(PC#1 Mac側)

これでLive Share出来ました!
オレンジのカーソルと名前がPC#2側です。
一人でやってるんで、まったく意味がないのですが複数人で使うと楽しそうですね(・ω・´)

f:id:sh_yoshida:20180601015028g:plain

ターミナルもシェアできるぞ!

f:id:sh_yoshida:20180601015637p:plain

コマンド叩くと相手のターミナルにもぺろぺろ出力されます。

f:id:sh_yoshida:20180601015644p:plain

まずはLive Shareしてくれる人を探すところからだな(*>ω<)人

VoiceText Web APIで遊んでみた

概要

PowerShellでVoiceText Web APIを使って遊んでみようと思い立ち、Visual Studio Code(以下VSCode)でスクリプトを書いてみました(・∀・)

f:id:sh_yoshida:20180414131937p:plain

環境

Windows10
PowerShell 5.1

VoiceText Web API

モヤさまのナレータでおなじみですね。
cloud.voicetext.jp

規約読んで利用登録してAPIキーを取得しましょう。
VSCodeを立ち上げスクリプトを書いて実行したら、わけわからんことしゃべってる?なんで?って颯爽と詰まる。

理由は日本語をしゃべらせようとして、ファイルのエンコードUTF-8のためスクリプトに書いた文字列が文字化けしたからですね。

f:id:sh_yoshida:20180414132046p:plain

PowerShell ISEで書いたスクリプトVSCodeで開いたらUTF-8 with BOMとなっていたので、スクリプトの中で日本語を書くときはUTF-8 with BOMにしておけば良さそう。あとShift JISでも大丈夫でした。

モジュール化してみた

エンコードUTF-8でもコマンドレットの引数で渡すんであれば行けたのでモジュール化してみました。
環境変数VoiceTextAPI_KEYという名前でAPIキーを登録しておきます。

■voiceTextModule.psm1

. $PSScriptRoot\voiceConverter.ps1

function ConvertTo-Voice {
    param(
        [Parameter(Mandatory)]
        [ValidateSet('show', 'haruka', 'hikari', 'takeru', 'santa', 'bear')]
        [string] $name,
        [Parameter(Mandatory)]
        [string] $text
        )
    begin{
    }
    process {
        $Speaker = [Speaker]::new($name, $text);
        $Speaker.Speak();
    }
    end {
    }
}

■voiceConverter.ps1
バージョン5からクラス構文も書けるようになったんすね。

Write-Host 'Loading...'

class Speaker {
    [string]$Name;
    [string]$Text;
    [string]$Uri = "https://api.voicetext.jp/v1/tts";
    
    Speaker ($name, $text) {
        $this.Name = $name;
        $this.Text = $text;
    }

    [string] GetAuthorization() {
        $t = $env:VoiceTextAPI_KEY + ":";
        return "Basic " `
            + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($t))
    }

    [void] Speak() {
        $outFile = ".\voicetext.wav"
        if (Test-Path $outFile){
            Remove-Item $outFile;
        }
    
        Invoke-RestMethod -Uri $this.Uri `
                    -Method POST `
                    -Headers @{Authorization=$this.GetAuthorization()} `
                    -Body @{text=$this.Text; speaker=$this.Name;} `
                    -OutFile $outFile;

        $player = New-Object System.Media.SoundPlayer -ArgumentList $outFile
        $player.Play()
    }
}

あとはモジュールをインポートして実行するだけ(^q^)b

PS> Import-Module .\voiceTextModule
PS> ConvertTo-Voice -name show -text 本当にありがとうございます。

【CentOS 7】 Visual Studio Codeが起動できなくなった

概要

たしか1.7に上げた頃、VS Codeがエラーメッセージを吐いて起動できなくなりました。そのときは時間もなく面倒くさかったので放置してましたが、思い出したのでなんとかしてみる回です。

環境

CentOS 7
Visual Studio Code 1.7.2

エラー内容

起動しようとすると怒られました・・・。なにもしてないんだけどなぁ。

$ code .
/usr/share/code/bin/../code: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

とりあえずアップデート

ひとまず最新に上げたら直っているんじゃないかという淡い期待を抱き、アップデートするもダメ>.<
sh-yoshida.hatenablog.com

エラーメッセージを読む

英語だからってそっと閉じない。大切。

error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

libXss.so.1ライブラリがないと怒られているらしいので、ライブラリ名を調べていると似たような事象を発見!

CentOS - GitKrakenがCentOS7で起動できなくなりました。(45627)|teratail

libXScrnSaverをインストールしてあげればいいのかなっつーことでやってみます。

$ sudo yum install libXScrnSaver
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ libXScrnSaver.x86_64 0:1.2.2-6.1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package               アーキテクチャー
                                      バージョン             リポジトリー  容量
================================================================================
インストール中:
 libXScrnSaver         x86_64         1.2.2-6.1.el7          base          24 k

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 24 k
インストール容量: 40 k
Is this ok [y/d/N]: y
Downloading packages:
libXScrnSaver-1.2.2-6.1.el7.x86_64.rpm                     |  24 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libXScrnSaver-1.2.2-6.1.el7.x86_64              1/1 
  検証中                  : libXScrnSaver-1.2.2-6.1.el7.x86_64              1/1 

インストール:
  libXScrnSaver.x86_64 0:1.2.2-6.1.el7                                          

完了しました!

そもそもlibXss.so.1ってなんだろう。スクリーンセーバー関係?

復活!

ナルホド無事VS Codeは起動しました!
と喜んだのも束の間。Gitのバージョンが古い(ノ ゜Д゜)ノ ==== ┻━━┻

f:id:sh_yoshida:20161129225751p:plain

Codeは2.0.0以上のgitで最適に動作します。

Gitのインストール

yumでは古いバージョンがインストールされるとのことで、こちらを参考に最新のGitをCentOS 7にインストールしてみます。

CentOS7に最新のGitを導入する方法 | vdeep

現時点で最新は2.10.2。
手順に従い進めていきます。

$ sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
$ cd /usr/local/src/
$ sudo wget https://www.kernel.org/pub/software/scm/git/git-2.10.2.tar.gz
$ sudo tar xzvf git-2.7.2.tar.gz

ぐぬぬ、makeでエラーが。

$ sudo make prefix=/usr/local all

(省略)
/usr/bin/perl Makefile.PL PREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] エラー 2
make: *** [perl/perl.mak] エラー 2

↓こちらを参考にエラーに対処。

gitをソースコードから入れる - Qiita

$ sudo yum install perl-ExtUtils-MakeMaker

もう一度makeコマンドを実行したらうまく行ったぁぁぁあ

$ sudo make prefix=/usr/local all
$ sudo make prefix=/usr/local install

Gitも最新になって、VS Codeも文句なし☆彡

$ git --version
git version 2.10.2