Google Analytics 的 Tracking ID 不见了?
最近新创建了一个 Google Analytics 的 Property(媒体资源),但是找不到它的 Tracking ID 了。根据文档,需要创建一个 Data Stream,然后通过这样的方式引入一个被称为 gtag.js 的代码: <!-- Global site tag (gtag.js) - G...
设计 pagic.config.ts
作为一名资深博客爱好者,我热衷于折腾各种博客系统,写过多个博客主题。 终于,写主题也无法得到满足,我开始写博客系统了。 或者说是更广义的,静态网站生成器。 如今 Pagic 已经完成了一个雏形,我也邀请了一些朋友试用,经...
测试的分类
一直以来,我都听到过各式各样的测试——单元测试、黑盒测试、压力测试等等,但是很难对所有的测试方式有一个总体的认知。 在经过大量的谷歌之后,我终于把各种种类的测试弄清白了,下面针对每一种测试做一个简单的一句话介绍,...
Puppeteer 指南
Puppeteer 是 Google Chrome 出品的一个无头浏览器。如果你听说过 Phantomjs 或者 Selenium,那么就应该知道它是做什么的了。Puppeteer 与它们类似,提供了一系列 api,通过 DevTools 协议控制 Chromium/Chrome 浏览器的行为。...
How to Get Changelist in Git Push Hook
Git hooks is a useful tool to run scripts before or after events. We usually use it to check the format of commit message, lint our code, prevent pushing code to master branch, or run test scripts before pushin...
运行一个脚本,看看你的项目的代码质量吧
代码质量有很多指标: 1. 源代码行数 2. 代码重复率 3. 圈复杂度 4. 报错量( Bug 数)占比 5. 测试覆盖率 6. 开发约束(代码块行数等) 我做了一个脚本可以测出上面的 1, 2, 3 大家都来试一试吧! Supported Languages - js, ...
Mobi.css v3 发布了,一个轻量、可拓展、移动端优先的 CSS 框架
- GitHub: https://github.com/mobi-css/mobi.css - 官网:http://getmobicss.com/ 简单介绍 - 轻量级:压缩 gzip 后只有 2.6 kb - 可拓展:可以引入 plugin 来拓展 Mobi.css ,并且每个 plugin 都可以独立于框架使用 - 移动端...
我花了两个月时间,定制出了心目中「完美」的 ESLint 规则,我用四个空格缩进
我们依据以下三条原则,研读了 ESLint 所有的配置项,定制出了心目中的「完美」ESLint 配置。
码字 md 发布 v2 啦
码字 md 是一个在线 markdown 编辑器,自发布以来一直收到很多好评: 前帖:码字 md - 干净精致的 Markdown 编辑器 码字 md v2 更新内容 已完成 - [x] 支持永久保存 - [x] 支持衍生 TODOs - [ ] 支持包含过期时间的保存 - [ ] ...
GitHub 上的测试覆盖率
开源项目的 README.md 中,一般都会在前面放上一些 badge,除了可以让读者快速的了解项目的一些信息以外,还为 README.md 添加了些许色彩。以 Pagic 为例: - 上图中的 build passing 表示 travis build 通过了,用绿色背景显示...
三分钟创建一个简单精致的 About Me 页面
一个「About Me」页面,能够使别人快速的对你有一个大致的了解。 使用 GitHub 提供的 Pages 服务,可以将静态的网页托管在 GitHub 上。而 GitHub Pages 默认的 Jekyll 使得静态网页得以很方便的配置化。 我的 About Me 页面精雕...
晒键盘 - FILCO 87 双模忍者圣手二代 黑色青轴
关注了很久,这款键盘终于又有货了! 没抢到什么优惠券,狠下心还是入手了。 目前用起来还不错,比 2016 mbp 13 寸大一些。
随手撸了个测试屏幕坏点的网页
新入手的 MacBook Pro 需要测试屏幕坏点,随手撸了一个,需要的人拿去吧~ GitHub: https://github.com/hack1day/full-color-screen Usage - Open http://full-color-screen.hack1day.com - Press SPACE or ENTER or click anyw...
我写的第一本书《TypeScript 入门教程》
持续了大半年的学习和写作,在今天终于告一段落了。 写书之旅 最初有写书的想法,是刚加入微软的时候。 由于工作中需要重度使用 TypeScript,所以我花了几天的时间研读了好几遍官方手册和中文翻译版。 对于一个把 OOP 早就还给...
我的 2016 年总结
出游土耳其 2016 年 2 月,我去土耳其游玩了半个月。 即使是我蹩脚的英语,也挡不住土耳其人的热情。 蔚蓝的天空和大海: 形似雪山的棉花堡: 外星地貌的卡帕多奇亚 遍地清真寺的伊斯坦布尔 这里留下了太多回忆。 入职微软 之前...
码字 md - 干净精致的 Markdown 编辑器
新写了一个 Online Markdown 编辑器,目前还不是很完善。 先分享出来,希望大家会喜欢。 码字 md 介绍 - 基于 SimpleMDE 和 Mobi.css,加入了中文适配 - 精致的预览页,可以直接拷贝到 word 或导出为 pdf (开发中) - 主题可单...
写给 26 岁的自己
今天是我 26 岁的生日,Google 送给我了一个 doodle: 年终将至,工作变得繁忙起来。 总结还是留到跨年的时候再写吧。 最近比较浮躁,希望自己将来能够脚踏实地的进步,厚积而薄发。 加油!
在微软 on call 的经历
之前一直听说微软、亚马逊等企业需要 on call,但是不清楚具体要做什么。 上周第一次在微软 on call,写一点感受。 On call 是什么 就是需要保持电话畅通,随时都可能接到电话说哪个服务挂了,哪个测试失败了等等。 然后需要具...
基于 Mobi.css 的官方 Hexo 主题
Demo: 我的博客和 Mobi.css 官方文档 经过多天的开发,基于 Mobi.css 的 Hexo 主题终于完成了。 特性介绍 - 支持移动端,Mobi.css 是一个轻量灵活的移动端 CSS 框架,这是它的官方 Hexo 主题 - 支持多语言,既可以写博客(我的...
我来微软这半年
转眼间已经离开美团,来到微软半年了。 背景 在刚加入微软的时候,我打算过了一个月就写个月度总结。结果一个月后,发现啥都不懂。 于是想再过一阵子来写个季度总结吧。结果一个季度后,感觉对业务还是一知半解。 于是想再过一...
7 天 600 stars, Mobi.css 是如何诞生的
Mobi.css 是一个轻量、灵活的移动端 CSS 框架。发布一周以来,获得了 600+ stars,登上了 GitHub Trending Top1(CSS),在 Hacker News 上进入了前三。 这篇文章会先介绍一下创造 Mobi.css 的思路,再介绍一下我在推广 Mobi.c...
「Mobi.css」轻量,灵活的移动端 css 框架
最近做了一个 CSS 框架,颇废了一番功夫。 这里先把它分享给大家,欢迎 Star,欢迎试用! - GitHub - Homepage 简单介绍 Mobi.css 是一个轻量,灵活的移动端 CSS 框架。特点如下: - 压缩后只有 4.6kb,比 Skeleton、Pure.css、...
撸了两个 Hexo 的 Plugins
都是从 git log 获取数据填充到 posts 中: hexo-filter-date-from-git - 获取 post 的第一个提交的 date 作为 front-matter 中的 date - 获取 post 的最后一个提交的 date 作为 front-matter 中的 updated 解决的问题 hexo 中...
新姿势:在 GitHub 基于 Hexo 写 Wiki
最近想尝试下用 Hexo 写 Wiki ,发现还挺酷的,所以把主题和一些插件提取出来了,分享给大家。 先上链接 - 主题:wiki-i18n - Demo :JS Index - Demo 的 Repo :JS Index repo - 插件,按字母顺序归档:hexo-generator-archiv...
在 Windows 中配置 Linux 工作环境(使用 Hyper-V)
基于上次 v2ex 上的建议,这次选择的方案是:Hyper-V + Ubuntu + PuTTY + Samba。 Hyper-V Hyper-V 是微软的一款虚拟化产品。Windows Server 2008 或者 Windows 7 以上就可以使用了。 如果你使用的是 Windows 7,按如下方式开启...
在 Chrome 中调试 Android 浏览器
最近需要使用 Chrome Developer Tools 调试 Android 浏览器,但是官方指南并不是很好使,经过一番折腾,终于调试成功了,在此把经验分享给需要的朋友。 Chrome Developer Tools 是前端工程师必不可少的工具,它极大的提高了我们...
在 Windows 中配置 Linux 工作环境
2016-05-20 更新:可以使用更加先进的 Hyper-V + Samba 方案。 要在 Windows 上使用 Linux,最方便最好用的就是装个虚拟机,再用 SSH 连上了。Linux 当然选择无图形界面的 Server 版,所以还需要能够方便的在 Windows 上访问到...
假如人类灭绝了,可以留给下一个文明有限的遗产,那么该留些什么呢?
这种情况下,是否人文比科学更有价值?更能证明人类的存在? 科学是客观存在的,在很长的时间跨度下,科技树总有一天会被再次点满,下个文明总有人会发明三角函数,微积分,肯定有人会发现牛顿力学(虽然下一个文明肯定不叫牛顿...
Learn TypeScript
2016-05-20 更新:打算写成一个系列,放到独立的 repo 中,此篇会拆分为系列的一部分,在此仅做存档。 它的第一个版本发布于 2012 年 10 月,经历了多次更新后,现在已成为前端社区中不可忽视的力量,不仅在 Microsoft 内部得到...
Bootstrap 4 初探
Bootstrap 作为 GitHub 上 Stars 最多的项目,可以说是万众瞩目,issues 和 pull requests 也居高不下,足以看出其后劲依然很足。 截止到本文发布,Bootstrap 4 已经推出 alpha 2 版本一个多月了,让我们一起玩转 Bootstrap 4 ...
高级工程师之路
美团对工程师文化非常重视,我有幸参加了公司的第三期高工训练营,听到了各个大牛的分享,觉得不能无所作为,于是想对每一期有个总结思考,并对接下来的行动有个计划。 PPT 就不放出来了,欢迎大家加入美团一起成长。 做好技术...
关于 YUI 的重要公告
译者按:YUI 伴随着我两年有余,我见证了它的伟大与落魄。它开创了模块加载,发扬了命名空间。它有强大的事件和控件机制,也有臃肿的条件加载和皮肤。它的精髓有如一座图书馆,让你不由得感慨设计之宏大,它的 features 有如一...
JavaScript Fetch API
JavaScript Fetch API from Xcat Liu
Fetch API
从 isArray 谈起
怎么判断数组是前端面试经常被问到的一个问题,数组也是最难以准确判断的类型之一。今天咱们就来谈谈如何判断数组。 typeof typeof 是 JavaScript 中判断类型的运算符,语法如下1: typeof operand 可是 typeof 返回的结果不尽...
武汉宣讲会
今年有幸和刘江老师还有 zj 美女一起参加了武汉的宣讲会,我负责师兄师姐交流的部分。有一些感想: - 会后没有笔试环节,来的人数明显少多了 - 产品今年就业压力太大,大部分都是产品来听,顺便询问还招不招产品 - 刘江老师的演...
撸了一个三行情诗表白网页,可朋友圈分享,但是卡爆了
请在手机上访问(或者把 Chrome 开发者模式打开,调整为 iPhone 6[+] 模式) 链接:http://xcatliu.github.io/rose/ GitHub: https://github.com/xcatliu/rose 由于网站太简单了只有 100+ 行代码,所以 css js 都 inline 了,但...
React Native and V2HOT
React Native & V2HOT from Xcat Liu
React 组件开发
受 StuQ 的邀请,去录制了一期节目,羞涩ing~ React 组件开发 from Xcat Liu
纪念一下 365 天的坚持
主要贡献: - 创建了 20 多个开源项目(虽然大多数黄了) - fork 了 10 多个开源项目(虽然贡献不多) - star 了 200 多个项目 - 得到了 100 多个 star - 认识了 40 多个人 - 做了 60 多道算法题(虽然很多是 easy 的) - 虽然...
V2HOT 终于上线了,欢迎下载
GitHub: https://github.com/xcatliu/v2hot 快速下载:https://itunes.apple.com/cn/app/v2hot/id992150357?mt=8 --------------------------------------------------------------------------------------------------------...
GeoJSON 和 TopoJSON
GeoJSON GeoJSON 使用 type 表示数据的类型。 当 type 取值 Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon 或 GeometryCollection 时,用来表示几何图。 当 type 取值 Feature 时,除了几何图外,还...
npm 语义化版本号
认识 npm 版本号 每一个 node package 都有自己的版本号,一般定义在项目的 package.json 中,如: { "name": "express", "description": "Fast, unopinionated, minimalist web framework", "version": "4.12.3", "author": "...
展望 2015
2015 年就要来了,煽情的话就不说了,这里统计一下 2014 年做过的事,以及对 2015 年的展望。 2014 年做过的事 2014Q1 - 过年在家休息了 10 多天 - 阅读《可维护性 JavaScript》 - 阅读《高性能 JavaScript》 - Highcharts - y...
基于 README 的文档管理
什么是 readme 为什么要在仓库中写文档 - 文档和代码在一起,方便查看 - 文档和代码版本一致 - 使用 markdown 格式的 README 文档可以在 GitHub 中直接查看 - 可以在 vim 中查看 - README 已经能(并且能更好的)满足大部分需求...
Thinking in React
Thinking in React from Xcat Liu
校招季
一年一度的校招季快要结束了,同学们是不是拿 offer 拿到手软呢? 今年我有幸参与了合肥南京和武汉的校招工作,忙碌之后终于有时间把这段珍贵的经历记录下来。 合肥 五个小时的高铁,迎接我们的是磅礴的大雨,人头攒动的火车站...
Hybrid App & WebViewJavascriptBridge
实现原理 Hybrid App 的原理很简单——在原生应用中开启一个网页。可以是全屏都交给网页,或者是一部分(比如导航栏)由原生应用实现,另一部分是一个网页。 技术细节 H5 页面的实现 作为前端,对这块应该已经很熟悉了,与传统...
设计模式浅析
设计模式浅析 from Xcat Liu
抽象语法树在 JavaScript 中的应用
抽象语法树是什么 果然比较抽象,不如先看几个例子: 抽象语法树举例 foo = 'hello world'; /* +-------------+ | assign(=) | +-------------+ X X X X +-------+ +-----------------+ | foo | | 'hello world' | +-------+ +...
Modular JS
概述,发展 模块化定义 - 一种将系统分离成独立功能部分的方法 - 优缺点 js 模块化发展 - 内容样式交互混合 - 分离成独立文件 - 动态加载 - 服务器端 js,CommonJS - 发展到客户端 AMD CommonJS CommonJS 规范 - CommonJS API ...
Grunt Custom Task 指南
阅读这篇之前,请了解 grunt ,可以参考 [Grunt Getting Starting]。 在决定创建自己的 task 之前,最好搜索一下你的需求是不是已经有别人写好的了:http://gruntjs.com/plugins。 简介 grunt 有一套强大的创建任务机制,不管是...
Grunt Getting Started
Grunt 简介 每个前端开发工程师都会遇到前端文件校验、打包、压缩的问题。使用 Grunt 之前,你可能也使用过 Shell 脚本或者 Ant 脚本,来实现校验合并压缩等任务。 Grunt 是一个基于任务的 JavaScript 项目命令行构建工具,运行...
The Many Meanings of Open
参加万维网之父、万维网联盟创始人见面会的感想
Grunt
Grunt API grunt.registerTask alias for grunt.task.registerTask Alias Task // http://gruntjs.com/api/grunt.task#grunt.task.registertask grunt.registerTask(taskName, taskList); grunt.registerTask('default', ['jsh...
美团一个月
初来乍到 来美团已有一个月零四天,有幸见证了月销售额突破七亿和八亿的时刻,认识了志同道合的朋友,加入了这个飞速成长的大家庭。 学习与成长 vim 和 git 磨刀不误砍柴工,只有运用好了这些最基本的工具,才能在工作中得心应...