![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日常学习
文章平均质量分 73
姜茶
一个向往美好未来的程序员,有问题可以发我邮箱:mcoder2014@sina.com
展开
-
树莓派是网盘?nextcloud在树莓派上的应用
不出意外这就是 2020 年的最后一篇博客,写个好玩的东西跟大家分享一下。话接上文,我在双十二期间买了一个树莓派4 4G 内存版,还给它配了个 64G 小固态。但好几天没想好怎么用它,在使用 oneDrive 时,被它超级慢的同步速度感到沮丧时,突然灵光一现,我自己装一个云盘好了。那么先说结论,树莓派4安装 nextcloud 完全可行,而且性能非常吃的消,4 颗核心,长时间负载仅有不到一颗核心,树莓派温度日常 40 摄氏度左右,内存使用约 600 M,远没有超出树莓派的负载能力。chaoqun@pi原创 2020-12-30 14:29:23 · 1889 阅读 · 0 评论 -
树莓派4 SSD 启动
哈喽,大家好,我在双十二期间购买了自己心心念念的树莓派4代。老早就有一个树莓派2B,性能较弱,而且只有 100 Mbps 的有线网口和 四个 USB 2.0 的接口,存储设备主要用的 TF 卡的 IO 性能也十分的弱鸡。而树莓派4 就改进了很多,在我看来**树莓派4 是全方位的性能提升,不仅更换了主频更高的四核 A72 核心的CPU(相比手机还是拉胯),而且网卡换成了 1000 Mbps,配了两个 USB 3.0,配了蓝牙和WIFI。**简直翻天覆地的变化,4G 内存版本日常售价 380 元左右,到了双原创 2020-12-14 22:00:19 · 8006 阅读 · 20 评论 -
在树莓派上部署多个帮助文档镜像
之前我们有讨论过如何使用 nginx 实现一个简易版的 Github Pages,这次我们讨论下如何在一个 ip 下部署多个网站。先谈谈自己的需求:众所周知,在国内访问境外网站可能会很慢,或者不通。对于程序员使用框架时查看文档非常的不利,但有些第三方库的文档是可以下载到本地的,比如:Qt 自带了文档浏览工具 Qt Assistant,在该软件上看文档,比看在线文档快的不止一点点。qt assistant 截图qt 在线文档截图但有些第三方库的文档不提供这么方便的工具,是以 html 等形式提供文原创 2020-11-28 16:03:17 · 585 阅读 · 1 评论 -
树莓派自动接入校园网
今年的九月份,我们学校更换了校园网计费系统,将多个网络(校园网、移动宽带、校园内网)整个为统一的登录入口。新的计费方式带来了一些令人不爽的新特性:掌握不到规律的自动断线。这个自动断线怎么理解呢,有好多种情况会导致自动断线:长时间没有数据访问;关机了一段时间重新开机也会断线;有时晚上会突然的断线;断线就需要重新登录,这对一个在桌子底下放着树莓派的人很不友好,为了让我的树莓派一直在线,我计划研究下学校的网络连接机制,找到校园网登陆认证的接口,然后通过定时任务定期调用接口保证网络在线。找到校园网登原创 2020-11-16 15:34:13 · 4797 阅读 · 1 评论 -
pacman 回滚软件包
Manjaro Linux(或简称 Manjaro)是基于 Arch Linux 的 Linux 发行版,使用 Xfce 、GNOME和 KDE Plasma 作为默认桌面环境,和 Arch 一样,采用滚动更新。其目标是为 PC 提供易于使用的自由的操作系统。滚动升级的优点滚动更新带来了一个好处,我们可以很快用上最新的软件包,比如:截止目前(2020-11-15),在 ubuntu 的官方仓库中 opencv 版本仅仅是 3.20,而在 manjaro 中的 opencv 版本早就升级到了 4.50。如原创 2020-11-15 16:05:55 · 1135 阅读 · 0 评论 -
自己实现 github pages 的思路
从 2020 年开始,我一直通过 github pages + CDN 加速 的方案维持着自己的博客,效果还可以,只要 CDN 中有缓存,网站可以说是秒开。这个时候就有些思考了,github pages 到底是怎么设计的,可以在一台机器上维持着这么多人的博客?难道它有那么多域名给每个人用嘛?不同用户的博客指向的是同一台服务器吗通过 ping 两个不同用户的 github pages,我们可以发现,其实很多用户之间可能是共享同一个公网 IP 的,效果如下:mcoder@Chaoqun-PC:~/wor原创 2020-11-14 16:32:24 · 695 阅读 · 0 评论 -
Starlab 源码剖析系列(一) 总览 Starlab 设计
哈喽,各位好,这里我要挖一个大坑了,具体是什么呢,听我细细道来。也许大家没看出来,其实我不仅仅是一个努力学习后端的程序员,还是个稍微会点儿图形编程的图形学爱好者。我们在学习图形学算法时,常常碰到的坑是什么呢,是怎么写一个三维场景。试想一下:我想要学习写一个图形算法,直接使用 OpenMesh 读取模型,然后处理后另存为一个新的模型。这样子算法虽然跑成功了,但是很难看到即时效果,也比较难以交互性调整参数。又或者像程序员的浪漫一样,自己造轮子,写一个UI框架,然后新的算法都在框架中添加,每新增一个算法便重新原创 2020-11-11 21:33:19 · 790 阅读 · 3 评论 -
Qt Plugin 用法讨论
Qt Plugin 这功能很多个人开发者平时根本用不上,因为大家平时引用的第三方库大都是由 *.h 文件和 *.dll/*.so,*.a 等类型的文件组成的,由操作系统在运行程序时自动加载到内存,即动态链接库。而 Qt Plugin 的实际使用体验却稍有不同,它是需要由开发者手动加载的 dll,并做了一定约束,使插件可以动态的加载,并可进行热更新。Qt的插件机制是为使用Qt的插件服务的 。它提供了一堆宏,可以帮助我们创建生成插件对象的C函数,并生成元信息(通过moc)以判断对象是否实现了接口。由于Qt的插原创 2020-10-30 14:10:06 · 1130 阅读 · 1 评论 -
qmake include 的用法讨论
qmake Language include()使用 Qt 的开发者都多多少少使用过 QtCreator 这个轻量的 IDE,除了部分 windows 平台的开发者通过插件使用 VS 进行开发。*.pro 是 qt 的工程管理文件,通过 qmake ../xxx.pro 可以在当前文件夹生成编译所需要的的 Makefile 等文件,是一个类似 CMake 的工程管理软件。通常情况下,我们可以直接在当前项目的 *.pro 文件中引用一个第三方库,如当前所示的小工程 mirror.pro 的配置文件,摘自原创 2020-10-30 12:45:31 · 1587 阅读 · 0 评论 -
一次失败的 KVM 虚拟化 GPU 穿透案例
了解到 KVM 虚拟化技术,可以直接将宿主机的物理硬件穿透到客户机,让客户机独占硬件,所以我尝试在自己的笔记本上做实验。场景说明:笔记本:拯救者 Y7000P 2018版 GTX 1060(这个版本的电脑一言难尽,首先它是双显卡,电脑显示器与 Intel 核显直连,而电脑的 HDMI 接口和独显直连。这个奇怪的结构让我没办法完美安装 nvidia 驱动,我尝试了交火驱动和单独nvidia驱动都有各种毛病。后来放弃折腾了,就只装了一个 nouveau 驱动勉强凑活着。操作系统:Manjaro Linu原创 2020-10-03 15:25:51 · 4060 阅读 · 0 评论 -
如何 DIY 一个自己的 NAS
我一直有个想法:等毕业后租房子后,淘一些二手服务器、交换机、机架,自己在家里搞一个私有云,私有云需要准备一些文件存储服务器,用于支持 KVM 热迁移或者是自己的一些数据备份。NAS 是啥NAS (Network Attached Storage)泛指网络附加存储,也就是一个存储服务器,你的多台设备可以通过网络连接到该服务器,读取里面的文件、往里面写入文件。最理想的状态下,NAS 的文件读写速度应该与本机的存储无太大差距,不过这可能需要读写速度更快的存储服务器和超过 10Gbps 的内网带宽。NAS 的原创 2020-10-03 15:25:02 · 14683 阅读 · 0 评论 -
虚拟化-总览
虚拟化技术是云计算的基础,我们在各种云平台可以购买 IaaS(基础设施即服务) 的云服务器,包括但不局限于 ECS,VPS 等,这些云服务器可以自选配置,动态调整 cpu 核数、内存大小、甚至是硬盘大小、网卡数量等。他们底层的实现原理是虚拟化技术。虚拟化技术的分类根据虚拟的资源进行划分可以分为操作系统虚拟化和平台虚拟化:操作系统虚拟化: 如果把操作系统及其提供的系统调用作为资源,那么虚拟化表现为操作系统虚拟化,比如docker。平台虚拟化: 如果把整个 X86 平台包括处理器、内存、外设等硬件作为原创 2020-10-03 15:24:22 · 874 阅读 · 0 评论 -
C++ 实现一个简易的阻塞队列
阻塞队列是多线程中常用的数据结构,对于实现多线程之间的数据交换、同步等有很大作用。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。简而言之,阻塞队列是生产者用来存放元素、消费者获取元素的容器。考虑下,这样一个多线程模型,程序有一个主线程 master 和一些 worker 线程,master 线程负责接收到数据,给 worker 线程分配数据,worker 线程取得一个任务后便可以开始工作,如果没有任务便阻塞住,节约 cpu 资源。master 线程原创 2020-10-03 15:23:38 · 2164 阅读 · 0 评论 -
后台面试-微服务架构常见问题
微服务架构背景传统的WEB应用核心分为业务逻辑、适配器以及API或通过UI访问的WEB界面。业务逻辑定义业务流程、业务规则以及领域实体。适配器包括数据库访问组件、消息组件以及访问接口等。通常我们把所有的模块写在同一个程序中单体打包,部署在服务器,比如对于 java 应用来说,可以打包成 jar 或者 war ,部署在 Tomcat 容器中。 这种传统方式适合于小型业务,开发快、代码集中、易于...原创 2020-03-22 17:15:00 · 1543 阅读 · 0 评论 -
eclipse.paho.cpp的配置方法
mac os 下 paho.mqtt.cpp 的配置方法先把编译器、CMake装上,我在命令行里敲 gcc 它自己就弹出提示安装一些开发者工具,CMake通过brew install cmake进行安装;编译 paho.mqtt.c,在代码库里创建一个build文件夹,将编译后的程序安装在build/install文件夹中。git clone https://github.com/ecl...原创 2020-02-27 16:24:12 · 1073 阅读 · 0 评论 -
解决 CDN 加速的 Github pages 循环重定向问题
给博客用上 CDN 加速我们先假设大家已经知道如何使用 github pages 托管自己的静态博客网站了,这样我们不用花钱自己维护一个云服务器,也不需要在充满广告的博客网站上写博客,很美好对吧。但 Github pages 在国内的效果不佳,常常出现打开缓慢、或者无法打开等情况。为了提高网站的访问速度,除了减少网页的请求数量,精简网页所依赖的js、css文件外,最常用的就是使用CDN缓存大...原创 2019-12-27 18:04:59 · 2355 阅读 · 0 评论 -
结合 LeetCode 谈谈哈希表在算法问题上的应用
结合 LeetCode 谈谈哈希表在算法问题上的应用从 LeetCode 前一百道题中总结了些哈希表(unordered_map)应用于算法问题的场景,在恰当的时候使用哈希表可以大幅提升算法效率,比如:统计字符串中每个字符或单词出现的次数、从一维数组中选择出两个数使之与某数相等。在开始之前,首先简要的介绍一下哈希表(又称散列表),心急的同学可以跳转到LeetCode部分。哈希表介绍哈希...原创 2019-11-17 14:06:44 · 375 阅读 · 0 评论 -
搞定技术面试:那些你可能不知道的 vector 和 array 的区别
搞定技术面试:那些你可能不知道的 vector 和 array 的区别最近几年,计算机工作越发难找,你必须比其他人了解的更多,才能有更多的机会找到一个更好的工作。C++ 标准库(STL)是很多C++面试中都会问到的问题,很多很多问题会关于 Vector 的空间分配、动态增长之类的问题,那么你了解 STL 中那些顺序容器的区别与联系吗?你知道在什么情况选用什么容器吗?先说结论,一般情况选择 ...原创 2019-11-17 14:01:43 · 503 阅读 · 0 评论 -
介绍下Github工程中常见的特殊文件
新的计算机从业者很多会奇怪为什么很多github工程中都会有些相同命名的文件,这里为大家简要介绍其中的几个。README.md如上图,通常我们打开一个Github时都会在其下方看到关于工程的介绍说明,readme的意思“读我”也是希望访问工程的读者首先读一下这里的内容。通常包括工程的介绍、工程的效果展示、工程的编译说明、如何为此工程做出贡献、以及工程文档等相关内容。有的时候因为内容过多,会新...原创 2019-04-04 17:20:19 · 1688 阅读 · 0 评论 -
C++ 智能指针--内存泄露的惨痛经历
layout: posttitle: “C++ 指针”subtitle: “避免 C++ 内存泄露的惨痛经历”date: 2019-04-1author: Mcoderheader-img: img/JCQ_0383-Pano.jpgcatalog: truetags:C++memorySmart Pointer引言最近在敲...原创 2019-04-01 21:01:21 · 13130 阅读 · 0 评论 -
Modern C++ (C++11/14新特性)
Introduction最近听闻了一个段子同样是C++工程师,有的人写的是 C with object,有的人写的是 C++ 98,fashion一点儿的写 C++ 11,而有些弱鸡写的是 谭++。(日常黑谭浩强,虽然我不太了解有多少黑点。。。左值右值C++( 包括 C) 中所有的表达式和变量要么是左值,要么是右值。通俗的左值的定义就是非临时对象,那些可以在多条语句中使用的对象。所...原创 2019-05-11 10:05:30 · 8242 阅读 · 0 评论 -
Tensorflow入门之 Win10 运行 linux 子系统
前言早在 win10 刚出的时候就流传着 win10 可以直接运行 linux 程序的传言,顿时让人觉得吊炸天,Win10 逆袭。 然而,win10 真正出来后,这个功能被推迟了,直到最近才真正的大范围推出。win10 下的 linux 子系统并没有图形界面,只是一个黑框框,有期待使用 linux 图形界面的可能要失望了,这个版本应该更针对于专业的计算机人员。原创 2017-12-13 10:36:49 · 4182 阅读 · 0 评论 -
阿里云上 apt 安装 mysql5.7
在阿里云的ubuntu14.04系统上安装mysql server5.7。原创 2016-12-04 16:00:00 · 2530 阅读 · 5 评论 -
简述人脸识别技术
简介人脸识别技术是一种生物识别技术,可以用来确认用户身份。人脸识别技术相比于传统的身份识别技术有很大的优势,主要体现在方便性上。传统的身份认证方式诸如:密码、PIN码、射频卡片、口令、指纹等,需要用户记住复杂密码或者携带身份认证钥匙。而密码、卡片均存在丢失泄露的风险,相比于人脸识别,交互性于安全性都不够高。人脸识别可以使用摄像头远距离非接触识别,相比于指纹免去了将手指按在识别区域的操作,可由摄像...原创 2019-04-04 16:06:48 · 9462 阅读 · 0 评论 -
使用 Qt 解析命令行参数
Qt解析命令行我们使用 Python 写个简单的脚本很方便,直接 import argparse 就能很容易的实现命令行参数解析的功能,还可以通过 --help 来输出帮助功能,而 Qt5 页提供了这方面的支持。Qt 从 Qt5.2之后提供了 QCommandLineParser 和 QCommandLineOption 两个类来负责这个功能。QCoreApplication 提供了方...原创 2018-03-30 22:16:46 · 9611 阅读 · 0 评论 -
如何在Eclipse中用Maven创建Dynamic Web Project
使用Maven 建立自己的第一个 Dynamic Web Project工程原创 2017-03-05 16:28:38 · 3502 阅读 · 1 评论 -
MySQL 修改被外键约束的列
前言为啥我需要修改已经被外键约束的表? 有的时候,建表时考虑不够仔细,导致有的时候突然需要为一张表进行一些更改,如:增加一列属性;将主键设为自增属性等。 数据库处理这种东西时,不让你进行修改,因为这个操作违反了外键约束,破坏了数据库完整性。所以这个修改的行为会被DBMS(数据库管理系统)给阻止。原创 2017-01-10 14:43:28 · 16578 阅读 · 3 评论 -
Java Servlet 中Servlet地址的问题
AJAX设置服务器请求地址需要注意绝对地址和相对地址原创 2016-12-29 15:47:27 · 1938 阅读 · 0 评论 -
使用FormData
FormData原创 2016-12-28 16:54:34 · 1058 阅读 · 0 评论 -
在阿里云ubuntu上搭建 tomcat8网页服务器
ubuntu14.04安装jdk1.8ubuntu14.04安装tomcat8ubuntu下,设置tomcat的默认路径,修改tomcat的端口为80端口,设置默认主页,设置管理员账号等原创 2016-11-22 20:53:35 · 2779 阅读 · 0 评论 -
Java 向数据库中输入 datetime类型数据
java向数据库中写入时间,将单位精确到ms原创 2016-12-11 17:31:01 · 27325 阅读 · 6 评论 -
SVN和Git比较
多人协同工具 SVN和Git的简要介绍和分析。帮助大家选择适合自身情况的工具原创 2016-11-19 10:05:01 · 475 阅读 · 0 评论 -
Tortoise SVN 设置不同步某些文件或是文件夹
tortoiseSVN屏蔽一些文件的同步原创 2016-09-28 17:20:41 · 10039 阅读 · 1 评论 -
常用SQL语句
最近在上一门课 java语言高级开发, 其实主要在讲java服务器的,也有jsp的相关内容。然后服务器肯定要经常的和数据库打交道,这时就会不可避免的用上SQL语句。目前才刚开始接触数据库,暂且只用了选择、插入、修改、删除这样几条语句。常用的SQL语句SQL语句是大小写不敏感的,所以SELECT等同于select或是SElect。选择语句SELECT 列名称 FROM 表名称SELECT * FRO原创 2016-10-23 16:38:17 · 385 阅读 · 0 评论 -
C# 中使用C++导出的DLL文件
摘要本篇博客主要介绍使用C++生成DLL库,并在C#工程之中进行调用。本技术可以用于Unity开发中,可以将一些复杂计算量较大的工作使用C++编写,生成DLL文件后在Unity中使用C#脚本进行调用。原创 2017-07-17 23:52:15 · 2606 阅读 · 0 评论 -
Atom sync-setting配置问题
Atom 简介我自己很喜欢用Atom编辑器,它和notepad++很类似,但不同的是他可以安装很多插件,通过插件可以让他变得更好用。不过ATOM运行效率远远没有notepad++高了,追求高性能的用户还是不要用了。那么安装了很多插件,如果换了台电脑或是重装了系统,怎么记得那么一大堆插件装了哪些呢??这里可以使用sync-setting作为管理,那么更换电脑后,只要先把sync-setting插件安装原创 2017-10-19 15:13:45 · 1249 阅读 · 0 评论 -
windows 下使用 cmake-gui 来编译第三方库的源代码
很多 linux 和 windows 平台通用的第三方库喜欢使用 CMAKE 来管理整个工程文件,当我们需要编译安装该库时,在 linux 上往往非常简单。 ./configure make make install 而在 windows 下配置该库难度就比较麻烦,一般使用 cmake-gui 进行配置,生成对应开发环境的工程(比如VS2010、VS2015、Min...原创 2018-03-16 10:30:35 · 24056 阅读 · 7 评论 -
python 上传下载 OSS 文件
说明最近放寒假回家了,准备租用阿里云的 GPU 云服务器 按量收费,训练时临时购买,训练完了就释放。但这样的话,每次要上传训练数据,需要耗费很多时间。这时我想到了阿里云的 OSS对象存储服务。阿里云的 OSS服务相当于一个云盘,按存储量、访问次数、下载流量 三项计费,而且外网下载收费,内网之间访问不收钱。如此一来,我便可以只花少量的存储费用便可以把我的数据集托管在阿里云上。使用体验,...原创 2018-01-14 20:15:46 · 5566 阅读 · 0 评论 -
PyFlann 使用方法
PyFlann 使用方法PyFlann 其实是 FLANN 的 python 接口,当前支持python2 和 python3。FLANN 的意思是Fast Library for Approximate Nearest Neighbors,也就是快速解决最近点搜类问题的库。这一类问题,是一个在尺度空间中寻找最近点的优化问题。原创 2017-12-26 09:44:24 · 8054 阅读 · 8 评论 -
Tensorflow入门之 前言
开始最近在学习深度学习,在github上开了个坑,写一写自己的学习心路历程。希望有志同道合的小伙伴们一起学习。这里附上个人网站的地址.我写的深度学习的笔记在网站导航栏上的DL-NOTES栏目,是直接使用 github pages 功能转出来的项目页面。因为,当前正在持续的学习,修改比较多,当写得差不多后,我会搬运到这里。嘿嘿,到时又能增加不少访问量吧。原创 2017-12-07 17:29:08 · 350 阅读 · 0 评论