プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

Chisel入門1~今すぐVerilogを捨てるべき理由~

日本人だけが知らないScala製のChisel!とか、煽り文章とか考えてみたけど、タイトルだけでギブアップ。別にVerilogもVHDLも捨てなくて良いです。 今回はChiselというハードウェアを記述するScalaのライブラリ(埋め込み言語)をご紹介します。 なお、Scala…

WindowsでVerilatorをインストール(MSYS2)

VerilatorとはVerilogコードをシミュレーション可能なC++コードに変換するツールです。Windowsにインストールしてみましょう。www.veripool.org MSYS2上でインストール MSYSを起動して、以下をタイプ。32bit板を入れたい人はmingw-w64-i686-verilator。 pacm…

10進数データ→16bitのIntexHexFileに変換するPythonコード

10進数のファイルデータを16bitアドレスのIHXに変換するPythonコード。EXEでフリーのがあるけど、exeは困るので、Pythonで書いた。 今更16bitのIHXファイルなんて、誰が喜ぶんだか。 以下みたいに一行1つの10進数が並んでいるファイルを喰わせると、標準出力…

MSYSで標準出力をクリップボードにコピー

MSYS2で標準出力をクリップボードにコピーしたい。要するに「pbcopy」が使いたい。え?WSL?ギリギリまでWindows 7だよ。 で、「pacman -S pbcopy」ってやっても、「pacman -S xsel」ってやっても、なもんねぇと言われた。マジかー。 と思ってたんだけど、な…

Windowsでフォルダ内のファイルの改行コードを一括変換

ディレクトリ内のファイルがメモ帳で改行が表示されない形式(LFかCR)だからCR+LFのWindows形式に一括変換したい。しかし、sedはおろか、shell環境も、エディタもない。メモ帳程度。ハゲそう。 そんなときでもPowerShellさえあれば、一括変換出来るので、メ…

小学校では距離の単位は時速らしい

この時期になると必ずでてくる風物詩の小学校かけ算順序問題。4個ずつ5人に配るというのは4×5 = 20であり、5×4 = 20は間違いだと言うことだ。これは4[個]×5[人] = 20[個] 5[人]×4[個] = 20[人]となるからだそうだ。非常に面白いと思う。 ここで重要なのは、…

初心者がプログラムの設計を出来ない理由を考えてみた

初心者がプログラムを書く上で、何をすれば良いのか全く分からない、全部分からない。分からないことが分からない。 幸か不幸か、そういう感覚が私にはさっぱり分かりません。「何をすれば良いのか分からない」というところで詰まった記憶が特にありません。…

JavaScript嫌いのES6入門~環境構築編~

この記事を書いてる人のレベル 諸君 私はJavaScriptが嫌いだ 諸君 私はJavaScriptが嫌いだ 諸君 私はJavaScriptが大嫌いだ varが嫌いだ オーバーロードが無いのが嫌いだ prototypeが嫌いだ thisが嫌いだ 整数型がないのが嫌いだ 定数がないのが嫌いだ ファイ…

直前の英字文字列をIMEで再変換するAIUEO Eclipse Plugin作った

いよぅ!IME圏でEclipseを使っているみんな!nodamushiからのナイスクリームなプラグインをプレゼントだ! ………すいませんでした。現在深夜………というか明朝の5時、妙なテンションになりました。気がついたら徹夜だよ。 さて、前回の記事でAtokの入力済みのロ…

ATOKの直前の入力を日本語にするをポップアップさせない方法

ATOKの直前の入力を日本語にするっていう機能あんまり使わないけど、プログラミングで半角入力のまま日本語入力とか微妙に便利だったりします。 (とある理由で、私にはもう必要の無い機能になったのですが) でも、この機能を使っていると、ポップアップが…

JUnit4でJMockitを使いつつ@Theoryを使う方法

Javaのテストをするときに、JMockitやMockitoなどのモックライブラリを使うことがあると思います。 Mockitoはちょっとしたことをしたいときに便利なのですが、実デバイスのシミュレータなど、モックにかなり複雑な処理をさせたい場合は、JMockitの方が便利と…

Eclipseプラグイン開発: 拡張ポイントの定義

Eclipse プラグイン開発 目次 Eclipseプラグイン開発でほぼ確実に避けて通れないのが拡張ポイント。拡張ポイントはなんだかよく分からんけど、裏でEclipseが上手いこと処理して、何か素晴らしぃことをしてくれる仕組み………なんてふつくしぃ世界はなく、泥臭い…

Eclipseプラグイン開発: 非UIプラグインのテスト

Eclipse プラグイン開発 目次 Eclipse開発で1番………いや、2番ぐらい?いや、1番かな………?まぁ、それぐらい困るのがどうやってJUnitテストすれば良いのかわかりにくいこと。Eclipseのプラットフォーム(OSGi)が絡んでいなければ、個別にテストできるけど、他…

Eclipseプラグイン開発: 非同期実行

Eclipse プラグイン開発 目次 Eclipseでの非同期実行に関してはorg.eclipse.core.runtime.jobs.Jobというクラスを使います。 Jobの作成とタイプ Jobの作成は、Jobを継承して実行処理を書くか、Job.createSystemかJob.createメソッドで作成します。個人的には…

Eclipseプラグイン開発: バンドルリソース関連

Eclipse プラグイン開発 目次 IPath,IResourceなどで、Eclipseプラットフォームが管理するリソースにアクセスが出来ます。 しかし、プラグインがアクセスするのは何もユーザーが準備するファイルだけではありません。プラグイン自身が始めから持っているファ…

Eclipseプラグイン開発: リソースパス関連

Eclipse プラグイン開発 目次 Javaでファイル、ディレクトリを操作する場合、java.io.Fileやjava.nio.file.Pathを用いて表現します。 EclipseではIPathないし、IResourceを用いて表現するのですが、これもうほんと、使いにくい。 といっても、Eclipseでファ…

Eclipseプラグイン開発: 開発環境の準備

Eclipse プラグイン開発 目次 え?Eclipseプラグイン開発するつもりなんですか?まだ引き返せますよ?上司にVisual Studio Codeを提案した方がいいと思うよ? ちゃんと私は止めましたからね? 開発に必要なツール 根性と泣かない心 GoogleとGithub Eclipse I…

Eclipseプラグイン開発: 目次

はい。皆さん。Eclipse使ってますか?え?IntelliJ?デスヨネー そんな、もう寂れたEclipse。もうプラグイン作ろうなんて人はこの世にいないんじゃないのかと思うけど、何故か作る羽目になったので、そのドキュメントを残しておこうと思います。 これからEclipse…

スマホがパソコンに取って代わるべきではない理由

wpb.shueisha.co.jp 上記の記事を読んだからという訳ではないですが、私は常々スマホはパソコンに取って代わるべきではないと思っています。 取って代われ「ない」ではなくて、取って代わる「べきではない」です。技術的には近い将来、取って代わられるでし…

近年神社に人が多いなぁと思うこの頃

あけましておめでとうございます。今年の抱負は再来年から本気出すです(・ω・)元旦は皆さんはどのように過ごすんでしょうかね?私は家族+犬とともに地元の神社に行ってあまりの参拝客の多さに何もせずに引き返してきました。別に、髪も仏も信じていません…

JavaFX9からPlatformに追加されるAPIについて

この記事はJavaFX Advent Calender 2016の17日目の記事になります。 前日はid:skrbさんのSooner or Later - JavaFX in the Boxでした。 明日はid:aoe-tkさんです。 前回今年最後とか言ったな。あれは嘘だ。 はい、というわけで、なんとJavaFX Advent Calende…

JavaFX9が良い感じになってきた件

この記事はJavaFX Advent Calender 2016の9日目の@arachan@githubさんの記事になるそうです。 前日は@skht777さんのJavaFXで動くプロ生ちゃんデスクトップマスコットを作る - Qiitaでした。 明日は@Yucchi_jpさんのHitInfoを少しだけ…です。 はい、テンプレ…

Javaにlambda修飾子が欲しい

機能(関数)をクラス内に実装せずに、外部に委譲することがある。単純な例ではこんな感じ。 public class Action{ private Runnable action; public void setAction(Runnable action){this.action = action;} public void action(){ if(action != null) act…

jshellを自分のプログラムに組み込みたかった

はい。タイトルの通りです。しょーもないことしてました。 jshell JDK9から付属することになっているちまたで話題のJavaのREPL。 私は全く興味がなかったんですけど、ふと思ったんですよ。これ自分のプログラムに組み込めないかな? GUI系のプログラムは毎回…

Java9のVarHandleを使ってみた

注意:この記事はJava9が公開される前、アーリーアクセス版時代の話です。今?試してないけど、変わって無さそうでしたよ。 AtomicIntegerを使う必要が出てきた場面で、ふとVarHandleのことを思い出し、ちょっと試してみました。 試したコードは最後に載せて…

組み込み屋初心者さんのためのコーディング技術(C言語)

私が最近生存している業界は、アナログ最後の砦と言われているほどIT化の遅い世界ですが、ここ数年でジワリジワリとソフトの力が増してきている、という業界です。 あ、なお、お前のブログ読んでるとまるで働いているみたいだな!とか言われましたが、私はク…

EclipseCDTにC方言を追加するプラグインを作ろう その2

さて、前回BNFで拡張構文の規則を作りました。今回からは、その規則に対するJavaの処理を作っていきます。 構文解析の流れ Javaの処理を作る前に、CDTがどのような手順で構文を解析しているかについて、ザックリと解説します。 IScannerインターフェースを実…

EclipseCDTにC方言を追加するプラグインを作ろう その1

はい、誰の得になるのかわからない超ニッチシリーズが再び始まりました。 組み込みでは、GNU CやらVisual C Compilerなんかは使えず、独特なドマイナーコンパイラを使わざるを得ないことがあります。そのドマイナーコンパイラがC標準とかに準拠してくれてた…

Eclipse CDTにSDCCの方言を追加するプラグインを作った

このSDCCの方言に対応したEclipse CDTの言語パーサー作った

プログラマのためのVerilog入門

ここのところしばらくVerilogをやっていました。というわけで、まとめていこうと思います。 といっても、基本的な文法の話はしません。プログラミングをこれまで基本としてやってた人が、ハードウェア記述言語を触るときに気をつけなくてはならないことを中…