より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Visual Studio2019でCppUnitを利用する

C++では、GoogleTestで単体テストができますがCppUnitも存在します。

docs.microsoft.com

テスト対象のコード

Calculation.h

#pragma once

inline int add(int a, int b)
{
    return 5; // あえて間違えたコード
}

テストプロジェクトの生成

テストプロジェクトを生成します。

f:id:rimever:20190804183212p:plain

#include "pch.h"
#include "CppUnitTest.h"
#include "../ConsoleApplication/Calculation.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest1
{
    TEST_CLASS(UnitTest1)
    {
    public:
        
        TEST_METHOD(TestMethod1)
        {
            int result = add(2,2);
            Assert::AreEqual(result,4);
        }
    };
}

テストエクスプローラーでの実行

テストエクスプローラーで実行してみます。

f:id:rimever:20190804183719p:plain

失敗することが確認できました。

テストするコードを修正します。

#pragma once

inline int add(int a, int b)
{
    return a+b;
}

もう一度テストエクスプローラーで実行します。

f:id:rimever:20190804184101p:plain

成功しました。

使ってみての感想

Jupyter Notebookがおかしい。クリックすると改行される。

とある日、気づくとJupyter Notebookがおかしくなっていました。

f:id:rimever:20190804132123p:plain
クリックするとセルが改行される。なぜ?

起動はするのですが、クリックするとセル内が改行されてしまい、まともに入力することができないのです。

アップデートは試してみました。

jupyter.readthedocs.io

f:id:rimever:20190804132028p:plain

ですが、解決せず。

再インストールしてみました。

一度、conda-cleanでアンインストールして、最新版をダウンロードしてインストールです。

weblabo.oscasierra.net

www.anaconda.com

解消しました。

うーん、なんだったのでしょう。

いくつかWebページでエラーが発生しているから、それが関連しているのですが解消されても以下のようにエラーは出ています。

f:id:rimever:20190804134343p:plain

閉じるボタンは必要か

職場で開発以外の人にシステムを見せると

「閉じる」ボタンないんですね?

と言われることがあります。

f:id:rimever:20190721223201p:plain
極端な話、こういうことです。

ダイアログならともかく、メインウインドウで、これはないでしょう。

右上の×ボタンを押せばいいじゃんと思えるのが開発サイドの意見です。

同僚にもこの話をすると、私と同じ意見でしたし、

Webだとありえない。

ということです。

どうしても既存アプリの改修のため、前のアプリにあったら残してあったりします。

使わないよなーと思っていたのですが、ログを調査をするとこちらのボタンを使って閉じていたりします。

という訳で、ユーザーは必要とするようです。

昔、あるシステムを引き継ぐことになり、そのシステムにはXボタンなんてのがありました。

f:id:rimever:20190804085659p:plain

Xボタン? ゲームかよ、みたいな。

「これ何ですか」

Windowsの×ボタンと同じ意味です」

なんてことがあったのを思い出します。

自分のドライアイは意外な原因だった

昨年の今頃は、特に目が乾くような状態があり、仕事をしていて辛い時がありました。

メガネに目やにがこびりつくようなことが多々ありました。

  • 仕事はなるべく早く切り上げる
  • 目を温める
  • 超音波洗浄器でこまめに手入れ
  • 空気清浄器
  • わかさ生活
  • 眼科に行く

眼科でもドライアイではないと言われ、この状態を解消しようと、もがいていました。

が、以下の本を読んでいて気づきました。

www.kinokuniya.co.jp

原因は、お酒の飲み過ぎです。

酒を飲むと目が乾きます。

確かに言われてみれば、飲み過ぎた日って目が霞む感覚があるなーと思ってました。

特に、昨年の今頃は仕事に関するストレスが特に強い頃だったのでよく一人で飲んでいたのでした。

結果、転職して、職場環境も変わりました。これまで遠くなりよく行く店も通らなくなってしまったので自然と飲む回数が減って解決したようです。

お酒の量を減らすのは難しいです。飲み始めると止まらないので。

飲む回数を減らすように心がけることにしました。

すると、目やには改善されました。

お酒って肝臓に悪いものと考えていたのですが、それだけじゃないのですね。

歯が痛いとき、心筋梗塞の恐れと関連しているというのは聞いたことありますが、意外なところに関連しているものなのですね。

2019/10/18 追記

また夏場にドライアイが酷いなと感じていたのですが、エアコンによって乾いてしまうことも問題のようです。

空気清浄機で加湿してバランスを取ってました。

WPFでコンボボックスの項目テキストを中心に

以下のようにレイアウトの都合上、コンボボックスの項目文字列を中央揃えにしたい場合のお話です。

f:id:rimever:20190801221953p:plain

そんなの簡単じゃないか。HorizontalAlignment="Center"を使えばいいじゃないか。

Labelと一緒だと私は思ってました。

違います。

HorizontalContentAlignment="Center"とする必要があります。

ComboBoxの場合のHorizontalAlignmentについては、コンボボックス自体、つまり箱に対するAlignment(寄せ、揃え)を設定する扱いのようです。

UIの調整って奥が深いですね。

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Label  Content="Label" Margin="30,10,650,370" HorizontalAlignment="Center" />
        <ComboBox Name="ComboBox" Margin="150,10,495,380.5" HorizontalContentAlignment="Center"/>

    </Grid>
</Window>

stackoverflow.com

.NET Framework 4.8で開発したいが、つまづいたのでメモ

.NET Framework4.8がリリースされています。

docs.microsoft.com

高 DPIの対応など気になるところです。試してみたいところですが、意外とつまづいたのでメモです。

f:id:rimever:20190801220558p:plain
あれ、出てこないぞ。

当然だが、Runtimeだけでなく、SDK(Developer Pack)もインストールしないとなりません。

dotnet.microsoft.com

f:id:rimever:20190801224723p:plain

酔った勢いでLanguage Packだけをインストールして動かないので騒いでました。

人間、変なところで曲がって迷子になっちゃうものです。

f:id:rimever:20190801224746p:plain

Visual Studio 2019からのインストールは

本来だとVisual Studio Installerの個別のコンポーネントからインストール出来たりするものなのですが、2019年8月時点では4.8では出てきません。

f:id:rimever:20190801225426p:plain
4.8はまだ出てこない

下記のフォーラムによると、まだ作業中のようですね。

developercommunity.visualstudio.com

.NET Framework4.8の注目は

いくつかありますが、やはりアクセシビリティの向上ではないでしょうか。

docs.microsoft.com

f:id:rimever:20190804093534p:plain
Tabキー移動でもツールチップが表示されるようになった。あっていいはず。

参考サイト

www.ipentec.com

Google Cloud Next’19に参加した雑感

Google Cloud Next'19に参加してきました。

Google Cloud Platformについてのイベントです。

このイベントについては会社が認めるイベントなので、業務として参加することが出来ました。

ランチ付きでGoogle Cloud Platformのセッションが聞けるのに仕事扱いというのは良いですね。

メールを適宜チェックして進捗確認メールを出したりしているとセッションを聞きそびれてしまったりと、集中できない時間がありました。

各セッションについては会社にレポート提出なので、参加した感想を軽くここに書きます。

最近、参加したマイクロソフトのde:codeとの比較で話したいと思います。

項目 Google Cloud Next '19 de:code 2019
会場 品川プリンスパークタワーと品川プリンスホテル 品川プリンスタワー
wifi EXPO会場のみ 会場全て
1セッションの時間 40分 50分
人権 セッション内は満席だらけ、廊下は人いっぱいいるなというくらい セッション内は空席が目立つ時もある、廊下はすし詰めでどこ通れと?
参加セッション 事前予約 早い者勝ち

会場は2つの建物に分かれているのがポイントです。

基調講演終わってからこの事実を知って驚きました。

シャトルバスがありますが、歩ける人は歩いて移動すべきでしょう。

wifiがEXPO会場のみというのも痛いです。テザリングはデバイスの電池消耗が激しいのであまり使いたくなく、温存して使ってました。

de:code2019はセッション始まる前の廊下がどこに並べというぐらい、ぎゅう詰めでしたが、そういうことはありませんでした。

セッションも40分で休憩も40分です。建物を駆け回らないと、全セッションが聞けないということもありませんでした。

ただ、その分、密度が薄いなという気もしました。どちらかというと私はマイクロソフトの技術よりというのがありますが。

参加セッションの事前予約はよかったと思います。やはり早い者勝ちは会場に混沌をもたらします。

とはいえ、私としては、まずは、GCPを使ってみることでしょうか。