问题列表 - 第39634页

我应该更喜欢Scala中的密封类或枚举吗?

我正在尝试为Scala 实现Plurk API,但我有一个设计选择.

例如,Plurk用户的性别属性可以是"男性","女性","其他"之一.

sealed trait Gender
object Male extends Gender
object Female extends Gender
object Others extends Gender
Run Code Online (Sandbox Code Playgroud)

问题是我应该像上面的代码示例那样更喜欢密封的类/对象,而不是Enumeration来表示枚举类型?

因为我发现当我使用其他Scala库时很少遇到Enumeration,并且很多Actor的教程使用密封的类/对象来表示Actor的消息.

那么这是否意味着在Scala中,密封类是比Enumeration更好/更传统的选择?

enums scala

12
推荐指数
2
解决办法
4573
查看次数

PHP:检查链接指向的页面

假设hit.php我的网站中有一个页面,并且该页面的链接可以在网站的每个\很多页面上找到..

让我说我点击<a href"hit.php">HIT</a>任何页面.....

是否有一种方式hit.php加载时我可以知道该页面所在的页面..

这意味着如果我点击链接到hit.php'index.php',我可以检查hit.php用户从'index.php'或任何其他页面导航的用户...

我知道我可以通过在URL中传递变量来建立网站,如'hit.php?pagename = index'但是还有其他方法

ps我知道它疯了但仍然:)

php

3
推荐指数
1
解决办法
1899
查看次数

文化敏感大写ToUpperInvariant/ToLowerInvariant

什么特定的英文字母需要ToUpper()和ToLower()案例转换的不变版本调用正确的行为?

.net c#

2
推荐指数
1
解决办法
347
查看次数

我是否应该学习/使用MapReduce或其他类型的并行化来执行此任务?

在与Google的一位朋友交谈后,我想实现某种Job/Worker模型来更新我的数据集.

此数据集镜像第三方服务的数据,因此,要进行更新,我需要对其API进行多次远程调用.我认为将花费大量时间等待第三方服务的回复.我想加快速度,更好地利用我的计算时间,通过并行化这些请求并同时保持其中许多请求,等待他们的个人响应.

在我解释我的特定数据集并解决问题之前,我想澄清一下我正在寻找的答案:

  1. 这是一个非常适合与MapReduce并行化的流程吗?
  2. 如果是的话,在亚马逊的mapreduce模块上运行是否具有成本效益,该模块按小时计费,并在作业完成时向上计算小时数?(我不确定究竟什么算作"工作",所以我不确切知道我将如何收费)
  3. 如果不是,我应该使用另一种系统/模式吗?是否有一个库,这将有助于我在Python做到这一点(在AWS上,usign EC2 + EBS)?
  4. 我在设计这个工作流程时遇到了什么问题?

好的,现在进入细节:

数据集由拥有最喜欢的项目并跟随其他用户的用户组成.目的是能够更新每个用户的队列 - 用户在加载页面时将看到的项目列表,基于她所关注的用户的最喜欢的项目.但是,在我可以处理数据并更新用户队列之前,我需要确保拥有最新的数据,这是API调用的来源.

我可以拨打两个电话:

  • 获取关注用户 - 返回所请求用户所遵循的所有用户,以及
  • 获取收藏的项目 - 返回所请求用户的所有喜爱的项目.

在我打电话给跟随用户更新用户之后,我需要为每个被关注的用户更新喜欢的项目.仅当为所有被跟踪的用户返回所有收藏夹时,才能开始处理该原始用户的队列.此流程如下:

更新UserX的队列

此流程中的工作包括:

  • 开始为用户更新队列 - 通过提取用户,然后更新用户,存储它们,然后为每个用户创建获取收藏夹作业来启动流程.
  • 获取用户的收藏夹 - 来自第三方服务的请求和存储,指定用户的收藏夹列表.
  • 为用户计算新队列 - 现在已经获取了所有数据,处理新队列,然后将结果存储在应用程序层使用的缓存中.

所以,我的问题是:

  1. 这是一个非常适合与MapReduce并行化的流程吗?我不知道它是否会让我启动UserX的进程,获取所有相关数据,并在完成所有操作后返回处理UserX的队列.
  2. 如果是的话,在亚马逊的mapreduce模块上运行是否具有成本效益,该模块按小时计费,并在作业完成时向上计算小时数?如果我使用他们的模块,我有多少"线程"可以等待开放的API请求?
  3. 如果不是,我应该使用另一种系统/模式吗?是否有一个库,这将有助于我在Python做到这一点(在AWS上,usign EC2 + EBS?)?
  4. 我在设计这个工作流程时遇到了什么问题?

感谢阅读,我期待与大家进行一些讨论.

编辑,以回应JimR:

谢谢你的回复.在我写完原始问题后的阅读中,我已经倾向于使用MapReduce了.我还没有确定如何构建它,但我开始觉得MapReduce更适合分发/并行化计算负载,而我真的只是想要并行化HTTP请求.

什么是我的"减少"任务,即获取所有获取数据并将其压缩成结果的部分,并不是计算密集型的.我很确定它会成为一个大的SQL查询,每个用户执行一两秒钟.

所以,我倾向于:

  • Python编写的非MapReduce Job/Worker模型.我的一个谷歌朋友让我为此学习Python,因为它的开销很低,并且可以很好地扩展.
  • 使用Amazon EC2作为计算层.我想这意味着我还需要一个EBS切片来存储我的数据库.
  • 可能使用亚马逊的简单消息队列.听起来这个第三个亚马逊小部件旨在跟踪作业队列,将结果从一个任务移动到另一个任务的输入,并优雅地处理失败的任务.它很便宜.可能值得实现而不是自定义作业队列系统.

python parallel-processing mapreduce amazon-web-services

11
推荐指数
2
解决办法
1086
查看次数

我想制作自己的c#调试器 - 如何做到这一点?我应该使用什么工具?

我有兴趣制作一个程序,它将采用c#代码,并允许我逐行逐步执行该代码 - 一个调试器.

如何在不编写完整的c#编译器的情况下进行此项目?我正在使用Microsoft Visual Studio,但我希望我的软件尽可能独立于其调试器实现.

c# architecture

6
推荐指数
1
解决办法
2962
查看次数

OS X版本的bringSubviewToFront:?

我需要在iPhone上复制bringSubviewToFront的功能:但是我在Mac上编程.如何才能做到这一点?

macos cocoa objective-c

9
推荐指数
2
解决办法
4013
查看次数

如何在Eclipse中配置GCC以使用C99?

我正在Eclipse中开展一个小型C项目; 我刚刚从Ubuntu软件中心安装了Eclipse并添加了C/C++语言支持.我可以很好地构建,运行和调试简单的C程序.

但是我现在正在使用一些C99功能,而且Eclipse抱怨说"'''循环初始声明'只允许在C99模式下使用".

我以为你在makefile中为GCC设置了C99模式,但是makefile是由Eclipse自动生成的,所以我所做的任何更改都会被覆盖,但是我没有看到任何地方将GCC编译器选项放在Eclipse的首选项中,也没有项目属性窗口.

那么我在哪里定义C99模式?

eclipse gcc c99

33
推荐指数
1
解决办法
3万
查看次数

动态创建dojo图表

嗨我需要创建dojo图表,以便他们从某些输入框中获取他们的系列值,并且图表会自动更改.因此,我继续这样做: -

  var showChart= function(){
   var thevalue=dijit.byId('myvalue').get('value');//gets thevalue from the dijit numbertextbox
   var chart1 = new dojox.charting.Chart2D("showgoals");
   chart1.addPlot("default", {type: "Lines"});
   chart1.addAxis("x");
   chart1.addAxis("y", {vertical: true});
   chart1.addSeries("Series 1", [thevalue, 2, 2, 3, 4, 5, 5, 7]);
   chart1.render();};
Run Code Online (Sandbox Code Playgroud)

然后我会在值发生变化时调用此函数: -

      dojo.connect(dojo.byId('myvalue'), "onchange",showChart);//whenever value changes the showChart function
Run Code Online (Sandbox Code Playgroud)

叫做

html看起来像这样: -

<div dojoType="dijit.layout.ContentPane" region="center">
           <div id="showgoals" style="width: 250px; height:150px;" class="graph1"></div>
Run Code Online (Sandbox Code Playgroud)

以下是更改值的文本框: -

<input id="myvalue" type="text" dojoType="dijit.form.NumberTextBox" name="myvalue"value="1000000"  required="true"
                           invalidMessage="Only Numbers allowed"/><br/><br/>
Run Code Online (Sandbox Code Playgroud)

我想要的是,只要此输入框中的值发生变化,函数showchart就会被调用,并且当前的图表会自动更改以显示新值,但发生的事情是我完全得到一个新图表,这看起来很自然.我是否必须销毁旧图表然后重新创建新图表,如果是这样,请告诉我如何.

dojo dojox.charting

1
推荐指数
1
解决办法
3119
查看次数

python:module没有属性mechanize

#!/usr/bin/env python
import mechanize

mech = mechanize.Browser()
page = br.open(SchoolRank('KY'))
Run Code Online (Sandbox Code Playgroud)

得到:

Traceback (most recent call last):
  File "mechanize.py", line 2, in <module>
    import mechanize
  File "/home/jcress/Documents/programming/schooldig/trunk/mechanize.py", line 12, in <module>
    mech = mechanize.Browser()
AttributeError: 'module' object has no attribute 'Browser'
Run Code Online (Sandbox Code Playgroud)

我很困惑.我为2.6和2.7安装了模块,结果相同......

python attributes module mechanize-python

3
推荐指数
1
解决办法
3542
查看次数

将函数应用于矩阵或数据框的每一行

假设我有一个by 2矩阵和一个函数,它将一个2向量作为其参数之一.我想将函数应用于矩阵的每一行并得到一个n向量.在R中如何做到这一点?

例如,我想在三个点上计算2D标准正态分布的密度:

bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){
    exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2))
}

out <- rbind(c(1, 2), c(3, 4), c(5, 6))
Run Code Online (Sandbox Code Playgroud)

如何将功能应用到每一行out

如何以指定的方式将除了点之外的其他参数的值传递给函数?

r function matrix apply sapply

114
推荐指数
5
解决办法
22万
查看次数