- 博客(68)
- 资源 (10)
- 收藏
- 关注
原创 树莓派是网盘?nextcloud在树莓派上的应用
不出意外这就是 2020 年的最后一篇博客,写个好玩的东西跟大家分享一下。话接上文,我在双十二期间买了一个树莓派4 4G 内存版,还给它配了个 64G 小固态。但好几天没想好怎么用它,在使用 oneDrive 时,被它超级慢的同步速度感到沮丧时,突然灵光一现,我自己装一个云盘好了。那么先说结论,树莓派4安装 nextcloud 完全可行,而且性能非常吃的消,4 颗核心,长时间负载仅有不到一颗核心,树莓派温度日常 40 摄氏度左右,内存使用约 600 M,远没有超出树莓派的负载能力。chaoqun@pi
2020-12-30 14:29:23 1963
原创 树莓派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 8169 20
原创 在树莓派上部署多个帮助文档镜像
之前我们有讨论过如何使用 nginx 实现一个简易版的 Github Pages,这次我们讨论下如何在一个 ip 下部署多个网站。先谈谈自己的需求:众所周知,在国内访问境外网站可能会很慢,或者不通。对于程序员使用框架时查看文档非常的不利,但有些第三方库的文档是可以下载到本地的,比如:Qt 自带了文档浏览工具 Qt Assistant,在该软件上看文档,比看在线文档快的不止一点点。qt assistant 截图qt 在线文档截图但有些第三方库的文档不提供这么方便的工具,是以 html 等形式提供文
2020-11-28 16:03:17 642 1
原创 树莓派自动接入校园网
今年的九月份,我们学校更换了校园网计费系统,将多个网络(校园网、移动宽带、校园内网)整个为统一的登录入口。新的计费方式带来了一些令人不爽的新特性:掌握不到规律的自动断线。这个自动断线怎么理解呢,有好多种情况会导致自动断线:长时间没有数据访问;关机了一段时间重新开机也会断线;有时晚上会突然的断线;断线就需要重新登录,这对一个在桌子底下放着树莓派的人很不友好,为了让我的树莓派一直在线,我计划研究下学校的网络连接机制,找到校园网登陆认证的接口,然后通过定时任务定期调用接口保证网络在线。找到校园网登
2020-11-16 15:34:13 5140 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 1194
原创 自己实现 github pages 的思路
从 2020 年开始,我一直通过 github pages + CDN 加速 的方案维持着自己的博客,效果还可以,只要 CDN 中有缓存,网站可以说是秒开。这个时候就有些思考了,github pages 到底是怎么设计的,可以在一台机器上维持着这么多人的博客?难道它有那么多域名给每个人用嘛?不同用户的博客指向的是同一台服务器吗通过 ping 两个不同用户的 github pages,我们可以发现,其实很多用户之间可能是共享同一个公网 IP 的,效果如下:mcoder@Chaoqun-PC:~/wor
2020-11-14 16:32:24 741
原创 Starlab 源码剖析系列(一) 总览 Starlab 设计
哈喽,各位好,这里我要挖一个大坑了,具体是什么呢,听我细细道来。也许大家没看出来,其实我不仅仅是一个努力学习后端的程序员,还是个稍微会点儿图形编程的图形学爱好者。我们在学习图形学算法时,常常碰到的坑是什么呢,是怎么写一个三维场景。试想一下:我想要学习写一个图形算法,直接使用 OpenMesh 读取模型,然后处理后另存为一个新的模型。这样子算法虽然跑成功了,但是很难看到即时效果,也比较难以交互性调整参数。又或者像程序员的浪漫一样,自己造轮子,写一个UI框架,然后新的算法都在框架中添加,每新增一个算法便重新
2020-11-11 21:33:19 853 3
原创 Qt Plugin 用法讨论
Qt Plugin 这功能很多个人开发者平时根本用不上,因为大家平时引用的第三方库大都是由 *.h 文件和 *.dll/*.so,*.a 等类型的文件组成的,由操作系统在运行程序时自动加载到内存,即动态链接库。而 Qt Plugin 的实际使用体验却稍有不同,它是需要由开发者手动加载的 dll,并做了一定约束,使插件可以动态的加载,并可进行热更新。Qt的插件机制是为使用Qt的插件服务的 。它提供了一堆宏,可以帮助我们创建生成插件对象的C函数,并生成元信息(通过moc)以判断对象是否实现了接口。由于Qt的插
2020-10-30 14:10:06 1186 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 1690
原创 一次失败的 KVM 虚拟化 GPU 穿透案例
了解到 KVM 虚拟化技术,可以直接将宿主机的物理硬件穿透到客户机,让客户机独占硬件,所以我尝试在自己的笔记本上做实验。场景说明:笔记本:拯救者 Y7000P 2018版 GTX 1060(这个版本的电脑一言难尽,首先它是双显卡,电脑显示器与 Intel 核显直连,而电脑的 HDMI 接口和独显直连。这个奇怪的结构让我没办法完美安装 nvidia 驱动,我尝试了交火驱动和单独nvidia驱动都有各种毛病。后来放弃折腾了,就只装了一个 nouveau 驱动勉强凑活着。操作系统:Manjaro Linu
2020-10-03 15:25:51 4251
原创 如何 DIY 一个自己的 NAS
我一直有个想法:等毕业后租房子后,淘一些二手服务器、交换机、机架,自己在家里搞一个私有云,私有云需要准备一些文件存储服务器,用于支持 KVM 热迁移或者是自己的一些数据备份。NAS 是啥NAS (Network Attached Storage)泛指网络附加存储,也就是一个存储服务器,你的多台设备可以通过网络连接到该服务器,读取里面的文件、往里面写入文件。最理想的状态下,NAS 的文件读写速度应该与本机的存储无太大差距,不过这可能需要读写速度更快的存储服务器和超过 10Gbps 的内网带宽。NAS 的
2020-10-03 15:25:02 15526
原创 虚拟化-总览
虚拟化技术是云计算的基础,我们在各种云平台可以购买 IaaS(基础设施即服务) 的云服务器,包括但不局限于 ECS,VPS 等,这些云服务器可以自选配置,动态调整 cpu 核数、内存大小、甚至是硬盘大小、网卡数量等。他们底层的实现原理是虚拟化技术。虚拟化技术的分类根据虚拟的资源进行划分可以分为操作系统虚拟化和平台虚拟化:操作系统虚拟化: 如果把操作系统及其提供的系统调用作为资源,那么虚拟化表现为操作系统虚拟化,比如docker。平台虚拟化: 如果把整个 X86 平台包括处理器、内存、外设等硬件作为
2020-10-03 15:24:22 923
原创 C++ 实现一个简易的阻塞队列
阻塞队列是多线程中常用的数据结构,对于实现多线程之间的数据交换、同步等有很大作用。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。简而言之,阻塞队列是生产者用来存放元素、消费者获取元素的容器。考虑下,这样一个多线程模型,程序有一个主线程 master 和一些 worker 线程,master 线程负责接收到数据,给 worker 线程分配数据,worker 线程取得一个任务后便可以开始工作,如果没有任务便阻塞住,节约 cpu 资源。master 线程
2020-10-03 15:23:38 2311
原创 后台面试-微服务架构常见问题
微服务架构背景传统的WEB应用核心分为业务逻辑、适配器以及API或通过UI访问的WEB界面。业务逻辑定义业务流程、业务规则以及领域实体。适配器包括数据库访问组件、消息组件以及访问接口等。通常我们把所有的模块写在同一个程序中单体打包,部署在服务器,比如对于 java 应用来说,可以打包成 jar 或者 war ,部署在 Tomcat 容器中。 这种传统方式适合于小型业务,开发快、代码集中、易于...
2020-03-22 17:15:00 1605
原创 搞定技术面试 双机热备份
双机热备份前文我们讲了负载均衡,通过在多个后端服务器前加设一个负载均衡服务器(Load Balancing),对接入的请求分发给后端服务器。可以实现水平扩容,提升总体服务性能的功能;还可以将少量大的宕机后端服务器剔除队列,实现冗余服务器,提高服务稳定性的作用。这时机智的小伙伴便会提出疑问:万一负载均衡服务器宕机了怎么办?emmm,我们可以在负载均衡服务器前再加一层负载均衡服务器,这样就不用担...
2020-03-08 17:04:36 768
原创 搞定技术面试 - 常见架构设计
软件架构模式Layered Architecture 多层架构在软件工程中,多层架构是一种客户端/服务器端架构。在该架构中,表现功能、应用处理和数据管理功能物理分离。最常使用的多层架构是三层架构。多层架构提供了一种模型,使得开发者可以建立方便扩展和复用的应用。通过将应用分成多层,开发者拥有修改或增加一个特定层的选择,而不是重写整个应用。一个三层架构通常由表现层,业务逻辑层和数据存储层组成。...
2020-03-08 15:55:13 1856
原创 解决技术面试-负载均衡 LoadBalancing
负载均衡 Load balancing负载平衡(Load balancing)是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件和硬件来完成。 主要作用是将大量作业合理地...
2020-03-08 15:47:35 1204
原创 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 1127
原创 搞定技术面试-图算法相关问题(上)
图图的基本表示表示一个图有两种标准方法:图邻接表和图的邻接矩阵;邻接矩阵就是用数组(二维)表示图。具体可以看下面例子。当然,这种情况很容易造成空间浪费,所以很多人进行空间优化,甚至是邻接表的方式。邻接表咋是数组嵌套链表,这样会比邻接矩阵省不少空间,但对无向图来说,依旧会浪费一半的空间。在本文中,使用 G=(V,E) 表示一个图,V表示顶点,E表示边。图的常见概念顶点=结点;边...
2020-01-05 20:01:03 1814
原创 解决 CDN 加速的 Github pages 循环重定向问题
给博客用上 CDN 加速我们先假设大家已经知道如何使用 github pages 托管自己的静态博客网站了,这样我们不用花钱自己维护一个云服务器,也不需要在充满广告的博客网站上写博客,很美好对吧。但 Github pages 在国内的效果不佳,常常出现打开缓慢、或者无法打开等情况。为了提高网站的访问速度,除了减少网页的请求数量,精简网页所依赖的js、css文件外,最常用的就是使用CDN缓存大...
2019-12-27 18:04:59 2506
原创 结合 LeetCode 谈谈哈希表在算法问题上的应用
结合 LeetCode 谈谈哈希表在算法问题上的应用从 LeetCode 前一百道题中总结了些哈希表(unordered_map)应用于算法问题的场景,在恰当的时候使用哈希表可以大幅提升算法效率,比如:统计字符串中每个字符或单词出现的次数、从一维数组中选择出两个数使之与某数相等。在开始之前,首先简要的介绍一下哈希表(又称散列表),心急的同学可以跳转到LeetCode部分。哈希表介绍哈希...
2019-11-17 14:06:44 434
原创 搞定技术面试:那些你可能不知道的 vector 和 array 的区别
搞定技术面试:那些你可能不知道的 vector 和 array 的区别最近几年,计算机工作越发难找,你必须比其他人了解的更多,才能有更多的机会找到一个更好的工作。C++ 标准库(STL)是很多C++面试中都会问到的问题,很多很多问题会关于 Vector 的空间分配、动态增长之类的问题,那么你了解 STL 中那些顺序容器的区别与联系吗?你知道在什么情况选用什么容器吗?先说结论,一般情况选择 ...
2019-11-17 14:01:43 528
原创 Modern C++ (C++11/14新特性)
Introduction最近听闻了一个段子同样是C++工程师,有的人写的是 C with object,有的人写的是 C++ 98,fashion一点儿的写 C++ 11,而有些弱鸡写的是 谭++。(日常黑谭浩强,虽然我不太了解有多少黑点。。。左值右值C++( 包括 C) 中所有的表达式和变量要么是左值,要么是右值。通俗的左值的定义就是非临时对象,那些可以在多条语句中使用的对象。所...
2019-05-11 10:05:30 8383
原创 介绍下Github工程中常见的特殊文件
新的计算机从业者很多会奇怪为什么很多github工程中都会有些相同命名的文件,这里为大家简要介绍其中的几个。README.md如上图,通常我们打开一个Github时都会在其下方看到关于工程的介绍说明,readme的意思“读我”也是希望访问工程的读者首先读一下这里的内容。通常包括工程的介绍、工程的效果展示、工程的编译说明、如何为此工程做出贡献、以及工程文档等相关内容。有的时候因为内容过多,会新...
2019-04-04 17:20:19 1809
原创 简述人脸识别技术
简介人脸识别技术是一种生物识别技术,可以用来确认用户身份。人脸识别技术相比于传统的身份识别技术有很大的优势,主要体现在方便性上。传统的身份认证方式诸如:密码、PIN码、射频卡片、口令、指纹等,需要用户记住复杂密码或者携带身份认证钥匙。而密码、卡片均存在丢失泄露的风险,相比于人脸识别,交互性于安全性都不够高。人脸识别可以使用摄像头远距离非接触识别,相比于指纹免去了将手指按在识别区域的操作,可由摄像...
2019-04-04 16:06:48 9910
原创 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 13584
原创 使用 Qt 解析命令行参数
Qt解析命令行我们使用 Python 写个简单的脚本很方便,直接 import argparse 就能很容易的实现命令行参数解析的功能,还可以通过 --help 来输出帮助功能,而 Qt5 页提供了这方面的支持。Qt 从 Qt5.2之后提供了 QCommandLineParser 和 QCommandLineOption 两个类来负责这个功能。QCoreApplication 提供了方...
2018-03-30 22:16:46 9795
原创 windows 下使用 cmake-gui 来编译第三方库的源代码
很多 linux 和 windows 平台通用的第三方库喜欢使用 CMAKE 来管理整个工程文件,当我们需要编译安装该库时,在 linux 上往往非常简单。 ./configure make make install 而在 windows 下配置该库难度就比较麻烦,一般使用 cmake-gui 进行配置,生成对应开发环境的工程(比如VS2010、VS2015、Min...
2018-03-16 10:30:35 24394 7
原创 python 上传下载 OSS 文件
说明最近放寒假回家了,准备租用阿里云的 GPU 云服务器 按量收费,训练时临时购买,训练完了就释放。但这样的话,每次要上传训练数据,需要耗费很多时间。这时我想到了阿里云的 OSS对象存储服务。阿里云的 OSS服务相当于一个云盘,按存储量、访问次数、下载流量 三项计费,而且外网下载收费,内网之间访问不收钱。如此一来,我便可以只花少量的存储费用便可以把我的数据集托管在阿里云上。使用体验,...
2018-01-14 20:15:46 5609
原创 PyFlann 使用方法
PyFlann 使用方法PyFlann 其实是 FLANN 的 python 接口,当前支持python2 和 python3。FLANN 的意思是Fast Library for Approximate Nearest Neighbors,也就是快速解决最近点搜类问题的库。这一类问题,是一个在尺度空间中寻找最近点的优化问题。
2017-12-26 09:44:24 8205 8
原创 Tensorflow入门 之 linux 操作快速学习
这个是我 TensorFlow 学习系列的比较前期的内容,首先要熟悉 Linux 操作,无论是利用Windows 的linux 子系统,还是独立的 linux 服务器,我们都需要有一定的使用上的了解才行。这里主要是一些常用的小工具和一些命令,希望可以给后入门的提供些帮助!
2017-12-15 11:06:53 1216
原创 Tensorflow入门之 Win10 运行 linux 子系统
前言早在 win10 刚出的时候就流传着 win10 可以直接运行 linux 程序的传言,顿时让人觉得吊炸天,Win10 逆袭。 然而,win10 真正出来后,这个功能被推迟了,直到最近才真正的大范围推出。win10 下的 linux 子系统并没有图形界面,只是一个黑框框,有期待使用 linux 图形界面的可能要失望了,这个版本应该更针对于专业的计算机人员。
2017-12-13 10:36:49 4211
原创 Tensorflow入门之 前言
开始最近在学习深度学习,在github上开了个坑,写一写自己的学习心路历程。希望有志同道合的小伙伴们一起学习。这里附上个人网站的地址.我写的深度学习的笔记在网站导航栏上的DL-NOTES栏目,是直接使用 github pages 功能转出来的项目页面。因为,当前正在持续的学习,修改比较多,当写得差不多后,我会搬运到这里。嘿嘿,到时又能增加不少访问量吧。
2017-12-07 17:29:08 384
原创 修改U盘图标
效果当你完成了这个简单的教程,你会发现你的U盘图标不再是单调的可移动磁盘,而是变成了一个可爱的图案。Ps:仅针对Windows 系统 方法那么话不多说,从这里,我们开始讲这个简单的教程。ico 图片首先需要说明的是,我们需要有一个可爱的图片来替代它,我觉得这种图片最好是周围是透明的,只有一个简单的卡通画。
2017-12-05 20:17:13 5282 2
原创 Large Pose 3D Face Reconstruction 文章理解
对文章 Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric 的一点点理解梳理。 因为我比较弱,在机器学习和三维重建方面都算是新手,所以并不是很理解这篇文章,只是梳理下文章中的模型结构,当做笔记,我相信大家更加优秀,应该能理解的层次比我更深。我这里梳理的顺序按照由小模块向大模块梳理。
2017-11-26 21:14:06 4026
原创 Atom sync-setting配置问题
Atom 简介我自己很喜欢用Atom编辑器,它和notepad++很类似,但不同的是他可以安装很多插件,通过插件可以让他变得更好用。不过ATOM运行效率远远没有notepad++高了,追求高性能的用户还是不要用了。那么安装了很多插件,如果换了台电脑或是重装了系统,怎么记得那么一大堆插件装了哪些呢??这里可以使用sync-setting作为管理,那么更换电脑后,只要先把sync-setting插件安装
2017-10-19 15:13:45 1289
转载 使用git管理unity工程
版本控制器说明版本控制器的概念在之前的文章 Git 基本使用 中已经有了一定的介绍,本篇文章介绍下如何使用git作为unity的版本控制器.gitignore文件关于.gitignore文件的详细介绍,在git的官网中有介绍 gitignore简单的来说,这个文件的目的就是让指定的文件被git忽略,从而不会被检测变更。通常将编程工具生成的中间代码、debug文件夹、或是其他不重要的中间生成文件
2017-09-12 10:11:42 6420
原创 C# 中使用C++导出的DLL文件
摘要本篇博客主要介绍使用C++生成DLL库,并在C#工程之中进行调用。本技术可以用于Unity开发中,可以将一些复杂计算量较大的工作使用C++编写,生成DLL文件后在Unity中使用C#脚本进行调用。
2017-07-17 23:52:15 2653
Google 开源项目风格指南 (中文版) epub
2018-04-09
Google 开源项目风格指南 (中文版) 2017版 pdf
2018-04-09
阿里云 OSS 资源下载脚本 python
2018-01-14
QuickViewer 1.0.4 中文版
2017-10-31
Dlib 帮助文档 18.17
2017-10-31
一个简单的unity2D游戏,包含flappybird
2015-05-25
java大作业IO 和异常
2015-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人