nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

Anaconda Promptをバッチファイル化する

はじめに Anaconda Promptのコマンドから、手動でAnaconda仮想環境を起動するのは大変です。 そのような場合はbatファイル化するといよいでしょう。 anaconda promptは、activate.batというバッチファイルから起動が可能です。 インストール階層(通常C:\Use…

beautifulsoup4でスクレイピング

はじめに beautifulsoup4でスクレイピングを行います。 インストールコマンド 参考リンク Python Webスクレイピング テクニック集「取得できない値は無い」JavaScript対応@追記あり6/12 - Qiita

WPF開発復習

WPF開発復習 WPF開発技術を復習します。(かなり忘れているため・・・) 参考サイト 以下が体系的にまとめられていていそうです https://anderson02.com/ MVVMな設計のTips~サービスを作ってVMの依存性を排除~ http://sourcechord.hatenablog.com/entry/2016…

jupyter Notebookのコードをexe化する方法 [Anaconda3環境]

jupyter Notebookのコードをexe化する方法 [Anaconda3環境] jupyter Notebookのコードをexe化する方法を記録します。 手順 まず、Jupyter Notebookを開き、以下のイメージのように、メニューのFile⇒Downlaod as ⇒ Python (.py)を選択してください。 次に、An…

Python + Selenium + ChromeでGoogleの検索を自動化する [非headlessモード][XPath]

はじめに 本記事は、Python + Selenium + ChromeでGoogleの検索を自動化する手法について記載したものです。 今回は、XPathを使用して、検索を行います。 XPathとは XPathはXML文章中の要素、属性値などを指定するための言語です。 XPathではXML文章をツリー…

Python + Selenium + ChromeでGoogleの検索を自動化する [非headlessモード]

はじめに 本記事は、Python + Selenium + ChromeでGoogleの検索を自動化する手法について記載したものです。 ChromeのWeb操作は、ChromeDriverを用います。 ChromeDriverを導入する方法として、以下の2つの方法がありますが、本記事は前者の方法を使用しま…

Python データ構造学習

リストを使って記載してみる def names(name_and_grouplist, group_name): _names = [] for name_and_group in name_and_group_list: if name_and_group[0] == group_name: name = name_and_group[1] if name not in _names: _names.append(name) return _na…

C++のコードレビューまとめ

C++のコードレビューのまとめを行います 派生される可能性があるクラスの場合、デストラクタにvirtualをつけよう ポリモーフィズムを利用すべく作った基底クラスのデストラクタはvirtualが必要であるためです。 基底クラスのデストラクタにvirtualを付けない…

pandasを使って株価情報を取得しましょう

はじめに pandasを使うと、webページの表(tableタグ)のスクレイピングが簡単にできます。 環境 Windows version : 1903 (Windows 10 Home) conda version : 4.7.12 conda-build version : 3.18.8 python version : 3.7.3.final.0 selenium : 3.141.0 手順 …

Anaconda3で作成した仮想環境上で、Seleniumを使ってブラウザを操作する [Windows]

はじめに PythonとSeleniumを使ってブラウザを操作する作業を行いたいと思います。 Pythonのバージョンやインストールするモジュールのバージョンによって、プログラム動作が変わる可能性があります。 そのため、仮想環境上でPythonやSeleniumのモジュールを…

template関数でsplit関数を実装する (空白文字列区切り)

C++

template関数でsplit関数を実装する (空白文字列区切り) template関数を使用することで、複数の型を同じ関数で扱うことができるようになります。 使い方 関数呼び出し時には、通常の関数呼び出しとは異なり、型を指定する必要があります。 const std::vector<std::string></std::string>…

Modern_C++_leet文字列変換

C++

#include <string> #include <iostream> #include <map> #include <algorithm> // transform #include <vector> #include <numeric> //iota, accumulate // leetマップ変数 (グローバル変数) std::map<char, char> leet { {'A', '4'}, {'E', '3'}, {'G', '6'}, {'I', '1'}, {'O', '0'}, {'S', '5'}, {'Z', '2'} }; /** * @fn *</char,></numeric></vector></algorithm></map></iostream></string>…

UML学習まとめ

UML

UML学習全般を記載する記事です 関連端名(ロール名) 関連の両端にそれぞれのクラスのロール名を記述することができます。 ロール名は相手方クラスとの関連における自分のクラスの役割(role)を示します。 以下の記事を参照ください。 以下の記事を参照くだ…

Observerパターン [C#] [pull型]

Observerパターンとは あるオブジェクトの状態に依存するオブジェクトがあるとき、状態の変化をそれらのオブジェクトに依存せずに自動的に通知するパターン push型とpull型 Observerパターンでは,push型とpull型があります。違いは以下のとおり。 push型 : …

Observerパターン [C#] [push型]

Observerパターンとは あるオブジェクトの状態に依存するオブジェクトがあるとき、状態の変化をそれらのオブジェクトに依存せずに自動的に通知するパターン push型とpull型 Observerパターンでは,push型とpull型があります。違いは以下のとおり。 push型 : …

.net Core 3.0学習記事 [WPF]

はじめに .net Core 3.0学習用の情報を集める記事です。 WPF の TreeView で任意の項目が表示されるようにスクロールする https://blog.okazuki.jp/entry/2019/07/25/111424

デバッグ技術

はじめに ソフトウェア評価時では、デバッグは必要不可欠です。 以下のような手順で行うと思います。 手順 バグを記録する (バグレポートを書く) バグを再現する バグを分離する (バグ発生原因を特定するために必要) バグを修正する バグを記録する バグ内容…

Nullチェックを削除する方法 (NullObjectパターンとNull合体演算子)

はじめに Nullチェックを削除する方法はいくつかあります。最適な方法を使用してください。 NullObjectパターン オブジェクト指向プログラミングが使えれば、どの言語でも実現可能 Null合体演算子 言語仕様にNull合体演算子があれば可能 その他の方法 Javaの…

switch文を爆散

はじめに コードのあちこちに同じようなswitch文処理が書かれている場合があります。 機能追加・修正するたびに変更が必要なswitch文処理を探してコード修正しなくてはなりません。 このようなswitch文処理を見つけたら、ポリモーフィズムが使うことで、リフ…

巨大クラスをクラス抽出で爆散

はじめに 巨大クラスを爆散したいときがあります。 その場合は、クラス抽出が便利です。 書籍 新装版 リファクタリング 既存のコードを安全に改善する Martin Fowler [著] 手順 (1) クラスの責務を切り出す方法を決める (2) 切り出された責務を記述する新た…

リファクタリング入門

はじめに 以下の書籍を読んでリファクタリングを学習します。 書籍 新装版 リファクタリング 既存のコードを安全に改善する Martin Fowler [著] リファクタリングの定義 外部から見たときのふるまいを保ちつつ、理解や修正が簡単になるようにソフトウェアの…

JavaScript学習用リンク記事

はじめに JavaScript学習用の記事です。 2019年5月時点 JavaScript初心者が参考にしていいモダンJavaScript解説サイト2つ - Qiita リンク js-primer これからJavaScriptに入門したい人が、ECMAScript 2015以降をベースにして一からJavaScriptを学べる本です。…

UnicodeからUTF-8に変換する方法 [C++] [MFC]

はじめに UnicodeからUTF-8に変換する方法を調べたので、記録します。 Convert Unicode (utf-16) CStringW to utf-8 CStringA CStringA ConvertUnicodeToUTF8(const CStringW& uni) { if (uni.IsEmpty()) return ""; // nothing to do CStringA utf8; int cc…

仮説検証学習

はじめに 仮説検証を学習していきたいと思います。 (1) どうなりたいのか(狙う結果) (2) 何によって確かめるのか(指標)? (3) そのために何をするのか? (4) なぜ狙う効果が得られるのか? ポイント 仮説検証の内容は、具体的な数値にしましょう 各項目で、…

TensorFlow Object Detection APIをWindowsで使ってみた

はじめに 以下のサイトを見てTensorFlow Object Detection APIをWindowsで使ってみようと思います。 TensorFlow Object Detection APIは、TensorFlowを利用して、画像に写っている物体を検出するためのフレームワークです。 インストール手順・実行方法は、S…

リカレントニューラルネットワーク学習 [Python][Keras]

はじめに リカレントニューラルネットワーク学習を学習します。 リンク https://www.infiniteloop.co.jp/blog/2018/02/learning-keras-07/

matplotlib基礎

はじめに matplotlibでグラフを書きます。 図を描いてみる import matplotlib.pyplot as plt plt.style.use('seaborn-whitegrid') import numpy as np %matplotlib inline # numpy.linspace(start, stop, num = 50, endpoint = True, retstep = False, dtype…

C++で関数型プログラミング (filter関数の実装)

C++

はじめに C++で、関数型プログラミングでいうfilter関数(抽出の処理を行う関数のこと)を使う場合は、以下のテンプレート関数を使うといいです。 copy_if remove_copy_if コード例 以下のコード例では、ラムダ式と挿入イテレータが使用されています。 挿入イ…

Keras学習入門

はじめに 公式ドキュメントを読みましょう。 Home - Keras Documentation サンプルもあります。 https://github.com/keras-team/keras/tree/master/examples 参考にした記事 無から始めるKeras - Qiita 作りたいもの 適当な5次元のデータ配列を入力すると、…

Pythonで画像データをFlickerで取得する

はじめに Pythonで画像データを取得してみたいと思います。 flickr の画像取得は、flickr API を使用します。 flickrのAPIは以下に記載されています https://www.flickr.com/services/api/ APIを使用して画像情報を取得してみる flickrのAPIを使用して画像の…