JavaScript实现Twitter雪花算法

使用SnowFlake的理由

按照时间自增,可排序。

并且整个分布式系统内不会产生ID碰撞(由数据中心ID和机器ID作区分)。

经测试 MacBook Pro (15-inch, 2018) 每秒可产生136万左右的ID。

Twitter_Snowflake

twitter开源的地址:twitter-archive/snowflake

SnowFlake的结构如下(共64bits,每部分用-分开):

0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000

| ———————-|———————- –|– –|– —–|——

1bit不用 41bit 时间戳 数据标识id 机器id 序列号id

  • 1位标识,二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0
  • 41位时间戳,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的(如下下面程序IdWorker类的startTime属性)。41位的时间截,可以使用69年,年T = (1L << 41) / (1000L * 60 * 60 * 24 * 365) = 69
  • 10位的数据机器位,可以部署在1024个节点,包括5位dataCenterId和5位workerId
  • 12位序列,毫秒内的计数,12位的计数顺序号支持每个节点每毫秒(同一机器,同一时间截)产生4096个ID序号
  • 加起来刚好64位,为一个Long型。

React 使用TypeScript时customize-cra配置别名无效的解决办法

想用TypeScript做一个个人的项目,结果在启动的时候就遇到了问题,customize-cra配置路径别名的时候总是报错,网上搜的都是旧版的,官网也只有JS的配置。后来在这个issues下找到了答案,再这记录一下。

首先在根目录下新建config-overrides.js

1
2
3
4
5
//引入需要的组件
const {
override,
addWebpackAlias,
} = require('customize-cra');

淘宝双十一 遇见十年前的自己 - 移动端视频解决方案

兼容iOS与安卓。

macOS Sierra及以上版本 打开任何来源

macOS Sierra及以上版本所有第三方应用都无法打开了,提示无法打开或者扔进废纸篓。这对于我这种用学习版的人来讲简直就是要了老命,本着学习的精神找到了开启方法,记录一下。

macOS Sierra之前的系统也是需要手动去打开应用程序-系统偏好设置-安全性和隐私-通用里勾选任何来源,这样操作之后才能打开第三方应用。而到了macOS Sierra同样如此,但是默认是不显示的。

我的系统版本:

10元成本抢到周杰伦演唱会门票

周杰伦从我小的时候火到我中年实在是太难了,前有粉丝黄牛抢、后有大麦不放票。年龄大了手速根本跟不上,所以只能靠脑子解决了。

抢票无非就三点

网速、手速和运气

现在就来解决这些问题。

MAC上的Chrome 恢复白色主题

在新版的Chrome上会跟随Mac上的暗色主题也变成黑色的。但是网页设计全部都是白色的主题,所以在使用的时候看起来非常丑。

打开终端输入如下命令就可以恢复白色模式。不需要修改Mac的主题。

苹果自带日历软件显示中国节假日

直接用现代浏览器点开下面的连接即可,不好使就换自带的Safari

利用人工智能预测双色球

google开发的tensorflow机器学习框架目前应该是人工智能开发的第一框架,不论从框架的设计,开源环境,还是商业化应用方面都是有着很好的体现.虽然前端暂时和人工智能没啥太大关系,不过科技发展这么快也没准.俗话说得好,梦想是要有的,万一实现了呢?

总的来说双色球的预测无非就是已经有了一堆数字(每一期的开奖结果)要找出一种规律然后计算出下一次的一组数字.这个规律由计算机去找,我们需要做的就是告诉电脑找规律的方向.

利用现代浏览器所提供的强大 API 录制,回放并保存任意 web 界面中的用户操作

在开发测试阶段作为开发人员你永远不知道你的测试和产品有什么沙雕操作,他们只会说 xxx 页面/功能有 bug。想要复现也很难。前段时间正好看到了rrweb这个项目,索性基于它实现了定时间隔录制、主动上报、存入数据库、统一查看等功能,可以再项目开发时引入,再也不怕 bug 复现了。

走过路过先来波 start

项目地址

示例

Linux 常用命令及举例(不定时更新)

20181107更新

买了一台mbp,用到命令的时候也多了,也好长时间没更新博客了,趁着过节(立冬)更新一波。

​ 用了20多年的windows 导致不太习惯使用终端有的时候使用什么linux 命令的时候还得现查 ,所以干脆就总结一下,分享出来,也算是写一个备忘录了(岁数大了记性都不好了,送礼的多送几盒脑白金吧).

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×