人生追求
人是复杂的动物,社会是复杂的系统,不要过于从自我角度去理解世道的运行
以时间维度观察,人从出生到散为一抔黄土,轨迹如空中飞沙、江河流水,时时与四周相互碰撞互相影响,但作用又只限于周身一隅,难以撼动潮流涌动。
在毕业以前,个人有很多目标明确的追求,虽是镜花水月,但都不流于庸俗。视金钱如粪土,不屑于把一切价值与金钱绑定。然而时移世易,方今之世,人们评判一人的价值,着重于金钱多少,以至于若一人不善于赚钱,就少了闪光点。
我迷惘于这个观念久矣,以致时时自省,我是不是一无是处,每天兴致缺缺,忧虑于金钱的得失,悲欢常被粪土所支配,庸碌无趣,形神渐似我所厌之人。
昨夜突然醒悟过来,如果与别人比较财物的多 ...
CDN内容分发网络
Content Delivery Network
参考:
https://zhuanlan.zhihu.com/p/52362950
https://help.aliyun.com/document_detail/27101.html
核心思想:将内容缓存在终端用户附近
CDN边缘节点(缓存服务器),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。
CDN缓存静态内容
以存储换时延
以存储换带宽,减轻上层骨干网络的流量压力
全局负载技术
Qt使用Http下载
使用Qt进行Http download时,需注意一点,安卓下载URL为https时会报错,需要支持SSL。
头文件downfile.h:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#ifndef DOWNFILE_H#define DOWNFILE_H#include <QFile>#include <QtNetwork/QNetworkAcc ...
Hexo-admin本地部署
hexo-admin本地部署使用以下命令即可:
1npm install hexo-admin --save
hexo s后浏览localhost:4000/admin/,settings设置登录账户和密码,根据提示在_config.yml中配置,如下:
123456# hexo-admin authentificationadmin: username: qzwjer password_hash: xxxxxxxxxxxxxxxxxxxxxxx secret: xxxxxxxxxx deployCommand: './script/hexo-d.sh'
Dep ...
Git本地文件上传
本地项目上传到远程仓库,如github
先在github创建仓库,最好创建空的仓库
在本地项目根目录下git init
提交本地项目git add .,git commit -m "xxx"
关联远程仓库git remote add origin git@github.com:qzwjer/test.git
其中origin为远程仓库在本地的标记,可以设置为其它名字,关联多个仓库时以此来选择提交到哪个仓库
提交到远程仓库git push -u origin master
远程仓库非空时,提示error: failed to push some refs to ...
工厂模式
classDiagram
class AbstractFactory{
-成员名
-getBall() Sport
}
class BasketballFactory{
-成员名
-getBall() Sport
}
class FootballFactory{
-成员名
-getBall() Sport
}
class VolleyballFactory{
-成员名
-getBall() Sport
}
class Sport{
-
-play() void
-printName() void
}
class Basketball{
-
-play() void
...
设计模式
设计模式一、设计模式来源设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。
二、设计模式六大原则总原则——开闭原则(Open Closed principle)
一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。
在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。
想要达到这样的效果,我们需要使用接口和抽象类等。
单一职责原则Single Resp ...
Qt蓝牙开发
QBluetoothDeviceDiscoveryAgent类发现附近的蓝牙设备:
创建一个QBluetoothDeviceDiscoveryAgent实体
connect信号deviceDiscovered()或finished()
调用start()
1234567891011void MyClass::startDeviceDiscovery(){ QBluetoothDeviceDiscoveryAgent * discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this); connect(discover ...
BLE学习笔记
GATT:Generic Attribute Profile,通用属性配置文件
GAP:Generic Access Profile,通用访问配置文件
nRF52832 开发指南一个BLE程序通常需要至少包含 4 个必要的部分:系统初始化、启动、空闲管理和事件处理。
BLE 协议栈初始化
使能 SoftDevice,配置 BLE 协议栈参数,使能 BLE 协议栈,注册 BLE 协议栈事件回调参数
配置 GAP 参数
模式(Mode)和规程(Procedure)
设置安全模式和名称
GATT 初始化
广播初始化
服务初始化
连接参数协商初始化
连接参数协商模块的作用是用于启动和执行连 ...
git添加.gitignore
转自 https://zhuanlan.zhihu.com/p/334908553
项目开发中使用Git作为版本管理工具时,有时并非在项目一开始就添加了.gitignore文件来管理Git忽略规则,或是在项目开发过程中添加或移除了忽略规则,这时由于Git在本地维护着一份遵从创建本地项目时的gitignore规则的Git缓存,因此会造成.gitignore文件不起作用的现象。
解决这个问题的方式就是清除掉本地项目的Git缓存,通过重新创建Git索引的方式来生成遵从新.gitignore文件中规则的本地Git版本,再将该Git版本提交到主干。
例如,如果先使用NPM创建了项目,然后才创建了如下内容 ...