プログラミング

WindowsではCtrl-cでPythonのスクリプトを即時中断できないことがある

CPythonの既知の不具合に遭遇した。処理系本体ではなく、標準ライブラリの問題のようだ。界隈では有名な話かもしれないが、忘れないように個人的なメモを残しておく。具体的には、標準ライブラリのsocketを使用して自前でUDPパケットを受信する、以下のよう…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.14

2022-06-19現在のステータス。 https://eel3.hatenablog.com/entry/2021/06/20/211327 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…

プログラマはコミュ障じゃないよ

時にコミュ障とプログラマがセットで語られることがあるのだが、そもそもプログラマに占めるコミュ障の割合は他の職業と比較して有意に大きいのだろうか、という疑問がある。世間一般でいう「コミュニケーション能力」が具体的にどのような内容であるのか、…

Better C的なC++の使い方

C++をあまり深入りせずにBetter Cとして使うとこうなる。 事前準備:文法面の細かな差異を押さえる 細かいところにC言語とC++の非互換な部分があるので、それを押さえておく。例えば: 標準ライブラリのヘッダファイル名 例えばassert.hではなくcassert。ま…

汝テストアプリと侮るなかれ

信頼性のあるテストアプリやテストデータを用意できないと、十中八九モジュールは爆発する――私の職業プログラマとしての経歴の大半は、モジュールの開発に費やされてきたのだが、その中で悟ったことだ。振り返ると、何らかのアプリケーションなりシステムな…

Re: オブジェクト指向はすでに粒度が時代にあっていない

この記事はオブジェクト指向はすでに粒度が時代にあっていない - きしだのHatenaの個人的補足である……本当は書くつもりはなかったのだけど、ちょっと気になったので。あの記事の趣旨なのだが、乱暴に言うと: 「OOA + OOD + OOP」の勝利の方程式でV10達成必…

Re: シェルスクリプトを書くのをやめる

この記事はシェルスクリプトを書くのをやめる - blog.8-p.infoの個人的感想である。なお元の記事を書いた人と私は全くの赤の他人であり、何の接点もない。つまりこの記事は単なる外野のたわ言である旨をご承知いただきたく。 Re: シェルは悪いプログラミング…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.13

2021-06-20現在のステータス。 https://eel3.hatenablog.com/entry/2020/06/30/201935 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…

コードリーディング対象としての標準ライブラリのすゝめ

年頭において、初心を忘れないように書いておく。新しいプログラミング言語の使い方を学ぶ時、個人的に、公式のチュートリアル/コーディングスタイル/リファレンスを参照するのと並行して、当該言語の標準ライブラリのソースコードを読むことが多い。全く…

シェルスクリプトを生成するシェルスクリプト

超小規模な社内サーバの管理に関わることが多いためか、管理用に「スクリプトを生成するスクリプト」を作成することがある。「スクリプトを生成する」と書くと、なにかしら大層なことをやっているように聞こえるが、何のことはない、単に可変のパラメータを…

2020年Objective-Cの旅

まだObjective-Cで消耗してるけど、なんか質問ある?いや、別にSwiftが嫌いな訳じゃない。「Xcode + Swift」とか「Android Studio + Kotlin」みたいな「開発環境込みでの『モダンな静的型付け言語』」の便利さは体験済みな訳で、私だって今からiOS/macOSアプ…

21世紀に新たにMakefileを書く意味はあるのか?

物心ついた頃は昭和で、十代まるまる20世紀だった地方民にとって、21世紀は「超音速原子力旅客機が飛び、潜水可能な豪華客船が航行し、海底の透明チューブの中を列車が走り、マイカーは自動運転でホバーで空だって飛べるさ」な時代になるはずだったのだが、…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.12

2020-06-30現在のステータス。 https://eel3.hatenablog.com/entry/2019/06/30/000000 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる…

「IT業界の『奥が深い症候群』」について:バッドノウハウと「奥が深い症候群」再考

IT業界には「奥が深い症候群」って言葉があってな使いにくいシステムを使いこなすことに喜びを感じて、使いこなせない人間を見ると罵倒するそういう人が幅を利かせていつまでも改善がされないそんな症状だ https://anond.hatelabo.jp/20200603093957 ソフト…

コードに愛を注ぐ

愛のないコードは好きになれない。機能仕様は満たしているものの、中身はネット上のコードのコピペで、複数のコピペ元のコーディングスタイルが絡み合った、使われない変数とステートメントがあちこちに残ったままのスクリプト。正常系での見た目の振る舞い…

コンソールアプリを自作する時のお約束

長らく――というほどではないが、そこそこの期間をコンソールアプリの自作に費やしてきたので、コツのようなものを晒してみる。 対話型を避け、他のツールとの連携を重視する 今、この時代にコンソールアプリを新たに作成する場合、ユースケースの大半は「自…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.11

2019-06-30現在のステータス。id:eel3:20180630:1530319168 から1年経て、こうなっている。なおCSS、HTML、XMLはひとまず除外する。人工言語ではあるけれども「プログラミング言語」という括りに含められるか否かは議論が分かれる気がする。*1 よく使ってい…

もうひとつのTDD

5年前の今頃は、なにやらTDDで熱かったらしい。 2014-04-24 【翻訳】TDD is Fun - diskogs's diary TDDという名の幻想... - Qiita TDDには全く何も取り組んでいない身なのだが、しかし傍から見聞きしているだけでも、TDDには参考となる面が色々とある。ただ…

「C言語書けます」のボーダーラインはどこか?

「C言語を覚えると組込み系の採用に有利」みたいな就職・転職向けの文言を見る度に、世の中そんなに甘くないと言いたくなるのです。多分、組込み開発に限らず、例えばLinuxコンソールアプリ等でC言語を散々使った人も同意するのではないかと思うのだけど、C…

「組込み開発=C言語」というイメージはどこまで正しいか?

組込み開発でのプログラミング言語というとC言語(時にアセンブラ)が真っ先に挙げられる気がするのだが、実務的にどこまで正しいのか書いておこうと思う。結論から言うと、組込みプログラマの立場としては「組込みプログラミング=C言語」は概ね正しいのだ…

ジュニアは採用できてもノービスは採用できない。ベテランになれないジュニアは淘汰される。

「ジュニアを採用しない連中はシニアに値しない - portal shit!」を受けて。そもそも「ジュニア」がどの程度の人を指し示すか、という話はあるが、アメリカの話っぽいので、おそらく最低でもCS(コンピュータ・サイエンス)の学士は持っているだろうし、修士…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) Ver.10

2018-06-30現在のステータス。id:eel3:20170708:1499445416 から1年経て、こうなっている。なおCSS、HTML、XMLは除外する。人工言語ではあるけれども「プログラミング言語」という括りからは外れると思う。 よく使っている AWK (Gawk) 単純なテキストレコー…

コメントを書かないためには文化が肝要(Re: コメントのいらないプログラムの書き方)

そろそろ言及しておこうかな。これって「コメントのいらないプログラムの書き方」ではなくて「コメントを減らす技法 初級」だよね、それも割と暗黙の前提が多めの。 コメントのいらないプログラムの書き方|NZ MoyaSystem 以前 id:eel3:20160425:1461594142 …

エンジニアにとって「コミュニケーション能力」とは何を意味するのか?

世の企業も求むる「コミュニケーション能力を持つ社員」といふものを、エンヂニアリングの現場でも求めてみむとてするなり。「コミュニケーション能力」という言葉は実に曖昧で、10人いれば5〜6パターンぐらいは異なる解釈が出てきそうな代物だ。この文章で…

実はオブジェクト指向ってしっくりこないんです?

――いや、自己分析するに、「オブジェクト指向」ではなく「特定のオブジェクト指向プログラミング言語」がしっくりこないことがあるんだな、これが。具体的には、触ったことのある言語ではJavaとC#だ。この2つの「しっくりこなさ」具合からすれば、C++の方が…

仕様書・設計書の必要論と不要論の不毛な議論を避けるためのヒント

仕様書や設計書の「要る/要らない」で議論になることがあるが、往々にして不毛なのでここに記しておく。実のところ「仕様書や設計書は必要だ」という意見も「仕様書や設計書なんて不要だ」という意見も、根本的には同じ問題を出発点としている。それは「必…

そろそろ「美しいコード」って言うの止めようぜ

――と題名の通りの感想を抱いたのだが、「美しいコード」の代替となる上手い言い方が思い浮かばないのである。 コードが美しくないために起きる問題を考える(前編)―重複のあるコード/誤読問題 (1/2):EnterpriseZine(エンタープライズジン) いや、記事の…

ALSAでMIDIをループバックさせたい――ただしALSA RawMidi APIで!

ALSA C libraryのAPIを使用してMIDIの入出力を行うLinuxアプリがあるのだが、出力したMIDIをループバックさせて入力として読み込みたい――という話である。macOSなら標準のIACドライバを、Windowsならサードパーティの仮想MIDIケーブル*1を使うパターンである…

低速で無駄のある小規模ツール開発を実現する方法

「低速で無駄のある」はツール本体なのか開発手法なのか、はたまた保守フェーズか。 例1:外部コマンドを何度も実行するシェルスクリプト/バッチファイルとして実装する シェルスクリプトもバッチファイルも個人的に愛憎相半ばする気持ちを抱いてしまう言語…

分野に関係なく『組込みソフトウェア開発のための構造化プログラミング』を読んでおかなきゃあかん

『組込みソフトウェア開発のための構造化プログラミング』を軽く読んだのだが、この本は組込み系以外の分野でコードを書いている人も読むべきだ。組込みソフトウェア開発のための構造化プログラミング (組込みエンジニア教科書)作者: SESSAME WG2出版社/メー…