問題タブ [history]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
history - ソフトウェアの歴史における極めて重要な次善の決定
ソフトウェア開発の歴史を通じて、ある人 (通常は知られていない、おそらく無意識のうちに) が、当時は取るに足らない短期的な決定であり、プログラミングの世界を変えたと思われることを行うことがあります。このような性質の出来事が頭に浮かび、痛みを和らげるための業界の対応はどのようなものでしたか?
図 (私が思いつく最大のもの): IBM がオリジナルの PC を設計し、製造コストを数ドル節約することを決めたとき、 16 ビットのオプション (8086、680n など) では、アドレス オフセットの計算に 20 年かかることになります。
(それに応じて、UNIX プラットフォーム開発の多くのキャリアが開始されました。)
スケールの反対側のどこかに、誰かがキーボードの左端に Ctrl キーの代わりにモンスターの Shift Lock キーを配置するという決定を下したことがあります。
vim - Vimで置換を使用してコマンドを繰り返す方法は?
Unix では、^
を使用すると、新しいテキストに置き換えられたテキストを使用してコマンドを繰り返すことができます。例えば:
Vimに相当するものはありますか? コマンドラインで細かいことを何度も何度も編集していることに気付くことがよくあります。
vim - Vim のコマンド履歴に相当する Emacs (Meta-x コマンドで入力されたもの)
質問: Mx を介して呼び出された入力コマンドについて、Emacs でコマンドを呼び出して再実行する方法を理解するのに苦労しています。コマンド履歴は、Vim とはかなり異なる働きをします。コマンドを「ミニバッファ」ではなくバッファに入れます。
Vim のアプローチに似たものを取得する方法はありますか (つまり、以前に入力したコマンドを上下矢印キーを使用してスクロールできます)。
editor - テキスト挿入の「キャレット」という用語はどのように進化しましたか?
テキスト挿入ポイントの「キャレット」という用語はどこから来たのですか? 私はそれをグーグルで検索しようとしましたが、これは見つけるのが難しいものです (私の歴史的なコンピューターの参考書でさえ、ここでは役に立たないようです)。
リテラル キャレット (つまり ^) をテキスト挿入マークとして使用していた古風な Wang/メインフレーム アプリをいくつか覚えていることはほぼ間違いありませんが、一生忘れることはできませんでした。
ええ、直接グーグルでキャレットの意味を見つけることができることは知っていますが、ここで本当の語源を探しています-つまり、テキスト挿入として実際のライブキャレットシンボルを備えたテキストエディターシステムを使用した人点。この種のものは私にとって興味深いものです - マウスポインタに対する「バグ」という用語の使用の起源のように.
repository - 歴史的に興味深いソフトウェアはどこで見つけたり寄贈したりできますか?
コンピュータ サイエンスとプログラミングは比較的歴史の浅い分野ですが、急速に発展しています。既存の歴史的なソフトウェアのリポジトリ、または歴史的に関心のあるソフトウェアを提出できる場所はありますか?
私はこれを質問し、標準の SO パラダイムを使用して回答しました。これは、コミュニティにとって一般的な関心事であると考えたからです。
c++ - c/c++ 浮動小数点型の名前が変な名前なのはなぜですか?
C++ には、float、double、long double の 3 つの浮動小数点型があります。コードで浮動小数点を使用することはめったにありませんが、使用すると、次のような無害な行で常に警告が表示されます
問題は、リテラル 4.0 が float ではなく double であることです。これはイライラします。
整数型には、short int、int、long int がありますが、これは非常に簡単です。なぜCにはショートフロート、フロート、ロングフロートがないのですか? では、「ダブル」は一体どこから来たのでしょうか。
編集:浮動小数点型間の関係は整数の関係に似ているようです。double は少なくとも float と同じ大きさでなければならず、long double は少なくとも double と同じ大きさでなければなりません。精度/範囲のその他の保証は行われません。
javascript - iFrame付きの戻るボタン
リンクのあるコンテンツを表示するためにiframeを使用しています。ユーザーがiFrameをクリックして「戻る」を押すと、iFrameに戻ります。この動作は問題ありません。ただし、iFrameの最初のページに戻り、もう一度「戻る」と押すと、ウィンドウ全体が前のページに戻ります。これは望ましくありません。
この動作を防ぐために、iFrame内に偽の「戻る」ボタンを配置しました。(ほとんどの場合、これは悪いUIです。この場合、うまく機能します)。この偽の戻るボタンは、前のページがiFrameのページであり、ページ全体ではない場合にのみ戻るようにしたいと思います。 彼らがiFrameの偽の戻るボタンを押すと、それはそのiFrameを戻すだけで、他には何も動かさないはずです。 これを行う方法はありますか?iFrameは独自の履歴オブジェクトを取得しますか?
有益かもしれない何か:iFrameのドメインとメインウィンドウは別個のものであると見なすことができます。したがって、「グローバル」履歴オブジェクトを読み取ることができる場合は、ドメインが私のものであるかどうかを確認することで、前のページが私のものであるかどうかを確認できます。ドメインが私のものでない場合、偽の戻るボタンは非表示になるか、何もしません。
非常に感謝し、幸せな休日を助けてください!
xml - XML 1.0 で「制御」文字が違法なのはなぜですか?
U+0007
('bell') やU+001B
('escape' ) など、XML 1.0 で合法的にエンコードできないさまざまな文字があります。興味深いもののほとんどは、非空白の「制御」文字です。
(たとえば)この質問や他の質問から、問題はXML仕様であることは明らかですが、XML仕様でこれらの文字が禁止されている理由を誰かが教えてくれますか?

asやeach など、エスケープでエンコードする必要があったようですが、エスケープする必要が
あるのではなく、文字が禁止されているという実際的な理由があるのでしょうか?
回答者は、伝送制御文字を回避する動機があることを示唆していますが、Unicode には他の多くの制御のような文字が含まれています ( U+200C
「ゼロ幅の非ジョイナー」を検討してください)。この動作に正当な理由がないことは認識していますが、それでも理解を深めたいと考えています。
これらの文字値が他のエンコーディングデータ形式で表示されると、これをエンコードする必要がある新しい XML ドキュメントを「ダブル エスケープ」することになるため、特にイライラします。
python - Python には中心的なフレームワークがないのに、なぜ Ruby には Rails があるのですか?
これは歴史的な質問であり、言語間の比較に関する質問ではありません。
2005 年のこの記事では、Python の中心となる単一のフレームワークがないことについて説明しています。Ruby の場合、このフレームワークは明らかに Rails です。歴史的に言えば、これが Python ではなく Ruby で起こったのはなぜですか? (または、そのフレームワークは Django ですか?)
また、仮説的な質問: Python に 1 つの優れたフレームワークがあれば、Python の人気が高まるでしょうか? 中心的なフレームワークがなければ、Ruby の人気は低下するでしょうか?
[Ruby と Python のどちらが優れているかについての議論は避けてください。これは自由すぎるため、回答できません。]
編集:これは明らかだと思いましたが、Ruby 用の他のフレームワークが存在しないと言っているのではなく、人気の点で大きなものは Rails です。また、Python のフレームワークが Rails ほど優れていない (またはそれよりも優れている) と言っているわけではないことに注意してください。すべてのフレームワークには長所と短所がありますが、Ben Blank が以下のコメントの 1 つで述べているように、Rails は人気の点で Ruby を上回っているようです。Python 側での例はありません。なぜ?それが問題です。