プログラムdeタマゴ

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

JavaのOptionalは現状失敗作

チマチマとは書いていたんですが、1年ぶりぐらいに真面目にJava書いています。 前からずっと思っていて、実際何度か口にしたことがあるんですが、やっぱ言いたい。 JavaのOptionalは失敗作 JavaのOptionalの何が悪いの? 言語機能じゃないから。完全にここに…

組み込みでラムダは使って良いけど、std::functionは駄目っぽい

例えば、組み込みでウォッチドックタイマー(WDT)を使う場面を想定しましょう。 void main() { クロック設定とか; WDT->Prescaler = プリスケーラの設定; WDT->Clear = クリア; WDT->Control = イネーブル; for(;;){ WDT->Clear = クリア; 何か処理; } } 無…

static_assertで比較した値を表示したい

「C++のconstexprの値がおかしいんだけど、static_assertで間違った値表示できないの?」と聞かれました。 できねぇんだな、これが C++11からstatic_assertはあるというのに、何故static_assert_eqやstatic_assert_ltとかがないのだろう。謎で仕方がないです…

C++の総合参照ってどう作るのが良いの?

スマポと相互参照 GCを持っていない以上、根本的にC++のスマポと循環参照は相性が悪いけど、私が問題にしたいのはソコではないです。 例えば、前回公開したSVDライブラリだと以下の様に、木構造の情報を構成します。 デバイスはペリフェラルを複数保持する …

C++のCMSIS5 SVD読み込みライブラリ作った

Tock Registerはよく分からないっすけど、SVDはXML Schemaがあるんで、自動的にバインドさせれば、案外簡単に解析できますよ。— nodamushi (@nodamushi) 2019年5月18日 ブーメランという言葉をご存じだろうか。そう、今は無き民主党のあれである。 C++ heade…

helm-swoop--editが動かない

久しぶりにHelm Swoop Editを使おうとしたら apply: No such action ‘helm-swoop--edit’ for this source って言うて動かない。どうやら、Helm本体の仕様が変わったらしく、1年放置されているhelm-swoopが仕様変更に対応してないのが問題っぽい。 github.com…

組み込み屋さんのC++学習は普通にやっちゃ駄目って話

周囲の組み込み屋さんを闇のC++プログラマに堕落させたいと目論む訳ですが、組み込み屋さんが普通のC++の教科書を片手にお勉強しちゃ駄目だよねって話。特に取り纏めもないメモ書きなんだけど。 私はもう流石にC++の入門書は手元にないのですが、例えば、私…

組み込み屋こそC++を使うべきなのです

やーやーやー。なんとワタクシ、遂に脱8bitしました!ワーワー、ドンドンパチパチ! さて、組み込みでもRustがアツかったり色々しますね。ただまぁ、Rustってサポートや車載対応等が無いので、政治的ごにょごにょでちょっと使いにくいですよね。 だから、今…

今更ながら、文字列を型にしたい

やーやーやー なんで私、最近こんな黒魔術に手を出してるんだろうね。最近、相当変態的な方向性でC++を悪用 利用しようと企ててるから、こんな羽目になってますよ。 と言うのもですね、こう、色々と面倒くさい諸問題を回避しようとしてたら、黒い方法を思い…

constexprでfloatのバイナリ値を取得したい

constexprで計算したfloatの値を、バイナリをそのままにuint32_tに変換して配列の一部に保存したいという場面に出くわしました。 templateの構造体で定義すれば良いようにも思えますが、floatが入る位置や数は未定で、やりにくいのです。 というわけで、floa…

Wordを捨ててTeXでドキュメントを自動生成しようじゃないか

社内のドキュメントがWordじゃないと駄目だなんて誰が決めた!TeXで自動生成だ!

簡単なHTMLの表をXMLに変換する方法

どーも。 Markdownとかorg-modeとかで表で書いてた情報と、同じ情報をXMLで書かなきゃいけなくなったという場面に遭遇しました。 これらはGitBucketで表示していたので、要するにHTMLの表→XMLへの変換をしたい。 かといって、今回の為だけにプログラム書くの…

もっともシンプルなmalloc,freeの実装と理解

C

mallocはOSからメモリを動的に確保する? mallocをするとOSからメモリを確保出来る。 mallocで確保したメモリはfreeでOSに返される。 一体どこの誰だ、こんな嘘の解説を世に出したのはぁ! こんな説明がまかり通っているから、初心者の脳内メモリイメージが…

コンピューターの起源:ジャカード織機の仕組み

富岡製糸場然り、工業の近代化において、衣服にまつわる技術は多く世に貢献してきた。 さて、私たちが今扱っているコンピュータも元を辿っていくと、実はジャカード織機という織機に辿り着く。 いわゆるパンチカードによるプログラミングの原型とも言えるべ…

ExcelやWordに判子の無駄はなくならない

「証明書が必要だって言うから、証明書取りに行くじゃん?」 「せやな?」 「で、その証明書を発行するのに判子が必要だっていう。」 「よくあるな。」 「しゃーないから、判子持ってって証明書もらうじゃん?」 「うん」 「で、その証明書持ってったら、ま…

Shell(Bash,Power Shell)でバージョンソート

x.y.z形式のバージョンをソート バージョンの形式は、「接頭辞x.y.z」とする。これのソートは割と簡単。(接頭辞はvとかver.とか) Shell(Bash) ※最初のVERSIONは、各行にversion情報がある情報を、パイプに流すコマンドなど VERSION | sed 's/^接頭辞//' | s…

SystemVerilog: ビット長拡張(符号拡張)の書き方

Mbitの信号をNbitに符号拡張したい、0fillしてビット長を変更したい場合、Verilogは書くのが面倒くさい。でも、SystemVerilogなら短く書けた。 結論 以下のコードで符号拡張、ビット長拡張が出来る。S,Dはパラメータでも、直値(数値)でも良い。 logic [S-1…

GitBucketにorg-mode追加するPlugin作った

事の発端はこのたけぞうさんのツイートとブログ記事。 ブログ書きました。/ プロジェクト管理に便利なGitBucketプラグイン - たけぞう瀕死ブログ https://t.co/VynqpxXmLa— Naoki Takezoe (@takezoen) 2018年10月14日 このツイートに反応して、Excelプラグイ…

Eclipse プラグイン開発:TM4Eによるエディタ開発

Eclipse プラグイン開発 目次 本記事ではEclipse Photon以降のEclipseで、TM4Eを使った場合のシンタックスハイライト、インデントの実装について解説する。 TM4EはEclipse Photonで追加されたRustなどにも使われている。 本記事ではContents Assist(補完機…

Eclipse プラグイン開発:拡張ポイントの実装

Eclipse プラグイン開発 目次 さて、前回に引き続き、Eclipse Extension Point(拡張ポイント)の実装を行っていこう。 ………え?前回が1年半前? さぁて、何のことかな? あ、今回から環境がJava10、Eclipse Photonになっております。 拡張ポイントを取得する …

C#ぼっち勉強会 リスト

C#

C#のListをJavaと比較しつつ。Immutableについても調べてみたけど、C#にはSubListは何故ないんだ?

C#ぼっち勉強会 配列

C#

Java屋によるC#の配列操作をやってみたけど、Span最強、多次元配列いらなくね?

C++でタスクトレイに格納するアプリケーションを作る

コンソールアプリを作ってるんだけど、ちょっとした処理をタスクトレイに格納したいときに便利なC++ライブラリの紹介

Utubntu 18.04にTestLinkを入れてみた

外のサービスはあまり使わせてくれないのに、仮想サーバーはポンポンくれるので、サーバーにTestLinkを入れてみた。お金ないの。 で、自宅でもTestLink試してみるって事でVirtual Boxに入れてみた。その手順。 Virtual BoxにUbuntu 18.04をインストール いつ…

AWK超簡単再入門

「この合成ログファイルから使用セルの数とサイズ求めるプログラム作れ」 「んー、各行にインスタンスパスとセル名とサイズとかがあるんすか。こんなん、プログラムじゃなくって、awkでいいじゃん」 「何でも良いから」 「あいよ」 と、おもむろに端末を立ち…

Javaプログラマが今日から始めるC#ぼっち勉強会 その1

C#

話は聞いたぞ、人類 Javaは滅亡する! な、なんだってーーーー というわけで、Javaヤバイ ボラクル マジオニ と言いつつ既に数ヶ月。いい加減デブい重い腰を上げ、Javaから別言語への移行を本気で検討する必要があるでしょう。 私の場合、殆どデスクトップア…

Pythonが好かん

いや、もうね、昔からずっと思ってるんだけどね、言いたかった。Pythonが好かん。 Pythonのここがいい Pythonが好かんとか言いながら、相変わらずPython使ってるのには、やはりPythonにはPythonのメリットがあるからだ。 それは1にライブラリの多さ、2に手軽…

Razer Tartarus V2をRazer synapse3無しで動かす

昨日不満をぶちまけたRazer Tartarus V2だが、悪いのはソフトであって、ハードではない。 ソフトを憎み、ハードを憎まず。 ハードは物がなければどうにもならないが、ソフトなら何とかならないこともないはずだ。 Razer Tartarus V2 メカメンブレン 左手用キ…

Razer Tartarus V2 ハードは完璧、ソフトは酷すぎる

>追記:Razer Tartarus V2をRazer synapse3無しで動かす Razer Tartarus V2という左手用キーボードを購入したので、そのレビューというか、愚痴。 最近、Logicool アドバンス ゲームボードG13rの調子が悪く、新しい左手用キーボードが必要になりました。 で…

nio.Pathの小さなユーティリティライブラリを公開してみた

Google guava………便利だよね。Appache Common………便利だよね。 ………まぁ、デカいとは言わないけど、ちりも積もればなんとやらだよね? ………でかすぎね? そう、私は言いたいのだ。世の便利なJarファイルはデカい。デカすぎる。 ちょっとした内製ツールをウッカリ…