0%

帮人做个简单的文件整理程序,尝试用electron来实现,总结一下。

主进程和渲染进程

electron的程序运行时,分为主进程和渲染进程。主进程即为var app = require('app');所在一侧,也是程序的入口。通过BrowserWindow实例loadUrl访问网页时,会创建出渲染进程。

某些包是只有主进程才能包含的,如常用的dialog。想在渲染进程的逻辑中调用这些包,有两个方法,一个是使用remote包,如:

var remote = require('remote');
var dialog = remote.require('dialog');

另一个方法是使用ipc,即进程通信,发消息给主进程,由主进程调用后,把结果再通过ipc返回渲染进程。

Read more »

由于python的整型是64位的,js的是32位,所以前后端通信的时候,会出现两边按位运算结果不同导致有问题。

解决是用python中ctypes的c_int32等类型,如:

[javascript]
> i = 1443603316765
> ~i
-494305310

[python]
>>> import ctypes
>>> i = 1443603316765
>>> ~i
-1443603316766
>>> (ctypes.c_int32(~i).value)
-494305310

有时候想查看一个域名的所有子域名,纯dig是办不到的。

一般的做法就是穷举,类似像dnspod等DNS域名管理服务,应该有个白名单,所以当我们添加域名的时候,能找到常用的子域名。

不想自己穷举,可以用在线的工具,如: https://pentest-tools.com/information-gathering/find-subdomains-of-domain

还找到个工具,看说明挺有效的样子,可以避免被认为恶意攻击: https://github.com/TheRook/subbrute

node.js的异步模型让它很擅长实现IO密集型的系统,但是测试发现,当并发真的上到几W的时候,会有处理不过来的情况。除了从整个系统的设计上改进,还需要修改一些配置。这里总结一下为了让node.js应对高并发,需要做的配置。

Read more »