某電機メーカの奴隷SE。 最近、若手が増えて開発の最前線を退きはじめました。 でも生涯ソフト開発者として生きたいという想いを消せず。 仕事で開発者ができないならせめて自分の好きなことを書き綴りたいと考え、このブログを開設しました。
今日 | 04/27 | 04/26 | 04/25 | 04/24 | 04/23 | 04/22 | 全参加数 | |
---|---|---|---|---|---|---|---|---|
総合ランキング(IN) | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,034,401サイト |
INポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
OUTポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
PVポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
IT技術ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 9,759サイト |
ソフトウェア | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 588サイト |
プログラム・プログラマー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 930サイト |
IT技術情報 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 765サイト |
今日 | 04/27 | 04/26 | 04/25 | 04/24 | 04/23 | 04/22 | 全参加数 | |
---|---|---|---|---|---|---|---|---|
総合ランキング(OUT) | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,034,401サイト |
INポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
OUTポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
PVポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
IT技術ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 9,759サイト |
ソフトウェア | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 588サイト |
プログラム・プログラマー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 930サイト |
IT技術情報 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 765サイト |
今日 | 04/27 | 04/26 | 04/25 | 04/24 | 04/23 | 04/22 | 全参加数 | |
---|---|---|---|---|---|---|---|---|
総合ランキング(PV) | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 1,034,401サイト |
INポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
OUTポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
PVポイント | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0/週 |
IT技術ブログ | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 9,759サイト |
ソフトウェア | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 588サイト |
プログラム・プログラマー | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 930サイト |
IT技術情報 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 圏外 | 765サイト |
今回はPythonの勉強しながらデザインパターンのVisitorをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Visitorとは 直訳すると「訪問者」ですね。 wikiには「 アルゴリズムをオブジェクトの構造から分離するためのデザインパターンである。分離による実用的な結果として、既存のオブジェクトに対する新たな操作を構造を変更せずに追加することができる。」とあります。 wikiの説明から解釈するに、 既存のオブジェクトからアルゴリズムを分離。 これで既存のオブジェクトはデータ構造だけを持ったオブジェクトになる 分離したアルゴリズムは別のオブジェクトに。 デー…
Pythonでデザインパターン 拾弐ノ型「Decorator」
今回はPythonの勉強しながらデザインパターンのDecoratorをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Decoratorとは 直訳すると「飾り付けをする人」ですかね。 wikiには「既存のオブジェクトに新しい機能や振る舞いを動的に追加することを可能にする」とあります。 直訳やwikiから推測するにいまあるオブジェクトに飾り付けを行うためのパターンのようです。 ゚+.(◕ฺ ω◕ฺ )゚+. Decoratorについて考えてみる 今回は顔文字をデコってみたいと思います(・`ω´・)b まずはデコレーションするベースクラスComponentを用意しま…
Pythonでデザインパターン 拾壱ノ型「Composite」
今回はPythonの勉強しながらデザインパターンのCompositeをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Compositeパターンとは 直訳すると「複合物」や「混合物」みたいな意味でしょうか。 wikiには「ディレクトリとファイルなどのような、木構造を伴う再帰的なデータ構造を表すことができる」とあります。 このパターンはwikiにもあるとおりオブジェクトで木構造を表現するためのものです! Compositeパターンについて考えてみる 木構造というとファイル構造が一番イメージしやすいですかね? 今回はCompositeパターンを使ってディレクトリツリ…
今回はPythonの勉強しながらデザインパターンのStrategyをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Strategyとは 直訳すると「戦略」ですね。 wikiには「アルゴリズムを使用者から独立したまま様々に変化させることができるようになる」とあります。 このパターンはBridgeパターンとよく似ていますが、 Bridgeパターンは機能拡張を目的としているのに対して、Strategyパターンは機能切り替えを目的にしている?という勝手なイメージを持っています。。 いずれにしてもjavaやC#など、インタフェースがある言語ではあまり使わないパターンかな…
今回はPythonの勉強しながらデザインパターンのBridgeをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Bridgeとは 直訳すると「橋」ですね。 wikiには「"橋渡し"のクラスを用意することによって、クラスを複数の方向に拡張させることを目的とする」とあります。 このパターンは、オブジェクトとオブジェクトの間にワンクッション挟むイメージです。 JavaやC#みたいにインタフェース機能がある言語だとあまり使わない気もしますね(;´瓜`) Bridgeについて考えてみる いつものごとくいい例が思いつきませんが、以下のようなインタフェースがあったとします。 …
Pythonでデザインパターン 捌ノ型「AbstractFactory」
今回はPythonの勉強しながらデザインパターンのAbstractFactoryをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 AbstractFactoryとは 直訳すると「抽象的な工場」になります。 wikiには「関連するインスタンス群を生成するための API を集約することによって、複数のモジュール群の再利用を効率化することを目的とする」とあります。 AbstractFactoryについて考えてみる 突然だが醤油ラーメンを作ろうと思う(・`ω´・;) # スープを作る soup = Soup(SoySauce()) # 醤油ベース # 麺を作る nood…
今回はPythonの勉強しながらデザインパターンのBuilderをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Builderとは 直訳すると建築者という意味になります。 wikiには「 オブジェクトの生成過程を抽象化することによって、動的なオブジェクトの生成を可能にする」とあります。 Builderパターンは「オブジェクトを生成する過程は同じだけど、性質の異なるオブジェクトを作成する」ためのパターンのようです。 ・・・(´・ω・`)? Builderパターンについて考えてみる いい例かどうかわかりませんが、RESTful Web APIのレスポンスを題材に考…
Pythonでデザインパターン 陸ノ型「Prototype」
今回はPythonの勉強しながらデザインパターンのPrototypeをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Prototypeとは 直訳すると「原型」や「模範」という意味になります。 wikiには「生成されるオブジェクトの種別がプロトタイプ(典型)的なインスタンスであるときに使用され、このプロトタイプを複製して新しいオブジェクトを生成する」とあります。 Prototypeパターンとは「オブジェクトからオブジェクト(複製)を作成するパターン」です。 javaやC#とかでいうとclone()のことですね(・`ω´・)b 試行錯誤の時間 Pythonにおける…
Pythonでデザインパターン 伍ノ型「Singleton」
今回はPythonの勉強しながらデザインパターンのSingletonをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Singletonとは 直訳すると「単一要素」みたいな意味になります。 wikiには「そのクラスのインスタンスが1つしか生成されないことを保証するデザインパターンのこと」とあります。 Singletonパターンはwikiにも説明があるとおり、クラスのインスタンスが複数作られないようにするためのメカニズムです。 アプリケーション全体で統一しなければならない仕様を実装しなければならないときに役に立ちます。 私はデザインパターンの中でこのパターンが一番…
Pythonでデザインパターン 肆ノ型「FactoryMethod」
今回はPythonの勉強しながらデザインパターンのFactoryMethodをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 FactoryMethodとは 直訳すると「工場手続き」みたいな意味になります。 wikiには「他のクラスのコンストラクタをサブクラスで上書き可能な自分のメソッドに置き換えることで、 アプリケーションに特化したオブジェクトの生成をサブクラスに追い出し、クラスの再利用性を高める」とあります。 FactoryMethodについて考えてみる wikiの文言だと私にはよくわからなかったので、 いつものごとく色々コードを書いて自分なりの理解を書いて…
Pythonでデザインパターン 参ノ型「TemplateMethod」
今回はPythonの勉強しながらデザインパターンのTemplateMethodをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 TemplateMethodとは 直訳すると「型板手続き」みたいな意味になります。 wikiには「ある処理のおおまかなアルゴリズムをあらかじめ決めておいて、そのアルゴリズムの具体的な設計をサブクラスに任せること」とあります。 TemplateMethodについて考えてみる TemplateMethodパターンは抽象クラスを使用することで実現することができます。 いつもどおり、ざっくりした例で説明してみます。 以下はテンプレートクラス:T…
今回はPythonの勉強しながらデザイン・パターンのAdapterをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Adapterとは 直訳すると「適合させるもの」という意味になりますが、 直訳だと少しわかりにくいですね(;´Д`) wikiには「既存のクラスに対して修正を加えることなく、インタフェースを変更することができる」とあります。 アダプタと言われると、身近なものではACアダプタが思いつきます。 ACアダプタはコンセントからとったAC(交流)をDC(直流)に変換し、電子機器に電源を供給するための装置です。 このことからアダプタとは、何かからの入力を、変換…
Pythonでデザイン・パターン 壱ノ型「Iterator」
今回はPythonの勉強目的でデザイン・パターンのIteratorをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Iteratorとは 直訳だと「繰り返す」や「反復」という意味になります。 wikiには「コンテナオブジェクトの要素を列挙する手段を独立させることによって、コンテナの内部仕様に依存しない反復子を提供する」とあります。 プログラミング言語には配列、リスト、ハッシュテーブルなどのデータを1つのオブジェクト(集合体)にまとめる仕組みがあります。 しかし、データへアクセスする方法はオブジェクト毎に異なるので、オブジェクトを利用するユーザは「オブジェクト毎に…
最近、Pythonの勉強を始めてみました。 私は新しい言語を覚えるとき、とにかく真似てもいいから色んなコードを書いて、その言語の雰囲気を味わうようにしています。 そんな勉強方法が良いかはさておき(・`ω´・;) 今回も色んなコードを書いてみるところから始めたいと思いますが、基本的な文法や考え方は他の言語を使っているからなんとなくわかる気がします。 なので、今回は題材としてデザイン・パターンをPythonで書いていってみようかと思います。 実は、長らくプログラマーをやっていたのにデザイン・パターンも真面目に勉強したことがなかったのでこの機会に一緒にお勉強してみたいと思います(;´Д`) 使うかど…
会社の若い子たちがPhysonで機械学習とかやっているようなので自分も勉強してみることにしました。 基本的な文法はなんとなくわかる気がするので、Pythonにおけるクラスの使い方とスコープから初めてみたいと思います。 自分のお勉強目的の備忘録なのでわかりにくい表現を使うかもしれませんがお許し下さいm(T▽T)m スコープ確認用のクラス 今回は動作確認用に以下のクラスを準備しました。 # coding: utf-8 class testClass : # publicなクラス変数 class_variable_A = 1 # privateなクラス変数 __class_variable_B = …
Cortex-M4でCMSISライブラリを使わずにSysTickを制御してみる
前回までは、Cortex-M4でCMSISライブラリを使わずにGPIO制御してみました。 今回は、Cortex-M4でCMSISライブラリを使わずにSysTickを制御してみたいと思います。 SysTickとは ARMマイコンが周辺機器とは別に持っている24ビットのシステム・タイマです。 特徴としては以下のとおりです。 LOADレジスタ値(再ロード値)をVALレジスタ(カウンタ値)に読み込む。 VALレジスタ値をカウント・ダウンする。 VALレジスタが0になるとSysTick割り込みを発生させる。 VALレジスタが0になると1. を実施する。 用途としてはOSのスケジューリングを行うためのシス…
Cortex-M4でCMSISライブラリを使わずにGPIO制御してみる(拡張)
前回は、Cortex-M4でCMSISライブラリを使わずにGPIO制御してみました。 今回は、その延長で複数のGPIOを制御してLチカさせます。 内容は前回やったことに毛が生えたような感じですが、今後やりたいことがあり、そのデバッグ目的のためにやります。 User LEDについて STM32F407VGに搭載されているUser LEDは、red/blue/green/orangeの4種類あります。 いずれもポートグループはDグループのようです。 実装してみる 全体を説明すると長くなるので、ここでは部分的に紹介します。 Tagは「20210110_01」です。 ポートグループのテーブルを作成 今…
Cortex-M4でCMSISライブラリを使わずにGPIO制御してみる
前回は、eclipse Embedded CDTでSTM32F407VG(Cortex-M4)のベアメタルをデバッグしました。 今回は、CMSISライブラリを使わずにGPIOを制御してUser LED(green)をLチカさせてみたいと思います。 User LED(green)の接続先 まずはUser LED(green)の接続先を探します。 接続先は、STM32F4DISCOVERYのユーザマニュアルに記載されています。 これによるとUser LED(green)は、PD12(ポートグループDの12番)に接続されているようです。 レジスタの調査 今回はCMSISライブラリを使用しないのでPD…
eclipse Embedded CDTを使ってAMR用のベアメタルをデバッグしてみる
前回はeclipse Embedded CDTをインストールしてWidnowsだけで動くAMR用のベアメタル開発環境を構築してみました。 今回はeclipse Embedded CDTを使用してAMR用のベアメタルをデバッグしてみました。 備忘録として残します。 プロジェクトを作成する eclipseを起動してメニューバーより File > New >Projectを選択します。 C Projectを選択してプロジェクトを作成します。 今回はproject typeを STM32F4xx C/C++ Project をにしました。 またTarget processor settingsよりCo…
eclipse Embedded CDTでAMR用のベアメタル開発環境を作ってみる
eclipseを使用したARMの開発環境 eclipse Embedded CDT が便利だという話を小耳にはさみました。 eclipse Embedded CDT はeclipseにクロスツールチェーンやプラグインを追加して使うような開発環境のようです。 今回は、Windows 10 64bitマシンにeclipse Embedded CDTによる開発環境を構築してみました。(・`ω´・)b eclipse Embedded CDTのインストール Javaをインストール Node.jsをインストール xPack Package Manager(xpm)のインストール windows-buil…
「ブログリーダー」を活用して、夏の思い出さんをフォローしませんか?