問題タブ [distribution]
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.
perl - Perl スクリプトをパッケージ化して、Perl のないマシンで実行するにはどうすればよいですか?
また、「Perl をコンパイルするにはどうすればよいですか?」という質問もよく寄せられます。彼らが本当に望んでいるのは、Perl がインストールされていなくてもマシン上で実行できる実行可能ファイルを作成することです。
私が知っているいくつかの解決策があります:
- IndigoStarの perl2exe 商用です。私は試したことがない。その Web サイトには、Win32、Linux、および Solaris をクロスコンパイルできると書かれています。
- ActiveState のPerl 開発キット。商用です。数年前にWindowsで使用しましたが、私のニーズにはうまくいきました。その Web サイトによると、Windows、Mac OS X、Linux、Solaris、AIX、および HP-UX で動作します。
- フリーでオープンソースのPARまたはPAR::Packerです。テスト レポートに基づくと、Windows、Mac OS X、Linux、NetBSD、Solaris で動作しますが、理論的には他の UNIX システムでも動作するはずです。最近、Linux でのパッケージングに PAR を使い始めました。Windows でも使用する予定です。
その他の推奨ソリューションは?
python - Python GUI アプリケーションの再配布
中小規模のデスクトップ GUI アプリケーションを開発する必要があります。時間の制約があるため、できれば Python を選択した言語として使用します。
ユーザーがPythonをインストールしておらず、明らかに私が使用しているGUIライブラリも持っていないと仮定して、アプリケーションをスタンドアロンで再配布できるGUIライブラリの選択肢は何ですか?
また、ターゲット OS ごとに適切なサイズのバイナリにすべてをパッケージ化するにはどうすればよいでしょうか? (私の主なターゲットは Windows と Mac OS X です)
追加: 私は WxPython を調べてきましたが、cx_freeze でパッケージ化して 30 MB 以上のバイナリを取得するという恐ろしい話がたくさん見つかりました。実際にパッケージ化を行う方法と、それがどれほど信頼できるかについての実際のアドバイスはありません。
architecture - アプリケーションのスケーリング
スケーリングする必要のあるアプリケーション(IP会議サービス)があります。さまざまな言語(主にC ++とPHP、一部のPerl)で記述された、かなりの数の独立したコンポーネント/アプリケーションがあります。現在、1台のインストールが5台のマシンで実行され、1〜2台のコンポーネントが1つのボックスを共有しています。したがって、各ボックスの構成は異なるため、メンテナンスはもちろん、全体をスケーリングするのは面倒です。
個々のコンポーネントはメディアプロキシからメッセージプロキシやデータベースまでさまざまであるため、負荷は均等ではありません。
ある種のロードバランサーを前に置いて、すべてのコンポーネントを1台のマシンに配置し、ボックスを追加することを考えていました。他の人は私に別の方法でスケーリングするようにアドバイスしました-アプリの負荷が高くなる場所に専用のボックスを追加します-しかしこれはメンテナンスの悪夢に戻ります。
私がどこから始めるべきかリソースを知っていますか?理想的には、パフォーマンスの観点からどちらのアプローチが優れているか、いくつかのベンチマークが必要ですか?(声を出して考えると、Xの負荷とYのメモリと処理能力がある場合、どのように割り当てるかは重要ですか?)
random - データのランダム分布
大量のデータの中に少量のデータをランダムな順序で分散するにはどうすればよいですか?
たとえば、数千行の「実際の」データがあり、「実際の」データ全体にランダムな順序で 12 ~ 2 行の制御データを挿入したいと考えています。
今、私は乱数ジェネレーターの使用方法を尋ねようとしているのではなく、統計的な質問をしています。乱数の生成方法は知っていますが、私の質問は、データがランダムな順序で挿入されていることを確認するにはどうすればよいかです同時に、ファイル全体にかなり均等に散らばっています。
乱数の生成だけに依存している場合、(非常に小さいものではありますが) すべての制御データ、または少なくともその塊が、かなり狭い範囲の「実際の」データに挿入される可能性があります。これが起こらないようにする最善の方法は何ですか?
別の言い方をすれば、サードパーティがどの行がコントロールでどれが実際の行であるかを計算する方法がないように、実際のデータ全体にコントロール データを挿入したいと考えています。
更新: 私はこれを「コミュニティ ウィキ」にしたので、誰かが私の質問を編集してより意味のあるものにしたい場合は、すぐに行ってください。
更新: 例を試してみましょう (コーディングの問題ではなく、統計上の問題であるため、この言語やプラットフォームに依存させたくありません)。
- 私は 3000 行の「実際の」データを持っています (この量は、ユーザーが持っているデータの量に応じて、実行ごとに変化します)。
- 私は 20 行の「コントロール」データを持っています (これも、ユーザーが使用したいコントロール行の数に応じて変化します。0 以上です)。
150行または「実際の」データが挿入されるたびに、これらの20行の「制御」行を挿入したいと考えています( 3000/20 = 150)。ただし、出力データ内の位置に基づいて制御行を識別できるようにしたくないため、それほど正確にしたくありません。
したがって、いくつかの「コントロール」行がまとめられたり、「コントロール」行がほとんどまたはまったくないセクションがあることは気にしませんが、一般的には「コントロール」行がデータ全体にかなり均等に分散されるようにします。
algorithm - 比率が 1:2 の乱数
行列の 2 つのランダムなセットを生成する必要があります。それぞれに 2 ~ 10 の範囲の 3 桁の数字が含まれています
そのように
行列 1: 994,878,129,121
行列 2: 272,794,378,212
両方の行列の数値は 100 より大きく、999 より小さくなければなりません
しかし
両方の行列の平均は、ユーザーが入力した制約が何であれ、1:2 または 2:3 の比率でなければなりません。
私の数学のスキルは限られているので、どうすればこれを実現できますか?
iphone - iPhone アプリ名の制限とは何ですか? (そして [どこに] 文書化されていますか?!)
アプリ名に UTF-8 文字が含まれていたため、アドホック配布が機能しなかった理由を最終的に発見するのに 2 日かかりました (そして多くの頭/壁のドキドキ)。Apple iPhone のような広く国際的なプラットフォームがこれをどのように禁止できるのか、私はまだ頭を悩ませています。
つまり、私のアプリが中国の囲碁ゲームである場合、それを「Go! (圍棋)」と呼ぶことはできませんか?!
とにかく気になる…
- これは実際の制限ですか、それともアドホック プロセスのバグですか?
- app-name に他の制限はありますか (おそらく、?、*、!、& などの UNIX ではうまく機能しない文字)。
- これはどこかに文書化されていますか?(もしそうなら、どこで:)
- 名前にUTF-8文字(特に日本語/中国語)を含むアプリストアのアプリの例を誰かが指摘できますか?
ありがとう!
(私は知っています: いくつかの質問のように見えますが、実際にはすべて関連しています!)
php - 小さな PHP アプリケーションの配布
配布したい小さな PHP アプリケーションを作成しました。最小限の手間でほとんどのウェブホストにインストールできるように、ベスト プラクティスを探しています。
簡単に言うと、パスワードでログインするとファイルをダウンロードできるシンプルなツールです。
だから私の質問は:
1) 構成値をどのように処理すればよいですか? 私はデータベースを使用していないので、構成ファイルが適切と思われます。他の php アプリ (Wordpress など) が定義を使用していることは知っていますが、それらはグローバルであり、名前が競合する可能性があります。(明らかに、グローバル変数にも同じ問題があります。) PHP に組み込まれている "ini" ファイル メカニズムを調べました。上部にのみコメントを許可するため、各設定に簡単に注釈を付けることができず、「php -f」で構文を検証できません。その他のオプション?
2) テンプレートの処理方法は? アプリケーションはフォームを送り出す必要があります。エラーメッセージが表示される可能性があります。(たとえば、「申し訳ありませんが、パスワードが間違っています。」) HTML フォームでクラス変数を使用していますが、代わりに外部テンプレート ファイルを使用することもできます (構成で指定)。簡単な検索と置換を行います。たとえば、%SCRIPT% をスクリプトの名前に、%STATUS% をエラー メッセージを保持するために使用します。これは車輪の再発明のように感じますが、Smarty のようなテンプレート システムを含めるのはやり過ぎです。(さらに、彼らはすでにテンプレート システムを持っているかもしれません。) 他のオプションはありますか?
3) i18n - メッセージ文字列は 3 つしかなく、gettext は広くインストールされていないようです。構成ファイルでこれら 3 つの文字列パラメーターを作成するだけで、そんなに悪い考えですか?
4) 他のフレームワークとの最適な統合方法は? 私のアプリは単一のクラスです。そのため、クラスがどのように呼び出されたかを示す php スクリプトを含めることができると考えました。それを別のフレームワークに統合しなければならない人々にとっては出発点になるでしょうが、カスタマイズに興味がない人にとってはそのままでも問題ありません. 適正?
5) GET/POST パラメータ - クラスが $_GET と $_POST を見るのは悪い形ですか? 構築中にすべての値をクラスに渡す必要がありますか?
ありがとう。
iphone - iPhone ベータ版アプリに別のアプリ ID を使用していますか?
iPhone アプリ (リリース済みまたは未リリース) を使用している私たちは、アドホック配布を使用して限定ベータ ビルドを送信できます。これに関する Apple のドキュメントにはいくつかの穴がありますが、「ネット」上にはその穴を埋める多くのブログ、投稿、その他の記事があります。
しかし、誰も言及していないのに気になったことが 1 つあります。ベータ ビルドを行うとき、リリース済み (またはリリース予定) のアプリと同じアプリ ID を使用しますか?
別の ID を使用する理由は、リリースされたアプリと一緒にベータ版を引き続き実行できるからです。これは、現場ですでにリリースされたバージョンを持っている場合、おそらくより重要です。
反対意見は、リリースされたアプリが生成した可能性のあるデータにベータ版がアクセスできないこと、およびその逆であるということです。これは、ケースバイケースで必要な場合とそうでない場合があります。
このアプローチに問題はありますか? 現在登録されているアプリ ID は 1 つだけですが、IIRC では必要に応じてさらに作成することに障害はありません..?
他の人が何をしているのか興味があります。
eclipse - Eclipse の「ディストリビューション」を作成していますか?
開発チーム向けのカスタム Eclipse ディストリビューションを作成する場合。
特定のプラグイン セットを含むカスタム Eclipse ディストリビューションを構築するにはどうすればよいですか? カスタマイズされた Eclipse が更新されるプラグインの特定のバージョンを配置するための一種の更新サイトも追加するのは難しいでしょうか?
python - 別々の python パッケージを同じ名前空間に入れますか?
「アドオン」を個別のパッケージとして作成する Python フレームワークを開発しています。すなわち:
今、私が調整しようとしているのは、これらのアドオンをコア フレームワークとは別に配布し、myframework.addons
名前空間に挿入できるようにすることです。
現在、これに対する私の最善の解決策は次のとおりです。アドオンがデプロイされます (ほとんどの{python_version}/site-packages/
場合、次のようになります:
にはfooext/myframework/addons/__init__.py
、pkgutil パス拡張コードがあります。
問題は、これが機能するために PYTHONPATH が含まれている必要があることfooext/
ですが、それが持つ唯一のものは親インストールディレクトリ (ほとんどの場合、上記のsite-packages
) です。
myframework/addons/__init__.py
これに対する解決策は、myframework サブパッケージを含むモジュールをトラバースして検索する追加のコードを用意することです。sys.path
この場合、それを追加するsys.path
とすべてが機能します。
私が持っていた別のアイデアは、アドオンファイルをインストール場所に直接書き込むことですmyframework/addons/
が、そうすると、開発と展開された名前空間が異なってしまいます。
これを達成するためのより良い方法、または上記の配布の問題に対する別のアプローチはありますか?