問題タブ [human-readable]
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.
c - 固定小数点fx表記と変換
fx1.15表記があります。基になる整数値は63183(レジスタ値)です。
現在、ウィキペディアによると、完全な長さは15ビットです。値が中に収まりませんよね?
それで、それがfx1.16値であると仮定すると、それを人間が読める値に変換するにはどうすればよいですか?
encoding - 誤読/誤入力/誤解を最小限に抑えるエンコーディング?
かなり長いキー値を、電子メールまたは紙を介して画面上のユーザーに正確に伝達できるシステムがあるとします。ただし、ユーザーは、電話でキーを読み取るか、キーを読み取って他のインターフェイスに入力し直すことにより、キーを正確に伝えることができる必要があります。
キーをエンコードして、読み/聞き取り/入力を簡単かつ正確にする「良い」方法は何ですか?
これは、請求書番号、ドキュメントID、トランザクションID、またはその他の抽象的な値である可能性があります。この説明のために、基になるキー値が大きな数値、たとえば基数10の40桁であるとしましょう。
いくつかの考え:
一般的に、キーは短い方が良いです
- 40桁の基数10の値は、指定されたスペースに収まらない可能性があり、途中で迷子になりやすいです。
- 同じ値を基数16で33〜34桁で表すことができます
- 同じ値をベース36で26桁で表すことができます
- 同じ値をbase64で22〜23桁で表すことができます
視覚的に混同できないキャラクターの方がいい
- たとえば、O(oh)と0(ゼロ)、またはS(ess)と5(5)の両方を含むエンコーディングは不良である可能性があります
- この問題は、キーの表示に使用されるフォント/面によって異なります。キーを制御できる場合(紙に印刷する場合など)は制御できますが、他の場合(Webページや電子メールなど)は制御できない場合があります。
- また、大文字および/または小文字の排他的使用を制御できるかどうかによっても異なります。たとえば、大文字のD(ディー)はO(oh)のように見えますが、小文字のd(ディー)はそうではありません。小文字のl(ell)は1(1)のように見えますが、大文字のL(ell)はそうではありません。(特にエキゾチックなフォント/顔を除いて)。
口頭/聴覚的に混同できないキャラクターの方が優れています
- a(ay)8(8)
- B(蜂)C(cee)D(dee)E(ee)g(gee)p(pee)t(tee)v(vee)z(zee)3(three)
- この問題は、エンドツーエンドチャネルのオーディオ品質によって異なります。予想されるユーザーベースに音声障害がある場合、ガスマスクを介して話す必要がある場合、または通信チャネルにCBラジオや途切れ途切れが含まれる場合は、より大きな課題になります。 VOIP電話システム。
チェックディジットを1つまたは2つ追加すると、エラーは検出されますが、エラーの解決には役立ちません。
アルファ-ブラボー-チャーリー-デルタタイプのダイアログは、聴覚エラーには役立ちますが、読み取りエラーには役立ちません。
エンコーディングの可能な選択肢:
- Base 64-コンパクトですが、言語化が難しい文字(アンダースコア、ダッシュなど)が多すぎます
- ベース34-0-9およびAZですが、数字と混同しやすいため、O(oh)およびI(aye)は省略されています
- Base 32-Base 34と同じですが、0(ゼロ)と1(1)も省略します
このシナリオの合理的な解決策である一般的に認識されているエンコーディングはありますか?
machine-learning - ファイル名のキーと値のペアに標準のファイル命名規則はありますか?
内容に基づいて名前が付けられた複数のデータ ファイルがあります。例えば
- と _ で区切られたキーと値があります。これにはより良い構文がありますか? これらの種類のファイル/ファイル名を自動的に読み取るパーサーはありますか?
ここでの考え方は、ファイル名が人間と機械で読み取り可能であるということです。
javascript - バイト単位のファイルサイズを人間が読める文字列に変換する
この関数を使用して、バイト単位のファイルサイズを人間が読める形式のファイルサイズに変換しています。
ただし、これは100%正確ではないようです。例えば:
これはいけません"1.5 GB"
か?1024で除算すると精度が低下しているようです。私は何かを完全に誤解していますか、それともこれを行うためのより良い方法がありますか?
json - csvやjsonのようなものがありますが、よりグラフィカルで人間にとって読みやすいものはありますか?
たとえば、CSVとJSONは、人間と機械で読み取り可能なテキスト形式です。
graphical
今、私はテーブルデータ表現のためにさらに似たものを探しています。
それ以外の:
CSVスタイルまたは
これはJSONスタイルであり、XMLの例は示しませんが、次のようなものを念頭に置いています。
いくつかの言語用のリーダーとライターのライブラリが必要であり、それはどういうわけか標準である必要があります。もちろん自分で転がすこともできますが、基準があればそれを使います。
私はウィキやマークアップ言語の一部として同様のものを見てきましたが、それは人間が簡単に編集できるデータ定義フォーマットとして機能し、ソフトウェアライブラリによって読み書きされるはずです。
それは、マークアップとwiki言語の目的ではありません。私が探しているものは、csv、json、xmlファミリーに属しています。
java - 古いゲームのパスワード保存システムのように、ユーザーが入力したコードにデータをエンコードします
私はこれに関する情報を検索しようとしましたが、使用する正しい用語を知らないはずです...
ランダムに推測されたコードが有効である可能性が低くなるように十分なパディングを使用して、人間が読み取りおよび書き込み可能なパスコードに情報を格納する最も簡単な方法は何でしょうか。8ビットコンソールゲームのパスワード保存システムとは異なります。
私の特定のケースでは、3つの符号なし整数(最大長はそれぞれ約20ビット)をJava 1.4.2でパスコードにエンコードし、Webサーバーで復号化できるようにしたいと考えています。パスコードを一意にするために、ランダムまたは日付ベースの値を追加することも考えていました。
コードでは、数字、大文字と小文字、および場合によってはいくつかの単純な記号を使用できますが、1lIやO0などの混乱しやすい文字はおそらく除外する必要があります。ユーザーが入力する必要があるので、明らかに短い方が良いです。
ありがとう!
c# - null 参照チェックのより読みやすい方法
私が作成する多くのアプリでは、DBML オブジェクトのサブクラスにデフォルト値を割り当てていることに気づきます。これは私がそれをしなければならない現在の方法の例です:
理想的には、次のように最も読みやすくなります。
ただし、null である外部キー付きオブジェクトには NullReferenceException があります。ここでは null 合体は使用できないと思いますが、この非常に頻繁なタスクを達成するための他の適切な方法はありますか? おそらく、クラス/メソッドの拡張、または VS マクロでさえありますか?
この例では Northwind データベースを使用しました。
あらゆる提案を受け入れます。
python - 私のアプリの機能のような人間が読めるスケジュール構文?
Google App Engine の cron には、cron ジョブ スケジューリング用の人間が読める構文があります。
https://developers.google.com/appengine/docs/python/config/cron#The_Schedule_Format
アプリケーションに同様の機能を実装するにはどうすればよいですか?
編集:彼らはantlr3ライブラリを使用していると思いますが、彼らがそれをどのように使用しているかを理解できませんでした.
logging - ログメッセージは人間が読めるか、コンピュータが読めるようにするべきですか?
どちらにも利点が見られます。
人間が読める
- 何が起こっているのかを簡単に見つけることができるので、問題をすばやく解決するのは簡単です
- コンピューターで読み取り可能なフォームを作成する場合、通常は特定のスキーマにも固執します。これにより、アプリケーションが変更されたときに制限されます。
コンピュータ可読
- ログを自動的に分析してサイトを改善することが容易になります。
ruby-on-rails - Rails-属性をグローバルに人間化する
属性を持つUser
モデルがあるとしましょう。name
a@user
に名前がある場合は'CAIO'
、humanizeメソッドを呼び出してより適切にすることができます。
しかし、私は怠け者であり、humanize
毎回電話をかけたくはありません@user.name
。人間化されたバージョンを返したいのです。
今、私はヘルパーメソッドまたは次のようなモデルでそれを行うことができることを知っています
@user.name
しかし、このようにすると、アプリ内のすべてを変更する必要があり@user.h_name
ます...そして私は怠惰です!!! :-)
モデルで直接宣言する方法はありませんが、それname
を呼び出すために使用しますか?name
さらに良いのは、私のすべてのモデルで機能するものになるでしょう!