プログラミング

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

4
* Structを* Interfaceに割り当てることができないのはなぜですか?
私はGoツアーを進めているだけですが、ポインタとインターフェースについて混乱しています。このGoコードがコンパイルされないのはなぜですか? package main type Interface interface {} type Struct struct {} func main() { var ps *Struct var pi *Interface pi = ps _, _ = pi, ps } つまり、Structがである場合Interface、なぜがにならない*Structの*Interfaceですか? 私が得るエラーメッセージは: prog.go:10: cannot use ps (type *Struct) as type *Interface in assignment: *Interface is pointer to interface, not interface
142 go 

14
並べ替えられた数値の配列に数値を挿入する効率的な方法?
並べ替えられたJavaScript配列があり、結果の配列が並べ替えられたままになるように、配列に1つ以上の項目を挿入します。私は確かに単純なクイックソートスタイルの挿入関数を実装できました。 var array = [1,2,3,4,5,6,7,8,9]; var element = 3.5; function insert(element, array) { array.splice(locationOf(element, array) + 1, 0, element); return array; } function locationOf(element, array, start, end) { start = start || 0; end = end || array.length; var pivot = parseInt(start + (end - start) / 2, 10); if …

17
マルチスレッディング:コアよりも多くのスレッドのポイントは何ですか?
マルチコアコンピューターのポイントは、複数のスレッドを同時に実行できることだと思いました。その場合、クアッドコアマシンを使用している場合、一度に4つ以上のスレッドを実行する意味は何ですか?彼らは単にお互いから時間(CPUリソース)を盗んでいるのではないでしょうか?

14
SQL WHERE句の短絡は評価されますか?
SQL WHERE句のブール式は短絡評価され ますか? 例えば: SELECT * FROM Table t WHERE @key IS NULL OR (@key IS NOT NULL AND @key = t.Key) 場合@keyがNULL IS TRUEと評価、さ@keyがNULLでなく、@key = t.Key評価済み? いいえの場合、なぜですか? はいの場合、保証されますか?ANSI SQLの一部ですか、それともデータベース固有ですか? データベース固有の場合、SqlServer?Oracle?MySQL?

2
CUDAブロック/ワープ/スレッドはどのようにCUDAコアにマッピングしますか?
私は数週間CUDAを使用していますが、ブロック/ワープ/スレッドの割り当てに疑問があります。 私は教訓的な観点から大学を研究しているので(大学のプロジェクト)、ピークパフォーマンスに到達することは私の関心事ではありません。 まず最初に、これらの事実を正直に理解したかどうかを理解したいと思います。 プログラマーはカーネルを作成し、その実行をスレッドブロックのグリッドに編成します。 各ブロックは、ストリーミングマルチプロセッサ(SM)に割り当てられます。いったん割り当てられると、別のSMに移行できません。 各SMは独自のブロックをワープに分割します(現在、最大サイズは32スレッドです)。ワープ内のすべてのスレッドは、SMのリソース上で同時に実行されます。 スレッドの実際の実行は、SMに含まれるCUDAコアによって実行されます。スレッドとコアの間に特定のマッピングはありません。 ワープに20スレッドが含まれているが、現在は16コアしか使用できない場合、ワープは実行されません。 一方、ブロックに48個のスレッドが含まれている場合、十分なメモリが利用可能であれば、2つのワープに分割され、並列に実行されます。 スレッドがコアで開始されると、メモリアクセスまたは長い浮動小数点演算のためにスレッドが停止し、別のコアで実行が再開される可能性があります。 彼らは正しいですか? 現在、私はGeForce 560 Tiを持っているので、仕様によると、それぞれに48個のCUDAコア(合計384個のコア)を含む8つのSMが搭載されています。 私の目標は、アーキテクチャのすべてのコアが同じ命令を実行することを確認することです。私のコードが各SMで利用可能なものよりも多くのレジスターを必要としないと仮定して、私は異なるアプローチを想像しました: 各SMが実行する1つのブロックを持つように、それぞれ48スレッドの8ブロックを作成します。この場合、48スレッドはSMで並列に実行されますか(それらに使用可能な48コアすべてを利用します)? 6スレッドの64ブロックを起動しても違いはありますか?(それらがSM間で均等にマッピングされると仮定) スケジュールされた作業でGPUを「サブマージ」する場合(たとえば、1024スレッドの1024ブロックを作成する場合)、すべてのコアが特定の時点で使用され、同じ計算を実行すると想定するのが妥当です(スレッドがストールしないでください)? プロファイラーを使用してこれらの状況を確認する方法はありますか? このものへの参照はありますか?「大規模並列プロセッサのプログラミング」と「CUDAアプリケーションの設計と開発」で、CUDAプログラミングガイドとハードウェアアーキテクチャ専用の章を読みました。正確な答えは得られませんでした。

4
setuptoolsとdistutils:なぜdistutilsがまだ残っているのですか?
これらが含まれます:Pythonは、プロジェクトをパッケージ化して記述するために使用できるツールの混乱の歴史を持ちdistutils、標準ライブラリではdistribute、distutils2とsetuptools(そしておそらくそれ以上)。と思われdistribute、distutils2廃止されたため、setuptools2つの競合する標準が残っています。 私の理解でsetuptoolsは、よりもはるかに多くのオプション(依存関係の宣言、テストなど)が提供されていますdistutilsが、Python標準ライブラリには(まだ?)含まれていません。 Pythonのパッケージングユーザガイド [ 1 ]今お勧めします。 setuptoolsプロジェクトを定義し、ソース配布を作成するために使用します。 そして説明します: pure distutilsは多くのプロジェクトで使用できますが、他のプロジェクトへの依存関係の定義をサポートしておらず、によって提供されるパッケージメタデータを自動的に正しく入力するためのいくつかの便利なユーティリティがありませんsetuptools。標準ライブラリの外にあるsetuptoolsは、Pythonの異なるバージョン間でより一貫した機能セットも提供し、(とは異なりdistutils)setuptoolsサポートされているすべてのバージョンで次の「メタデータ2.0」標準形式を生成するように更新されます。 を使用することを選択したプロジェクトであっても、distutilspipがそのようなプロジェクトを(事前に作成されたwheelファイルからインストールするのではなく)ソースから直接インストールする場合、setuptools代わりに使用してプロジェクトをビルドします。 ただし、さまざまなプロジェクトのsetup.pyファイルを調べると、これが実際の標準ではないように見えます。多くのパッケージがまだ使用されてdistutilsおり、サポートするパッケージは、たとえばフォールバックインポートを実行することによって、setuptoolsしばしば混合されます。setuptoolsdistutils try: from setuptools import setup except ImportError: from distutils.core import setup setuptoolsとの両方でインストールできるセットアップを作成する方法を見つける試みが続きますdistutils。distutilsにはセットアップ機能の依存関係がサポートされていないため、多くの場合、エラーが発生しやすい依存関係チェックのさまざまな方法が含まれます。 なぜ人々はまだサポートするために余分な努力をしdistutilsているのですか- setuptools標準ライブラリにないことが唯一の理由ですか?だけがサポートするsetup.pyファイルをdistutils書き込むことの利点と欠点は何ですか。setuptools

15
ブラウザでJavaScriptをサンドボックスで実行することは可能ですか?
ブラウザで実行されているJavaScriptをサンドボックス化して、HTMLページで実行されているJavaScriptコードで通常使用できる機能へのアクセスを防ぐことができるかどうか疑問に思っています。 たとえば、「興味深いイベント」が発生したときに実行されるイベントハンドラーをエンドユーザーが定義できるようにJavaScript APIを提供したいが、それらのユーザーにwindowオブジェクトのプロパティと関数にアクセスさせたくないとします。これはできますか? 最も単純なケースでは、ユーザーがを呼び出せないようにしたいとしますalert。私が考えることができるいくつかのアプローチは: window.alertグローバルに再定義します。ページで実行されている他のコード(つまり、ユーザーがイベントハンドラーで作成していないもの)がを使用する可能性があるため、これは有効なアプローチではないと思いますalert。 イベントハンドラーコードをサーバーに送信して処理します。イベントハンドラーはページのコンテキストで実行する必要があるため、サーバーにコードを送信して処理するのが適切な方法であるかどうかはわかりません。 おそらく、サーバーがユーザー定義関数を処理し、クライアントで実行されるコールバックを生成するソリューションは機能するでしょうか?そのアプローチが機能しても、この問題を解決するより良い方法はありますか?


11
FirstOrDefault:null以外のデフォルト値
私が理解しているように、Linqでは、メソッドFirstOrDefault()はDefaultnull以外の値を返すことができます。クエリの結果にアイテムがない場合、この(および同様の)メソッドでnull以外のものが返されることはわかりません。これを設定して、特定のクエリに値がない場合に事前定義された値がデフォルト値として返されるようにするための特別な方法はありますか?
142 .net  linq 


22
2つのキューを使用してスタックを実装する
同様の質問が以前にそこで行われましたが、ここでの質問は、2つのキューをスタックとして使用することとは逆です。質問... 彼らの標準的な操作で2つのキューを考えると(enqueue、dequeue、isempty、size)、その標準的な操作でスタックを実装(pop、push、isempty、size)。 ソリューションには2つのバージョンがあるはずです。 バージョンA:アイテムをプッシュする場合、スタックは効率的でなければなりません。そして バージョンB:アイテムをポップするとき、スタックは効率的でなければなりません。 特定の言語の実装よりもアルゴリズムに興味があります。ただし、私がよく知っている言語で表現されたソリューションを歓迎します(java、c#、python、vb、JavaScript、php)。


10
Python文字列は[u'String ']として出力されます
OverантотвопросестьответынаStack Overflowнарусском:покодировкамutf-8выдаетрезультатпо-ренепо-ретпо-ререпо-ретпо-ретпо-рет これは確かに簡単なものになるでしょうが、本当に私を悩ませています。 Webページを読み取り、Beautiful Soupを使用してそれを解析するスクリプトがあります。私の最終的な目標はlink.contentsを出力することなので、スープからすべてのリンクを抽出します。 私が解析しているテキストはすべてASCIIです。Pythonは文字列をUnicodeとして扱うことを知っています。これは非常に便利で、weeスクリプトでは役に立たないと思います。 「文字列」を保持する変数を出力するたび[u'String']に、画面に出力されます。これを単にASCIIに戻す簡単な方法はありますか、それを取り除くための正規表現を書く必要がありますか?
142 python  unicode  ascii 


8
Xcode /シミュレーター:古いバージョンのiOSを実行するには?
iOS SDK 4.2へのアップグレードを考えています。しかし、iOS 3.2としてシミュレータを実行できるかどうかは疑問です。これは、iPad用のiAdsを作成しているが、プログラムがiOS 3.2で実行されるかどうかを確認したいためです。 注:私はこれと似たような投稿を以前に見たことがありますが、これがどのように行われるかについての正確な手順を説明するのにはあまり役に立ちませんでした。
142 ios  objective-c  iphone  xcode  ipad 

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