- 博客(638)
- 资源 (126)
- 收藏
- 关注
原创 IDEA: Internal error (java.lang.UnsupportedClassVersionError)
IDEA升级遇到java.lang.UnsupportedClassVersionError错误
2022-01-05 10:43:38 2363
原创 Exception in thread "Thread-0" org.eclipse.swt.SWTException: Invalid thread access. 错误解决
运行SWT GUI的应用程序是遇到异常:Exception in thread "Thread-0" org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:4491) at org.eclipse.swt.SWT.error(SWT.java:4406) at org.ec
2016-07-10 12:20:04 8502 7
原创 用WindowBuilder编写SWT 桌面应用程序
WindowBuilder是一款基于Eclipse平台的双向Java的GUI设计插件式的软件。它具备SWT/JFACE开发、Swing开发及GWT 开发三大功能,是一款不可多得的Java体系中的WYSIWYG工具。1 安装WindowBuilder 可以从http://download.csdn.net/detail/sahusoft/9571016 ,下载安装包。然后就是按照eclipse安装插
2016-07-10 12:07:13 9428 2
原创 用WindowBuilder编写SWT 桌面应用程序
WindowBuilder是一款基于Eclipse平台的双向Java的GUI设计插件式的软件。它具备SWT/JFACE开发、Swing开发及GWT 开发三大功能,是一款不可多得的Java体系中的WYSIWYG工具。1 安装WindowBuilder 可以从http://download.csdn.net/detail/sahusoft/9571016 ,下载安装包。然后就是按照eclipse安装插
2016-07-10 11:57:42 4819
原创 用WindowBuilder编写SWT 桌面应用程序
WindowBuilder是一款基于Eclipse平台的双向Java的GUI设计插件式的软件。它具备SWT/JFACE开发、Swing开发及GWT 开发三大功能,是一款不可多得的Java体系中的WYSIWYG工具。1 安装WindowBuilder 可以从http://download.csdn.net/detail/sahusoft/9571016 ,下载安装包。然后就是按照eclipse安装插
2016-07-10 11:55:51 4967
原创 用WindowBuilder编写SWT 桌面应用程序
WindowBuilder是一款基于Eclipse平台的双向Java的GUI设计插件式的软件。它具备SWT/JFACE开发、Swing开发及GWT 开发三大功能,是一款不可多得的Java体系中的WYSIWYG工具。1 安装WindowBuilder 可以从http://download.csdn.net/detail/sahusoft/9571016 ,下载安装包。然后就是按照eclipse安装插
2016-07-10 11:48:19 5115
原创 SWT开发Java应用程序GUI入门
第一次做了Java GUI,我选择用elipse自己的前段开发工具 SWT/JFace。这篇文章是基于eclipse MARS.2. 用SWT编写的GUI的风格如下: 1、 SWT中的一些概念1.1 Display & Shell Display 和 She
2016-07-10 11:29:41 30614 2
原创 Gnome-terminal, How to Copy selection to clipboard automatically?
sudo apt-get install parcellite then in the settings check "use primary" and "synchronize clipboards". it works.Make GNOME terminal behaves like Putty
2014-03-21 19:40:56 1702
转载 世界上最简单的无锁哈希表
无锁哈希表(Lock-Free Hash Table )可以提高多线程下的性能表现,但是因为实现一个无锁哈希表本身的复杂度不小。(ps:真正的复杂在于出错之后的调试,因为多线程下的调试本身就很复杂,引入无锁数据结构之后,传统的看堆栈信息和打印log都基本上没有意义了。堆栈中的数据可能被并发访问破坏,而打印log本身可能会改变程序执行时对数据访问的时序。一个比较可行的做法是实现一个无锁版本和一个传
2013-11-05 21:23:40 2495
转载 七个高效的文本编辑习惯(以Vim为例)
如果你花很多时间输入纯文本、写程序或HTML,那么通过高效地使用一个好的编辑器,你可以节省大部分时间。本文将提供指导和提示,让你更迅速地做这些工作,并且少犯错误。本文用开源文本编辑器Vim(Vi IMproved)来演示如何高效编辑,本文方法同样适用于其他的编辑器。选择合适的编辑器,实际上是进行高效编辑的第一步。我们避免去讨论哪个编辑器最适合你,因为这个话题将占用太多篇幅。如果你不知道选用那个编辑
2013-08-16 19:44:22 2288 1
原创 man手册的章节
Linux 的 man手册共有以下几个章节:1、Standard commands (标准命令)2、System calls (系统调用)3、Library functions (库函数)4、Special devices (设备说明)5、File formats (文件格式)6、Games and toys (游戏和娱乐)7、Miscellaneous (杂项)8、Administrative
2013-08-06 21:51:13 2042
原创 hiredis发布/订阅示例
代码:#include #include #include #include #include "hiredis.h"#include "async.h"#include "adapters/libevent.h"void subCallback(redisAsyncContext *c, void *r, void *priv) { redisReply *reply =
2013-07-23 21:00:44 7023 1
原创 pthread_mutex_xx 与 pthread_spin_lock的区别和联系
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机制:(1
2013-07-07 21:44:41 3741
原创 线程分离:pthread_detach
创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该调用pthread_join来等待线程运行结束,并可得到线程的退出代码,回收其资源(类似于wait,waitpid)但是调用pthread_join(pthread_id)后,如果该线程没有运行结束,调用
2013-07-07 21:43:46 1931
翻译 无锁编程介绍
H2 { margin-bottom: 0.21cm; }H2.western { font-family: "DejaVu Sans",sans-serif; font-size: 12pt; font-style: normal; }H2.cjk { font-family: "DejaVu Sans"; font-size: 12pt; }H2.ctl { font-family: "Loh
2013-06-30 23:14:18 6158
原创 无锁编程:最简单例子
场景 假设存在这样一个情况:需要N个线程对一个全局的变量进行M次递增操作。首先想到的常常是,使用互斥量。当然在“无锁”的世界里,还有其它实现方式。话不多说,看代码:测试代码gcc_sync_test.c#include #include #include #define TEST_ROUND 20000#define THREAD_NUM 10#define SYNC#d
2013-06-20 21:46:45 3174
原创 ubuntu"set Illegal option -o pipefail"
ubuntu的 shell 默认安装的是 dash,而不是 bash。运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个:$ls -al /bin/shdash 比 bash 更轻,更快。但 bash 却更常用。如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。比如编译 Android 源代码的时候,如果使用 dash,则有可能编译出错,或者编译的系统不能启动。通
2013-06-17 20:48:26 12058
原创 Makefile锦集(持续更新中)
1、为每个源文件生成一个可执行程序使用场景:目录下的所有源文件都能生成可执行程序。如在做《C++ Primer》练习时,每个练习都是一个独立的小程序,不必为每个练习编写一个Makefile,也不必为每个练习执行g++编译。CC :=gcc CFLAGS := -g -Wall SOURCES := $(wildcard *.c)TARGETS := $(patsubst %.c,%,$(SO
2013-06-15 10:09:54 2136
原创 拜占庭将军问题
一个可信的计算机系统必须容忍一个或多个部件的失效。失效的部件可能送出相互矛盾的信息给系统的其他部件。这正是目前网络安全要对付的情况,如银行交易安全、存款安全。美国2001/9/11遭恐怖袭击之后,大家普遍认识到银行的异地备份非常重要。纽约的一家银行可以在东京、巴黎、苏黎世设置异地备份。当某些点受到攻击甚至破坏以后,可以保证账目仍然不错,得以复原和恢复。从技术的角度讲,这是一个很困难的问题。因为被攻
2013-06-13 22:35:19 2461 1
转载 内存屏障浅析
当你看到“内存屏障”四个字的时候,你的第一反应是什么?寄存器里取出了错误的值?ifence,sfence之类的指令?还是诸如volatile之类的关键字?好吧,我第一次看到这四个字的时候,脑子里浮现出的是魔兽争霸里绿油油的铺满苔藓的岩石屏障- -#,并且,当我搞明白内存屏障具体是什么,而且自认为对其很熟悉之后,我的第一反应依然是那几块绿油油的石头,而且很想上去A一把!言归正传,先解释下什么是内存屏
2013-06-12 22:31:53 1710
原创 囚犯和开关的问题
故事 假如你是最近被捕的P个囚犯之一。监狱长是个疯狂的计算机科学家,他给出如下告示: 1、你们今天可以在一起商定一个策略,但是从今天之后,你们将会被隔开,关在不同的房间,互相间无法再进行交流。 2、我们已经建造了一种“开关房间”,里面有一个灯开关,这个开关只能为开或关,且没有和任何东西相连(仅仅是个开关)。 3、我将不时地从你们中间随机选择一个到“开关房间”里来。这名囚犯可以
2013-06-12 20:41:24 2887 1
原创 哲学家就餐问题
哲学家就餐问题哲学家就餐问题是在计算机科学中的一个经典问题,用来演示在并行计算中多线程同步(Synchronization)时产生的问题。在1971年,著名的计算机科学家艾兹格·迪科斯彻提出了一个同步问题,即假设有五台计算机都试图访问五份共享的磁带驱动器。稍后,这个问题被托尼·霍尔重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。问题描述哲学家就餐问题可以这样表述,假设有五位哲学家围坐
2013-06-12 20:09:36 2268
原创 进程同步与PV操作
虽然从理论上讲,每一个进程都是独立的实体,但在并发执行过程中,或因竞争资源,或者合作完成同一任务,相互之间会产生一些制约关系。一般来讲,因竞争资源产生的制约关系称为互斥关系,因合作完成同一任务而产生的制约关系称为同步关系。 例如系统中有A、B两个进程,在某一时间段,进程A正在使用打印机,而这时进程B也需要使用同一打印机,由于进程A尚未用完,那末进程B就需要等待。这样,进程B的运行受到了进程A的制约
2013-06-10 17:10:20 3644
原创 GCC内建原子操作
参见:http://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.htmlThe following built-in functionsare intended to be compatible with those describedin the Intel Itanium Processor-specific Application B
2013-06-05 21:44:14 2524
原创 semop: Resource temporarily unavailable解决方法
多半是因为没有将sem_flg成员清零导致的。直接将struct sembuf清零更彻底,memset 0。
2013-06-05 20:47:32 3651
原创 Copy-On-Write技术
linux内核在使用fork创建进程时,基本上会使用Copy-On-Write(COW)技术。这里解释一下COW技术以及为什么在fork中使用。 WIKI上对COW的解释: Copy-on-write (sometimes referred to as "COW") is an optimization strategy used in computer programming. The fund
2013-06-05 20:33:48 1386
原创 linux c 信号量编程
信号量当我们在多用户系统,多进程系统,或是两者混合的系统中使用线程操作编写程序时,我们经常会发现我们有段临界代码,在此处我们需要保证一个进程(或是一个线程的执行)需要排他的访问一个资源。信号量有一个复杂的编程接口。幸运的是,我们可以很容易的为自己提供一个对于大多数的信号量编程问题足够高效的简化接口。为了阻止多个程序同时访问一个共享资源所引起的问题,我们需要一种方法生成并且使用一个标记从而保证在临界
2013-06-04 23:21:27 1953 2
原创 Bresenham快速画直线算法
一、 算法原理简介:算法原理的详细描述及部分实现可参考:http://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html Fig. 1 假设以(x, y)为绘制起点,一般情况下的直观想法是先求m = dy /dx(即x每增加1, y的增量),然后逐步递增x, 设新的点为x1 = x + j,
2013-05-23 21:44:25 2087
转载 uboot中的内存测试方法
1. Denx的UBOOT针对DDR内存的检测过程 从上图,可以看出要经过3个阶段: (1) 检测数据线 如果数据线是断开的,则一切测试都无从谈起,因此先测试Data lines. Data lines可能有2种错误: (1.1) 断开
2013-05-16 23:00:26 3859
原创 LFS、BLFS、ALFS、HLFS的区别
Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的。LFS 基于这样的假设,即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是如何工作的,也允许独立的操作人员为速度、内存占用或安全性而构建系统。许多作家已经编写了有关 UNIX 风格的书籍,深入研究了调度、内存管理、多进程和线程、文件系统,以及用户与内核之间的交互。写作 Li
2013-05-14 19:19:59 2621
原创 Linux下ARM裸机开发环境搭建与实例
折腾了很长时间,总算是弄明白怎么在linux编译运行arm裸机程序了。编译运行arm裸机程序可以考虑用arm工具链搭建编译环境,由minicom和dnw来下载程序,至于调试,还没有去耐心研究,着急来这里先备份一下,免得时间久了,忘记怎么回事。首先是arm工具链,arm工具链的编译我就不写了,一方面很麻烦,另一方面是这方面的资料网上已经有很多了,我就不在这里多言浪费大家时间了。我这里有自己编译的
2013-05-12 13:49:56 1517
原创 arm-linux-gdb: makeinfo is required for compilation
解决办法:sudo apt-get install texinfosudo apt-get install libncurses5-dev sudo apt-get install m4sudo apt-get install flex sudo apt-get install bison以上的错误主要是缺少这些软件造成的,在安装gdb之前执行以上五个命令,一般就没有问题啦
2013-05-06 01:04:19 2379
原创 GDB7.6 Remote 'g' packet reply is too long
修改gdb/remote.c文件,屏蔽process_g_packet函数中的下列两行:if (buf_len > 2 * rsa->sizeof_g_packet)error (_(“Remote ‘g’ packet reply is too long: %s”), rs->buf);在其后添加:if (buf_len > 2 * rsa->sizeof_g_packe
2013-05-06 01:03:15 4295 1
原创 XTS-AES,适用于网络存储的加密模式
AES加密算法, 不说了。block cipher的各种工作模式,ECB、CBC、Counter等,不说了。Cipher在用作disk encryption的时候,也有许多问题要考虑。主要是ECB模式不行(很明显),CBC模式也不好(无法随机访问),所以IEEE标准化了一个P1619标准,IEEE Standard for Cryptographic Protection of D
2013-04-28 18:09:54 15284
原创 ubuntu64位系统用32位的交叉工具链
64位系统下GCC静态编译32位程序:gcc -o hello hello.c -static -m3264位系统加-m32编译32位程序的时候,出现错误:/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory。这是缺少库:apt-get install lib32n
2013-04-25 22:33:47 1675
原创 IP XFRM配置示例:利用linux kernel自带的IPSec实现,手动配置IPSec
1、拓扑192.168.18.101 192.168.18.1022、配置192.168.18.101ip xfrm state add src 192.168.18.101 dst 192.168.18.102 proto esp spi 0x00000301 mode tunnel auth md5 0x96358c90783bbfa3d7b196ceabe0536b enc
2013-04-20 11:07:36 16703 1
原创 XFRM Programming
Linux IPsec overviewIPsec is a group of protocols used on top of IP for the purpose of authentication, encryption and secure exchange of encryption keys. These three activities correspond to three d
2013-04-19 23:15:40 7404
原创 常见IKE实现
Check Point Firewall-1 / VPN-1Cisco IOSCisco PIXCisco VPN Concentrator 3000FortiGateFreeS/WANIBM AIXJuniper NetScreenLinksys Etherfast DSL/Cable VPN routerMicrosoft
2013-04-19 22:49:27 1821
原创 vim查找利器:FuzzyFinder
FuzzyFinder plugin提供了一个快速搜寻档案、Buffer、书签、指令、标签的一个介面。 搜寻时,可以即时预览搜寻结果,并且支援wildcard的模糊搜寻 ※ 下载 http://www.vim.org/scripts/script.php?script_id=1984 www.vim.org/
2013-04-14 21:40:39 7808
SCPS_RI_1_1_132源代码
2010-08-06
MINIMIZING THE EFFECTS OF LATENCY ON TCP OVER SATELLITE LINKS.pdf
2010-08-05
IPSec Acceleration Using a Programmable.pdf
2010-08-05
Network IO Acceleration in Heterogeneous Multicore Processors.pdf
2010-08-05
Compact_xPEP_datasheet.pdf
2010-08-05
issues-ipsec-geosynchronous-satellite-links.pdf
2010-08-05
libphonon.so.4.3.1
2010-06-27
Erlang_-_Concurrent_Functional_Programming_for_Telecommunications._A_Case_Study_of_Technology_Introd
2010-05-10
WindowBuilder_V1.8 for Eclipse 4.5(Mars)
2016-07-08
IEEE1619标准-用于等长加密算法.pdf
2013-04-28
MTracer 2.1带注册码
2011-10-15
MediaWiki1.16.4
2011-05-02
Nvidia显卡驱动Linux版
2010-11-06
lrzsz-0.12.20.tar
2010-10-24
SCPS_Documents.rar SCPS协议文档
2010-08-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人