我正在开发一款能够处理数百万玩家的在线游戏服务器.现在游戏需要排行榜并且希望能够向玩家显示当前玩家当前位置以及可能在当前玩家位置附近的其他玩家以及玩家朋友的位置.
现在我已经在MySQL之前完成了这些工作并且我知道它在技术上是如何可能的,但我想,因为这是许多在线游戏的常见做法,必须有现有的库或数据库,特别是为此目的?
任何人都可以告诉我什么数据库最适合这些类型的查询,可能还有任何预先存在的库已经做了很多这方面的工作?具有API访问权限的第三方服务也可以.
希望得到一些好的建议,谢谢!
编辑:
为了澄清,我需要一个可以容纳数百万个条目的数据库(到目前为止MySQL是有用的),我可以轻松获得排名结果.例如,如果我从"排行榜"表中获取特定行,我需要知道该行具有哪个排名.无论db的大小如何,此查询都必须低于500毫秒.
或者,使用当前排名信息更新表的方法可能会很长,因为此更新查询不会锁定整个表,并且更新查询在30秒内运行.
关于使用什么数据库/机制或第三方服务的任何想法将非常感谢!
我刚刚开始使用PHPUnit,并且想知道是否存在转储变量内容的构建方式?
用例是因为我已经在谈论我正在开发的代码,所以我可以使用PHPUnit来测试代码的稳定性,还可以在开发时输出调试信息.
我知道xdebug可以为我填补这个空白,但有时候只是更容易在输出中转储一些信息而不是摆弄我的IDE调试器,这对于追溯错误的原因更有用.
我知道我可以做一个常规的var_dump,我只是想知道PHPUnit是否有一个接口.
谢谢!
编辑:
决定按照大卫的回答一起破解它.
绝不是一个完美的解决方案,但它能为我完成这项工作.如果有人有兴趣:
*** PHPUnit-3.6.3/PHPUnit/Framework/TestCase.php 2011-11-09 12:25:38.000000000 -0500
--- PHPUnit/Framework/TestCase.php 2011-11-09 15:27:02.193317219 -0500
***************
*** 291,296 ****
--- 291,298 ----
* @var boolean
*/
private $outputBufferingActive = FALSE;
+
+ public static $ob_output = array();
/**
* Constructs a test case with the given name.
***************
*** 913,921 ****
--- 915,927 ----
}
try {
+ ob_start();
$testResult = $method->invokeArgs(
$this, array_merge($this->data, $this->dependencyInput)
);
+
+ Static::$ob_output[ $method->name ] = ob_get_contents();
+ ob_end_clean();
}
catch …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Rails,而且还有很多东西我还需要学习,所以我很可能比普通的Rails/Ruby问题更频繁地使用Stackoverflow.
我只想弄清楚Helpers如何在Rails中工作.从我到目前为止看到的,Helpers旨在与视图一起使用,而不是与控制器一起使用.
但是我想创建一个简单的函数来验证params中给出的用户输入(检查是否定义了某些params并可选择检查它们的值是否有效).
任何人都可以向我解释实现这个的最佳方法是什么?(请记住,我将在许多不同的控制器中使用它,因此它应该是全局可用的.)
我还注意到默认情况下Rails不会在主应用程序文件夹中生成lib文件夹.开发人员是将他们的lib放在主文件夹中的app文件夹之外,还是Rails使用不同的库?
我正在尝试添加一个CSS规则,使默认行为不允许选择页面上的文本或元素.然后,我为特定节点(例如段落或标题文本)添加规则,以允许对它们进行文本选择.
不幸的是,这不能按预期工作,似乎无法在子节点上覆盖此设置.
检查这个jsfiddle,看看我的意思:
知道我怎么能让它正常工作?
谢谢
编辑:
为了更好地说明问题:
基本上我有一个iframe加载,只要它触发onload事件就从父进程访问.它运行正常,但是当iframe的内容不再在同一个域上时,我会收到错误,这是预期的.
唯一的问题是,我想抑制这些错误.不幸的是,try/catch没有捕获此异常,并且尝试访问任何这些属性以验证它们会再次产生相同的错误,从而无法实现目的.
有没有一种可靠的方法让我只是检查iframe内容是否可以访问而不会产生任何错误消息?
谢谢
编辑:
为了上下文而没有人回答无关的评论; 我正在编写一个小脚本,根据iframes文档的高度自动调整父页面上的iframe大小.当用户点击指向域外的iframe内的链接时,我显然无法检测到页面的高度,但我宁愿不在控制台中触发任何错误,而是优雅地处理异常.
我知道有可用的解决方法,我只是想通过弄清楚是否有一种优雅的方式来处理这类案例来教育自己,而不仅仅是诉诸丑陋的解决方法.
我试图将文本h1垂直对齐到中间,看到文本可能会换行,无论是1行还是2行都需要看起来很好看.
这是我使用的CSS:
h1 {
font-size: 12pt;
line-height: 10pt;
min-height: 30px;
vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)
HTML非常简单:
<h1>title</h1>
Run Code Online (Sandbox Code Playgroud)
无论我输入什么值vertical-align,文本始终位于h1元素的顶部.
我错过了解vertical-align物业吗?
我在Chrome和Firefox之间的文本呈现方面存在一些重大差异.Chrome似乎对文本应用了一些抗锯齿规则,并将其缩小了很多.
我尝试过使用-webkit-font-smoothing,字母间距和字间距但似乎没有任何效果.
查看截图

相关CSS(计算):
color: #C4C4C4;
font-family: sans-serif;
font-size: 9px;
font-style: normal;
font-variant: normal;
font-weight: normal;
Run Code Online (Sandbox Code Playgroud)

相关CSS(计算):
font-family: sans-serif;
font-size: 9px;
font-weight: 400;
font-style: normal;
font-size-adjust: none
color: #C4C4C4;
text-transform: none;
text-decoration: none;
letter-spacing: normal;
word-spacing: 0;
line-height: 11.0833px;
text-align: start;
vertical-align: baseline;
direction: ltr;
Run Code Online (Sandbox Code Playgroud)
请注意,背景中的淡化文本只是一个图像..忽略它.
我有一种感觉Chrome有一个用于消除锯齿规则的css开关,但不知道在哪里可以查找更多信息.
编辑:
jsfiddle:http://jsfiddle.net/mHzhQ/
为了记录,我在Ubuntu上.可能这会产生影响..
有小费吗?
我正在尝试使用sphinx来记录文档的多个"级别",例如:
我们的想法是,目录栏显示在侧栏上,相对于您所在的部分.因此,当您在主索引上时,它只显示上面提到的部分.当你进入eg."手动"它显示了该部分特定的不同ToC,以及返回主ToC的方法.
我一直试图弄清楚如何让它在Sphinx中工作而不会入侵它,但到目前为止还不能找到方法.文件夹结构已经反映了不同的部分(即所有"手动"文档存储在_source/manual下),我尝试在每个目录中放置单独的索引文件,但似乎toctree功能只查看主索引文件.
我正在使用"readthedocs"主题,我正在特别关注的代码是https://github.com/snide/sphinx_rtd_theme/blob/master/sphinx_rtd_theme/layout.html#L93
谁能告诉我如何使用Sphinx添加像这样的ToC?
谢谢
python documentation documentation-generation python-sphinx read-the-docs
我正在研究基于phpdoc生成文档的不同解决方案,Doxygen看起来很棒,但到目前为止搜索受到严重限制.
例如,我搜索字符串"session",它给了我2个结果:
同一个类也有一个名为getSession的方法,我似乎无法找到它.不仅如此,类本身在名称中还有"Session",但它不在搜索结果中.
有没有办法Doxygen实际上可以搜索这些方法/类,还是设计为功能有限?
我正在尝试解组 YAML 条目,这些条目可以是字符串或键列表:值字符串(按照 Go 的映射)。可悲的是,我无法弄清楚如何完成这项工作。我知道我可以编写自己的解组器,但这似乎只适用于结构。
我有第一部分工作:
package main
import (
"log"
"gopkg.in/yaml.v2"
)
type Data struct {
Entry []Entry `yaml:"entries"`
}
type Entry map[string]string
var dat string = `
entries:
- keya1: val1
keya2: val2
- keyb1: val1
keyb2: val2
- val3`
func main() {
out := Data{}
if err := yaml.Unmarshal([]byte(dat), &out); err != nil {
log.Fatal(err)
}
log.Printf("%+v", out)
}
Run Code Online (Sandbox Code Playgroud)
但- val3显然,该 条目现在会导致错误。我怎样才能让它同时识别列表和单个字符串条目?
谢谢