我目前正在尝试为Flex应用程序实现自动错误报告器,并希望将错误消息与导致错误的函数/行号一起返回到服务器.本质上,我试图获取getStackTrace()信息而不进入调试模式,因为该应用程序的大多数用户不太可能拥有Flash播放器的调试版本.
我当前的方法是使用UncaughtErrorEvent处理程序来捕获应用程序中发生的错误,但错误消息只返回已发生的错误类型,而不是位置(这意味着它没用).我尝试使用函数名称抓取器自己实现getStackTrace()
private function getFunctionName (callee:Function, parent:Object):String {
for each ( var m:XML in describeType(parent)..method) {
if ( this[m.@name] == callee) return m.@name;
}
return "private function!";
}
Run Code Online (Sandbox Code Playgroud)
但这只会因为arguments.callee而起作用,所以不会经历多级函数调用(它永远不会超过我的错误事件监听器).
所以!任何人对如何通过全局错误事件处理程序获取信息性错误消息有任何想法?
编辑:似乎有一些误解.我明确地避免使用getStackTrace(),因为它在不处于调试模式时返回'null'.任何使用此功能的解决方案都是我特别想避免的.
我想将索引向量转换为索引列中的索引的矩阵.
x = [2;1;3;1];
m = someFunc(x,3)
% m =
%
% 0 1 0
% 1 0 0
% 0 0 1
% 1 0 0
Run Code Online (Sandbox Code Playgroud) 有没有办法冻结,IQueryable以便在命中数据库时不会向查询添加额外的连接?例如,我可以做一个.ToList()冻结查询,但这会产生性能影响,因为我所做的任何过滤都在中间层,而我在数据库服务器上预过滤没有任何性能提升?
为清晰起见编辑:
我有一个OData服务,它返回一个IQueryable客户端可以根据需要过滤/排序/项目.我只想阻止他们提取更多数据.我可以这样做ToList().AsQueryable(),但这会失去lazyLoading的优势,并且随之而来的是允许客户端过滤请求的全部目的.
我看到的一个选项是设置:EnableQueryAttribute.AllowedQueryOptions排除Expand,但即使我的初始查询已经扩展,客户端仍然无法选择这些部分.
我有以下正则表达式:
(?i:^TPI$|^TIP$|^IPT$|^ITP$|^PIT$|^PTI$|^IP$|^PI$|^TI$|^IT$|^PT$|^TP$|^T$|^P$|^I$)
Run Code Online (Sandbox Code Playgroud)
我该如何简化它?我的正则表达知识相当有限.
我的要求是:
我用了
^(?i:[TPI]){1,3}$
Run Code Online (Sandbox Code Playgroud)
在过去,这主要是有效的.唯一的问题是它接受多个值"TTT"是可以接受的正则表达式,我需要它失败).
我想在提交消息中搜索字符串,很容易将svn日志传递给grep,但由于消息和rev在不同的行上,所以它有点复杂.
即
svn log ./ | searchSvnMessages.awk artf29999
------------------------------------------------------------------------
r9303 | myuser | 2011-02-22 15:13:47 -0800 (Tue, 22 Feb 2011) | 1 line
artf29999: Adjusting Skin
------------------------------------------------------------------------
r9302 | myuser | 2011-02-22 14:11:06 -0800 (Tue, 22 Feb 2011) | 1 line
artf29999: Adding skinning.
------------------------------------------------------------------------
r800 | myuser | 2011-02-22 09:44:36 -0800 (Tue, 22 Feb 2011) | 1 line
artf29999: Adding functionality.
Run Code Online (Sandbox Code Playgroud)
我希望其他人做过我可以背负的肮脏工作?
我有这个问题:
SELECT
count(*) as count ,
( 3959 * acos(
cos( radians( 37.774929 ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians( -122.419418 ) )
+ sin( radians( 37.774929 ) ) * sin( radians( lat ) )
) ) AS distance
FROM users
HAVING distance < 150
Run Code Online (Sandbox Code Playgroud)
我以为它会给我半径150英里的用户数量.但相反,它给了我一个用户总数.如果lat/lng不同,当有一些用户时,它会给我零用户数.
有任何想法如何更改此查询,以获得150米半径范围内的用户数?
谢谢!
我想匹配像Colibri那样的文件名.我试图通过正则表达式来解决它.
在Colibri中搜索的工作原理是,您可以在文件名中按顺序键入字符,并在文件名中按顺序查找具有这些字符的所有文件.例如,对于"ab",它找到"cabal","ab"和"achab".
简单插入.*字母之间的工作(所以搜索字符串"ab"成为正则表达式.*a.*b.*),但我想在大量文件上进行.
到目前为止,我有O(N*???),其中N是文件名的数量和??? 最好是线性复杂度(我假设我的语言使用NFA).我不太关心空间复杂性.我应该选择哪些数据结构或算法来提高效率(时间复杂度)?
我想找到一个正则表达式,它可以将段落(长字符串,没有新行字符需要担心)分解成句子,其中一个简单的规则是{.,?,!}后跟一个空格然后是一个大写字母应该是句子的结尾(我意识到这对现实生活来说不是一个好规则).
我有部分工作,但它没有完成这项工作:
line = 'a b c FFF! D a b a a FFF. gegtat FFF. A'
matchObj = re.split(r'(.*?\sFFF[\.|\?|\!])\s[A-Z]', line)
print (matchObj)
Run Code Online (Sandbox Code Playgroud)
版画
['', 'a b c FFF!', '', ' a b a a FFF. gegtat FFF.', '']
Run Code Online (Sandbox Code Playgroud)
而我想得到:
['a b c FFF!', 'D a b a a FFF. gegtat FFF.']
Run Code Online (Sandbox Code Playgroud)
所以有两个问题.
为什么结果中有空成员('')?
我理解为什么D从分裂结果中删除 - 这是第一次搜索的一部分.如何以不同的方式构建我的搜索,以便在标点符号后面的大写字母被放回,以便它可以包含在下一句中?在这种情况下,如何让D在分割结果的第二个元素中出现?
我知道我可以通过某种for循环来完成这个,只是剥离第一个结果,加回大写字母,然后重新做一遍,但这似乎不是那么Pythonic.如果正则表达式不是这里的方法,还有什么东西仍然可以避免for循环吗?
谢谢你的任何建议.
我有一个用于过滤/排序数据库记录的表单.
我按作者,类别和标签过滤帖子.我正在使用AND作者和类别的OR条款和标签的子句(可以输入多个标签)
查询看起来像这样
SELECT *
FROM (`posts`)
WHERE `author` = 'dan'
AND `category` = 'technology'
AND `tags` LIKE '%ebook%'
OR `tags` LIKE '%ipad%'
OR `tags` LIKE '%apple%'
Run Code Online (Sandbox Code Playgroud)
上面的查询返回包含搜索的任何标记的帖子,无论作者或类别如何.
我想ebook, ipad, apple仅在作者姓名dan和类别中返回包含标签的帖子technology.
怎么可能在mysql中这样做?