MySQL用户密码的最大长度是多少?
MySQL用于PASSWORD(str)
加密明文密码str
.此散列密码字符串存储在mysql.user
具有CHAR(41)
数据类型的授权表中.
但是,我无法找到明文密码的最大长度str
(如果有的话).有人可以帮忙吗?
如何在App Engine应用程序中分析内存(RAM)的使用情况?我正在尝试解决与超出实例内存限制相关的错误.我尝试过这些东西,到目前为止,它们不起作用或者不提供我需要的东西.
guppy.hpy()
失败ImportError: No module named heapyc
我对以上任何一个都错了吗?在这个问题上得分最高的答案(不是公认的答案)说,没有办法监控App Engine上的内存使用情况.这不可能是真的.它可以?
编辑
我可以确认GAE mini profiler可以完成这项工作.安装后,我可以将UI中的设置更改为"带内存采样",然后查看此读数:
感谢所有贡献者!
我正在尝试通过Google Apps脚本中的SSL连接到数据库,引用这些文档.错误是:
Execution failed: Failed to establish a database connection. Check connection string, username and password.
Run Code Online (Sandbox Code Playgroud)
我可以从另一个数据库客户端(Sequel Pro)使用这些完全相同的参数,它工作正常.我有db接受来自任何IP地址的连接(0.0.0.0/0
).
我相信我已经消除了所有其他变量(用户名,密码等等),只有当我尝试在Apps脚本中使用SSL时才会失败.
任何人都可以提供在Google Apps脚本中使用SSL连接MySQL数据库的工作示例吗?
我的应用脚本:
function connectDb() {
var address = 'x.x.x.x'; // no, I'm not literally using x's in my ip address
var instanceUrl = 'jdbc:mysql://' + address + ':3306/';
var clientSslKey = '-----BEGIN RSA PRIVATE KEY-----\n' +
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n' +
/* snip */
'-----END RSA PRIVATE KEY-----';
var clientSslCertificate = '-----BEGIN CERTIFICATE-----\n' +
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n' +
/* snip */ …
Run Code Online (Sandbox Code Playgroud) 我意识到Javascript没有类,并且没有构建为具有经典的OOP继承.但是我发现这样的模式非常有用,我想构建一种简单的方法来模拟这种行为,理想的是利用Javascript灵活性的最佳部分.以下方法的优缺点是什么?
我的自定义库中有以下功能:
function inherit(superClass, args, instance) {
var subClass = inherit.caller;
var o = new superClass(args);
for(p in o) {
if(o.hasOwnProperty(p)) init(instance, p, o[p]);
else init(subClass.prototype, p, o[p]);
}
}
function isUndefined(x) {var u; return x === u;}
// sets p to value only if o[p] is undefined
function init(o, p, value) {if(isUndefined(o[p])) o[p] = value;}
Run Code Online (Sandbox Code Playgroud)
此设置需要两个约定:
以下是您获得的结果的示例(粘贴到Firebug命令行以及库函数,以查看它的运行情况):
function SuperClass(args) {
this.x = args.x;
}
SuperClass.prototype.p = 'SuperClass prototype property p';
function SubClass(args) {
inherit(SuperClass, args, this);
this.y …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个php脚本来处理来自web服务的数据,该服务将"json"作为字符串传递.问题是字符串不是真正的json; 这是javascript.具体来说,虽然变量是,但不引用键.示例(实际数据更长,更复杂):
{desc:'User defined payload'}
Run Code Online (Sandbox Code Playgroud)
正如php手册所述,json_decode()正确无法解释此字符串.
我的问题是,如何在php中成功解释这样的字符串?
我能想到的唯一解决方案是编写一些修复语法的正则表达式,但后来我遇到了两个问题.
编辑
Hadvig建议使用Services_JSON pear模块,并且看起来像是一个通用的解决方案.安装模块后,我的代码如下所示:
require_once 'PEAR.php';
require_once 'Services/JSON.php';
$Services_JSON = new Services_JSON();
$data = $Services_JSON->decode($malformed_json);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是缓慢的.要解释整个字符串(约400,000个字符)需要> 36秒!使用正则表达式修复引号然后使用json_decode花了~0.04秒.这是我用过的东西:
// fix single quotes
$s = str_replace("'", '"', $malformed_json);
// fix unquoted keys
$valid_json = preg_replace('/([{\[,])\s*([a-zA-Z0-9_]+?):/', '$1"$2":', $s);
$data = json_decode($valid_json);
Run Code Online (Sandbox Code Playgroud)
当然,如果数据包含任何引号,括号或逗号,这将会中断.
如何在php中使用libcurl 查看完整的请求标头,包括发布数据?
我正在尝试模拟页面的帖子,当从浏览器完成并在Live HTTP Headers中查看时,它看起来像这样:
https://###.com
POST /###/### HTTP/1.1
Host: ###.###.com
...snipped normal looking headers...
Content-Type: multipart/form-data; boundary=---------------------------28001808731060
Content-Length: 697
-----------------------------28001808731060
Content-Disposition: form-data; name="file_data"; filename="stats.csv"
Content-Type: text/csv
id,stats_id,scope_id,stat_begin,stat_end,value
61281,1,4,2011-01-01 00:00:00,2011-12-31 23:59:59,0
-----------------------------28001808731060
Content-Disposition: form-data; name="-save"
Submit
-----------------------------28001808731060--
Run Code Online (Sandbox Code Playgroud)
所以我们很好地看到我正在上传的文件,它的内容,一切都在那里.但是当我尝试从php(使用CURLOPT_VERBOSE
或者CURLINFO_HEADER_OUT
)发出相同的帖子时,我尝试从cURL中获取数据的所有尝试都显示缺少post数据的请求标头,如下所示:
POST /###/### HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Host: ###.###.com
...snipped normal-looking headers...
Content-Length: 697
Content-Type: multipart/form-data; boundary=----------------------------e90de36c15f5
Run Code Online (Sandbox Code Playgroud)
基于Content-Length,看起来事情进展顺利,但它确实有助于我的调试工作能够看到完整的请求.我也觉得很困难,我应该能够看到整件事; 我知道我一定错过了什么.
---编辑---
我正在寻找的是相当于这个:
curl --trace-ascii debugdump.txt http://www.example.com/
Run Code Online (Sandbox Code Playgroud)
这似乎可以在libcurl中使用CURLOPT_DEBUGFUNCTION选项,但是没有在php中实现.嘘.
我试图在Django中执行此操作(异步上传画布作为图像文件).我正在使用(稍微修改过的版本)在演示中找到的javascript,它推出了自己的XHRHttpRequest,但是我没有在服务器端找到任何上传的证据.
画布数据的提取方式如下:
img_data = canvas.toDataURL('image/jpeg').replace("data:image/jpeg;base64,", "");
Run Code Online (Sandbox Code Playgroud)
这是xhr标题:
xhr.setRequestHeader('content-type', 'multipart/form-data; boundary=multipartformboundary1352769538973');
Run Code Online (Sandbox Code Playgroud)
这是POST内容:
--multipartformboundary1352769538973
Content-Disposition: form-data; name="user_file"; filename="test.jpeg"
Content-Type: application/octet-stream
/9j/4AAQSkZJRgABAgAAAQABAAD/2wCEAAUDAwUHD...snipping image data...
AJRRRQAUtJS018gA/9k=
--multipartformboundary1352769538973
Content-Disposition: form-data; name="username"
--multipartformboundary1352769538973
Content-Disposition: form-data; name="challenge"
--multipartformboundary1352769538973
Content-Disposition: form-data; name="galleryPath"
--multipartformboundary1352769538973--
Run Code Online (Sandbox Code Playgroud)
当我让Django向我展示它看到的请求对象时,这就是我得到的:
<WSGIRequest
path:/samlite/save_frame,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'username': [u''], u'challenge': [u''], u'galleryPath': [u'']}>,
COOKIES:{},
META:{'ARCHFLAGS': '-arch i386',
'Apple_PubSub_Socket_Render': '/tmp/launch-wL0OpX/Render',
'Apple_Ubiquity_Message': '/tmp/launch-ox20mG/Apple_Ubiquity_Message',
'COMMAND_MODE': 'unix2003',
'CONTENT_LENGTH': '34323',
'CONTENT_TYPE': 'multipart/form-data; boundary=multipartformboundary1352769538973',
'DISPLAY': '/tmp/launch-KzsfWx/org.x:0',
'DJANGO_SETTINGS_MODULE': 'simsam.settings',
'DYLD_LIBRARY_PATH': '/Applications/bitnami-djangostack/apps/django/lib/python2.7/site-packages:/Applications/bitnami-djangostack/apps/django/lib/python2.7/site-packages:/Applications/bitnami-djangostack/python/lib:/Applications/bitnami-djangostack/mysql/lib:/Applications/bitnami-djangostack/sqlite/lib:/Applications/bitnami-djangostack/apache2/lib:/Applications/bitnami-djangostack/common/lib:',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HOME': '/Users/chris',
'HTTP_ACCEPT': 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, …
Run Code Online (Sandbox Code Playgroud) 虽然我在google中找不到对此的引用,但我很熟悉这样一个事实,即在javascript中,全局函数声明在任何代码执行之前都会得到解释.换句话说,这很好用:
f();
function f() {}
Run Code Online (Sandbox Code Playgroud)
但是,我注意到chrome和firefox对全局函数声明的解释有不同的解释.特别是,chrome很高兴在第一遍中读取一个if块内的函数声明,但firefox却没有.
try {document.write(f);} // works in chrome
catch(e) {document.write(e.message);} // throws an error in firefox
try {document.write(g);} // works in chrome and firefox
catch(e) {document.write(e.message);}
if(true) function f() {}
function g() {}
Run Code Online (Sandbox Code Playgroud)
你可以用这个小提琴自己尝试这个例子.我使用的是Chrome 16.0.912.75和Firefox 9.0.1.
这种行为的ECMA标准是什么?这个"提升"函数声明的过程是否有一个术语高于其他代码?什么代码被"解除"对解释是开放的(两种浏览器都是正确的)?或者是其中一个中的错误?
看来这个对象现在分为两个地方.它在中心可视化渲染,但鼠标光标将其视为原始位置.如果单击原始位置,画布将正确更新,并且操作正常.
canvas.calcOffset()
不解决它(就像它在这里做的那样).
假设我有一些变量:
var s = 's', i = 0, o = {}, a = [], n = null, nan = NaN, u;
Run Code Online (Sandbox Code Playgroud)
我怎么能理解读取什么时候x.p
会返回undefined,什么时候会抛出TypeError
?
s.p; // undefined
i.p; // undefined
o.p; // undefined
a.p; // undefined
n.p; // TypeError!
nan.p; // undefined
u.p; // TypeError!
Run Code Online (Sandbox Code Playgroud)
PS是null
和undefined
这种方式唯一奇怪的价值观?还有其他人吗?
编辑
我知道通过像我一样声明变量,我的几个值已被对象自动包装(例如Number
),尽管是基元.因此,我可以像对待"正确"的对象(例如{}
,[]
),并试图读取它们的属性.但我找不到太多的解释是什么和不是这样包裹.
Guido van Rossum的Ndb
Google App Engine库有一个我觉得好奇的查询语法.假设您想要找到所有满意的用户,您可以编写此查询:
User.query(User.happy == True)
Run Code Online (Sandbox Code Playgroud)
我读到:
query
方法的函数调用User
,继承自ndb.Model
.好到目前为止.User.happy
和值之间进行布尔比较True
.我希望表达式能够评估False
(就像那样dict.keys == True
),所以上面应该等同于:
User.query(False)
Run Code Online (Sandbox Code Playgroud)
Ndb如何通过它做任何聪明的事情?我错过了什么蟒蛇魔法?
python google-app-engine app-engine-ndb google-cloud-datastore