nprogram’s blog

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

Django学習まとめ (2020)

概要 Django学習まとめ記事です。 サイト 素晴らしい公式ドキュメントがあります。 公式ドキュメント Django ドキュメント | Django ドキュメント | Django 検索したいときはここで検索したいキーワードを入力してください。 HttpResponseなど Django docume…

Python ロギング学習

はじめに Pythonのロギングについて情報します。 コード from logging import basicConfig, getLogger, DEBUG # これはメインのファイルにのみ書く basicConfig(level=DEBUG) # これはすべてのファイルに書く logger = getLogger(__name__) logger.debug('he…

Beautiful Soupを用いたスクレイピングまとめ

はじめに Beautiful Soup使い方についてまとめる記事です。 概要 Pythonのスクレイピングで使用されるライブラリは以下が主に以下があります。 BeautifulSoup Requests Selenium 役割や長所・短所は以下のようになります。 データの取得 データの抽出 特徴 B…

pandasのread_excelでExcelファイルのリード・ライト

pandasのread_excelでExcelファイルのリード・ライトを簡単に実施したい pythonでExcelを扱うにはいくつかの方法がありますが、pandasのread_excelをここでは取り上げます。 上記を簡単に扱えるように、ラッパークラスを作成してみました。 import pandas as…

Tableau Publicなら無料でTableauが使用できます

はじめに データBIツールはTableau(タブロー)が有名ですが、購入すると年間10万円程度必要になり、敷居が高いです。 Tableau Publicであれば、無料で使用することが可能です。 https://www.webprofessional.jp/visualize-big-data-using-tableau/

Nuxt.jsとVuex学習

はじめに Nuxt.jsとVuexの学習内容を記録していきます。 Nuxtは、モダンな web アプリケーションを作成する Vue.js に基づいたプログレッシブフレームワークです。 Vue.js 公式ライブラリ(vue、vue-router や vuex)および強力な開発ツール(webpack、Babel…

VSCode上で、Anaconda環境を動作させる

はじめに VSCode上で、Anaconda環境を動作させる方法を記載します。 手順 Anacondaをインストールする Anacondaのパスをシステム環境設定から通す D:\Anaconda3\ D:\Anaconda3\Scripts\ D:\Anaconda3\Library\bin\ D:\Anaconda3\condabin\ VS Code でPython…

Firebase調査

はじめに Firebaseを調査します。 Firebaseの始め方 - Qiita

AWSについて調査しています。

クラウドエースに2年前にJoinした光の戦士 | apps-gcp.com

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 [著] リファクタリングの定義 外部から見たときのふるまいを保ちつつ、理解や修正が簡単になるようにソフトウェアの…