小编Hub*_*bro的帖子

相同的字符串比较给我错误

我有两个相同的字符串,一个在数组中,一个在String变量中.当我比较这些IDENTICAL字符串时,我每次都会得到错误.我已经调试和调试,但每次都得到相同的结果.这是有问题的代码

String temp = ""+(num1*num2);
Boolean equal = temp == answers[i];

if(equal) {
    correct[i] = true;
    num_correct ++;
}else{
    correct[i] = false;
}
Run Code Online (Sandbox Code Playgroud)

我再次调试了这个程序的每个细节,我确信这些字符串是IDENTICAL.为什么Java在比较时返回false?

java arrays string comparison

7
推荐指数
2
解决办法
9212
查看次数

为什么连续运行PHP脚本太糟糕了?

我有一张地图.在这张地图上,我想显示从几个表中收集的实时数据,其中一些表有惊人的行数.不用说,获取此信息需要长时间.此外,涉及ping.根据脱机或远程服务器的不同,此数据的收集时间可能在1到10分钟之间.

我希望地图能够快速响应,所以我决定在我的数据库中添加一个新表,其中只包含地图所需的数据.这意味着我需要一个后台进程来持续更新新表中的信息.Cron作业当然是可能的,但我希望在前一个间隔完成后立即刷新数据.如果离线IP地址的数量突然激增并且循环运行的时间比Cron作业的间隔长,该怎么办?

我自己的解决方案是在PHP中创建一个由命令行运行的无限循环.此循环将刷新映射到MySQL的数据,并记录其他有用的数据,如循环时间和ping尝试失败等,然后在短暂停顿(几秒钟)后重新启动.

然而 - 人们一再告诉我,永远运行的PHP脚本是不好的.过了一会儿它会占用千兆字节的RAM(和其他可怕的东西)

部分我正在写这个问题,以确认这是否实际上是这样,但一些提示和技巧我将如何编写一个不泄漏内存的干净循环(如果可能的话)不会出错.关于此事的意见也将受到赞赏.

我觉得答案对我将标记为正确的问题有最大的启示.

php cron command-line infinite-loop

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

Python 3.2"with/as"是做什么的

我正在学习Python,我正在尝试这个with **** as ****:陈述.我认为它的工作方式与C#很相似using(****) {,但我担心我会跟踪过时的例子.

这是我的代码:

# -*- coding: iso-8859-1 -*-

import pprint

pow = 1, 2, 3

with pprint.pprint as pprint:
    pprint(pow)
Run Code Online (Sandbox Code Playgroud)

我假设这里发生的事情是pprint在我的小闭包中是pprint.pprint函数的别名.我遇到了一个奇怪的错误:

Traceback (most recent call last):
  File "test.py", line 7, in <module>
    with pprint.pprint as pprint:
AttributeError: __exit__
Run Code Online (Sandbox Code Playgroud)

所以现在我想我正在使用旧版Python的语法,就像我之前做的那样(print "Hello")

为什么我的代码不按预期工作?

python with-statement python-3.x

7
推荐指数
2
解决办法
2万
查看次数

有没有办法通过Access-Control-Allow-Origin在我自己的服务器上进行开发?

我收到此JavaScript错误

XMLHttpRequest无法加载http://foo.bar.no/API/map_tools/clean_addresses/check.Access-Control-Allow-Origin不允许来源http://foo.bar.no:9294.

这些都在同一个域和相同的服务器上,但我的JavaScript项目由一个独立的服务器脚本托管,该脚本自动将JavaScript及其依赖项捆绑到一个文件中.

在我开发的过程中如何克服这个限制?


我试过允许我的JavaScript服务器脚本连接.这是网址卷曲的结果:

HTTP/1.1 200 OK
Date: Wed, 11 Jan 2012 09:05:14 GMT
Server: Apache/2.2.16 (Debian)
Access-Control-Allow-Origin: http://foo.bar.no:9294
Vary: Accept-Encoding
Content-Length: 70
Content-Type: text/plain

array(1) {
  ["q"]=>
  string(31) "map_tools/clean_addresses/check"
}

而且我仍然得到与上面粘贴完全相同的错误.为什么当显然允许时,Chrome仍然拒绝连接到该死的URL!?

javascript ajax xmlhttprequest

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

如何将dict转换为unicode JSON字符串?

使用标准库json模块似乎无法实现这一点.使用json.dumps它时会自动转义所有非ASCII字符,然后将字符串编码为ASCII.我可以指定它不会转义非ASCII字符,但是当它尝试将输出转换为ASCII时它会崩溃.

问题是 - 我不想要ASCII!我只想将我的JSON字符串作为unicode(或UTF-8)字符串.有没有方便的方法呢?

这是一个展示我想要的例子:

d = {'navn': 'Åge', 'stilling': 'Lærling'}
json.dumps(d, output_encoding='utf8')
# => '{"stilling": "Lærling", "navn": "Åge"}'
Run Code Online (Sandbox Code Playgroud)

但是当然,没有output_encoding这样的选项,所以这里是实际的输出:

d = {'navn': 'Åge', 'stilling': 'Lærling'}
json.dumps(d)
# => '{"stilling": "L\\u00e6rling", "navn": "\\u00c5ge"}'
Run Code Online (Sandbox Code Playgroud)

总而言之 - 我想将Python dict转换为UTF-8 JSON字符串而不会有任何转义.我怎样才能做到这一点?


我会接受以下解决方案:

  • 黑客(预处理和后处理输入dumps以达到预期效果)
  • 子类化JSONEncoder(我不知道它是如何工作的,文档不是很有用)
  • PyPi上提供的第三方库

python json

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

使用virtualenv时,为什么Python构建突然不是Framework构建?

我在我的Mac上安装了Python 2.7作为Framework构建.我已经安装并确认wxPython适用于这个Python构建.但是当我使用virtualenv创建虚拟环境时,生成的Python可执行文件不是框架构建,或者至少不是根据wxPython:

This program needs access to the screen.
Please run with a Framework build of python, and only when you are
logged in on the main display of your Mac.

有任何想法吗?

python macos wxpython virtualenv

7
推荐指数
2
解决办法
3997
查看次数

Joomla只是慢一点,还是我可以加速它?

我现在用谷歌搜索了这个问题,但我找不到一篇讨论Joomla速度的文章,而不是脚本和图像等外部资源的加载速度.我的Apache + PHP设置运行良好 - 启用了压缩,我正在使用本地虚拟机来运行它.问题在于服务器端的Joomla,我不知道如何追踪它的来源.

我本地Joomla设置上的页面总是需要2到3秒才能加载.根据Chrome开发者工具中的" 网络"标签,浏览器会等待HTML页面大约2秒钟,然后在大约0.3秒内加载所有外部资源.每个页面都是如此,甚至是管理员页面.这导致非常令人沮丧的页面浏览,因为每次链接点击后都会进行相当长的等待.为了说明,这是加载速度图的屏幕截图.蓝线是HTML页面:

插图

什么是Joomla可以为每个请求处理2秒钟?Joomla这么慢,或者我的设置有问题吗?如果是这样,我该如何调试呢?


我试过的

  • 我创建了一个完全独立于Joomla设置的PHP页面,并填充它<?php phpinfo(); ?>只是为了确认所有PHP脚本都不受2s延迟的影响.他们不是.
  • 我编写并执行了一个小的PHP脚本,它通过"127.0.0.1"和"localhost"连接到本地MySQL服务器,并打印出Joomla数据库中的所有表.该脚本只需几分之一秒即可运行,因此连接到数据库时,故障不会出现DNS问题.

用于加载首页的Joomla配置文件信息:

Application 0.000 seconds (+0.000); 0.81 MB (+0.807) - afterLoad
Application 0.217 seconds (+0.217); 2.29 MB (+1.479) - afterInitialise
Application 0.296 seconds (+0.079); 4.34 MB (+2.055) - afterRoute
Application 0.640 seconds (+0.345); 5.59 MB (+1.247) - afterDispatch
Application 0.705 seconds (+0.065); 5.85 MB (+0.266) - beforeRenderModule mod_menu (Main Menu)
Application 0.774 seconds (+0.069); 5.91 MB (+0.053) - afterRenderModule …

php performance joomla

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

如何让Symfony在所有响应中指定我的字符集?

我的Symfony 2应用程序的所有响应都有这个标题行:

Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)

所以我的浏览器假设输出字符集是ISO-8859-1.我想标题说:

Content-Type: text/html; charset=utf8
Run Code Online (Sandbox Code Playgroud)

代替.我知道我可以为每个响应手动执行此操作:

$response->setCharset('UTF-8');
Run Code Online (Sandbox Code Playgroud)

但这将是非常多余的,因为我的应用程序有很多控件,只能输出UTF-8.我徒劳地搜索了一个控制默认字符集的Symfony配置设置.我发现framework.charset但这似乎是无关的,无论如何默认是UTF-8.

如何让Symfony在所有响应中指定我的字符集?


我的想法

我知道这不是一个问题(大多数时候),因为我可以在HTML和XML中明确指定charset.问题是我服务纯文本或JSON,或者我正在使用转储变量var_dump.在这两种情况下,所有非ASCII符号都被扰乱,因为我的浏览器冒错了猜测.

我的备份解决方案是将响应类子类化并放入$this->setCharset('UTF-8')构造函数中.

php symfony

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

我可以将块传递给Proc吗?

我想知道是否可以将块传递给Proc.只是传递一个块Proc.call不起作用:

foo = Proc.new {
  yield
}

foo.call {
  puts "test"
}
Run Code Online (Sandbox Code Playgroud)

结果是:

LocalJumpError:没有给出块(yield)

lambdas也是如此.然而,这确实与方法对象的工作:

class Foo
  def bar
    yield
  end
end

bar = Foo.new.method :bar

bar.call { puts "Success!" }
Run Code Online (Sandbox Code Playgroud)

结果是:

成功!

奇怪的是,在将方法对象转换为proc之后它仍然有效:

bar.to_proc.call { puts "Success!" }
Run Code Online (Sandbox Code Playgroud)

结果是:

成功!

那么为什么从一个块生成的Proc不接受块,但原来是一个方法的Proc呢?是否可以从接受块的块创建Proc?

ruby

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

如何在不影响超类的情况下覆盖Ruby子类中的变量?

假设我有一个带有一些"静态"变量的类.我希望该类的子类能够覆盖这些变量而不会影响原始类.使用类变量是不可能的,因为它们似乎在子类和超类之间共享:

class Foo
  @@test = "a"

  def speak; puts @@test; end
end

class Bar < Foo
  @@test = "b"
end

Bar.new.speak
# b

Foo.new.speak
# b
Run Code Online (Sandbox Code Playgroud)

使用常量也是不可能的:

class Foo
  TEST = "a"

  def speak; puts TEST; end
end

class Bar < Foo
  TEST = "b"
end

Bar.new.speak
# a

Foo.new.speak
# a
Run Code Online (Sandbox Code Playgroud)

超类中定义的方法忽略子类中的常量.

显而易见的解决方法是为需要"可覆盖"的变量定义方法:

class Foo
  def test; "a"; end
end
Run Code Online (Sandbox Code Playgroud)

但这感觉就像一个黑客.我觉得这应该可以使用类变量,我可能只是做错了.例如,当我子类化时Object(默认情况下会发生这种情况):

class Foo < Object
  @@bar = 123
end

Object.class_variable_get(:@@bar)
# NameError: uninitialized class variable @@bar in …
Run Code Online (Sandbox Code Playgroud)

ruby

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