难道两年前我就预料到了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(8, 24));// 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.  
  40. } 

 

Google Reader还有三个半月的寿命

 

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

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

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

毕设来了

 

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

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

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

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

ASCII码介绍及ASCII码表

 

直接CP来自百科的介绍:

缩写:ASCII
英文全称:American Standard Code for Information Interchange
 
美国信息交换标准代码是一种用于信息交换的美国标准代码。7位字符集广泛用于代表标准美国键盘上的字符或符号。通过将这些字符使用的值标准化,ASCII允许计算机和计算机程序交换信息。ASCII字符集是与ANSI字符集中的前面128个(0-127)字符相同。
美国信息交换标准代码ASCII为"美国信息交换标准代码"十个字对应英文的缩写,ASCII文件是简单的无格式文本文件,可以由任何计算机所识别,Windows中的记事本及任何文字处理程序都可以阅读及创建ASCII文件。
在计算机中,所有的数据在存储和 运算时都要使用二进制数表示,同样的,象a、b、c、d这样的52个字母(包括大写)、以及0、1、2等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪个数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通讯而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了所谓的ASCII编码,统一规定了上述常用符号用哪个二进制数来表示。
 
八进制 十六进制 十进制 字符 八进制 十六进制 十进制 字符
0 0 0 nul 100 40 64 @
1 1 1 soh 101 41 65 A
2 2 2 stx 102 42 66 B
3 3 3 etx 103 43 67 C
4 4 4 eot 104 44 68 D
5 5 5 enq 105 45 69 E
6 6 6 ack 106 46 70 F
7 7 7 bel 107 47 71 G
10 8 8 bs 110 48 72 H
11 9 9 ht 111 49 73 I
12 0a 10 nl 112 4a 74 J
13 0b 11 vt 113 4b 75 K
14 0c 12 ff 114 4c 76 L
15 0d 13 er 115 4d 77 M
16 0e 14 so 116 4e 78 N
17 0f 15 si 117 4f 79 O
20 10 16 dle 120 50 80 P
21 11 17 dc1 121 51 81 Q
22 12 18 dc2 122 52 82 R
23 13 19 dc3 123 53 83 S
24 14 20 dc4 124 54 84 T
25 15 21 nak 125 55 85 U
26 16 22 syn 126 56 86 V
27 17 23 etb 127 57 87 W
30 18 24 can 130 58 88 X
31 19 25 em 131 59 89 Y
32 1a 26 sub 132 5a 90 Z
33 1b 27 esc 133 5b 91 [
34 1c 28 fs 134 5c 92 \
35 1d 29 gs 135 5d 93 ]
36 1e 30 re 136 5e 94 ^
37 1f 31 us 137 5f 95 _
40 20 32 sp 140 60 96 ‘
41 21 33 ! 141 61 97 a
42 22 34 " 142 62 98 b
43 23 35 # 143 63 99 c
44 24 36 $ 144 64 100 d
45 25 37 % 145 65 101 e
46 26 38 & 146 66 102 f
47 27 39 ` 147 67 103 g
50 28 40 ( 150 68 104 h
51 29 41 ) 151 69 105 i
52 2a 42 * 152 6a 106 j
53 2b 43 + 153 6b 107 k
54 2c 44 , 154 6c 108 l
55 2d 45 – 155 6d 109 m
56 2e 46 . 156 6e 110 n
57 2f 47 / 157 6f 111 o
60 30 48 0 160 70 112 p
61 31 49 1 161 71 113 q
62 32 50 2 162 72 114 r
63 33 51 3 163 73 115 s
64 34 52 4 164 74 116 t
65 35 53 5 165 75 117 u
66 36 54 6 166 76 118 v
67 37 55 7 167 77 119 w
70 38 56 8 170 78 120 x
71 39 57 9 171 79 121 y
72 3a 58 : 172 7a 122 z
73 3b 59 ; 173 7b 123 {
74 3c 60 < 174 7c 124 |
75 3d 61 = 175 7d 125 }
76 3e 62 > 176 7e 126 ~
77 3f 63 ? 177 7f 127 del

 

 

ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符
0 NUT 32 (space) 64 @ 96 、
1 SOH 33 ! 65 A 97 a
2 STX 34 ” 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 – 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 X 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 \ 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 ~
31 US 63 ? 95 — 127 DEL

 

 

NUL VT 垂直制表 SYN 空转同步
SOH  标题开始 FF   走纸控制 ETB   信息组传送结束
STX  正文开始 CR   回车 CAN   作废
ETX  正文结束 SO   移位输出 EM   纸尽
EOY  传输结束 SI   移位输入 SUB   换置
ENQ  询问字符 DLE   空格 ESC   换码
ACK  承认 DC1   设备控制1 FS   文字分隔符
BEL  报警 DC2   设备控制2 GS   组分隔符
BS  退一格 DC3   设备控制3 RS   记录分隔符
HT  横向列表 DC4   设备控制4 US   单元分隔符
LF  换行 NAK   否定 DEL   删除
Kernel首页换新颜

 

RT,kernel首页换了新主题,呃,从订阅里面看到的。

很多朋友可能没自己编译过内核,也对内核具体是个什么东东不是很了解。奶牛引用下wiki介绍:

内核(Kernel)在计算机科学中是操作系统最基本的部分,主要负责管理系统资源。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法,来完成这些操作。通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。 

严格地说,内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行;这样的设计,说明了设计者不希望提供任何硬件抽象和操作系统的支持;它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者写入在只读记忆体里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。

kernel.org是linux内核的维护页面,感兴趣的朋友可以去看看,话说linux kernel就跟赶着投胎一样,竟然都飙到3.8版本了….

Steam For Linux正版游戏大促销【2.5~5折哦,速度抢购咯】

 

好机会,Linux下的正版游戏平台steam for linux今日发布促销活动哦,折扣力度相当大,可见对linux正版游戏推广的用心良苦哇。而50%~75% OFF的促销觉得应该也比较罕见吧,游戏列表还是比较丰富的,并且steam很亲民的支持支付宝付款,相当方便。在游戏方面,很多游戏都是三平台都支持的,windows linux mac都跑起,比如cs source 即cs起源,估计全球攻势cs go也快了,奶牛继续等待,最近玩儿cs go很high哇,朋友们可以先入个cs source感受下,因为引擎差别不是太大,估计cs go到达steam for linux也指日可待啦。而且steam for linux对于ubuntu等系统的支持也是很不错的。

促销活动地址:http://store.steampowered.com/sale/linux_release?snr=1_41_4__42

活动截至时间:至 2 月 21 日太平洋标准时间上午 10 点

具体促销内容看截图:

 

CS:GO入手体验篇

 

说FPS类游戏,奶牛玩过的游戏不多,就拿cs1.6跟cf与CS:GO做简单的比较吧。

首先是画面,玩儿惯了cs1.6跟cf,一上手CS:GO真心觉得不习惯,因为画面太真实。街景的布置,光线什么的都蛮好的,回头看cf感觉就像在一个玩具场景一样,体验完全不一样。而且就分辨率而言,感觉cf就是渣,永远是800×640自动换,分辨率很别扭,虽然游戏中感觉不明显,但是系统的分辨率来回切真的好烦人。CS:GO则不同,分辨率完胜,自适性相当好。

说一下重力跟移动,cs1.6感觉重力还是正常的,cf总是觉得飘,就没有那种实实在在的感觉,虽然玩儿好点儿的都听脚步,但是还是觉得真实性比较差,而且游戏节奏偏快速。CS:GO的重力不仅是正常,连奔跑中的不稳定都能提现得很好,更增加真实感,在节奏调控方面也蛮好的,游戏节奏比较适中。

再就说武器了,CS:GO的武器变化感觉还是比较大的,而且武器真的需要重新适应了,像m4a4 ak47的射速跟威力,与以前的感觉有很大不同,可能是打cf顺手了,感觉CS:GO的射速偏快,威力偏小,估计可能是cf爆头率比较高的关系,一般上半身就算不爆头掉血也很多,CS:GO还没有太熟悉过来,不过因为场景太真实了,发现我辨别敌人的能力有些差,特别是雷达,有时候敌人出来了雷达还没反应,很纠结哇,需要适应。还有闪光,闪光简直逼真的跟神马似的,全屏白,不过躲闪会比较容易,背身就搞定了,手雷炸到就是半管儿血,还有燃烧弹。

投入方面:CS 1.6的时候纯盗版,cf如果是RMB玩家的话投入绝对相当大,CS:GO奶牛个人感觉投入一次真的还算值啦,而且现在半价,机不可失哇,乌咔咔~~~~

来吧,喜欢fps滴朋友都买起啦,咱组个战队神马的,虐下棒子鬼子神马的。

CS:GO限时半价,50元就可以买正版了,求战友组队

 

购买 Counter-Strike: Global Offensive

地址:http://store.steampowered.com/app/730/

周末特惠!2月12日 截止

-50%
$7.49 USD

可以支付宝付款。

奶牛已入,求给力队友一起玩儿哇,FPS爱好者有木有有木有?

 

蛋疼的godaddy

 

好吧,说说俺曾经很喜欢的godaddy,现在各种贵+各种麻烦了。

先说续费,从前的买一个月空间可以1.99刀注册或续费的优惠没有了

正常购买,用7.99优惠码,竟然还要手动设置付款为US刀,在右下角,否则不显示支付宝付款。

估计以后transfer会成为一种热潮。

附赠godaddy的优惠码一枚,com7.99:iapdom799t