IT技术博客大学习 共学习 共进步

技术文章

精选技术长文、实践记录与系统化阅读

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT 其他/ 2012-12-25 12:31:57 / 累计浏览 7,827

Python高效编程技巧

我已经使用Python编程有多年了,即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。这些年来的经历让我学到了很多的小技巧和知识,大多数是通过阅读很流行的开源软件,如Django, Flask,Requests中获得的。下面我挑选出的这几个技巧常常会被人们忽略,但它们在日常编程中能真正的给我们带来不少帮助。

IT 系统运维/ 2012-12-25 12:31:02 / 累计浏览 3,195

Node.js和testacular的安装与配置

这个问题起源于testacular的尝试,也算是顺便给我学习Node.js开了一个头。在次记录安装步骤以及安装过程中遇到的问题,备忘!

IT Linux/ 2012-12-25 12:28:46 / 累计浏览 5,886

linux 小技巧

​1:根据进程名显示进程号;2:如何限制用户的最小密码长度;3:如何使新用户首次登陆后强制修改密码;4:更改Linux启动时用图形界面还是字符界面;5:禁止在后台使用CTRL-ALT-DELETE重起机器;6:防止任何人使用su 命令成为root。等等。。。

IT 网络系统/ 2012-12-24 22:47:37 / 累计浏览 5,262

网络协议简介

这几天重温了一下网络协议,感觉有必要记录一下。首先就是对于现在而言,网络分为7层,第一层为物理层,往后依次是链路层,网络层,传输层,会话层,表示层,应用层,而一般情况下可以把会话层,表示层,应用层整体看作一个应用层,最为经典的案例就是ip协议在网络层,tcp在传输层,http在应用层。

IT 算法/ 2012-12-24 22:45:27 / 累计浏览 5,485

查找第K小的元素

感觉这是个经典问题了,但是今天看维基百科的时候还是有了新的发现,话说这个问题,比较挫的解决方案有先排序,然后找到第K小的,复杂度是O(nlogn),还有就是利用选择排序或者是堆排序来搞,选择排序是O(kn),堆排序是O(nlogk),比较好的解决方案是利用类似快速排序的思想来找到第K小,复杂度为O(n),但是最坏情况可能达到O(n^2),不过今天要说的,就是还有种方法可以使得最坏情况也是O(n)。

IT 其他/ 2012-12-24 22:43:04 / 累计浏览 6,990

字符编码和中文乱码小叙

记得刚使用ubuntu的时候,处理各种乱码神马的都是很麻烦的事情,后来开始写一些web程序的时候,中文编码的问题还是会不断的出现,于是对于web程序员来说,字符集编码已经是十分常见的问题了,但是如果不去系统的了解下,处理问题时还是会有些棘手的,这篇文章我就打算简单的介绍下这些问题。

IT 算法/ 2012-12-24 22:40:39 / 累计浏览 3,932

数论的应用-RSA公钥算法

先简单说一下公钥密钥的非对称算法的概念,平常我们用的加密算法往往都是对称的,也就是说加密密钥和解密密钥是一样的,比如凯撒密码,你把每个字母后移3位,a变成d,b变成e,这里3就是加密密钥,然后解密的时候前移3位,这时候3就是解密密钥,非对称加密顾名思义就是加密密钥和解密密钥是不同的,恩,数学就是能干很多神奇的事情啊。

IT 算法/ 2012-12-24 22:38:04 / 累计浏览 4,109

P和NP那些事

在计算机科学里,有时间复杂度的概念,然后就有P,NP,NPC,NP-hard的概念,平常大家说的这个题是np的,只能搜了,其实是理解错了np的概念,首先要明确np并不是“不是p”的意思,p大家都清楚是指有多项式时间的算法,而np看全称是“nondeterministic polynomial time”,是说非确定多项式时间,进一步说,正如图片上说的p是属于np的,所有p问题都是np问题。

IT 算法/ 2012-12-24 22:37:07 / 累计浏览 6,767

数据结构定义中的中(大陆地区)美差异

几日前在微博上和清华一博士讨论起一道数据结构选择题,我非常信心满满地给出了答案并且以为是对的,却发现和他给的标准答案相去甚远,去wiki和NIST网站查了一下才知道,原来中国大陆教材中的定义和美国以及我国港澳台地区是完全不同的.本科时用的数据结构教材虽然也是国外的,但是由于当时学习没有注意这些概念,之后就受考研时国内教材和考试的荼毒太深了.

IT 信息和交互/ 2012-12-24 13:35:17 / 累计浏览 3,012

交互模式之分页还是加载?

无论是在web页面还是手机应用,信息往往无法在一个页面全部展示,这就需要用到一些可以扩展页面信息的交互模式:分页(Pagination)和加载(Continuous Scrolling)。分页和加载都是非常常见的交互模式,我们每天都会遇到,也正是因为太常见,我们甚至感觉不到它们的存在,浏览到页面的底部时,看到分页就顺手点一下,自动加载了就继续阅读。但正是这小小的一点,也会带给用户很不同的微妙感受。下面就来聊聊这些小差异带来的大不同。

IT PHP/ 2012-12-24 13:34:44 / 累计浏览 5,168

Mcrypt响应慢的一个原因

上午的时候, 有同事来找我说上周新上线的一个使用mcrypt的脚本, 响应非常慢, 但是服务器的各项指标都正常, 不知道是什么原因.

IT 源码分析/ 2012-12-24 13:34:21 / 累计浏览 1,827

libmemcached的MEMCACHED_MAX_BUFFER问题

最近给服务增加了一个cache_put_latency指标,加了之后,吓了一跳。发现往memcached put一个10KB左右的数据,latency居然有7ms左右,难于理解,于是花了一些精力找原因。我分别写了一个shell和C++的测试程序。

IT 系统运维/ 2012-12-24 13:31:35 / 累计浏览 2,602

用msmtp代替系统自身的sendmail

sendmail是一个漏洞奇多、配置超级麻烦的东西,所以很多系统管理员都把它禁用了。但是如此一来,如果crontab脚本执行出错,就只有天知地知了。 sendmail有很多轻量级的替代,我之前一直在用ssmtp,但是这东西已经停止维护了,我在google 搜它的源代码都搜不到。于是我就只好找其它的替代,于是就找到了msmtp。

IT 发现/ 2012-12-24 13:29:37 / 累计浏览 3,748

为什么特斯拉是史上最伟大的geek?

Geek 们放弃了他们周围的世界,因为他们忙于焊接一个新的世界。 他们痴迷,很多时候,甚至受苦。 一百多年前,一个塞尔维亚裔美国科学家,名叫尼古拉·特斯拉,开始修补一些没有损坏的东西。 在那个时候,世界上大部分人还在使用蜡烛照明,一个被称为交流电的系统诞生了。到今天,这已经是地球上每个家庭的电力了。

IT 系统运维/ 2012-12-23 23:39:11 / 累计浏览 3,306

通过blktrace, debugfs分析磁盘IO

前几天微博上有同学问我磁盘util达到了100%时程序性能下降的问题,由于信息实在有限,我也没有办法帮太大的忙,这篇blog只是想给他列一下在磁盘util很高的时候如何通过blktrace+debugfs找到发生IO的文件,然后再结合自己的应用程序,分析出这些IO到底是谁产生的,最终目的当然是尽量减少不必要的IO干扰,提高程序的性能。 blktrace是Jens Axobe写的一个跟踪IO请求的工具,Linux系统发起的IO请求都可以通过blktrace捕获并分析。

IT 系统架构/ 2012-12-23 23:31:47 / 累计浏览 6,007

Ubuntu工作机使用FlashCache技术加速

Flashcache是facebook的一个开源项目,用于数据库加速中.大致结构,在传统磁盘前面放置一个ssd装置,充当缓存,把热的数据保持在缓存中,写的过程也是在先写ssd然后由ssd同步到传统磁盘.真正的数据最终还是保持在传统磁盘中.这样ssd杯掉也不用担心数据丢失.同时又可以有大容量,高性能的体验.

IT 算法/ 2012-12-23 23:29:43 / 累计浏览 6,526

正则表达式 — QQ微信、优酷前端 邮箱正则表达式验证 Bug

但凡稍微有点资历的程序员,都免不了要写正则表达验证算法。 最近见到好几个正则表达式的Bug,抽空写出来。 拿邮箱验证来说,网上绝大部分人写的邮箱验证正则表达式代码都不能验证这邮箱: i@julying.com,也不能验证 xxxxxx@i.com 。

IT 算法/ 2012-12-23 23:22:09 / 累计浏览 5,066

谈谈SVD和LSA

首先SVD和LSA是什么呢,SVD全称是singular value decomposition,就是俗称的奇异值分解,SVD的用处有很多,比如可以做PCA(主成分分析),做图形压缩,做LSA,那LSA是什么呢,LSA全称Latent semantic analysis,中文的意思是隐含语义分析,LSA算是topic model的一种,对于LSA的直观认识就是文章里有词语,而词语是由不同的主题生成的,比如一篇文章包含词语计算机,另一篇文章包含词语电脑,在一般的向量空间来看,这两篇文章不相关,但是在LSA看来,这两个词属于同一个主题,所以两篇文章也是相关的。

IT 其他/ 2012-12-23 23:19:41 / 累计浏览 6,608

HBase Thrift 接口使用注意事项

这里结合对HBase Thrift接口(HBase版本为0.92.1)的使用经验,总结其中遇到的一些问题及其相关注意事项。 字节的存放顺序 HBase中,由于row(row key和column family、column qualifier、time stamp)是按照字典序进行排序的,因此,对于short、int、long等类型的数据,通过Bytes.toBytes(…)转换成byte数组后,必须按照大端模式(高字节在低地址,低字节在高地址)存放。对于value,也是同样的道理。因此,在使用Thrift API(C++、Php、Python等)方式时,最好对于row和value都统一按照大端进行pack和unpack处理。

IT 设计思想/ 2012-12-23 23:18:50 / 累计浏览 1,725

微活动-微营销实例分析

“微博营销”自微博的媒体价值凸显以来,已经成为了产品运营推广中非常重要的一种营销方式,从话题营销到关系营销,从品牌推广到事件曝光,微营销已经无处不在,并且越来越容易通过SNS的关系,传播影响到用户的认知和情感。其中,“微活动”是微博营销中最简单直接的工具,下面结合对有奖转发的介绍,就商麦网在六一期间的微活动CPS效果进行简单的分析。