プログラミング

プログラミング比較文化論試論 進化の方向性にみるC++とObjective-Cの違い

プログラミングの世界では、サピア=ウォーフの仮説がささやかれるほど、プログラミング言語の違いがプログラミングのスタイルや設計に影響を及ぼす現象が見られる。本稿ではC++とObjective-Cを取り上げ、言語の進化の方向性がプログラムの実装に及ぼした影…

親父の副音声 バージョン管理システムへのコミット編

(以下、id:eel3:20160105:1451997199 の副音声を大音量でお楽しみください) (論理的に一塊である)小さな作業ごとにコミットしろ コミットログを残せ コメントで残すな、コミットログで残せ コメントアウトして残すな、履歴間の差分を残せ 不要なファイル…

親父の小言 バージョン管理システムへのコミット編

(以下、バージョン管理システムをVCSと書いている。副音声はこちら) (論理的に一塊である)小さな作業ごとにコミットしろ コミットログを残せ コメントで残すな、コミットログで残せ コメントアウトして残すな、履歴間の差分を残せ 不要なファイルは消せ …

俺のhcaslがこんなに遅いわけがない

id:eel3:20151102:1446476928 のhcasl、TDM-GCC 4.8.1でビルドしたC言語/C++版バイナリを手元のCygwin(64bit)で実行すると激遅なの。 $ make -f Makefile_mingw g++ -finput-charset=cp932 -Wall -std=c++11 -pedantic hcasl.cpp -o hcasl $ time perl -e…

実際のところ地方在住のプログラマ的に大学図書館はどの程度役に立つか?

資料力は書店・ネット以上!理系ビジネスマンにオススメしたい図書館6選 | リクナビNEXTジャーナル この手の記事を目にする度に非常に悲しくなることに、私は地方在住者なのである。そもそも、関東圏でも関西圏でもなく、名古屋とか仙台とか松江でもない。県…

C Puzzles(C言語パズル集)の個人的解答

C Puzzlesの日本語訳があったので、解いてみた。 原文 C PUZZLES, Some interesting C problems 日本語訳 C言語パズル集:Cにまつわる興味深い問題あれこれ | POSTD 夏休み中に解いたので、一応「夏休みの課題」になるのかな。とりあえず、所詮は自称Cプログ…

Visual Studio付属のC#/Visual Basicの言語仕様書のバージョン一覧

Visual Studio(のExpress以外のエディション)にC#やVisual Basicの言語仕様書が付いているのはわりと知られた話だと思うのだが、具体的にどのバージョンにどんなものが付いているのか分からなかったので、現物をみて調べてみた。以下、Visual Studio Profe…

設定ファイルとして使うためのLua組み込みあれこれ

Cで書いたアプリケーションにLuaを組み込む機会があったので、メモを残しておく。具体的な組み込み方(LuaのC APIの呼び方など)はネットに出回っているし、本も何冊か出版されているので、それ以外について書き記そうと思う。タイトル名の通り、設定ファイ…

rand(3)の使い方(C/C++での擬似乱数取得方法)

どうも一部で微妙に盛り上がったらしい。 xcode - c言語での乱数生成 - スタック・オーバーフロー Mac、iOSで、rand()関数の疑似乱数アルゴリズムがヘン! - Qiita なので書いておく。 rand(3)の特徴 CやC++の標準ライブラリにはrand(3)という擬似乱数を生成…

続 C++、D言語、Go言語、Rustのハローワールドのバイナリサイズ

id:eel3:20150622:1434981139 の続きというかやり直しというか。使用したソースファイルの内容や、ビルド時のコマンドなどについては、前回のエントリを参照してほしい。 前回の落穂拾い (1):Go言語で動的リンク Go言語は、本家プロジェクトのコンパイラで…

C++、D言語、Go言語、Rustのハローワールドのバイナリサイズ

タイトルに若干偽りあり。C言語・Common Lisp(ECLとMKCL)・OCamlも含んでいる。一応、組み込みっぽい業界にいる人として、C言語の次のシステム・プログラミング向けの言語は興味の対象だ。もちろん、今すぐ急に別の言語に移行するような事態は、可能性とし…

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

2015/06/14現在のステータス。id:eel3:20140614:1402681256 から1年経て、こうなっている。なおCSS、HTML、XMLは除外*1。 よく使っている AWK (Gawk) 単純なテキストレコードの処理にはAWKで十分。自作ツールをAWKやGawk単体で実装することは皆無なものの、…

不死身のqDebug

Qtに用意されているデバッグ表示用のマクロ qDebug。こいつはデフォルトではリリースビルドでもデバッグ表示の処理を行う。無効化したいなら、別途 QT_NO_DEBUG_OUTPUT を定義する必要がある。ここまでは、まあ、よくある話だろう。今回つまづいたのは: qDe…

ごく普通なGNU Make活用例

2012年半ばぐらいから拡張機能ありでGNU Makeを使用するようになったが、makeの基本的なところを通り越したあたりの話題――実践の場にて各機能をどんな風に使用するかについての情報がなかなか見つからない。特に拡張機能の話題が少ない。仕方なくNetBSD Make…

業務システムをハックする従業員たち

業務システムは大抵従業員にハックされる。ここでの「ハック」は、いわゆる「ライフハック」的な意味でのハックだ。SIなどで業務システムを設計・開発している人や、情報システム部などで自社の業務システムに携わっている人からすれば、ごくごく当たり前の…

100から1まで表示するコードすら書けないプログラマ:約14%

愚痴(泣き言)とコーディング能力の相関関係を調べたデータがあるのだが、それによれば、愚痴の時間が長かった人ほど、ごく簡単な問題を解くのにかかった時間が長かったそうだ。「簡単な問題」の内容は「100から1まで表示する」という、FizzBuzzよりも遥か…

次世代型staticおじさん(仮)

最近気づいたのだが、自分はある意味において、軽度のstaticおじさんのようだ。 クラスを書く。インスタンス変数やインスタンスメソッドを書く。 privateなメソッドとして独立させたい処理が出てきたが、特にインスタンス変数を参照する必要がないので、クラ…

Gotoサンの話。結局のところ「goto禁止」はどういう話だったのか?

C言語で書かれた大量のソースファイルをサンプルとして、現実でのgoto文の利用方法について調査した研究の結果が発表されたようだ。 C言語の開発者によるgoto文の使い方を対象とした実証研究の結果、「goto文は無害だと考えられる」 | スラド Empirical Stud…

C言語のバグ回避をするための習慣:私の場合

こんな記事がアップされていた。 C言語のバグ回避をするための習慣 - Qiita 「へぇ」「ふーん」という感じに眺めていた訳だが。自称職業Cプログラマ*1の自分の場合はどうだろうか? 実は、保守的ながらも意外とツールに頼っている。機械に任せられるところは…

低水準なアルゴリズムはプログラミング言語と不可分、高水準なアルゴリズムはコードへの具体化が必要

1年8ヶ月前の記事だが……。ゼロからプログラミングを学ぶ上で言語選択より大切なこと:It’s Party Time!:エンジニアライフ上記記事にて、筆者の経験より、 つまり今回、何が言いたいのかといいますと、プログラミングをゼロから勉強するのであれば、「どの言…

プログラマが守るべきたった一つの原則

原則:理解できないコードを書いてはならない。 この原則から導き出される、レベル別アドバイス 超初級 コードを書くとき、自分が何を書いているか理解しているか? 曖昧な理解のまま「とりあえず、それっぽく動いたからOK」と完結していないか? 自分が書い…

恐怖のIoT時代

個人的にIoTに恐怖を覚えている。開発者としても、ユーザとしても。なぜならば、ネットワークに繋がることによって、作る側も使う側も痛みを伴う変化が求められるのに、よりによって決定権のあるお偉いさんがたに「痛み」に気づいている素振りがみえないから…

商用目的で最新のMicrosoft C/C++コンパイラを無償利用できなくなった

Visual Studio Communityの登場により、次のバージョンよりVisual Studio Expressはリリースされなくなった。この影響で、今後は最新のMicrosoft C/C++コンパイラを商用目的で無条件に無償利用できなくなった。うっかりものなので、昨日になってようやく気づ…

Qt CreatorのデザインモードでQMLのDialogの描画がおかしい?

なんか変なのだけど、フォーラムに投稿するのに登録が必要で、躊躇している。Twitterもやってないので #qtjp につぶやくこともできないし、どうしよう。Mac OS X 10.9.5にて、以下の環境で現象を確認。 Xcode 5.1.1 + Qt 5.3.2 Desktop clang 64bit (Qt Crea…

BCCode 9fの原因に迫る――Windowsシャットダウン失敗

ここ10ヶ月ぐらいだろうか、偶にWindows 7のシャットダウンに失敗することがある。次回起動時に「Windows は予期しないシャットダウンから回復しました」というダイアログが表示される。「問題の詳細の表示」で詳細情報を見てみると、「問題イベント名 BlueS…

Visual Studio Community 2013のライセンス条項にみる利用可能ユーザについて

id:eel3:20141114:1415964810 の続き。Microsoft のVisual Studio Community 2013の日本語サイトのFAQにも利用可能ユーザに翻訳が載ったのだが: 下に示すものは要約版になります。詳しくは製品に同梱されているライセンス使用許諾契約書および Visual Studi…

LuaをVisual C++でビルドするMakefileを書いた

Visual Studioで開発しているアプリにLuaを組み込みたかったのだが、LuaBinariesのDLLはMinGWでビルドした代物で案の定使えなかったので、自前でビルドすることを決意した。という訳でLuaのライブラリ部分(静的ライブラリとDLL)のみをNMAKE + Visual C++…

Visual Studio Community 2013を使ってもよいシチュエーション再考

.NET CoreのOSS化+クロスプラットフォーム化でASP.NETがLinuxやMacに殴りこみをかけるのみならず、今まで(Express Edition)以上にEclipseやNetBeansその他IDEに喧嘩を売る模様ですが。http://posaune.hatenablog.com/entry/2014/11/13/090602 http://www.…

間違いだらけのNoSQL入門

NoSQLは、乱暴に言えば「何でもかんでもRDBMS使うのは止めようぜ」運動のことである。「Yes SQL!」キャンペーンに反発して地下に潜った反体制組織のことではない。データベースのモデルとして階層型データモデルやネットワーク型データモデルを押しのけて一…

ルーチン名(関数/メソッド名)類型学入門

よいルーチン名の条件には色々あって、知りたい人はその手の本(私の手元にも4冊ある)の該当する章を読んでください――なのだが、本稿では手続き型言語におけるルーチン名の類型に焦点を当ててみたい。比較的「マシ」だと見なされるルーチン名を観察すると、…