软件规模度量

做世界上最好的代码行统计工具

2012年3月10日 #

以前做的一些小玩意儿(一)

无聊啊,陆续把以前做的一些小玩意儿共享一下。由于时间比较长了,那时候设计能力有限,现在也没时间维护,如果发现bug就别用了,望体谅。

第一个是叫Secret Bitmap,程序大小88k。下载链接:http://files.cppblog.com/bobquain/SecretBitmap_V1.2.1_CN_Setup.zip
以前在CSDN的下载:http://download.csdn.net/source/182295



Secret Bitmap

在位图中隐藏信息


1. 介绍

首先对在位图中隐藏信息的原理做一下简单的介绍:

    我以24位位图为例(24位位图即用24位来表示一个像素点颜色的位图),因为就目前来讲用24位位图来隐藏信息是最安全的。大家都知道,世界上任何一种颜色都可以用红,绿,蓝以不同比例调和出来,这三种颜色也通常被人们称为三原色。24位色即用8位来表示红色,8位来表示绿色,8位来表示蓝色。8位即一个字节,用十进制表示的话,最小值为0,最大值为255。我们通常知道,(0,0,0)表示黑色,(255,255,255)表示白色,(255,0,0)表示红色等等。24位色最大可表示2的24次方(即16,777,216)种颜色,这已经超出了人类肉眼可以分辨的颜色。举个例子:人类的肉眼几乎无法分辨白色(255,255,255)和(254,254,254)之间的区别,255表示为二进制是11111111,而254表示为二进制为11111110;其他颜色同理,如果只改变其三原色每个字节中的最后一位的话,人类的肉眼几乎无法分辨。这样一来,我们就可以利用每个像素(3个字节)中每个字节的最后一位来存储一些额外的信息,并且不会增加位图文件的大小,这也就是用位图来隐藏信息的原理。当然,我们也可以多占用一些位来加大隐藏数据的信息量,但是这样也就更容易被人类的肉眼所察觉。但是,请大家注意,利用位图隐藏信息仅仅是一种欺骗,并非什么加密技术,如果需要更安全的保护还需要和加密技术搭配使用。

    此款工具在同类工具中的优点是:提供密码加密,数据加密和隐藏位数的选择。在占用位数过多的情况下,比较容易被别人看出位图的瑕疵(如果有原图作为参考会更容易),也就可以怀疑该位图中隐藏了信息。但是,即使这样也没有关系,所有隐藏的数据在隐藏之前已经经过了加密,并且有密码的保护,即使有人分析出了数据,也需要进行解密。所以说它的安全性还是相当高的。

    在人们的隐私越来越难保护的今天,也许你正需要它,也许...将来的某天会需要它。

2. 如何使用

Secret Bitmap的界面比较易懂,参照下图做一下简单介绍:

    1 位图文件:原位图文件。

    2 隐藏文件:需要被隐藏的文件

    3 密码:加密用密码输入(采用MD5加密)。

    4 密码确认:密码确认的输入

    5 隐藏(带面具):隐藏,点击后打开保存文件的对话框,默认保存名称为原位图的名称。文件保存后,保存路径会被记录下来,下次实施隐藏时默认打开上次的保存路径。(数据加密算法...保密)

    6 占用位选择:点击黄色的锁形图案,可打开或关闭占用位。目前可以使用的占用位的数量为1,2或4。

    7 位图文件:隐藏了信息的位图文件

    8 密码:解密用密码输入。

    9 反隐藏(摘掉面具):反隐藏,点击后打开保存文件的对话框,默认保存名称为原隐藏文件的名称。文件保存后,保存路径会被记录下来,下次实施反隐藏时默认打开上次的保存路径。

    10 日志:显示错误和隐藏/反隐藏的结果信息

3. 改进

对比之前发布的V1.1.0版,V1.2.0主要的改进如下:

    1 增加了托拽功能:用户可以从Explorer中托拽文件到[Bitmap File]或[Hidden File]的编辑框中。

    2 去掉了指定输出文件夹的功能,替换为直接打开保存文件对话框,使用户更容易在保存文件时修改文件的名称。

V1.2.1的改进如下:

    1 修正了显示设定为非96DPI的情况下,占用位选择的锁形图案显示位置不正确的Bug。

posted @ 2012-03-10 17:59 bobquain 阅读(1766) | 评论 (2)编辑 收藏

2010年9月18日 #

以前做的一些小玩意儿(三)

无聊啊,陆续把以前做的一些小玩意儿共享一下。由于时间比较长了,那时候设计能力有限,现在也没时间维护,如果发现bug就别用了,望体谅。

这次是3个Eclipse的插件:

No.1
Statistic-Lines,Eclipse上统计代码行数的插件,就是之前第一篇随笔说的那个"org.holon.statistic.lines"。由于当时发布的时候,package名字里出现了我当时项目组的名字,后来被领导责令把当时发布的帖子删除了,故借此对当时关注这个插件的人说声抱歉。下载链接:http://files.cppblog.com/bobquain/Statistic-Lines-311-Eclipse311-BIN.zip






No.2
Plug-in-Link,Eclipse上安装插件的插件,名字比较绕口,呵呵。下载链接:http://files.cppblog.com/bobquain/Plug-in-Link-311-Eclipse311-BIN.zip

保持一个干净的Eclipse
背景:
如果你是一个Eclipse的用户,如果你喜欢追随Eclipse的开发步伐,如果你喜欢尝试各种不同的插件,如果你经常在同一个Eclipse上进行插件升级,如果你安装插件仍是把它安装在Eclipse的安装目录之内,那么,朋友,你有必要仔细阅读一下以下文字,因为你极有可能会遇到以下问题:
1.每次使用最新的Eclipse,重新安装需要的插件,一个又一个,烦。
2.因为某些插件影响速度(或许很小),不想使用的时候,又不方便删掉(譬如多语言包),忍。
3.每次尝试新插件,不好用,删文件夹,一个又一个,还是烦。
4.每次升级插件(某些非官方插件经常会在同一版本的Eclipse上进行升级),删文件夹,一个又一个,还要再安装,更烦。

已经很烦了,现在讲讲解决办法,对于上面的问题,解决办法无疑就是将插件安装在Eclipse的安装目录之外,主要方法有以下两个:
1.利用Eclipse的Product extensions机制,Eclipse升级时只需升级Eclipse本身,而插件依然可以利用无需重新安装。但是,有些Plugin开发商(几乎是所有)为了省事未进行update site的工作,无奈。(但,可自己进行update site工作)
2.利用Eclipse的并未推荐的连接文件,虽为未推荐,但相比来说已经是最好的选择。但又因为并未推荐,所以没有注意事项可参考,使用者由于对连接文件的机制不清楚,经常会造成插件不能正常安装(例如:更改同一个连接文件到同一个插件)。
综上所述,导致了我决定开发一个管理连接文件的工具(终于引到了正题,:)),其实最初是为我们项目组考虑,原因是我们要经常要对所开发插件进行更换,测试。
插件下载连接:
可能有些人会问,这个插件安装怎么办?这个问题我只能说没办法,还是要安装在Eclipse的安装目录之内,但放心它只有一个文件夹,删起来比较容易(希望不会这么惨,:))。

关于版本:我只做了for Eclipse-SDK-3.0.1的版本,主要是考虑到大家使用的2.1.3应该已经定形,遇到上面问题的几率比较小,如果真的有需要请告知我。
使用方法:
1.打开
 

2.添加连接
说明:插件解压后必须如下结构(不是的话,手动建立即可):
 link folder/
                eclipse/
                      features/(不是必要的)
                      plugins/
譬如有一个插件(eclipse-FTP-WebDAV-3.0.1)在资源管理器中如图:
 
在Plug-ins Link View中,如下图:

 
点击“+”,出现添加页面,如下图:

 
选定后,Finish。
 
确保为Enabled。
3.重新启动即可生效。
4.其他操作,简单明了,一试便知。



No.3

Stand-alone-Help,Eclipse上可独立打开多个语言帮助的插件,当时在日文环境下,给同事开发的,没什么大用,呵呵。下载链接:http://files.cppblog.com/bobquain/Stand-alone-Help-311-Eclipse311-BIN.zip

posted @ 2010-09-18 00:26 bobquain 阅读(1540) | 评论 (0)编辑 收藏

2010年9月17日 #

以前做的一些小玩意儿(二)

无聊啊,陆续把以前做的一些小玩意儿共享一下。由于时间比较长了,那时候设计能力有限,现在也没时间维护,如果发现bug就别用了,望体谅。

第二个是叫K File Converter,程序大小200k。下载链接:http://files.cppblog.com/bobquain/KFC_V1.1.1_CN_Setup.zip
以前在CSDN的下载:http://download.csdn.net/source/182300



K File Converter

可扩展批量文件转换器


1. Introduction

大多数编程人员在开发过程中经常会需要某种文件转换操作,如:

    1 批量的文件改名。

    2 把文件转换成Dos格式,Unix格式或Mac格式。

    3 把文件转换成Shift-JIS码,EUC码或JIS码。

    4 把文件从本地编码转换成ASCII码,或者从ASCII码转换成本地编码。

这些转换工具有的是系统自带的,有的是第三方的免费工具,而有些则需要自己开发。

但是这些工具往往没有图形界面,或者不支持对文件夹的操作和对特定文件的过滤。

K File Converter正是为了解决这个问题而设计,用户无论是使用别人的工具还是自己开发的工具,都无需为了对图形界面和对文件夹以及文件过滤的支持而浪费时间。

2. How To Use

K File Converter界面比较易懂,参照下图做一下简单介绍:

    1 输入文件夹:被转换文件所在路径。

    2 输入文件名格式:输入文件名过滤,*代表任意字符串,?代表任意字符,每个文件名格式用|隔开

    3 输入刷新:[6]没有选中的情况下,当[1]或[2]发生改变或[1]指定路径中文件变更时,点击此按钮进行树形视图[4]的刷新。

    4 输入视图:所有符合[2]过滤条件的文件都以树形方式显示在此视图中

    5 包含子文件夹:选中情况下,对[1]指定文件夹和所有它的子文件夹中的文件进行过滤;没选中情况下,不对子文件夹进行过滤。

    6 输入自动刷新:选中情况下,当[1]或[2]发生改变时,自动刷新[4]视图。但是,[1]的指定路径中有文件变更时,需点击按钮[4]进行刷新。没选中情况下,不进行自动刷新。

    7 输出文件夹:转换后文件的输出路径

    8 输出文件名格式:输出文件格式,可引用变量:${prefix}代表输入文件名前缀,${suffix}代表输入文件名后缀(也就是扩展名)。${prefix}和${suffix}可不引用或引用多次。

    9 输出刷新:[11]没有选中的情况下,当[7]或[8]发生改变或[1]指定路径中文件变更时,点击此按钮进行[4]树形视图的刷新。

    10 输出视图:按照[8]中格式以树形方式显示所有输出文件的预览

    11 输出自动刷新:选中情况下,当[7]或[8]发生改变时,自动刷新[10]视图但是,[7]的指定路径中文件变更时,需点击按钮[9]进行刷新;没选中情况下,不进行自动刷新。

    12 转换器选择:指定转换所用转换器。预置的转换器主要有4种,共13个:

        (1) 文件改名(复制原文件)。

        (2) 文件改名(移动原文件)。

        (3) 文件行结束符转换成Dos格式(CRLF)。

        (4) 文件行结束符转换成Unix格式(LF)。

        (5) 文件行结束符转换成Mac格式(CR)。

        (6) 文件编码转换为Shift-JIS码(自动判断输入文件的编码)。

        (7) 文件编码转换为EUC码(自动判断输入文件的编码)。

        (8) 文件编码转换为New-JIS码(自动判断输入文件的编码)。

        (9) 文件编码转换为Old-JIS码(自动判断输入文件的编码)。

        (10) 文件编码转换为Nec-JIS码(自动判断输入文件的编码)。

        (11) 文件MD5验证码的生成(MD5加密:目前国外大多数网站提供的下载文件的验证码)。

        (12) 文件编码从本地编码转换为ASCII码(转换器为JDK中提供的native2ascii.exe程序,不会自动判断输入文件的编码;还有,使用前用户要手动修改JDK的路径)。

        (13) 文件编码从ASCII码转换为本地编码(转换器为JDK中提供的native2ascii.exe程序,不会自动判断输入文件的编码;还有,使用前用户要手动修改JDK的路径)。

    13 配置转换器:点击打开转换器配置窗口。具体使用见[3.How To Extend]

    14 运行/停止:运行转换/停止转换。显示为"Run"时,点击后开始运行,运行中名称变为"Stop",点击可停止转换。转换停止或全部结束后,名称变为"Run"

    15 日志:显示错误和转换结果信息

3. How To Extend

用户如果想增加转换器,可点击上图中按钮[13],打开转换器配置窗口。转换器可以是任何命令行的执行程序,包括cmd.exe,java.exe和提供命令行参数的GUI执行程序。注意:转换器至少需要有输入文件和输出文件两个参数。

转换器配置界面也非常简单,通过下图做一下简单介绍

    1 转换器列表:显示转换器列表

    2 新建:做成新的转换器

    3 复制:做成新的转换器并复制当前转换器配置到新做成的转换器

    4 删除:删除当前选择的转换器

    5 上移:当前选择的转换器上移一格

    6 下移:当前选择的转换器下移一格

    7 标题:转换器的标题

    8 执行文件:转换器运行的执行文件

    9 参数:[8]中指定执行文件的参数。可引用变量:${infile}为输入文件,${outfile}为输出文件,${location}为执行文件所在文件夹。

    10 工作路径:[8]中指定执行文件的工作路径。可引用变量:${location}为执行文件所在文件夹。

    11 OK:保存所有修改并关闭配置窗口

    12 Cancel:取消所有修改并关闭配置窗口

4. Improve

对比之前发布的beta版,正式版V1.0.0主要的改进如下:

    1 输入视图和输出视图做到近乎完美的同步

    2 增加了输入视图和输出视图的自动刷新,并提供开关当文件比较多,严重影响自动刷新时,可关闭自动刷新功能。

    3 转换器配置窗口中增加了[Copy]按钮

    4 解决了转换器配置窗口中点击上移,下移或删除按钮之后回到主窗口进行文件转换,所选转换器会错乱的bug

    5 增加了转换停止的功能,这样可以以正常方式停止当前的转换操作;并且转换期间中不影响图形界面操作

    6 预置了更多实用的转换器,如:行结尾符的转换和文件编码的转换

    7 文件改名转换器没有采用"cmd.exe /c copy",原因是速度稍慢。

V1.1.0的改进如下:

    1 增加了托拽功能:用户可以从Explorer中托拽文件或文件夹到[Input/Output]组中。如果托拽的是文件夹,文件夹的绝对地址将写到Input Directory或Output Directory中。

      如果托拽的是文件,文件所在文件夹的绝对地址将写到Input Directory或Output Directory中,文件名称将写到File Name Patterns中。

    2 将Input Directory/Output Directory和File Name Patterns的编辑框变成了可输入的ComboBox框,并增加了保存历史记录的功能。

    3 增加了手动刷新的快捷键(F5)。当输入焦点在Input区域时,刷新输入视图;当输入焦点在Output区域时,刷新输出视图。

V1.1.1的改进如下:

    1 修正了File Name Patterns对文件过滤时严格区分大小写的Bug。

    2 将Input Directory/Output Directory浏览对话框的初始路径设定为当前输入框中的路径。


posted @ 2010-09-17 23:58 bobquain 阅读(1195) | 评论 (0)编辑 收藏

仅列出标题