問題タブ [os-agnostic]
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.
java - サーブレットがサーブレット外のファイルへの絶対パスを取得するにはどうすればよいですか?
System.getProperties("user.dir") を使用してプロパティ ファイルの場所を取得しています。Tomcat に (サーブレット経由で) デプロイされたので、システム コールは、プロパティ ファイルが存在する場所ではなく、Tomcat として場所を指定しています。
プロパティ ファイルを動的に呼び出す方法を教えてください。
与えられた:
- アプリをデプロイする方法は Tomcat だけではありません
- アプリが配置される場所を制御することはできません。
- その Vista が使用されており、Vista が相対パスを壊しているため、相対パスは機能しません。
- これは、Linux、XP、Vista を含む (ただしこれらに限定されない) すべての OS で動作する必要があります。
- 編集私はこれを暗示しましたが、十分に明確でない場合、パス文字列を知る方法がありません。
makefile - OS検出メイクファイル
私は、Mac OS X、Linux、または Solaris など、複数の異なるコンピューターと複数の異なるオペレーティング システムで日常的に作業しています。私が取り組んでいるプロジェクトでは、コードをリモートの git リポジトリからプルします。
どの端末にいても自分のプロジェクトに取り組めるのが好きです。これまでのところ、コンピューターを切り替えるたびにメイクファイルを変更することで、OS の変更を回避する方法を見つけてきました。ただし、これは面倒で、多くの頭痛の種になります。
使用している OS を検出し、それに応じて構文を変更するように、makefile を変更するにはどうすればよいですか?
メイクファイルは次のとおりです。
c++ - TOTALおよび/またはUSEDビデオメモリをポーリングするOSに依存しない方法はありますか?
グラフィックカー/統合チップセットに搭載されているビデオメモリの合計をポーリングする方法を探しています。
私は Windows での WMI アシスト ポーリングを認識しており、私が理解している限りでは、情報は WMI によってブートごとに構築されます。ただし、私は楽観主義者なので、OS に依存せずにビデオ メモリの合計と空きまたは使用済みのビデオ メモリをポーリングする方法を探しています。
不可能な場合、Windows、Linux、および OSX で同じものをポーリングする最もエレガントな方法は何ですか?
参考までに、WindowsではDirectXを使用せず、OpenGLのみを使用します。
image - オペレーティング システムに依存しないイメージ アドレッシング
コンピューターで Windows と Ubuntu の両方を使用しているため、ドキュメントを個別に作成できるようにしたいと考えています。ロゴ用のディレクトリが 1 つあり、あらゆるドキュメントでロゴを使用したいと考えています。
これらのコマンドで解決したさまざまなファイルのアドレス指定の問題:
この機能を提供する方法:
image - コマンドラインバッチ画像トリミングツール
さまざまな形式を処理できる軽量のコマンドラインバッチ画像トリミングツール(LinuxまたはWindows)はありますか?
language-agnostic - 特定の種類の操作のための非常に効率的なファイルシステムAPI
ファイルシステムでサポートされていれば非常に効率的に実装できる特定のファイルシステムAPIが必要になることがありますが、聞いたことがありません。例えば:
- アロケーションユニットの境界で、ファイルを最初から切り捨てます
- アロケーションユニットの境界でファイルを2つに分割する
- アロケーションユニットの境界で、ファイルの中央からチャンクを挿入または削除します
このようなことをするために私が知っている唯一の方法は、データを新しいファイルに書き直すことです。これには、アロケーションユニットの関連性がなくなるという利点がありますが、一部の低レベルのファイルシステムの魔法と比較すると非常に低速です。
アラインメントの要件は、メソッドが常に適用できるとは限らないことを意味することを理解していますが、それでも役立つと思います。たとえば、ファイルアーカイバは、ユーザーがアーカイブからファイルを削除した後、アライメント上の理由でどちらかの側に少量のゴミが残っている場合でも、アーカイブを非常に効率的にトリミングできる場合があります。
そのようなAPIが存在しないのは本当ですか、それとも私は単にそれらに気づいていませんか?私は主にNTFSに興味がありますが、他のファイルシステムについて聞くことも興味深いでしょう。
ffmpeg - ディレクトリ全体をffmpegで変換するにはどうすればよいですか?
コマンドラインまたはバッチスクリプトを使用してffmpegでディレクトリ/フォルダー全体を変換するにはどうすればよいですか?
makefile - make が Windows で実行されているか Linux で実行されているかを確認する
GNU make が Linux OS または Windows OS で実行されているかどうかを makefile で知る方法はありますか?
アプリをビルドするためのメイクファイルを生成する bash スクリプトを作成しましたが、Debian マシンで正常に動作します。MinGW/MSYS でビルドしたいのですが、問題は、ソース コードのエラーをチェックするテスト プログラムをビルドして実行する必要があり、Windows で実行するには、.exe サフィックスを追加する必要があることです。
python - 実行間で持続するメモリ内キャッシュの作成
私は、ファイルのセットに対してかなり大きなクエリを含む可能性のあるPythonコマンドラインユーティリティを開発しています。これはかなり有限のクエリリストです(インデックス付きDB列を考えてください)。処理中のパフォーマンスを向上させるために、毎回ファイルシステムをヒットするのではなく、並べ替え/構造化リスト、マップ、ツリーを1回生成し、それらを繰り返しヒットすることができます。
ただし、これらのキャッシュはプロセスが終了すると失われ、スクリプトを実行するたびに再構築する必要があるため、プログラムの実行時間が大幅に増加します。コマンドの複数の実行間でこのデータを共有するための最良の方法を特定したいと思います。これは、同時に、次々に、または実行間で大幅な遅延が発生する可能性があります。
要件:
- 高速である必要があります-実行ごとの処理は最小限に抑える必要があります。これには、ディスクIOとオブジェクトの構築が含まれます。
- OSにとらわれない必要があります(または、少なくともUnix / Windowsで同様の基本的な動作にフックできる可能性があります)。
- かなり複雑なクエリ/フィルタリングを許可する必要があります-キー/値マップは十分ではないと思います
- 最新である必要はありません-(簡単に)古いデータは完全に問題ありません。これは単なるキャッシュであり、実際のデータは個別にディスクに書き込まれます。
- MySQLやMemCachedのような重いデーモンプロセスを使用できません-インストールコストを最小限に抑えたいので、各ユーザーにこれらのサービスのインストールを依頼するのは多すぎます。
環境設定:
- 可能であれば、長時間実行されるデーモンプロセスは一切避けたいと思います。
- キャッシュをすばやく更新できるようにしたいのですが、更新時にキャッシュ全体を再構築することは世界の終わりではありません。高速読み取りは高速書き込みよりもはるかに重要です。
私の理想的なファンタジーの世界では、実行の合間にPythonオブジェクトを直接保持できます。これは、シングルトンデータストアオブジェクトを共有するJavaスレッド(Tomcatリクエストなど)のようなものですが、それは不可能かもしれません。でも、それに近づくことができれば、それだけ良いです。
候補者:
メモリ内のSQLite
SQLite自体は、ディスクに支えられているため、実行のたびにファイルから読み取る必要があるため、私のユースケースには十分な速度ではないようです。おそらくこれは見た目ほど悪くはありませんが、データベースを永続的にメモリに保存する必要があるようです。SQLiteでは、DBがメモリをストレージとして使用できますが、これらのDBはプログラムの終了時に破棄され、インスタンス間で共有することはできません。
mmapでメモリにロードされたフラットファイルデータベース
スペクトルの反対側では、キャッシュをディスクに書き込んでから、mmapを使用してメモリにロードし、別々の実行間で同じメモリスペースを共有できます。ただし、すべてのプロセスが終了した場合にmmapがどうなるかはわかりません。mmapが最終的にメモリからフラッシュされても問題ありませんが、ユーザーがコマンドを次々に実行してキャッシュを再利用できるように、mmapを少し(30秒?数分?)保持したいと思います。 この例は、開いているmmapハンドルが必要であることを示しているようですが、メモリマップトファイルがメモリから削除され、ディスクからリロードする必要がある場合の正確な説明は見つかりませんでした。
終了後にmmapオブジェクトがくっついていれば、これを実装できると思いますが、レベルが非常に低く感じられ、誰かがすでによりエレガントなソリューションを実装していると思います。SQLiteを再構築していることに気付くためだけに、これを構築し始めたくありません。一方で、非常に高速であるように感じられ、特定のユースケースを考慮して最適化を行うことができました。
Processingを使用してプロセス間でPythonオブジェクトを共有する
Processingパッケージは、「...共有メモリを使用してプロセス間でオブジェクトを共有できる」ことを示しています。残りのドキュメントを調べてみると、この動作についてこれ以上言及されていませんが、それは非常に有望に聞こえます。誰かが私にもっと情報を教えてもらえますか?
RAMディスクにデータを保存する
ここでの私の懸念はOS固有の機能ですが、RAMディスクを作成して、好きなように読み取り/書き込みを行うことができます(SQLite?)。fs.memoryfsパッケージは、複数のOSで動作する有望な代替手段のように見えますが、コメントはかなりの数の制限を暗示しています。
pickleはPythonオブジェクトを保存するための効率的な方法であるため、あらゆる種類の手動データストレージよりも速度が優れている可能性があります。上記のオプションのいずれかにピクルスを引っ掛けることはできますか?フラットファイルやSQLiteよりも優れているでしょうか?
これに関連する質問がたくさんあることは知っていますが、かなり掘り下げてみたところ、複数のコマンドラインの実行に関する質問に直接対応するものは見つかりませんでした。
私は完全に認めます、私はこれをかなり考えすぎているかもしれません。私は自分の選択肢の感触をつかもうとしているだけで、それらが価値があるかどうかを調べています。
手伝ってくれてどうもありがとう!
keyboard - 言語に依存しないキーボード: ウムラウトなどのない英語 -kbd でニュートラルなテキストを培養していますか?
私は、プログラミング中に US Dvorak International キーボードを使用するのが好きです。すべてのマニュアル、すべてのドキュメント、およびそれを使用したプログラムです。ドイツ語、フィンランド語、スウェーデン語、ノルウェー語など、さまざまな言語で物事を書くように時々要求されるので、私は教師を夢中にさせています. 私はキーボードを切り替えるのが面倒で、ウムラウトなどの奇妙な要素を見逃しているため、成績が愚かに低下する傾向があります。キーボードの切り替えが遅いことに気づき、最近では Qwertyist よりも何倍も生産的な Drovakist になっています。
このパズルは、テキストを判断するためにある程度の言語的理解が必要です。ポイント(3)または以下のワンライナーのようなプログラムはありますか?
$ culturifyIt inputMe > outputYouIwillDetectAutomaticallyYourInputOutputLanguages
例
「私はハイス・ヘンリーです。」>> 'Ich heiße Henry.' (ゲル化)
「Tusentals ソルダー ストア redo for ett mojligt markkrig.」>> 「Tusentals の兵士は、möjligt markkrig のためにやり直しました。」(スウェーデン化)
「ヨック」>>「ヨアック。」(フィニフィケーション)
培養方法
キーボード - 切り替えが遅い。
ウムラウト化された o、u、または a などの特殊文字の特定のキー コンボ -- 非常にプラットフォームに依存する - 解決策、エラーあり。
...言語を検出してテキストをカルチャ化する自動化された方法はありますか?