平时开发一直用eclipse,就有个问题,每次打开eclipse容易卡住,都是上一次关eclipse的时候有开着的文件,导致每次打开eclipse也会去加载,而加载的时候,就经常卡住了,google了半天也没搞出解决方案,那索性换个思路,能否在eclipse关掉前,自动关掉所有打开着的文件,(也可以自己手动关,不过经常会忘记)又是一顿google狂找,竟然eclipse也没有这个选项。
所以自行研究了一下eclipse的插件,倒是能做到,而且也很简单,这里共享出来,给有需要的人看下,当然如果你是eclipse的插件老手,就不用看了,可能太小儿科了:)
以下是源代码:
https://code.google.com/p/terrycode/source/browse/#svn%2Ftrunk%2Fexitclose
以下是编译好的插件文件(直接把jar放到eclipse/dropin下就可以了)
https://docs.google.com/file/d/0B0W7RjU4e3Q3R05rc0ZJZWV2QTg/edit?usp=sharing
2013年5月25日星期六
2011年12月4日星期日
免费天气预报weatherlib部署方法(1-23更新)
2013-1-23 Update:
网友需求,在邮件后面不要加上“管理订阅XXX”,我修改了一下代码,另外上传了一个weatherlib_nohelp.zip 也是在同样下载的地方。
2012-6-25 Update:
网友反映无法部署,根据提示,是因为GAE升级了,需要在appengine-web.xml 第四行(<version>4</version>)后面加入以下一行:<threadsafe>true</threadsafe>
2011-12-10 Update:
更新程序,天气邮件中的网址http://weather.terrynow.com改成各自的http://yourappid.appspot.com
说明:
1) 如果您部署本程序,如果修改首页,希望你能保留我的博客等版权信息和广告的内容(当然也不能强迫哈)
2) 现在程序默认总定制数是80个,单个用户的定制数是10个,考虑到总的邮件数是100,另外还有发送验证邮件、测试邮件或者发送错误重新发送等原因,总定制数为80,如果你要修改总定制数,可以搜索代码里出现的80的地方改成你想要的数字(少于100),单个用户的定制数默认是10,代码中可以改,或者到https://appengine.google.com后台,点击Datastore Viewer,找到Account下的账户,把slimit的数值,从10改成其他你想要的。
2011-12-9 Update:
网友需求,在邮件后面不要加上“管理订阅XXX”,我修改了一下代码,另外上传了一个weatherlib_nohelp.zip 也是在同样下载的地方。
2012-6-25 Update:
网友反映无法部署,根据提示,是因为GAE升级了,需要在appengine-web.xml 第四行(<version>4</version>)后面加入以下一行:<threadsafe>true</threadsafe>
2011-12-10 Update:
更新程序,天气邮件中的网址http://weather.terrynow.com改成各自的http://yourappid.appspot.com
说明:
1) 如果您部署本程序,如果修改首页,希望你能保留我的博客等版权信息和广告的内容(当然也不能强迫哈)
2) 现在程序默认总定制数是80个,单个用户的定制数是10个,考虑到总的邮件数是100,另外还有发送验证邮件、测试邮件或者发送错误重新发送等原因,总定制数为80,如果你要修改总定制数,可以搜索代码里出现的80的地方改成你想要的数字(少于100),单个用户的定制数默认是10,代码中可以改,或者到https://appengine.google.com后台,点击Datastore Viewer,找到Account下的账户,把slimit的数值,从10改成其他你想要的。
2011-12-9 Update:
- 更新代码修正有时无法查询天气的问题
- 更新代码修正只能发送测试邮件,无法定时发送的问题
- 可以用war包上传办法,从而不需要Eclipse了,详见最后的说明
自Google把免费配额降低后(一天只能发100封邮件),本人就打算放弃这个项目了,不过还是有很多热心网友一直询问进展,我也是忙着忙那,来不及管这些,不过zhen zhao 网友一直不懈努力,终于搞出来了,呵呵,可喜可贺,并把他的一路忙下来的教程发给我,让我公布到博客上,这里也感谢这位网友!
2、 http://www.eclipse.org/downloads/,下载Eclipse,解压到D:。打开d:\eclipse,运行eclipse.exe,点help菜单下的install new softwore,在work with 填写http://dl.google.com/eclipse/plugin/3.7,
(这里补充下,截图里的第三个GWT Designer for GPE可不用勾上)
(这里补充下,截图里的第三个GWT Designer for GPE可不用勾上)
2、 下载Google App Engine SDK for Java, https://code.google.com/intl/zh-CN/appengine/downloads.html,解压到D:
3、 下载weatherlib源代码(GoogleCode上的比较老了,请下载最新的,点这里),解压weatherlib。
4、 打开Eclipse的file下Import, 下一步。Browse找到weatherlib,点击finish。

新增的war包部署方法:
1)同样需要下载JDK,详见上面步骤的第一步
2)下载Google App Engine SDK for java 详见第三步
3)点这里下载代码后,解压找到里面的war包,距离war包的地址是D:\weatherlib\war
修改D:\weatherlib\war\WEB-INF\appengine-web.xml 把这里的
4)开始-运行-cmd
切换到你的Google App Engine的SDK的目录的bin下:
比如
C:\Documents and Settings\user>e:
E:\>cd appengine-java-sdk\bin\
E:\appengine-java-sdk\bin>appcfg.cmd update D:\weatherlib\war
根据提示输入用户名和密码就可以了
2011年11月22日星期二
免费天气预报被迫暂停
本站因为Google App Engine收费于2011-11-07暂停服务(免费版本只能每天发送100封邮件),后续如果能找到其他办法,定会再开启服务,感谢各位两年多来的支持!再会!
本站提供源代码,如有需要请自行研究部署,但限于本人精力有限,不提供war包或者技术支持,请谅解!
另外有人问如何部署,我建议参考Google的官方文档(Java版),比较详细
http://code.google.com/intl/zh-CN/appengine/docs/java/overview.html
另外有人问如何部署,我建议参考Google的官方文档(Java版),比较详细
http://code.google.com/intl/zh-CN/appengine/docs/java/overview.html
2011年3月4日星期五
Java判定文件编码或文本流编码并直接输出
主要原理利用JCharDet猜测文本流
JCharDet 是mozilla自动字符集探测算法代码的java移植,其官方主页为:http://jchardet.sourceforge.net/
网上找到的教程都是只探测编码,而一般的需求都是找到编码后,利用编码信息,把文本流或者文本再读取出来,可是问题来了,在探测编码后,JCharDet会读取一部分文本流了,不能再回过头去读文本了。可能的办法是再重新读取一次文件,或者再原来的其他操作得到一个新的InputStream,不过这样做总觉得不舒服。
其实可以利用BufferedInputStream的mark()和reset()方法(BufferedInputStream支持此操作):
mark用于标记当前位置;在读取一定数量的数据(小于readlimit的数据)后使用reset可以回到mark标记的位置。
测试代码如下:
public class Test {
public static void main(String[] args) throws Exception {
File file = new File("F:\\test.lrc");
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
CharsetDetector charDect = new CharsetDetector();
String encode = charDect.detectChineseCharset(in, 5120);
System.out.println("侦测到的编码: " + encode);
BufferedReader reader = new BufferedReader(new InputStreamReader(in,
encode));
while (true) {
String line = reader.readLine();
if (line == null)
break;
System.out.println(line);
}
reader.close();
in.close();
}
}
CharsetDetector类的代码如下(附带注释):
public class CharsetDetector {
private boolean found = false;
private String result;
private int lang;
/**
* @param imp
* 文本流需要封装成BufferedInputStream
*
* @param readlimit
* 探测的时候,最多用到多少,读到这个limit的时候就reset回去,供以后文本读取的方法读取,
* 一般测试下来5120应该就能检测出编码了,再多可能对性能有影响,
* 如果readlimit为负数,说明只要检测编码,不需要为BufferedInputStream mark,
* 不用文本读取,直接关闭流就可以了
*
* @param defaultCharset
* 默认的编码
*/
public String detectChineseCharset(BufferedInputStream imp, int readlimit,
String defaultCharset) throws IOException {
if (defaultCharset == null)
defaultCharset = "UTF-8";
if (readlimit > 0)
imp.mark(readlimit);
lang = nsPSMDetector.CHINESE;
// Initalize the nsDetector() ;
nsDetector det = new nsDetector(lang);
// Set an observer...
// The Notify() will be called when a matching charset is found.
det.Init(new nsICharsetDetectionObserver() {
public void Notify(String charset) {
found = true;
result = charset;
}
});
byte[] buf = new byte[1024];
int readRemain = readlimit;
boolean isAscii = true;
while (true) {
int bufLength = 1024;
if (readRemain > 0 && readRemain < bufLength)
bufLength = readRemain;
int len = imp.read(buf, 0, bufLength);
if (len == -1)
break;
readRemain -= len;
if (readRemain <= 0)
break;
// Check if the stream is only ascii.
if (isAscii)
isAscii = det.isAscii(buf, len);
// DoIt if non-ascii and not done yet.
if (!isAscii) {
if (det.DoIt(buf, len, false))
break;
}
}
if (readlimit > 0)
imp.reset();
else
imp.close();
det.DataEnd();
if (isAscii) {
found = true;
return defaultCharset;
} else if (found) {
return result;
} else {
String[] pc = det.getProbableCharsets();
if (pc == null || pc.length == 0)
return defaultCharset;
else
return pc[0];
}
}
}
2011年1月27日星期四
小谷音乐gcnplayer1.5赶在春节前发布
春节前的最后一次更新,更新日志
V1.5更新
1 增加播放列表和在线音乐的专辑图片显示
2 新增是否显示专辑图片设置,如果开启后拖动卡,可选择关闭
3 优化了通知栏
4 其他细节调整
V1.5修正
1 修正了暂停歌曲会将歌词滚动到最顶上的BUG
2 修正没有歌词时点歌词部位无法触发暂停功能
V1.5更新
1 增加播放列表和在线音乐的专辑图片显示
2 新增是否显示专辑图片设置,如果开启后拖动卡,可选择关闭
3 优化了通知栏
4 其他细节调整
V1.5修正
1 修正了暂停歌曲会将歌词滚动到最顶上的BUG
2 修正没有歌词时点歌词部位无法触发暂停功能
更新程序下载
2011年1月18日星期二
小谷音乐gcnplayer1.4发布,启用全新界面,增加桌面插件,优化代码,压缩体积
V1.4更新
1 启用全新界面
2 增加桌面小部件,可方便控制播放
3 优化了歌词滚动效果
4 丰富了歌词库
5 增加了歌词偏移选项,针对单个歌曲开始是否显示歌词选项
6 在线歌曲播放时增加缓冲百分比提示
7 进一步优化代码,压缩体积
8 其他细节调整
V1.4修正
1 修正了有时退出程序后,手机不会进入休眠
2 修正了暂停状态下拖动进度条歌词不跟随显示的BUG
3 修正Android1.6下Tab字体看不清的问题
4 修正默认不自动播放没有生效的问题
5 修正了首页歌曲排行显示20首歌后无法加载更多的BUG
更新程序下载(仅300KB):
http://www.hiapk.com/thread-872443-1-1.html
1 启用全新界面
2 增加桌面小部件,可方便控制播放
3 优化了歌词滚动效果
4 丰富了歌词库
5 增加了歌词偏移选项,针对单个歌曲开始是否显示歌词选项
6 在线歌曲播放时增加缓冲百分比提示
7 进一步优化代码,压缩体积
8 其他细节调整
V1.4修正
1 修正了有时退出程序后,手机不会进入休眠
2 修正了暂停状态下拖动进度条歌词不跟随显示的BUG
3 修正Android1.6下Tab字体看不清的问题
4 修正默认不自动播放没有生效的问题
5 修正了首页歌曲排行显示20首歌后无法加载更多的BUG
更新程序下载(仅300KB):
http://www.hiapk.com/thread-872443-1-1.html
2011年1月5日星期三
小谷音乐播放器gcnplayerV1.3发布
时隔一周,Android上的小谷音乐又更新到1.3版本啦!此次更新内容如下
V1.3更新
1 修改了界面布局和色调
2 更新了歌词展现形式(歌词滚动播放)
3 完善自动更新,能下载更新并自动安装
4 增加了自动播放时,阻止自动休眠的选项
5 其他细节调整
V1.3修正
1 在线音乐进入列表之后返回没有记住上一层的位置
HiAPK论坛发布地址:http://www.hiapk.com/bbs/viewthread.php?tid=820414
APK安装文件下载地址:http://2ml1sq.bay.livefilestore.com/y1pewjr0wMtkzadvju8Qt4kgDr3P2d96ifTmO4rF2yKzg-btzvcQtLhLofjaSY0GFelh_d1iKXkpgl-e0S_DALlnwAiTAmiq-_w/gcnplayerV1.3.apk?download&psid=1
1.2版本的用户也可用过“自动更新”来升级程序
上图:
V1.3更新
1 修改了界面布局和色调
2 更新了歌词展现形式(歌词滚动播放)
3 完善自动更新,能下载更新并自动安装
4 增加了自动播放时,阻止自动休眠的选项
5 其他细节调整
V1.3修正
1 在线音乐进入列表之后返回没有记住上一层的位置
HiAPK论坛发布地址:http://www.hiapk.com/bbs/viewthread.php?tid=820414
APK安装文件下载地址:http://2ml1sq.bay.livefilestore.com/y1pewjr0wMtkzadvju8Qt4kgDr3P2d96ifTmO4rF2yKzg-btzvcQtLhLofjaSY0GFelh_d1iKXkpgl-e0S_DALlnwAiTAmiq-_w/gcnplayerV1.3.apk?download&psid=1
1.2版本的用户也可用过“自动更新”来升级程序
上图:
订阅:
博文 (Atom)
Swift Hash&Convert,写了第一个Mac小程序
README Swift Hash&Convert https://github.com/yaoxinghuo/SwiftHash Hash&Convert app for Mac, for develop use, written in ...
-
根据广大网友要求: 1)天气预报的内容要写入主题,其实也是众口难调,所以更新了这部分由用户来选择。 2)需要管理定制列表,如取消定制、暂时停止、给定制加备注等,这部分由机器人来承担已经有难度了,而且会让机器人弄得很复杂,影响使用 所以我把这部分功能做到web上去了...
-
2013-1-23 Update: 网友需求,在邮件后面不要加上“管理订阅XXX”,我修改了一下代码,另外上传了一个weatherlib_nohelp.zip 也是在 同样下载的地方 。 2012-6-25 Update: 网友反映无法...
-
基于GAE的相册程序今天终于发布war包了,供网友们部署自己的网络相册,之前迟迟没有发布,是因为自己的一点点私心,想等自己的婚纱照第一个放上去,呵呵,所以等到今天了。 war包请在这里下载。 war包的WEB-INF/web.xml中有个地方有注释的,更改后可以设置当有人评...






