tkhrsskの日記

技術ネタなど

Windows PC セットアップメモ

ASUSのデスクトップを調達。 一応、長男向け。

初回起動のWindows Update、めちゃくちゃ時間かかる。一回フリーズして、強制再起動。

初期セットアップ時に、新規MSアカウントつくったら パスワードがあってないとかでて焦ったけど、電話番号登録してたんでSMSで復旧した。

その後、普通にWindowsログインしてからUpdateしたほうがスムーズに更新できた気がする。

Setup Tool

Setting

とりあえず、McAfee30日分入っていたので使用。保護者機能も使ってみた。 それなりに使えるなら購入してもいいかなと思う。

Chomeがやたらとちらつくので、調べてみたらハードウェアアクセラレーションの無効化でなおった。

EXCEL VBA PFDの図形を書くマクロ

f:id:tkhrssk:20170604012713p:plain

上記を固定で出力するマクロです。

これだけだとテンプレ用意するのと何の変わりもないけど、 GraphVizとかみたいに、必要な情報を表で埋めたら全部自動でオブジェクト作れるようにしたいとは思っている。 配置自動調整まではさすがにするつもりないけど。

Sub MacroPFD()
    Dim ShapeProc As shape, ShapeDoc As shape, ShapeCon As shape
    Dim ShapeDocIn As shape, ShapeConIn As shape
    
    Set ShapeProc = ActiveSheet.Shapes.AddShape(msoShapeOval, 200, 100, 100, 80)
    MacroStyle ShapeProc, "P1" & Chr(13) & "設計する"

    Set ShapeDoc = ActiveSheet.Shapes.AddShape(msoShapeFlowchartDocument, 350, 110, 100, 60)
    MacroStyle ShapeDoc, "D1" & Chr(13) & "設計書"
    
    Set ShapeDocIn = ActiveSheet.Shapes.AddShape(msoShapeFlowchartDocument, 50, 110, 100, 60)
    MacroStyle ShapeDocIn, "D0" & Chr(13) & "仕様書"
    
    Set ShapeCon = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 100, 100, 100, 100)
    ShapeCon.Line.EndArrowheadStyle = msoArrowheadTriangle
    ShapeCon.ShapeStyle = msoLineStylePreset29
    ShapeCon.ConnectorFormat.BeginConnect ShapeProc, 7
    ShapeCon.ConnectorFormat.EndConnect ShapeDoc, 2

    Set ShapeConIn = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 100, 100, 100, 100)
    ShapeConIn.Line.EndArrowheadStyle = msoArrowheadTriangle
    ShapeConIn.ShapeStyle = msoLineStylePreset29
    ShapeConIn.ConnectorFormat.BeginConnect ShapeDocIn, 4
    ShapeConIn.ConnectorFormat.EndConnect ShapeProc, 3

End Sub

Sub MacroStyle(shape, text)
    
    shape.ShapeStyle = msoShapeStylePreset1
        
    With shape.TextFrame2
        With .TextRange
            With .Characters
                .text = text
                With .ParagraphFormat
                    .FirstLineIndent = 0
                    .Alignment = msoAlignCenter
                End With
            End With
            
            With .Font
                .NameComplexScript = "+mn-cs"
                .NameFarEast = "+mn-ea"
                .Fill.Visible = msoTrue
                .Fill.ForeColor.TintAndShade = 0
                .Fill.ForeColor.Brightness = 0
                .Fill.Transparency = 0
                .Fill.Solid
                .Size = 11
                .Name = "+mn-lt"
            End With
        End With
        .VerticalAnchor = msoAnchorMiddle
        .WordWrap = msoFalse
    End With

End Sub

おまけ

f:id:tkhrssk:20170604014016p:plain

コネクタ番号のメモ

参考

はじめてのCMake

まずはcmakeをインストール

Macの場合

https://cmake.org/download/dmg形式をダウンロードして、インストール

コマンドラインを通すには、 sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --installGUI版を起動し、メニューの Tools -> How To Install For Command Line Use で説明が出てくる。

UbuntuLinuxの場合

apt-get -y install cmake

何もしない makeの作成

とりあえず空ファイルの CMakeLists.txt を作って、UNIX Makefileを作ってみる。

$ touch CMakeLists.txt
$ cmake -G "Unix Makefiles"

-GはGeneratorの指定。あらかじめ使える種類は決まっている。--helpを参照。

上記実行後、以下のファイルが出来上がっている。

CMakeCache.txt
CMakeFiles
CMakeLists.txt
Makefile
cmake_install.cmake

make allとかが動く状態になっている。

Hello World

Hello Worldを実行するCのプログラム用のCMakeを作ろう。 ソースフィルは、hello.c。実行ファイルは、helloにしよう。

CMakeLists.txtに以下の記述をする。

project (Hello C)
add_executable(hello hello.c)

projectの二番目以降は言語を指定。C++だったらCXX。複数なら空白区切で並べる。 で、先ほどと同じように cmake後にmakeすれば もう出来上がり。

$ cmake -G "Unix Makefiles"
$ make
Scanning dependencies of target hello
[ 50%] Building C object CMakeFiles/hello.dir/hello.c.o
[100%] Linking C executable hello
[100%] Built target hello
$ ./hello
Hello CMake!

add_executable の 引数に、ソースファイルを増やしていけば、複数のソースからビルドできるようになる。

add_executable(hello hello.c hello2.c hello3.c)

cmakeに対するバージョンを要求することもできる。

cmake_minimum_required (VERSION 2.8)

ディレクトリ構成

buildというディレクトリを作って、そこからcmakeを叩くのが定石らしい。

rm -rf build
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make

といった感じでスクリプトを組む。

コンパイルオプション

CMakeLists.txtに以下の記述をする。

set(CMAKE_C_FLAGS "-Wall")
set(CMAKE_CXX_FLAGS "-Wall")

make verboseするには

set(CMAKE_VERBOSE_MAKEFILE TRUE)

GStreamerで遊ぶ

環境準備(Mac)

brew install gstremer
brew install gst-plugins-bad
brew install gst-plugins-good
brew install gst-plugins-base
brew install gst-plugins-ugly

gst-launch ワンライナー

Macのカメラ映像を、画面に表示。

gst-launch-1.0 autovideosrc ! osxvideosink

autovideosinkではなぜか表示されなかった。OpenGLの緑背景の画面が出るだけ。

しまうま (白いところがゼブラストライプになる)

gst-launch-1.0 autovideosrc ! zebrastripe ! osxvideosink

f:id:tkhrssk:20170305000754p:plain

色相反転

gst-launch-1.0 autovideosrc ! videobalance hue=1 ! osxvideosink

回転、反転

gst-launch-1.0 autovideosrc ! videoflip method=clockwise ! osxvideosink
gst-launch-1.0 autovideosrc ! videoflip method=horizontal-flip ! osxvideosink

fileを再生

gst-launch-1.0 filesrc location=test.mp4 ! decodebin ! videoconvert ! osxvideosink
gst-launch-1.0 filesrc location=test.m4a ! decodebin ! audioconvert ! autoaudioink
gst-launch-1.0 filesrc location=test.png ! pngdec ! imagefreeze ! videoconvert ! osxvideosink

パケットから再生

gst-launch-1.0 tcpclientsrc host=127.0.0.1 port=5050 ! decodebin ! videoconvert ! osxvideosink

マイク取り込みして再生

gst-launch-1.0 -v -m autoaudiosrc ! audioconvert ! audioresample ! autoaudiosink

音声可視化

gst-launch-1.0 -vv audiotestsrc wave=pink-noise ! synaescope ! videoconvert ! osxvideosink
gst-launch-1.0 -vv autoaudiosrc ! wavescope ! videoconvert ! osxvideosink
gst-launch-1.0 -vv autoaudiosrc ! spectrascope ! videoconvert ! osxvideosink
gst-launch-1.0 -vv audiotestsrc freq=880 ! spectrascope ! videoconvert ! osxvideosink

f:id:tkhrssk:20170304235152p:plain f:id:tkhrssk:20170304235126p:plain f:id:tkhrssk:20170304235229p:plain

demux

gst-launch-1.0 filesrc location=xxx.m4a ! decodebin ! audioconvert ! tee name=t ¥
 t. ! queue ! autoaudiosink ¥
 t. ! queue ! spectrascope ! videoconvert ! osxvideosink ¥
 t. ! queue ! wavescope ! videoconvert ! osxvideosink ¥
 t. ! queue ! synaescope ! videoconvert ! osxvideosink

manualをみる

gst-inspect-1.0 audiotestsrc

その他

プラグインの検索

gst-inspect-1.0

ファイルの詳細を表示

gst-discoverer-1.0 -v ファイル名

gst-typefind-1.0より詳細なメタ情報が取得できる。

バイス一覧

gst-device-monitor-1.0

Excel VBAアドインの作り方 サンプル

ThisWorkBookに、ワークブック読み込み時の処理(Workbook_Open)追加。

Option Explicit

Private Sub Workbook_Open()
    Dim bar As CommandBar
    Dim button As CommandBarButton
    
    DeleteCommandBar
    Set bar = Application.CommandBars.Add(Name:="ツールバー名", Position:=msoBarTop)    
    Set button = bar.Controls.Add(Type:=msoControlButton)
    button.Style = msoButtonIconAndCaption
    button.FaceId = 172
    button.Caption = "キャプション名"
    button.OnAction = "サブルーチン名"
    Set button = Nothing
    
    bar.Visible = True
    Set bar = Nothing
End Sub

Private Sub Workbook_AddinUninstall()
    DeleteCommandBar
End Sub

Private Sub DeleteCommandBar()
    On Error Resume Next
    Application.CommandBars("ツールバー名").Delete
    On Error GoTo 0
End Sub

FaceIdについては、下記を参照

Office TANAKA - Excel VBA Tips[FaceIdの図について]

DeleteCommandBarでは、ツールバーが無いときの削除処理のエラーハンドリングを無効化。

作成したアドインは、xlam形式で、%USERPROFILE%\AppData\Roaming\Microsoft\AddIns に保存。

アドインのタイトルや説明は、エクスプローラー上で、ファイルのプロパティから編集。AddInsフォルダに入ると編集できないようなので別の場所で変更してから格納する。

【追記】 インストールは下記スクリプトを用意しとくと楽。

qiita.com