プログラミング
前回こちらの記事で紹介したディスプレイについて、カラー指定の青と赤が逆になっていて困ったのでその修正方法についてメモしておく。 thom.hateblo.jpライブラリ「Adafruit_ST7735_and_ST7789_Library」に入っているサンプルコード「graphictest.ino」内に…
久々にMinecraftで遊んでいるんだけど、土台敷き作業が結構面倒くさい。 操作としてはShift+S+D+マウス右を押しっぱなしにするだけなんだけど、気を抜くとシフトが外れて落下するため自動化することにした。ソフトウェアマクロという手もあるけど途中で手動…
今回は私が遊んでいるゲーム Satisfactoryのなかのガチャ要素で狙ったものを引きあてる確率を求めてみた。Satisfactoryは異星に工場を発展させていく生産シミュレーション系のゲームである。 詳しくは以下の記事で紹介しているので気になる方はチェックして…
今回は、以前作成したリマインダーシステムの管理ツールを作成した話。 thom.hateblo.jpあれからリマインダーシステムはますます重要度を増し、周期的な作業も含めると既に40近くのTo Doが登録されている。 最初のうちは手修正で良かったが、これだけ数が増…
今回はArduinoで自動コイル巻き機を試作したのでご紹介。巻きあがりのクオリティはこんな感じ。 折り返しのタイミング設定をミスって左端がちょっとダブついてしまったが全体的にかなり密に巻けているのでいい感じ。動作の様子を動画に収めてみた。(音無し動…
今回は、ネット検索で見つけたソースコードのコピペがアリかナシか、私なりの見解を書いてみようと思う。シチュエーションによって判断が変わってくると思うのでチャートにしてみた。 ライセンスによる判断 まずライセンスがコピーを許さない場合は絶対にNG…
最近GitHubについて説明してほしいと言われることが増えた。対象者は職業プログラマーではないためバージョン管理システムなどを触ったことが無いのだが、諸事情で概要を把握する必要に迫られているといったところ。以降、一般人と呼ぶ。私自信も別に職業プ…
プログラミングコードのコメントにはWhyを書く。 これは結構いろんなところで言われている気がする。ビジネスフレームワークでは、5W1Hが大事と言われている。そのうちのひとつである。 なぜコードのコメントには、「Why」を書くべきなんだろうか。他の4W1H…
今日は書店に行って以下の書籍を買ってきた。実践 Python 3作者:Mark SummerfieldオライリージャパンAmazon実践Python 3と書いてあるが、いわゆるPythonでこんなことができます!系の本ではなく、内容はデザインパターンをPythonに落とし込んだ設計論の書籍…
私は普段Windows 10からコマンドラインのGitでGitHubにアクセスしているが、たまにラズパイまわりの開発をする際にOracle VirtualBox上に作成したラズパイOSの仮想環境からGitHubにアクセスしたい場合がある。久々にこれをやってみたらパスワード認証は去年8…
今回はGitHubの話。 基本的な使い方は入門書がいくらでも出ているので今更私が解説するまでもないけど、ブランチ運用については腑に落ちるまで少し苦労したので今回は自分流のブランチ運用をメモとして残しておこうと思う。ガチの開発勢から色々と文句を言わ…
今日はPS4コントローラーをマクロキーボードとして使うプロジェクト「DualShock2KeyCommand」のリポジトリをPrivateからPublicに変更した。github.comこれまでPrivateにしていたのはゴリゴリに私用に特殊な設定をハードコードしてるのでPublicにしても別に誰…
前回は絶対に起きられるアラームの構想について書いたが、今回はその実装に向けた要素技術の実験。 thom.hateblo.jp要素技術ってなんか大層な響きだけど、そんなに大げさなものではなく、スイッチの割り込み処理である。 特に他に呼びようがないのでそう呼ん…
今回は、グラフのレイアウトを自動化するためのアルゴリズムを紹介する。 ここでいうグラフはExcelのグラフ機能のことではなく、数学のグラフ理論の方のグラフ。知らない方は、以下のような作業工程図をイメージしてもらえば良いかと思う。 マインドマップ等…
昨年10月頃に、とあるPythonプログラムで2つの問題に行き詰っていた。 折角の連休なので再トライしてみたところ2つともあっさり解決してしまった。プログラミングに限らずこういうことはよくある。一度行き詰ってしまった問題でも、ある程度の期間を置くこと…
プログラミングでは、ひとつの言語をマスターすれば、どんな言語でも使えると言われている。 この言説には賛否あるけど、ある意味正しくて、ある意味間違いだと思う。より正確に言えば、新しく学ぶ言語と既にマスターしている言語に共通する概念についてはス…
こちらの記事で伊藤先生も書かれているように、この数年でVBAのクラスモジュールに関する情報が充実してきている。これからクラスモジュールについて学習しようと考えている方も沢山(期待を込めて)いらっしゃることと思う。そこで今回は、オブジェクト指向を…
新年の初投稿で書き忘れてたので。さて、新年と言えば去年はこのような記事を書いた。 thom.hateblo.jp節目のブースト効果で、今年こそは何か資格を取ろうとか、色々考えている方もいると思う。 私が購読しているブログでも新年の意気込みが。 今さらながら…
VBAに限らずすべての言語に言えることだが、プロシージャが複雑になればなるほどバグが混入しやすくなる。そこで今回はプロシージャの複雑度を測る「循環的複雑度」という指標を紹介する。 何がどう循環的なのか知らないけど、名前が醸し出すややこしさとは…
プログラミングが上達すると、コードの共通部分をプロシージャに切り出すことを覚える。 コードを共通化すれば、共通部分に変更が発生した場合に、修正は一か所で済むので効率的だとされる。はたして本当にそうだろうか? 私もつい最近まで、コードの共通化…
VBAでは互いに関連するプロシージャをひとつのモジュールに纏めることが多い。 このとき、呼び出す側と呼ばれる側のどちらを先に書けば良いだろうか。以前の私の考えでは、例えばProc1がProc2を呼び出すとき、呼ばれる側を先に定義しておくという意味で先に…
VBAに限らず全てのプログラミング言語で言えることだが、コード中に値(あたい)が直接登場することは無い。 最近、「値とは何か」ということを掘り下げて考えることがあり、ようやくこの結論に行きついた。たとえば、数字の「1」。これは一般的に値だと理解さ…
プログラムのコーディングで一番時間を消費するのは「思考」と「試行錯誤」である。コーディングスピードが落ちることを嫌って極端に短い変数名をつけたり、一つのプロシージャで一気に書ききったりするとコードが把握しにくくなり、「思考」に時間をとられ…
プログラミング言語とは何か。 初心者に向けて、よく次のような説明がなされる。 コンピューターは日本語や英語で指示しても理解できない。だからコンピューターが理解できる言葉、つまりプログラミング言語でコードを書く必要がある。 プログラミングを学び…
プログラミングでは識別子・キーワード・文字列・演算子・リテラルといった小難しい言葉が登場する。 意味は調べれば分かるが、なんでわざわざそんな小難しい言葉を使うんだろうか。演算子は、計算記号って呼んじゃだめ? 文字列は、単語って呼んじゃだめ? …
MicrosoftがExcelにPythonを搭載することを真剣に検討しているらしい。 www.itmedia.co.jpまだ検討の段階なので、どんな実装になるかは明らかにされていないが、基本的にはVBAと同じくCOMの操作になるんじゃないかと思う。今回はひと足先に、PythonでCOMを利…
これは私に関数型言語の素晴らしさを教えてくれた本である。プログラミングGauche作者:KahuaプロジェクトオライリージャパンAmazonプログラミングGauche(ゴーシュ)。一度売ってしまったのだけど、どうしてもその本のコラム「Lisp脳」の謎に迫る-Schemeプロ…
目次 Prism.js(プリズム)とは Prismの入手 Prismの使い方 日本語文字列の問題 Prism.jsを日本語文字列に対応させる方法 7/30 追記:コード中のコメントもおかしいのでPrism.jsを再修正 Prism.js(プリズム)とは Prism.jsとはWebサイトやブログにプログラムの…
今回はJavaでテキストファイルから特定文字列を含む行を除外してファイル出力するコードを作ったので紹介。 コマンドライン引数で複数のキーワードを指定して除外できるようにした。 作成の経緯 このブログのアクセスログを分析する際、いつもダウンロードし…
みなさん本日は情報処理試験お疲れ様でした。 (私は今回申し込みすらしてないけど)本当は試験前にこの記事を書きたかったんだけど文章悩んでるうちに試験が終わってしまった。まぁ今回ダメだった方、決意を新たにした方もいると思うので一応公開するか。さ…