2017学习总结

2017学习总结

回顾2017年,工作之余带着较强的目的性学习,接触到了很多新知识,故简记以便重温。

无线电

年中搬家后,门禁需要刷身份证,经常携带不便且容易丢失,故想着通过技术提高出入便捷性。
通过观察,发现门禁卡分为两类:
一类是租客使用的身份证,身份证只能刷特定门禁,比如开通时会选择租住的单元楼和小区大门。
另一类是房东使用的,普通IC卡(纽扣型)。

目标:使用IC卡/手机NFC刷卡

  1. 网上查阅相关资料,利用ACR122U可以复制IC卡,其实内部也是使用PN532芯片,推荐直接入手PN532,方便实惠。
  2. 使用libnfc开源工具进行读写卡测试,发现二代证是CPU卡,ISO14443 type B类型,网上查阅资料得知普通的身份证验证一般是读取UID验证,该方法无需读取到加密的信息,修改libnfc代码即可实现。
  3. 如果直接模拟二代证,与门禁交互UID,需要卡/手机支持ISO 14443 type B协议。网上只找到一家type B类型的卡,且价格较高,购买后还未折腾实现。

另外一种简单直接的方式是借用房东IC卡,直接复制一份即可。
PN532读取二代证UID

Clojure

学习Clojure是2016年就确定的目标,无奈无明确目标,学习进度缓慢,2017主要是刷4clojure题库,回顾熟悉之前学习的基本语法。
无意间接触到了ClojureScript,发现其可以直接编译生成js代码,随着深入了解,发现一些列好用的工具,比如reagent可以直接使用react,re-frame非常赞的前端开发框架,hiccup让写html飞一般的感觉。自己也动手做了一个单页面应用,主要是查询Mongodb数据库,展示数据。
后端使用Clojure处理数据也非常棒,没有了面向过程的繁琐,代码简洁优美,就是调试时暂时未学习Debug工具,只是人肉打印调试,此处需要提高。
另外,遇到问题可以在slack上提问题,非常高效的解决问题方式。

IoT

参加了内部举办的比赛,复用了毕设时做的室内定位,虽然遗憾未获奖项,但是确实见识了不少好玩的东西,也认识了很多IoT热爱者。

嵌入式开发

怀着一颗好奇的心,从零DIY设备,购买了STM32板子,DHT11传感器,边学边做。对嵌入式开发有了基本了解,同时知道了传感器与MCU的协作过程。
智能家居——IoT零基础入门篇

HomeAssistant

2017有2个东西相见恨晚,一个是mongodb,另一个非HA莫属。
智能家居平台,方便的加入,多协议支持,炫酷的DashBoard。
折腾了内网穿透、HTTPS、自开发设备MQTT协议接入等。
目前入手小米智能家居套件,折腾中,天猫精灵吃灰中,暂时没时间搞。
HomeAssistant + HomeBridge + HomeKit + Siri,完美的控制,后续可以考虑定制自动化场景。

工具

网络

vpn/ss折腾过,前者稳定性欠缺,用来做端口映射、内网穿透进程断线,后来发现了frp,使得公网IP可以更加好用。
Squid, 配合SwitchyOmega,chrome爬梯子太棒了。

画图

了解到了graphviz,原理可以用代码生成流程图等。
知道有MetaPost这个高级的工具可以画精确的图形,后续可以玩玩。

Ethtool

工作需要,尝试翻了下工具源码,将数据结构定义拉出来,利用python按照c实现方式,抓取网络带宽。

正则表达式

工作需要,括号匹配,原来有种方法可以实现:平衡组, 递归匹配(嵌套匹配)

Mongodb

不得不说,了解mongodb主要是对NoSql的好奇,接触之后发现原来可以给工作带来这么多便捷。大部分使用数据结构是map,可以转为json存储,相见恨晚。

相关推荐