希望这个图对正在建立自己的课程研发体系的你有帮助。


希望这个图对正在建立自己的课程研发体系的你有帮助。


在进行嵌入式设备的编写的时候,一个很大的问题是重新刷写应用程序的成本较高,因此,在一些场景下, 我们尽可能通过修改服务端的应用,来解决嵌入式端的错误问题,而尽可能避免对嵌入式设备重新刷写。
我是在处理 Awtrix 2.0 的时候想到这个办法的。
Docker 在启动应用的时候,可以设置端口监听,通过 docker -p host_port:container_port 来创建容器,可以指定容器内部端口和主机监听端口的映射。
假设业务监听的是 80 端口,你可以通过 -p 81:80 将容器的 80 转发到宿主机的 81 端口上。同样的,你可以在遇见端口问题的时候,通过修改相应的宿主机端口,在外层加一层转发,从而解决掉端口编写错误的问题。
不过,需要注意的是,毕竟是加了一层应用程序的转发,相应的,性能会有所损耗,如果可以的话,尽可能还是修改嵌入式设备,减少性能损耗的点。

2 月是一个高效与低效并存的月份,在这个月,我收获了自己又一个爆款项目 —— NESHouse。但同样也是这个月,因为人在焦作,没有办法很好的完成自己的工作,效率非常的低。家里的琐事,让我无法专心 Coding。此外,本月一个很重大的事情,是我把自己的户口迁移到了天津。
本月是很懒的一个月,毫无进展。
这个月和我妈又就结婚的问题吵了一架。 她依然不同意我的观点。并以购房首付要挟我。所以我打算自己赚首付钱了。
本月收到了字节跳动的人的面试邀请,完成了一面和二面,就看后续的面试情况了。
本月没有怎么投资,倒是帮朋友卖 BTC, 感受了一把 BTC 交易。
本月一直在焦作,没啥放松休闲的点。
本月因为办理户口的原因,在天津住了两个晚上,睡在了朱峰家里,还和 Panda 一起录了播客。
此外,还和小昱、hey 一起聊了一下大家接下来的发展。
本月在 NESHouse 上收获了不少的关注度,算是自我实现方面有所突破。
本月一直在忙 NESHouse 的事情,所以没有写什么文章内容。不过,本月开始试着写一些能够带来流量的优质内容

本月因为一直在焦作,根本没有出去吃的机会,所以就难得的又一次收支平衡,月底的收入盈余了8000+。但 3 月份就不好说了,可能再次财政赤字。
本月读书 0 本,无书评
本月学习了 0 门课程
本月看电影 0 部,无影评

本文原为《海河人才计划落户天津记录》的开篇部分,后完善整理如下
熟悉的人都知道,我过去两年都一直在深圳,但最终却选择了一个我并不是那么熟悉的城市 —— 天津,Why?
出于上一代人赡养和下一代人的培养的角度,最终我选择了将自己的户口从老家焦作迁移到了天津,具体的理由如下:
在我看来,上一代赡养的问题,天津比河南的好处在于,天津以1500万人享受河南 9600 万人的资源,在这种情况下,同等资源下,一个天津的老人可以享受更多的医疗资源。另外一个问题是,河南的人太多,且太老派,所以可能当我真正需要医疗资源的时候,我需要通过「关系」来找,这对于不善于去找关系的我来说,是一个很麻烦的事情。所以,相对更加先进、开放的天津会更适合我。相比于河南的关系 + 金钱,可能天津的金钱会更让我觉得简单一些。
| 省份 | 三甲医院数量 |
| 天津市 | 55 家 |
| 河南省 | 60家 |
| 焦作市 | 4家 |
而下一代培养的角度来看,天津和河南的高考体验差距是悬殊的。和上一代赡养一样,人数是天津的利器。由于天津的人口总数,决定了它不会有那么多的适龄学生考试,所以对于每一个考生而言,你考到了多少分,你就上多少分的学校。而河南则不同,河南你考到了某一个特定的分数,但你上的学校,可能是另外一个层次的,我们称之为「掉档」。举个例子来说,就是你在河南考到了一本分数线,超出一本线50分,最终可能上的学校也只是一个普通的二本学校。这是因为河南人太多,所以无法很好的分配,不得不通过让一部分人强制掉档来让大家都有学校上。
| 省份 | 本专科高校数量 |
| 河南省 | 119所 |
| 天津市 | 45所 |
此外,除了这两个最重要的条件以外,还有一个需要考虑的是,我是回族人,我需要考虑生活成本问题。在南方,回族不那么兴盛的地方,我们需要花费更高的生活成本来获得相同的生活。而天津,回族有聚居,有散居,有较多的回族人,生活成本可以被摊平,因此,南方被我放弃。

是的,现在正在写这篇文章的我,已经成为一个「新天津人」。这篇文章是写给我自己的总结,也是给每一个希望通过海河人才计划获得天津户口的人的指南。
参看:《为什么是天津》
我走的是海河英才计划落户的天津,相对较为简单。
学历型人才。包括:普通高校毕业,全日制本科生一般不超过40周岁;具有硕士学位的研究生,一般不超过45周岁;具有博士学位的研究生,年龄不受限制。
天津市人力资源和社会保障局
我是本科学历,且没有超过 40 周岁,可以直接落户,且刚好自己这段时间 Freelancer,就自己来办理了。
需要注意,海河英才行动计划在实际执行时是有一个隐含条件(如有不对, 欢迎指正):你需要在其他地方没有社保。这是希望你能够真心实意的来天津发展,而不是只是为了落个户口。
办理学历型人才迁移,你需要提供一些基本资料,具体包括:

准备好这些资料以后,在手机上下载「天津公安」app,在 App 首页找到「引进人才落户」,根据你的实际情况,选择是否在天津有工作等信息,选择完成后,会让你下载一个 Word 文档,打印出来,并手写签字。签字后,后续流程需要拍照上传。

需要注意,这里的所有的上传都必须是原件,天津公安的 App 是不能选择图片上传的,必须现场拍。

提交完资料以后,就等待公安、人社和教委部门的审核即可,审核周期大概是一到两周。如果审核没通过,会给你发短信,告知你原因,你只需要修改,重新上传即可。
当你所有审核通过以后,会要求你进行档案的转移。这时会给你发送短信,你需要在天津公安这个 App 中打开「个人中心」,找到「业务网办进度」中的「已办结」,找到你的办理事项,点击进去最下方会让你选择邮寄调档函。
这里你只要填写地址,并支付调档函到了以后的快递费用即可(一般是20)
当你收到了调档函以后,拿着调档函前往你档案所在地的人才市场办理调档即可。比较简单。档案会通过人才市场的机要通道运送,你自己也不需要去自己人工转运,等待自动运送即可。
完成了人工转运的手续后,你需要在微信公众号「北方人才网」中的菜单栏「海河英才」中选择「网报存档信息」,登记你的档案状态。
当即后, 就只需要耐心等待人才中心收到档案,并办理存档。存档结束后会给你发送短信,让你去申请《准予迁入证明》。这部分就还是填写地址,等收货,并支付费用即可。

当你拿到了你的《准予迁入证明》后,你需要携带个人身份证、你的户口本和准予迁入证明,前往对应的派出所,办理户口的迁出。
需要注意,《准予迁入证明》有有效期,从寄出之日起 40 天内有效,因此,你拿到证明后尽快办理比较好。
迁出办理很快,把资料交给户籍警,十分钟左右你就会获得一张户口迁移证。同时,你之前带来的《准予迁入证明》也会被撕去一联,被放在迁出派出所留存。
户口迁移证的有效期要更短一些,只有 30 天,因此拿到户口迁移证就尽快办理。
将《准予迁入证明》和你刚刚收到的《户口迁移证》收好,这是你后续办理迁入的凭证。

当你有了《户口迁移证》和《准予迁入证明》后,就可以拿着这两样东西去办理户口迁移了。
具体所需资料如下
如果你的户口从出生以后就没有更新过,建议你在迁户口之前,先去做一次户口的更新,具体的内容可以参考注意事项中的「关于更新自己的户口本」部分。
当你资料带齐以后,就可以前往派出所,进行办理了。由于基本上的流程都在网上完成,因此在实际线下办理的时候,仅仅是填一下表,确认一下信息,就可以了,很快,十分钟内就完成办理了。
在办理完成户口迁移以后,虽然不要求你更新身份证,但理论上,建议你更新身份证。因为后续的一些其他的业务,比如办理房贷之类的,会要求身份证地址和户口地址一致。这个需要注意一下。
海河英才行动计划是可以全程网上办理的,所以理论上你可以不需要本人来,就可以走完所有的流程。
我实际自己办理的流程也只有从原户口所在地迁出,和迁入到新的户口所在地的时候才自己做的。其他流程都是直接网上办理或者让我妈帮我代办。
所以实际上你也完全可以不找代办。当然,如果你嫌麻烦,也可以找个代办,让人家跑个腿,收个跑腿费。
通过海河人才计划办理迁入的时候,你的户口是挂靠在北方人才市场的,而北方人才市场在天津是一个单位,且有很多不同的子单位,因此,你在实际办理时,可以根据自己的喜好选择户口所在的区。迁入的区会影响你后续办事的方便程度(毕竟你选的偏,后续办事就要跑的更远)。
以我为例,我的户口落在天津市河北区,对应的是河北区宁园街派出所。
从地图上来看,是比较方便的。从天津站地铁两站路到天津北站,从地铁口出来走十分钟左右就走到了。

如果你不打算落户在河北区,希望落在其他区,那如何预测自己的落户派出所呢?
我通过和派出所的小姐姐聊 & 观察派出所贴的一些文件,得出一个结论:
落户派出所选择的是北方人才市场在各区办事处所属的派出所。
这样你如果想要选择不同的区,只需要搜索北方人才市场在对应区的办事处,就可以查询到对应的派出所位置,判断该路线是否顺路,你是否可以很方便的完成后续的办事。
以下这张图就是我搜索到的北方人才市场的各办事处,供你参考。

我是一大早去的,事实证明这样太蠢了。派出所大概是 8:30 会点名,你在 9 点以后去就可以了。一般情况下户籍警不会太忙,所以办理速度很快。你可以晚一点去。
如果你没有结过婚/或者主动更新过你的户口本页,那很有可能在户籍系统中,你的婚姻状态和学历信息可能是空白的。在你做户口迁入的时候,你需要更新相应的状态,而更新这些状态需要以下资料:
综上所述,我更推荐你在迁户口之前,把自己的户口更新一遍,把没有更新过的婚姻状态、学历信息等写清楚。这样你就不需要在迁入户口的时候更新,毕竟要多带文件,搞丢了就不好了。
如果你之前已经更新过户口,补全了所有信息,那你只需要带上以下资料前往迁入的派出所。
其他户口信息如果已经更新过,你就可以只带这四样去办理户口迁入。如果没有办理过,则需要带上相应的证件。
身份证并非强制替换的,你可以自己决定是否需要更新。不过如果你是落户河北区的话,河北分局的户政大厅离水产前街很近,你可以走路过去。

参考下图

耗时一个多月,终于在2月底把户口办理完成了。户口迁移完成,下一步就是调整我的工作和生活状态,渐渐的从深圳撤离,前往天津。
深圳之旅,即将进入尾声,天津,我要来了。

主要是因为轻服务的负责人给我发邮件,说希望我加入,并给出了还不错的工作环境的条件(但没有谈钱),我觉得人家能够给出这样的让步,确实用心,所以就答应来面试。
一面是技术面,问的是一些常见的技术问题
其中我有印象的:
具体的编程题目
retry(fn, times) {} ,实现这样的函数,重试返回一个 Promiseperson()->eat()->sleep() ,或person()->eat()->sleep()二面问的是过去的经历,面试官问了一下我为什么会从研发刻意的转了一下运营岗位;又讨论了一下,我在运营岗位获得到的经验等信息。
编程题就做了一道
三面是产品。
技术题目做了两道:
四面就是 HR 面了,聊了一些关于,我为什么要投这个岗位(其实是我被邀请投的,根本不是我自己主动投的)、我怎么看待字节跳动之类的。

最终 HR 面试也过了,就是等 HR 和我谈钱。这里就不更新了。

大家好,我是白宦成,在过去的这个春节里,Clubhouse 相信不少人都进去玩过,也体验过了。我也在这个春节中深入的体验了这个产品。
和大家不同的是,我除了体验,还做了一些事情,今天为大家复盘一下这次事件中我的得与失。
当我知道 ClubHouse 的时候,找朋友要了个邀请码,就进去体验了一下。说实话,并没有什么太让我惊艳的功能,但马斯克的加入,让 Clubhouse 的使用体验极差,于是我便萌生了自己做一个出来的想法。于是,我便立了个 Flag ,要在 72 小时内复刻出来一个 Clubhouse。后面的事情,大家或多或少听到过,我在 55 小时内完成了开发,并被 CSDN 报道。
现在回过头来看这件事,体验到一个东西,觉得不够好,并想着做一个开源的版本出来,这是我的工程师脑给我带来的,他让我下意识选择了自己去实现一套类似工具的选择。
在这一重思考中,我总结出来了以下结论:
得:
失:
当我完成了开源版以后,考虑到这个东西在国内一定会有他的市场,那么一定也会有一些企业想要去做相关的产品,因此,开发一个商业版本是一个不错的选择。因为有了开源版在前面立着,别人相信我可以做出这样的东西,剩下只是把产品打造出来,然后卖给需要的企业即可。但,因为一些原因,实际上错过了最佳的销售期,项目虽然开发出来了,但客户也流失了。
在这一重思考中,我总结出了以下结论:
得:
失:
当我完成了商业版的开发后,我又回过头来看 Clubhouse ,发现在 Clubhouse 生态中出现了一些很有意思的周边产品,比如专门为 Clubhouse 房间准备的提问工具:Ch.chat。这些工具不是完全复刻,而是围绕着生态提供价值,反而是一个不错的切入点。如果再有机会,这个方向也会是我尝试的点。
在这一重思考中,我总结出以下结论:
得:
除了这些以外,这几天国内还出现了一些 Clubhouse 的类型产品,我说一些我自己在开发过程中的一些观点,

我不止一次的在不同的场合表达我个人对于互联网技术从业者的分类:
互联网的研发岗位上有两种人,一种人是工程师,一种人是码农。前者因为喜爱而从业;后者因为钱而从业。如果你不区分这两种人就以一个简单的维度来归类研发岗位的人,难免有失偏颇。
白宦成
昨天我写了 Alpine.js 的 HOWTO 后,将其发布到了一些技术站点上,今天我收到了这样的回复。

我相信,有不少人都会持有类似的观点,甚至读到我博客的人中,也会有不少这样的人。但我还是要说,我不喜欢这样的人。
对于我来说,一切以公司目标为指导,一切行动以钱为指导, 那就是码农的范畴。
工程师相比于码农,一个很大的区别是他对于技术是有热情的,有热爱的。工程师会去主动学习、研究技术,而不是像码农一样,一切以公司的指标为准。
我之所以不喜欢码农,是因为码农是会让这个行业变得更不好的,因为他们只关注收入,不关注行业本身的变化,不在乎行业的前进方向。而且,如果是为了钱,那有了更好的,更赚钱的工作,他是不是就不干现在的工程师的工作了呢?
我不觉得工程师就比码农高贵多少,但我自己是不喜欢与码农共事的,太累。每个人和每个工种都有自己存在的价值,但码农的价值,我不太想要。
如果你要讨论互联网中的这些做研发的人,二者归为一谈就有失偏颇了,分开来讨论,才是更适合的。因为这两类人,是完全不同的两类人。


Alpine.js 是由开发者 Caleb Porzio 开发的一款响应式前端框架。和过去人们所熟悉的 Vue.js、React、Angular 不同的是,Alpine.js 不需要你对于现有的应用进行高成本的改造,也没有 VDom 的概念,直接可以在现有的系统中加入并使用。
Alpine.js 在国内的使用并不多,因此,相应的学习内容大多是英文写就的,不过 Alpine.js 涉及到的概念不会像 Vue、React 之类那么多,你可以很轻松学会它。
Alpine.js 没有那么多的概念,因此,学习路线也非常简单,你只需要掌握以下一些内容就可以了
基础语法的了解可以让你使用 Alpine.js 开发自己的应用。而后面两者可以简化你的整个开发工作流,提升自己的开发效率。
学习 Alpine.js ,首先离不开的是官方文档,Alpine.js 的官方文档在其项目主页
https://github.com/alpinejs/alpine
如果你的英语不够好,可以看中文版本的 Readme
https://github.com/alpinejs/alpine/blob/master/README.zh-TW.md
具体的语法层面,我建议你按照如下的逻辑来学习
第一梯队,学习:
这六个语法让你可以基本开始使用 Alpine.js。
第二梯队,学习:
这五个语法让你的 Alpine.js 项目拥有更多的功能
第三梯队,学习:
上述这些语法可以让你更加深入的使用 Alpine.js,不过在很多场景下可能你都用不到,所以也无需担心。
Hugo 是 Alpine.js 的开发团队成员之一,除了开发以外,Hugo 还在自己的网站上给出了一个 Playground ,你可以在这里看到一些 Alpine.js 的常见用例,比如:数据绑定、 for 循环、抓取数据等。

你可以访问 https://alpinejs.codewithhugo.com/ 来查看 Hugo 准备的一些案例,从而快速的了解你熟悉的功能在 Alpine.js 中的应该如何实现。
当你了解了一些基本的使用后,你就可以开始打开一个网页,开始自己练习使用了。
这里有两个可以在线使用的调试环境,你可以基于他们来进行练习,直接看到效果。
Alpine.js 作为一个工具,需要多练才能熟悉它的使用,配合前面看的文档和案例,现在你就可以在这两个练习环境中练习 Alpine.js 的使用。
一个工具从测试到落地到真实环境,需要的是来自真实项目的参考。而 Awesome 中就提供了不少这样的案例。

通过了解这些项目和工具,你可以看到别人是怎么使用 Alpine.js 的,从而学习 Alpine.js 的开发。
Alpine.js 的学习资源不多,但有一些比较适合国内开发者看的,我也再列举一下,具体如下:
答:并不是,Alpine.js 可以在 webpack 中使用,也可以不在 Webpack 中使用。即使通过 webpack 构建,Alpine.js 也会自动绑定对象,方便你使用。
答:Alpine.js 并不是为某一类人设计的技术方案。虽然在我看来,他对于后端十分友好,因为不需要 webpack 之类的前端构建工具就可以使用,但如果你是前端,且不太喜欢 React 的 JSX 或者是 Vue 的template ,那依然可以选择使用 Alpine.js。
Alpine.js 的学习只需要掌握一些核心的语法,就可以正式开始使用了。相比于 Vue、React, 我认为学习成本还是要低一些的。Vue 有完整的工具链,放平缓了学习曲线,但需要学习的概念依然不少,只是上手难度低而已。
Alpine.js 在我看来,是对于后端开发者的利器。他的语法足够简单, 也不需要打包,因此对于后端开发者来说,可以十分方便的在系统中接入。同时,Alpine.js 可以很好的与传统的服务端渲染的逻辑结合,使用服务端渲染内容,使用 Alpine.js 来控制内容,从而可以很好的完成页面的构建,实现在不过多提升项目复杂度的同时,提升了页面的动态效果和逻辑编写难度,对于后端开发者来说,是一个不错的工具。
对于前端开发者来说,如果你厌恶了每次写项目都需要构建、打包,那么 Alpine.js 也是一个不错的选择。