Markey's home

Markey's home

Having dreams is what makes life tolerable.

Node单机集群实现
Node单机集群实现文章开头,先给大家抛出一个问题。 用过 Node 的人都知道,Node 采用的是类似 Nginx 单进程、异步IO 的运行模型,这也是 Node 性能强劲的根源。我们可能也经常听人说 js 的执行是单进程、单线程的,那么,如果换个说法,若说 Node 是单进程、单线程 的,是对的吗? 下面我们来验证一下。 我们来执行一个最简单的 Node 程序。它只做一件事,就是不停接受标准输入流并丢弃,这样保证进程一直存在 1process.stdin.resume(); 启动后,我们使用 ps -ef | grep node 命令找到该进程的 pid,并使用 top 命令查看该进...
Shadowsocks翻墙原理探究
Shadowsocks翻墙原理探究Shadowsocks 是目前公认的科学上网神器,由 clowwindy 开发,它的出现极大地便利了广大程序猿们,让我们能够绕过 GFW 方便地访问 google 或 youtube 等国际大型网站。它的核心原理是基于 Socks5 代理协议的网络数据加密传输,具体在下面会做进一步介绍。 本文会以如下目录依次展开: GFW Socks5协议 Shadowsocks工作原理 Shadowsocks源码解析 GFW全称是 Great Firewall of China,国内一般称作“防火墙”或俗称“墙”,正是因为这个东西的存在,让整个中国大陆区域内的网...
ES6异步方式全面解析
ES6异步方式全面解析众所周知JS是单线程的,这种设计让JS避免了多线程的各种问题,但同时也让JS同一时刻只能执行一个任务,若这个任务执行时间很长的话(如死循环),会导致JS直接卡死,在浏览器中的表现就是页面无响应,用户体验非常之差。 因此,在JS中有两种任务执行模式:同步(Synchronous)和异步(Asynchronous)。类似函数调用、流程控制语句、表达式计算等就是以同步方式运行的,而异步主要由setTimeout/setInterval、事件实现。 传统的异步实现作为一个前端开发者,无论是浏览器端还是Node,相信大家都使用过事件吧,通过事件肯定就能想到回调函数,它就是实...
Jimp node-qrcode生成图片并上传总结
Node图片处理——Jimp配合node-qrcode生成图片上传总结上周产品那边来了一个需求,需要基于原图针对不同用户生成不同二维码以及文案,并生成新图片,让用户能够保存。接到这个需求时,心里不仅没有拒绝的意思,反而有点小兴奋 ~ 因为又能探索一下新东西。 大致效果如下,原图: 效果图: 试水canvas刚开始打算在前端用canvas生成图片。我们都知道canvas有合成图片的功能,核心是drawImage及toDataURL这两个方法。 大致思路是: 使用drawImage将生成的二维码合并到原图的指定位置 使用fillText方法生成文案 用toDataURL将图片转成bas...
观《盲山》有感
观《盲山》有感 不是影评,只是观后感 今天看了《盲山》后,心情无比压抑。虽然这部电影的故事已经耳熟能详,无论电视上还是网络中已经有过各种拐卖妇女的报道,所以从一开始就基本能想到剧情的发展方向,但是过程中依旧被种种场景震撼,比如雪梅逃出屋子后被全村的男人联合抓回,村里其他被拐卖妇女劝说雪梅她们是如何屈服的,警察来到村里营救却被村民围堵威胁导致营救失败等等。电视上对这类报道听得多了,就会有些麻木,但看了这部电影不得不赞叹导演对各种细节的精妙表述,能够切身体会到被拐妇女的绝望,不得不给给李杨导演点个赞。 先说说让我印象最深刻的几个男人黄德贵无论酒桌上的这句“谁不喝完这酒,谁就一辈子打光棍,儿...
好好写代码
好好写代码作为一个刚写代码不久的小菜鸟,工作的半年多让我越发意识到提高代码质量的重要性。从前只会关注实现功能,慢慢的开始关注性能,现阶段则发现其实还有很多细节也是(如可读性、易用性、可维护性、一致性)提高代码质量的关键。“实现功能”跟“优雅地实现功能”是两码事。 大部分归纳自网络,将多篇文章的观点汇总加工了一下,也融合了一些个人的见解。 原则 单一职责原则 易用性原则 可读性原则 复杂性守恒原则:无论你怎么写代码,复杂性都是不会消失的 注:如果逻辑很复杂,那么代码看起来就应该是复杂的。如果逻辑很简单,代码看起来就应该是简单的。 单一职责原则面向对象五大设计模式基本原则之一。即一部...
markey
小站终于搭好啦为了纪念这意义重大的时刻,一定要写篇文章庆祝下,主题不是别的,就是我。 歪某某— 一个努力的前端程序猿兼鼓手称谓: 大头(因为姓氏的缘故,这个昵称是被用的最久的,贯穿我的整个童年、少年时代…) 歪**(高中时开始用,主要在网上用,没什么含义,好玩而已) markey(码名:即作为开发者的昵称) 2017年6月25日毕业于东北林业大学,信息管理与信息系统专业(一半计算机一半管理)。大学期间没参与任何校组织(因为觉得官僚),倒是把一大半精力放在了社团上,一个是异族摇滚社,一个是606软件工作室。可以说这两个社团的经历决定了我现在的路。 学生时代喜欢安静,不太参与社交,造成了...
git总结
GIT学习笔记仅为本人在工作过程中学习git的一些经验总结,还是git菜鸟一只,有更好的见解欢迎留言 ~ 经验总结 在解冲突时一定要注意,对自己不熟悉的代码要问问是谁写的在解. 如果出现问题,用 git merge –abort 可以将冲突文件退回到merge之前的状态 在新建一个开发分支时,一定要基于master分支建,不要让其他分支上的代码掺入你的开发分支 若想更新本地仓库中的分支或tag,用 git fetch [远程仓库] 则将远程仓库的所有更新取回本地,git fetch [远程仓库] <分支名> 还可以在后面制定分支名,表示只取得该分支的更新,git fetch –t ...
Markey
get busy living or get busy dying
FRIENDS
wilee Alien thunf zee