小编And*_*Dog的帖子

Jython + Django还没准备好投入生产?

最近我在Jython平台上玩Django,并希望在"生产"中看到它的性能.我测试的网站只是一个简单的return HttpResponse("Time %.2f" % time.time())视图,因此不涉及数据库.我尝试了以下两种组合(使用ab -c15 -n500 -k <url>VirtualBox上的Ubuntu Server 10.10中的所有内容完成测量):

  • J2EE应用服务器(Tomcat/Glassfish),部署了WAR文件

    我得到的结果就像

    Requests per second:    143.50 [#/sec] (mean)
    [...]
    Percentage of the requests served within a certain time (ms)
      50%     16
      66%     16
      75%     16
      80%     16
      90%     31
      95%     31
      98%    641
      99%   3219
     100%   3219 (longest request)
    
    Run Code Online (Sandbox Code Playgroud)

    显然,服务器偶尔会挂起几秒钟,这是不可接受的.我认为它与重新加载Jython有关,因为启动jythonshell也需要大约3秒钟.

  • AJP服务使用修补的flup包(+ Apache作为前端)

    注意:flup是使用的包manage.py runfcgi,我不得不修补它因为flup的线程/分叉支持似乎不适用于Jython( - > AJP是唯一的工作方法).

    这里的结果几乎相同,但有时最后100个请求根本没有得到解答(但服务器进程仍然存在).

我在SO(而不是serverfault)上问这个,因为它特别是Django/Jython. 有没有人有在Jython上部署Django网站的经验?可能有另一种(更快)的方式来为网站服务吗?或者在Java平台上使用Django还为时尚早?

deployment django performance jython java-ee

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

在GMaps API V3中显示地图版权

我目前正在将应用程序从GMaps V2迁移到V3.当我使用OSM和其他非Google地图图层时,我希望将版权声明保留在右下方.但参考文档没有给出任何暗示.在V2中,版权甚至有自己的类GCopyrightCollection,并被传递给GTileLayer.Google Code游戏也没有提供V3的示例.

有谁知道如何在新的API中执行此操作?

google-maps google-maps-api-3

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

IIS 7.5应用程序池使用错误的%APPDATA%作为自定义用户身份

我希望我的MVC3 Web应用程序访问%APPDATA%(例如C:\Users\MyUsername\AppData\Roaming在Windows 7上),因为我在那里存储配置文件.因此,我在IIS中创建了一个具有用户"MyUsername"标识的应用程序池,通过使用该帐户登录创建了该用户的配置文件,并打开了"加载用户配置文件"选项(默认情况下仍为true).模拟被关闭.

现在我遇到%APPDATA%(在C#中)的问题:

appdataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Run Code Online (Sandbox Code Playgroud)

解决c:\windows\system32\inetsrv而不是C:\Users\MyUsername\AppData\Roaming.

更新:更确切地说,上面的C#代码返回一个空字符串,以便Path.GetFullPath(Path.Combine(appdataDir, "MyAppName"))将当前路径预先设置为我的应用程序名称,从而产生c:\windows\system32\inetsrv\MyAppName.

我知道我之前使用Windows Server 2008 R2上的相同Web应用程序完成了这项工作,现在我在Windows 7上
使用与IIS相同的主要版本7.5来解决此问题.我使用了与以前相同的过程:创建了一个新用户,以该用户身份登录以创建配置文件和APPDATA目录,然后添加具有此标识的应用程序池,最后将Web应用程序添加到此池中.

有任何想法吗?

iis application-pool appdata iis-7.5 applicationpoolidentity

11
推荐指数
3
解决办法
7833
查看次数

转换bool [] - >"false,true,true,false"的整洁代码

你如何使用尽可能少的代码行将一个布尔数组转换为像"false,true,true,false"这样的字符串?

Python允许我使用以下(非常好和干净):

", ".join(map(str, [False, True, True, False]))
Run Code Online (Sandbox Code Playgroud)

在C#中,string.Join只允许我加入一个字符串数组.

那么在C#中做同样的简短方法是什么?

c# arrays string

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

密码盐:前置和附加

我只是看着密码哈希的在Django的实施,发现它预先将盐,所以散列创建类似sha1(salt + password),例如.

在我看来,盐有两个目的

  1. 防止彩虹表查找

    好吧,预先添加/添加盐对彩虹表并没有什么影响.

  2. 强化蛮力/字典攻击

    这就是我的问题所在.如果有人想从被盗的密码数据库中攻击单个密码,他需要尝试大量密码(例如字典单词或[A-Za-z0-9]排列).

    假设我的密码是"ABCDEF",该盐是"盐",而攻击者尝试所有[AZ] {6}密码.

    使用前置盐,必须计算hash("salt"),存储哈希算法的状态,然后从该点继续进行每个排列.也就是说,遍历所有排列将需要26 ^ 6个复制哈希算法的状态结构操作和26 ^ 6个hash(permutation of [a-z]{6})操作.由于复制哈希算法的状态非常快,所以无论多长时间,盐都不会增加任何复杂性.

    但是,使用附加的盐,攻击者必须计算hash(permutation of [a-z]{6} + salt)每个排列,导致26 ^ 10个哈希操作.显然,添加盐会增加复杂程度,具体取决于盐的长度.

我不相信这是出于历史原因,因为Django相当新颖.那么预先添加盐有什么意义呢?

security hash salt password-protection

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

extern const char*const SOME_CONSTANT给我链接器错误

我想在API中提供一个字符串常量,如下所示:

extern const char* const SOME_CONSTANT;
Run Code Online (Sandbox Code Playgroud)

但是,如果我在我的静态库源文件中定义它

const char* const SOME_CONSTANT = "test";
Run Code Online (Sandbox Code Playgroud)

我在链接到该库并使用SOME_CONSTANT时遇到链接器错误:

错误1错误LNK2001:未解析的外部符号"char const*const SOME_CONSTANT"(?SOME_CONSTANT @@ 3QBDB)

extern const char* const声明和定义中删除指针const-ness(第二个const关键字)使其工作.如何使用指针常量导出它?

c++ linker const extern

10
推荐指数
2
解决办法
7405
查看次数

Apple是否允许iOS上的Qt作为动态库?

通过Qt 5.1中Android/iOS支持的技术预览,是否有关于部署到Apple应用程序商店的新闻?由于Qt的非商业版本是LGPL许可的,并且应用程序商店规则通常不允许使用dylib,因此Digia或Apple方面都不会例外,但许可谈话不提供任何更多 -关于此事的最新信息.

那么,有没有人试图将动态链接的Qt应用程序推送到商店,或者有任何一方的官方声明?

licensing lgpl dylib ios qt5

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

从Python setuptools创建可启动的GUI脚本(没有控制台窗口!)

我目前为基于Python的GUI添加可执行文件的方式是:

setup(
      # ...
      entry_points = {"gui_scripts" : ['frontend = myfrontendmodule.launcher:main']},
      # ...
      )
Run Code Online (Sandbox Code Playgroud)

在Windows上,这将在Python的脚本文件夹(使用Python 2.6)中创建"frontend.exe"和"frontend-script.pyw".当我执行EXE文件时,会显示一个控制台窗口,但PYW文件无法正常显示.

所以我的问题是:如何在没有控制台窗口的情况下让EXE文件执行程序?该解决方案也适用于Linux(不建议使用py2exe;).

python distutils setuptools

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

用c ++返回一个数组

假设我有一个数组

int arr[] = {...};
arr = function(arr);
Run Code Online (Sandbox Code Playgroud)

我有这个功能

 int& function(int arr[])
 {
//rest of the code
        return arr;
 }
Run Code Online (Sandbox Code Playgroud)

我在这里犯了什么错误?

c++ arrays

8
推荐指数
2
解决办法
7651
查看次数

将iOS应用程序与libstdc ++和libc ++相关联

使用案例:我想使用使用libstdc ++的第三方静态库(无法更改),因此我必须将我的应用程序与libstdc ++链接.现在,如果我想在我自己的代码中使用C++ 11特性,我必须在Xcode中选择libc ++,并另外链接libstdc ++以满足静态库.

我的问题是,即使我在"构建设置"中选择了libc ++并将"-lstdc ++"添加到"其他链接器标志"(也通过"构建阶段>链接二进制文件库"尝试),我收到了后者的链接器错误,这是由第三方lib引用的libstdc ++函数/类.

如何配置项目以链接两个C++标准库?理论上它应该是可能的,因为libc ++将在它自己的内联命名空间中std::__1.

c++ xcode linker ios c++11

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