自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(658)
  • 资源 (3)
  • 收藏
  • 关注

原创 java SWT: addFilter热键监听Ctrl-C不正常的问题

SWT跟有道词典有什么关系?这两个东西有什么关联么? 如果你已经知道它们的关联就不需要看本文了。 下面是用windowbuilder生成的一个简单的java代码,我在代码中用addFilter增加了对Ctrl-C热键的侦听。如果检测到Ctrl-C按下,就输出消息。 实现的情况是: Ctrl-C键的确可以被检测到 但是在程序的界面中按下鼠标左键拖动一段距离再松开,也能检测出Ctrl-C。

2016-12-17 13:05:39 1298 1

原创 java:用CountDownLatch.await替代Object.wait实现线程阻塞/唤醒

线程之间经常需要一定的同步,比如线程A需要线程B的部分运算结果,但又不必等到线程B把所有的结果都算出来,否则A就要太长时间。 下面这个例子就是这个应用场景,主线程需要等待子线程从数据库中加载记录,但是子线程把所有的记录都加载完要花挺长时间。 而实际上,主线程最开始只需要一条记录就可以继续自己的后续动作了。怎么办呢?下面的代码利用传统的Object.wait()/nofity()方法来实现:

2016-12-16 22:42:50 8165 2

原创 java:Observable/Observer模式在SWT环境下UI线程/非UI线程的透明化调用

观察者模式(Observable/Observer)在UI设计方面非常有用,可以通过Observer来实现UI界面的更新,因而可以实现UI层与业务层的分离。 但是我们知道大部分UI框架(比如SWT)都要区分UI线程和非UI线程,如果Observable对象在非UI线程执行notifyObservers操作,而Observer的update方法又涉及UI对象的操作时就会抛出异常。(参见 《SWT的U

2016-12-15 14:44:04 933 1

原创 VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

我们的svn服务器是使用windows平台的VisualSVN Server,有时SVN提交之后,发现忘记写提交说明了,这时需要修改日志信息,然后就报错了:错误提示的意思说Repositories不接受修改日志,需要要创建一个 pre-revpro-change hook才行,问了度娘,搞清楚了。 hook,顾名思义,就是svn在执行一个动作之前调用的用户自己定义代码(用户没有自定义的情况下就使用

2016-12-13 11:12:40 6893 1

原创 java SWT: 重写dispose()和DisposeListener的区别

当需要在Widget被销毁(dispose)的时候执行一些比如释放资源的动作时,有两个途径来执行这些动作: 1. 重写dispose()方法,在dispose中释放资源的动作。 2. 添加DisposeListener,监听SWT.Dispose事件,在Listener中执行释放资源的动作。 应该用哪种方式呢? 答案是方法2,因为虽然都能执行dispose动作,但SWT隐式销毁对象的时候并不

2016-12-10 14:07:55 3092

原创 java SWT:Display.addFilter设置快捷键的例子-切换全屏

以前只知道org.eclipse.swt.widgets.Widget以及子类可以添加Listener。 今天才搞清楚: Display也addListener方法,而且还有优先级更高的addFilter方法: addFilter方法的原文说明: Adds the listener to the collection of listeners who will be notified

2016-12-09 11:25:15 1987

原创 java SWT:基于Composite定制背景透明的浮动图像按钮(image button)

SWT对于图形按钮没有很好的支持,反正我折腾了半天,发现用org.eclipse.swt.widgets.Button是没办法做出好看的图形按按钮的. 于是就参考org.eclipse.ui.forms.widgets.ImageHyperlink自己撸了一个: 效果嘛,参见下图, 请忽略左边的美女: 鼠标不在按钮区域时的未激活状态 鼠标进入按钮区域时的激活状态 下面是完整代码,很

2016-12-06 16:44:28 6051 2

原创 WindowBuilder:Anonymous class creation can not be evaluated.

WindowBuilder的对包含匿名类的java代码支持不太好, protected void createContents() { shell = new Shell(SWT.NO_TRIM | SWT.ON_TOP); shell.setSize(648, 480); shell.setText("标签编译器");

2016-12-05 18:58:51 851

原创 java SWT:用SWTKeySupport方便进行组合键判断(如Ctrl+F11)

SWT下如果判断包含shfit,ctrl,alt的组合键,就要用到KeyEvent的stateMask字段。 关于stateMask的用法,参见我的上一篇博客《java SWT:MouseEvent,KeyEvent中stateMask字段的用法》比如我们要用Ctrl-F11来实现全屏和正常屏幕显示的切换,直接使用stateMask字段判断的代码可以写成这样: /** * 屏幕

2016-12-05 18:44:57 1532

原创 java SWT:MouseEvent,KeyEvent中stateMask字段的用法

SWT中与键盘鼠标等输入设备有关的事件(MouseEvent,KeyEvent,SelectionEvent GestureEvent TouchEvent)都有一个stateMask字段。 这个字段的作用是以二进制掩码(mask)的方式指示当前键盘的修饰符键(modifier keys)和鼠标按钮(button)的按下状态, 这里modifier keys是指alt,ctrl,shift,c

2016-12-04 13:51:47 2018

原创 java SWT:最有效的layout方法Control.requestLayout()

Eclipse SWT最新的版本中org.eclipse.swt.widgets.Control增加了一个新方法requestLayout()用于更高效的处理layout请求 该方法其实只有一行代码:public void requestLayout () { getShell ().layout (new Control[] {this}, SWT.DEFER);}这是SWT当前最高效

2016-12-03 17:20:51 1283

原创 java SWT:TraverseEvent的理解塈添加TraverseListener实现Composite之间TAB键切换焦点

TraverseEvent遍历事件从英文直译的话,org.eclipse.swt.events.TraverseEvent是指widget中组件遍历(切换焦点)动作发生时产生的事件 举例来说,就是当我们使用光标键,TAB/shift-TAB键,PAGE-UP/DOWN等键在按钮(Button)之间切换焦点的时候,就会产生TraverseEvent事件。 关于TraverseEven的原文说明,

2016-12-03 17:05:10 1699

原创 java SWT:自定义布局(Layout)实现组件自动缩放显示

什么是布局(Layout)窗口布局(Layout)其实是指Composite中组件的一种定位原则的实现,当Composite改变大小时,会自动调用Composite初始化时设置的Layout对象来重新调整所有组件的位置。 一般的UI框架都提供了一些默认布局,比如SWT中的FillLayout,GridLayout…如果使用WindowBuilder开发UI,可以在Design界面下看到所有SWT提

2016-12-03 10:35:34 10817

原创 java SWT入门:自定义背景透明且可鼠标拖动改变尺寸和位置的Composite

下面的代码实现了一个透明可移动可改变尺寸的Composite窗体,如下图 鼠标点击窗口获取焦点,在获取焦点时会显示9个锚点用于改变窗口的位置和尺寸。ActiveRectangle.javapackage net.gdface.ui;import org.eclipse.swt.SWT;import org.eclipse.swt.widgets.Composite;import org.

2016-12-01 20:10:37 4095

原创 java:Exception的另类用途-利用异常代替if判断的例子

有的时候,我们可以利用java的异常来代替一if判断, 以下面这代码片段为例,modifyFocus方法中为了防止List下标访问越界,用了if判断语句来判断下标是否有效。public class AnnotationCanvas{ private List rects; /** * 从rects中找到焦点对象(focus为true),没有找到则返回

2016-11-29 14:55:53 2107 1

原创 java:SWT 缩放图像(Image)

在SWT中下面两个方法都可以实现Image缩放, GC.drawImage(Image image, int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight); ImageData.scaledTo(int width, int height)但是为了

2016-11-28 18:22:33 4638

原创 WindowBuilder入门:使用swt的canvas类构造显示URL图像

首先如创建一个基于于Canvas的ImageCanvas类,ImageCanvas.javapackage net.gdface.ui;import java.net.URL;import org.eclipse.swt.events.PaintEvent;import org.eclipse.swt.events.PaintListener;import org.eclipse.swt.gra

2016-11-28 15:24:59 2392

原创 eclipse.ini:修改-vm参数让eclipse可以直接锁定到任务栏

一般的程序,运行时如果没有锁定在任务栏,鼠标右击程序图标时右键菜单中都会显示”将此程序锁定到任务栏”这个选项,点击它,就可以将该程序锁定在任务栏,方便下次打开。 但今天新装eclipse的时候,发现鼠标右击eclipse图像居然没有这个选项。 虽然可以直接如下图右击eclipse.exe,点击”锁定到任务栏”来实现, 但这样以来在运行eclipse时任务栏会有两个eclipse的图标。这令

2016-11-27 19:14:19 6420 1

原创 eclipse:WindowBuilder开发时为SWT/JFace引入JavaDoc和源码

WindowBuilder是一款非常强大易用的java GUI设计工具,原先是google开发的免费软件,现在已经贡献给eclipse.org。关于如何安装WindowsBuilder不是本文的重点,网上可以找到好多关于WindowBuilder安装的教程,我照着教程安装好WindowBuilder后发现代码中引用的SWT/JFace相关的类都没有JavaDoc文档支持。导致开发过程中要了解相关的类

2016-11-27 11:54:49 3079 1

原创 windows:subst 映射文件夹为盘符塈设置开机启动执行bat脚本

在做开发的过程中(尤其是java开发),因为很多第三文件工具和库都是免安装的版本,解开就能用,所以我会以一个文件夹为根目录在此文件夹下保存所有的第三方工具和库,这样的好处是如果哪天要换电脑工作,只要把这个文件夹备份迁移到另一台电脑,基本上就可以开始工作了。 如下图文件夹j下面所有项目代码,开发工具及第三方库都放在这里 并且,将这个j文件夹映射成windows盘符J: 这样,我可以以J盘

2016-11-26 18:36:03 9690

原创 dom4j:控制xml输出格式

org.dom4j.io.OutputFormat用于输出xml时的格式控制,通过对OutputFormat的参数设置,可以实现xml输出时换行、缩进、编码方式、是否显示xml声明等等控制。package iadb;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.

2016-11-23 19:11:35 7900 1

原创 群联PS2251-07主控(Kingston64G)量产CD-ROM+移动磁盘模式过程记录

最近在京东新买了个Kingston64g U盘,打算把它量产成CD-ROM光驱+移动磁盘模式。 U盘量产真是个折磨人的体力活儿,主要的原因是这些量产工具软件都是为特定型号U盘、特定生产环境设计的,并不是面向大众的产品,所以通用性很差,软件的容错性也很差,如果找不准正确的量产工具版本,正确的使用流程,怎么做都是徒劳。 上一次玩量产还是几年前了,过程几乎忘光了,而且过去的时间太长,以前的经验也没用了

2016-11-16 18:58:13 58961 23

原创 Intel B150芯片组(usb3.0)主板的电脑上安装Win7

我们知道,原生的Win7安装盘并没有支持usb3.0driver,而Intel B150芯片组的USB芯片是是usb 3.0标准的,所以在这种比较新的主板上用u盘装Win7时,一进入安装界面就报错:找不到CD-Rom驱动。。。。 怎么办呢? 其实主板厂商早已经为这个问题提供了解决方案,就是提供一个实用工具软件将usb3.0driver加入win7的安装盘(或iso)。 我最近新换的台式机电脑主

2016-11-14 14:09:56 19880 2

原创 Caffe:Message type “caffe.LayerParameter“ has no field named “reshape_param“.

在执行py-faster-rcnn-master的演示程序(tools/demo.py)时 报错: Message type “caffe.LayerParameter” has no field named “reshape_param”.google上找到了rbgirshick大神的回复 https://github.com/rbgirshick/fast-rcnn/issues/1

2016-11-13 15:56:12 12336 2

原创 eclipse 4.4(luna)安装pydev插件

我的eclipse版本是luna(4.4),最近要在eclipse安装python的开发环境pydev。 最开始,我是通过通过eclipse在线安装pydev,安装完成后,eclipse中却没有如期显示PyDev的菜单。PyDev版本要求网上找了半天,有人提到说可能是pydev的版本问题。最终在PyDev官网找了关于pydev对eclipse和java版本的要求(http://www.pydev.

2016-11-13 15:33:30 6560 1

原创 Ubuntu14:cmake生成Makefile编译caffe过程(OpenBLAS/CPU only)

之前在CentOS6.5下成功完成了caffe的编译(参见《CentOS6.5编译Caffe过程记录(系统存在多个编译器)》),最近将操作系统平台换成了ubuntu14,网上找到的介绍ubuntu下编译caffe的文章都是直接修改Makfile.config和Makefile来完成编译的,caffe本身提供了用于生成 Makefile的cmake脚本,所以我还是希望尝试用cmake生成的Makefi

2016-11-12 19:20:38 5948 1

原创 ubuntu14/ubuntu16/centos7:解决可以ping ip却ping不通主机名

最近装了两台linux虚拟机分别CentOS7和Ubuntu14,都装了samba服务,文件共享都正常,虚拟机上互联网也正常,能以ping 通局域网的ip,却都ping不通主机名,其他电脑(windows/linux)都能ping 通这两台虚拟机的主机名。 最终找到原因:没有安装winbind,也没有配置/etc/nsswitch.conf 下面分别说明CentOS7和Ubuntu14下的步骤。

2016-11-11 13:00:25 11153 1

原创 ubuntu14:vim语法高亮的简单办法--安装vim-gtk版本

默认安装ubuntu14后,vim编辑器是不支持语法高亮的,黑乎乎一片,用起来非常不习惯,而且一些键的定义也与我以前熟悉的centos6上的习惯不一样,很不方便,网上有很多文章描述了如何设置vim的语法高亮,但感觉都好复杂,要改好多配置,看着我头痛,就没有一种简单的办法吗?为神马我用centos6.5的时候,就没有对vim做过任何修改,就能支持基本的语法高亮呢? 偶然在一个贴吧文章中找到方向(ht

2016-11-11 10:51:59 6087 1

原创 vsphere(esxi):解决vmware虚拟机无法全屏显示

最近在exsi服务器上新建了一个centos7的虚拟机和一个ubuntu14虚拟机,centos7虚拟机正常安装了vmware-tools,ubuntu14虚拟机正常安装了open-vm-tools,但都无法进入全屏状态(ubuntu14进入全屏时直接挂了),自然虚拟机分辨率也不能自动Autofit Window。百思不得其姐。。。很久之前装的centos6.5都一直很正常呀。 后来想到两个不同操

2016-11-08 10:25:48 16489

原创 esxi(vsphere):打开虚拟机和主机之间的copy/paste功能

在VMware Workstation中运行的虚拟机如果安装了vmware-tools(如何安装vmware-tools网上有很多教程,这里不再说明),基本上就可以正常使用主机和虚拟机之间的copy/paste文本粘贴,但在(vsphere4.0以后)exsi上因为安全限制更高,所以安装vmware-tools后默认是将copy/paste功能禁用的。如果要想启用copy/paste功能需要打开相应

2016-11-07 14:48:50 35986 1

原创 CentOS6.5下python版本的protobuf编译及安装

因为要学习faster r-cnn,在搭建环境的时,发现原本通过yum安装的protobuf没有安装python版本以及其他一系列版本版本兼容性问题,导致我必须用编译方式重新安装protobuf2.5下载源码首先,从github上下载protobuf的源码,地址:https://github.com/google/protobuf,我选择下载2.5.0版本。编译protobuf然后将下载的压缩包解压

2016-11-03 17:40:06 3822 1

原创 CentOS6.5上配置Python2.7+OpenCV2.4.13

为了学习使用Faster R-CNN,需要安装opencv +python环境,之前已经在CentOS下安装好了python2.7。yum安装的opencv是2.0版本,安装了opencv-python,但python中import cv2仍会报错,无法满足需要。所以决定用编译方式安装opencv。 CentOS6.5下安装python2.7参见《CentOS6.5下为编译Caffe升级pyth

2016-10-14 15:15:41 3511

原创 CentOS6.5下为编译Caffe升级python2.6到2.7

之前有写过一篇博客《CentOS6.5编译Caffe过程记录(系统存在多个编译器)》,讲述了在CentOS6.5下编译Caffe的过程。因为Centos6.5默认安装的python版本(2.6.6)不满足Caffe的要求(2.7),所以当时没有编译pycaffe。 如果要使用pycaffe,就要将CentOS6.5自带的python(2.6.6)升级到2.7以上版本。#!/bin/sh# 下载p

2016-10-09 14:13:11 1258 1

原创 学习Caffe代码的方法心得

这几天在学习Caffe的代码结构,有一些心得做一下记录。从prototxt开始按照我的理解,从系统整体结构来看,Caffe是个数据驱动型的系统,而非程序驱动型,如果要类比,可以类似于用于Java应用的Spring框架,我对Spring的了解也非常肤浅,不过我知道基于Sprin框架的java应用都是用xml配置文件来控制的。xml文件里详细定义了每个应用的Class以及相应的参数。。。。 从这一点来

2016-10-03 15:45:32 6444 1

原创 Caffe:CPU模式下使用Intel MKL做mnist训练

下载安装Intel MKL打开这里Intel® Math Kernel Library (Intel® MKL),点击”Get This Library for Free”下载一个非商用的免费版本,很简单,只需要提供邮箱,然后按照步骤一步步来就行了,在下载界面上会有显示序列号,务必记下这个序列号。 以linux版本为例,我下载的文件为l_mkl_2017.0.098.tgz,解压缩后执行ins

2016-10-02 18:09:19 6416 1

原创 Caffe:CPU模式下使用openblas-openmp(多线程版本)

从所周知,所有的深度学习框架使用GPU运行是最快的,但是在不具备Nvidia显卡的环境下只使用CPU来运行,慢就慢点吧,对于学习阶段还是够用的。Caffe用到的Blas可以选择Altas,OpenBlas,Intel MKL,Blas承担了大量了数学工作,所以在Caffe中Blas对性能的影响很大。 MKL要收费,Altas略显慢(在我的电脑上运行Caffe自带的example/mnist/len

2016-10-02 15:02:03 15689 6

原创 Netscope:支持Caffe的神经网络结构在线可视化工具

Netscope是个支持prototxt格式描述的神经网络结构的在线可视工具,地址:http://ethereon.github.io/netscope/quickstart.html 它可以用来可视化Caffe结构里prototxt格式的网络结构 使用起来也非常简单,打开这个地址:http://ethereon.github.io/netscope/#/editor把你的描述神经网络结构的pr

2016-09-30 18:18:56 41613 3

原创 RabbitVCS(0.14.2)不显示右键设置(settings)菜单,AttributeError: ‘gtk.VBox‘ object has no attribute ‘set_visible

RabbitVCS是Linux的svn客户端,对于在windows下用惯了TortoiseSVN的人来说,在linux下使用纯命令行的svn命令实在是太折磨人了,RabbitVCS就是一个类似于TortoiseSVN的linux平台工具。 我的linux平台是CentOS6.5,安装RabbitVCS已经好久了,是用yum install安装的0.14.2版本。 当时安装一切正常,但是突然有一天

2016-09-29 12:02:59 2811

原创 CentOS6.5:升级了python,把输入法给玩坏了

我用的linux是CentOS6.5,预装的python是2.6,前几天因为要编译Caffe,把python升级到2.7.12。一直没在意,中间又做了好多操作,当我想用输入法(五笔)输入中文的时候,发现输入法不能使用了。 输入法图标不见了,在系统菜单中选择”系统->首选项->输入法”,死活调不出下面的”输入法配置工具”(后来知道这个是ibus-setup的界面) 开始并不知道是什么原因的导致的,

2016-09-28 15:54:59 1327 1

原创 CentOS6.5:login后循环显示“starting filemanager“的问题

之前我的CentOS6.5系统一直使用正常,我也没搞清楚我做什么升级操作,导致登录入系统后,下面的状态条反复显示”starting filemanager”,无法显示桌面,但是可以正常打开终端。。。 从google上找了半天,有了收获: http://forums.fedoraforum.org/showthread.php?t=243445解决的办法就是删除 nautilus再重装。 sud

2016-09-28 11:07:14 2107

CMake脚本在ultraedit中的语法高亮支持

资源来自CMake官网: http://www.cmake.org/Wiki/images/5/56/UltraEditWordfile.tar.gz, 但这个链接已经无法访问,从历史快照中找加,上传备份 参见使用方法参见:https://blog.csdn.net/10km/article/details/52368486

2023-06-08

erpcgen-windows-x86_64.zip

用cygwin编译的erpcgen,可以windows下直接通过IDL编译生成client/server端(C++)代码,有cygwin的童鞋也可以自行编译,很方便的。 erpc git仓位置: https://github.com/EmbeddedRPC/erpc

2020-09-17

windows下MSVC兼容的dirent.h

<dirent.h>是一个应用程序接口,主要用于文件系统的目录读取操作,主要提供了几个目录数据读取函数,<dirent.h>是unix系统下常见的接口,但windows平台的MSVC编译器并没有提供这个接口( Cygwin5 and MingW现在已经提供了dirent接口),对于跨平台的项目开发就会带来一些麻烦,如果在MSVC下编译时可能因为windows平台缺少这个接口就要为windows平台另外写一些代码。本资源是从网上找的,提供了windows下为MSVC实现的dirent.h接口实现,方便跨平台开发和移植。

2016-03-31

libb64--base64编码解码库

libb64是实现base64编码解码的开源库,还提供了C++封装,用起来挺方便

2016-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除