豪翔天下

Change My World by Program

0%

2017总结

先来一份去年的清单(2016总结以及2017的计划完成率12/25):

haofly

  • 简书: 1000+喜欢。目前200+,唯一的成就是上过一次首页,并且今年简书在发生针对程序员的某个事件以后,我发现简书的相关文章减少了许多,不知道是简书放弃了程序员,还是程序员放弃了简书。
  • 微信: 100+订阅。目前30+,唯一的成就是获得评论和原创功能,并且确定了以后该怎么维护和运营。
  • 微博: 粉丝+1000。今年比较少发微博了,实在不知道发什么,即使想说什么也和现实生活一样不知道怎么表达。
  • 专栏: 1个。未完成,没想好做什么。
  • GitHub: 100+ star。未完成,只有50+。不过今年为四个开源项目提交过PR。
  • SegmentFault: 3k+声望。已经放弃,总觉得找不到适合自己的问题。
  • 日语二级(这是我2014年定下的2015年的目标,2016年并没有完成。。。2017继续没完成)。现在是觉得没多少用了。

✅ 博客: 日均20+。实际30+。

✅ 阅读: 20+本。其中有10本写了读后感。

✅ 玩玩儿硬件开发。玩儿了一下Home Assistant,有前途。

✅ 搭建家庭NAS。

✅ 多做几个side project。新增10+个个人项目。

资产

✅ 研究理财产品: 10+。

✅ 和女朋友存款1w+(婚戒、买车),(2017年1月26日,发年终奖了,婚戒已买)。18年的年终没抱什么希望了,过了年再看是否买车。仔细一想,这儿写的是和女朋友的共同存款,那应该是够了,傍富婆成功。

✅ 坚持记账。365天坚持记账。

✅ 把家装修成想要的样子,虽然还没完成,但每个月都在努力添置新东西。

健康

  • 参加一次集体运动,如马拉松等。大部分原因是女朋友的时间不确定,所以基本不会去报名。

✅ 平均每天1w+步。居然达到了,平均1.1w+。顺便在2017年1月学会了游泳。

✅ 每周一次,运动量大一点的运动。买了椭圆机,天气暖和的时候一周三四次,冬天一周两次,每次五公里。

情感

  • 和女朋友至少一次出省旅游。原本打算买了车再出去的,结果今年哪儿都没去。
  • 至少一次带家人旅游。同上。
  • 和女朋友多次省内旅游。同上上。
  • 家人生日尽量回家。基本没做到。
  • 带双方父母做健康检查。只给我妈妈做了检查。
    ✅ 多去和老朋友聚聚会。越来越多的朋友回重庆发展了。

总结

2017年,又是一个完成很多人生大事的年份。今年,先是和女朋友订婚了,然后简单装修好并且搬进了我们的新家,下半年,她也开始领工资了,而且比我差不了多少,预计年终奖发了以后就能把装修贷款还完。对了,17年年底,还顺利求婚成功了。所以,很有可能,我们会在18年结婚的。

看着17年的愿望清单,虽然完成率一半都没有,但是以现在的角度来看,剩下的某部分愿望其实没必要去做了。当然,有些任务没完成,还是因为在中途没有回顾,到了年底才想起来有这么回事儿。个人成长上,迷茫了大半年以后,终于找到一条合适的路。那就是“项目驱动,持续输出”。我的精力不容易集中,而且经常懒癌复发。当我编译程序或者跑爬虫时,或者有什么其他事情在脑海里缠绕的时候,抑或写业务代码经过长时间战斗后需要休息一下的时候,以前的我基本上只会去逛逛微博或者V2EX等网站,直到我开始给自己写了很长很长的ToDo List。现在,我把我之前所有的idea都建好了Github仓库,有些只初始化了基本框架,有的甚至只有README,但是,至少,在我无所事事的时候可以随时找一个下手,撸几行代码,修身养性。另外,我可以在每一个项目使用新的技术栈。自己的idea,既有动力去写,又能自由扩展自己的能力,最重要的,让自己随时有事情做。

在投资理财上,去年我的list倒是一个没落下呀。可能主要还是在看了一本理财书之后“发奋图强”的吧,也有可能是因为在16年经历了存款从一千到一万再到负五十万的历程,发现自己真的忒穷了一点。明年应该会投入多一点的精力在这上面。

至于陪伴家人朋友上面,做得确实有欠缺。去年的愿望主要建立在买车以后,但是现实很骨干,直到现在,也还没还清装修贷款。周末要么有朋友来访,要么就和女朋友待在家里或者就在附近逛逛,她上班有时候比我还累,经常在周末也没有假期,幸好她宿舍条件算是非常好的了,不然住在家里的话上下班就太累了。希望明年能早点买车,以后能随时去看她,不过更希望她能开车来看我,开车好累的说😂

虽然每年的计划都无法完成,但是,梦想总是要有的嘛,万一实现了呢。

2018计划

haofly

  • 播客: 日均40+
  • 微信: 继续朝100+迈进。张小龙的公开课说明还有未来。
  • 微博: 365+条,只求数量,锻炼自己在公众面前的表达能力
  • 阅读: 12+本
  • Github: 新开12+个项目。
  • 智能家居: 至少两次,让家里更智能
  • 涨工资
  • 尝试新技术: 区块链、serverless、Elasticsearch、Go语言、Ruby语言
  • 每月检查这份计划🤣
  • 继续猛补美剧

理财

  • 整理全家人的保险状况,合理购买保险
  • 试水股票,主力仍然是基金12+ (为防10年一次的经济危机,今年需更谨慎)
  • 坚持每天记账
  • 买如下物品
    - [ ] 落地10万以下代步车: 当然是借钱+按揭啦
    - [ ] 3T监控硬盘: 家里两块绿盘虽然没什么问题,但是7*24小时还是有点担心,那么多的优质资源不是一两年就能搜集完成的
    - [ ] 客厅空调or卧室电视: 解决夏天在客厅看电视太热的问题
    - [ ] 三亚旅拍婚纱照: 至少需要预订
    

健康

  • 平均每天1w+步
  • 每周一次运动量大一点的运动
  • 每周至少一次大扫除

情感

  • 确定结婚时间
  • 和女朋友省外旅游至少一次
  • 和女朋友去电影院看所有9.0以上的电影
  • 带家人旅游至少一次
  • 招待新老朋友聚会至少两次
  • 家人生日尽量回家

mongodb在线语法测试: 这个是非常方便的验证语法的功能了

MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库。推荐的GUI管理工具Robo 3T。MongoDB将Json的数据存储为一个文档,但并不是我们能直接读取的普通文件。

基础概念:

  • 数据库: 与Mysql的数据库类似
  • collection: 与Mysql的table类似,集合
  • document: 与MySQL的行row类似
  • field: 与MySQL的列column类似
  • index: 索引
  • primary key: 主键,默认主键是_id

应用场景

  • 爬虫的数据存储,由于多个爬虫爬取数据时字段不统一,用mysql很容易浪费字段
阅读全文 »

这本书也只是一部文集,但是看起来却像是《把时间当作朋友》的实践课。前几天在微博上看到有人拍到了李笑来老师出席某个大会,穿西装打领带的样子确实不像我想象中的他。不过他的文字,还是非常有价值的。

我算了一下,“七年”和“一万小时理论”基本上是一个时间概念,一万小时如果用七年来完成,每天大概就是4个小时。一万小时的专注练习,足以让我们变成一项技能上面的专家,足以让我们获得新生。仔细想象,我从入门编程到现在居然还没有七年,浮躁的我却一心想要快点变成专家级别的人物。

阅读全文 »

确实在意料之外! 最近连续几个月的周更,只是想跟上我博客的节奏,早点让公众号的更新进度赶上博客的更新进度。在上周突然接到“原创开通邀请通知”,给我开通了声明、赞赏、留言、页面这四个模块,所以一个个人订阅号的全部功能我几乎就同时拥有了。

现在看来,拿到原创功能原来并不用那么难。在保证你的内容是真的原创的情况下,只需要能稳定更新几个月就行了。就这么简单,我猜,微信团队现在对原创的审核应该都是交给机器在做,对内容质量的要求并不高,对订阅数量和实际阅读数量的要求都不高。这可不是我胡乱猜测的,因为我知道自己的水平。最近的微信文章基本都是转载的我个人博客前几年的历史文章,内容的质量相对是比较低的;订阅数量是非常低的,但是不方便透露;阅读数大家是有目共睹的,真的低。所以,这个原创功能,真的不难。而且大多数人对原创这个标识根本就不敢兴趣,用户只关心内容本身,而不是来源。

阅读全文 »

别离生活太远,最近发的博文都不怎么接地气,这一篇原本是记录在numbers里面的,现在直接记录在博客里,这才是我的记录工具。

项目 渠道 品牌 价格
电源延长线 京东 包尔星克(1.5m) 12.9
茶几 京东 乐和居 856
钻头套装 京东 工蜂 26
燃气热水器 京东 美的(JSQ22-12HWA) 1059
电视 京东 乐视超55 3868
电动牙刷 京东 飞利浦 0(活动赠送)
电视柜 京东 华纳斯 1632.5
主卧空调 京东 美的(KFR-35GW/WXAA2正1.5匹) 3199
次卧空调 京东 奥克斯(KFR-26GW大1匹) 1899
冰箱 京东 海尔(BCD-571WDEMU1) 3399
人体感应灯 京东 壹秀 47
儿童床 京东 健优美 3030
开关插座 京东 施耐德 733.5
无线路由器 京东 斐讯 0
角阀 京东 莱尔诗丹(8个) 165
水龙头 京东 厦能厨卫(6分) 21
生料带 京东 莱尔诗丹(5个) 9.9
绝缘胶带 京东 赛拓(3卷) 9.9
空气开关 京东 德力西(7个) 152.44
六类屏蔽模块 京东 安普康(3个) 76.4
USB开关插座 京东 简宜电气(9个) 127.6
电动牙刷 京东 飞利浦 250
洗衣机 京东 西门子 2398
抽油烟机+燃气灶 京东 老板 2800
六类屏蔽网线 京东 秋叶原(100m) 190
插座暗盒 京东 西蒙电气(42个) 96.6
沐浴花洒 京东 四季沐歌 299
吸顶灯 京东 松下 999
阳台吸顶灯 京东 松下 0
电饭煲 京东 九阳 139
切磨套装 淘宝 淘宝店铺 37
毛巾架 淘宝 淘宝店铺 29.9
塑料凳 淘宝 淘宝店铺(4根) 36.5
木凳子 天猫 淘宝店铺(6根) 179.4
厨房防油贴纸 淘宝 淘宝店铺(10米) 25.8
冰箱增高垫 淘宝 8个 17.6
储物凳 淘宝 2个 67.04
电钻 天猫 淘宝店铺 49
蓝牙音箱 天猫 boas 48
电风扇 天猫 艾美特电器旗舰店 169
扫把 天猫 淘宝店铺 18.9
浴室LED灯 天猫 20w 18
主卧窗帘轨道 淘宝 淘宝店铺 154
钻头 淘宝 3个 3.6
客厅窗帘轨道 天猫 淘宝店铺 97.8
衣柜杆 天猫 淘宝店铺 15.8
次卧窗帘轨道 淘宝 淘宝店铺 48
儿童床上铺床垫 天猫 淘宝店铺 347
儿童床下铺床垫 天猫 淘宝店铺 610
主卧床 天猫 林氏木业家具旗舰店 2478
梯子 淘宝 淘宝店铺 80
nas主板 淘宝 j3455 534.7
nas电源 淘宝 淘宝店铺 48.8
万能扳手 淘宝 淘宝店铺 18.93
键鼠套装 天猫 淘宝店铺 18.18
甲醛检测试纸 天猫 淘宝店铺 8.94
餐厅灯泡 天猫 3个 16.5
锂电钻 天猫 淘宝店铺 48
网线钳套装 淘宝 淘宝店铺 24.8
水槽 淘宝 欧淇 174
餐厅灯 天猫 淘宝店铺 182
网线插座 淘宝 2个 17.6
一次性口罩 淘宝 淘宝店铺 4.4
卷尺 淘宝 淘宝店铺 8
万能遥控器 小米 小米官网 79
米家智能家庭套装 小米 小米官网 375
小米水质TDS检测笔 小米 小米官网 35
小米空气净化器2 小米 小米官网 649
空气净化器滤芯 小米 小米官网 149
沙发床 宜家 重庆宜家 2999
餐桌 宜家 重庆宜家 1299
主卧次卧吸顶灯 飞利浦 2个 160
总计 38895.83

基装4万+软装4万,总共8万多。软装的钱基本上是京东的免息分期,大概后年就能还完了。。。

SQLAlchemy是Python最广泛使用的一个ORM(对象关系映射,简单地说就是把数据库的表即各种操作映射到Python对象上面来)工具。它支持操作PostgreSQLMySQLOracleMicrosoft SQL ServerSQLite等支持SQL的数据库。文档地址

  • 需要特别注意的是,SQLAlchemy只是适用于一些通用的微型框架,而全栈框架Django的orm在结合特定框架用起来可能更加便利,所以在使用SQLAlchemy的时候,如果不知道怎么完成复杂的定义,那就干脆自己写sql吧,自己去join什么的
  • 有另外一个选择peewee,提供类似Django那样又好的查询API,比SQLAlchemy易用,虽然可能没那么强大,性能可能也没那么好(并没有人去对比过性能),但是peewee还不支持Oracle等数据库,虽然我不用,但是为了防止以后多学习一门,就决定是SQLAlchemy
  • SQLAlchemy本身并不支持异步,在tornado/sanic中只有手动去执行异步

SQLAlchemy安装

1
pip install sqlalchemy

SQLAlchemy连接数据库

阅读全文 »

当我搬新家的时候我看了《怦然心动的人生整理魔法》,当我寂寞孤独的时候遇到了《岛上书店》,当我开始决定学习投资的时候又来了《富爸爸,穷爸爸》,不知道是我选择了书,还是书选择了我,缘,妙不可言。

此书是以主人公的视角来教育我们重新审视金钱的,看到最后,故事已经很模糊了,我基本记不清,但是故事的转折点,以及富爸爸穷爸爸的教育对比却是那么的让人印象深刻。罗伯特无疑是非常幸运的,有一位不直接给钱而是直接教他怎么挣钱的爸爸。我不一样,或者说我们这个国度,我们这一代人,都不一样,我们的社会还没发展到那种程度。我们从小接受的教育就如穷爸爸那样,好好读书,找一份好工作,勤俭节约,好好存钱,最终就能过上幸福的生活。这种说法有错吗?当然没错。即使是在发达国家,这种观念也是没错的。我虽然喜欢平平淡淡的生活,但是我并不喜欢千篇一律的生活。生活总得来点刺激,不是吗?

阅读全文 »

目前项目中遇到一个需求,需要私有云在单独机房下的实例数量。需求本身很简单,最简单的做法就是给每个机房添加一个单独的字段表示最大配额。但是在和团队一起碰撞下,一致认为这个需求的背后可能会有无数个奇葩的需求。想象一下,今天想要限制机房下的实例数量,明天想要限制某种实例的数量,后天又想限制某个机房某个环境的实例数量……这一个需求能够衍生出无数的类似的需求,所以我们决定做一个相对通用的方案。经过两天的思维碰撞,我把这个想法总结了一下。

其实可以把这个配额管理的场景在抽象一下,主要的难点就是需要在有多个不同限制条件(不同的字段)的情况下,随机组合条件进行搜索。想了那么久,现在记录下来的时候,却突然感觉那么简单了。基本的数据结构如下:

1
2
3
4
5
6
7
8
target_id: 目标主体的id
target_type: 目标主体的类型
pattern: 多个条件的组合
pattern_type: 被限制目标的属性的类型
privority: 优先级
min: 最小值
max: 最大值
remain: 剩余值

这里的target_type是指我们要限制的目标的类型,而pattern_type是指我们要限制目标的属性的类型。比如我要限制总共有几个机房,那么target_type就是指机房ROOM,而pattern_type就是指数量MOUNT,再比如要限制机房的实例的数量,那么target_type就是指机房ROOM,而pattern_type就是指实例INSTANCE

最大值最小值剩余值都不用解释。如果业务简单,最大最小值可以仅仅用一个limit字段来表示,remain也可以直接在需要的时候直接查询数据库count一下。

最重要的是pattern字段,我最先的设想是每个限制条件都被表示为数据库的一个字段,如果没有该值则为空,查询的时候直接用SQL的OR来进行筛选。但是我同事有更好的想法。仅仅用一个字段来表示条件,多个不同的条件用分隔符分开。pattern_type为实例的时候,条件可能为磁盘类型、系统类型和环境类型,那么这三个条件组成一个序列:disk:system:env,如果仅仅限制disk那么可以存储成disk:ALL:ALL,这里用ALL代表该条件不对该条件进行限制;如果限制diskenv,那么可以存储成disk:ALL:env。最后在实际搜索时使用正则匹配一下即可。这种实现方式相当于用target_typepattern_type来唯一确定pattern的样式,这样不同type的条件可以放在一个字段中,也就规避了不同配额类型限制条件不同造成的增加表或者增加表字段的局面。

这只是目前的一个初步构想与实践,满足我们当前的需求当然是绰绰有余了,不过是否能入我们预期的那样满足今后的一些变态需求,就要看时间的考验了。