プログラミング

プロおよび熱狂的プログラマーのためのQ&A

4
matplotlibのカラーマップから個々の色を取得する
cmapたとえば、カラーマップがある場合: cmap = matplotlib.cm.get_cmap('Spectral') 0から1の間で特定の色を取得するにはどうすればよいですか。0はマップの最初の色、1はマップの最後の色です。 理想的には、次のようにしてマップの中央の色を取得できます。 >>> do_some_magic(cmap, 0.5) # Return an RGBA tuple (0.1, 0.2, 0.3, 1.0)

6
型消去テクニック
(型消去とは、Boost.Anyのように、クラスに関する型情報の一部またはすべてを非表示にすることを意味します。) 型消去の手法を手に入れながら、私が知っている手法を共有したいと思っています。私の希望は、誰かが彼/彼女の最も暗い時間に考えたいくつかのクレイジーなテクニックを見つけることです。:) 私が知っている、最初で最も明白で一般的に採用されているアプローチは、仮想関数です。クラスの実装をインターフェースベースのクラス階層内に隠すだけです。多くのBoostライブラリがこれを実行します。たとえば、Boost.Anyはこれを実行してタイプを非表示にし、Boost.Shared_ptrはこれを実行して(割り当て解除)割り当てメカニズムを非表示にします。 次にvoid*、Boost.Functionがファンクタの実際の型を非表示にするように、実際のオブジェクトをポインタに保持しながら、テンプレート化された関数への関数ポインタを持つオプションがあります。実装例は質問の最後にあります。 それで、私の実際の質問のために: あなたは他にどんなタイプの消去テクニックを知っていますか?可能な場合は、サンプルコード、使用例、それらについての経験、および詳細を読むためのリンクを提供してください。 編集 (これを回答として追加するか、質問を編集するだけか確信が持てなかったので、安全 な方法を実行します。)仮想関数や操作なしで何かの実際のタイプを非表示にするもう1つの優れた手法void*は、 1つのGManがここで採用しています。これがどのように機能するかについての私の質問に関連しています。 コード例: #include <iostream> #include <string> // NOTE: The class name indicates the underlying type erasure technique // this behaves like the Boost.Any type w.r.t. implementation details class Any_Virtual{ struct holder_base{ virtual ~holder_base(){} virtual holder_base* clone() const = 0; }; template<class …
136 c++  type-erasure 

8
Spring Dataリポジトリをテストする方法は?
UserRepositorySpring Dataの助けを借りて作成されたリポジトリ(たとえば、)が必要です。私はspring-dataを初めて使用しますが(springは使用しません)、このチュートリアルを使用します。データベースを扱うための私のテクノロジーの選択は、JPA 2.1とHibernateです。問題は、そのようなリポジトリの単体テストを作成する方法について私が無知であることです。 create()メソッドを例にとってみましょう。私は最初にテストを行っているので、そのための単体テストを作成することになっています。そこで、3つの問題にぶつかります。 最初に、インターフェイスのEntityManager存在しない実装にモックを注入するにはどうすればよいUserRepositoryですか?Spring Dataはこのインターフェースに基づいた実装を生成します: public interface UserRepository extends CrudRepository<User, Long> {} ただし、EntityManagerモックや他のモックを使用するように強制する方法がわかりません。自分で実装を記述した場合、おそらくのセッターメソッドがありEntityManager、モックをユニットテストに使用できます。(実際のデータベース接続に関しては、およびのJpaConfiguration注釈が付けられたクラスが@Configurationあり@EnableJpaRepositories、プログラムDataSourceによってEntityManagerFactory、EntityManagerなどのBeanを定義していますが、リポジトリはテストに適しており、これらのものをオーバーライドできる必要があります)。 次に、相互作用をテストする必要がありますか?私はどのような方法を把握することは困難であるEntityManagerとQuery(それに似呼ばれるようになっているverify(entityManager).createNamedQuery(anyString()).getResultList();)、それは実装を書いている人は私ではないので、。 3番目に、Spring-Dataで生成されたメソッドを最初に単体テストする必要がありますか?私が知っているように、サードパーティのライブラリコードは単体テストではなく、開発者自身が作成したコードのみが単体テストされることになっています。しかし、それは本当ならば、それはまだシーンに最初の質問の背中をもたらします:言うが、私は実装を書くことになるための私のリポジトリ用のカスタムメソッドのカップルを、持って、どのように私は私のモック注入しないEntityManagerとQuery生成され、最終的にはリポジトリ? 注:統合テストと単体テストの両方を使用してリポジトリをテストします。統合テストではHSQLインメモリデータベースを使用していますが、単体テストではデータベースを使用していません。 そしておそらく4番目の質問は、統合テストで正しいオブジェクトグラフの作成とオブジェクトグラフの取得をテストすることは正しいですか(たとえば、Hibernateで定義された複雑なオブジェクトグラフがあるとします)。 更新:今日はモックインジェクションの実験を続けました-モックインジェクションを可能にする静的内部クラスを作成しました。 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @Transactional @TransactionConfiguration(defaultRollback = true) public class UserRepositoryTest { @Configuration @EnableJpaRepositories(basePackages = "com.anything.repository") static class TestConfiguration { @Bean public EntityManagerFactory entityManagerFactory() { return mock(EntityManagerFactory.class); } @Bean public EntityManager entityManager() { …


13
ES6でのJavaScriptの列挙型
私はJavascriptで古いJavaプロジェクトを再構築していて、JSで列挙型を行う良い方法がないことに気づきました。 私が思いつくことができる最高のものは: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); const続けてColors再割り当てされているから、それがキーと値を変異防止凍結します。私はシンボルを使用しているので、それColors.REDはと等しくない0か、それ以外のものは何でもありません。 この処方に問題はありますか?もっと良い方法はありますか? (私はこの質問が少し繰り返されることを知っていますが、以前のすべてのQ / Aはかなり古く、ES6はいくつかの新しい機能を提供します。) 編集: シリアル化の問題を処理する別の解決策ですが、まだレルムの問題があると思います。 const enumValue = (name) => Object.freeze({toString: () => name}); const Colors = Object.freeze({ RED: enumValue("Colors.RED"), BLUE: enumValue("Colors.BLUE"), GREEN: enumValue("Colors.GREEN") }); 値としてオブジェクト参照を使用することにより、シンボルと同じ衝突回避が得られます。

9
Python ElementTreeモジュール:メソッド「find」、「findall」を使用するときに、XMLファイルの名前空間を無視して一致する要素を見つける方法
「findall」のメソッドを使用して、ElementTreeモジュールでソースxmlファイルのいくつかの要素を見つけたいと思います。 ただし、ソースxmlファイル(test.xml)には名前空間があります。サンプルとしてxmlファイルの一部を切り捨てます: <?xml version="1.0" encoding="iso-8859-1"?> <XML_HEADER xmlns="http://www.test.com"> <TYPE>Updates</TYPE> <DATE>9/26/2012 10:30:34 AM</DATE> <COPYRIGHT_NOTICE>All Rights Reserved.</COPYRIGHT_NOTICE> <LICENSE>newlicense.htm</LICENSE> <DEAL_LEVEL> <PAID_OFF>N</PAID_OFF> </DEAL_LEVEL> </XML_HEADER> サンプルのPythonコードは次のとおりです。 from xml.etree import ElementTree as ET tree = ET.parse(r"test.xml") el1 = tree.findall("DEAL_LEVEL/PAID_OFF") # Return None el2 = tree.findall("{http://www.test.com}DEAL_LEVEL/{http://www.test.com}PAID_OFF") # Return <Element '{http://www.test.com}DEAL_LEVEL/PAID_OFF' at 0xb78b90> 機能しますが、「{http://www.test.com}」という名前空間があるため、各タグの前に名前空間を追加するのは非常に不便です。 「find」、「findall」などのメソッドを使用する場合、ネームスペースをどのように無視できますか?

8
Python / SciPyのピーク検出アルゴリズム
一次導関数などのゼロクロッシングを見つけることで自分で何かを書くことができますが、標準ライブラリに含めるには十分に一般的な関数のようです。誰か知ってる? 私の特定のアプリケーションは2Dアレイですが、通常はFFTのピークを見つけるためなどに使用されます。 具体的には、これらの種類の問題では、複数の強いピークがあり、無視すべきノイズだけが原因で発生する多数の小さな「ピーク」があります。これらは単なる例です。私の実際のデータではありません: 1次元ピーク: 2次元ピーク: ピーク検出アルゴリズムは、これらのピークの位置(それらの値だけでなく)を見つけ、理想的には、おそらく2次補間などを使用して、最大値のインデックスだけでなく、真のサンプル間ピークを見つけます。 通常、気になるのは数個の強いピークだけなので、特定のしきい値を超えているため、または振幅でランク付けされた順序付きリストの最初のn個のピークであるために選択されます。 私が言ったように、私はこのようなものを自分で書く方法を知っています。うまく機能することが知られている既存の関数またはパッケージがあるかどうかを尋ねています。 更新: 私はMATLABスクリプトを翻訳しましたが、それは1次元の場合にうまく機能しますが、もっと良いかもしれません。 更新された更新: sixtenbe は1-Dケースのより良いバージョンを作成しました。

7
HttpURLConnectionでプロキシを使用するにはどうすればよいですか?
これをしたら... conn = new URL(urlString).openConnection(); System.out.println("Proxy? " + conn.usingProxy()); 印刷する Proxy? false 問題は、プロキシの背後にいることです。JVMはWindowsでプロキシ情報をどこから取得しますか?どうすれば設定できますか?私の他のすべてのアプリは私のプロキシに完全に満足しているようです。
136 java  windows  http  proxy 

5
configuration.moduleに不明なプロパティ「ローダー」があります
エラーの私の出力: 無効な構成オブジェクト。Webpackは、APIスキーマと一致しない構成オブジェクトを使用して初期化されました。-configuration.moduleに不明なプロパティ「ローダー」があります。次のプロパティは有効です:オブジェクト{exprContextCritical?、exprContextRecursive?、exprContextRegExp?、exprContextRequest?、noParse?、rules、defaultRules?、unknownContextCritical?、unknownContextRecursive?、unknownContextRegExp?、unknownContextRequest?、unsafeCache?、wrappedContextCritical?、wrappedContextRecursive ?、strictExportPresence?、strictThisContextOnImports?}->通常のモジュールに影響するオプション(NormalModuleFactory)。 私のwebpack.config.js: var webpack = require('webpack'); var path = require('path'); var BUILD_DIR = path.resolve(__dirname, 'src/client/public'); var APP_DIR = path.resolve(__dirname, 'src/client/app'); var config = { entry: APP_DIR + '/index.jsx', module : { loaders : [ { test : /\.jsx?/, include : APP_DIR, loader : 'babel-loader' } ] }, output: …
136 reactjs  webpack 

10
フリーフォームのストリート/郵便の住所をテキストから解析してコンポーネントに変換する方法
私たちは主に米国でビジネスを行っており、すべての住所フィールドを1つのテキスト領域に結合することにより、ユーザーエクスペリエンスの向上を図っています。しかし、いくつかの問題があります。 ユーザーが入力した住所が正しくないか、標準形式ではない可能性があります クレジットカードによる支払いを処理するには、住所を複数の部分(ストリート、都市、州など)に分割する必要があります ユーザーは自分の住所以外にも入力できます(名前や会社名など) Googleはこれを実行できますが、利用規約とクエリの制限は、特に予算が厳しい場合は禁止されます どうやら、これはよくある質問です: アドレスを解析するPHPスクリプト? 自由形式のアドレスを解析してデータベースに保存する方法 Java郵便アドレスパーサー 住所コンポーネントを抽出するより効率的な方法 Androidで通り、市、郵便番号を含む連絡先画面に事前入力された住所を表示するにはどうすればよいですか? PHP正規表現USアドレス 周囲のテキストからアドレスを分離し、それを断片に分割する方法はありますか?アドレスを解析するための正規表現はありますか?

14
Pythonを使用してSSH経由でコマンドを実行する
Pythonでいくつかのコマンドラインコマンドを自動化するスクリプトを書いています。現在、私はこうして電話をかけています: cmd = "some unix command" retcode = subprocess.call(cmd,shell=True) ただし、リモートマシンでいくつかのコマンドを実行する必要があります。手動で、sshを使用してログインし、コマンドを実行します。Pythonでこれを自動化するにはどうすればよいですか?(既知の)パスワードを使用してリモートマシンにログインする必要があるためcmd = ssh user@remotehost、を使用できません。使用する必要があるモジュールがあるかどうか疑問に思います。
136 python  ssh 

5
C ++ 11の新しい構文「= default」
私はなぜこれをするのか理解できません: struct S { int a; S(int aa) : a(aa) {} S() = default; }; なぜただ言ってはいけない: S() {} // instead of S() = default; なぜそのための新しい構文を導入するのですか?
136 c++  c++11 

20
getMinutes()0-9-2桁の数字を表示する方法
var date = "2012-01-18T16:03"; var date = new Date(date); console.log(date.getMinutes()); console.log(date.getMinutes().length) これは3を返します。 「03」を返すようにするにはどうすればよいですか? なぜ.length未定義を返すのですか? 私はこれを試しましたが、うまくいきませんでした: もしstrlen == 1その後、num = ('0' + num);
136 javascript 


24
なぜ変数名が数字で始められないのですか?
私はしばらく前に新しいC ++開発者と一緒に作業していたとき、「なぜ変数名は数字で始められないのですか?」 一部の数値にテキストを含めることができること(123456L、123456U)を除いて、答えを思い付くことができませんでした。コンパイラがアルファ文字を含むすべてを変数名であると考えていた場合、それは不可能です。 それは正解でしたか?他に理由はありますか? string 2BeOrNot2Be = "that is the question"; // Why won't this compile?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.