最近从各大招聘网站上看,很多职位上有这么一条 对数据敏感 ,这是一条模糊的概念,其实是由于最近的大数据和人工智能太过热门,所以多了这么一条要求,其实招这些人的公司可能并不能完全明白 数据敏感到底是一种什么样的能力 ?

数据敏感 DEMO

如果看过一两篇关于数据的文章,你可能对于这个图就不会陌生:

这里以一个买房的过程,举个栗子:

  1. 你想买房,那肯定会自觉的关心城市的房价,在一定的时间范围内,对房价数据感兴趣,收集 一些需要的房价信息, 对房价可能会有一定了解,积累为 常识

  2. 当你有了一定的 常识 后,再去看房网站去看列表时,才可能会 发现 一些房价小于相似房源的 低价房

  3. 因为你想捡便宜,这些 低价房就是你优先看的目标。所以你点进去,再把相似的房源也点进去,通过各项数据 分析 对比,可以知道为什么会便宜

  4. 经过大量的 分析 后,你可能已经 转化 了一套别人不能具有的 知识,比如:影响房价的最高的三个因素,一种类型的房的共性、特性,等等。

通过上面的例子,也就是本人的浅见,数据敏感的能力分为四个层级:1. 收集 => 得到常识2. 必现 => 得到异常3. 分析 => 得到信息4. 转化 => 得到知识

阅读全文

一个基于d3的地图demo,点击这里看;代码放在了github

项目说明

D3-GEO-MAP 是一个基于 d3.js(v4),和 lodash 的地图绘制工具包。特性:

  1. 支持 GeoJson格式(需要 properties 中至少有个 name 属性,目前在各地下载的基本都有这个属性),推荐的下载地址为 :阿里云-datav的下载。这个版本的地图包含已经计算好的中心点以及上下级的级联数据,方便后续自行扩展功能。
  2. 通过滤镜实现了一个 伪3D 的效果。地图看上去有一定的立体感。
  3. 支持各种点击选中交互操作
  4. 支持 条形图
  5. 支持 地区连线
  6. 支持 地区点
  7. 支持 飞线
  8. 支持Tips提示
  9. 目前所有功能压缩后不到30k(如果分离些不需要的组件和scss,会更小)。
  10. 暂未兼容 TopoJson ,如果使用的是 TopoJson

阅读全文

线性比例尺 d3.scaleLinear

最常用的比例尺 : d3.scaleLinear , 线性比例尺:

1
2
3
4
5
6
var fn = d3.scaleLinear()
.domain([10, 130])
.range([0, 960]);

fn(20); // 80
fn(50); // 320

这里的 scaleLinear 方法创建了一个函数。 将[10, 130] 的空间 投射到 [0, 960] 的一个函数:

[ 10 , 130 ] => [ 0 , 960 ] ,用数学的写法就是:

$$
f(x) = y , x \in [10 , 130] , y \in [0 , 960]
$$

在实际写代码的过程中,特别是有很多数据处理的场景中,是很有作用的。

阅读全文

Tween.js 是一个 过渡计算工具包 ,理论上来说只是一个工具包,可以用到各种需要有过渡效果的场景,实际上也是这样。 不个人目前最常用的就是与 threejs 结合使用。

一、引入工具包

1
npm install @tweenjs/tween.js

引入

1
var TWEEN = require('@tweenjs/tween.js');

个人习惯性的用 npm 安装引入 ,如果不习惯,下载源文件并通过 script 标签套进来也是一样的。

一般情况下,需要通过环境里面提供的辅助时间工具来实现。比如在网页上就是使用 window 下的 requestAnimationFrame 方法,低端浏览器只能使用 setInterval 方法来配合了。

阅读全文

fetch 是接收的意思,不管是世界上最好的语言 php 、还是使用最多的数据库 mysql 都有 原生的 fetch 函数,其它语言基本都有,今天说的就是 JavaScript 的原生函数 fetch.

Fetch 是什么?

目前来说,它是替代 Ajax 的一个原生解决方案,一般来说需要支持一定的 ES6 运行环境,好消息是大多数浏览器都能支持,坏消息是,如果你要支持IE,那就还不适用,不过可以用第三方的 Fetch 包来兼容。

你一定知道 Ajax ,它是上世纪90年代的 XMLHttpRequest 技术规范演化而来,用来发送网络请求的 浏览器原生API,如果写过原生 Ajax 的同学肯定眼熟下面一段代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var xhttp;
if (window.XMLHttpRequest) {
// code for modern browsers
xhttp = new XMLHttpRequest();
} else {
// code for old IE browsers
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Typical action to be performed when the document is ready:
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "filename", true);
xhttp.send();

如果把以上代码转为 Fetch 的写法,就是

阅读全文

这几天华为在清理35岁以上员工传的沸沸扬扬,虽然有各种杂七八的不同说法,但不可否认,国内的 大环境 确实就是如此。

对于做技术面言(其实我就是说写代码),观察周围同事,基本都是年轻人的天下了,35岁以上的比较少。

眼看着自己混了这么多年头,再过些看着自己也步入35大关了,很久之前的一写代码的同事现在有当老板的,有开店的,有转做管理、业务、产品等的,不过应该还是有包括本人在内的一半左右还在写代码,现在可能是技术组长、技术经理之类,在自己的一块技术小天地里,独档一面。

搞技术是青春饭?

个人认为,如果你不在体制内,那么基本上百分之八十以上的职业都是不能让你干一辈子的,甚至有些在体制内职业,也不一定是铁饭碗了。

阅读全文

最近新开一个项目,一部分页面,大部分属于API,新开当然严格要求下Restful规范,要求技术栈是Java,对比了一下目前的几个框架,觉得 Jersey 和 Spring MVC 都不错,但是 Jersey支持 JSR311 规范,所以就没随主流使用 Spring MVC 了。

关于框架怎么搭,看下官方文档其实很快的,这里记录一搭建时遇到的一些问题。

技术栈说明

首先,使用 Maven 做为依赖管理工具,另外,除子很的的 Restful API 之外,我的项目里面还有一部分 Web 页面。所以多引入了 jersey-mvc-jsp 扩展,使用 jersey-media-json-jackson 返回 json 风格的数据。

另外,使用 Jetty 做为开发用的服务器,感觉比 Tomcat 实在方便太多。直接在 Maven 里面配置即可。

最后,我的前端页面使用了 Sass 进行 CSS 编译,使用 gulp、webpack、babel 进行 Js 编译与自动化。

阅读全文

大概五六年前接触过 Selenium 了,当时使用 Selenium 结合 jUnit 写过一套自动化测试与报警系统,但是效果不太好(和网络、数据各方面都有关系),而且仅仅几十个用例虽然不然,但写的超级心烦,每次都要找 xpath 一个操作写好多行 java代码。

现在由于有差不多的需求,使我回想到了它。所以拿出来再重温下,当然时代变了,现在更流行的 phantomjs 也下载试用了一下,由于几个不能忍的Bug档住了我的去路,所以还是先保持一下观望的态度了。再者 Selenium 是 Thoughtwork 公司出品,个人比较相信他们的水平。

Selenium 这个技术确实很有趣,上次使用是做一套自动化测试的工具,现在用它来做一些网页插件,它也可也做爬虫,一般的爬虫对 javascript 产生的内容,ajax 等没有读取能力,这时候 headless 爬虫就有用武之地了。

简单使用

引入依赖

1
2
3
4
5
6
7
8
9
10
11
 <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.0.1</version>
</dependency>

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.1</version>
</dependency>

阅读全文