忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Debian8(jessie)でEclipseを使ってC/C++の開発環境を整える

最近、ジャンクのノートパソコンを修理して、それにDebian8(jessie、デスクトップはMATE)をインストールして使ってみたところ、予想外に動作が軽快だったので、母機にもDebian8(64ビット版)をインストールしてみました。

 Windows 7よりディスクアクセスが少なく、シャットダウンも一瞬で終わって、これまた軽快だったので、最近はWindowsよりも、こちらを使っている時間が増えてしまいました。


 そこで、Linuxのプログラムを何か作ろうと思い、GTK+でCを使ってウィンドウを出したりしてみました。

 ただし、コマンドラインのgccだけだと、デバッグができないので、これだけでは問題があります。
 一応、GDB(GNU Project debugger)というコマンドラインのデバッガはありますが、これを単体で使うのは、ちょっとめんどくさそうだ…。


 というわけで、GUIでC/C++を開発(特にデバッグ)できる環境が必要になったので(「お前はPascalChanという名前なのに、Cで開発するのか?Lazarusを使え」などと言われそうですが、それは正論です。それでもCを使いますが)、いくつか探してみましたが、最終的には、Eclipseを使うことにしました。


 Eclipseは元々Javaの開発環境なので、これにCDTというプラグインを追加すると、C/C++の開発環境にもなります。ただ、このままだと英語版のままなので、日本語化する必要があります。

 その方法はぐぐれば出てくるので、ここでは深く触れません。大まかに書くと、

  • PleiadesというEclipseのプラグインをインストールする
  • /etc/eclipse.ini を、root権限で編集する
  • 具体的には、最後に「-javaagent:/usr/lib/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar」を加える

となります(上の例は、Debian8の場合です。他の環境では、「eclipse.ini」のある所や「pleiades.jar」のフルパス指定は、異なっている可能性があります)。


 これで、確かに日本語化します。

ただ、いわゆる「おま環」なのかも知れませんが、Cのソースを開こうとすると、

「Unable to create editor ID org.eclipse.cdt.ui.editor.CEditor: エディター・クラスをインスタンス化できませんでした。これは通常、引数をとらないコンストラクターの欠落か、エディターのクラス名が plugin.xml でミス・タイプされていたことを意味します。」
 というエラーが出てきて、開けません。普通のテキストファイルは開けるのに…。

一応、僕の環境を書いておくと、Eclipseのバージョンは "3.8.1" 、Javaのバージョンは "1.7.0_101" でした。


 この原因を調べてみたところ、
http://qiita.com/fuminimax/items/1a3376684a1e93cb4d5a
Eclipse4.4(Luna)でCDTが動作しない
というところに書いてあった方法を使うと、このエラーを回避できることがわかりました。

 その方法は簡単で、
  • /etc/eclipse.ini を編集し、最後に「-Xverify:none」を加える
でした。



 一応、同じ問題で悩んでいる人がいるかも知れないので、メモしておきました。
PR

アマチュア無線で話ができない。

先ほど、吃音に悩む大学生が、就職活動で自分の吃音をカミングアウトするかどうか…というような動画をYouTubeで観ました。
https://www.youtube.com/watch?v=8bDwLwBsE3Q
バリバラ 「きつ音」面接での悩み
 僕も吃音持ちなので他人事ではない話なのですが、その動画を観ていたら、僕は途中で腹が立って、要らなくなったDVD-RAMを、自分のアマチュア無線機にブン投げてしまいました。



 僕はアマチュア無線で話をすることができません。
 したがって、アマチュア無線の業務は実行不可能な状態で止まっています。

 その理由は、吃音と、頭の中で雑談を組み立てることができないために、必要事項を伝達する以外の話(つまり雑談)ができないからです。

 これが、明確に構音障害があるようなアマチュア無線家だったら、まだいいでしょう。それは聞けば一発でわかりますから、向こうも雑談なんて野暮なことは要求せず、相手の発音を何度も丁寧に聞き取ってくれ、必要事項の伝達だけで交信が無事に終了するからです(実際にワッチして確認しました)。
 元外国人(電波法から考えて、今の国籍は日本でしょう)が片言で日本語を喋っている場合も、ほぼ同様です(これも実際にワッチして確認しました)。

 しかし僕のように、ちょっと聞いただけでは異常がわからない相手の場合、相手は暗黙のうちに雑談を要求してきます。

 ところが、僕はそれができないので、「あにょ~」「そにょ~」「えっと~」と、わたモテのもこっちみたいになってしまいます。

 その直後の「…チッ。何だコイツ。こんな話も満足にできねえのか」みたいな向こうの気まずい雰囲気は、無線機から出る電波に変調されて乗って来ているわけではありませんが、痛いくらい伝わってくるものです。

 カード交換か、あるいは交信局数を稼ぎたい山岳移動局ならばこんなことはないのですが、自宅で無線機を固定運用している局の交信目的は、ほとんどの場合、相手と雑談をして盛り上がることだからです。

 しかし、先ほどの吃音に悩む大学生もそうですが、社会に出て、普通の人に混じって活動している人の中には、「うまく喋れない人がいる」のです。
 それに対する配慮のなさに、思わずムカッと来てしまいました。

 これはアマチュア無線に限定した話ではなく、広く社会一般に見られる無配慮ですが、「喋ることが趣味」のアマチュア無線の機械がその象徴のように見えて、思わず要らないDVD-RAMをブン投げてしまうくらい腹が立ったのでした。



 ちなみに、この「カミングアウトした大学生たち」はどうなるでしょうか。恐らく、面接はパスして入社はできると思います。


 しかし、いずれ社内の他の無理解な人間に当たって、
「おい、お前電話も取れないのかよ。ふざけるな」
「お前、まともに喋れねえのかよ?吃音?他の奴はちゃんと喋ってるだろ」
「社長から直々に理解を得た?知るかよそんな俺に関係ない事
などと言われて嫌がらせを受け、結局辞める羽目になる確率が高いと思います。


 と言うのも、僕がそういう目に遭ったことがあったからです、睡眠障害で。

スーパーのウズラの卵を孵化させるノウハウ・その2

以前、スーパーのウズラの卵を孵化させるノウハウを書きました。

その後、またデータというか、ノウハウのようなものがある程度たまったので、
追加したいと思います。



2015/7/12(日)に、初めてウズラの孵化に成功しましたが、その後謎の熱病にかかってしまい、
やがて死んでしまいました。

それからもずっと卵を温めていたのですが、孵りませんでした。
5ヶ月後の、2015/12/9(水)に、ようやくひなが孵りました。

プラグインが必要です。

このときは、温めていた卵は全部で40個、そのうち有精卵は3個ありました。

1つは無精卵と誤ってしまい、初期のうちに割ってしまいました。

2つめは、暖めてから20日後も振動していましたが、孵らないので、卵を割ってみたところ、まだ“生きて”いました。ただし、くちばしが曲がっているなどの奇形があった(*)ため、孵ることはないようでした。

3つ目が、↑の動画の卵でした。このひなも、足の指が曲がっていて、まっすぐにならないという奇形がありました(*)が、その他には異常はなく、全体的には大変元気でした。


(*)ちなみにこれらの奇形は、卵を温めていた温度が42℃を超えたことがあったので、それが原因だったのかも知れません。ただし、繰り返し実験して確認したわけではないので、詳細は不明です。

しかし、次の日、保温用に入れていたティッシュペーパーが、「こより」状になって首に巻きつき、縊死するという、全く想定外の死を迎えてしまいました。


あまりにショックだったので、しばらくこの記事を書けませんでした。



しかしそれは置いておいて、よく考えてみると、8月から12月まで、なぜ1つも有精卵がなかったのだろう?という疑問が湧きます。

始めに考えたのは、

「ウズラ卵生産者が、有精卵を発生させないようにしているのではないか?」

でした。


しかし、検索して他のブログなどを見てみても、そのような現象は報告されていませんでした。

ただ、可能性はあると考えて、いろいろなスーパーからウズラの卵を買ってきて、比較してみました。

それでも孵りませんでした。よくわからないまま、某日本最大のスーパーと言われているところから買って暖めた卵が、↑の12月に孵ったやつでした。

なので、「ここのスーパーで卵を買って暖めれば、必ず有精卵がある」と思っていました。


ところが。



2015/12/10(木)頃にひなが死んでしまったので、その後、新しく卵を買って暖めたのですが、やはり1つも有精卵がない。オカシイ


しばらく謎のまま、新年になって、また新しく卵を買ってきたとき、ようやくその理由がわかりました。


「あれ、この卵、『パック日』が書いてある。…えっ、4日も冷蔵されていたの?」


ここのスーパーの卵には、「パック日」が表示されていたので、冷蔵されていた日数が一目でわかるようになっていました。

今までの卵は、この、冷蔵日数が長過ぎたために孵らなかったようでした。

この式が絶対に正しいかどうかは確認していませんが(全ウズラ農家に直接確認しないとわからないため)、

[賞味期限]-[パック日]=14日

という式が成立している?


「パック日」は、全てのウズラ卵に書いてあるわけではないので、賞味期限から冷蔵期間を推測して、できるだけ新しいものを選ぶ必要があるようです。


今まで卵を温めていた経験から、孵る確率の大体の印象を述べると、
  • 冷蔵期間2日以内?:孵る確率 3/40 程度
  • 冷蔵期間3日:孵る確率 1/40 程度
  • 冷蔵期間4日:孵る確率 0
といったところでしょうか?

ただしこれも、繰り返し実験して確認したわけではないので、詳細は不明ですが。

お別れ

今週の水曜日、ある人とお別れがありました。


記念にワインを頂きました。ありがとうございました。

しかしこれは記念品なので、飲むことはできず、保存することにしました。


このワインを飲むためには…

また買ってきてくれればいい

ので、できれば、また会って、買ってきてくれませんか?

ワイン代は僕が払いますので。

MMANA-GAL Basicを使ってみる

昔やっていた、アマチュア無線を再開しました。

 ハンディ機を買ったのですが、これを生かすためには、やはり屋外運用でそれなりのアンテナを…と考えたので、5エレのヘンテナ八木を作ってみようと思いました。

 アンテナの設計用のソフトウェアとして有名なものをぐぐってみると、MMANA-GALというものが見つかりました。日本語の解説書も出されているくらいメジャーなようなので、とりあえずこれを使って設計してみようと思いました。



 早速インストールすると…C:\ドライブの直下に適当なディレクトリを作って、そこにインストールするではありませんか! これは別のディレクトリ(c:\Program Files* を除く)に、インストールされたファイルを全て移動させても問題ないようなので、移動しました。


 起動する前に、このプログラムは、DelphiTStringGridを使っているようなので、バイナリダンプしてみました。

バイナリエディタで「Delphi」という文字列を検索すると…やはりありました。マニフェストファイルに含まれているのでしょうか?


 さらに調べてみると、

「__CPPdebugHook」という文字列が見つかりました。どうやら、Pascal(Delphi)ではなく、C++ Builder 製のようです。


 起動すると…


このような画面が出てきました。

日本語化できるようなのですが、僕の環境ではなぜか文字化けしたので、英語版のまま使うことにしました。

「Geometry」タブの、TStringGridを埋めてシミュレーションするわけです。座標の指定がめんどくさそうですが、名前をつけ、周波数を指定した後、とりあえずそれっぽいヘンテナのデータ(座標は連続していることが重要。そうでないと、別々のエレメントと見なされます)を入力します。


しかし、

ヘンテナが、アンテナ2つ分とカウントされてしまった!

これは、どうやら以下のように処理されているためのようです。


上の、「ダメな例」のように、1つのループ+「フォーク状」して入力すると、それは「別々のアンテナ2つ」と見なしてしまうようなのです。

「よい例」のように、向きをそろえて、1つの大きなループを作り、ヘンテナの給電部は最後に付け足すと、1つのループアンテナとして計算してくれました。

 あと、忘れていけないのは、給電点を指定すること。この場合は番目の要素を給電点とする座標にしたので、「Sources 1」の「PULSE」を「w7c」と変更する必要があります。


 さて、入力が終わったら、適宜データをセーブするなどした後に、「Caluculate」タブを押すと、以下のようなウィンドウになります。これを、便宜的に「計算ウィンドウ」と呼ぶことにします。


計算ウィンドウの「Optimization」ボタンを押すと、


このような「最適化ウィンドウ」が出てきます。これの、「All Elements」ボタンをクリックすると、データがロードされます。

そして「Element edit」ボタンを押すと、
 

全てのエレメントが、まとまって出てくるので確認します。給電するエレメントは、赤く「Base element」と出てきます。なかなか賢いです。

ヘンテナは7本の線分の要素で構成されているので、「Wires」に「7」と出てこなかったら、データ入力をやり直す必要があります。

このウィンドウはキャンセルし、上の最適化ウィンドウの「Advanced」ボタンをクリックします。すると、以下のようなダイアログが出ます。


ここの「Pulse position」も「w7c」と書き換える必要があるので、忘れずに書き換えます。

そして最適化ウィンドウに戻って、「Band setting」ボタンを押すと、


このようなダイアログが出るので、ここはお好みで、シミュレーションする周波数を増減するとよいでしょう。ワイドバンドな特性のアンテナを設計したいときに重宝しそうなところです。

ちなみに、ここの「w7c」は既に自動的に入力されているので、何も変更する必要はありません。


準備ができたので、最適化ウィンドウに戻って「Start」ボタンを押すと、計算ウィンドウに戻り、最適化が始まります。

データによっては時間がかかるので、計算が終わるまで待つ必要があります。



 さて、計算が終わりました。データを表示させてみましょう。

計算ウィンドウの「Plots」を押すと、下のようなダイアログが出ます。



430MHz帯は帯域が10MHzあるので、それに合わせた表示にするため、「Setup」タブを押し、「Center Frequency」を真ん中の「435.0」にします。そして、「BW」を「10000」にします。

「Limit of SWR」はお好みでどうぞ。



とりあえず「Z」タブ(要するにインピーダンスのタブ)を表示させ、「Detailed」ボタンを押すと、しばらく計算していますが、やがて、上のようなデータが出てきます。



個人的に一番気にしていたSWRのデータは、上のようになりました。…まあ、こんなものかなあ。

気に入らなかったら、条件を変えて再計算しましょう。




これは、ゲインとF/B比のグラフです。

ヘンテナ八木は、F/B比が高い傾向があるようです。その代わり、ゲインはそれほど大きいわけではなく、単体のヘンテナのようなメリットはあまりないらしい。

…ヘンテナ、やっぱり止めるか?



これは、指向特性のデータです。


 計算ウィンドウに戻り、「Far field plots」タブを押し、下の「3D FF」ボタンを押して、3Dの立体的な指向特性を表示させようとしましたが…


僕の環境では、「ぬるぽ」に対するAccessViolationが出て、表示できませんでした。残念。


 最後に、計算ウィンドウの「View」タブを押し、このアンテナの形状を確認します。

…何、このヘンな形。


実際問題として、最適化の収束条件によっては、上のような奇妙な八木アンテナになってしまうことがあるようでした。

これも、何度か条件を変えて計算をやり直すか、もういっそのこと、それっぽい元データを入れ直して始めから再計算するとよいようです。



 以上、何だかよくわからないまま、MMANA-GALを使ってアンテナの設計をした簡単なレポートでした。

 最後に。

上でもっともらしく「○○ボタンを押す」「△△と入力する」などと書いていますが、全部適当です。

なので、解説書やヘルプに書いてあることと食い違う場合は、僕の言うことは無視するのが賢明です。

忍者カウンター

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

プロフィール

HN:
PascalChan
性別:
男性
趣味:
引きこもり

バーコード

ブログ内検索

P R