我的简书博客

现在个人博客的阅读量越来越低,所以我以后可能都是先更新简书的博客了,特别是一些 Meteor、React、JavaScript 等技术文章我会先发到简书,这里更多是个存放文章的地方。 目前简书已经有一些这里没有存放的文章了。 我的简书博客地址: http://www.jianshu.com/users/f1072c7576c0/latest_articles 等以后有时间了自己来设计一个博客站点。 »

什么是 Meteor 的 Optimistic UI

原理介绍 Optimistic UI 是 Meteor 提出来的一种前端界面快速响应用户交互的概念,之前叫 Latency Compensation,主要作用是在客户端直接响应用户的交互,而不用等信息从客户端发送到服务器,完成更新确认,再从服务器返回客户端这一个来回完成后再做响应。有点类似游戏领域里的 Dead Reckoning,在客户端离线对用户行为进行推测,达到隐藏延时和减少带宽使用的技术。 先看下图理解 Optimistic UI 的原理。 魔法就发生在虚线处。简单来说 Method Call »

动态函数式语言 - Elixir

一直在找一种具有以下四种特性的编程语言 函数式 Functional 没有副作用的函数式编程才能从语言层面更好地解决 concurrency 问题,支持高并发、分布式,易于横向扩展 动态 Dynamic 动态语言,天然支持热更新,适合网络服务的升级 宏 Macro 自动生成代码,像 Lisp 那样的宏支持,代码数据融合 好用的工具和生态 特别是有一个好用的 web 框架,免除掉很多重复性工作, »

ES2015 (ES6)

ECMAScript (European Computer Manufacturers Association Script) 2015 用 let 和 const 代替 var let 和 const 是 block {} 作用域,而 var 是函数。 var 的问题见 http://jinglei. »

JavaScript, Meteor 和 React 学习资料

清单 比较全的资料列表可以参考 Github 上很有名的 awesome 系列 JavaScript React Meteor MongoDB 不过都是英文。还有就是这个清单非常的长。所以下面列出一些我的推荐 工具 免费工具 Visual Studio Code Atom(对电脑性能要求比上面的 vsc 高) Robomongo https://robomongo.org »

Slides Making Tools

Prezi Prezi’s zooming presentation software lets you choose between the freedom of the cloud, the security of the desktop, or the mobility of the iPad. »

Meteor Mantra 介绍 - 后端架构解释

或者到简书阅读 http://www.jianshu.com/p/76ab34adc131 Mantra 着重前端代码的组织,所以后端不是它的核心,但是也有一个基本的模板。 后端主要是以下四个文件夹和一个 JavaScript 文件 methods publications libs configs main.js methods 顾名思义,就是 Meteor methods 方法。 »

Meteor Mantra 介绍 - 前端架构详解

上一篇 Meteor Mantra 介绍 主要是讲了 Mantra 的特点和主要构成,比较抽象,这一次是说说它的具体文件结构,希望可以帮助大家理解 Mantra 的更多细节,以及如何应用。 还有上一篇漏了一个 Routing & Component Mounting 模块。在 Mantra 里,Router 的作用是把组件组装到 UI,组件可以是 »

《权力的游戏 - 私生子之战》背后的真实战争

没有《权力的游戏》看的周一是无聊的,没事就来分析一下这季的战争戏。 这季《权力的游戏》第 9 集《私生子之战》应该是拍出了电视剧历史上最宏大的战争场面。据说这一集一共使用了 600 名剧组成员, 500 名临时演员,160 吨的砂石,70匹战马,25名替身演员,拍了 25天。整个第六季耗资超过一亿美金,平均每集一千万美元,但是因为剧组的预算并不是一集一集地算,所以比较难准确地知道这一集史诗级的战争戏花了多少钱, »

Meteor Mantra 介绍

也可参看简书 http://www.jianshu.com/p/e1406c6d99f2 Mantra 是一种基于 Meteor 1.3+、React 和 ES2015 的应用程序架构。它不是一个框架,而是一套如何构建 Meteor App 的标准,同时也有一套相关开源库来提高代码编写效率。 简单来说,Mantra 是关于如何组织你的 Meteor »

Meteor 1.4 Beta 发布了

最重大的变化是 Node.js 版本从 0.10 升级到 4.4.5,还有 MongoDB 版本升级到 3.2 Node.js 4 目前是先升级到 4,然后确保以后升级 Node 更容易。这个带来的其他一个问题就是 Atmosphere 包管理也需要改变, »

Meteor 安全指南

介绍 安全的宗旨 只有在服务器端的代码才值得信任 其他所有: 客户端代码,Method 和 publication 的参数都不能被信任 所以,大部分的工作都是这两部分 在服务器端对所有来自客户端的输入 (Meteor.call, Meteor.subscribe) 进行验证 不要泄露任何秘密信息到客户端。前后端代码分开 避免使用 allow、deny 不要使用 allow、deny,就是不要允许在客户端修改 »

微信公众号开发签名的动态 URL 获取

这是一个大坑。Invalid Signature 坑。 微信web开发者工具 微信web开发者工具(v0.7.0) 和手机微信 (iOS 9.3.2, wechat v6.3.16) 表现并不一样。开发者工具和我想象的一样,用于验证的 url 是客户当前所在的 url,所以你把 location. »

用户调查注意事项

用户调查的目的是从用户那里得到他们如何完成某一类工作,对某一类产品的使用习惯,看法等信息,所以调查的人最重要的是做到客观,鼓励用户说出他们的个人经历,平时相关的习惯等,事后下来分析用户真正需要的产品功能。切记 pitch,不要像对潜在客户兜售产品那样和人对话。倾听,而不是你讲。 调差者要微笑友好,自己要对这个话题有兴趣,感染到对方;还要中立和鼓励被调查者在轻松友好的谈话氛围内说出他们的个人经历和想法,而不要做批判和说服,甚至不要有肢体的同意和反对,例如点头之类的。特别是别人批评质疑你的产品的时候,不要辩护。你的目的不是来辩论你的产品的可行性的,而是来收集潜在用户的信息。 其他的就是基本的沟通技巧,例如见面时要和被调查者建立关系,问题由易到难, »

轻松大幅度降低 Meteor App 的首屏加载时间

tr;dr 利用 CDN 镜像加载 Meteor App 的 css、js 文件 许多研究表明,用户最满意的网页加载时间是在2秒以下。能够忍受的较长等待时间上限大概在6~8秒之间。如果需要等待12秒,99%以上的用户会关闭网页离开。 所以如果要给用户提供愉快的使用体验,尽量做到 2 秒内打开你的网站。 问题 大家知道 Meteor App »

Realm 的两个特性: 单向数据流和响应式绑定(React Native 版 )

这两个特性也是目前随着前端 UI 越来越复杂,用来解耦的好方法。 单向数据流 Unidirectional data flow 简单来说单向数据流就是确保数据是单向绑定的,例如下图,数据的更新永远是顺着一个方向而不能反过来。 要做到数据的单向流动,需要做到以下两个方面。 数据状态只保存在一处。 Single source of truth 数据状态只保存在一处不用多说了,主要就是数据结构的设计,要避免把一种状态用两种描述放在不同的表里,然后再来同步。这样你再精巧的代码都弥补不了数据结构的缺陷。数据结构比代码重要。 状态的读写操作分开,在状态改变后通知更新 »

取代 SQLite 的移动端数据库 Realm (React Native 版) 基本介绍

相比服务器端众多的各类数据库,10 多年来移动端都没有一个新的数据库诞生(见下图)。这和快速发展的移动互联网技术不符。终于在最近 2 年有一个开源的免费数据库 Realm 诞生。 Realm 是一个起始于 2011 年由 Y Combinator 孵化的一个移动端数据库。最开始它是作为一个闭源软件使用,开始的用户有 Zynga 等公司。在 2014 年变为开源免费。 Realm 是一个移动优先( »

推荐《智识分子》

作者万维钢 (同人于野) 是一名在美国工作的物理研究员。这本书应该是他看各种书籍论文的读书笔记。书里有很多最近才被人研究总结出来的新观点。因为是各类书的读书笔记,所以内容跨度很大。不过该书也有部分凑数的文章,前半本很精彩,后半本有点充数,例如舌战群儒的分析,还有感觉经济学部分的内容是老生常谈了,例如认为罗斯福新政是对美国的经济复苏有很大帮助,而没有提目前认为罗斯福新政其实是阻碍了经济的复苏的观点。 下面也是我的读书笔记。时间有限,没有写得短点。 自序,做个复杂的现代人 大多数人的思考都没有用,都是在模仿其他人。 看古书没用,适应传统简单社会的经验和思想越来越不适应现代社会,现代社会很多东西是反直觉的。 穷人和富人的最重要差别,不在于金钱和机会的多少, »

使用七牛点播平台的文件元信息获取的 CORS 问题

七牛的 bucket 有三种使用场景 通用。适用于图片、在线处理的网络文件等 下载分发。适合大文件,例如安装包等 点播平台。适合用于 MP4/FLV 等按时间点播的文件 如果你把音视频文件放到第三类点播平台下,那么你将无法获得文件的元信息(就是 GET 文件链接加上 ?avinfo 方式),七牛会一直返回 No Access-Control-Allow-Origin 错误。甚至你添加 »

Time Management

There's always time. Time is priorities. Only plan for 4-5 hours of real work per day. Days always fill up. It's normal to have days where »

让 React 支持整个文件夹上传

因为 React 目前不支持非标准的属性,所以要能上传整个文件夹得稍微复杂点。 ReactJS ES6 已经不支持 mixins 了,所以 mixins 的方法就不写出来了。 首先在 render 函数里的 input 类似这样 <input type='file' ref='customAttributes'/> 然后再这样 componentDidMount( »

推荐吴军的《硅谷之谜》

书写得非常不错,一股浓浓的工科味道 - 逻辑严密,观点都是 1,2,3 罗列开来。IT 行业特别是搞互联网的都应该读读。 按照书名,这本书是要解开硅谷成功的秘密。最后的结论是主要在硅谷的叛逆文化上。因为其他成功的必要条件,例如资金、人才、制度很多地区都不缺,为何单单硅谷在引领 IT 世界向前?反叛文化让硅谷以公司的形式不端进化,最后孕育出大量创新的 IT 科技公司。"死亡是一个公司对社会的最后一次贡献" »

React Native Socket 连接错误

react native websocket connection failed error 如果你在 iPhone 真机上调试程序,然后使用摇一摇打开了 Debug in Chrome 功能,那么你的 iPhone 就会试图和你的电脑通过 socket 连接来展示调试信息,而在处理 socket 连接的源文件 RCTWebSocketExecutor.m 里,socket »

HTML5 微场景制作

MAKA 创始人马雁飞。2013 年中山大学本科毕业,社会学及工商管理双学位。 2014 年 3 月创办 MAKA,8月注册深圳格莱珉文化传播有限公司。同年 9 月 maka.im 上线。2015 年 4 月获得经纬数千万人民币的 Pre A 轮投资。 MAKA 简单、 »

Meteor + React demo

This is to demonstrate using Meteor, React, FlowRouter and React-Layout to fetch Github data via its API. This demo also uses Semantic UI to beautify the »

使用 Meteor 和 React 开发 Web App

Meteor 和 React 非常适合联合使用。两者的一个匹配特点就是数据的自动响应 - Reactivity。这种 响应式编程 避免了使用者再写代码来跟踪变量更新的情形,所以代码会更加简洁易维护。 下面简单对比一下 Meteor 与其他框架或者架构。 REST 不同于大多数传统架构,Meteor 没有采用 RESTful 的后端。Meteor 的客户端和服务器之间的数据交流是基于 Publish-subscribe 模式。 »