javascript

一次误用Promise后的体会

Promise的嵌套需要注意,一个返回Promise的Promise可能不会以你想象的方式运行。 最近有需求处理海量的并发任务(其实就是抓wikipedia的文章跳转关系),需要让所有的任务存在数据库中,而不是在内存里,否则像我的第一个版本一样,内存占用巨大,cpu爆表,还得关心断点续传(定时保存)。 写了一个叫做promiseWorker的工具函数,类似Promise.map,支持并发控制地处理一组Promise。不同之处在于,并不需要把Promise塞进去,而是传一个函数getWork,用来获取下一个要执行的Promise,如果没有下一个任务了,就返回null。 还是不难实现的,写了一个版本后,用之前发现一个问题,getWork里需要取数据库信息,这个也是异步的。所以我需要接受一个异步函数,返回一个Promise,这个Promise的结果是null或者是另一个Promise。 写了之后测,发现遇到诡异的情况,只取了一个任务,且执行完第一个任务后就停止了。

折腾

Ghost密码重置记录

登不上ghost了,几个常用的密码都不行,根本不知道发生了啥。 然后点Forget,半天没反应,一分钟后告诉我说“504 gateway timeout” 然后陷入了小小的恐慌 急中生智,临时改了下ghost的源码,直接把密码重置链接拿到手,解决问题。 chrome是这样的: ghost的log(可以在根目录下> ghost log查看)说这样: ??? 到现在还是不知道为什么。 估计是邮箱发送设置配置的不对。但是以前搭在别处的用本地mailer好好的。 好在ghost的源码目录结构很清晰。 根据url,很容易就猜到密码重置的逻辑在[ghost]/core/server/api/authentication.js。

javascript

基于KeeWeb的个人密码管理系统

前一阵子bzoj发来邮件说我的账户在多个位置登录。顿时感觉之前的密码不是很可靠了。不过我也记不住那么多密码。于是思考能否有一个个人的密码数据库,每个网站的密码独立不同,全部随机生成。 然后看起来已经有大量解决方案了。 商业的解决方案有很多。如1Password,LastPass,Enpass等。不开源,解锁限制要花钱,没有网页端,不能自己搭这点违背了我们折腾的本质啊。。 不过没法否认他们做得很好。 开源的选择就少了。padlock有点简陋,passbolt好像侧重团队使用(功能也少)。 比较成熟的是Keepass。 keepass包含一个桌面端,也蕴含一个存密码的数据库文件(kdbx)的标准。好多开源的第三方客户端。有个keepass2android还是比较好看,不过感觉好多功能还没支持。 keepass2web也是个web端,不过长久没人维护了,而且是perl写的,不会改。 最棒的就是keeweb了。

折腾

记一次web-ide安装经历

web ide还是个很不错的功能,如果条件允许,安装一个在自己的vps上,就可以随时随地写代码,而不用考虑代码同步、环境配置之类的问题了。从csdn c-ide离奇消失后,准备自己安一个用。最近尝试了一些这方面的开源系统,被折腾得很愉悦。 结论列表 coding.net web-ide 是个国产的开源ide。 优点: 支持中文文件名和中文终端输入。 还在有人维护。 缺点: 连apt都没有是什么鬼。这样配环境很不方便。 功能太少了。基本上只有一个编辑器和一个terminal。 cloud9 老牌的国外ide。 优点: 功能丰富。 支持多人协作。 静态文件在线预览。貌似还支持服务器测试。 关闭工作空间再次打开,

javascript

给Markdown编辑器HyperMD添加新功能

HyperMD是一个独特的Markdown编辑器。 和其他的编辑器不同,它的特色在于编辑和预览一体,在输入Markdown语法后自动在原位置渲染,当编辑指针指向/鼠标点击被渲染后的元素时,将自动展开Markdown编码以供编辑。 在这里可以在线尝试。 可是,虽然这是个很棒的idea,但这是一个已经被抛弃的项目,它的作者laobubu已经不再维护它,转而维护他的新作品MarkdownIME。后者我认为只能胜任简单的书写,而不是频繁地用Markdown编辑较长的内容——无法修改已经渲染的标签,而且想要修改格式简直是噩梦一般。做个评论框和普通的WYSIWYG编辑器配合还是可以的。 而HyperMD已经较难使用了。原因在于它有一些bug。我着手修复了其中的一部分。 基本功能修复 开始从github上pull的版本根本不能用。很多bug比如 控制台频频弹出错误(每次点击都会)、 公式不能正常显示/折叠、 代码区字体不是等宽的。 然后搞了一个东西可以按目录结构完整地保存远端网页。 用到的东西: phantomjs,访问一下网页并延时一段时间,

来到新博客

不知道时隔多久的重新安装... 基于ghost博客的1.18.4. 关于本博客 这个博客写些什么呢...就写一些自己瞎做的东西吧。 从现在开始的一些想法、工程和令我惊讶的东西写在这里。 在不远的一段时间内,主要就是(计算机)工程方面的奇怪文章了233 也学着某位神犇写一个博客历史 之前的几个平台上,基本上都是信息学竞赛题解。 wordpress的有百度网盘上的自动备份。但是ghost的备份找不到了。何其悲哉。大概丢掉了几十篇认真写的题解。 CSDN http://blog.csdn.net/guozizheng001 Wordpress 某免费php空间 http://guozz.cn/blog (已不可访问)