大染志

想要玩得很 High 的程序员


  • 首页

  • 归档

  • 标签

  • 关于

  • 知识图谱

《大数据》读后感

发表于 2013-03-14 | 更新于: 2013-09-01 | 分类于 我说 , 读后感

两周前,我拿到了从日本买的Kindle PaperWhite,买这个东西最主要的原因是因为是希望自己可以多读一点书,当然还希望眼睛可以不受什么伤害。然后用这个东西读完的第一本书便是《大数据》。
没读之前,想这本书可能讲的是,教我们如何在当今这个时代,开始去挖掘、使用身边的各种各样的大数据,并从其中发现商机。但其实这本书主要讲的是全世界那些成功使用大数据的实例,我们可以看到很多商业公司利用大数据给用户提供了分析和预测的功能,并创造出很大的商业价值。此外我们还可以看到不少政府机构或者其他一些组织也在开始大数据解决他们遇到的一些问题。在本书的最后一章,作者告诉了我们大数据可能带来的坏处。如:通过大数据可能我们的个人各种信息、隐私会很容易地被大数据的拥有者找到,这些信息,可能被政府用来监管我们等;通过大数据可以预测可能发生的事,或者预测我们人个人本书即将做的行为,书中有个例子:警察通过大数据分析得出一个人即将可能犯罪,并把它逮捕了,但事实上这个人现在并没有犯罪。也许这就限制、约束了我们个人的自由。
看完这本书,颠覆了自己之前的一些想法:

  • 以前我们认为错误的数据是没有用,我们需要保证统计的数据的准确性,但是在大数据中,错误的数据也是有用的,它和其他所有相对正确的数据一起构成了整体,也就算不了什么了。我们同样可以从这些数据中得出比较正确的预测和分析。
  • Google利用人们搜索的关键字来预测和判断某个地区是否发生流感,Google通过分析这个地区的人们搜索和流感有关的词的数量等来分析得出。
  • Google 从互联网抓取数以亿记的各种语言、各种翻译水平的翻译结果,使用其翻译出来的准确率比那些微软使用正确的词库翻译出来的句子准备率更高。
    这样的例子在书中还有很多,这里不再列举。

我自己的感想是,其实大数据无处不在,只要我们细心,我们就可以挖掘出身边的那些大数据,并做一些有意义的是,就像书中说的那样,我们不需要强求每条数据都那么真实准确,但是从大量的数据中我们就可以得出相对准备的结果。未来成功的公司必定是是那些拥有大量数据、并使用那些数据为大众提供服务的公司。

我们ITer 作为生活在大数据时代的幸运儿,都可以想想如何从身边获取一些数据,做一些很cool的实践!

原谅我的词拙。

开源图书借阅分享工具 Libr

发表于 2013-02-07 | 更新于: 2013-09-01 | 分类于 ruby , 开源

Libr 的想法最初源自于我有一天希望从成都办公室图书馆找一本书。但是我从书架上找不到那本书,我也没办法知道图书馆到底有没有那本书,因为大家借书时,通常是靠自觉去在一个本子上填写借书记录,因此这个记录的可用价值并不高。我就想能不能有一个工具可以让我们查找到办公室有哪些书,现在可借吗,如果不可借,现在这本书又在哪位同事的手里面(跟踪书的去向)?
后来通过和熊节的交流,了解到办公室某些同事的确有这方面需求,有些同事还希望可以分享自己的书架或者读书清单。再加上从其他渠道收集到的一些想法,陆陆续续一个月左右,做了Libr 的最小可用版本。(昨天和梁越的交流,我又得到了很多新的,有趣的点子,将会在Road map 中体现)

访问地址:http://libr.herokuapp.com/
主要的feature :
  • 第三方登录集成(豆瓣、QQ)
  • 首页书籍展示、简单的统计排名
  • 系统中的书籍搜索
  • 用户可以添加书籍到系统,目前是采用输入关键字和ISBN搜索书籍并添加。(目前添加书籍,即表明你分享此书籍)
  • 用户可以删除自己已添加的书籍
  • 用户借阅他人书籍
  • 用户可以归还所借书籍
  • 用户的书架展示(拥有的图书、借入的图书)
  • 用户个人中心,简单的统计数据

注意:

  • 在系统中成都办公室也是以用户的形式存在
  • 借书的流程为,用户首先在网站上查找是否有该书可借,点击借阅,系统将自动将该书的一本可用实例借出给用户。用户此时就可以线下去向拥有者借书(如果拥有者为成都办公室,用户即自行取书即可。),这里借书的逻辑是有待改进的,欢迎大家提建议。
Technical Stack:
* 采用 ruby on rails 框架、 Postgres, 前端采用 bootstrap,含有部分ajax。图书数据从豆瓣获取。
* 部署在 heroku 上面,为了得到较高的性能,开启了Gzip 和替换rails 内嵌服务器为 thin
* 由于是个人开发,TDD做得并不好,代码覆盖率只有40%左右。(我承认我错了。。)
* Github repo: https://github.com/wahyd4/Libr  欢迎大家一起来写。

Road map:

  • 移动客户端的支持,用户可以在手机上查找图书,通过扫描二维码添加图书。
  • 用户长时间借书未归还,自动提醒(邮件、微信?)
  • 微信查书?
  • 用户私有书架,用户可以选择不对外公开展示自己的书籍,只供自己查看。
  • 为用户添加 组织、地址标签,方便借书与分享书时,选择最优方案。
  • 用户可以创建书单,书单为一系列书的集合。如:java程序员必读的10本书。
  • 用户可以选择开始读某一书单。并可以看到自己读这一书单的进度,以及需要向那些人借书,以及看到有多少其他人已经读了这个书单等等统计。用户读完书单,可以发布感想。如果扯远来:有书单,也就可以有 各种进度、统计、勋章、虚拟奖励等等。
  • 各种深入的数据统计。如:某用户平均借书周期、哪段时间看书较多等等……
  • ……. 等你们来补充

    我做这个小东西的根本目的是希望方便大家借阅书籍、和分享自己私有的书籍给大家看。最终希望不仅仅是为公司的同事服务,如果可以也希望可以对外公开。欢迎各种讨论、吐槽,我菜鸟一个。rails 也写得很烂,希望大家多给意见,也特别特别欢迎有兴趣的和我一起来做这个小东西。总之跪求反馈!

'libr'

更新Mac OSX 中Ruby到最新版本

发表于 2013-02-01 | 更新于: 2013-09-01 | 分类于 ruby

大概一个月前,我拿到了公司发的Macbook Pro,但是这一个月中,似乎它有时会出点问题。Anyway, 这些都不重要。重要的是搞不懂苹果的新出的10.8 Mountain Lion 居然内置的Ruby 版本还是1.87。但是要用最近版本的Rails 版本的话,还是需要ruby 1.9以上的。因此我们需要将其更新。此文只是针对小白,和自己的一个记录,其他人可以忽略。
在Mac OSX 中,我们可以使用 Homebrew 和 rvm 来安装新的版本。homebrew 正如你官网介绍所说,是Mac 下的包安装管理工具。而rvm这是ruby的版本管理工具,这里当然最好选用 rvm.
首先我们需要需要登录苹果开发者中心,安装 Command Line Tools.
然后,我们在terminal中输入以下命令安装rvm:
\curl -L https://get.rvm.io | bash -s stable –ruby
如果中途没有出错的话,系统将会安装最新的rvm 和最新的 ruby,如果没有成功安装ruby,你也可以手动使用:
rvm install ruby
来安装最新版本的ruby,系统并会自动切换到最新的ruby。
如果你在更新ruby的时候,也出现这样的错误,可以使用使用一下的命令行:
rvm get head
rvm requirements run
安装说需要,依赖的包,然后在使用下面的命令行安装ruby:
rvm install 1.9.3 –with-opt-dir=brew --prefix readline –without-tcl –without-tk
应该就成功了。So, enjoy.

无节操,无底线

发表于 2013-01-22 | 更新于: 2013-09-01 | 分类于 我说

真TM无节操,无底线,难道就因为一个插件使用了Github上的js文件,为了让12306工作得更好,就把Github干掉?
草草。。
我不能想出更荒唐的理由了。
Github作为一个IT技术网站,惹着谁啦?
要不直接吧海底光缆割断吧,这样就没有任何后顾之忧了。
Fuck。

更新: 后面在各种影响之下,我们终于又可以上Github了。这是一件值得庆幸的事。  Really. 

我太急躁

发表于 2013-01-20 | 更新于: 2013-09-01 | 分类于 我说

我是一个很急躁的人,我想这没有什么可以质疑的。很多时候遇到我不能快速解决的问题,我会变得有点紧张、焦躁,我甚至不能静下心来完成自己手里面的事。我不知道是不是大多数急躁的人都差不多是这个样子。
关于这点,有些东西会让我自己变得很矛盾,我喜欢和很多人在一起玩耍,我喜欢热闹的感觉,但热闹与开心之后,我有很难快速冷静下来。每当我开心地玩了一个周末,我又会觉得罪孽深重,因为我没有做在这个周末里面没有做任何事。我就是如此纠结,纠结之人。
通常情况下,到晚上10点或者11点以后,我发现这个时候我变得比较平静,做事的效率也比较高,黑夜让我浮躁的心灵平静下来。
还记得高中,特别是高三的那段时间,时不时会特别浮躁,想快点结束那种生活,浮躁地看不下任何书,也很难听进课,当老师盯着我时,我也只会机械式的,附和的点点头。任时间流逝。
现在有时我也会面临着这样的情况,但我逐渐发现了一些让自己放松、冷静的方法。

  • 发呆,发呆也许是最简单,但却不怎么有效的方法。虽然我可以暂时什么事也不想,但让我变得冷静的这个过程会相对变得比较长。
  • 听轻快的音乐,看愉快的电影。这些相对“简单”的东西,会让我冷静。
  • 亲近大自然,这是我最喜欢的事情,但是也是相对不那么容易在短时间接触到的方式。当我坐在嘤鸣湖边,看着清澈、平静的湖水,以及湖面上那两三只闲适、快乐、悠然的野鸭时,什么都暂时不用想,就呆呆地看着这一切,体会着这一切。我想没有比这更让我平静的了。如果时间、金钱允许,我希望可以和自己爱的人一起去到处看看,让生命慢慢消融在大自然中。
  • 运动,这也是让我转移注意力的一种方式,适当的锻炼会让我精力变得更加充沛,烦躁一扫空。

使用jetty-maven-plugin快速调试webapp

发表于 2013-01-05 | 更新于: 2013-09-01 | 分类于 maven , java

在我们使用maven这个工具来进行web应用开发的使用,我们在Eclipse或者Intellij中几乎没有一种好的方式来快速调试我们的webapp。通常我们可能采取的做法是利用maven将应用打包成war文件,然后再放到tomcat或者jetty、Jboss等应用服务器中运行。但是这个速度的确有点慢,或者我们也可以使用maven-tomcat-plugin来使用maven将war部署到tomcat中运行,但是这种方案需要我们配置tomcat和手动运行tomcat。
现在我们其实可以使用jetty-maven-plugin来将一个内嵌的jetty和maven紧密结合。我们直接使用mvn jetty:run即可快速运行应用,而且还支持即改即用。
我们只需要在我们的pom.xml文件中的plugins节点中加入下面的代码即可:

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
     <version>8.1.8.v20121106</version>
  <configuration>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <webApp>
      <contextPath>/test</contextPath>
    </webApp>
  </configuration>
</plugin>

其中的参数contextPath,就是该应用的路径,你可以随便取一个即可。
然后你运行mvn jetty:run 你就可以在http://localhost:8080/test 看到你的项目了。
需要注意的是该插件的6.x版本是不支持servlet3.0的,如果你的应用中有用到annotation来声明Servlet路径的话,就得选用7以后的版本。插件的版本大致和jetty server的版本是对应的。
当然这个插件还有更多详细的参数配置,你可以在插件网站找到。

链接:          
Jetty Maven Plugin : http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin

2013 目标

发表于 2013-01-04 | 更新于: 2013-09-01 | 分类于 talk

2013 goal

我会努力去实现这些目标,这一年是我真正工作的第一年,希望可以可以快速成长,做一个可以让其他人信任、依赖的人。

未命名

发表于 2012-12-31 | 更新于: 2013-09-01

layout: post
title: “2012 Review”
date: 2012-12-31 14:49
comments: true
author: Junv
categories:

- talk

2012 preview
2012应该是我人生到目前为止成长最大的一年吧,也是因为这算是我第一年差不多脱离学校走向社会过度的一年吧。
对于生活方面来说,最大的感触就是:想象中的生活、社会没有这么复杂啊,是我自己以前想得太简单了。抛开复杂不谈,让我在为人处事方面也学到很多。我给自己的分析就是我可能说话太直接了,很多时候没有考虑到其他人的感受,碰到一些不太好的事,太想去出头为大家“伸张正义了”,却忘了自己只是一只小小鸟。所有在新的一年,我需要更多地倾听,吸收其他人做事方面好的地方,让自己成长,沉淀。

11月新到了公司,在Jeff 要求下,开始学习使用Ruby on rails 在进行开发,这门语言他的魅力深深吸引了我,也许是和Java 进行比较,它看起来是那么得特殊,这个框架太强大了,可以帮我干很多重复性的工作,他的智能可以让我直接使用很多语法来进行相关操作。它的简洁喝高效是Java所不能比的。但是我对Ruby 目前还没有形成很系统的只是掌握,这方面希望在2013年能够深入去学习Ruby语言。

进到Thoughtworks第一次被企业文化所震撼,是听李力严讲公司的 3P,那是在厨房吃水果的时候,他给我们聊Socail justice。讲到公司在非洲为方便普通平名鉴别假药,而做的一个可以扫描药品的信息,并返回鉴定结果的应用的时候。我被深深震撼了,我的确是第一次听到有公司会无私得去做这些事。在之后的时间里,不断地了解到公司的一些信息,被这个公司的文化深深吸引,被这群可爱的人吸引。

进到公司才发现自己真的很菜,我会的可能只能说可以简单实现一些代码,但是这些代码的质量我是保证不了的,也没有考虑代码的重构等等。到公司学到很多敏捷方面的实践。但是自己在实践这些的时候做得不够好,我还是会本能地想着尽快实现功能,而会忽略先写测试的重要性。还有个感受就是觉得自己看的书太少太少了。不少东西其他同事讲的时候,我可能没看过,甚至没有听过。这方面希望明年可以多读一点书。

进了公司,现在也听了其他同事很多的Session,相比我自己确实不好意思站在大家面前去分享,也许这真的是一种胆小。我还需要多多克服。多多分享,to be social.

其实很多的感受我已经在思维导向图里面说得很清楚了,这里不想再赘述了。2012 我们经历了“世界末日”,2013未来还需要我一步一步去创造。希望自己多多努力,交好运吧。

Fighting…

把博客移到Github

发表于 2012-12-28 | 更新于: 2013-09-01 | 分类于 github , blog

做这个决定还是反反复复用了很久的时间,我纠结的原因主要有两个:

  1. wordpress 的博客使用起来的确更加简单,不用像Octopress这样相对复杂一点。
  2. 主要还是之前觉得不太好把wordpress中的文章转移到Octopress上来。
    现在这个两个问题都已经解决了。而且我还换了相对比较漂亮的主题,现在算是安心了,当然对我来说Github 有个最大的好处就是不需要为空间付钱。也省得经常备份这些麻烦事。
    昨天到今天大概花了一天的时间来将我以前的博客迁移到Octopress上来,下面就分享一下吧:
    Github Page支持的博客主要有两种 Octopress 和 Jekyll BootStrap ,大概比较了一下,最后选择了Octopress,其实我之前也折腾过这些东西,只是后来觉得麻烦就没有继续使用。Octopress的优点在于,它里面包含的插件和相关配置更多。用起来也相对更加方便一点。

迁移博客数据主要包括文章数据和评论数据,首先迁移文章,我使用的是 wordpress-to-jekyll-exporter插件来做,下载其zip文件,然后安装到你的wordpress博客中。在工具菜单中选择导出Export to Jekyll 即可导出你的日志数据为 .md的文件,需要注意的是如果你的wordpress文章的固定链接名中含有中文,将无法正确导入到octopress中。
接下来将这些
.md 文件放入到Octopress博客的 source/_post目录中,然后执行rake generate,如果不出意外,你就成功将你的博客文件导入到你的Octopress中了。使用这个插件,默认没有在文章中开启Disqus评论,因此你需要向你的每篇日志文件中手动添加:
comments: true

然后再执行rake generate 即可了。
评论的话,我们需要先去Disqus申请你的网站的一个评论实例(如果你的wordpress之前就是用Disqus,现在可以忽略这一步,只需要在_config.yml配置即可使用了。),然后在你的Wordpress中安装Disuqs插件,并导出评论到Disqus中,这样主要你在Octopress博客中配置好你的Disqus实例短名称,就可以自动同步使用这些评论了。
可能你还会发现你的Octopress博客中的图片全都破了,因为这个图片的连接是使用的Wordpress生成的绝对路径,我们需要做的是:

1. 将wordpress uploads文件夹下的图片文件夹拷贝到Octopress中的**source/images** 目录中                  
2. 在linux下运行如下命令: 
> find -name '*.md' | xargs perl -pi -e 's|http://yourdomain/web-contnet/uploads|/images|g'      

这样就可以把图片的坏链接修改过来了。
大概整个迁移过程就是这样,另外插一句,我的博客是使用的 Phase,大家可自行到链接处去安装使用该主题。

给你的Rails 项目配Travis 持续集成工具

发表于 2012-12-06 | 更新于: 2014-07-22 | 分类于 ruby & rails

可能很多人都在github的某些开源项目上看到过类似这样的图标吧!

它是Travis-CI,一个免费向开源项目提供持续集成服务的网站,它可以在你每次向仓库提交更新之后,编译你的代码,实时告诉你的项目现在的编译状态。

下面分享一下如何给一个开源的rails 项目配这样一个持续集成服务。首先你需要去 https://travis-ci.org 通过你的github帐号登录,导入你需要编译的项目。

其实这个时候,Travis-CI已经开始工作了。已经可以编译你代码了。

但是你的Rails里面有测试,并且需要使用像 连接数据库的操作,我们就需要Travis-CI在执行编译之前,进行创建数据库的操作。或者指定我们的编译环境。Travis-CI是通过.travis.yml识别的。

因此我们需要在Rails项目的跟目录创建一个.travis.yml 的文件。文件的内容格式大致如下

1
2
3
4
5
6
7
8
rvm:
- 1.9.3
env:
- DB=postgresql
script:
- RAILS_ENV=test bundle exec rake ci --trace db:migrate
before_script:
- psql -c 'create database ocelots_test' -U postgres

大致解释一下,这里我们指定了我们使用的编译环境是 ruby 1.9.3,指定了我们使用的数据库,因为我希望travis 可以帮我创建测试数据库。
script 标签里指定了我们运行测试的命令。
而before_script 将在我们测试之前,运行,在这里即是帮我创建测试数据库。
类似的Travis还有after_script,用于指定在测试之后所做的动作。
更多的使用说明可以通过 http://about.travis-ci.org/docs/user/build-configuration/ 了解。
最后我们需要做的当然是把这个.travis.yml文件 push 到github 中,这样travis就可以帮助你编译了。

1234…31
Junv

Junv

Go, JavaScript, Ruby on Rails, Java,Docker, CI, CD, Photography

307 日志
69 分类
247 标签
GitHub LinkedIn StackOverflow Weibo
© 2020 Junv