为什么Perl不支持normal []运算符来索引字符串?
几乎所有主流编程语言都支持这个运算符,特别是另外两个'P':Python和PHP.而且,我认为应该很容易实现这个小语法.另外,作为Perl编程语言的哲学 - 尽可能地懒惰,为什么我们懒得使用函数来索引字符串?
Perl 6会支持这种语法吗?
有没有办法隐藏jqGrid表中的列,但是在表单编辑器模式对话框中编辑行时,它是否显示为只读?
这种情况刚刚开始三周左右.我的网站内容没有改变,它只是一个使用MySQL作为后端的phpBB论坛.
在一年多的时间里没有任何改变,但是最近,每两天左右,服务器只关闭而根本无法访问,我必须通知我的服务提供商实际重启机器.
它似乎与我在日志中发现的这些SIGTERM错误有关.问题是我不知道如何解决这些问题或找到根本原因,因为我缺乏这方面的技能.
任何人都有任何想法可能会发生什么?
Apache/2.2.3(CentOS)
20051115
Linux 2.6.18-028stab057.4#1 SMP Fri Aug 1 10:47:59 MSD 2008 x86_64
从错误日志:[Sun Nov 01 15:18:53 2009] [通知]抓住了SIGTERM,关闭了
不完全确定是什么导致了我的问题,但这听起来不是一件好事.
如果需要,我可以发布更多日志信息
[Sun Nov 01 05:07:17 2009] [notice] Digest: generating secret for digest authentication ... [Sun Nov 01 05:07:17 2009] [notice] Digest: done [Sun Nov 01 05:07:19 2009] [notice] mod_python: Creating 4 session mutexes based on 10 max processes and 0 max threads. [Sun Nov 01 05:07:19 2009] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match …
在这些定义foo的每种形式中发生了什么?:
scala> def foo = {1}
foo: Int
scala> foo
res2: Int = 1
Run Code Online (Sandbox Code Playgroud)
但:
scala> def foo {1}
foo: Unit
scala> foo
scala>
Run Code Online (Sandbox Code Playgroud) 我正在使用Jetty 6,并想知道何时应该在ThreadPool上使用QueuedThreadPool?默认情况下,Jetty 6配置了QueuedThreadPool.
我的服务器安装了Java 6,所以我认为我应该使用ThreadPool:
<New class="org.mortbay.thread.QueuedThreadPool">
<Set name="minThreads">10</Set>
<Set name="maxThreads">200</Set>
<Set name="lowThreads">20</Set>
<Set name="SpawnOrShrinkAt">2</Set>
</New>
<New class="org.mortbay.thread.concurrent.ThreadPool">
<Set name="corePoolSize">50</Set>
<Set name="maximumPoolSize">50</Set>
</New>
Run Code Online (Sandbox Code Playgroud)
谢谢,沃尔特
我刚刚在我们公司的Visual Studio项目中引入了SVN,并创建了一个看起来像这样的存储库("解决方案"是Visual Studio解决方案,包含1..n个项目):
/solution1/trunk/projectA/...
/projectB/...
/solution2/trunk/projectC/...
/customerX/solution3/trunk/projectD/...
/solution4/trunk/projectE/...
/projectF/...
Run Code Online (Sandbox Code Playgroud)
现在,我有两个选项来构建本地工作目录:
选项A:让用户使用AnkhSVN单独检出每个解决方案,从而产生如下结构:
/solution1/projectA/...
/projectB/...
/solution2/projectC/...
/solution3/projectD/...
/solution4/projectE/...
/projectF/...
Run Code Online (Sandbox Code Playgroud)
或者,如果我告诉用户手动创建customerX子目录:
/solution1/projectA/...
/projectB/...
/solution2/projectC/...
/customerX/solution3/projectD/...
/customerX/solution4/projectE/...
/projectF/...
Run Code Online (Sandbox Code Playgroud)
优点:用户只能查看他真正需要的解决方案.缺点:每个解决方案都需要单独检出/更新.
选项B:告诉用户使用TortoiseSVN签出整个存储库,导致结构与存储库完全相同:
/solution1/trunk/projectA/...
/projectB/...
/solution2/trunk/projectC/...
/customerX/solution3/trunk/projectD/...
/solution4/trunk/projectE/...
/projectF/...
Run Code Online (Sandbox Code Playgroud)
优点:"svn更新所有内容"非常容易.缺点:用户还拥有所有分支和标签的本地副本.
问题:由于某些项目是在解决方案之间共享的(比方说,例如,projectA是一个也被解决方案3使用的库),我们需要修复一个目录结构,以确保解决方案文件中的相对路径是正确的.你推荐哪个选项?为什么?
编辑:感谢您的所有优秀答案,特别是提及svn:externals和强调良好的存储库设计的重要性.我最终更新了我的存储库结构:
/trunk/solution1/projectA/...
/projectB/...
/solution2/projectC/...
/customerX/solution3/projectD/...
-svn:external to projectA
/solution4/projectE/...
/projectF/...
Run Code Online (Sandbox Code Playgroud)
这确保了在解决方案3上工作的开发人员只需要检查解决方案3(而不是解决方案1),并且可以将解决方案签出到任何目录,即工作目录不需要固定的结构.
我正在尝试为实时3D游戏创建一个C++插件.虽然我相信对UDP的理论,它是如何工作的,它的优点和缺点有一个坚定的把握,但我关注的主要问题是性能,可扩展性和可能的统计数据.我知道,在UDP甚至TCP方面,我可能只知道海洋的价值下降.
问题:
在某种情况下,典型的专用服务器在任何时候都能够应对多少玩家.
现在为场景......
让我们假设我们有一个MMORPG游戏,所有玩家都可以在"游戏世界"的任何地方.每个人都向同一个服务器/服务器中心发送和接收数据,因为每个人都必须能够......在他们的路径最终交叉时看到并与其他人互动.这是一个实时的第一人称游戏,所以玩家的位置必须是最新的,非常及时.
让我们说我们有1000名(甚至10000名)在线玩家......
这里需要做三件事:
每个玩家通过UDP将其数据流式传输到游戏服务器,例如每秒14次发送.简而言之,这些数据包括每个玩家的身份,地点和内容.发送的数据已经过标准化,并针对大小和速度进行了优化,以鼓励最小的带宽使用.
服务器每秒14次接收这些分组多达1000个(用于演示目的的非虚构图),因此每秒处理14 000个分组.该处理阶段通常涉及更新中央存储器数据结构,其中玩家旧的x,y,z位置数据将用他的新位置和时间戳更新.服务器上的此数据结构包含整个游戏世界中所有玩家的所有数据.
服务器(可能是一个单独的线程,甚至可能是一个单独的机器)现在需要将数据包广播给所有其他玩家,因此他们可以更新他们的屏幕以显示地图上的其他玩家.这也是每秒发生14次.(其中14可能通常是动态数字,根据使用的CPU容量,繁忙的CPU,较少的帧速率而反之亦然).
重要的是:对于玩家X,只有他位置的视觉范围内的其他玩家的数据被发送到相应的玩家.因此,如果玩家Y在2英里外,他的数据需要发送到X,但如果玩家Z在行星的另一边,他的数据不会被分派到X作为节省带宽的尝试.这当然涉及更多的处理,因为必须使用最有效的索引解决方案来迭代和过滤数据.
现在我担心的是,从客户端机器发送数据包,将其送入服务器RAM,稍微处理更新数据,并选择性地将信息广播给其他玩家,需要时间.这意味着,服务器能够处理某个阈值,是的,取决于我的实现的有效性,所用硬件的速度和能力,当然还有其他外部因素,如互联网速度,交通和nr.太阳耀斑每秒击中地球......开个玩笑.
我试图从其他人那里了解,他们已经完成了这个过程,陷阱是什么,以及在创建多人插件时我可以期待的典型表现.
我可以很容易地说:"我想要同时为同一台服务器上的10000个人提供服务",你可能会说:"每个服务器100个是更现实和可能的数字."
所以我知道我可能需要提出一个多服务器/云计算中心来处理我的数千个请求和调度,在多台机器上分配处理负载.所以我可能有一些机器只处理接收数据,一个巨大的中央盒子,就像所有接收和调度机器以某种方式共享的内存数据库,当然还有一系列调度机器.
显然,存在技术限制,我真的不知道会发生什么以及它们是什么.并且在问题上抛出额外的CPU和服务器盒将不会成功地解决问题,因为机器之间的更多相互通信也将使该过程减慢一些.我认为你投入的CPU越多,可能会降低效率甚至在某个阈值时反转CPU工作效率.
可以而且我应该考虑P2P(Peer To Peer)进行多人游戏!
我是否现实地说我能够在任何时候满足2500名玩家的需求?
几年后可以扩展到10000名玩家吗?
我知道这个问题很长,所以请接受我真诚的道歉.
我正在使用PDO插入记录(mysql和php)
$stmt->bindParam(':field1', $field1, PDO::PARAM_STR);
$stmt->bindParam(':field2', $field2, PDO::PARAM_STR);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
有没有办法知道它是否成功插入,例如,如果没有插入记录,因为它是重复的?
编辑:当然我可以查看数据库,但我的意思是程序化反馈.
我目前正在为Rails应用程序设置一个新的生产环境,该应用程序包括多个负载均衡的应用程序服务器(目前只有两个,但随着时间的推移会增加).
我想使用Capistrano(我已经用于现有的单个服务器)在单个命令中处理应用程序到所有这些服务器的部署.我可以看到这样做的唯一方法是使用capistrano-ext(我其实已经使用部署到我的测试和试运行环境),通过定义一个新的"环境"为每个应用服务器(app1,app2等等),并进行了使用部署就像是:
cap app1 app2 app3 deploy
Run Code Online (Sandbox Code Playgroud)
这是推荐的做法还是有更好的方法?
apache ×1
capistrano ×1
crash ×1
database ×1
deployment ×1
drawing ×1
indexing ×1
javascript ×1
jetty ×1
jqgrid ×1
jquery ×1
linux ×1
methods ×1
multiplayer ×1
mysql ×1
networking ×1
optimization ×1
pdo ×1
perl ×1
php ×1
scala ×1
sigterm ×1
string ×1
svn ×1
udp ×1
vector ×1