CentOS7升级OpenSSH

当前状态

查看openssh版本 ssh -V,查看openssl版本openssl version,记录当前版本号以便升级后做对比。

开启Telnet

升级ssh的过程中可能导致ssh无法登录,所以最好先开着Telnet。

1
2
3
4
5
6
7
8
9
10
11
12
yum install xinetd telnet-server -y
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
# 允许root登录
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
systemctl restart xinetd.service
# 防火墙添加过滤
firewall-cmd --add-service=telnet --zone=public --permanent
# 确认下telnet是否可以登录成功

黑苹果安装记录

因工作原因换台电脑,作为开发人员,肯定是优先Mac的,其次是Linux系,但Linux系系统在软件工具生态上还有些不足,而Mac无疑是最佳选择。虽然黑苹果可能会遇到一些意外事故,但是也挡不住我对它的喜爱,哈哈。

以下介绍基本都是参照https://www.tonymacx86.com/threads/unibeast-install-macos-mojave-on-any-supported-intel-based-pc.259381/#create_unibeast得来,有能力的还是去tonymacx86好好研究一番。

安装前准备

硬件准备

黑苹果安装中最大的问题就是驱动问题,所以最好是安装tonymacx86上推荐的配置去购买,但是我的机器已经是准备好的了,就跳过这一步,但是要通过搜索确认下自己的硬件安装黑苹果没有太大问题。我的主要配置如下:

  • Intel I5 8400
  • MSI B310M
  • 集成显卡 Intel UHD 630

另外你最好有一台白苹果,没有的话用Windows应该也可以,不过我更倾向于白苹果制作引导盘的方式。

除此意外你还需要准备一个8G以上(最好16G)的U盘用来做安装盘。

软件准备

首先你需要注册一个tonymacx86的账号,因为我们需要的工具以及教程基本上都是在这里找到的。

然后在下载Mac的系统安装文件,根据自己情况选择不同的方案。这里以macOS High Sierra 10.13.6版本为例(最新的Mojave版本感觉有不少问题,我的白苹果一直都没有升级),白苹果前往https://itunes.apple.com/cn/app/macos-high-sierra/id1246284741?ls=1&mt=12下载。Windows系统可以通过下载集成clover的系统镜像配合TransMac工具制作启动盘进行安装,因为这个方式没有做过测试,所以不做过多介绍,各位可以自行搜索尝试,成功之后的操作应该都是一样的。

另外还需要在tonymacx86下载好MultiBeastUniBeast工具,注意配合自己下载的系统版本。

这里需要将白苹果的系统语言改为英语,这是UniBeast的强制性要求,改完后重启。

Electron应用开发总结

这次又是工作总结,不过是关于Electron的,之前工作花了差不多10个月做的产品,一直想写个填坑记录的,现在闲下来可以写写了。我们的产品是互联网化的,所以有很多内容也是没做过,一路也是遇到了很多坑。

1.0版本

之前虽然有做过Electron的经历,但之前做的功能相对简单,前端一套东西就可以搞完,但这次不行了。第一个版本当时是用electron-vue模板生成的,在完成产品基本功能后发行的1.0版本中,我们发现了大量的问题,比如

  • 内存占用过大,软件用的时间越长越大,越来越卡。
  • 从主界面打开子页面窗口时会出现很长时间的白屏,用户可能接受不了。
  • 数据库(一开始用的是RxDB)一旦存储大量数据,读取起来就会很卡。
  • 总之给用户的感受就是慢卡白屏。

记新windows电脑打造前端开发环境流程

系统环境

  • 查看电脑配置(主要是CPU内存硬盘SSD这些),对于该配置能完成什么样的开发强度心里有数
  • 联网,设置固定IP(较推荐)
  • 清理已安装工具,取消不常用的任务栏(比如IE浏览器,应用商店)
  • 规划分区,明确每个分区盘的用处

基于Rancher搭建k8s的集群环境

本文主要纪录了在k8s的学习过程中我是如何搭建k8s集群环境的经历。
在学习和了解了k8s的一些基础概念我开始尝试去自己搭建一套集群环境,经过一段时间的尝试,我决定使用rancher来帮助搭建环境,并使用rancher os作为主机镜像。
你要问我为什么使用rancher搭建?因为简单啊!为什么使用rancher os作为主机镜像?因为小啊!

记录在开发electron-ssr过程中遇到的问题

首先是项目介绍,其实这个项目就是给shadowsocksr-python项目加一个GUI壳,所以它的功能就是为了FQ。GitHub地址在这

其次,本文这里只记录这此在2017年底开始的重构经历,因为之前的代码写得实在比较乱(我一开始只是打算练习用的。。。)。OK,话不多说,下面进入正题。

脚手架

我们在开发一个完整的功能的时候往往不是从零开始做(因为那太费时间和经历了,还得自己维护项目框架),这里我是从electron-vue项目初始化而来的。为什么用这个框架?跨平台用electron,前端开发用vue配合webpack,所以就选择了这个框架咯。

工作中遇到的cookie知识整理

本文主要记录在工作中遇到的cookie知识的一些整理,这些零散的细节的知识点在没遇到的时候是模棱两可,遇到的时候又不是很深入地了解,所以还要查资料,写demo来反复验证。所以这里把这次关于cookie的知识记录下以便后续查看。

在介绍结果之前先阐述个基本知识:同源,即相同协议、相同域名、相同端口。浏览器对于跨域访问有一些限制,但是对于cookie的限制稍微有些不同。

利用dokku打造自己的私有云仓库和自动化部署

dokku是什么?一句话概括就是一个几百行shell代码的高可扩展性的类Heroku的单服务器PAAS平台,利用它可以简化很多docker操作,更加方便我们维护一个docker driven的平台。

CI简介和实际应用

什么是CI

引用知乎上的一个回答

作者:赵劼
链接:https://www.zhihu.com/question/23444990/answer/26995938
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

集成是指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题;部署是代码尽快向可运行的开发/测试节交付,以便尽早测试;
交付是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题。
如果说等到所有东西都完成了才向下个环节交付,导致所有的问题只能再最后才爆发出来,解决成本巨大甚至无法解决。
而所谓的持续,就是说每完成一个完整的部分,就向下个环节交付,发现问题可以马上调整。是的问题不会放大到其他部分和后面的环节。

这种做法的核心思想在于:既然事实上难以做到事先完全了解完整的、正确的需求,那么就干脆一小块一小块的做,并且加快交付的速度和频率,使得交付物尽早在下个环节得到验证。早发现问题早返工。

举个例子,你家装修厨房,其中一项是铺地砖,边角地砖要切割大小。如果一次全切割完再铺上去,发现尺寸有误的话浪费和返工时间就大了,不如切一块铺一块。这就是持续集成。
装修厨房有很多部分,每个部分都有检测手段,如地砖铺完了要测试漏水与否,线路铺完了要通电测试电路通顺,水管装好了也要测试冷水热水。如果全部装完了再测,出现问题可能会互相影响,比如电路不行可能要把地砖给挖开……。那么每完成一部分就测试,这是持续部署。
全部装修完了,你去验收,发现地砖颜色不合意,水池太小,灶台位置不对,返工吗?所以不如没完成一部分,你就去用一下试用验收,这就是持续交付。
-——————-
补充:从敏捷思想中提出的这三个观点,还强调一件事:通过技术手段自动化这三个工作。加快交付速度。

还有些细节可以参考阮一峰的文章

Windows下调试平板设备

本文主要记录Android上的Chrome和IOS上的Safari浏览器的调试方法,方便以后查看。开始之前请自备梯子,下面会需要翻墙。