問題タブ [social-networking]
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.
content-management-system - どのCMS、スクリプトなどを使用する必要がありますか?
非営利団体を立ち上げた方から、ウェブサイトの構築を依頼されました。
彼らは基本的に、ユーザーがサインアップ、プロファイルの作成、メッセージの送信などを行えるようにし、慈善団体が同じことをできるようにしたいのですが、機能は異なります(ブログの作成、ビデオの投稿など)。
ユーザーは各慈善団体のプロフィールを調べて、寄付したい慈善団体を決定します。支払いはすべてサイトの所有者に直接送られ、そこから分配されます。
私はフロントエンドプログラマーに過ぎませんが、このサイトの機能を最初からコーディングする余裕がないことはわかっています。これを機能させるために変更できるスクリプトはありますか?
私はここでサイトを開発するためにプログラマーにお金を払っても構わないと思っています。このようなものにいくらかかると思うか、そしてそれをどのように実装するかを教えてください。
助けてくれてありがとう。それは有り難いです!
design-patterns - ソーシャルネットワークのオブジェクトモデル
ソーシャルネットワークオブジェクトモデルの設計の戦略とパターンを説明するリソースはどこにありますか?たとえば、ユーザー間の関係を実装する方法、ユーザーアクションの通知のストリームを実装する方法、ユーザーごとにそのストリームをフィルタリングする方法などです。
design-patterns - ソーシャル ネットワークにアクティビティ ストリームを実装する方法
私は自分のソーシャル ネットワークを開発していますが、ユーザーのアクションのストリームを実装する Web の例を見つけられませんでした...たとえば、各ユーザーのアクションをフィルター処理する方法は? アクションイベントを保存する方法は? アクション ストリームとアクション自体には、どのデータ モデルとオブジェクト モデルを使用できますか?
delphi - 複雑なソフトウェアアーキテクチャ
私が取り組んでいるソフトウェアのアーキテクチャについていくつか質問があります!
したがって、基本的に、このソフトウェアを使用すると、ユーザーはいくつかの人気のあるサイトにアクセスできます。
- ソーシャルネットワーク(Facebook、MySpace、...)、
- 一般的なサービス(RSS、メール、Twitter ...)、
- ソーシャルブックマーク(Digg、Delicious ...)、
- チャット(MSN、AOL ...)、
- ..。
現在、アーキテクチャは次のように なっています。モデル(TApp_Core)とユーザーインターフェイス間の相互作用にMVCとObserver/Observableデザインパターンを使用しています。
したがって、ソフトウェアはTApp_Coreのインスタンスを作成し、ユーザーの選択に応じて、他のサービスのインスタンスをいくつか作成します(例:App_Core.BookmarkingServices_Core.AddServices(Digg、User、Password);)。
いくつかの質問 !
- 現在のソフトウェア設計は正しいと思いますか?
- 現在、すべてのソフトウェアに対して1つのスレッドしかありません...サービスへの要求ごとに新しいスレッドを作成する方がよいでしょうか?(たとえば、TDiggはボタンからメッセージを受信し、TidHTTPを作成し、サーバーへの要求を生成し、応答を待機し、応答を解析し、各オブザーバーにメッセージを送信し(コールバック)、解放するスレッドを作成します。スレッド。
- すべてのビュー/コントローラーをモデルの各部分にリンクするのは非常に難しいようですが、通常は非常に多くの作業が必要ですか?例:たとえばTwitterで使用してメッセージを送信するには、次のことが必要になります。
- コントローラ(ボタン)をTApp_Core.TMicrobloggingServices_Core.TTwiterオブジェクト(モデル)に接続します
- ユーザーがボタンをクリックするのを待ちます
- TTwiter(モデル)にメッセージを送信する
- サーバーにリクエストを送信するスレッドを作成します
- サーバーからの応答を解析します
- コールバックを実行して、リクエストが実行されたことを通知し、結果を出します
- スレッドを解放します
- 前のアイデアを使用すると、スレッドが多すぎてコンピューターの速度が低下し、責任が減りませんか?ただし、スレッドプールを実装する場合(ただし、使用するのは非常に複雑です)。
- SQLite 3は、すべてのデータをクライアントに保存するのに十分ですか?(データはメール、RSSフィードなどである可能性があるため、時間の経過とともに非常に多くのデータになる可能性があります)。
私の悪い英語をありがとうそしてごめんなさい!
python - ソーシャルネットワークとしての Drupal または Wordpress CMS?
私は、既存の Web サイトをこのサイトに同期できる Web コミック アーティストのコミュニティを作成しています。
ただし、どの CMS を使用するかについては議論中です: Drupal または Wordpress。
Drupal について素晴らしいことを聞いたことがありますが、Drupal は実際にはソーシャル ネットワーキングを目的としています。Drupal のバックエンドで実際に少し遊んでみると、かなり複雑に思えましたが、Drupal がどのように機能するかを完全に理解するためにあきらめるつもりはありません。
Wordpressに関しては、私はフレームワークに非常に精通しています。私はそれを拡張して自分のやりたいことを実行する能力を持っていますが、フレームワークがコミュニティ用に構築されていないと思うのでためらっています (将来遅くなる可能性があると思います)。
無関係な質問もあります: Python CMS を使用する必要がありますか? Python について非常に素晴らしいこと、そして PHP と比較してどれだけ優れているかを聞きました。
あなたのアドバイスをいただければ幸いです。
.net - SharePoint2010個人用サイトとソーシャルネットワーキング/マイクロブログのカスタムコード
次のような機能に関して、今後のSharePoint2010にはどのような機能がありますか。
FriendFeed、Twitter、Google Wave?FlickrまたはDigg(タグ付けと投票)?
SP 2010で「無料」で入手できるのはどれくらいですか、それともすべて自分でコーディングする必要がありますか?それが私のサイトに何を追加したか知っている人はいますか?2人の上級開発チームが6週間でコーディングするのが本当に難しいことはありますか?
仕事での将来の議論に重きを置く前に、私はこれをよく理解しようとしています。
social-networking - ビジネスにプラットフォームまたはカスタム ビルド ソリューションを使用する必要がありますか?
ソーシャル ネットワーキングに関するアイデアがあり (注: 通常のソーシャル ネットワーキング サイトではありません)、SocialEngine や Elgg などのソーシャル ネットワーキング プラットフォームを使用するか、開発者に依頼して作成するかを考えています。私のニーズを満たすカスタムビルドのソリューションはありますか?
ruby-on-rails - Ruby on Rails でプラグイン アーキテクチャを使用するにはどうすればよいですか?
Ruby on Rails でソーシャル ネットワーキング サイトを構築する必要があります。サイトの機能は随時変更される場合があります。そのため、機能を簡単に追加/削除する必要があります。さらに、別のソーシャル ネットワーキング サイトを構築している可能性もあります。これらの理由から、フレームワークへの拡張機能をインストールまたはアンインストールする機能を備えた、RoR でソーシャル ネットワーキング サイトの基本的なフレームワークを構築することを考えています。
以前は Joomla! で働いていました。拡張機能を追加/削除するための CMS とそのアーキテクチャは、私が見ているもののようなものです。Joomlaで!インストールには通常、拡張機能を追加/削除/カスタマイズできる管理者側があります。
私は RoR に不慣れで、これを行う方法を決定するのは少し難しいと感じています。どんな助けでも大歓迎です。
caching - LinkedInのようなサイトでは、各人の名前の横に1st / 2nd / 3rdレベルの関係を効率的に表示するにはどうすればよいですか?
私は最近、簡単な質問にうまく答えずに就職の面接を失敗させました:LinkedInのようなサイトは、ページに表示されるすべての人(たとえば、人の検索結果、働く人のリスト)までの関係距離(1st / 2nd / 3rd)をどのように効率的に表示しますか会社などで)?
<編集>私は解決策の本質的な「トリック」を手に入れました。「私からの距離」を見つけることは一般的な操作です(たとえば、1ページで20倍以上、ログインセッションごとに100)。 X "、それをキャッシュし、他の操作をはるかに安くするために、キャッシュされた部分的な結果を何度も再利用します。また、「すべての第3レベルの接続をキャッシュする」と、RAMとCPUのコストが高すぎるため、部分的な結果は第2レベルの接続になる可能性が高いと推測しました。</編集>
しかし、この洞察をソリューションに変換しようとすると、サイト上のすべての人の第2レベルの接続の永続的なキャッシュを作成するという厄介な答えを思いつきました(これは、パフォーマンスが非常に高く、維持するのが複雑でした)。技術的にほとんど意味をなさない方法でブルームフィルターを使用することへの不可解な迂回。そのような答えの後で私は自分自身を雇うことはなかっただろう!
後で、面接のプレッシャーを頭にかけずに問題について考えたとき、私はより合理的な答えを思いついた。
ユーザーIDのバッチごとに第1レベルの接続を取得するための非常に高速な方法を構築します(バッチサイズは最大1000?)。これはおそらく、ネットワーク全体の第1レベルの接続をメモリにキャッシュできる多数のRAMサーバーの専用クラスターを意味します。幸いなことに、5,000万人のメンバーx平均。メンバーあたり100接続xメンバーIDあたり4バイト=RAMにキャッシュするための<25GB。これは手頃な価格のハードウェアで実行できます。また、1日あたりの変更数は1%未満になるため、キャッシュを最新の状態に保つことはそれほど難しくありません。(「大量のランダムI / O」アクセスパターンはリレーショナルDBのパフォーマンスを低下させるため、リレーショナルデータベースはこのキャッシュを実装するのにおそらく悪い選択であることに注意してください。)
ユーザーがログインしたら、すべての第1レベル接続の第1レベル接続をフェッチして、第2レベル接続をキャッシュし、ハッシュテーブルに固定します(キー=第2レベルID、値=接続する第1レベル接続の配列)君)。また、第1レベルの接続もキャッシュして、リモートキャッシュサーバーへの1回のコールバックで第1レベルと第2レベルの両方をプルバックできるようにします。ユーザーIDは簡単にパーティション化できるため、memcachedのような分散キャッシュがこれに適している場合があります。
任意のユーザーIDについて、それが「ネットワーク」にあるかどうか、およびそれがユーザーとどのような関係にあるか(1番目、2番目、3番目)を確認するには、次のようにします。
- IDが第1レベルの接続にある場合は、停止します。
- キャッシュされた第2レベルの接続ハッシュテーブルでIDを検索してみてください。見つかった場合は、接続している接続の配列を返します。
- IDの第1レベルの接続をフェッチし、それぞれに対して手順2を繰り返します。すべての結果を1つの配列に集約し、それらを返します。
- <EDIT>をバッチ実装にリファクタリングして(「私からN人の異なるユーザーまでの距離を調べる」)、最大N個のリモート呼び出しを行うことなく、手順3のすべてのリモート結果を取得できます。</編集>
しかし、これにはもっと良い答えがあると確信しています。君は?さらに挑戦したい場合は、インタビューの状況をシミュレートしてみてください(Webでソリューションを検索することはできません)。
LinkedInが今日実際にどのようにそれを行っているかに関係なく、質問は最適な解決策に関するものであったことに注意してください。
database - 「接続方法」機能のようなLinkedInを実装する効率的な方法は?
LinkedInには、あるユーザーのプロファイルにアクセスしているときに、ネットワークを介してそのユーザーに接続する方法を尋ねるこの優れた機能があります。
訪問者とプロファイル所有者がグラフの2つのノードであり、ノードがユーザーを表し、エッジが友情を表すと仮定すると、単純な解決策は、両方のノードから特定のレベルまでのbfsで、交差点があるかどうかを確認することです。交差点はネットワークリンクノードになります。
これはきちんと聞こえますが、問題は、各人の友達を特定するために、個別のDBクエリが必要になることです。ネットワークが2レベルより深くなると、非常に時間のかかるアルゴリズムになります。より効率的な代替手段はありますか?そうでない場合、計算に必要な時間を短縮するために、より良いハードウェアサポート(並列コンピューティング、グリッド、分散データベースなど)を追加するにはどうすればよいですか?