2020年Objective-Cの旅

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

EdgeRouter Xに組み込む自作ツールを作るなら、どの言語を使うか?

故あってEdgeRouter Xを触っている。中身のEdgeOSがVyattaベースで、Vyattaの大本はDebianで、さらにコンソールがvbashで割と普通のシェル環境っぽく使えるので*1、自作のコンソールアプリを組み込めそうだと思ったのだ。というかsshログインのホームディレ…

Dockerのコンテナ停止時にバックグラウンド・プロセスとして動作しているデーモンを適切に終了させたい

続き。前回、下記のような書き方だとコンテナを停止する際に問題を引き起こす可能性がある、と書いた。 FROM amazonlinux:latest # 色々と準備(省略) # コンテナ起動時に秘伝のデーモン magic-daemon を起動する。 # その後、コンテナを終了させないように…

Dockerのコンテナ起動時にバックグラウンド・プロセスとして動作するデーモンを起動させたい

Dockerのコンテナを起動する際に何らかのデーモンを起動させたい、という要求は結構多い(というか実務的にはむしろそれが主目的ではないか)と思うのだが、「何らかのデーモン」がバックグラウンド・プロセスとして動作する代物だと、若干ハードルが上がる…

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

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

『プログラミング言語C』とは何であったか?

言語ではなく本の話である。ついでに言えば第2版の方。最近、新人向けのC言語の本として『プログラミング言語C 第2版』を推そうとする声にストップをかけたのだが、その辺を含めて、この本についての2020年時点の個人的所感を書き残しておこうと思う。プログ…

今までどのくらいプログラミング言語を触ってきたか(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 ソフト…

コードに愛を注ぐ

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

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

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

シェルスクリプトでJavaScript文字列リテラル用のエスケープ

「JavaScript文字列リテラル用のエスケープ」という表現は微妙だけど、要はサーバサイドでJavaScriptを動的生成する時に、文字列リテラルとして任意のパラメータを出力したい場合のエスケープ処理。先日(というか先月)書いたHTMLエスケープ用のシェルスク…

シェルスクリプトでHTMLエスケープ

PHPやPerlでのHTMLエスケープの話はよく目にするけど、そういえばシェルスクリプトでは見かけないなあ、なんて思った次第でございます。動的Webコンテンツの先駆けであるCGIの普及期でさえ言語としてPerlが大々的に使われていたわけで、そもそもサーバサイド…

犯人はWindows Update……か?

ここまであからさまに「Windows Updateが原因でPCガー」的な場面に遭遇したのは初めてである。5~6年ほど前に購入したノートPC Dell Vostro 2521が2台転がっていて、実験用に使おうとしたのだ。2台ともWindows 7からのアップグレードでWindows 10化していて…

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

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

コマンドプロンプトからUSB記憶装置を取り外そうとして失敗し続けている記録

WindowsでUSBメモリなどを取り外す際にタスクトレイから行う「ハードウェアの安全な取り外し」の操作をコマンドプロンプトから実現しようとして、依然として失敗し続けている。備忘録として、時系列順に記録を残しておこうと思う。何か進展があったら追記す…

書籍購入:『Kotlinプログラミング』

あとで書く。Kotlinプログラミング作者: Josh Skeen,David Greenhalgh,吉川邦夫出版社/メーカー: 翔泳社発売日: 2019/02/14メディア: 単行本(ソフトカバー)この商品を含むブログを見る

もうひとつのTDD

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

argparseで引数を1つとるオプションをいい感じで扱えるようにしたい

ここ2~3年ほどPythonで小さなコマンドライン・ツールを書く機会が何度かあったのだが、argparseでコマンドライン引数を解析する時、引数を1つだけとるオプションの扱いに難儀している。ArgumentParser.add_argument()のキーワード引数nargsに1を設定すれば…

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

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

書籍購入:『基本からしっかり身につくAndroidアプリ開発入門 Android Studio 3対応』

軽く中身を見た。基本からしっかり身につくAndroidアプリ開発入門 Android Studio 3対応 (「黒帯エンジニア」シリーズ)作者: 森洋之出版社/メーカー: SBクリエイティブ発売日: 2018/05/22メディア: 単行本この商品を含むブログ (1件) を見る差し詰め本書は「…

書籍購入:『Kotlinイン・アクション』

軽く中身を見た。Kotlinイン・アクション作者: Dmitry Jemerov,Svetlana Isakova,長澤太郎,藤原聖,山本純平,yy_yank出版社/メーカー: マイナビ出版発売日: 2017/10/31メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る本書は、Javaでの開…

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

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

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

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

umask(1)は引き算しない、多分。

umask(1)の仕様を調べようとしたのである。で、ググって見つかった「デフォルトのファイルアクセス権 (umask) (Solaris のシステム管理 (基本編))」を見てちょっと驚いた。 設定する umask の値は、与えたいアクセス権の値を 666 (ファイルの場合) または 77…

Raspberry Pi用にQtをクロスコンパイルする――ただしQtはX11上で動かしたい

Raspberry Pi用にQtをクロスコンパイルする方法を探していたのだが、どの情報も非X11のコンソール環境にてEGLFS経由で直接OpenGL ESで画面描画する構成のQtのバイナリを作るものばかりだった。しかし私は、諸事情よりX11のデスクトップ上でアプリを実行でき…

クライアントWindows上で仮想化ソフトウェアでゲストOSを飼うためのハードウェア構成

ここ4年ほどCore i5-3340Mを搭載したノートPC上でVirtualBoxを使ってきたので、その辺の知見を元に、VirtualBoxなどのx86仮想化ソフトウェアを使ってゲストOSを飼う際に必要な「ホスト環境のハードウェア構成」についてまとめておく。WindowsをホストOSとし…

今までどのくらいプログラミング言語を触ってきたか(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++の方が…