小编Ale*_*der的帖子

这个混淆的JavaScript如何工作?

以下JavaScript如何工作?

我明白它是缩小的代码.我尝试过去混淆它,但是我无法弄清楚它是如何实现这种效果的.我可以看到它使用Strings进行某种迭代,使用Date对象,奇怪的字符串操作,Math函数,然后代码打印自己.

如何用最小的例子重写相同的效果?

eval(z='p="<"+"pre>"/* ,.oq#+     ,._, */;for(y in n="zw24l6k\
4e3t4jnt4qj24xh2 x/* =<,m#F^    A W###q. */42kty24wrt413n243n\
9h243pdxt41csb yz/* #K       q##H######Am */43iyb6k43pk7243nm\
r24".split(4)){/* dP      cpq#q##########b, */for(a in t=pars\
eInt(n[y],36)+/*         p##@###YG=[#######y */(e=x=r=[]))for\
(r=!r,i=0;t[a/*         d#qg `*PWo##q#######D */]>i;i+=.05)wi\
th(Math)x-= /*        aem1k.com Q###KWR#### W[ */.05,0>cos(o=\
new Date/1e3/*      .Q#########Md#.###OP  A@ , */+x/PI)&&(e[~\
~(32*sin(o)*/* ,    (W#####Xx######.P^     T % */sin(.5+y/7))\
+60] =-~ r);/* #y    `^TqW####P###BP           */for(x=0;122>\
x;)p+="   *#"/* b.        OQ####x#K           */[e[x++]+e[x++\
]]||(S=("eval"/* l         `X#####D  ,       */+"(z=\'"+z.spl\
it(B = "\\\\")./*           G####B" #       */join(B+B).split\
(Q="\'").join(B+Q/*          VQBP`        */)+Q+")//m1k")[x/2\
+61*y-1]).fontcolor/*         TP         */(/\\w/.test(S)&&"#\
03B");document.body.innerHTML=p+=B+"\\n"}setTimeout(z)')// …
Run Code Online (Sandbox Code Playgroud)

javascript

93
推荐指数
4
解决办法
8143
查看次数

CSS在悬停时更改":after"元素的颜色

让我们说我有一个元素列表:

<ol>
    <li>First</li>
    <li>Second</li>
    <li>Third</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

当我悬停列表项时,我需要能够获得有关每个主题的更多信息.我用CSS :after伪元素做了这个.

ol {
    list-style-type: decimal-leading-zero;
}

li:hover:after {
    content: " + More info";
}
Run Code Online (Sandbox Code Playgroud)

这是一个jSfiddle

现在,当我将鼠标悬停在More info文本上时,我想改变它的颜色.我真的不明白如何实现这种效果.我已经尝试了以下css规则,但它没有按预期工作.

li:after:hover {
    color: red;
}

li:hover:after:hover {
    color: red;
}
Run Code Online (Sandbox Code Playgroud)

在CSS中可以做到吗?

如果是,另一个问题很有趣,我可以将一个onclick事件附加到该:after元素吗?

html css css3

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

使用C++解析非常大的CSV文件

我的目标是在OSX环境中的QT项目中使用C++解析大型csv文件.(当我说csv我的意思是tsv和其他变种1GB~5GB).

这似乎是一项简单的任务,但是当文件大小变大时,事情会变得复杂.我不想编写自己的解析器,因为许多边缘情况与解析csv文件有关.

我已经找到了各种csv处理库来处理这个工作,但解析1GB文件在我的机器上大约需要90~120秒,这是不可接受的.我现在没有对数据做任何事情,我只是为了测试目的而处理和丢弃数据.

cccsvparser是我尝试过的库之一.但唯一足够快的库是fast-cpp-csv-parser,它给出了可接受的结果:我的机器上15秒,但只有在知道文件结构时它才有效.

使用示例:fast-cpp-csv-parser

#include "csv.h"

int main(){
    io::CSVReader<3> in("ram.csv");
    in.read_header(io::ignore_extra_column, "vendor", "size", "speed");
    std::string vendor; int size; double speed;
    while(in.read_row(vendor, size, speed)){
    // do stuff with the data
    }
}
Run Code Online (Sandbox Code Playgroud)

如你所见,我无法加载任意文件,我必须专门定义变量以匹配我的文件结构.我不知道任何允许我在运行时动态创建这些变量的方法.

我尝试过的另一种方法是逐行读取csv文件,使用fast-cpp-csv-parser, LineReader类非常快(读取整个文件大约需要7秒),然后使用可以处理字符串的cccsvparser lib 解析每一行.但这需要大约40秒才能完成,与第一次尝试相比这是一个改进,但仍然是不可接受的.

我已经看到了与csv文件解析相关的各种stackoverflow问题,它们都没有将大文件处理到帐户中.

此外,我花了很多时间谷歌搜索找到这个问题的解决方案,我真的很想念包裹经理喜欢npmpip在搜索开箱即用的解决方案时提供的自由.

我将不胜感激任何有关如何处理此问题的建议.

编辑:

当使用@fbucek的方法时,处理时间减少到25秒,这是一个很大的改进.

我们可以进一步优化这个吗?

c++ csv qt large-files

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

在Gjs中使用Shell对象

我正在使用Gjs(Gnome JavaScript绑定)编写gtk +应用程序由于没有可用的文档,我正在阅读gnome-shell JavaScript的源代码.在我的应用程序中,我需要访问global.userdatadir.

我试图将Shell对象添加到我的脚本:

const Shell = imports.gi.Shell;
Run Code Online (Sandbox Code Playgroud)

然后运行它#gjs myscript.js 但是当我这样做时它会抛出一个错误说:

JS ERROR: !!!   Exception was: Error: Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found
    JS ERROR: !!!     lineNumber = '0'
    JS ERROR: !!!     fileName = '"gjs_throw"'
    JS ERROR: !!!     stack = '"("Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found")@gjs_throw:0
@manager.js:5
"'
    JS ERROR: !!!     message = '"Requiring Shell, version none: Typelib file for namespace 'Shell' …
Run Code Online (Sandbox Code Playgroud)

gnome-shell

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

将open()作为json.load()参数传递给文件句柄打开吗?

我编写了一个小型Web应用程序,每次请求都应该打开并读取JSON文件.我为此目的使用pickledb.我关心的是,库open()作为json.load()函数的参数传递.所以它让我思考..

当我写这样的代码时:

with open("filename.json", "rb") as json_data:
    my_data = json.load(json_data)
Run Code Online (Sandbox Code Playgroud)

要么

json_data = open("filename.json", "rb")
my_data = json.load(json_data)
json_data.close()
Run Code Online (Sandbox Code Playgroud)

我很确定文件句柄正在关闭.

但是当我以这种方式打开它时:

my_data = json.load(open("filename.json", "rb"))
Run Code Online (Sandbox Code Playgroud)

文档说,json.load()期待一个.read() -支撑含JSON文档类文件对象.

所以问题是,这个句柄是否会保持开放并且每次请求都会占用更多内存?在这种情况下谁负责关闭手柄?

python json

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

为什么:Math.floor(2e + 21)!= ~~(2e + 21)

我不是按位运算符的专家,但我经常看到一个模式,在比赛中由256k演示的程序员使用.而不是使用Math.floor()函数,使用双位NOT运算符~~(可能更快?).

像这样:

Math.floor(2.1); // 2
~~2.1 // 2
Run Code Online (Sandbox Code Playgroud)

搜索显示有更多模式使用相同的方式:

2.1 | 0  // 2
2.1 >> 0 // 2
Run Code Online (Sandbox Code Playgroud)

在开发控制台中玩这个时,我注意到了一个我不确定我完全理解的行为.

Math.floor(2e+21);  // 2e+21
~~2e+21;    // -1119879168
2e+21 | 0;  // -1119879168
Run Code Online (Sandbox Code Playgroud)

引擎盖下发生了什么?

javascript bitwise-operators

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

宽度超过100k像素的背景图像

我有一个用作div背景的精灵表.尺寸是:

宽度:105920 高度:240.

这是一个大小为620kb 的单色png文件,所以我认为大小不是问题.

当我尝试将其用作background-image: url("spritesheet.png");Firefox时会抛出错误,说"图像损坏或截断".Chrome未显示任何错误消息,但未显示图像.

如果我用gimp将图像的宽度调整为10,000,一切都很好.但显然我不能再用它了.

CSS中允许的最大图像大小是否有任何限制?难道我做错了什么 ?

css background-image css3

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

wpf TimeSpanUpDown 首先增加秒数

我正在使用扩展 WPF 工具包。

https://wpftoolkit.codeplex.com/wikipage?title=TimeSpanUpDown

当我单击箭头时,默认情况下它会增加 hours 的值。

有没有办法让它首先增加秒数作为默认行为?

c# wpf timespan wpftoolkit

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

"href"代表什么?

写完html几年后,我意识到我真的不知道为什么这个href属性被命名为"href".

HTML Recomendation不说关于这个问题的揭示:

此属性指定Web资源的位置,从而定义当前元素(源锚点)与此属性定义的目标锚点之间的链接.

另外,HTML 4.01 DTD不提供了很多线索.

href%URI; #IMPLIED - 链接资源的URI -

我可以对这个含义进行有根据的猜测,但我希望能有一些规范的东西.

html html5 w3c web-standards

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

Node.js Windows 服务,无法从服务生成 GUI 应用程序

我正在使用NSSM在 Windows 服务中运行 Node.js 应用程序,每天一次,我检查远程 API 并生成一个可执行文件,该文件会在系统托盘中弹出一个通知气球。
当我从控制台会话运行它时,它按预期工作,但是当从 Windows 服务运行时,我在运行进程列表中看到通知可执行文件,但气球没有显示。我想服务不应该有用户界面。但一定有办法做到这一点..

当我运行时services.msc,选择我的服务>属性>登录>标记“允许服务与桌面交互”没有帮助。

代码是:spawn("notify.exe", {cwd: path.resolve(__dirname, "/tools")});

什么会导致这种行为?

windows windows-services node.js

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

python 多行 [ for in ] 语句的正确格式

我应该如何在 python 中格式化 long for in语句?

for param_one, param_two, param_three, param_four, param_five in get_params(some_stuff_here, and_another stuff):
Run Code Online (Sandbox Code Playgroud)

我发现我只能用反斜杠来制动for in语句:

for param_one, param_two, param_three, param_four, param_five \
in get_params(some_stuff_here, and_another_stuff):
Run Code Online (Sandbox Code Playgroud)

但我的 linter 对这种格式有问题,像这样的格式化语句的Pythonic方式是什么?

python coding-style pep8 pep

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

如何在Facebook Messenger上使用MS Bot Framework创建快速回复?

我已经有相当一段时间使用了Node.js和MS Bot Framework(3.0)来满足我的机器人开发需求。

我的需求之一是要求用户与机器人共享其电子邮件地址。
Facebook 为此提供了一个快速答复 API。

我很难理解如何使用该框架通过快速回复选项创建自定义消息。

我的第一个尝试是使用自定义渠道数据将本机元数据传递到渠道,
我已经成功实现了Messenger平台支持的各种模板,但是与按钮,列表和其他模板相比,快速答复是种其他野兽。目前,我努力使用框架提供的工具来创建快速回复消息

请指出正确的方向。

facebook node.js facebook-messenger botframework

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

为什么""=="0"在javascript中是假的?

我想在这里理解一些东西,解释自己的最佳方式是举个例子:

"" == false
// true

"0" == false
// true

false == false
// true
Run Code Online (Sandbox Code Playgroud)

但这里发生了什么?

"" == "0"
// false 
Run Code Online (Sandbox Code Playgroud)

如果""评估false"0"评估false逻辑,则预测它与我写的相同false == false.

我确实意识到我试图在这里比较两个字符串,但语言如何知道"a" == "b"或者之间的区别"" == "0"?在这种情况下如何发生强制?

javascript

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