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

技术文章

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

技术文章精选

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

最新文章

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

IT JavaScript/ 2012-06-07 00:11:02 / 累计浏览 3,086

几种常用HTML5移动应用框架的比较

对于Mobile Web来说,现在是快速成长时代。由于采用了HTML5和CSS3技术,移动浏览器的性能加强了许多,同时,移动app的框架也扩展了,这意味着为移动设备创建丰富的互动的web体验的可行性又提升了。采用诸如PhoneGap这样的封装软件,您就可以使用native app Store以及单个代码库,就可以分布式部署iPhone,iPad和Android等不同的目标平台了。 对于Mobile Web的开发人员来说,切换框架代价很高:因为动画的转换,工具栏,按钮,列表的显示,以及线下存储等都很麻烦。因为大部分上述功能都是新技术,以及这些领域的技术还在迅速地改变。作者玩转了许多Mobile Web的框架并且对它们进行了分析比较,下面将为您讲解他的研究发现。

IT CSS/HTML/ 2012-06-07 00:10:27 / 累计浏览 3,634

Web设计师需要编程知识吗?

Web设计师是否应该学习编写代码是个充满争议的问题。通常,在完成了一件网页设计后他们把创建网页代码的繁重工作都留给了程序员们。这种现象不只出现在网络开发行业,在软件及游戏开发业也是如此。 在本篇文章中,作者Deepu Balan 和大家分享了一些为什么Web设计师需要学习编写代码的理由,这会使广大的Web设计师们受益匪浅。 Deepu Balan 是个自学成才的Web UI设计师和Web开发者,他对Web设计相关的工作充满热情,你可以通过他的Twitter@bdeepu来关注他。 我们假想一下,如果所有的Web设计师对开发一窍不通,而Web开发人员对设计一无所知,情况会有多么糟糕?偏偏我这样的怪人既希望网站能够设计得非常漂亮,运行也非常流畅。

IT 系统架构/ 2012-06-05 22:23:33 / 累计浏览 6,207

为什么我们要从 NodeJS 迁移到 Ruby on Rails

声明:这篇文章绝不是一篇讨论 NodeJS 和 Ruby on Rails 孰优孰略的檄文。它描述的只是我们做决策过程中的一些思考、决策背后的原因。两种框架都非常优秀,都出色的完成了它们的设计初衷,这也是为什么我们部分的模块仍然运行在NodeJS上的原因。 我是NodeJs的大粉丝,认为这是一项让人非常兴奋的技术,相信它会变的越来越流行。我对这项技术非常的欣赏——尽管我们最近把Targeter App从NodeJS迁移到了Ruby on Rails。 我们当时使用NodeJS开发它的原因很简单。我有一个程序包,能很快的将我们的应用弄上线(我们花了54小时做这个事情),相比起Ruby,我更常使用的是JavaScript。因为我们的技术架构牵涉到NongoDB,我的这些特长只有在NodeJS环境里才会有意义。然而,随着应用规模的增长,我认识到,选择NodeJS来实现这个应用是个错误的选择。

IT 其他/ 2012-06-05 22:22:23 / 累计浏览 3,873

通过eclipse调试MapReduce任务

利用MapReduce利器作开发,不论从思想上还是技能上都是新的体验。以下罗列下如何利用eclipse调试MR任务。 (本人环境:hadoop 1.0.2,部署在linux上,本地windows开发) 1、安装hadoop。 先在linux上安装好hadoop,为更接近线上环进,我的是安装成Cluster 注意要远程访问相关端口,conf/mapred-site.xml中localhost:9001中需要换成ip加端口。 sh bin/start-all.sh启动,先按文档命令行跑一下example的wordcount。

IT 设计思想/ 2012-06-05 22:14:38 / 累计浏览 1,645

技术人员说点产品

一直做技术,心血来潮,说点自己对产品的一些看法.现在lbs比较火, 然后到o2o,再到solomo.产品的趋势越来越 垂直化,社区化,标准化,个性化.关于个性化那如何能与上面的终端展现结合呢. 先想一个我的个人需求,一直以来,点评网虽然我是有目的是搜索我想要去的餐馆,但是不知道我想吃什么,于是我一般会在手机端用得较多,然后gps定位,然后做筛选,看评级和评论.很麻烦.试想:dianping我个人觉得它应该做下checkin和checkout. checkin与checkout是个粘住用户的手段,不是目的,最终的目的是挖掘出用户的行为,为个性化服务.想想,我每次checkin的都是川菜馆子,喜欢吃鱼,那么点评可以完全为我定制化一种符合我口味的推荐.那将是非常有竞争力的产品呀.如果把这块挖掘深了, 团购产品的决策人员应该不会那么费劲的去想今天应该为用户推荐什么了.

IT 用户研究/ 2012-06-05 22:09:26 / 累计浏览 4,048

用户访谈心得总结

  最近做了一些项目的用户访谈,总结出些许经验心得,这里先就一些访谈过程的关键点作为一个开头,后续再来补充其他技巧等方面,大家也可以共同补充,同时欢迎大家拍砖。   1.明确用研目的   研究目的是做用户研究首要需明确的问题。产品的需求是否可以通过用研来解决,如果可以解决,采用哪种方法,是定量还是定性,定性是座谈会还是用户访谈等等,这都要根据研究目的来决定。在明确目的这个过程中,与需求者的沟通是最为重要的环节,一定要确认自己的理解是否与需求者的目的一致。 2.对产品的熟悉和理解   如果所选择的用户是活跃甚至是深度用户,那么用户对产品的熟悉度和理解水平可能会远高于研究人员本身。所以,对产品的提前体验非常必要。比如之前做的一个项目,对iPhone朋友客户端进行用户深度访谈及可用性测试,那最基本的,就是要首先把iPhone朋友客户端所有功能界面仔细的体验一遍,不要遗漏任何细节,以免出现不知道用

IT Linux/ 2012-06-05 22:08:58 / 累计浏览 4,172

bash shell - sed, awk文本捕获及替换

bash shell虽然支持正则表达式, 但是正则操作却不大给力.看以下示例case需求.stream='background-image: url (a.jpg)asdfasdfasdf ;background:url(b.jpg);background'需要将背景图片内容a.jpg及b.jpg后追加一个签名串.sed替换不给力如果用sed, 替换是不会有问题, 但是要在一句代码里进行捕获多个图, 将进行替换, 查阅了相关的sed文档, 貌似是需求处理不了.

IT 编程语言/ 2012-06-05 22:08:18 / 累计浏览 2,388

让 Lua 支持中文变量名

在做策划表格解析的时候,我们希望可以在表格里直接填写一些脚本代码。我们的脚本语言使用的 Lua ,所以,直接填写 Lua 代码最为简单。但是,策划同学强烈需要在脚本中直接使用中文。而 Lua 原生并不支持使用中文作为变量名。一开始我们使用了一些变通的方案:比如建立一个字典,把中文词通过程序替换成相应的拼音。倒也能工作。 昨天在午饭途中的电梯里,我想到了另一个方案,用了一个下午实现出来验证可用。 修改 Lua 的语法解析代码,让其支持汉字并非难事。但我不太想通过给 Lua 打补丁,修改 Lua 语言的方式来做这件事情。即,我不想因为这个项目为 Lua 创造一门方言。但是,我们却可以把策划表格中填写的代码当成一种 DSL ,正如之前我实现的公式解析 那样。把这部分用 Lua 的方言来实现,把修改的影响减少到最小,而不蔓延到整个系统的实现语言中去,或许是个更好的方法。

IT MySQL/ 2012-06-05 00:09:47 / 累计浏览 1,948

MySQL数据库InnoDB存储引擎 Buffer Pool页面分配详解

 MySQL数据库InnoDB存储引擎  Buffer Pool页面分配(innodb_buffer_pool_size) 当用户需要读取一个在外存中的页面,或者是分配一个新的页面进行插入,就需要调用buf0flu.cc::buf_LRU_get_free_block函数进行页面的分配。一个完整的MySQL数据库InnoDB存储引擎页面分配流程需要包含以下几个步骤: 1.尝试从Buffer Pool的free list中分配新页面,大部分情况下,Buffer Pool的free list都是包含空闲页面的,因此直接分配即可。分配出的页面,需要从free list中删除。

IT 编程语言/ 2012-06-05 00:06:31 / 累计浏览 3,048

main函数的汇编代码

这篇文章展示了一些常见环境下main函数的汇编码,并简单的进行分析,内容比较粗浅。其实只要能完全理解栈帧的概念,不管将来遇到什么样的函数汇编码,都能轻松突破各种混乱的操作,找到其关键内容,这也正是本文的初衷。今后经过进一步的学习,我还将尝试完整地解析各个操作系统的可执行文件的内容,而不仅仅只是一个空的main函数。

IT 编程语言/ 2012-06-05 00:05:39 / 累计浏览 1,826

为什么不要在init和dealloc函数中使用accessor

Apple在Mac与iOS中关于内存管理的开发文档中,有一节的题目为:“Don’t Use Accessor Methods in Initializer Methods and dealloc”,文中说:“The only places you shouldn’t use accessor methods to set an instance variable are in initializer methods and dealloc.”但是并没有解释为什么。 下面这则代码说明了一种可能会引起错误的情况:父类在init中使用了value的setter,而子类重写了value的setter,而子类的init中会首先调用父类的init,这样就会导致子类value的setter会先于子类自己的init代码调用,就有可能会出现问题。这则代码就会在_info初始化之前进行操作。

IT 算法/ 2012-06-05 00:04:41 / 累计浏览 1,962

经典证明:几乎所有有理数都是无理数的无理数次方

    一个无理数的无理数次方是否有可能是一个有理数?这是一个非常经典的老问题了。答案是肯定的,证明方法非常巧妙:考虑根号 2 的根号 2 次方。如果这个数是有理数,问题就已经解决了。如果这个数是无理数,那么就有:            我们同样会得到一个无理数的无理数次方是有理数的例子。     这是一个典型的非构造性证明的例子:我们证明了无理数的无理数次方有可能等于有理数,但却并没有给出一个确凿的例子。毕竟我们也不知道,真实情况究竟是上述推理中的哪一种。那么,真实情况究竟是上述推理中的哪一种呢?

IT 算法/ 2012-06-05 00:03:17 / 累计浏览 2,369

趣题:构造多边形使得过边界上某一点的任意直线均能等分面积

    这是 2008 年莫斯科数学竞赛中的一个问题。构造一个多边形,使得这个多边形的边界上存在这样的一个点 O :经过点 O 的任意直线均会把该多边形分成面积相等的两份。这看起来不大可能对吧?但其实构造却并不困难。你能想出来吗?  

IT 其他/ 2012-06-05 00:02:38 / 累计浏览 2,090

聊聊Code Review

hopesfish评论《那一点的调用》时,问了一个关于Code Review的问题:想请教一下,TW的筒子是如何做code reivew或者鼓励客户做code review的?我在翻阅博主的帖子的时候,似乎对这块没有特别强调,而是更多偏重于TDD,我觉得TDD的问题是一碰到没有责任心的程序猿,就很容易流于形式了谈及TDD的好处时,其中之一就是随时随地的Code Review,所以,貌似TDD是不需要Code Review的。但实际上,TDD和Code Review是两个正交的维度,做TDD并不妨碍Code Review。这里就来聊聊我所在的项目是如何做Code Review的。我们有两种Code Review:Daily Code Review和Weekly Code Review。之所以有两种Code Review,因为每种Code Review的目的是不同的。

IT Oracle/ 2012-06-04 23:57:26 / 累计浏览 5,630

ORACLE最大可以存储多少数据量

今天有朋友在群里面讨论oracle数据库最大可以存储的数据大小,下面根据官方文档提供的相关限制,大概估算出来oracle数据库最多可以存储的数据量

IT 其他/ 2012-06-04 23:56:52 / 累计浏览 7,595

使用python爬虫抓站的一些技巧总结:进阶篇

以前写过一篇使用python爬虫抓站的一些技巧总结,总结了诸多爬虫使用的方法;那篇东东现在看来还是挺有用的,但是当时很菜(现在也菜,但是比那时进步了不少),很多东西都不是很优,属于”只是能用”这么个层次。这篇进阶篇打算把“能用”提升到“用得省事省心”这个层次。

IT 系统运维/ 2012-06-04 23:55:01 / 累计浏览 2,649

服务器间同步/镜像/备份配置备忘录

因为上了独服,就不能依靠VPS供应商的备份了,其实大部分经济型VPS都没备份的,但是人家硬盘起码是RAID1+0,就算物理故障了只要不太严重不是电脑爆炸硬盘全毁之类的还是能修复的。独立服务器就不一样了,为了省钱不上RAID,不租备份,所有备份都得自己折腾了,这些配置折腾起来实在烦人,还是得记下来省下以后再搜索的功夫。

IT 网络系统/ 2012-06-04 23:54:17 / 累计浏览 3,353

防DDoS脚本 in python

之所以被DDoS,并不是因为惹了疯狗被追着咬,而是因为VC悲剧之后流量全到simplecd来了。 不仅如此,一些笨蛋们在抓站,一些笨蛋们在用迅雷下载,100Mbps的端口居然已经满负荷运作十几个小时了,这是什么概念?100Mbps满负荷1天,流量就是1000G,这样下去不用多久,我就可以等着上百刀的罚单了,泪飙。 此外,100Mbps的速度使得硬盘都快转不动了,严重拖累网站的响应速度,卡得我欲仙欲死啊真是。想当年VC挂了一天,被抓站的家伙们搞得一个礼拜半残废状态(其中那些家伙包括我在内,汗)。simplecd就更支撑不了了。 事实上这种人肉DDoS比正常的DDoS更加难以区分和预防,不过也就只能尽人事,听天命了,参考一些文章写了个python的防止DDoS的脚本,加入cron每分钟执行即可。

IT 其他/ 2012-06-04 23:53:37 / 累计浏览 3,547

一年米国VPS使用经验总结

估计以后也很少会再用VPS,整理一下我用过的所有VPS吧。 申明:所有网速评价都是基于米国-米国(apt-get)、米国-澳洲(filezilla下载,VPN)的网速,到国内的网速我没有条件测试。 按时间顺序来: 1.mediatemple dv base: 50刀,20G硬盘,512M内存,1T流量,openvz类似 测试:性能unixbench4.1.2-wht得分为30分,限制inode数,限制tcp连接300,限制一堆 使用感受:一有点流量就挂了,内存完全用不到512M,在kmem里面限死了,能看到1G内存,但是永远别想用到哪怕512M;服务烂,support不太懂技术,只会敷衍,虽然是大公司,但是平均等候ticket时间还是有将近8小时,这对一个50刀的plan来说不能忍。

IT MySQL/ 2012-06-04 23:52:43 / 累计浏览 2,704

关于Infobright 的几种数据格式

如果大家用到INFOBRIGHT,对这个字眼就不陌生了。 目前有4种格式。 1. binary. 2. txt_variable 3. mysql 4. infobright 代表什么意思呢,我来详细解释下。