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

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

Entries from 2019-08-01 to 1 month

C++では関数を先に宣言しないとコンパイルエラー

C++

久しぶりにC++をやっていて、大事なことを忘れていました。 以下のソースはコンパイルエラーとなります。 #include <iostream> using namespace std; int main() { cout << "半径10の円の面積:" << getCircleArea(10) << endl; return 0; } // コンパイルエラー double</iostream>…

Visual Studioのステップイン中に表示されるダイアログ「ステップイン要求〜」

Visual Studioでデバッグしていると以下のようなダイアログが表示されることがあります。 ステップイン要求により、プロパティまたは演算子の自動的なステップオーバーが発生しました。 この動作は、「関数にステップイン」を選択するか、または「プロパティ…

iPhoneでの画面操作を動画で保存

プライベートではXamarinでアプリを開発してiPhone上で動かしているのですが、アニメーションのような動作が絡むシーンでは画面の流れを動画保存しておきたい時があります。 何かいい方法ないかなと思ったのですが、標準機能で出来ます。 www.itmedia.co.jp …

C++では変数は初期化しないと、どうなるかわからない

C++

C#やPythonなどの最近の言語では int a; と変数を定義して、出力させれば「0」が返ってきます。 が、C++では、保証されてません。 #include <iostream> int main() { // 初期化しない int a; std::cout << a << std::endl; return 0; } 43650794という桁外れな値が返却</iostream>…

ドメイン駆動開発のValueオブジェクトは実装のテクニック足り得る

C#

以前職場で行っていたドメイン駆動開発のValueオブジェクトについて、です。 ドメイン駆動開発 ドメイン駆動開発の主だった狙いとしては、デスクトップだろうとWebだろうと、クラウドだろうとオンプレだろうと、C#だろうとJavaだろうと、ビジネスロジックは…

オブジェクトを=で代入したらコピー

C++

C++の場合、以下のようにオブジェクトを代入したらコピーになります。 MyClass obj2 = obj1; obj2とobj1は別のオブジェクトです。 #include <iostream> using namespace std; class MyClass { public: int data; }; int main() { MyClass obj1 = MyClass(); obj1.data </iostream>…

C++の場合は変数宣言しただけでオブジェクトが生成されることがある

C++

C++の場合、以下のようにオブジェクトの変数宣言しただけで、オブジェクトが生成されることがあるのに気づいて驚きました。 MyClass obj1; #include <iostream> using namespace std; class MyClass { public: int data; MyClass() { data = 0; } }; int main() { MyCl</iostream>…

靴紐の結び方「イアンノット」知ってますか?

靴紐の結び方というとちょうちょ結びですが、イアンノットという結び方があるそうです。 アスリートでも使う結び方だとか。 ちょうちょ結びだと、ちょいちょい解けてイライラして、紐靴を履くのを避けていたのですが、気に入った靴が紐靴なので挑戦してみま…

ヘッダーファイルとソースファイルは同じ名前でなくて良かった

C++

ヘッダーファイルとソースファイルの名前は同じにするものだと思っていました。 ヘッダーファイルがa.hであれば、ソースファイル(*.cpp)がa.cppという形です。 C++の本を読んでいたのですが、そうでなくてもコンパイルは通るようです。 a.cppに以下のような…

JetBrainsのIDEでRiderはC#。C++ は CLion

ResharperはC++とC#、VBに対応したコード整形拡張機能です。 JetBrainsのC#のIDEとしてRiderが存在します。が、C++には対応していません。 ではC++は? それがCLionです。 blog.jetbrains.com これを使いながら、C++の本を写経して夏休みのトレーニングをし…

Git LFSの導入(in Azure Pipeline)

Git LFSとは、Gitが大きなファイルを扱うのに向いていないとために開発された拡張機能です。 LFSはLarge File Storageの略です。 外部ライブラリのdllをそのままGit管理していたりするのでGitLFSを導入することにしました。 導入 www.atlassian.com SourceTr…

システムの国際化について調べたこと

自動翻訳が無料で利用出来る時代ですが、システムの国際化対応ってそんな甘くないんですね。 C#にはリソースファイルなるものが存在しますが、それだけではないようです。 qiita.com 調べたことのまとめ。 Sansanのインドでの事例 インドではネットワークが…

Try .NETでC#トレーニング

C# C#

下記の記事で紹介されているTry.NETを試してみました。 これだ!ブラウザーでオフラインで動作する .NET 環境!Jupiter Notebooks のような使い方が .NET でも出来る。用意されているライブラリーの機能を考えると、本当に素晴らしいGitHub - dotnet/try: Tr…

AOKIでスーツの下取り

AOKIでスーツの下取りをしてきました。 www.aoki-style.com スーツの下取りについては住所を書かされますが、ゲームや本をブックオフなどで売るのと比べるとすぐ終わります。 よく見ると、AOKIで使えるクーポンなんですね。 なるほどー。 こうなった経緯も職…

GitBookで設計書を書けないか

先日のDraw.ioを試したようにWordやExcelではない設計書を作成する旅をしています。 github.com GitBookを試してみました。 npm init npm install -g gitbook-cli gitbook init book.jsonを追加して以下のように記載します。 { "language": "ja" } 編集 ペー…

とにかくトライGoogle Cloud Platform!って試してみたのはGoogle Compute Engine

Google Cloud Next'19に参加したところで、とにかくGCPを触りたいという欲求を以下の記事が満たしてくれました。 qiita.com AIやりたいみたいな素人なノリですが、GCPと一口に言ってみてもいくつもサービスがあります。 この記事で紹介されているのはGoogle …

ワンランク上の見やすさを目指してmatplotlibの棒グラフの色を指定する

以下の記事なのですが、グラフの見せ方という観点で、シンプルだけど、思いもつかなかったという内容でした。 www.zukai.site 目立たせたい箇所はメインカラー、それ以外は薄いメインからーかグレーで抑えるというものです。 これをPythonで可視化するときに…

Draw.ioを設計書に使えないか試してみる

Excelの設計書ではマージできないし、Office365ではないから共有できないので、他にないかなーというのがきっかけで、draw.ioを試してみました。 about.draw.io 文字列は矩形とは別扱いでセットする必要があります。 使いやすさとしては普通ってところです。…

CythonをGoogle Colaboratoryで試してみる

なんとなく、Cythonを読んでいたのですがいいですね。 www.oreilly.co.jp Cythonを使ったからといって全てのコードが大幅に早くなる訳ではない。バレートの法則に従い、ボトルネックに使うのが良いそうです。 NumpyなどのライブラリではCythonでCを持ち込む…

Visual Studio2019でCppUnitを利用する

C++

C++では、GoogleTestで単体テストができますがCppUnitも存在します。 docs.microsoft.com テスト対象のコード Calculation.h #pragma once inline int add(int a, int b) { return 5; // あえて間違えたコード } テストプロジェクトの生成 テストプロジェク…

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

とある日、気づくとJupyter Notebookがおかしくなっていました。 クリックするとセルが改行される。なぜ? 起動はするのですが、クリックするとセル内が改行されてしまい、まともに入力することができないのです。 アップデートは試してみました。 jupyter.r…

閉じるボタンは必要か

職場で開発以外の人にシステムを見せると 「閉じる」ボタンないんですね? と言われることがあります。 極端な話、こういうことです。 ダイアログならともかく、メインウインドウで、これはないでしょう。 右上の×ボタンを押せばいいじゃんと思えるのが開発…

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

昨年の今頃は、特に目が乾くような状態があり、仕事をしていて辛い時がありました。 メガネに目やにがこびりつくようなことが多々ありました。 仕事はなるべく早く切り上げる 目を温める 超音波洗浄器でこまめに手入れ 空気清浄器 わかさ生活 眼科に行く 眼…

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

C#

以下のようにレイアウトの都合上、コンボボックスの項目文字列を中央揃えにしたい場合のお話です。 そんなの簡単じゃないか。HorizontalAlignment="Center"を使えばいいじゃないか。 Labelと一緒だと私は思ってました。 違います。 HorizontalContentAlignme…

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

C#

.NET Framework4.8がリリースされています。 docs.microsoft.com 高 DPIの対応など気になるところです。試してみたいところですが、意外とつまづいたのでメモです。 あれ、出てこないぞ。 当然だが、Runtimeだけでなく、SDK(Developer Pack)もインストールし…

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

Google Cloud Next'19に参加してきました。 Google Cloud Platformについてのイベントです。 このイベントについては会社が認めるイベントなので、業務として参加することが出来ました。 ランチ付きでGoogle Cloud Platformのセッションが聞けるのに仕事扱い…

休めるなら休むべきと考えるようになったこと

法律の影響もあり、会社として残業についてうるさくなってきました。 正直、私自身は定時に帰るということに抵抗がありました。 というのも私が、定時に帰る時は、大体、やる気がない時だったからです。 自分がそうであると、他人が定時で帰るのもそう目に映…

Mac端末(iPhone/iPad/Macbook)で開いているURLを別のMac端末に共有する場合

自分のMac端末で開いているURLを別の端末へ共有するには、どうするのでしょうか。 私はEvernoteなどの類にコピペして共有していたのですが、AirDropを使えば出来ます。 標準機能なので簡単です。 画面上の送るボタンをタップします。 送るボタン AirDrop〜が…

自分のブログ記事のプログラミング言語で円グラフを作成して考える円グラフ

円グラフは使い所に注意が必要なグラフとされています。 円グラフを安易に使ってはいけない理由を実例を交えて説明します 見た目はよいが、数字の違いが伝わりにくいというものです。 だが、「この項目が全体を大きく占めているんだ!」ということを伝える点…

C++のメンバ初期化子リスト

C++

Effective C++ 第3版を読んでいたのですが、なかなか味わいのある本です。オススメです。 www.maruzen-publishing.co.jp ただ、C++に語っているだけではなく、プログラミングについて考えさせられる内容になっています。 一度でもC++を齧ったことのある方に…