技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

随笔分类 -  转载

上一页 1 ··· 3 4 5 6 7 8 9 下一页

函数式编程初探
摘要:http://www.ruanyifeng.com/blog/2012/04/functional_programming.html作者:阮一峰日期:2012年4月 6日诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。目前最当红的Python、Ruby、Javascript,对函数式编程的支持都很强,就连老牌的面向对象的Java、面向过程的PHP,都忙不迭地加入对匿名函数的支持。越来越多的迹象表明,函数式编程已经不再是学 阅读全文

posted @ 2013-08-27 12:40 codestyle 阅读(189) 评论(0) 推荐(0)

转:Reddit排名算法工作原理
摘要:http://www.aqee.net/how-reddit-ranking-algorithms-work/这是一篇继《Hacker News 排名算法工作原理》之后的又一篇关于排名算法的文章。这次我将跟大家探讨一下Reddit的文章排名算法和评论排名算法的工作原理。Reddit使用的算法也是很简单,容易理解和实现。这篇文章里我将会对其进行深入分析。首先我们关注的是文章排名算法。第二部分将重点介绍评论排名算法,Reddit的评论排名跟文章排名使用的不是同一种算法(这点跟Hacker News不一样),Reddit的评论排名算法非常有趣,它是由xkcd的作者Randall Munroe发明的。 阅读全文

posted @ 2013-08-27 09:32 codestyle 阅读(789) 评论(0) 推荐(0)

新浪研发中心: Berkeley DB 使用经验总结
摘要:http://blog.sina.com.cn/s/blog_502c8cc40100yqkj.htmlNoSQL是现在互联网Web2.0时代备受关注的技术之一,被用来存储大量的非关系型的数据。Berkeley DB作为一款优秀的Key/Value存储引擎自然也在讨论之列。最近使用BDB来发一个KV系统,并将这段时间的BDB的学习和使用经验记录如下。(项目中使用了BDB的4.8.30版本,本文所有涉及的具体问题都基于该版本)。1. Berkeley DB的简介Berkeley DB(BDB)是一个高性能的嵌入式数据库编程库(引擎),它可以用来保存任意类型的键/值对(Key/Value Pair 阅读全文

posted @ 2013-08-20 14:41 codestyle 阅读(588) 评论(0) 推荐(0)

[企业开源系列]后起之秀Facebook凭什么挑战互联网霸主Google?
摘要:http://www.csdn.net/article/2013-08-19/2816627-Facebook-Open-Source 阅读全文

posted @ 2013-08-20 09:27 codestyle 阅读(174) 评论(0) 推荐(0)

(2010-8-31) awk内存泄漏以及缓慢的正则表达式计算速度
摘要:AWK内存泄露:这几天本来就很郁闷,遇到搭建在hadoop平台上的hive平台有很多问题。写个好好的sql语句,总是说这个错误那个错误。然后,今天遇到一个更加郁闷的问题,居然分析淘宝数据的awk都运行不了了,出现了传说中的内存不足的错误。如下2个简单的awk语句:awk '{match($4, /(search.taobao.com.+uniq=seller.*)/,a); if(a[1] != null) c++;}END{print c}'awk '{match($4, /(search.taobao.com)/,a); if(a[1] != null) c++;} 阅读全文

posted @ 2013-08-19 10:46 codestyle 阅读(647) 评论(0) 推荐(0)

提高写代码的能力(转载)
摘要:http://blue-aj.blog.163.com/blog/static/709680201262510382587/提高写代码的能力(转载)首先让我们看一看刚入软件公司会出现的情况:1. 你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟)──别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心,对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。──如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点。同时要自已动手写自已的测试代码,而尽量 阅读全文

posted @ 2013-08-13 18:05 codestyle 阅读(520) 评论(0) 推荐(1)

云风:我所偏爱的C语言面向对象编程范式
摘要:面向对象编程不是银弹。大部分场合,我对面向对象的使用非常谨慎,能不用则不用。相关的讨论就不展开了。但是,某些场合下,采用面向对象的确是比较好的方案。比如 UI 框架,又比如 3d 渲染引擎中的场景管理。C 语言对面向对象编程并没有原生支持,但没有原生支持并不等于不适合用 C 写面向对象程序。反而,我们对具体实现方式有更多的选择。大部分用 C 写面向对象程序的程序员受 C++ 影响颇深。企图用宏模拟出一个常见 C++ 编译器已经实现的对象模型。于我愚见,这并不是一个好的方向。C++ 的对象模型,本质上是为了追求实现层的性能,并直接体现出来。就有如在 C++ 中被滥用的 inline ,的确有效, 阅读全文

posted @ 2013-08-06 09:29 codestyle 阅读(667) 评论(0) 推荐(0)

如何用googletest写单元测试
摘要:http://www.uml.org.cn/c++/201203293.aspgoogletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。本文包括以下几部分:1、获取并编译googletest(以下简称为gtest);2、如何编写单元测试用例;3、如何执行单元测试。4、google test内部是如何执行我们的单元测试用例的。1. 获取并编译gtestgtest试图跨平台,理论上,它就应该提供多个版本的binary包。但事实上,gtest只提供源码和相应平台的编译方 阅读全文

posted @ 2013-08-01 17:37 codestyle 阅读(521) 评论(0) 推荐(0)

groupcache-readme-go
摘要:http://www.csdn.net/article/2013-07-30/2816399-groupcache-readme-go 阅读全文

posted @ 2013-08-01 09:29 codestyle 阅读(189) 评论(0) 推荐(0)

软件的模块化开发
摘要:http://www.cnblogs.com/snandy/p/3189379.html什么是模块化模块化这个词最早出现在研究工程设计中的《Design Rules》,这本探路性质的书中。其后模块化原则还只是作为计算机科学的理论,尚不是工程实践。此时硬件的模块化一直是工程技术的基石之一。如标准螺纹、汽车组件、计算机硬件组件等。软件模块化的原则也是随着软件的复杂性诞生的。从开始的机器码、子程序划分、库、框架、再到分布在成千上万公里的互联网上主机上的程序库。模块化是解决软件复杂性的重要方法之一。模块化以分治法为依据,但是否意味着我们把软件无限制的细分下去。事实上当分割过细,模块总数增多,每个模块的 阅读全文

posted @ 2013-07-30 15:12 codestyle 阅读(388) 评论(0) 推荐(0)

ldd命令--查看命令依赖的库文件
摘要:.在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行;在Linux环境下通过ldd命令即可实现,在终端下执行:ldd /bin/ls //ldd命令通常使用"-v"或"--verbose"选项来显示所依赖的动态连接库的尽可能的详细信息。即可得到/bin/ls命令的相关共享库文件列表:libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000) libc.so.6 => /lib/libc.so.6 (0x40020000) /lib/ld- 阅读全文

posted @ 2013-07-30 13:42 codestyle 阅读(3683) 评论(0) 推荐(0)

链接
摘要:http://littlepig3056.blog.163.com/blog/static/180758353201152992934358/编译器在链接时优先在环境变量$LD_LIBRARY_PATH指定的路径下寻找,如果多个路径下都有需要的动态链接库,则且优先使用靠前的路径下的动态链接库一般默认的优先级是: /usr/local/lib /usr/lib /lib /lib64(实际上是一个链接符,指向/lib)strings /home/lxn/lib/libxul.so | grep keywords 使用模式识别出libxul.so中的字符串,并找出包含keywords的 阅读全文

posted @ 2013-07-30 13:29 codestyle 阅读(193) 评论(0) 推荐(0)

LDD命令--可执行文件依赖的库出现错误时
摘要:http://littlepig3056.blog.163.com/blog/static/180758353201212751814134/ldd 查看可执行文件依赖的库,结果会列出依赖的库名及依赖库所在路径ldd命令执行时,从环境变量LD_LIBRARY_PATH查找可执行文件链接的库。所以要让可执行文件链接到正确的库有两种方式:1. 编写setenv.sh脚本设置环境变量LD_LIBRARY_PATH 采用这种方式,要求每次启动新会话后,都必须执行source setenv.sh命令行,使得设置对于当前会话生效。2. 修改用户根目录的.bash_profile文件export LD_L. 阅读全文

posted @ 2013-07-30 13:21 codestyle 阅读(1593) 评论(0) 推荐(0)

开源日志系统 log4c 使用心得+总结
摘要:http://blog.csdn.net/sky_qing/article/details/7208645一、安装:我看网上好多人介绍log4c安装的时候都说有两个步骤:先下载expat安装包并安装expat,然后下载log4c安装包并安装log4c。这么看来,log4c是依赖expat的。但是有时候我们不想使用的日志系统还要依赖别的库,毕竟现在的开源日志系统很多,这样一来log4c就没有那么大的优势了。所以我仔细看了log4c的README文档,发现log4c模块默认情况下是使用expat库来作为XML文件的解析器(因为log4c的配置文件默认是一个叫log4crc的XML文件),我们可以在 阅读全文

posted @ 2013-07-29 18:31 codestyle 阅读(5171) 评论(0) 推荐(0)

/etc/ld.so.conf的使用说明
摘要:/etc/ld.so.conf这个文件记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib后没有指定 --prefix=/usr 这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib=================库文件的路径如 /usr/lib 或 /usr/local/lib 应该在 /etc/ld.so.conf 文件中,这样 ldd 才能找 阅读全文

posted @ 2013-07-29 17:47 codestyle 阅读(5651) 评论(0) 推荐(0)

在软件架构上增加新功能的注意事项
摘要:摘要:系统架构设计之所以难是因为变数太大,既要从用户需求角度考量,又要考虑自身设计的种种局限性。异构系统间的接口设计是尤其需要注意的,因此,架构师要从宏观的角度来规划整个架构,以下列出五点注意事项仅供参考。文章来源于DZone,作者Simon Brown分享了自己在增强软件功能的工作中得出的一些经验,详细讲述了软件体系结构同样也需要加强功能性,并列出了增加新功能时需要重点考虑的注意事项。(以下是编译内容)我们现在需要提升正在使用的软件系统,将新的功能添加到现存的一些使用案例中。可以想象,用户案例得以执行,主要是通过用户在Web应用程序中的多个网页的实践,而且最终步骤的修改也是建立在大量用户案例 阅读全文

posted @ 2013-07-29 16:36 codestyle 阅读(659) 评论(0) 推荐(0)

教你如何做需求调研:忽略极端情况
摘要:投递人itwriter发布于 2013-07-22 08:01评论(13)有1749人阅读原文链接[收藏]«» 英文原文:Not handling edge cases, making them explicit instead 写accidental entities系列文章之初,我们跟着一个顾问公司为一个汽车租赁公司开发一套软件。当时他们已经完成了新车注册部分的功能。计划中的下一步是让顾客能在系统中预订。 我们争取到了租赁公司的 CEO 抽出一小时时间给我们介绍预订系统流程。 CEO: 我想这个会议用不了一个小时。预订流程非常简单。你们对预订流程有什么看法?” Us: 阅读全文

posted @ 2013-07-29 16:35 codestyle 阅读(319) 评论(0) 推荐(0)

sort命令总结
摘要:功能:排序语法:sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件]参数: -b 忽略每行前面开始出的空格字符。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -c 检查文件是否已经按照顺序排序。 -m 将几个排序好的文件进行合并。 -M 前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t 指定排序时所用的栏位分隔字符。 -k 阅读全文

posted @ 2013-07-19 15:17 codestyle 阅读(366) 评论(0) 推荐(0)

Shell脚本调试技术
摘要:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调试机制和调试工具的支持,其输出的错误信息又往往很不明确,初学者在调试脚本时,除了知道用e 阅读全文

posted @ 2013-07-19 13:10 codestyle 阅读(251) 评论(0) 推荐(0)

解决SecureCRT中文显示乱码
摘要:操作步骤以下两步:远程linux机器。修改环境变量LANG。例如在~/.bash_profile里面添加[plain]view plaincopyexportLANG=zh_CN.UTF8重新登录之后生效。现在查看一下当前设置:[plain]view plaincopymyname@myhost~>localeLANG=zh_CN.UTF8LC_CTYPE="zh_CN.UTF8"LC_NUMERIC="zh_CN.UTF8"LC_TIME="zh_CN.UTF8"LC_COLLATE="zh_CN.UTF8" 阅读全文

posted @ 2013-07-15 17:12 codestyle 阅读(293) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 下一页