菁's profile贫瘠的沙壤地PhotosBlogListsMore Tools Help

Blog


    November 25

    我赖以生存的养分

    我貌似不太受老天爷眷顾(当然这得看怎么说了)。不过却有一些人,一直想着我。他们就是我继续活下去,继续努力的动力。

    谢谢一直以来圈养着我的爸爸、妈妈、爷爷;比我还着急的姐姐;同样帮我找活儿的Kevin、沙飞

    测试组里的大家,陪我聊到夜里3点的娜娜姐姐~~~

    谢谢大家,因为有大家的关心,我会变着法儿的,找辙继续死皮赖脸的活下去的~~~

    决定

    今天婉拒了某些人的好意。——其实,是不是婉拒我也说不好,因为我的态度还是很坚决的,再加之前面对于我BLOG的一些误会,而且我本身的语言表达能力有限,到底说清楚了没有,实际上给别人的感受是什么样的,我也不知道。

    直说吧,就是给我找工作。应该有人开始骂我SB了,别人上赶着自己还不识抬举- -!说真的,其实我自己也这么认为。不过在了解了那份工作后,我的心就不允许我接受这份工作了,不允许自己成为别人的累赘(这点可能是受我妈的影响吧,我妈就是个好强的人,虽然她其他的个性基本一无是处,也许我也是这样也说不定……)

    那个人就是我姐姐(一个干姐,但是比家里的任何亲人都更关心我,就拿这件事情上来说,她基本都为我想好了,从简历怎么写;面试应该注意什么;上班车程、路线,基本没有什么我可操心的了)和另一个人。我想我应该是让他们很伤心吧。在这向他们道歉了——对不起。

    November 24

    我的地盘儿,听我的

    BLOG是我的,我说了算……

    这里记录的每一件事都是我了解的或者经历的。

    我不会随便的评论我不了解的东西,也不会没有根据的胡说!

    但同样的,也不会因为需要顾及某些东西而盲目地寻求所谓的和谐

    在我看来,有些东西到了需要顾及才能维持的时候,就说明那些东西已不属于你了!

    塞翁失马,焉知非福

    本来是件坏事,但是没准结果是好的;

    但也有些,本来是件该让你觉得感恩的事,到最后却成了另一些样子。

    记得以前写过一篇《神啊……赐予我消停吧……》,没想到再一次被应证了……

    November 23

    新海诚

    新海诚的画风很招人待见……感觉上我看过的能跟他媲美的就是太空牛仔了……

    他的作品里貌似讲的都是时空对感情的影响,星之声最直白;云之彼端多少有点意识流,拿梦说事儿;秒速5厘米最好了,什么也不说,让你自己看。

    看贵树划地图,看他不断的换车,列车不断的停站,始终没有停下来的钟,车上越来越稀少的人以及在新宿车站洗手间里还眼神坚定的贵树慢慢的沉默下来。最后在信被吹走后,终于的崩溃了……当然,这还不算完,还有一个礼拜后的鹿儿岛搬家……

    如果没下雪,如果火车不晚,点贵树7点能准时到;如果信没丢;如果回程的车门再晚那么一会,等到明里鼓起勇气把信送出在关上……也许,结果就不一样了吧。也许就他们就会开始漫长的异地恋,最后因为双方都疲惫了而不了了之吧……这样就不会留下任何遗憾了,也就不会有什么可值得留恋的东西了。

    理智这个东西很正确,但是当理智打不过感情的时候,就会只剩下后悔了……有些东西虽然知道结果,但是还是不要给自己留遗憾的好。

    November 20

    不服不行

    觉得ACDSee看漫画不方便,于是乎自己开始瞎鼓捣……还不错,没用几天,就能出影儿了……不过出归出,其他的就都不行了……

    首先是内存,300多M的zip要用掉小100M的物理内存,小100M的页面文件。再看看ACDSee……不管怎么开都是30多M……

    再来是cpu……后台生成缩略图时,速度倒是跟A的差不多,A在这时候也会100%CPU占用,不过,人家不假死啊……我这个就跟MT似的……稍微动一动,就失去响应了。无奈,在后台线程里加了两句睡眠100毫秒……算是凑合顶过去了,不过速度又慢下来了。

    Acdsee果然不是盖的。现在用着的这个Live Writer还50多M内存,50多M页面呢……一个图像浏览、编辑软件竟然能控制在50以内……不服不行……

    PS:都说一次编写,到处运行;平台无关……其实说实话,如果想做到的话,真的很难……尤其是那些耗费资源的任务……就像上面说的生成缩略图……我如果换个顶级4核……可能根本不需要睡眠……不过我的2600+就要睡200毫秒;要是拿到p3 450上,如果不睡眠的话……很可能就永远的睡过去了……

    November 18

    老了

    正在下秒速5厘米——在2SIMPLE上看了介绍,貌似不错。比特精灵的边下边看很不错,看了个开头……

    看的是樱花抄……很唯美,有点像散文诗……

    不过,当发现这是小学生异地恋的时候……突然心里不自觉的生出了某种不齿。也说不好是因为小学生还是因为异地……也许还是小学生的成分多些吧……

    老了……思想开始向长辈们靠齐了……开始不能理解、开始忘了小时候的那些感情了……

    November 17

    以前做的一些东西

    • 简易4则计算器——完全模仿普通计算器,通过堆栈实现先×÷后+-的优先级:

    • 日历——没什么可说的,就是个日历:

    • 光盘离线文件列表生成工具——就是刻盘刻多了,管理用的,这个是嵌入式数据库版(用了HSQLDB和Hibernate),支持标签、支持备注详见这里

    • 跟上面那个一样,不过是用JAXB做的,持久化用的是XML文件
    • 连续文件下载工具——当时做主要是为了从在线漫画网站下漫画用的-_-!!!由于当时没有用SwingWorker(当时太小了,还不懂事*^_^*),所以点完下载界面就死了-_-!!!

    • 便笺——就是个简易的便笺

    • PangYa2一杆进洞计算工具——有阵同学玩这个,就写了个东西,帮他算……用了第三方的一个库,实现界面的透明(那个库用的是JNI实现,so:不跨平台)。

    • 拼图——能用mp3当背景音乐(用JMF实现的),可以自定义图片,可以定义拼图块数

    • 批处理版日程安排——用批处理写的,so:主要就是at命令了……

    • web版共享工具——其实就是提供一个上传下载、浏览图片、看flv的页面。最开始是某人想破解Wii Media Center X(某个wii和pc互联的程序,也是jsp写的)的某些限制,所以写的这个东西做替代,不过写着一半,某人不需要了,所以就没继续弄。

    • MaxthonSkinMaker-for-RC1——Maxthon的一个皮肤编辑辅助工具。支持拖拽、支持屏幕取色。

    • PNG图片透明度调整工具Demo——可以对特定的颜色或者整个图片进行透明度调整(Demo版,不能自己选图片)

    • 压缩包内(ZIP)图像直接浏览工具——本来想做个漫画浏览器,不过还没完成,现在顶多只能叫简易压缩包内图像查看工具
    November 15

    从压缩包内直接读取图像

    压缩包(这里主要指的是zip格式,rar由于算法受到保护,所以要相对他进行操作……基本上……很难)……好东西……能让硬盘装更多的东西(在我这里主要就是装更多的漫画-_-!!!)

    一般来说——要想看,先解压……

    有人说了:不对啊,Winrar、zip都不用解,直接双击就能看内容啊……其实他也解了,解到temp下,尤其是winrar……会把整个包都解掉,winzip只会解用到的(所以有时候在winzip里直接打开需要库(或其他)文件的程序时,会出错,winrar就不会)。包括acdsee貌似也会先解压……再让你看……

    这个过程先要写磁盘、然后再读磁盘……速度就不说了……

    大家都知道,利用zip包和io包可以进行文件(字符流、字节流)的直接读写(不知道?!那算了,当我没说)……

    但是对于图像文件来说。貌似这两个包里没有提供直接的读取接口(可以用字节流来读图像文件,然后从字节流写到变长数组流里……在用数组生成buff图像?!不对吧……那样读出来的是图像文件的字节数组、不是图像的字节数组……),API中大多数的图像接口都是File或者字节数组……常用的buff图像、图像图标(一般常用的就这俩吧,我是不是露怯了,反正我平时基本用不到其他的- -!)都没有提供数据流的输入输出接口。

    如果图像文件也能像其他文件一样,不写读写硬盘,直接在内存中操作就好了。这样对读写速度应该有帮助(反复读写除外,那样还是先解压到硬盘来的方便些,省的每次都解压一次。)

    其实javaSE还是给我们提供了这样一个读写接口的……只不过不在image包中、不在io包里更不可能在zip或者swing包里(貌似是废话- -!)……这个包叫:javax.imageio

    有了包名,我就不用再废话了吧……完全可以查API搞定了……

    要是还不太明白的话看看这个demo:

    import org.apache.tools.zip.*;
    import javax.imageio.*;
    import java.io.*;
    import javax.swing.*;
    import java.awt.*;
    import java.util.*;
    public class Main{
        public static void main(String[] args){
            File zipFile =new File(args[0]);
            JFrame f=new JFrame();
            Container c=f.getContentPane();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setLayout(new BorderLayout());
            JPanel p=new JPanel();
            JScrollPane sp=new JScrollPane(p);
            c.add(sp);
            sp.setPreferredSize(new Dimension(640,480));
            p.setLayout(new FlowLayout());
            try{
            ZipFile zip=new ZipFile(zipFile);
            Enumeration<ZipEntry> e=zip.getEntries();
            //int i=0;
            while(e.hasMoreElements()){
                ZipEntry entry=e.nextElement();
                if(entry.isDirectory()){
                    //System.out.println("忽略目录文件:"+entry.getName());
                    continue;
                }
                InputStream in=zip.getInputStream(entry);
                Image img=new ImageIcon(args[1]).getImage();
                Image im=ImageIO.read(in);
                img=im==null?img:im;
                //System.out.print(im==null?"这不是图像文件,路径:"+entry.getName()+"\t编号:":"");
                ImageIcon ico=new ImageIcon(img);
                JLabel l=new JLabel(ico);
                p.add(l);
                in.close();
                //System.out.println(i++);   
            }
            zip.close();
            }catch(Exception e){
                e.printStackTrace();
            }
            f.pack();
            f.show();
        }
    }

    手写的,没用IDE(用的JEdit,这软件不错,纯java写的……推荐……),所以有点乱,凑合着看吧……

    对了……如果读写的zip文件有可能出现非英文字符的话(中文、日文、阿拉伯文、盲文什么的- -!!!),那么建议不要使用util下的那个zip包,那个容易出乱码……可以用ant里的org.apache.tools.zip包替代……这个不会出乱码。

    November 13

    刚刚打了场仗

    给锈豆洗澡……

    太累了……劳神……谁说人多力量大来的……胡扯……

    碎碎平安

    碗摔了……刚买的微波炉碗……两套……10个……一个没剩……

    那叫一个清脆……那叫一个壮观……光扫地就扫了半天……盛了满满两簸祁……

    有点心疼……倒不是多少钱……就是挺可惜了的……

    都说碎碎平安……不过我怎么一点平安的氛围也没感受到呢……神啊!赐予我消停吧~~~~~

    做好了

      终于做好了,忒不容易了。前后大概出了4个版本——

    XML的(文件不大,程序也小,速度挺快;就是标签的实现有点麻烦)、

    db4o的(对象数据库,不用映射了;不过db4o本身不支持无限级操作,对于基本全是不确定深度树形结构的应用来说,有点痛苦)

    javaDB的(甭提了,最失败的一个:本身javaDB就很大,又不象前两个一样不用映射,所以还要加个hibernate。数据的保存形式也不是文件,而是个乱七八糟的文件夹;在mysql上运行得相当好的代码,到了JavaDB上就老说数据库已关闭……运行的豞慢不说,硬盘还狂响)

    HSQLDB的(这个还行,用了Hibernate,所以体积没降下来,不过借助这个宝贝,让映射变得嗷嗷容易,比xml那个容易多了。速度也说得过去)

    在ubuntu和win下试了试,还不错。都能启动(我的要求其实不高-_-!!!)

    ubuntu下启动画面不支持透明,在win下倒是可以。

    ubuntu下还有一点,就是路径问题。如果用右键里那个java选项启动的话,默认路径是在home\用户名下,这样的话,就会在那里新建一个数据库……@_@看来linux离桌面系统还很远。细节上差得很多。在linux下还是终端更方便一些……

     

    其实最开始就觉得手头缺这么个跨平台,好携带的光盘列表工具……

    想随便做个自己用的就好了,甚至不需要多规整的GUI……写十分钟、20分钟就能拿起来用的最好。结果做着做着,就发觉以前的东西不够用了……还买了本hibernate的书……-_-!!!

     

    晒一下界面(相当的简陋)~~~~

    win2003 SP2下效果:

    Snap1

    Snap2   Snap3 Snap4 

    ubuntu下效果(由于GUI是Swing的,基本没有什么差别):

    Snap5 Snap6

     

    最后……给个下载地址吧(有兴趣的可以拿去玩玩):

    PS:发现Live Writer确实比web界面的方便好多……看来要bs完全取代cs还应该会经历一段时间……

    唉……这么好用的客户端,为什么不让在win2003下装呢……只能用所谓的“绿色版”不爽……

    November 10

    用HSQLDB作为嵌入式数据库

    最开始打算用JavaDB的……结果在MYSQL下运行的好好的程序(别人都用嵌入式给server做测试,我正好反过来-_-!!!~~不图别的,就图MYSQL有个GUI的界面,容易看结果),在JavaDB下连连报错——经常提示数据库已关闭,读写的时候硬盘狂响,速度也和MYSQL没法比……

    有本Hibernate的书里面附赠了个HSQLDB,1.7.3版的……比JavaDB小得多(据说还有3种模式,经常被用来做单元测试),决定换上那个44……

    改了一下xml文件……启动,小小的试了一把……不错,速度比MYSQL还快(网上说,貌似是因为默认是运行在内存模式的,只有关闭后才会持久化)。决定用这个了……

    本来以为世界太平了……谁想到,重启程序的时候又报错了……说数据库正被使用!!!!这也太没天理了,上个进程都关了……哪来的使用啊……用了小1个小时查程序……也没发现没关掉的session……

    没办法,去下个新版看看吧,没准是bug呢……下了个1.8.0.9的……换上、启动、保存、重启……还是报错……而且连刚才的数据都没保存……简直就是一个内存模式@_@……后来发现,如果对数据库操作后,呆上一段时间,还是可以保存的-_-!!!~~~这叫什么事啊……本地数据库,保存还有延时……

    高的不行,往低的换,又上官网下了个1.7.2……比1.7.3好点,不是每次重启都报了,但是还是会偶尔报错……这也太郁闷了,难道HSQLDB的进程模式是个摆设?!

    官网又看了看,全英文的,基本不懂……而且介绍进程模式的也没几行字……大部分都是server模式的……于是又只能google了……20分钟后,大概找到问题了:据说HSQLDB在进程模式下其实也是运行在内存模式中的,在关闭时,再把数据持久化到硬盘上。而从1.7.2开始,进程模式下即使所有链接都关闭后,数据库仍然不会关闭……这时候如果直接退出进程的话……数据就得不到保存(其实1.7.X还是保存的,只不过重启的时候提示另一进程正在使用数据库,数据库被锁定。再启动一遍就行了-_-!!!),重启的时候就会提示有另一进程在访问数据库。

    问题找到了,就好办了……又找了找,说可以手动的在命令行或者程序中输入shutdown来关闭数据库。方法倒是简单,可是本来用hibernate封装的好好的程序里……突然冒出个直接数据库链接来……也太!~@#¥#%了……

    翻来翻去,最后在一个翻译网站上(很诡异的地方-_-!!!)找到了满意的答案:在配置文件的connection.url中加参数shutdown=true(就像JavaDB要加create=true一样)。

    重新打包,测试……一切正常~~~~