ろぐれこーど

限界組み込みエンジニアの学習記録とちょっぴりポエム

2020-01-01から1年間の記事一覧

全ての基本は構造化から。『組み込みソフトウェア開発のための構造化モデリング』

構造化モデリング及び設計に関する本を読みました。オブジェクト指向設計が提唱されて久しいですが、組み込みの製品開発では今でも構造化設計に基づく部分が多くあります。(C言語だと言語仕様的に実装しにくいということも一因だけど、新規開発が少なく実績…

tagsファイルをパースして関数一覧を取得する

プロジェクト内の関数一覧を取得したいとPLに言われたので、適当に方法を考えてみました。構文解析から愚直にやると地獄を見そうなので、今回はCtagsを利用し、tagsファイルをパースするスクリプトをpythonで書きます。 Ctags == 5.8 python >= 3 C/C++のプ…

elxrリンカにおけるリンカスクリプトの記述

GHSコンパイラのelxrリンカにおけるリンカスクリプト(.ldファイル)の書き方がわからなかったため、ざっくり調べました。 概要 elxrリンカ MEMORY SECTION contents指定 関数の使用 属性の使用 (参考)ldリンカ まとめ 概要 Linker Directiveファイル(通称リ…

周回遅れで『SOFT SKILLS』を読んだ

今更ながら、少し前に話題になった「SOFT SKILLS」という本を読みました。もはや本を買うまでもないくらいネット上に書評等の記事が出回っていますが、記録のために書き残しておきます。 SOFT SKILLS ソフトウェア開発者の人生マニュアル作者:ジョン・ソンメ…

VScodeでファイルの表示・検索・監視のExclude設定をする

ファイルの多いディレクトリをVScodeで開くと動作が重くなったり、grep検索の結果が見づらくなります。その対策として各種Exclude設定を調べたのでメモします。versionは以下を想定。 vscode == 1.51.1 globパターンの記述 Exclude設定 エクスプローラの表示…

MongoDBのcollection基本操作をpythonで(pymongo)

pymongoによるMongoDBのcollectionに対する操作をしょっちゅう忘れるのでメモします。バージョンは以下を想定しています。基本的にはMongoDBでのshellコマンドがそのままpymongoで使用できます。 MongoDB == 4.4.1 pymongo == 3.10.1 検索 基本 演算子の指定…

巡回冗長検査(CRC, Cyclic Redundancy Check)の原理と実装

実務でCRC、巡回冗長検査を使うことがあったのですが、いまいちよくわかっていなかったので調べてみました。間違いあれば訂正します。 CRCとは 使い始めるために 生成多項式 二元系列での除算 CRCの計算 実装 補足説明あれこれ 実装都合の知識 生成多項式の…

プロセス改善の第一歩に『ハイブリッドアジャイルの実践』

アジャイルというプロセスは、主に小規模な開発案件で適応できるものかと思っていましたが、以下の本を見つけたので読んでみました。 ハイブリッドアジャイルの実践作者:英繁雄,奈加健次,平岡嗣晃,前川祐介,関西電力株式会社発売日: 2014/11/26メディア: Kin…

sipsコマンドでheic画像を別形式に一括変換する

.heicの画像をに別フォーマットに変換する必要があったため、シェルスクリプトを書きました。heic画像を格納したディレクトリで実行すれば同名のjpg画像を新たに保存します。macがサポートしているsipsコマンドを使用しているため、他OSでは使用できません。…

『一日ごとに差が開く 天才たちのライフハック』でライフをハックしてみたい

Amazon reading対象だったので以下の本を読みました。 1日ごとに差が開く 天才たちのライフハック作者:許 成準発売日: 2019/04/25メディア: Kindle版 自己啓発本には大抵「習慣付けが大事」みたいな内容が多いですが、実践のハードルがかなり高いようなもの…

volatile修飾子の使いどころ (組み込み, C)

C言語におけるvolatile修飾子をどういったときに使う必要があるかを整理したかったので調べました。 結論 説明 レジスタ操作 他で参照しないレジスタへの書き込み 特定の手順での書き込み レジスタ参照 他で書き込みしないレジスタへの参照 速度重視の最適化…

一生縁がないと思っていた「アート」に触れて

我慢の夏休みとかいう、GWにも聞いたようなフレーズで外出自粛を余儀なくされている今日この頃ですが、いよいよやることがなくなってきたので普段は読まなさそうな本を読みました。 「自分だけの答え」が見つかる 13歳からのアート思考作者:末永 幸歩発売日:…

数値を含む文字列のリストを数値順でソート (numerical sort, python)

pythonにはリストをソートするための関数sorted()がありますが、数値を含む文字列のリストをソートすると意図しないものとなります。 l = [ "test2", "test1", "test12", "test4", "test10" ] sorted(l) # ["test1", "test10", "test12", "test2", "test4"] …

subprocessを子プロセスまでkillして停止させる (python)

pythonのsubprocessライブラリ使用時、バックグラウンド実行したサブプロセスを中断させるのに手こずったのでメモします。 結論 Windows Linux 補足説明 execコマンド subprocess 参考 結論 下記の環境で確認済み。 python == 3.7.6 バックグラウンド実行す…

デュアルブート時のLinuxとWindowsの時刻ズレを解消する

ubuntu18.04とwindows 10をデュアルブートしていると、時刻がずれる現象が起こったので解消方法をメモします。 結論 補足説明あれこれ システムクロック ハードウェアクロック hwclockコマンド timedatectlコマンド 結論 Linux側の時刻を調整することを前提…

整数値からポインタ値へのキャスト (C言語)

C言語で整数型からポインタへキャストする書き方で少し詰まったため、メモします。 想定ケース 「特定のアドレスに値を直接書き込みたい」というケースを想定します。以下のようなコードを実際に見ました。 // address(0xFFFF0000)に0xFFを書き込む unsigned…

Ubuntu18.04 にpipでwxPython(Phoenix)をインストール

Ubuntu18.04 + python3.7.6(pyenv) にwxPython(Phoenix)をインストールするときに少しハマったのでメモしておきます。 結論 試したこと pip apt まとめ 参考 結論 2020/5/17現在の方法です。 sudo apt install libsdl2-2.0-0 libsdl2-dev してから pip insta…

Template MethodパターンによるVBAマクロの実装

以下の本を読み、テンプレートメソッド(Template Method)パターンというデザインパターンを学びました。 モダンC言語プログラミング 統合開発環境、デザインパターン、エクストリーム・プログラミング、テスト駆動開発、リファクタリング、継続的インテグレ…

ハンガリアン記法について再考してみる

ハンガリアン記法という一種のコーディングルールがありますが、この是非について自分なりに考えてみました。異論あれば後学のために教えていただけると助かります。 現在の開発基準では多くの場合でハンガリアン記法は推奨されていませんが、残念ながら未だ…

ホワイトボックステストにおけるカバレッジとテストケース(C0, C1, C2, CDC, MC/DC, MCC)

ホワイトボックステストでよく用いられる網羅率(coverage)について、違いがよくわかっていなかったためまとめてみました。間違いあれば更新します。 網羅率(coverage, カバレッジ)とは カバレッジ基準 命令網羅 : statement coverage (C0) 判定条件網羅 : de…