Category: Uncategorized

有关hash的胡言乱语

连续两天看了Hash相关的内容。包括hashcode,md5,sha-1,crc32,hmac,hmac-sha,以及java的hashmap实现过程。并尝试自己实现MD5,最终发现如果不参考已有的代码,还是很困难。 MD5: 无论原文多长,或者文件多大,生成的摘要信息永远都是128-bit。通过对实现过程的观察和研究,简单描述md5的实现过程: 将原文或源文件转换为bit数组,先进行补位.补位的目的是为了让整个bit数组的长度对512取莫,余448.(The message is “padded” (extended) so that its length (in bits) is congruent to 448, modulo 512. ),具体补位的规则则是按1 0 …0的方式来补。这是第一步补位。 依然补位,讲原数据的bit数组的长度补位到bit数组中。当然数组的长度本身就是个变量,具体padding的规则: A 64-bit representation of b (the length of the message before the padding bits were added) is appended to the result of the previous step. In the unlikely event that b […]

Read More…

lt-1 —-two sum

我的解法: public class Solution { public int[] twoSum(int[] numbers, int target) { HashMap hm=new HashMap(); for(int i=0;i<numbers.length;i++){ if(hm.get(target-numbers[i])!=null){ int r2 = (Integer) hm.get(target-numbers[i]); return new int[]{r2,i+1}; }else{ hm.put(numbers[i], i+1); } } return new int[]{-1,-1}; } } note:用了hashmap,做快查。 这个题有几个坑儿: 1.最直接的解法就是嵌套循环,时间复杂度问题,会报TLE。犯了这个错后,仔细思考,只能做一次循环。那就需要有个临时存储的敌方—>hashmap,边存边计算。 2.返回的index,第一个比第二个小。 所以需要注意hashmap.get(target-numbers[i])是第一个,而i+1才是第二个index 3.input中的数组中,如果有两个相等的数字,那么怎么返,其实题目中并没有要求这种情况下,一定要返第一个index,只要求 返的两个index,第二个一定得比第一个小。开始做了多余的剔除判断,反而在[0,4,3,0],0的输入下,出错。  

Read More…

一个关于在线写作教育的创意

看了批改网(pigai.com)的一些功能后,想到一个业务模式: 做一个在线写作的批改指点的网站: 1.利用自然语义分析,找出问题,给予写作意见。少量收费。比如一篇1块。 2.找到有经验的老师合作,1对1批改。 收取一定的费用。比如一篇50块。   目标人群: 考四六级的学生,考雅思、GRE的朋友。 ps,听说读写四个方面: 比较难提高的写作和口语,口语已经有了相应的模式(电话口语),写作这个市场还缺相应的好的模式,或许这个模式可行,也许值得一试。

Read More…

浏览器真是树大招风

浏览器真是树大招风,刚刚发布的4.2搜狗浏览器正式版,都还没给老版本的用户推升级提示,只是在官网提供了下载链接,可马上就有人测试新版的功能了。一旦抓到漏洞,马上放到网上,并有开始要恶意宣传的意思。恩,对于浏览器的技术人员绝对是挑战,每一个功能,每一个细节都得做到万无一失。但即使如此还是会出现各种奇葩的问题,神马 DNS劫持,神马网络不通,神马智能填表偏差等等。 另,所谓的视频地址:http://v.youku.com/v_show/id_XNjMwNjYwOTA0.html,不过视频中有几个地方有剪辑,这个证据也不那么有说服力。不知道除了360的测试人员外,其他人还有再现出这个问题么?!   不过话说回来,智能填表这个功能,我还是不太喜欢。  

Read More…

和外行沟通的困惑

{1 Comment}

恩。无论是chinese还是 澳ese,只要是外行,尤其是那种特别特别外的外行,沟通起来就有问题。对方无法理解,做同样的东西,为什么有的需要几万,有的需要百万。而你无法解释说明白。因为你不知道该如何解释 服务器,无法解释 语言,无法解释为什么你做的质量就高。因为看着大家都一样,而且外行会以外行的角度去比较,xxx做的更漂亮,更便宜。之前你们做的没觉得有特色,反而一个做的很垃圾的站,别人反而会觉得好。 或许这就是做技术的人的天性— 真是懒得说下去。。。。。。。 话说回来,也许人家就想要个披着华丽瓷砖的草屋,而不是一个地基深厚的建筑。普通人还能理解土木中的地基,却无法理解软件工程中的质量和基石。这也是为什么在传统软件行业中,售前、销售比技术更重要,因为需要向你的外行客户们 解释清楚软件的价值。从整体来说这有点本末倒置,销售反而成了最重要的一环,这或许就是整个软件行业现在发展滞后,且越来越滞后的原因。。。。。 恩,即使ibm,oracle,sap也好不到哪儿去,看着他们越来越捉襟见肘的财报,也可见端倪了。 恩。最后不得不说互联网的意义是多么重大,尤其对于网络的价值,信息的价值,科技技术、技术人才的价值以及意义,都可以被正确认知,这也是目前it行业发展的源动力。sign,就算是业内的流氓大佬公司,内部的技术人员的薪水之高也让各种传统软件行业望尘莫及。恩,或许传统行业也需要变化了…….

Read More…

写js的可能规范

看了几眼书,利用jquery写了大约200行js代码,做了个chrome插件。有一点感受。写下来,甚至可能是错的。 如果打算写一个js的库,无论是基础的工具库还是基于业务的业务逻辑库。那么大约应该遵从以下的规则: 1.不要大量使用全局函数,可以定义1-2个全局函数作为整个库的入口。 2.尽量使用prototype来定义函数。 3.对this的使用,如果不使用jquery,需要注意this的意义。 4.document的事件机制尽量使用class后绑定。而不直接使用。 5.适当的使用闭包。(还没找到合适的使用时机。。。。) (未完待续…..)    

Read More…

wordpress建站

不会php,但是决定使用wordpress, 没别的原因,完善的社区,数以亿记的个人站成功案例,数不过来的插件库。个人小站的不二之选。 一个小插曲,安装插件时,碰到一个小问题。不知道之前怎么解决的了,重新google了把,倒是很容易找到答案,写出来,做个记录。 安装插件时需要ftp服务器的信息,本来就觉得奇怪,大名鼎鼎的wp,怎么会让使用者自建ftp服务呢。自己本来臆想也许wp是太老了,那个时代ftp还是比较盛行的,后来使用upload上传插件文件时,依然是这个提示,明显就不对劲了。查了下目录,插件文件已经成功上传到服务器了,但wp还是需要ftp的用户名和密码信息。google后有不少种方案,只把自己用的描述下: 大概原因是php进程的用户和wp目录的用户并不是同一个用户,导致wp进程无法操作上传的插件文件。知道原因后解决起来也方便,直接把wp的目录,文件全部修改为777,发现还是不行。这个可能是wp自己做了一些安全限制。恩。之后在wp-config.php中增加 define(“FS_METHOD”, “direct”); define(“FS_CHMOD_DIR”, 0777); define(“FS_CHMOD_FILE”, 0777); 之后,一切顺利~      

Read More…