my blog my blog

Monthly 三月 2013
Gnome3.8已经发布

 

Gnome3.8已经发布,详细的发布记录可以看:https://help.gnome.org/misc/release-notes/3.8/

GNOME 3.8 的主要更新改进包括:集成应用搜索,隐私和分享设置,提醒过滤,新的经典模式,OwnCloud 集成,输入法整合,时钟、记事本、照片和其他应用的预览等等。

 

最近做的一些事儿

 

开学到现在是第四周了,不得不说,时间真得好快,我还没太缓过来。

最近奶牛挺充实的,经常去图书馆,从开学到现在已经啃了两本书了,都还不错的,跟大家分享下:一本是《JavaScript DOM编程艺术》,一本是《java web 开发与应用》,第一本比较出名,第二本是郭克华主编的,在豆瓣上竟然我是第一个评论的,好吧,但是那书还不错,可以让你对jsp有个基本了解,基本可以用。

因为毕业设计做一个在线管理系统,所以要学一些后台的东西,但是主要方向又是用户界面,好吧,啥都要学,最近打算看mysql的书,初步定《mysql cookbook》这本吧,图书馆没有,下了电子书,看标价120真的舍不得哇,现在的书好贵。

前端的bootstrap最近也在用,发现人家框架虽好,但是不可能完全用人家的框架哇,很多东西还是要自己做修改的,还有很多css要自己搞定,很多效果要自己写js实现,不过有个框架确实挺好的,因为很多东西自己设计出来毕竟感觉不如人家那个大方。

周五是开题,看样子好像只是走个过场,好吧,那就走个过场吧,不必太紧张,一周前开题报告就准备出来了,就呼呼啦啦说说就可以了应该,对于那个在线系统的技术实现,奶牛没有太大压力,虽然很多东西都要重新学,但是看到同组的一些人连开发环境还没配置起来呢,我也就放心了。(不许偷笑)

最近看电影少了,估计是春天还挺冷吧,最近手一直比较冷,大学就是一个摧残生命的地儿,好多生活习惯真的来到大学就又回去了。好吧,反正只有两三个月了,就这么过吧。

明天是个特别的日子:3月28日,不解释。

最近看开了很多东西,感觉自己还是踏踏实实的学技术吧,总是觉得自己的底子不够结实,有很多要学的。回想下大学,好像折腾了不少东西,能拿得出手的却寥寥无几。

现在生活挺充实,看书写代码,吃饭睡觉,cs go基本可以戒了,没有大屏幕,没有不掉线的网络,找什么枪感哇,毕业第一件事儿就是给自己弄个显示器。

好吧,就扯淡这些吧,最近用了下git hub,好吧,确实挺好用的,只是我真心写代码不多,不是毕设,估计奶牛用github都不会太多。有空把自己的github的东东整理下。

Bootstrap离线帮助文档下载

 

前几天大双评论说bootstrap很好用,看了两天,试了下twitter的这个web前端框架,果然灰常强大,很多东西直接套用代码就可以了,前端直接可以不用浪费太多时间去搭配css什么的了,当然,有能力的自己修改、配色什么的也当然是没问题的咯,反正css就放在那里,想怎么处置就怎么处置咯,还有一些js也包含在里面了,直接用就可以,省去我等js小白的麻烦。

今天发上来官方的帮助文档的离线文档,以后写东西就可以直接看离线文档了,不用开网页找了,页面跟bootstrap的页面完全一样的,因为是git clone回来的,嘎嘎~~~

打个小包发上来:

在线版本:http://twitter.github.com/bootstrap/

离线版本:点此下载

Java调用Apache commons codec实现md5加密

 

org.apache.commons.codec.digest
Class DigestUtils

java.lang.Object
  extended by org.apache.commons.codec.digest.DigestUtils

static String md5Hex(String data)
          Calculates the MD5 digest and returns the value as a 32 character hex string.

apache commons codec下载:http://commons.apache.org/proper/commons-codec/download_codec.cgi

实现方法:

  1. import org.apache.commons.codec.digest.*; 
  2.  
  3. public class md5another { 
  4.     public void md5create(String input) { 
  5.         System.out.print("32bit result:" + DigestUtils.md5Hex(input) + "\n"); 
  6.         System.out.print("16bit result:" 
  7.                 + DigestUtils.md5Hex(input).substring(824) + "\n"); 
  8.     } 
  9.  
  10.     public static void main(String[] args) { 
  11.  
  12.         md5another a = new md5another(); 
  13.         a.md5create("nenew"); 
  14.     } 

 

难道两年前我就预料到了Google Reader会挂么?

 我在2011年3月写过一篇: Feedly–Google Reader终结者http://www.nenew.net/feedly.html 没想到时至今日 居然变成真的了!难道我能神预测么? 哎 嘴欠啊!

已经习惯了GoogleReader,恐怕很难有代替的了。

java编程md5实现方法

 

毕业设计要做一个论文在线管理系统,所以加密这块儿呢,必不可少的,首选还是md5,md5一次加密现在也都有库可查了,所以打算采用二次加密,昨天找了下资料,发现java有专门的类可以来实现,奶牛不是搞算法那块儿料,所以算法实现的就不要看了。下面来分析下。

java.security
Class MessageDigest

java.lang.Object
  extended by java.security.MessageDigestSpi
      extended by java.security.MessageDigest

具体使用到的方法有两个:

  1. 方法:getInstance(String algorithm) 
  2. 描述:Returns a MessageDigest object that implements the specified digest algorithm.
  3. algorithm的可以使用值有:DSA, SHA-1, MD5, DES, and DES3 
  4. 详情可以看:
  5. http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#ProviderImplReq 
  6. 返回值: static MessageDigest    
  7.  
  8. 方法:digest(byte[] input) 
  9. 描述:Performs a final update on the digest using the specified array of bytes
  10. then completes the digest computation. 
  11. 返回值: byte[]  

首先用getInstance("md5")方法来选择md5加密,然后用digest(byte[] input)来得到加密后的128位密文byte数组,而我们平时看到的md5密文是32位或者是16位的,因此需要转换。直接用digest(byte[] input)就可以免去使用update(byte[] input) 的那步了。

digest(byte[] input)返回的是16组8位二进制数,需要转换为2位十六进制数,然后依次转换可以得到32位的md5密文,截取32位密文的8~24位即为16位md5密文。

具体实现代码:

 

  1. import java.security.MessageDigest; 
  2. import java.security.NoSuchAlgorithmException; 
  3.  
  4. public class md5 { 
  5.     public String str; 
  6.  
  7.     public void md5create(String input) { 
  8.         try { 
  9.             MessageDigest md = MessageDigest.getInstance("MD5"); 
  10.             byte b[] = md.digest(input.getBytes()); 
  11.  
  12.             int i; 
  13.  
  14.             StringBuffer buf = new StringBuffer(""); 
  15.             for (int offset = 0; offset < b.length; offset++) { 
  16.                 i = b[offset]; 
  17.                 if (i < 0
  18.                     i += 256
  19.                 if (i < 16
  20.                     buf.append("0"); 
  21.                 buf.append(Integer.toHexString(i)); 
  22.  
  23.             } 
  24.             str = buf.toString(); 
  25.             System.out.println("32bit result: " + buf.toString());// 32位的加密 
  26.             System.out.println("16bit result: " 
  27.                     + buf.toString().substring(824));// 16位的加密 
  28.         } catch (NoSuchAlgorithmException e) { 
  29.             // TODO Auto-generated catch block 
  30.             e.printStackTrace(); 
  31.  
  32.         } 
  33.     } 
  34.  
  35.     public static void main(String agrs[]) { 
  36.         md5 md5object = new md5(); 
  37.         md5object.md5create("nenew");// 加密nenew 
  38.     } 
  39.  

 

Google Reader还有三个半月的寿命

 

Google官方已经给出时间:2013年7月1日停止服务。

先把数据备份出来再找其它rss阅读器替代吧,真心习惯了greader了,用了快四年了,竟然忽然就告诉我们不能用了,呜呜好伤感。

这周还是要把开题弄出来,然后手动jsp写毕设吧,好多东西看似很简单,自己手写起来就各种麻烦了。

毕设来了

 

2013年的毕业设计,比以往时候来得更晚一些。认识的人早早的都拿到毕设题目神马的了,只有我们学校还迟迟的到开学才抽签选题目。学校压根儿就没安排神马实习,这是我觉得大学比较大的遗憾,哪怕实习水点儿也好哇,总比没有得强。

说说毕设,毕设选的嵌入式软件方向的宿老师,说真心话,大学里面论教学,我最喜欢宿老师的教学风格,有问题直接查官方文档,对于教学的内容也很好的把握,从基础开始,但并不缺少对于后期的一些提要,java课是我大学觉得最有意思的课。

毕设方向也是java相关的,可以选android应用开发,也可以选java web,奶牛想了不少,也开始看java web方面的书籍了,得寻思上手哇,然后js神马的后期也得学起,html5 css3的能用就用,咋说新东西还是会让人眼前一亮的吧。

只想踏踏实实的把毕设做好,大学就毕业了,总不想自己虚度最后的时光,浑浑噩噩混日子神马的是不可取的。