小编Fer*_*yer的帖子

PHP按包含日期的元素对多维数组进行排序

我有一个数组,如:

Array
(
[0] => Array
    (
        [id] => 2
        [type] => comment
        [text] => hey
        [datetime] => 2010-05-15 11:29:45
    )

[1] => Array
    (
        [id] => 3
        [type] => status
        [text] => oi
        [datetime] => 2010-05-26 15:59:53
    )

[2] => Array
    (
        [id] => 4
        [type] => status
        [text] => yeww
        [datetime] => 2010-05-26 16:04:24
    )

)
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一种基于日期时间元素排序/订购的方法吗?

php arrays sorting datetime

107
推荐指数
8
解决办法
11万
查看次数

为什么MD5的UUID不是个好主意?

PHP有一个uniqid()函数,可以生成各种UUID.

在用法示例中,它显示以下内容:

$token = md5(uniqid());

但在评论中,有人这样说:

从唯一ID生成MD5是天真的,并且减少了唯一ID的大部分价值,并且在MD5域上提供了显着的(可攻击的)限制.这是一件非常破碎的事情.正确的方法是单独使用唯一ID; 它已经适应了非碰撞.

为什么这是真的,如果是这样的话?如果MD5哈希对于唯一ID(几乎)是唯一的,那么md5对uniqid有什么不对?

php md5 cryptography

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

监控Rsync进度

我正在尝试编写一个Python脚本来监视rsync传输,并提供(粗略)估计百分比进度.对于我的第一次尝试,我查看了一个rsync --progress命令,看到它打印的消息如下:

1614 100%    1.54MB/s    0:00:00 (xfer#5, to-check=4/10)

我为这样的消息编写了一个解析器,并使用to-check部分来产生一个百分比进度,在这里,这将完成60%.

但是,这有两个缺陷:

  • 在大转移中,检查分数的"分子"似乎没有单调减少,因此百分比完整性可以向后跳跃.
  • 不会为所有文件打印此类消息,这意味着进度可以向前跳转.

我已经看过要使用的其他消息替代方案,但还没有设法找到任何东西.有没有人有任何想法?

提前致谢!

python rsync progress

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

从__init__.py文件的相对导入引发错误

所以我使用的是同事设置的模板,作为python的新手,我可能会遗漏一些非常明显的东西.

主目录有init文件,它有一个生成错误的主python文件所需的模块.

同事使用:

from . import X
Run Code Online (Sandbox Code Playgroud)

其中X是模块,但是当将此(以及填充的init文件)复制到我自己的目录时,它会生成此错误:

ValueError:在非包中尝试相对导入

从谷歌和SO我收集到这是完美的和合乎逻辑的所以我想知道,作为一个新手,我错过了什么.

python relative-import

6
推荐指数
1
解决办法
6620
查看次数

使用QWidget :: createWindowContainer绘制错误和崩溃

在我的Qt 5.3应用程序中,我想将子进程的GUI集成到我的主进程窗口中:

  1. 子进程创建一个顶级QWidget.
  2. 子进程将从小部件WId返回的小部件QWidget::winId()传递给父进程(使用IPC).
  3. 父使用QWindow::fromWinId()QWidget::createWindowContainer()创建QWidget显示子进程的GUI.此小部件嵌入到另一个小部件的布局中.

观察:

  1. 显示子GUI但未正确呈现:在重新调整父级大小时,存在无法正确更新的白色边框.
  2. 如果父窗口调整得太小,子进程会因Qt代码中的内存访问冲突而崩溃.
  3. 如果我没有指定父QWidget::createWindowContainer()级使用单独的顶级窗口,那么子嵌入就好了.
  4. 在孩子打开模式对话框之后,例如QMessageBox,问题自行修复,并且在父级的下一次调整大小之后正确嵌入子项.

特别是最后一点让我困惑.我试图找出是否QMessageBox在子窗口小部件上运行更改一些标志,如果我可以手动模拟这些更改来解决问题,没有运气.

有谁知道这里发生了什么?模态对话框可能对修复问题的小部件做了什么?

c++ qt qt5

6
推荐指数
1
解决办法
1146
查看次数

PHP和?? 操作者

就像有些人所知,C#有非常有用的??运算符,如果左边的表达式为null,则会在右边计算并返回表达式.它对于提供默认值非常有用,例如:

int spaces = readSetting("spaces") ?? 5;
Run Code Online (Sandbox Code Playgroud)

如果readSetting找不到"spaces"并返回null,则变量spaces将保持默认值5.

您可以使用||运算符在JavaScript和Ruby中执行几乎相同的操作,如

var spaces = readSetting("spaces") || 5;
Run Code Online (Sandbox Code Playgroud)

虽然你不可能有0作为的价值spaces在这种情况下,并在JavaScript false中Ruby和JavaScript的.

PHP有or运算符,虽然它不能正常工作,||因为它不会从右边返回表达式,但它在这里仍然有用:

$spaces = readSetting('spaces') or $spaces = 5;
Run Code Online (Sandbox Code Playgroud)

与注意,""并且"0"也像对待false在PHP除了false, 0null大多数语言.

问题是,我应该使用上面的结构吗?除了将大类字符视为虚假之外,它是否有副作用?是否有更好的构造,通常由PHP社区使用和推荐此任务?

php

5
推荐指数
4
解决办法
590
查看次数


球体上的纹理错误

我有一些球形经度/纬度坐标,用于我需要可视化的球体上的点.为此,我将点转换为笛卡尔坐标并构建了一个三角形网格,我可以使用VTK进行渲染.到目前为止工作.

现在我想为球体模型使用纹理.因此,我将球面坐标转换为纹理坐标,并将它们分配给每个点.这适用于球体的大多数表面三角形,结果看起来可以接受.

但是,对于纹理包裹的本初子午线的另一侧的三角形,三角形的纹理不正确:不是重复纹理和"在纹理边界上"的映射,整个纹理被挤压到单个三角形上.

这是一张它的样子:

球纹理

zick-zack线显然是错误的,蓝线应该是可见的.整个纹理映射在三角形上,产生红色和白色条纹.这是有道理的,因为对于所讨论的三角形,纹理坐标跨越整个纹理空间.

为了说明这个问题,这不是特定于球体而是所有封闭的物体,我创建了下图:

纹理缝

在上部矩形中,我们看到一个三角形跨越纹理边界,带有计算纹理坐标A,B和C.由于纹理可以平铺,这就是我想要渲染三角形的方式.

下三角显示当前如何解释纹理坐标.边A,B和C的坐标是相同的,但这次,大部分纹理用于三角形,而不是在边界处平铺纹理.

我确信我犯了一个很常见的错误,但我还没有找到任何帮助我的东西.对我有任何暗示吗?

3d geometry textures vtk

4
推荐指数
1
解决办法
2557
查看次数

在空模型字段中存储Django form.cleaned_data?

我有一个django模型,它有一个int字段(null = True,blank = True).现在,当我收到用户提交的表单时,我会这样分配:

my_model.width= form.cleaned_data['width']
Run Code Online (Sandbox Code Playgroud)

但有时我会收到错误:

ValueError: invalid literal for int() with base 10: ''
Run Code Online (Sandbox Code Playgroud)

如果它被分配给字段的空白('')字符串值,我在徘徊?因为我的理解是模型会将空字符串视为null/blank?

在这件事情上,任何帮助都会受到赞赏.谢谢.

python django

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

remove_if()编译错误

VS2010中的编译错误:

c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm(1840): error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const triangle' (or there is no acceptable conversion)
h:\kingston_backup\ocv\ocv\delaunay.h(281): could be 'triangle &triangle::operator =(const triangle &)'
while trying to match the argument list '(const triangle, const triangle)'

c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm(1853) : see reference to function template instantiation '_FwdIt std::_Remove_if,_Pr>(_FwdIt,_FwdIt,_Pr)' being compiled
with
[
  _FwdIt=std::_Tree_unchecked_const_iterator,std::allocator,true>>>,
  _Mytree=std::_Tree_val,std::allocator,true>>,
  _Pr=triangleIsCompleted
]

h:\kingston_backup\ocv\ocv\delaunay.cpp(272) : see reference to …

c++ stl

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

在github上跟踪不同的分支

我试图跟踪github项目的不同分支.该项目是restful_authentication:

http://github.com/technoweenie/restful-authentication

但是,我真正想要克隆的是模块化分支:

http://github.com/technoweenie/restful-authentication/tree/modular

我找到了这个指南:

http://github.com/guides/showing-and-tracking-remote-branches

并尝试了一些命令,如:

git checkout --track -b lmod http://github.com/technoweenie/restful-authentication/tree/modular
Run Code Online (Sandbox Code Playgroud)

git checkout --track -b lmod git://github.com/technoweenie/restful-authentication.git/modular
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

fatal: git checkout: updating paths is incompatible with switching branches
Run Code Online (Sandbox Code Playgroud)

有关正确方法的任何想法吗?

谢谢

git github

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

如何在PHP中只删除"'"?

我正在做以下事情,将值从PHP转移到javascript:

var str = '<?php echo $v; ?>';
Run Code Online (Sandbox Code Playgroud)

如果没有"'"$v,它只会被罚款.

但万一有"'"$v,将报告明显错误.

到目前为止我只使用过mysql_real_escape,现在不适用.

javascript php escaping

0
推荐指数
1
解决办法
152
查看次数

Javascript + namespacing + FF问题

var utils = function() {
    function getMyPrivateName() {
        return "Caoimhin";
    }
    return {
        messages: {
            getMyPublicName: function getMyPublicName() {
                return "Kevin";
            },
            sayHello: function() {
                document.writeln("hello " + getMyPublicName() + "<br/>");
                document.writeln("hello " + getMyPrivateName() + "<br/>");
            }
        }
    };
} ();

utils.messages.sayHello();
Run Code Online (Sandbox Code Playgroud)

我正在玩javascript命名空间,并遇到了意外的行为.我主要在IE中开发,因为它是我们的Intranet应用程序的目标浏览器.

在上面的IE中,当包含在空白页面上时,输出:

你好凯文
你好Caoimhin

在FF中,脚本遇到错误:

getMyPublicName未定义

如果我注释掉违规行:

//document.writeln("hello " + getMyPublicName() + "<br/>");
Run Code Online (Sandbox Code Playgroud)

FF输出:

你好Caoimhin

所以我知道它可以访问私有功能......

任何人都可以解释为什么会这样吗?我需要做的是为了拥有类似于上面的跨浏览器解决方案..

我知道我可以这样写:

document.writeln("hello " + utils.messages.getMyPublicName() + "<br/>");
Run Code Online (Sandbox Code Playgroud)

但不愿意......

凯文,提前谢谢

javascript firefox namespaces

0
推荐指数
1
解决办法
90
查看次数