<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[swimmer2000的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/swimmer2000</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; swimmer2000]]></copyright><item><title><![CDATA[在VirtualBox安装Redhat Linux遇到的几个问题]]></title><link>https://blog.csdn.net/swimmer2000/article/details/120374066</link><guid>https://blog.csdn.net/swimmer2000/article/details/120374066</guid><author>swimmer2000</author><pubDate>Sat, 18 Sep 2021 21:24:41 +0800</pubDate><description><![CDATA[在VirtualBox虚拟机里安装Redhat Linux，遇到几个很典型问题，记录在这里，做备忘：


Redhat Linux的ISO安装包从哪里获取？
http://calipso.linux.it.umich.edu/pulp/isos/UM/Library/content/dist/rhel/server/7/7Server/x86_64/iso/rhel-server-7.4-x86_64-dvd.iso


未注册版如何安装软件？或者叫如何更新AppStore源
先把wget的rpm安装包下载]]></description><category></category></item><item><title><![CDATA[How to resolve “multiple launches of this installer is not allowed“ ?]]></title><link>https://blog.csdn.net/swimmer2000/article/details/116135343</link><guid>https://blog.csdn.net/swimmer2000/article/details/116135343</guid><author>swimmer2000</author><pubDate>Sun, 25 Apr 2021 18:55:24 +0800</pubDate><description><![CDATA[If you are installing some application packed by InstallAnywhere, and suffer the issue of “mutiple launches of this installer is not allowed” (不允许多次启动此安装程序。安装程序现将退出。), then this article is for you.
The error message, “multiple launches of this installer is]]></description><category></category></item><item><title><![CDATA[RISC-V架构的特点]]></title><link>https://blog.csdn.net/swimmer2000/article/details/114803330</link><guid>https://blog.csdn.net/swimmer2000/article/details/114803330</guid><author>swimmer2000</author><pubDate>Sun, 14 Mar 2021 21:40:44 +0800</pubDate><description><![CDATA[最近2年多转做技术支持, 包括售前的产品介绍及售后的技术服务,重心都在RISC-V架构的处理器上,打算今后分享一些RISC-V架构的内容,如果你有想了解的问题,欢迎给我留言.
这篇文章先简单说一下RISC-V架构的特点. RISC-V (发音为“risk-five”)是一个开源的指令架构, RISC是精简指令集的意思,V代表是第5版,由加州大学伯克利分校的David A. Patterson教授带领开发,RISC-V开源之后,和Linux类似,成立了专门的基金会,并且有会员制度,为了保持架构的中立性及免受贸]]></description><category></category></item><item><title><![CDATA[一次链接错误的排查]]></title><link>https://blog.csdn.net/swimmer2000/article/details/114802939</link><guid>https://blog.csdn.net/swimmer2000/article/details/114802939</guid><author>swimmer2000</author><pubDate>Sun, 14 Mar 2021 20:48:36 +0800</pubDate><description><![CDATA[同事新给我一版QEMU包,编译时有如下的链接错误:
undefine reference to ‘std::__cxx11::basic_stringstream&lt;char, std::char_traits, std::allocator &gt;::basic_stringstream()’
undefine reference to ‘std::__cxx11::basic_ostringstream&lt;char, std::char_traits, std::allocator &gt;:]]></description><category></category></item><item><title><![CDATA[搬家到jianshu]]></title><link>https://blog.csdn.net/swimmer2000/article/details/78355602</link><guid>https://blog.csdn.net/swimmer2000/article/details/78355602</guid><author>swimmer2000</author><pubDate>Thu, 26 Oct 2017 16:37:47 +0800</pubDate><description><![CDATA[博客搬家到jianshu了，地址是：http://www.jianshu.com/u/a132ee59b462，通过swimmer2000在简书上也可以找到我。]]></description><category></category></item><item><title><![CDATA[关于API接口设计的文章]]></title><link>https://blog.csdn.net/swimmer2000/article/details/78203443</link><guid>https://blog.csdn.net/swimmer2000/article/details/78203443</guid><author>swimmer2000</author><pubDate>Wed, 11 Oct 2017 14:39:50 +0800</pubDate><description><![CDATA[在酷壳上看到《API设计原则》，https://coolshell.cn/articles/18024.html，很自然的找到英文原文《Designing Qt-Style C++ APIs》，https://doc.qt.io/archives/qq/qq13-apis.html
这篇文章以QT和C++为例，说明API设计的注意事项，在文章里还提到Jasmin Blanchette的《The]]></description><category></category></item><item><title><![CDATA[How to build sqlcipher (ver 3.4.1) for windows]]></title><link>https://blog.csdn.net/swimmer2000/article/details/75114744</link><guid>https://blog.csdn.net/swimmer2000/article/details/75114744</guid><author>swimmer2000</author><pubDate>Fri, 14 Jul 2017 15:21:10 +0800</pubDate><description><![CDATA[用到的工具有（The minimal setup you need to compile SQLCipher on windows is:）


OpenSSL, either in source or binary
forms Perl - Optional, only required if you build OpenSSL
MinGW / MSYS - required to c]]></description><category></category></item><item><title><![CDATA[按列合并多个txt文件为csv文件的脚本]]></title><link>https://blog.csdn.net/swimmer2000/article/details/60574655</link><guid>https://blog.csdn.net/swimmer2000/article/details/60574655</guid><author>swimmer2000</author><pubDate>Mon, 06 Mar 2017 13:36:00 +0800</pubDate><description><![CDATA[将多个文本文件按列合并成一个csv文件的脚本，


@echo off


setlocal EnableDelayedExpansion
if exist result.csv del result.csv


set s1=result.csv
for %%f in (*.txt) do (
  if not exist result.csv (
    copy /]]></description><category></category></item><item><title><![CDATA[编码-Unicode、CodePage、ASCII和其它]]></title><link>https://blog.csdn.net/swimmer2000/article/details/56666561</link><guid>https://blog.csdn.net/swimmer2000/article/details/56666561</guid><author>swimmer2000</author><pubDate>Thu, 23 Feb 2017 10:43:21 +0800</pubDate><description><![CDATA[Joel Sposkley的这篇文章，https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/


谈了字符和编码，如果你]]></description><category></category></item><item><title><![CDATA[从什么是波说起（未完-摘录）]]></title><link>https://blog.csdn.net/swimmer2000/article/details/54692918</link><guid>https://blog.csdn.net/swimmer2000/article/details/54692918</guid><author>swimmer2000</author><pubDate>Mon, 23 Jan 2017 13:19:53 +0800</pubDate><description><![CDATA[什么是波？（https://en.wikipedia.org/wiki/Wave）
In physics, a wave is an oscillation accompanied by a transfer of energy that travels through a medium (space or mass). Frequency refers to the addition of t]]></description><category></category></item><item><title><![CDATA[XPosed暴力列举Package下所有的方法调用]]></title><link>https://blog.csdn.net/swimmer2000/article/details/52384817</link><guid>https://blog.csdn.net/swimmer2000/article/details/52384817</guid><author>swimmer2000</author><pubDate>Wed, 31 Aug 2016 15:19:25 +0800</pubDate><description><![CDATA[使用Xposed去Hook Android，最让人头痛的是怎么样才能找到合适的函数入口。

Xposed的作者rovo89在开发教程https://github.com/rovo89/XposedBridge/wiki/Development-tutorial里说，有两个方法：

Possibility one: Decompile it。rovo89说反编译得到smali代码很难]]></description><category></category></item><item><title><![CDATA[解决Windows上交叉编译qt gdb for raspberry pi报错]]></title><link>https://blog.csdn.net/swimmer2000/article/details/52193170</link><guid>https://blog.csdn.net/swimmer2000/article/details/52193170</guid><author>swimmer2000</author><pubDate>Fri, 12 Aug 2016 16:46:21 +0800</pubDate><description><![CDATA[按照Ras在《适用于树莓派Raspberry Pi的嵌入式QT平台(三) -- 交叉编译 Raspberry Pi 版GDB with Python》一文里的做法，编译windows平台下的gdb，用于调试树莓派上的程序。


准备工作做好后，编译接二连三出现错误，先是wchar.h报错，说mbstate_t未定义，改了半天宏，无效果，
后面通过修改qt-creator-opensourc]]></description><category></category></item><item><title><![CDATA[ACYCLIC VISITOR模式解决Shape排序问题]]></title><link>https://blog.csdn.net/swimmer2000/article/details/51372285</link><guid>https://blog.csdn.net/swimmer2000/article/details/51372285</guid><author>swimmer2000</author><pubDate>Wed, 11 May 2016 10:29:38 +0800</pubDate><description><![CDATA[Robert C Martin 在他OCP（Open/Closed Principle，可以参考>）的教程里，以Shape作为例子，介绍如何运用OCP。
但是有一个问题没有给答案，只是说：
“It is possible to solve this problem by using the ACYCLIC VISITOR pattern described in Chapter 35.]]></description><category></category></item><item><title><![CDATA[<<UML for Java Programmers>> 第11章读书笔记]]></title><link>https://blog.csdn.net/swimmer2000/article/details/51332939</link><guid>https://blog.csdn.net/swimmer2000/article/details/51332939</guid><author>swimmer2000</author><pubDate>Fri, 06 May 2016 16:53:27 +0800</pubDate><description><![CDATA[这一章提到新手做设计时的常见错误。
我最喜欢这一章，以前看的时候，为了追求所谓的速度，把书中的实例统统略过，真有点买椟还珠的味道。另外说明一下，读书笔记为什么突然跳到第11章。
最简单的原因是因为我对这一章有感觉，觉得有必要做笔记。
常见的如下：
1. 没有方法的类（MissingMethods）。没有方法的类是没有存在价值的，“programs are about behavior!”，]]></description><category></category></item><item><title><![CDATA[《UML for Java Programmers》读书笔记——第二章]]></title><link>https://blog.csdn.net/swimmer2000/article/details/51144093</link><guid>https://blog.csdn.net/swimmer2000/article/details/51144093</guid><author>swimmer2000</author><pubDate>Wed, 13 Apr 2016 15:52:00 +0800</pubDate><description><![CDATA[为了整理自己写的代码，重看了《UML for Java Programmers》。觉得第二章的《Working with Diagrams》特别精彩，讲清了用UML的目的，什么时候用UML，什么时候不用。

作者从为什么要建模开始讨论。so，为什么建模? 
1. Models are built to find out if something will work.
2. We i]]></description><category></category></item><item><title><![CDATA[Timer的purge]]></title><link>https://blog.csdn.net/swimmer2000/article/details/50461227</link><guid>https://blog.csdn.net/swimmer2000/article/details/50461227</guid><author>swimmer2000</author><pubDate>Tue, 05 Jan 2016 11:21:27 +0800</pubDate><description><![CDATA[看Android的文档，提到Timer会和一个Thread关联，所有的任务都在这个关联的Thread里执行。只有一个关联的Thread，所以不会存在同一Timer的两个Task同时执行的情况，这很好理解。
方法cancel会取消所有等待执行的Task，并且关联的Thread会被释放，这也很好理解。
可是看到Timer还提供了purge这个方法，注释是“从task queue里移除所有标记]]></description><category></category></item><item><title><![CDATA[Timer的purge]]></title><link>https://blog.csdn.net/swimmer2000/article/details/50461204</link><guid>https://blog.csdn.net/swimmer2000/article/details/50461204</guid><author>swimmer2000</author><pubDate>Tue, 05 Jan 2016 11:20:20 +0800</pubDate><description><![CDATA[﻿﻿
看Android的文档，提到Timer会和一个Thread关联，所有的任务都在这个关联的Thread里执行。只有一个关联的Thread，所以不会存在同一Timer的两个Task同时执行的情况，这很好理解。
方法cancel会取消所有等待执行的Task，并且关联的Thread会被释放，这也很好理解。
可是看到Timer还提供了purge这个方法，注释是“从task queue里移除所有标]]></description><category></category></item><item><title><![CDATA[Uncle bob的书摘(Clean code and the craftsman)]]></title><link>https://blog.csdn.net/swimmer2000/article/details/45847289</link><guid>https://blog.csdn.net/swimmer2000/article/details/45847289</guid><author>swimmer2000</author><pubDate>Tue, 19 May 2015 17:25:55 +0800</pubDate><description><![CDATA[Clean Code:
-There Will Be Code
 -Bad Code
 -The Total Cost of Owning a Mess
 -The Grand Redesign in the Sky
 -What is Clean Code?
 -A review of expert opinions.
 -Schools of Thought
 -The]]></description><category></category></item><item><title><![CDATA[Android onPause和onSaveInstanceState的区别]]></title><link>https://blog.csdn.net/swimmer2000/article/details/44834605</link><guid>https://blog.csdn.net/swimmer2000/article/details/44834605</guid><author>swimmer2000</author><pubDate>Fri, 03 Apr 2015 15:31:08 +0800</pubDate><description><![CDATA[onPause在Activity部分不可见的时候被调用，onSaveInstanceState在需要空出内存给当前Activity的时候执行。onSaveInstanceState有时候在onPause()运行前调用，有时候不（Pre-HONEYCOMB 版本前可能先调用onSaveInstanceState，之后onPause先调用）。Android
 Activity的详细文档在这里。]]></description><category></category></item><item><title><![CDATA[时序的问题]]></title><link>https://blog.csdn.net/swimmer2000/article/details/43204661</link><guid>https://blog.csdn.net/swimmer2000/article/details/43204661</guid><author>swimmer2000</author><pubDate>Tue, 27 Jan 2015 23:09:22 +0800</pubDate><description><![CDATA[今天一天解决了一个问题.


在Wince下与设备通过SPI通讯,过程如下:
1. 给设备发Reset信号
2. 检查数据是否Ready
3. SPI通讯


为了具体化,我列出程序的伪代码:


GetDeviceData()
    }
Bug的表现是这样的:
a. 有时候测不到Ready信号
b. 有时候能取到正常的数据,大部分时候数据完全不对,偶尔前半部分数]]></description><category></category></item></channel></rss>