日常碎碎念 2021.07.20

前言

时间过的飞快,转眼间7月份就过去一半了,实习第一周也就这么过去了。不知不觉间,透过《日常碎碎念》这个形式的周志,来填充博客的内容看来是非常明智的选择。毕竟技术文章的产出是需要时间的沉淀的,中间的空窗期不写点东西上来的话,很容易让自己失去继续写博客的热情🔥。通过这段时间的记录📝,除了感受到生活的苦,也能更好的发现生活中的甜。希望这个栏目能够继续延续下去,继续记录生活(即使没人来看😂)。

上周总结

  1. 完成实习中的第一个需求的开发
  2. 宜家餐厅游记
  3. 去了MUJI Diner吃了个晚饭
  4. 好物分享:《米家充电台灯》
  5. 亿本新书:《岩田先生》

1. 完成实习中的第一个需求的开发

大公司就是不一样,所有的开发流程都是十分规范的。大概流程就是: 产品经理从内部系统发需求单,部门leader分配任务,开发者接单,评估时间,完成开发,等待测试验收,体验环境测试,外网上线。

本周的主要任务是为内部的一个广告平台增加了一个小功能。任务的大致内容就是给一个表单加一个按钮而已。但万万没想到的是这个表单的生成为了解耦和方便配置,做成了JSON生成的表单系统。这些其实都是小问题,不就是编写配置文件嘛,so easy啦!如果你也是这么想的,那就掉坑里了,我也是。这东西的配置项完全没有整理文档,表单生成器一行注释都没有。不幸中的万幸就是开发者还在助理,遇到技术难题还能请教一下,要是离职了就更痛苦了。

作为实习生,总不能一上来就说做不了吧,这也太尴尬了😅。没办法,只能硬着头皮上了,慢慢翻源码打断点,慢慢理解前开发者的idea。最终还是在周五完成了✅开发任务,大概也就比原来的计划慢了一天。(其实也没这么痛苦😖,只是要费点时间而已,做是肯定能做出来的。另外腾大晚上的免费晚饭着实是成为了我奋斗💪坚实的后盾,每天解决完一个小问题后,跑去吃顿爽的,再回来开工,着实是让人放松愉悦呀😄。)

2. 宜家餐厅游记

长这么大个人,去宜家就去了两次,这周末是第二次。第一次去甚至都没机会品尝一下宜家餐厅,吃了1元的冰淇淋🍦就走了。趁这次周末有空余时间,又来到了深圳,出去逛一下。因此选定了宜家餐厅作为目的地之一。

我去的深圳宜家,位于欧洲城。从白石洲站出来,转M487公共汽车,一直搭到总站就行了,全程1.5元,可以直接刷羊城通

大致方向

别人去宜家,主要目的应该是为了购买家具🪑。我这次去宜家,主要的目的就是吃吃吃。废话不多说,直接上图。

1.香草三文鱼

整顿饭中最令人欣喜的部分,真的是好好吃啊😋。鱼肉本身就很有油脂的香味,搭配芥末酱吃,芥末的辣味更能激发出鱼本身的鲜味。再撒上旁边配的柠檬汁,酸酸的,非常的清新开胃。作为前菜而言,非常棒👍。(一楼门口的食品超市有的卖,但是考虑到晚上还要去MUJI Diner,拿着不太方便;另外秉持着”少食多滋味”的教训,还是没买下来。待到下次再来的时候,再细细品尝吧😄)

就这个超级好吃,但是单买只有鱼片,芥末酱要买一整罐就太不划算了

2.瑞典🇸🇪肉丸

听说这是宜家的招牌菜,于是乎就拿了一份。但说实话,就是普普通通的猪肉丸的味道,可能比较新奇的是,配了一点蓝莓🫐酱,可以蘸着吃,解解腻。凭良心讲,我是不推荐大家点这个的,不会特别惊艳。

3.肉酱意面🍝

点这个纯粹是我怕不够吃拿的。大概就是普通的番茄肉酱意面吧,没啥可圈可点的。

4.提拉米苏

这个提拉米苏貌似也是招牌点心,因此拿了一份尝一下。确实挺好吃的,有点甜,跟朗姆酒的酒味一中和,感觉非常协调。用这份甜点🍮收尾确实不错。

全餐总花费83.2元,如果不吃意大利面的话还能更便宜。另外取餐的时候看到牛扒貌似也好好吃的样子,下次可以来试试看。感觉宜家以后会成为我的一个周末消遣的好去处。

另外这次最大的一个收获,就是买了3.5元的宜家环保袋♻️,真的是好好看啊。便宜耐操值了!

3. 去了MUJI Diner吃了个晚饭

全球第一家MUJI Hotel,全球第二家MUJI Diner就位于深圳的深业上城2楼处。去到旗舰店除了吃饭,还买到了限定的小零食和杯子,好开心啊😄。

大闸蟹🦀️味道的薯条,不过说实话就是虾味薯条,不是很特别,可能就是吃个限定吧😂

溜达了一圈,又出去Shopping Mall逛了一圈,直到下午6点才走回去吃了一顿饭。但是真的是好贵啊,想要吃日式定食,还是中午来吃吧🤷‍♂️。

首先,最近推出的58元夏日新品套餐仅限中午,晚上就只有牛扒汉堡等大菜,而且巨贵,一份和牛沙拉88元,一份植物肉汉堡78元。(虽然处于好奇心,我还是点了植物肉汉堡,但真的好痛心,毕竟这个价钱,中午已经可以吃上沙拉+主菜+甜品了)

汉堡是用黄油🧈煎过的,因此非常的酥脆。搭配植物肉的”肉香味”,非常的好吃,薯条也是新鲜脆口的,很赞。但是植物肉的口感就不敢恭维了,就跟小卖部,售价1元一包的素肉一样,没啥区别,与真正的肉饼还是有一段距离的。如果财力雄厚确实可以来试试看。

4. 好物分享:《米家充电台灯》

最近搬了新的房子,可恶的是灯只有一个开关,设置在入口处。这个设计主要是为了回到家的时候,在门口就能开灯。但最反人类的地方在于,上床前,你得走到门口,关了灯,摸黑走回床边。太弱智了吧!

因此,最近上小米商城,购入了价值99元的米家充电台灯。

4.1 优点

  1. 纯白MUJI简约风
  2. 金属材质
  3. 价格便宜
  4. 无频闪

4.2 缺点

  1. Micro USB充电头
  2. 只有三种模式,暖光亮,暖光暗,白光亮
  3. 充电提示灯不明显(如果开着灯,很难察觉到闪烁,提醒自己要充电)

4.3 使用感受

简洁大气,MUJI简约风+价格便宜,实在是一把好台灯。质感也非常棒,金属材质摸起来非常稳重。作为床头灯或者办公台灯都是非常好的选择。

5. 亿本新书:《岩田先生》

最近在稽核看到了这本新书,出于好奇买了下来。

台版和港版很早就出了,最近译林出版社引进并且做了本土化的翻译,遂购入

这本书主要是写了两个部分。

首先是岩田聪的传奇一生,从札幌的天才高中程序员,到HAL研究所社长,再到任天堂社长,他是如何一步步走过来的,他的个人经历与经验中,对创意的思考。

其次是岩田聪在公司治理理念等方面的语录。

这本书我也是刚刚到货,刚刚看。以后有时间也会跟着《自制编程语言》之后,将读后感或者读书笔记分享出来。目前暂定这个读书栏目为”亿本新书”,希望能够在这个栏目上有所产出呀。

下周计划

  1. 上班摸🐟
  2. 需求转测试 做下一个开发任务
  3. 背单词
  4. 每天中午做一部分的雅思题目(当日做错题积累)

总结

周末确实是玩爽了,这周又要开始做打工人啦。加油LOL!

最近博客会迁移到腾讯云,到时候就会有HTTP2.0啦,搭配对象存储,国内的访问速度应该能更快了。

mapStateToProps 和 mapDispatchToProps的区别

背景

最近开始实习,部门主要使用的是一个内部的跨端框架,这东西本质上还是React Native,只不过是做了一层套娃重命名了标签名称(像极了ReactRouter和ReactRouter-Dom的关系),并且封装📦了自己的一堆私有的API。由于导师就是负责开发这个框架,因此很无奈只能转React,做React开发了(印证了之前的猜想)。

今天这篇文章主要就分享一下我在使用Redux过程中的一些笔记📒或者使用经验。

(本文章不会详细阐述其具体的使用方法,只是会记录一些实际应用的效果)

区别

  1. 相同点
  • 两者都是函数
  • 用于将Redux的Store映射到组件props(入口参数)上
  1. 异同点
函数名称官方描述个人理解
mapStateToProps建立一个从(外部的)state对象到(UI 组件的)props对象的映射关系将Store上的State挂载到props上 (实现了单向数据流)
mapDispatchToProps建立 UI 组件的参数到store.dispatch方法的映射将Store上的Dispatch函数挂载到(调用的时候,相当于是在触发Store上的函数)

实例

(此处引用阮一峰老师提供的“计数器”代码,作为本文章的例子,感谢阮老师的分享🙏)

初始化环境

 import React, { Component } from 'react'
 import ReactDOM from 'react-dom'
 import { createStore } from 'redux'
 import { Provider, connect } from 'react-redux'

创建计数器组件

 class Counter extends Component {
   // 创建渲染器
   render() {
     // 从入口参数上获取mapState和mapDispatch挂载的属性和方法
     const { value, onIncreaseClick } = this.props
     // 返回JSX
     return (
       <div>
         <span>{value}</span>
         <button onClick={onIncreaseClick}>Increase</button>
       </div>
    )
  }
 }

创建Action

Action说明了Redux中可以做什么动作。

 const increaseAction = { type: 'increase' }

有点类似于Java中的抽象类的概念

创建Reducer

Reducer说明了Action做什么动作。

 function counter(state = { count: 0 }, action) {
   // 读取Redux中管理的count变量
   const count = state.count
   // 检测dispatch触发了哪一个动作
   switch (action.type) {
       // 触发"增加"动作
     case 'increase':
       // 将值+1并返回一个state到Redux的Store中
       return { count: count + 1 }
     default:
       return state
  }
 }

有点类似于Java中的实现类

PS:

Action和Reducer的关系,在我看来有点类似于抽象实现的关系,不知道🤷‍♂️对不对,以后再继续深入探究一下。

创建Store

 const store = createStore(counter)

实现挂载函数

 // Redux的角度: 将Redux管理的全局State(Store)上的值挂载到了组件上
 // 组件的角度: 获取(订阅)了Redux管理的全局State(Store)上的值
 function mapStateToProps(state) {
   return {
     value: state.count
  }
 }
 ​
 // Redux的角度: 将操作全局State(Store)上的方法挂载到了组件上
 // 组件的角度: 获取了管理的全局State(Store)的方法
 function mapDispatchToProps(dispatch) {
   return {
     onIncreaseClick: () => dispatch(increaseAction)
  }
 }

挂载到组件上

 // Connected Component
 const App = connect(
   mapStateToProps,
   mapDispatchToProps
 )(Counter)

页面渲染

 ReactDOM.render(
   <Provider store={store}>
     <App />
   </Provider>,
   document.getElementById('root')
 )

流程图例

Redux与组件之间是如何传递reducer和state以及组件如何dispatch reducer的
  • 通过mapStateToProps将全局State挂载到了组件的Props上,组件因此可以直接读取到Store中管理的state值。
  • 通过mapDispatchToProps将管理全局State的方法挂载到了组件的Props上,组件就可以从入参中获取操作方法,进而在组件中dispatch(触发)State中的Reducer进而修改State中的值。

结尾

这篇文章主要是梳理了一下本周解决的一个知识点,加深自私点在脑海中的印象。文章中阐述不清楚的点,欢迎透过邮箱📮与发起讨论,希望透过讨论也能让你明白这个过程发生了什么。

延伸资料

  1. React-Redux 的用法(中文)
  2. 使用mapStateToProps导出数据(官方英文)
  3. 使用mapDispatchToProps触发Actions(官方英文)
  4. 计算器代码(Github)PS:建议可以先不看🙈这两个函数入参的描述,因为很容易把人搞晕😵,可以着重看看[1]中,阮一峰老师提供的实例,搭配[2] [3]思考🤔一下,相信你很快也能get到这个函数在干什么,有什么用🤷‍♂️。

日常碎碎念 2021.07.13

前言

期末考试完成,终于可以启程去🐧厂搬砖了。

上周总结

  1. 深圳租房
  2. 入职鹅厂
  3. 周末去深圳湾公园拍了照

1. 深圳租房

说实话,虽然来了深圳很多次了,但来深圳租房子还是第一次,也是在外租房子的第一次☝️。着实是花了不少的时间做准备,不过幸好有家人👪的帮助,最终还是顺利租下了一间房子。(虽然对比合租贵了几倍,但是优越的交通和商业便利性,绝对是物有所值的)

另外,u1s1,深圳租房是真TM贵,要不是来大厂了,真的还得倒贴钱,或者住更远的郊区去。但深圳的公共交通我认为是真的稀烂,便利程度跟妖都相比简直就是辣鸡🚮。(也有可能是因为鹅厂的写字楼太偏僻了,给我造成公共交通不方便的错觉。)

腾讯的写字楼专门建在立交桥边,根本没有什么很好的公共交通通勤,要么是搭班车,要么就只能选择骑电驴或者自行车去,再或者是走路,上下班痛苦的一批,太傻逼了。

2. 入职鹅厂

普天同庆同庆,我终于也能成为一名鹅厂人咯LOL。6月底的时候,深圳还有疫情,搞得我心神不宁的,差点就要改期去阿里了。(其实阿里也很香,家-公司通勤时间只要30min)。不过万幸的是,在政府有效率的处理+大家的努力配合,遏制住了疫情,最终我也得以来到深圳加入鹅厂,开始实习工作,希望在这几个月的实习中能够有所收获吧。

我的牛牛鹅宝

3. 深圳湾公园游记

周末搬完家之后,就出去逛一下,去了深圳湾公园。(主要是网上说有一个地铁口出来就能看到大海,所以慕名前来,虽然还是走错了😂)吹着微微的海风真的很舒服,还看到了新石器的无人车在肯德基,深圳政府真的好有钱啊,能够吸引这么多的高新企业来落地,慕了慕了。

对面的高楼就是香港元朗了🇭🇰

本周计划

  1. 上班摸🐟
  2. 学习开发规范 & 开发流程 (Hippy好难用啊🤯)
  3. 背单词 + 雅思口语准备
  4. 准备雅思考试

总结

来到鹅厂的这几天,真的是感觉非常充实,好吃的饭堂,965的工作时间,完善的人事流程&福利,都让我非常感恩,虽然不考虑转正,但希望日后从海外学成归来时,还能做企鹅人呀LOL

PS:昨天出成绩了,绩点3.75,人生巅峰啊😄,希望能够再创佳绩吧🤷‍♂️

日常碎碎念 2021.07.02

前言

u1s1,学校真的是NT,7月2日最后一门考试开卷+手机考试+线下考试。干嘛不早点考试嘛?真的是脑瘫,之前那么多空余时间,👴就是玩,就是不考试,就吊着你,不让你离校,真的是吐了🤮。白白浪费了起码一周的时间,搞得实习+学习的计划都要往后延迟,麻烦的一批。美名其曰对你好,佛了🙏。

本周总结

  1. 完成GuBlog前端页面的开发
  2. 完成Instagram Downloader快捷指令的开发
  3. 技术分享《PPG式心率测量小程序的技术分享》和《React脚手架V1.0》
  4. 期末考试结束

1.完成GuBlog前端页面的开发

下周就要去实习了,之前Leader说可以提前了解一下React Native的最佳实践。但是很可惜的是,我大学期间学习的是Vue,没办法👐,只能从头开始学习React咯🤷‍♂️。经过6月下半个月的学习,大致掌握了React和React Router的使用,因此开了这个小项目来实践一下。预估完成✅时间需要一个月,目前只是抱着做着玩的心态在编程,能做多少就做多少,不期望能够完整实现,目标只是为了熟悉一下React的脚手架搭建以及React的开发流程。

进度预览

首页
Markdown渲染
搜索页面
撰写博文

2.完成Instagram Downloader快捷指令的开发

3.技术分享《PPG式心率测量小程序的技术分享》和《React脚手架V1.0》

最近一周有空,将之前的一些项目和当前的一些新的进度做了总结分享以及技术储备,在博客上记录📝下来。希望留待以后能够用上。

4.期末考试结束

终于考完期末考试啦🥳!!LOL

终于可以在家里开始摸🐟生活了,被困在学校一个半月了,学校距离市区比较远,困了一个半月真的是无聊🥱死了。终于可以回到城区开始划水生活了,开心!

下周计划

  1. 鹅厂实习
  2. 准备雅思口语

总结

时光飞逝,转眼间2021年就过去一半了。虽然6月的突然袭来了疫情,但是靠着政府强有力的把控,还是成功的在一个月内控制住了疫情的蔓延,并最终清零,🐂🍺的不行!7月终于要迎来人生的第一次实习生活了(而且还是在从未想象过的鹅厂),希望能够顺顺利利吧。加油!

日常碎碎念 2021.6.20

上周总结

  1. 疫苗接种
  2. 期末考试
  3. 重写PPG式心率测量算法
  4. 学习React

1.疫苗接种。学校终于通知我们打疫苗了,下个月要去深圳实习,打了疫苗才能安心一点呀。打疫苗过程中真的是热死🥵人了,被热蒸气熏蒸,感觉人都快晕掉了,好在以后不用再接种了。(希望)

2.期末考试。上周四的时候,终于将最重要也是最难的两科考试考完了,普天同庆。虽然NT学校安排了一门开卷考试在7月2日。但是可以放松下来,随心所欲的学习也是不错的感觉。希望最后一门考试也能取得好成绩吧。

3.重写PPG式心率测量算法。之前在《活力健身房》中做了一个心率测量的功能。但是随着我的电脑更换,我那部分的代码被迫丢失了。因此趁着最近有空余时间了,整理了一下之前的思路,重写了整个心率测量的算法。并且由于最近也在学习React+React Native。所以希望将这套算法重写验证后,移植到React Native上,做出一个App上架到App Store中国呢赚一点零花钱。(到时候我也会单独写一篇文章来介绍算法的原理以及具体的实现方式)

3.学习React。下个月就要开始鹅厂的实习生活了,问了leader有什么内容需要我提前学习的。React就是入门的门槛了,后面还要转成React Native。看来跨端开发真的是未来5-6年的发展方向啊。UniAPP,Vue多端编译,React Native。另外React的JSX语法其实还挺有趣的,感觉小程序与React的实现非常相似,后面也打算出一些关于小程序底层的分析文章,到时候可以相互比较一下思路。

本周计划

  1. 学习React
  2. 完成《创新创业课程实训》
  3. 完成《PPG式心率测量小程序的技术分析》撰写
  4. 摸鱼

结尾

这一周的主旋律还是摸🐟为主,毕竟没有很难得考试了。可以花点时间摸摸鱼休息一下,如果能出门去逛一下就更好了

日常碎碎念 2021.6.14

上周总结

  1. 端午节假期
  2. 学校封校
  3. 软件测试与质量保证考试
  4. 看书《自制编程语言》

1. 端午节假期。学校为了提前放假,把后续的所有课程都提到6月的周末进行授课。因此导致端午假期其实都是在上课。(不幸中的万幸,主要的课程在5月底就已经结束,现在只剩下一个学校的企业实训课程,压力还算不是很大。)另外学校可能🤔是为了安慰大家,端午节居然开始派发粽子了。读了3年书,这是第一次。2020年和2021年真的是奇妙,什么新鲜事都见到了。

2.学校封校。由于学校需要配合当地的疫情防控要求,因此对校园实施了封校处理。但u1s1,我们学校就是在郊区,偏僻的不得了。平时也没啥人会专门流动到我们这里来,实在是想不通为啥要实施封校处理。封校处理也直接导致校外的商业气息消失的一干二净,非常的安静,静悄悄的,都没有烟火气了💔。另外不能出门喝咖啡☕️和剪头发💇‍♂️也是让人感到好不方便啊。(上一次为了去拍照,找了一个100块的理发师,现在看来100还是物有所值的。秒杀我平时去的60块的理发馆,起码头发长了,那个形态还是整齐的,下次还会回去剪。)

3.软件测试与质量保证考试。3月开放回校,4月雅思考试,5月面试大厂。时间飞逝,转眼间就到了6月,迎来了第一场考试。考试的手感还行,希望能够再接再厉,后续能够取得更好的成绩吧。

3.《自制编程语言》。最近618购物节,没啥好买的。在当当网上偶然瞥见了这本书,感觉非常的有趣,因此上网下载了一本PDF版的电子书来阅读。后悔当初学习编译原理的时候没早点看到这本书。作者通过生动的图像,以及平易近人的话语,来向读者介绍了程序语言以及编译器的工作原理,并在后面手把手教授读者自己开发一个编译型语言出来。个人觉得真的是非常有趣的一本书。目前刚刚把编译器的梗概介绍读完,正在跟着作者实用yacc(语法分析器)和lex(词法分析器)来开发一个编译器和编译语言。通过实践,能够更加明确的认识到上个学期学习的自动机,文法,归约,移进等名词,在实践中的应用。非常过瘾和令人兴奋🥰。读完之后我会单独写一篇读后感,希望到时候能够有人来看。

本周计划

  1. 软件工程师资格培训-期末考试
  2. PHP Web高级应用开发-期末考试
  3. 完成企业实训任务
  4. 继续读书

结尾

今天是6月14日端午节,不知道看到这篇博文的你吃粽子了吗?另外也祝你端午安康😊!

日常碎碎念 2021.06.06

本周总结

  1. 阿里实习Offer
  2. 主要课程结束
  3. 小程序大赛&交接
  4. 工作室容器化工作流
  5. 核酸检测
  6. 软件设计师资格考试和六级考试

1. 阿里实习Offer。终于等到了来自阿里的实习Offer,对于我一个来自三本的学生而言,真的是非常的惊喜了。去到了广州的支付宝质量保证与技术风险部,主要做的是内部工具。想到有机会接触到底层技术的开发,想想就令人很激动啊🥳。(可惜现在广州有疫情的牵制,不然上下班30min的优势真的是好爽啊!)

2.主要课程结束。大三下的课程转眼间就要结束了,下周就要开始准备考试了,感觉时间过的真的好快啊。同时6月已经悄然来临,2021年就要过去一半了,感觉时间流逝最快的是4月找实习的日子,平和🙃,焦虑😖,喜悦😝的感觉至今都难以忘怀,相信这段经历会伴随我一辈子吧。不过还是要端正态度,不骄不躁,好好迎接接下来的考试,不要把之前的优势丢失了,加油😎。

3.小程序大赛&交接。去年的《软件项目管理课程》中,召集了几位dalao,一起开发了一个课室签到小程序。今年年初被老师怂恿着,拿着这个小程序去参加了比赛。不过计划始终是赶不上变化,年初的时候,雄心壮志的立下了许多先进的目标,4月就开始各奔东西找实习,5月接OC摸🐟,导致6月只能把最原始的1.0版本交上去。老师也可能是看到这个原因,感觉我们靠不住,就找大二的dalao来接手了,希望他们不会像我这么摸,能够把小程序成功落地,造福学校的师生吧。(感觉自己就是个反面教材🤣)

4.工作室容器化工作流。最近终于下定决心,通过众筹,购入了一年的云服务器。开始构建工作室的容器化工作流了。之前都是需要先push到github上,等待学校管理员,pull到服务器上面的。自由度非常非常低,而且还会有很多的局限性。因此我希望这次可以借助这个机会,构建一条全自动化的工作流:上传Github->构建docker image->推送到docker container->上线。并且借助网页面板,能够在线管理服务。期望这样子可以实现后端服务的无缝迁移和运行。不论是哪一届,都能继承这套内部工具来进行业务的测试开发。彻底摆脱学校的限制🚫。

5.核酸检测。广州最近出现了大量的新冠疫情感染者,因此被要求进行全市的核酸检测。市区部分在前3-4天已经完成2-3次的检测任务了。但是我们这些郊区一直没有消息,昨天临时接到通知,要通宵做核酸检测。因此凌晨3点被拉出去做了核酸检测,真的是辛苦了医护人员了👨‍⚕️👩‍⚕️,广州加油。另外5.6号的时候,我因为喝了浓鸳鸯而通宵;没想到一个月后的6.6号我因为核酸检测,再次通宵,历史惊人的相似,真的是难忘的大学经历了😄。

6.软件设计师资格考试和六级考试。由于广州的疫情原因,导致这两门考试在广州的考点不得不延期举行。(其实就是取消6月的考试了)对于我来说,其实我是高兴的,主要是因为我没做多少的复习,去考试也是去浪费金钱💰和时间⌚️。反倒是我的舍友们损失惨重,每天都看见他们在努力💪学习,刷题到深夜,希望他们能够在之后的考试中获🉐️出色的成绩吧。

下周计划

  1. 软件测试与质量保证 考试
  2. 复习下周考试内容

实施情况

计划使用周日、周一、周二的时间进行复习,准备周三的考试。期望能够通过这三天的努力取得一个出色的成绩吧。

PHP和软件工程师的课程期末考试在下下周,因此同样需要耗费一定的时间来准备,目前计划周三考完试再进行准备。

结尾

明天就是6.7号,一年一度的高考日,还是要来了。在期待自己能够在下周取得好成绩的同时也祝福高考考生旗开得胜吧!

日常碎碎念 2021.5.15

距离上一次上来写文章已经过去了接近3个月了。上一次还是过年期间呢!时间过的真的好快啊。在这段时间,其实还是发生了不少变化的。最显著的变化还是:

  1. 从MateBook换到到了M1 Macbook Air
  2. 雅思第一把拿到6分的成绩
  3. 顺利拿到鹅厂和蚂蚁的实习offer

接下来就一点点的慢慢讲讲吧,虽然不一定有人看。

1.从MateBook换到到了M1 Macbook Air

去年Apple发布了基于ARM架构的M1芯片,那时我其实还不是特别心动,感觉新的Mac电脑距离我还是有挺远距离的,MateBook足以满足我日常工作学习的需求。当不幸的是,2月份MateBook宕掉了,日常的数据存放在了移动硬盘上还好。部分生产环境的代码还是放在了内置的硬盘当中,不幸遗失。虽然最后通过重刷系统得以恢复正常,但为了安全,我决定还是更换电脑。当时我的需求主要是便携,另外当时我的移动设备有iPhone和iPad了,由此更加增加了我购入MacBook的欲望。

我选择的配置是16+256的Air。之所以选择这个配置,主要是考虑到当时matebook无法升级内存导致天天内存溢出的窘境。而256则是因为512的价格太贵了,增加的1500元成本已经允许我购买一个三星T7 1T的移动硬盘了(之后也证明确实是明智的选择)。

由于过年放假的因素,我的Macbook实际到达时间是3月初,用到现在大概已经有2个月了。无风扇设计的Air是真的非常的棒,无论是静音设计还是便携性,都是行业领先的水准。而低功耗和新架构,也满足我的前端开发的性能需求。说实话,Air在运行大型前端项目的时候,还是会稍稍发热的,但远远不会像我的上一台笔记本以上,热的跟平底锅一样。各个方面都令我非常的满意,如果你也是一位前端开发者,并且也正好需要更换笔记本。那么基于M系列的Macbook绝对是非常值得考虑的,并且由于第三季度就会换代,在5月13日的今天,我会建议你等M2的发布。相比在那个时间点下,软件层面的适配会更加完善,而硬件层面的性能示范也一定会做的更好。

2.雅思第一把拿到6分

没想到自己有一天也要去考雅思,准备出国读研究生。2021年真的是非常不可思议,4月份的第一战,也狠狠的把我拍到在了地面上,口语稀烂,阅读听力稀烂,最终也只考到了6分,实在是没脸见人了😂。不过由于是第一次其实也是情有可原的啦,6月中再战吧,希望到时候我能追到6.5分。

3.三本菜🐔拿到大厂offer

其实我自己根本没想到自己能够在5月份收获两家梦寐以求的大厂offer的。腾讯和阿里都陆陆续续拿到了暑期实习的offer。真的是超级开心啊。四月底等待的时候都快抑郁了。拿到offer后真的是好兴奋,感觉自己过去三年熬的这么多个项目,终于没有白费。也感谢鹅厂和阿里不会有学历歧视,让我走到最后一面拿到offer。反倒是网易有道、京东、字节直接就进人才库了,真的是狗。

未来的展望

开心了快一周了,需要静下心来学习了,5月底的软考需要认真准备了,继续加油,准备软考和6月的六级。7-9月认真实习,10月雅思冲6.5分就是我对未来的大致计划了。努力努力,希望总会来的,冲冲冲!

GuFilm – Vol.1

拍摄设备: 武士X3半幅照相机

胶卷: 柯达金胶卷

人民公园 & 北京路

陈家祠 & 百合

荔湾花市

桔子🍊树 (粤语音同吉, 摆在家中寓意吉利)

桃花 & 杜鹃

荔湾湖公园 & 中山八路

永庆坊

粤剧博物馆 & 馆中的金鱼池

奶油草莓🍓

地铁🚇 & 麒麟阁(已经有30年的老饭店, 现在顺应潮流, 变成了茶餐厅😂)

太古仓 & 游艇码头 (码头提供游艇培训, 只要2w就能学习如何开游艇)

木棉花 (广州市花)

[BAS弹幕动画] Bad Apple

前序

其实这个BAS动画我一直很想写的了,只是一直咕咕咕,还有身边的琐事,一直没抽出空来写一下弹幕动画。这次终于抽出空来写了一个(AV88558525),欢迎来看看。这篇博文主要是会分享一下这个BAS弹幕动画是怎么做出来的,以及一些BAS的个人看法。

处理流程

  1. 使用ffmpeg把BadApple.mp4分割成图片
  2. 使用PHP*将图片转换成字符画
  3. 将字符画拼接成BAS字符串
  4. 计算每一组BAS的起始时间
  5. 在视频上发布
  6. 微调**

*:语言没啥所谓,重点一定是能处理图片,还有就是顺手,python虽然有很多库,语法很优雅,但我是一个phper,所以还是倾向用php整活(PHP天下第一)

**:音乐视频可以找鼓点来定位,如果你放的视频的节奏型不是特别强无对话的话,你就随缘调吧,反正最后还是会有偏差的。

代码仓库

代码解析

视频转换

视频转换,我使用的是这个dalao的代码。地址:https://blog.csdn.net/somehow1002/article/details/77600186

切割视频

切割视频的码率一定要设置成30帧一秒,不然会卡到爆炸。

txt转BAS

其实BAS转换非常简单,你可以看到我的代码也就是跑了两个循环就拼接好了。每个BAS弹幕的开口是def c{属性},然后是set c{content=””},再然后的就都是then set c{xxxxx}。

这个c是可以换的仅仅是一个函数名而已,你换成啥都行。这里主要是要控制多少个bas组成一组。这次的经验是:

  • 0.033s为一帧
  • 三个为一秒
  • 201/402为一组

目前测试单次弹幕为408KB,就是已知的B站容许POST的数据量。再大的话服务器那边会提示服务器错误(就是不允许你发这么大个的弹幕了),但如果本地测试的话,播放器单次怼1206个16×32的字符画也是OK的。

时间计算

这一步主要是要标定弹幕的开始时间,按照402个为一组的话,一段的时间是13266ms,那么第一段的时间就是0ms开始,第二段就是0+13266+1开始,偏移1ms让弹幕不要叠在一起。

还有就是要对鼓点,不然整个视频的节奏就会很有问题。除非你的视频没有啥节奏,不然就很有必要对多几次,这里有一些想吐槽的就放到最后再写。

成果

吐槽

语法缺失

其实最最大的缺点就是这个BAS语法没有加入一些for,if之类的语法定义,这个script甚至连Boolean都没有定义,可以玩的东西实在有限。最多只能写一些动画出来玩玩。

标准缺失

这个标准指的是弹幕数据的一些标准,虽然平常发弹幕实际能触顶的机会十分的少,但是对于BAS制作者来说,这些标准的指定可以大大减少我们的开发时间。之所以这么耗费功夫其中的一个原因就是总是要测试标准的上限在哪,客服一问三不知,也没法实质的解决,希望B站以后可以写出来。(已反馈到B站)

批量弹幕发送困难

对于技术宅来说可以用自动化测试套件/窗口捕获/模拟POST来实现批量提交弹幕,但这些基础脚本的编写也是要花费时间的,导致整个制作周期会拉长实在是非常讨厌,而这也就是我想说的另外一个耗费功夫的原因,实在是太麻烦了。就算是目前有多Tab,来发送还是繁复的不得了。其实解决方案应该是创建一个API中心,开发者/UP主可以针对单一视频通过API来提交弹幕。而且可以限制API单次使用时间,确保站点安全。

总结

上述的几个建议如果都能改进或者加入,相信BAS还有更多的空间发展,当初的代码弹幕的辉煌也会回来的。最近的互动视频的动作其实就不错,如果可以把BAS也加入其中,想必会给互动视频加入更多有意思的元素,B站黄油,B站FPS指日可待。

感谢你看到这里,希望你喜欢OWO