programming

Tkinterがないときのmatplotlib.pyplot

Windows10に本家のPythonをインストールしたとき、付属エディタのIDLEが不要だったのでチェックを外したら標準のGUIツールキットであるtkinterもインストールされなかった。 ところが、mplotlib.pyplotは内部でtkinterを呼び出しているのでこのままではtkint…

Gitのシェル拡張を消した

こちらを参考にGitのシェル拡張(右クリックのメニューに表示されるGit関連の操作)を消した。かねてからメニューが縦長になって疎ましかったのですっきりした。 拡張するのはいいんだけど、右クリックメニューの第1階層に5,6もの項目をずらずら並べるの…

(訂正)C++ Builder XE3 でフリーカーソル無効化アドイン

<注意!> 先に書いた手順を実行するとエディタでの文字入力(特にタブの入力)がおかしくなり、さらに開発環境が起動しなくなる場合があったので、記事を削除した。 以下は失敗と対処の備忘。 やったこと C++ Builder 5/6用のフリーカーソル無効化アドイン…

C++ Builder 6 で Linker Fatal error

C++ Builder 6 でプロジェクトのパスで嵌った。パスの中に「-(ハイフン)」が含まれているとリンカが致命的エラーを起こす。 たぶん嵌ったのは今回で3回目くらいだけど、性懲りも無くまた忘れそうなので記録しておく。 事例 たとえば次のようなフォルダに…

組み込み技術者の資格

こんなのがあるのか…。 http://www.jitec.jp/1_11seido/es.html

HpricotはRuby1.9で使えない?

仕事用のパソコンにRubyInstallerのバージョンを 1.8.6 から 1.9.2 に上げてみた。HTMLヘルプファイルの自動生成スクリプトを実行するために、GemでHpricotをインストールした。例によって普通にインストールするとエラーが出るのでプラットフォームを指定し…

joyGetPosEx() の引数には事前に値をセットしとけ

JoypadとPopupMenuの干渉? - どことなく技術屋な日々でポップアップメニューとジョイパッドが干渉していたのは、ジョイパッドを読み出す関数 joyGetPosEx() の引数に事前に値をセットしていなかったからだった。 初期化していない dwSize にたまたま大きな…

JoypadとPopupMenuの干渉?

市販のジョイパッド(ゲームパッド)を使うWindowsプログラムをWindowsAPIで組む場合、ジョイパッドのボタンの押下状態を読むには、joyGetPos() や joyGetPosEx() といったAPI関数を使うと思う。 ところがどうもこれらの関数は、ポップアップメニューを表示…

TortoiseSVN 1.6.10 のExplorer拡張

TortoiseSVNバージョンアップしたらExplorer上でオーバーレイアイコンが表示されなくなった。TortoiseSVNの設定を確認しようにもExplorerのメニューにTortoiseSVNの項目がなくなっているわでちょっと焦った。 Version 1.6.10でアップグレードインストールし…

シリアル通信printf関数

組み込み開発フォーラム - MONOist(モノイスト) この記事のサンプルコードでは、printfの書式指定子を自前で処理しているけど、vsnprintf関数(もしくはvsprintf関数)を使えば次のようにはるかに簡単になる。(しかも書式指定子の機能をフルに使える) #d…

Android SDK 用 Xperia X10 アドオン

というのをソニーエリクソンが公開していたのでインストールしてみた。 エミュレータがXperiaのスキンで起動するようにはなったけど、エミュレータの画面が大きすぎたり画面右側にボタンが出なかったりと、実用にはさらに設定が必要そうだ。 ダウンロードは …

るびま29号

るびま

Androidエミュレータ

Androidエミュレータは起動してから最初の画面(下の画面)が表示されるまで結構時間がかかるらしい。自分のノートPCでは2分くらいかかる。 これまで1分も経たないうちに操作しようとしていたので、エミュレータが何も反応しなかった。何をやっても動かな…

Androidアプリの開発環境の準備

来るべきXperiaに備えて、Ubuntu9.10でAndroidアプリを開発できるようにしてみた。

ソースコードよりアーキテクチャを読みたい

ソースコード、読んでいますか | 日経 xTECH(クロステック) 自由に読めるソースコードがあふれている時代なんだから、もっとソースコードを読め読めと言われている。そのこと自体に異論は無いのだけど、自分としてはソースコードより、より高次のアーキテ…

C++Builder6にIndy9をインストール

C++Builder6にIndy9.0をインストールする - C++Builder Tips http://219.117.234.12/nikki10.htmlの2003.12.16 【BCB】Borland C++ Builder 6にIndyをインストールする手順 - CommentOut? などを参考にさせてもらった。 まず、ソースコード(Indy9.…

To Do Mailに送ったメールの本文が消える

少し前に会社で契約しているプロバイダのメールサーバーがリプレースされた。それに伴ってメール送信時の認証方式がPop before SMTPからSMTP認証に替わった。で、前にこちょこちょっと作ったTo Do Mail(いわゆるリマインダーメールサービスの一つ)用に作っ…

誰も読まないドキュメント

Embedded Software Manufactory: なぜドキュメントを書かない? 日本の小規模な組込みソフトウェアプロジェクトでは、プログラマが仕様も作成し、マーケティングもテストも品質保証もしなければいけないことが少なくない。品質保証という名が付く担当部門が…

WindowsからRubyでLinux上のMySQLにアクセス

色々調べてアクセスに成功したのでメモ。サーバー環境: Vine Linux 4.2、MySQL 5.0.27-0vl6 クライアント環境: WindwsXP SP3、Ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]RubyはOne-Click Ruby Installerでインストールしたもの。

Hpricotの仕様が変わってる?

Hpricotの仕様が変わったようで、久しぶりにHTMLヘルプの自動コンパイルスクリプトを走らせたらエラーが出るようになった。と言っても、お行儀の悪いHTMLを書いていたのが原因で、Hpricotには問題は無いのだと思う。 大した話ではないけど、いちおうメモ。

コマンドを決めたら不自然な設計が浮かんできた

TCP/IPサーバー機能を持つ装置制御ソフトがTCP/IP経由でコマンドを受け取ると、対応する動作を行う関数を呼び出す。このとき、関数は装置制御モジュールの最上位のオブジェクトからポインタをたどって呼び出される。つまり関数を呼び出すコードは次のような…

動作を推測できない関数

今手を焼いているコードには名前から動作を推測できない関数が多い。関数の動作はなんとなく想像できたとしても、引数の意味が不明だったりする。特に多いのが引数や戻り値が2通りの値を取る場合に、安直に型を bool にしている箇所。 例えば、 void Set_Ga…

値の表現が複数ある

件のソースではある設定値を、配列(BCD)・整数・構造体の3通りの方法で格納している。 なんでこんなことになっているかと言うと、これまた回路の都合を引きずっているから。 配列には、値をBCDにしてから桁並び順を反転したものが格納される。つまり 123…

まあ原則だから

2008-09-22 - プログラミング日記 概ね同意。中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場 by ふろむだ 原則から外れた方が良い場合はあるけど、ちょっとツッコミが細かすぎる気がする…

TeCanvas.hpp で E2091 のエラー(解決)

昨日の TeCanvas.hpp でのエラーを(コメントアウトとかしないでも)出ないようにした。 と言っても大したことをしたわけではない。インクルード上下関係一覧によると、 TeCanvas.hpp は Chart.hpp にインクルードされているらしいので、ソースコード中でCha…

TeCanvas.hpp で E2091 のエラー

(TeCanvas.hpp で E2091 のエラー(解決) - どことなく技術屋な日々で解決済み)Borland C++ Builder 6 professional で [C++ Error] TeCanvas.hpp(417): E2091 関数は配列または関数を返すことはできない てなエラーが出た。該当の箇所は TeCanvas.hpp の…

グローバルな一時変数

変数の使い方の問題には、例えば「XXXtemp」のような名前の一時変数がグローバル領域におかれていることが挙げられる。こういったグローバル変数の何が一時的かと言うと、関数の間で値を受け渡すのに「一時的に」使用されている。たとえばこんな感じに使われ…

複数の機能をもつ関数

例えば、次のように計算と表示が分かれていない関数がある。

forループで加算?

調査中の組み込みプログラムのソースにこんな関数があった。

BCDの加算と減算

ちょっと必要があってBCD(二進化十進数、Binary-coded decimal)同士の加算と減算をするコードを書いてみた。条件を整理すればもう少し簡潔にできそうだけど、くたびれてきたので今日はここまで。