我们有一个庞大而古老的代码库,需要大量的清理工作.我们一直都有编码标准,每个人都一直试图遵循这些标准,但是它们没有得到强制执行,因此随着时间的推移,很多违规行为都已进入.其中许多只是空白问题,比如使用制表符而不是空格,或者是空格.不应该是任何或缺少的空间.我们将开始积极执行我们的编码标准,以确保更多的违规行为不会蔓延,但很难以自动方式仅对更改强制执行,因此清理这些旧文件会很不错.
有些工具可以自动修复这些问题,但是如果我这样做,那么责备就会把我看作是这些线路的拥有者,而实际上我可能从来没有见过它们.我知道有一个设置可以指责忽略空白变化,但我不能让每个人都以同样的方式使用责任,包括其他可视化工具和gitstats之类的东西.在一个理想的世界中,有一些方法可以重写历史,看起来像是从未引入过违规,而没有掩盖谁介绍了实际的代码,但我找不到类似的东西.
我负责用PHP编写的API的后端部分,主要由Flash客户端使用.现在发生的事情是:Flash客户端进行调用,后端加载必要的数据,执行任何必要的处理和后期处理,记录和缓存,然后将结果返回给客户端.
我希望发生的是尽快将数据返回给客户端,关闭连接,然后完成客户端不必关心的所有事情.这可能会使API看起来更具响应性.遵循这里的建议:
http://php.net/manual/en/features.connection-handling.php
实际上是有效的,除了我必须关闭gzip编码以使其工作,这是不太实际的.我们在apache中使用mod_deflate,因此使用它的解决方案将是理想的,但如果有必要,我还会考虑使用不同的方法来gzip我们的内容.
它看起来像应该有办法让阿帕奇知道"我送你所有我要发送的数据,"但我似乎无法找到这样的事情.
对于那些想知道的人,是的,我可以尽早清除结果,但Flash客户端将不会处理它们,直到连接关闭.
我们在应用中流式传输某些文件时遇到了一些奇怪的问题。经过大量测试之后,我们将其范围缩小到lighttpd和Droid之间似乎存在的某种问题,这不仅是我们的应用程序,还包括内置播放器。
如果将Droid浏览器指向http://stream29l.grooveshark.com/collinSong.mp3,它将无法正常工作。Apache上http://staging.api.grooveshark.com/collinSong.mp3上托管的同一文件可以完美传输。这些文件是相同的。这两个URL在运行1.5和1.6的其他电话以及运行2.0.1的仿真器上均有效。
无论是通过wifi播放还是通过3G播放,lighttpd URL都会失败。
我的猜测是,在Droid不能容忍的网络级别上发生了一些时髦的事情,但是我已经可以调试了。有任何想法吗?
更新:我在运行CentOS的笔记本电脑上安装了lighttpd并将其设置为可以提供相同的文件(对不起,外界无法访问),Droid可以很好地为它们提供服务。我们的服务器必须是一个特定的配置问题,或者是lighttpd版本的差异。现在,我的笔记本电脑正在运行1.4.22,而我们的生产服务器正在运行1.5.0。我们的生产服务器还具有以下配置集,这使我在笔记本电脑上出现问题(请注意:我可能缺少模块等):
server.max-fds = 7000
server.network-backend = "gthread-aio"
server.stat-cache-engine = "fam"
Run Code Online (Sandbox Code Playgroud)
服务器还安装了以下其他模块:
"mod_proxy_core",
"mod_proxy_backend_http",
"mod_proxy_backend_fastcgi",
Run Code Online (Sandbox Code Playgroud)
我将尝试使模块和配置匹配100%,看看明天是否会重现该问题。如果没有,我将尝试将笔记本电脑升级到1.5.0,看看是否可以。
同时,有人知道与上述配置有关的问题吗?
更新2: 我在笔记本电脑上升级到1.5.0,流collinSong.mp3仍然有效。添加:server.network-backend =“ gthread-aio”没有中断流。但是这一行做到了:server.stat-cache-engine =“ fam”
注释掉上面的代码行后,便可以从笔记本电脑上进行流媒体播放,而启用它则使其无法正常工作。我实际上是让我们的管理员从配置中删除该行并重新启动(他说我们仍然不需要该设置),但是问题仍然存在。
因此,接下来我尝试在笔记本电脑上将stat-cache-engine注释掉,并添加以下行:“ mod_proxy_core”,“ mod_proxy_backend_http”,“ mod_proxy_backend_fastcgi”在启用这些功能后,笔记本电脑上的流再次中断,并且在我将其关闭时可以使用。不幸的是,这些显然是我们在服务器上使用的线程模型所必需的,因此我无法尝试在生产中关闭它们。我不知道这是否给其他人任何线索,但这就是我的全部。
我很想与Motorola的开发人员联系,因为这似乎是该平台的一个错误。在其他android设备,PC,iPhone,黑莓和诺基亚手机上都能正常工作,但在Droid上无法正常工作。
在我工作的地方,我们广泛使用Bugzilla进行错误和功能跟踪.我们利用内置的里程碑来帮助我们更好地管理时间表,但有时候优先级会发生变化,里程碑需要重新排列.在这段时间里,我们使用"一次更改几个错误"功能来移动它们,但结果是每个人都有大量的bug(当然除了实际进行更改的人).
如果一次更改多个错误,有没有办法轻松关闭电子邮件?