ES2015系列--块级作用域

关于文章讨论请访问:https://github.com/Jocs/jocs....当Brendan Eich在1995年设计JavaScript第一个版本的时候,考虑的不是很周到,以至于最初版本的JavaScript有很多不完善的地方,在Douglas Crockford的《JavaScript:The Good Parts》中就总结了很多JavaScript不好的地方,

模板引擎Jade

前言:node.js的模板引擎有多种,如:ejs,Handlebars,jade。一开始首先学习了ejs,但是发现其有一个很大的弊端,那就是它不能继承(由于之前用的全部是thinkphp的模板,所以用起来非常别扭,只能进行include,而不能extend),于是转为jade,将html做了一层抽象的模板引擎。安装jade利用npm全局安装:$ npm install ja

Koa源码阅读笔记(2) -- compose

本笔记共四篇Koa源码阅读笔记(1) -- coKoa源码阅读笔记(2) -- composeKoa源码阅读笔记(3) -- 服务器の启动与请求处理Koa源码阅读笔记(4) -- ctx对象起因自从写了个Koa的脚手架koa2-easy,愈发觉得Koa的精妙。于是抱着知其然也要知其所以然的想法,开始阅读Koa的源代码。问题读Koa源代码时,自然是带着诸多问题的。无论是上一篇

深入执行环境、作用域链和闭包

执行环境对象和作用域链执行环境,又称执行上下文,是指一个函数在执行的时候所能直接引用的变量等的一个集合。在JavaScript引擎中,执行环境是由一类特殊的对象——执行环境对象——来实现的。由于一个函数执行的时候可能对应不同的上下文,所以每次函数执行的时候都会由引擎为该函数创建一个独一无二的执行环境对象。函数执行完毕时,由垃圾回收(GC)机制来决定是否将该执行环境对象回收。

内存的妙用 -- PHP终于可以 vs JAVA啦

目录初探 Swoole -- 用 Swoole 启动一个 hello world内存的妙用 -- PHP终于可以 vs JAVA啦初级应用 -- 实现用户注册登录 [撰写中]展望 -- Swoole 的局限性分析及我个人的期待 [撰写中]原生 PHP CURD让我们来回顾一下PHP中数据库的使用prepare('SELECT * FROM user WHERE id=:i

vue+vue构建单页应用

基本构建工具:webpack语言:ES6分号:行首分号规则(行尾不加分好,[,(,/,+,-开头时在行首加分号)配套设施:webpack全家桶,vue全家桶项目结构基本目录结构api:封装与后端接口交互的操作common:放置一些reset.css之类的components:组件entry:项目入口文件index.js,index.css,index.htmlfilters

[壹] Flask web 开发:安装

本系列笔记是我阅读Miguel Grinberg的《Flask Web Development》的笔记,标题与书本同步。希望通过记录技术笔记的方式促进自己对知识的理解。本篇对应书本第一章:安装。使用虚拟环境虚拟环境作用可以在系统的Python解释器中避免包的混乱和版本冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境的包,从使其只作为创建(更多)虚拟环境的源。使用

初探 Swoole -- 用 Swoole 启动一个 hello world

目录初探 Swoole -- 用 Swoole 启动一个 hello world内存的妙用 -- PHP终于可以 vs JAVA啦初级应用 -- 实现用户注册登录 [撰写中]展望 -- Swoole 的局限性分析及我个人的期待 [撰写中]Old time sake还记得我们第一个 PHP 程序吗?把他保存到 hello.php, 访问 http://localhost/he

Docker commands和Dockerfile

Docker commands和Dockerfile标签 : docker[TOC]本文主要对Docker commands和Dockerfile的相关知识进行整理Docker commands官网传送门:Docker run referenceDocker commands首先,当然是配置命令自动补全,只需要把一个文件用curl下载copy到特定路径即可,具体操作参考Co

我对Postgresql递归查询的理解

先声明,个人理解,不一定对。递归查询大家都知道,常见的如一张表,包含id(主键),parent_id(该记录的父亲id),比如我们要从某1个id往下找他所有的儿子还有孙子(这时候心里要有一颗树的形象),该怎么写?WITH RECURSIVE cat AS ( SELECT * FROM category A WHERE

移动端H5图片上传的那些坑

上周做一个关于移动端图片压缩上传的功能。期间踩了几个坑,在此总结下。大体的思路是,部分API的兼容性请参照caniuse:利用FileReader,读取blob对象,或者是file对象,将图片转化为data uri的形式。使用canvas,在页面上新建一个画布,利用canvas提供的API,将图片画入这个画布当中。利用canvas.toDataURL(),进行图片的压缩,得

浏览器线程阻塞和无阻塞加载脚本的理解

一个页面,从被请求访问,到用户可以看到页面、操作页面,到最后页面完全加载完毕,中间需要经历一个相当奇幻的过程,这个过程的速度被“web性能师”孜孜不倦、前赴后继的优化。本文讨论的是其中一个优化。浏览器线程和阻塞虽然大家耳熟能详的一句话是:JavaScript是单线程的。但是:浏览器当然不是单线程的。浏览器的多线程中,有的线程负责加载资源,有的线程负责执行脚本,有的线程负责渲

[ Ruff 开发套件 ] Lesson 1 - SOS 求救灯

前言Ruff 是一个支持 JavaScript 开发应用的物联网操作系统,让物联网应用开发更简单高效。Ruff 开发套件 是一个旨在帮助开发者快速学习使用 Ruff 的工具,并且通过 Ruff 开发套件可以快速建立产品原型。本教程是针对 Ruff 开发套件 的使用教程,从10个外设配件起的应用开发再到驱动开发以及板卡开发,我们将从头开始一步步教大家如何使用 Ruff

Mesos大神Tim实录分享 | 解读Mesos 1.0 + 更长久的Mesos Containerier

本文是Mesos专家Timothy Chen在7月23日数人云对话Docker&Mesos沙龙活动上做的分享实录,Tim畅谈了Mesos架构的设计特点。无独有偶,2016年7月27日Apache社区发布了Apache Mesos 1.0.0。 1.0.0版本的推出,印证了Tim在分享中提到的很多改进: Docker daemon的弃置,接口规范化、对CNI 和GPU的支持以

几种Aja技术

今天我来谈谈Ajax技术。Ajax是一种与服务器通信而无需重载页面的方法。数据可以从服务器获取或者发给服务器。Ajax和异步分不开,但是本文重点部分不是异步,而是对实现Ajax的技术进行总结。我简要罗列一下几种常见的Ajax技术:动态脚本注入和JSON-P图片信标(Beacons)XMLHttpRequest(XHR)技术接下来我简要谈谈我对这几种技术的理解。动态脚本注入之

揭秘谷歌每周20亿+容器背后的管理技术

这次我想跟大家分享一下谷歌使用容器集群技术的案例实践,由于我个人在集群管理团队从事了3年的研发,这里带来的是我个人的经验和观点。 首先大家应该都听说过容器是什么,而Docker则是基于容器技术的现阶段最流行的一种容器产品、工具和生态。对于不了解Docker或者容器的人,一个简单的比喻(但不是最贴切)就是容器就是一个更轻量级的“虚拟化”和“应用隔离”工具。具体有多轻量呢?一个

靠着这份作品集,你终于能和HR谈薪水了

只有准备好自己的作品集,才能找得到工作,以后才能吃得起盖浇饭。作品集的重要性上学的时候小褚讲过一个栗子,某学长把自己的作品集打印成一本书,面试之前先拍在面试官桌子上。等面试结束后,面试官说:““你的作品集太厚DIAO了,我能留下来看看么?明天给你结果。”学长欣然同意。我想你们已经猜到了。那本作品集再也没有回到学长手上。ok,作品集就是设计师的金箍棒,那接下来我们讲讲怎么用自

大牛经验!做设计碰到一堆指指点点的客户怎么办?

编者按:这个大家都在讨论的难题,今天交给有15年设计经验的@冯铁 大牛,让他来给同学们聊聊如何应对,都是大牛的实战经验,强烈建议阅读。关于冯铁大牛的访谈:《优设访谈!著名设计师冯铁的设计思考与经验之谈》说说个人看法。首先,我们分析一下客户对你的设计方案指指点点的可能原因:客户审美很差,无法体会到你设计的高明之处;[br]设计本身有问题,客户不懂装懂进行干预;[br]其他1.

JavaScript 异步进化史

前言JavaScript 并不是完全的单线程,它通过调用浏览器或 Node 的异步 API,实现了异步。JS 中最基础的异步调用方式是 callback,它将回调函数 callback 传给异步 API,由浏览器或 Node 在异步完成后,通知 JS 引擎调用 callback。对于简单的异步操作,用 callback 实现,是够用的。但随着负责交互页面和 Node 出现,

ngin获取用户真实ip

配置 location /tech/ { proxy_pass http://blog_servers/tech/ ;proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for