我使用的软件

我使用的软件

详情查看:https://software.webclown.net/

以下是一个简单概要。


浏览器

  • Chrome
  • Firefox

输入法

  • 搜狗输入法

社交

  • QQ
  • 微信

增效工具

  • Sip
  • The Unarchiver
  • Alfred
  • ShadowsocksX
  • iStat Menus
  • Toggl Desktop
  • 滴答清单
  • CleanMyMac
  • Spectacle
  • Paste
  • DaisyDisk
  • Bartender 3
  • AirServer
  • licecap
  • SwitchHosts

开发工具

  • Go2Shell
  • iTerm 2
  • Sublime Text

文档工具

  • Bear

设计工具

  • Sketch
  • Photoshop
  • Pixelmator
  • Axure RP
  • Illustrator

视频

  • IINA

Mongoose采坑杂记

1. 集合命名

Mongoose 集合命名必须最后是以s结尾,比如你新的集合名字是:fe,Mongoose读取的时候就会加上一个s:fes

如果你的集合命名是fes 则读取的时候不会在结尾处添加s

2. _id 长度问题

《MongoDB权威指南》第2章入门,本章会介绍一些MongoDB 的基本概念。本节为大家介绍_id和ObjectId。

MongoDB 中存储的文档必须有一个"_id" 键。这个键的值可以是任何类型的,默认是个ObjectId 对象。在一个集合里面,每个文档都有唯一的"_id" 值,来确保集合里面每个文档都能被唯一标识。如果有两个集合的话,两个集合可以都有一个值为123 的"_id" 键,但是每个集合里面只能有一个"_id" 是123 的文档。

  1. ObjectId

ObjectId 是"_id" 的默认类型。它设计成轻量型的,不同的机器都能用全局唯一的同种方法方便地生成它。这是MongoDB 采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个服务器上同步自动增加主键值既费力还费时。MongoDB 从一开始就设计用来作为分布式数据库,处理多个节点是一个核心要求。后面会看到ObjectId 类型在分片环境中要容易生成得多。

ObjectId 使用12 字节的存储空间,每个字节两位十六进制数字,是一个24 位的字符串。由于看起来很长,不少人会觉得难以处理。但关键是要知道这个长长的ObjectId 是实际存储数据的两倍长。

如果快速连续创建多个ObjectId,会发现每次只有最后几位数字有变化。另外,中间的几位数字也会变化(要是在创建的过程中停顿几秒钟)。这是ObjectId 的创建方式导致的。12 字节按照如下方式生成:

前4 个字节是从标准纪元开始的时间戳,单位为秒。这会带来一些有用的属性。时间戳,与随后的. 5 个字节组合起来,提供了秒级别的唯一性。

由于时间戳在前,这意味着ObjectId 大致会按照插入的顺序排列。这对于某些方面很有用,如将其作为索引提高效率,但是这个是没有保证的,仅仅是“大致”。

这4 个字节也隐含了文档创建的时间。绝大多数驱动都会公开一个方法从ObjectId 获取这个信息。

因为使用的是当前时间,很多用户担心要对服务器进行时间同步。其实没有这个必要,因为时间戳的实际值并不重要,只要其总是不停增加就好了(每秒一次)。

接下来的3 字节是所在主机的唯一标识符。通常是机器主机名的散列值。这样就可以确保不同主机生成不同的ObjectId,不产生冲突。

为了确保在同一台机器上并发的多个进程产生的ObjectId 是唯一的,接下来的两字节来自产生ObjectId 的进程标识符(PID)。

前9 字节保证了同一秒钟不同机器不同进程产生的ObjectId 是唯一的。后3 字节就是一个自动增加的计数器,确保相同进程同一秒产生的ObjectId 也是不一样的。同一秒钟最多允许每个进程拥有2563(16 777 216)个不同的ObjectId。

  1. 自动生成_id

前面讲到,如果插入文档的时候没有"_id" 键,系统会自动帮你创建一个。可以由MongoDB 服务器来做这件事情,但通常会在客户端由驱动程序完成。理由如下。

虽然ObjectId 设计成轻量型的,易于生成,但是毕竟生成的时候还是产生开销。在客户端生成体现了MongoDB 的设计理念:能从服务器端转移到驱动程序来做的事,就尽量转移。这种理念背后的原因是,即便是像MongoDB 这样的可扩展数据库,扩展应用层也要比扩展数据库层容易得多。将事务交由客户端来处理,就减轻了数据库扩展的负担。

在客户端生成ObjectId,驱动程序能够提供更加丰富的API。例如,驱动程序可以有自己的insert 方法,可以返回生成的ObjectId,也可以直接将其插入文档。如果驱动程序允许服务器生成ObjectId,那么将需要单独的查询,以确定插入的文档中的"_id" 值。

_id和ObjectId

一些不错的console.log

1、http://www.pixijs.com/

var e = [
    "\n %c %c %c Pixi.js 4.1.0 - ✰ WebGL ✰  %c  %c  http://www.pixijs.com/  %c %c ♥%c♥%c♥ \n\n", 
    "background: #ff66a5; padding:5px 0;", 
    "background: #ff66a5; padding:5px 0;", 
    "color: #ff66a5; background: #030307; padding:5px 0;", 
    "background: #ff66a5; padding:5px 0;", 
    "background: #ffc3dc; padding:5px 0;", 
    "background: #ff66a5; padding:5px 0;", 
    "color: #ff2424; background: #fff; padding:5px 0;", 
    "color: #ff2424; background: #fff; padding:5px 0;", 
    "color: #ff2424; background: #fff; padding:5px 0;"
];
window.console.log.apply(console, e)

2、https://www.baidu.com/

window.console && window.console.log && (console.log("一张网页,要经历怎样的过程,才能抵达用户面前?\n一位新人,要经历怎样的成长,才能站在技术之巅?\n探寻这里的秘密;\n体验这里的挑战;\n成为这里的主人;\n加入百度,加入网页搜索,你,可以影响世界。\n"),
    console.log("请将简历发送至 %c ps_recruiter@baidu.com( 邮件标题请以“姓名-应聘XX职位-来自console”命名)", "color:red"),
    console.log("职位介绍:http://dwz.cn/hr2013"))

3、https://www.tmall.com/

var e = {
    "info": "\u55b5~ \u52a0\u5165\u6211\u4eec\u5427 http://tb.cn/iS8NBOy",
    "logo": "   :::                                :::  \n :::::::                             ::::: \n:::::::::                          ::::::::\n:::::::::::::::::::::::::::::::::::::::::::\n::::    :::    ::::::::::::::::   :::  ::::\n:::    Smart    :::::cool::::    Crazy  :::\n:::::   :::    :::::::::::::::    :::   :::\n:::::::::::::::::::::::::::::::::::::::::::"
};
window.console && console.info && console.info(e.logo + "\n\n" + e.info)

4、https://www.alipay.com/

var t = "\u6e29\u99a8\u63d0\u793a\uff1a\u8bf7\u4e0d\u8981\u8c03\u76ae\u5730\u5728\u6b64\u7c98\u8d34\u6267\u884c\u4efb\u4f55\u5185\u5bb9\uff0c\u8fd9\u53ef\u80fd\u4f1a\u5bfc\u81f4\u60a8\u7684\u8d26\u6237\u53d7\u5230\u653b\u51fb\uff0c\u7ed9\u60a8\u5e26\u6765\u635f\u5931 \uff01^_^", 
    s = "\u505a\u5730\u7403\u4e0a\u6700\u5177\u4e92\u8054\u7f51\u6027\u3001\u521b\u65b0\u6027\u3001\u4e13\u4e1a\u6709\u7231\u7684\u56e2\u961f\u3002", 
    n = "https://github.com/alipay/x", 
    i = [s, " ", n].join("");
console.log("%c AliPay %c Copyright \xa9 2004-%s", 'font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;font-size:64px;color:#00bbee;-webkit-text-fill-color:#00bbee;-webkit-text-stroke: 1px #00bbee;', "font-size:12px;color:#999999;", (new Date).getFullYear()),
console.log("%c " + t, "color:#333;font-size:16px;"), 
console.log("\n " + i)

5、http://www.alloyteam.com/

window.console && console.log && console.log("\n" + "   _    _  _                _____                         \n  \/_\\  | || |  ___   _   _ \/__   \\  ___   __ _  _ __ ___  \n \/\/_\\\\ | || | \/ _ \\ | | | |  \/ \/\\\/ \/ _ \\ \/ _` || '_ ` _ \\ \n\/  _  \\| || || (_) || |_| | \/ \/   |  __\/| (_| || | | | | |\n\\_\/ \\_\/|_||_| \\___\/  \\__, | \\\/     \\___| \\__,_||_| |_| |_|\n                     |___\/\n\n 欢迎加入AlloyTeam:请将简历(邮件标题后面再加上'from console')发送至 %c Kinvix@QQ.com \n", "color:red");

0、本屌站 略略略

window.console && console.log && console.log("%c\n\\                 \/ \n \\       _       \/   |        | \n  \\     \/ \\     \/ __ |__   __ |  __ \n   \\   \/   \\   \/ |_  |  \\ \/   | \/  \\ \\  \/\\  \/ \n    \\_\/     \\_\/  |__ |__\/ \\__ | \\__\/  \\\/  \\\/ \n\n", "color:blue")

本来想好好写写的,结果败在懒上。应该是2、3月之前的日记了。

七牛云对象存储图片无法预览

使用了七牛云对象存储,可能是自己当时误操作,导致上传的图片无法正常语言出现以下错误:

{
    "error": "bucket is protected"
}

原因是因为开启了【原图保护】,关闭即可。


wtf,这是什么鬼错误,搜索了许久无法定位错误信息是什么导致的,无奈🤷 之余,只好走了以下七牛云的工单系统。很快(2小时)就解决了问题。特此Mark一下。

时间管理:三八原则

所谓的时间管理“三八原则”:是说我们每个人在一天24小时中,基本上都是8小时上班、8小时睡觉、8小时业余。

前面的两个“8小时”大家都基本差不多,只不过是工作内容和形式的差异以及休息方式的区别。而人与人之间的不同,是在于业余时间怎么渡过,这第三个“8小时”直接决定了你比别人的“过人之处”。

macOS 下 MySQL 出现 only_full_group_by 的错误

  • 系统:macOS Sierra 10.12.2 (16C67)

1. 先查看本地 MySQL 的安装目录

cd /usr/local/
# 列出目录文件
ls
lrwxr-xr-x   1 root  wheel    30B  4  9 12:41 mysql -> mysql-5.7.17-macos10.12-x86_64
drwxr-xr-x  12 root  wheel   408B  4  9 12:41 mysql-5.7.17-macos10.12-x86_64

PS:

mysql -> mysql-5.7.17-macos10.12-x86_64 是电脑目前使用的MySQL版本。

先查看本地 MySQL 的安装目录

2. 复制 MySQL 下的 my-default.cnfetc

sudo cp /usr/local/mysql-5.7.17-macos10.12-x86_64/support-files/my-default.cnf /etc/my.cnf 

3. 编辑 etc/my.cnf

sudo vi /etc/my.cnf

4. 设置 sql_model

找到 sql_model 并修改值:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  

5. 重启 mysql

重启 mysql 即可。


转自:http://blog.csdn.net/fenfenguai/article/details/53941379

GIF 2017 极客公园创新大会[杂记]

新疆界

  • 基因 人类的源代码 1990
  • crispr/cas9的发现
  • 让记基因编辑成为可能
  • 杨璐菡 让每个人都有“配件”,器官额移植 经济问题 不是科技问题
  • 手机,工具?器官?体外进化
  • 摩尔定律,正在逐渐消失…
  • 量子计算是什么?
  • 宇宙
  • 突破射星计划
  • 富豪和科学家的联手
  • 引力波
  • 在不断发展的科技面前 “不可能”只是一个观点/"impossible" is just an opinion
  • 引力波会改变什么的最佳答案:

探索

  • 埃及・马斯克 SpaceX
  • 创业公司 – 才是这个世界上最有力的推动力的力量
  • ces
  • 次时代工业化浪潮 neo-inductraialization
  • 智能化浪潮下,整个世界都需要被重新制造

鹏有说

  • 雷军:
    • 或许还需要5年,才能为之更疯狂
    • 概念手机 – 无关紧要是否成功,想怎么做就怎么做
    • 是否有人反对:无人反对做mix
    • 小米之家:提高效率、直属去管理
    • 6年发展规模很大,速度很快,局部不夯实,丢掉KPI
    • 感觉不到的设计,设计的很精致
    • 工业设计

突破

  • 建立新时代的启点
  • AI
  • 数据量爆发、计算力提升、深度学习的突破
  • 人工智能,还为成为新物种,但已经是新元素
  • AI终极目的
  • 创造力 或许是人类的最终的价值所在
  • 当我们走到人类知识的地平线:已经老到无力探索
  • 突破点:人类寿命、提高知识学习效率
  • 知识分享
  • 接受信息的“带宽” 决定我们接受知识的效率 声音
  • 在技术面前:足够的耐心与敬畏很重要

潮流

  • 共享单车
    • 担心:难道不会被偷吗?
    • 科技可以:不因为1%的恶而伤害99%的善良
    • 从现实到虚拟:共享的概念正在延续