您现在的位置:首页
--> 其他
• RoR初学笔记
今天开始学习RoR,刚开始入门就遇到一些问题,记笔记如下。以下运行环境均为MacOS 10.6 + MacPorts 2.0.4,ruby为MacPorts下的ruby1.9.3-p125_0。 rails-3.2.3升级到rails-3.2.7的问题 由于教程使用的rails版本是3.2.7,而我以前安装的rails为3.2.3,于是想升级一下。 $ rails -v Rails 3.2.3 $ sudo gem update rails ... Successfully installed rails-3.2.7 gem报告已正确安装了rails-3.2.7,查看gem list的确也安装成功了: $ gem list --local ... rails (3.2.7, 3.2.3) 但运行rails的版本号还是3.2.3: $ rails -v Rails 3.2.3 百思不得其解。
希望能够给希望尝试Spark的朋友,带来一些帮助。目前的版本是0.5.0 Spark开发指南 从高的层面来看,其实每一个Spark的应用,都是一个Driver类,通过运行用户定义的main函数,在集群上执行各种并发操作和计算 Spark提供的最主要的抽象,是一个弹性分布式数据集(RDD),它是一种特殊集合,可以分布在集群的节点上,以函数式编程操作集合的方式,进行各种各样的并发操作。它可以由hdfs上的一个文件创建而来,或者是Driver程序中,从一个已经存在的集合转换而来。用户可以将数据集缓存在内存中,让它被有效的重用,进行并发操作。最后,分布式数据集可以自动的从结点失败中恢复,再次进行计算。
互联网中充满了具有创造性和实用价值的资源。照片、文章、音乐和代码都是非常好的例子。相对于自己创造轮子,寻找现有的资源和已存在的实现方法则更快捷,廉价和实用。 无论是否免费,这些资源通常以某种许可协议发布以确保公正的使用。在本文中,我们将介绍控制着版权和许可协议的基本原则。然后带着例子,着重探讨一些比较流行的发行协议。 版权和许可协议 当我们创造一些东西时-比如说图像-我们拥有它的版权,这是我们作为此作品的作者而独享的权利。我们同时控制谁可以使用我们的作品,以何种方式使用。比如我允许别人打印我的图像,或者用在某个艺术品身上。此时,我不是通过口头形式建立协议,而是以设定了特定使用规则的许可协议发布我的作品。有版权的东西有时候又被称之为”智力财产”。
数据挖掘、机器学习这些字眼,在一些人看来,是门槛很高的东西。诚然,如果做算法实现甚至算法优化,确实需要很多背景知识。但事实是,绝大多数数据挖掘工程师,不需要去做算法层面的东西。他们的精力,集中在特征提取,算法选择和参数调优上。那么,一个可以方便地提供这些功能的工具,便是十分必要的了。而weka,便是数据挖掘工具中的佼佼者。 Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化的,基于JAVA环境下开源的机器学习以及数据挖掘软件。它和它的源代码可在其官方网站下载。
今天晚上在大学街的意大利煎饼果子铺,我们几个人在聊Facebook的高管在做什么。几个细节引起了我的注意。CEO Zuck每年还是要Checkin一行代码的(显然这是一个象征性的动作),COO Sandberg每天都自己盯着解决几个用户的问题。这个小动作其实大有值得借鉴的地方。 每个人做任何事情其实都有至少两部分的力量:一部分,我做完了这件事情;第二部分,我向其他人发送了一个信号,说明了些什么。在自己一个人干活的时候,前者或许更重要,而当一个领导者,后者的比重越来越大,甚至变成最重要的部分。 如果CEO在写代码,哪怕只是一行,这明确的传达了一个信号。显然一家公司不会因为一个人写的一行代码有实质性的变化,但这个信号是如此明确,就是技术对于这个公司是重要的。这种态度是组织需要的。 COO把头埋下来,每天哪怕只解决一个问题,这也是一个信号。
• 实战遗留代码
什么是遗留代码?没有自动化测试的代码就是遗留代码,不管它是十年前写的,还是昨天写的。关于遗留代码,《修改代码的艺术》迄今为止依然是在具体手法上讲得最好的一本书。不过,这本书上来就直奔代码,还有一些东西是技法之外的。搭建基础设施做软件,没有自动化,基本上都算刀耕火织。关于基础设施,我曾写过一篇很长的文章,以我实际的一个项目为例,介绍了一些设施的基本样子。那篇文章很长,具体到面对遗留代码,有哪些特别之处呢?我们的目标是给没有测试的遗留系统增加代码,那么,那么增加代码覆盖率检查是一个不错的选择,各种语言都有自己的测试覆盖率方案。与单纯使用测试覆盖率不同的是,我们需要保证测试覆盖率只能提升,不能降低。所以,这里可能会略有一些开发的工作量。此外,遗留代码的质量往往不高,除了测试覆盖率工具,我们还可以引入各种代码检查工具,同时,采用同上面类似的做法,保证各种错误只能减少,不能增加。
背景 Spider位于搜索引擎数据流的最上游,负责将互联网上的资源采集到本地,提供给后续检索使用,是搜索引擎的最主要数据来源之一。spider系统的目标就是发现并抓取互联网中一切有价值的网页,为达到这个目标,首先就是发现有价值网页的链接,当前spider有多种链接发现机制来尽量快而全的发现资源链接,本文主要描述其中一种针对特定索引页的链接补全机制,并给出对这种特定类型的索引页面的建议处理规范用于优化收录效果。 当前大多数互联网网站以索引页和翻页的形式来组织网站资源,当有新资源增加时,老资源往后推移到翻页系列中。
(本文中所有汇编代码均采用Intel语法,即dest在左边) C++中的函数被编译成汇编代码的时候,必须遵循一定的规范,如参数怎么传递,栈指针怎么增减。Visual C++中,一共有5种情况: __cdecl __stdcall __fastcall __thiscall 默认情况下,是__cdecl。__cdecl 和__stdcall的区别是:__cdecl是调用者清理栈,而__stdcall是被调用者清理栈。所以,理论来说,__cdecl生成的代码体积会更大。但是,对于varargs函数,由于被调用者并不知道参数的具体长度,所以这样的函数只能采用__cdecl。
从上个月的最后一周(4月21日)到现在,我一直在做对flash的逆向工程,主要是使用IDA做静态代码分析。这方面我完全是外行,上次干这个还是在大3的时候,给宿舍用的电信的802.1x客户端做开源FreeBSD版。下面介绍一下中途遇到的困难以及现在的进展。 首先是用PEiD做壳检测,什么都没查到,我估计是因为PEiD很久没更新了。从PE Header中能看到linker version 是9.0,所以,如果它没有加壳的话,那么PEiD应该能检测到vc++ 2008的runtime才对。就我后续的分析来看,没有发现它带壳。所以这次的工作跟我上次做802.1x客户端相比,简单了很多。
不少中小外卖/订餐企业苦于如何寻找一套经济实惠的在线订餐系统,一套好的在线订餐系统不仅可以提升销量,而且能够提升企业形象,扩大网上订餐的市场占有率,抢占先机。市面上也出现了不少系统,在百度上可以搜外卖系统、订餐系统、网上订餐系统、在线订餐系统,通过这些关键词可以搜到很多系统,但是这些订餐系统不是功能欠缺就是价格太高。 我们应该如何挑选适合自己的网络外卖/订餐系统呢? 国内二三线城市政府也在积极推进电子商务事务,今年南宁市引进多个知名互联网企业入驻科技园,如知名网络社区猫扑网总部已到南宁高新区,预发力东盟电子商务市场。 在这些电子商务大佬们呼风唤雨的时候,一些更加细化的垂直电子商务也在生根发芽,迅速的生长。他们独特的用户体验在具有行业特点特别显著的领域打下了自己的一片疆土。
利用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。
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的目的是不同的。
以前写过一篇使用python爬虫抓站的一些技巧总结,总结了诸多爬虫使用的方法;那篇东东现在看来还是挺有用的,但是当时很菜(现在也菜,但是比那时进步了不少),很多东西都不是很优,属于”只是能用”这么个层次。这篇进阶篇打算把“能用”提升到“用得省事省心”这个层次。
估计以后也很少会再用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来说不能忍。
近来一段时间,忙于整理业务流程图,期间,关于流程图的绘制方法和工具也与内部团队和外部做了心得交流,恰好,个人生活也牵涉在买房,婚礼,户口迁移等流程中。不知不觉,伴随着实践与反思,个人所得的系统知识趋于完整,今儿天气极好,坐在飘窗一隅,听着间或几声鸟鸣歌唱,偶尔瞥一眼窗外的遍地绿荫,真真觉得是个写点什么的日子。所以就整理成文,如果恰好对你有所帮助,那是真真好的。真实整理的流程牵涉到公司未公布的计划,不好公开,所以在本文中会借助一个简单的案例替代(这个案例呢,也就是计划写本文前30分分钟才想到的,如有考虑不周,请各位见谅),但是仅传达概念和方法,倒也足够了。恩,甄環体告一段落,
• 为什么TDD?
1. 反映真实需求 这里存在先写测试和后写测试的区别。 先说后写测试。根据很多经验,在直接写产品实现代码时,需要考虑需求,同时需要兼顾实现的细节,用什么算法和语法。在对需求和考虑和实现细节间来回,很容易让人产生对其中一方的疏忽,遗漏掉一些需求方面,甚至在实现上存在缺陷。 有人会说我可以通过后写测试来保证。第一经验是,很多人都不会在实现完成后,补充测试,因为还有更多的工作和需求需要实现。第二是开发人员很容易在后补的测试中,只是试图去测试他已有的实现,而不是需求本身,很容易遗漏掉一些边界检查之类,在测试时,已有的实现细节会在脑子里面先入为主,即使实现存在问题或有漏洞,也很难在后补的测试中测出来。我阅读过很多面试者的测试代码,很明显都是后补的,因为一些很明显的问题没有测出来,甚至已经实现的逻辑也是只测试了一部分。而这些面试者都承认。
pytesser是一个用于图片文本识别的python模块:http://code.google.com/p/pytesser/,即从文本的截图中还原出文本信息; 网上在windows上安装、使用的资料比较多,而没有linux的资料; 作者虽然没有说明pytesser在linux环境下测试过,但也表示“The scripts should work in L...
• 销售员和程序员
一个销售和一个程序员一起去猎捕狗熊。 他们来到森林边的小屋,从车上开始卸东西,搬进小屋,准备接下来这一周在这野外捕熊需要的物品。销售很快就厌烦了这些工作,说: “咱们这么着,你继续卸物品,一切收拾妥当,我去找一只熊来。” 程序员一边叹气一边点头(他习惯了销售的这种行为),继续收拾东西,而销售很快消失在森林里了。 一个小时后,程序员差不多把四分之三的东西收拾妥当(小屋现在至少干净整洁了),正当他来到屋外时,突然听到一声咆哮。20米开外,灌木丛开始晃动。销售从里面冲了出来。紧跟在他后面的是一只巨大、咆哮着、流着口水、张牙舞爪的狗熊。它比一般的狗熊打两倍,而其非常非常的愤怒。 销售直奔小屋而来,熊就跟在他屁股后面,程序员迅速躲到了凳子后面,就在他要跑进门时,他突然往旁边一闪。狗熊与他擦肩而过,一头扎进了小屋,销售转身熟练的把门关上,把熊锁到了里面。
之前写过两篇关于MooseFS的相关概念以及操作管理的BLOG,我们可以看到MFS一些好的地方,比如:通过copy数来保证数据的可靠存,当MFS系统中有个别chunkserver宕机发生,也不会影响应用的正常使用;同时,相比ext3它还能节省存储空间。这里说到,“可靠”,并非这个系统就真的如想象一样,和NFS相比的确,多份copy确实可靠了不少,但是它们都有一个共同的问题,那就是主控server的单点问题。MFS系统中,即便有metalogger server的这个作为master的角色,但问题依然存在。下面就说说使用中的体会。问题:当mfsmaster主机发生问题,按照MFS系统的提供的故障切换方法,mfsmetalogger主机会被提升为mfsmaster,继续提供服务,服务是能够提供,但是,如果你真的实际操作过,就知道后续你要做多少动作。
HBase 中的LoadBalancer策略控制了如何在集群启动时Assign所有用户Region到各个RegionServer上,以及如何定期检查Region分布情况并重新调整Region位置的。这些工作在0.92之前的版本中都是在HBase Master内核中实现的,开发人员如果希望扩展自己的LoadBalancer插件,只能Hack源码,但这随着社区版本的升级,Hack工作必须移植到新的版本中。幸好在0.92版本中,HBase将LoadBalancer策略从Master内核中抽取了出来,开放了LoadBalancer Interface,允许开发者根据自己的业务特定扩展自己的LoadBalancer插件。
近3天十大热文
- [68] IOS安全–浅谈关于IOS加固的几种方法
- [67] Twitter/微博客的学习摘要
- [63] 如何拿下简短的域名
- [63] android 开发入门
- [63] Go Reflect 性能
- [61] find命令的一点注意事项
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 流程管理与用户研究
- [58] 【社会化设计】自我(self)部分――欢迎区
- [56] 图书馆的世界纪录
赞助商广告