关于硬盘的几个概念

Disk(盘片) 光盘、磁盘等等碟形物,计算机领域常指磁盘,软盘、硬盘等。 Hard Disk(硬盘) 磁盘的一种,这里以它作为主要对象来说说。 Track(磁道) 盘面可以划分出若干同心圆环,每个圆环是一个磁...

编译用于在 Windows 系统下开发 ARM Linux 的 Qt 库

1、在 https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ 下载 Windows 版 ARM 交叉编译工具链。 Sourcery CodeBench Lite Edition Sourcery CodeBench Lite Edition is a free, unsupported version of Sourcery CodeBench, available for select processors. Sourcery CodeBench is a complete development environment for embedded C/C++ development. Sourcery CodeBench Lite Edition includes: GNU C and C++ compilers GNU assembler and linker C and C++ runtime libraries GNU debugger 我使用的是 arm-2014.05-29-arm-none-linux-gnuea...

macOS 安装双系统后系统盘在启动时不见了怎么办

MacBook 安装双系统后,系统盘在启动时(按 Option 键)不见了怎么办? 这是因为 Mac 系统盘的分区类型 GUID 错误所致,改成正确的(48465300-0000-11AA-AA11-00306543ECAC)即可: 在 Windows 系统里打开 CMD,执行 diskpart,子命令如下: list disk select disk 0 list partition select partition 2 set id=48465300-0000-11AA-AA11-00306543ECA...

iF.SVNAdmin 安装和使用笔记

iF.SVNAdmin 是一个基于 Web 的 GUI(图形用户界面)工具,用于管理 Subversion 的库和授权文件。 安装 Apache: yum -y install mod_dav_svn #apache svn支持模块 安装 PHP: yum -y install php 安装 Subversion yum -y install subversion svnserve --version #查看版本信息,测试安装是否成功 安装 iF.SVNAdmin: wget https://github.com/mfreiholz/iF.SVNAdmin/archive/stable-1.6.2.tar.gz tar -zxf stable-1.6.2.tar.gz mv iF.SVNAdmin-stable-1.6.2/ /data/svnadmin/ chown -R apache:apache /data/svnadmin/ 在 /etc/httpd/conf.d/ 创建一个虚拟服务器配置:svnadmin-vhost.conf Listen 888 <VirtualHost 192.168.72.100:888>   ServerAdmin name@email.com   ServerName 192.168.72.100   ErrorLog /etc/httpd/logs/svnadmin-error_log   TransferLog /etc/httpd/logs/svnadmin-access_log     SSLEngine on   SSLCertificateFile /data/ssl/localhost.crt   SSLCertificateKeyFile /data/ssl/localhost.key   DocumentRoot /data/svnadmin   <Directory "/data/svnadmin">     Options FollowSymLinks     AllowOverride all     Require all granted   </Directory>   Alias /svn /var/www/svn1   <Location /svn>      DAV svn     SVNParentPath /data/svn1     AuthzSVNAccessFile /data/svn1/authz     AuthUserFile /data/svn1/htpasswd      AuthName "Subversion Repositories"     AuthType Basic     Require valid-user   </Location> </VirtualHost> 创建服务目录: mkdir /data/svn1 touch /data/svn1/authz touch /data/svn1/htpasswd chown -R apache:apache /data/svn1 禁用 SELinux: setenforce 0 #临时关闭 vim /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled #需要重启 配置防火墙: firewall-cmd --permanent --add-port=888/tcp systemctl restart firewalld systemctl restart httpd.service 打开网页 https://192.168.72.100:888,跳转到初始化配置页面,配置如下: Subversion authorization file: /data/svn1/authz User view provider type: passwd User edit provider type: passwd Group view provider type: svnauthfile Group edit provider type: svnauthfile Repository view provider type: svnclient Repository edit provider type: svnclient User authentication file (SVNUserFile): /data/svn1/htpasswd Parent directory of the repositories (SVNParentPath): /data/svn1 Subversion client executable: /usr/bin/svn Subversion admin executable: /usr/bin/svnadmin 保存配置,提示自动生成管理员账户和密码:User: admin ,Password: admin 编辑配置文件: vim /data/svnadmin/data/config.ini 在[GUI]下增加一行: ApacheDirectoryListing=https://192.168.72.100:888/svn/%1/%2 源码修改记录: function xml_svn_list_character_data($xml_parser, $tagdata) 中的 $this->curList->curEntry->name.= self::encode_string(trim($tagdata));   trim函数会使 “01 测试”类似的字符与汉字间的空格也被清掉,临时换用ltrim来解决这个问题。 改为: $this->curList->curEntry->name.= self::encode_string(ltrim($tagdata)); 中文库名的支持: 从 1.7 版本开始使用 Apache + SVN,虽然在默认的情况下,mod_dav_svn 支持库内出现非纯英文命名的文件夹或文件名,但是一直不支持库名中出现非纯英文的字符。 试了很多方法都不能解决,偶然间了解到 mod_dav_svn 使用 7 位的 ASCII 编码与其钩子脚本交互,所以对于 UTF-8 等多字节的编码是不支持的,所以总会出现 Internal error: Can't convert string from 'UTF-8' to native encoding,即使库名已经使用了 UTF-8 编码也不行。 从 1.8 版本开始支持 SVNUseUTF8 On|Off 配置,在 httpd.conf 中添加一行: SVNUseUTF8 On 就可以支持中文的库名...

Keka 一款 MAC 下的 7-Zip 压缩解压缩软件

如果你习惯了使用 zip 格式的压缩文档,那么 MAC 自带的 Archive Utility 已经可以很好地满足你的需求。但对于要与多种压缩格式尤其是 7z 格式压缩文档打交道的我来说,还远远不够。 对于压缩/解压缩软件作为文档转换工具来讲,其实不需要多么美妙的界面,简洁实用才是最重要的。最简洁的形式莫过于直接使用命令行来压缩和解压缩文...

brew 给 MAC 插上 yum 的翅膀

什么是 brew? 如果你在羡慕 yum、apt-get 给 Linux 系统带来的便捷,不妨装上 brew 。还不明白它是做什么的?brew 全称为 Homebrew,官网( http://brew.sh/ )给它的定位是这样的: The missing package manager for OS X. Homebrew installs the stuff you need that Apple didn’t. brew 可以自动解决软件包的依赖关系,方便软件包的安装、更新和卸载。可以称得上是 MAC 系统中的一大神...

启用 PT632 G_2 光猫的路由功能

小米路由器在使用拨号功能上网的时候总是出现虽然有 WiFi 信号在发射,但无论内网还是外网,有线还是无线,都连不上的尴尬状态。唯有断电重启路由器才能解决,等了几个版本,都没有修复这么严重的问题。说实在的,几百块钱的小米路由器跟几十块钱的路由器摆在一起,只能算得上是一个花瓶。 电信安装的光猫终端(友华 PT632 G_2)默认只是调制解调器的功能,但其实是具备完整的路由器功能的。于是打算让小米路由器退居二线,做二级路由算...

Qt 5.6 静态编译

起因 想要发布一个 Qt 小软件,但不得不附带一批动态链接库是件不爽的事情。以前介绍过一种方法,将动态链接库打包到可执行程序文件中去,实现单文件化(Qt 之可执行文件单文件化)。目的虽然达到了,但很有可能被某些杀毒软件、某某管家之类的给识别成病毒、木马,还是不爽...

轻量级数据交换格式 JSON

JSON 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于 JavaScript 的一个子集,但同时又独立于编程语言(与 JavaScript 没有半毛钱关系)。由于 JSON 文本数据格式既便于人的阅读和编写,又便于程序对他的解析和构造,所以被大家广泛地运用于各种编程语言,因此在软件的数据交换需求方面很有市...

Qt Property

在 C# 等语言中提供了 Property (属性)特性,对类内部的私有变量(字段)对外界提供读写方法和控制,而 C++ 没有提供这种特性。有些编译器,比如 C++ Builder 提供了 __property 关键字就是为了扩展 C++ 的这一特性。然而基于标准 C++ 编译器的 Qt 并没有这样去做。 除了使用模版、重载操作符来模拟属性的功能,通常简单地写出读、写公共函数,对私有变量进行操作。Qt 还提供了一种基于 moc (Meta-Object Compiler)的动态属性方法:QObject::property() 与 QObject::setProperty()。使用 QObject::setProperty() 还可以方便地在运行时动态地添加和删除新的属性。看下面一个例...