プログラミング

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


17
関数型プログラミングでは、ファンクタとは何ですか?
関数型プログラミングに関するさまざまな記事を読んでいる間、「Functor」という用語に何度か遭遇しましたが、著者は通常、読者がこの用語をすでに理解していると想定しています。Webを見回すと、過度に技術的な説明(Wikipediaの記事を参照)または信じられないほどあいまいな説明(このocamlチュートリアルWebサイトの Functorsのセクションを参照)が提供されています。 誰かが親切に用語を定義し、その使用法を説明し、おそらくファンクターがどのように作成され使用されるかの例を提供できますか? 編集:私はこの用語の背後にある理論に興味がありますが、その概念の実装と実際の使用には興味がありません。 編集2:いくつかのクロスターミノリジーが起こっているように見えます:私は特にC ++の関数オブジェクトではなく、関数型プログラミングのファンクターに言及しています。

3
ユーザーが選択したコンポーネントをクリックする動的タブ
コンポーネントを(タイトル付きで)登録できるタブシステムをセットアップしようとしています。最初のタブは受信トレイのようなもので、ユーザーが選択できるアクション/リンク項目が豊富にあり、クリックするたびに新しいコンポーネントをインスタンス化できます。アクション/リンクはJSONから取得されます。 インスタンス化されたコンポーネントは、それ自体を新しいタブとして登録します。 これが「最良の」アプローチかどうかはわかりませんか?これまでのところ、私が見た唯一のガイドは静的タブに関するものであり、役に立たない。 これまでのところ、アプリ全体で永続化するためにメインでブートストラップされるタブサービスしか持っていません。次のようになります。 export interface ITab { title: string; } @Injectable() export class TabsService { private tabs = new Set<ITab>(); addTab(title: string): ITab { let tab: ITab = { title }; this.tabs.add(tab); return tab; } removeTab(tab: ITab) { this.tabs.delete(tab); } } 質問: 新しい(異なる)タブを作成する動的なリストを受信トレイに入れるにはどうすればよいですか?私は、ソート推測の午前DynamicComponentBuilder使用されるでしょうか? コンポーネントを受信ボックスから(クリックして)作成し、タブとして登録して表示するにはどうすればよいですか?私は推測してng-contentいますが、それを使用する方法について多くの情報を見つけることができません 編集:明確にする試み。 受信トレイをメールの受信トレイと考えてください。アイテムはJSONとしてフェッチされ、いくつかのアイテムを表示します。項目の1つがクリックされると、その項目のアクション「タイプ」を使用して新しいタブが作成されます。その場合、タイプはコンポーネントになります。 編集2: 画像。

8
SecureStringはC#アプリケーションで実用的ですか?
ここで私の仮定が間違っている場合は、遠慮なく訂正してください。しかし、私が尋ねている理由を説明させてください。 MSDNから取得SecureString: 秘密にしておくべきテキストを表します。テキストは使用時にプライバシー保護のために暗号化され、不要になるとコンピューターのメモリから削除されます。 私はそれがでパスワードやその他の個人情報保管するための完全な意味を成し、これを取得SecureStringオーバーをSystem.String、あなたはどのように制御することができますので、それは実際にメモリに格納されている場合、理由System.String: 両方が不変であり、不要になった場合、ガベージコレクションをプログラムでスケジュールすることはできません。つまり、インスタンスは作成後は読み取り専用であり、インスタンスがコンピューターのメモリから削除される時期を予測することはできません。したがって、Stringオブジェクトにパスワード、クレジットカード番号、個人データなどの機密情報が含まれている場合、アプリケーションがコンピューターのメモリからデータを削除できないため、使用後に情報が漏洩する可能性があります。 ただし、GUIアプリケーション(たとえば、sshクライアント)の場合、SecureString はから構築する必要があり System.Stringます。すべてのテキストコントロールは、基礎となるデータ型として文字列を使用します。 つまり、これは、ユーザーがキーを押すたびに、そこにあった古い文字列は破棄され、パスワードマスクを使用していても、テキストボックス内の値を表す新しい文字列が作成されることを意味します。また、これらの値のいずれがメモリから破棄されるか、または破棄されるかどうかを制御することはできません。 次に、サーバーにログインします。何だと思う?認証のために接続を介して文字列を渡す必要があります。それではSecureString、System.String...に変換してみましょう。ガベージコレクションを強制的に実行する(またはバッファに0を書き込む)方法がないヒープ上に文字列があります。 私のポイントはある:あなたが何をすべきかに関係なく、線に沿ってどこか、SecureStringされに行くに変換するSystem.String(ガベージコレクションの任意の保証なし)いくつかの点で、ヒープ上の最低が存在でそれをしますつまり、。 私のポイントではありません:ssh接続への文字列の送信を回避する方法、またはコントロールに文字列を格納させる(カスタムコントロールを作成する)方法を回避する方法があるかどうか。この質問では、「ssh接続」を「ログインフォーム」、「登録フォーム」、「お支払いフォーム」、「食品-あなたがフィード-あなたの子犬-しかし、あなたの子供でないフォーム」に置き換えることができます。等 それでは、SecureString実際に使用することが実際に役立つのはどの時点ですか? System.Stringオブジェクトの使用を完全に根絶するために、余分な開発時間を費やす価値はありますか? 全体のポイントであるSecureString、単に時間の量削減するSystem.Stringヒープ上では、(物理的なスワップファイルに移動し、そのリスクを低減しますか)? 攻撃者は、すでにヒープ検査のための手段を持っている場合、その後、彼は最も可能性のいずれか(A)は、既にキーストロークを読むための手段を有している、または(B)、すでに物理的にマシンを持っている ...だからが使用してしまうSecureStringになってから彼を防ぐためにとにかくデータ? これは単に「あいまいさによるセキュリティ」ですか。 質問を厚くしすぎていると申し訳ありませんが、好奇心が私をより良くしました。私の質問の一部またはすべてに遠慮なく答えてください(または私の仮定が完全に間違っていることを教えてください)。:)
224 c#  security 

6
クライアントサーバー同期パターン/アルゴリズム?
クライアントとサーバーの同期パターンがそこにあるに違いないと感じています。しかし、私は完全に1つをグーグルに失敗しました。 状況は非常に単純です。サーバーは中央ノードであり、複数のクライアントが同じデータに接続して操作します。データはアトムに分割できます。競合が発生した場合、サーバー上にあるものは何でも優先されます(ユーザーが競合を解決しないようにするため)。潜在的に大量のデータがあるため、部分同期が推奨されます。 そのような状況のパターン/良い習慣はありますか、またはあなたがそれを知らない場合-あなたのアプローチは何ですか? 以下は、私が今それを解決しようと考えている方法です。データと並行して、すべてのトランザクションにタイムスタンプが付けられた変更ジャーナルが保持されます。クライアントが接続すると、最後のチェック以降のすべての変更が統合された形式で受信されます(サーバーはリストを調べて追加を削除し、その後に削除、各アトムの更新のマージなど)。Et voila、私たちは最新です。 代わりに、各レコードの変更日を保持し、データの削除を実行する代わりに、削除済みとしてマークするだけです。 何かご意見は?

12
静的クラスを継承できないのはなぜですか?
本当に状態を必要としないクラスがいくつかあります。組織的には階層化したい。 しかし、静的クラスの継承を宣言できないようです。 そんな感じ: public static class Base { } public static class Inherited : Base { } 動作しないでしょう。 言語のデザイナーがその可能性を閉じたのはなぜですか?
224 c#  inheritance  static 

17
紛らわしい「識別子の重複」Typescriptエラーメッセージ
なぜこれとこの種類の多くのエラーが発生するのですか?リポジトリへのリンクと以下の主要なコードスニペットを追加しています。依存関係と "include"チェーンがどのように機能するかについて、基本的な誤解があると思います。 csvproc(master)> tsc node_modules/typescript/bin/lib.core.d.ts(83,5): error TS2300: Duplicate identifier 'configurable'. node_modules/typescript/bin/lib.core.d.ts(84,5): error TS2300: Duplicate identifier 'enumerable'. node_modules/typescript/bin/lib.core.d.ts(85,5): error TS2300: Duplicate identifier 'value'. node_modules/typescript/bin/lib.core.d.ts(86,5): error TS2300: Duplicate identifier 'writable'. すべてのコードはここにあります。 私のtsconfig.json: { "compilerOptions": { "module": "commonjs", "noImplicitAny": false, "outDir": "built/", "sourceMap": true, "target": "es5" } } 私のtsd.json: { "version": "v4", "repo": …
224 typescript 


17
SQLite3をMySQLに移行する簡単な方法は?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4ヶ月前に閉鎖。 この質問を改善する SQLite3データベースをMySQLに移行する簡単な方法を知っている人はいますか?
224 mysql  sqlite  migration 


12
PHP-文字列に変数を連結または直接挿入します
PHP変数を文字列に挿入する適切な方法は何ですか? こちらです: echo "Welcome ".$name."!" またはこのように: echo "Welcome $name!" これらの方法はどちらもmyで機能しますPHP v5.3.5。後者の方が短くて簡単ですが、最初の方がフォーマットが優れているのか、それとも適切なものとして受け入れられているのかわかりません。

11
Gitリポジトリからすべてのタグを削除する
Gitリポジトリからすべてのタグを削除したい。どうやってやるの? ローカルでのgit tag -d tagname削除タグの使用tagname、およびgit push --tagsgitプロバイダーでのタグの更新の使用。 私は試した: git tag -d * しかし、それ*は現在のディレクトリからのファイルを意味します。 $ git tag -d * error: tag 'file1' not found. error: tag 'file2' not found. ... タグがたくさんあり、それらをすべて削除したいとします。
224 git  git-tag 

13
PHPコードを「コンパイル」して、バイナリコードのファイルをアップロードできますか。これは、バイトコードインタープリターによって実行されます。
PHPはサーバーで実行される前にバイトコードにコンパイルされ、そのバイトコードをキャッシュできるので、すべてのWebアクセスでスクリプト全体を再解釈する必要がありません。 しかし、PHPコードを「コンパイル」して、バイナリコードのファイルをアップロードできます。これは、バイトコードインタープリターによって実行されます。
224 php  bytecode 

4
なぜターゲットは最新であると思わせるのですか?
これは私のメイクファイルです: REBAR=./rebar REBAR_COMPILE=$(REBAR) get-deps compile all: compile compile: $(REBAR_COMPILE) test: $(REBAR_COMPILE) skip_deps=true eunit clean: -rm -rf deps ebin priv doc/* docs: $(REBAR_COMPILE) doc ifeq ($(wildcard dialyzer/sqlite3.plt),) static: $(REBAR_COMPILE) build_plt analyze else static: $(REBAR_COMPILE) analyze endif make compile複数回実行して取得できます aromanov@alexey-desktop:~/workspace/gm-controller/lib/erlang-sqlite$ make compile ./rebar get-deps compile ==> erlang-sqlite (get-deps) ==> erlang-sqlite (compile) ただし、何らかの理由で実行するとmake …
224 makefile 

15
正規表現によるテキスト内のUUIDの検索
正規表現を使用してテキストのブロックでUUIDを検索しています。現在、私はすべてのUUIDが8-4-4-4-12の16進数のパターンに従うとの仮定に依存しています。 この仮定が無効であり、一部のUUIDを見逃す原因となるユースケースを誰かが考えることができますか?
224 regex 

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