自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

何旭东chucai的专栏

Web开发实录:Ruby, Rails, Java, Coffeescript , Sass, Html, JQuery

  • 博客(201)
  • 收藏
  • 关注

原创 图算法之如何反转一颗二叉树

一个题目难倒一个英雄好汉。这个题目曾让Homebrew的作者失去了一次进入Google工作的机会。在这里,我们不讨论是非,只聊技术!我个人认为,算法和数据结构还是要懂一点的。因为算法和数据结构不仅能解决我们在写程序的时候遇到的性能问题,而且还能扩展我们解决问题的方法。问题的简单描述:反转一颗二叉树。什么是二叉树呢?二叉树就是每个节点最多有两个子树的树。通常,子树被称为“左子树”

2016-05-13 17:34:48 3997

原创 Web UI组件化最佳实践的思考

Rails UI组件化最佳实践的思考前端组件化的几种思路重客户端的SPA模式,将大量的逻辑和数据处理放在客户端,服务器端提供JSON数据服务器端处理业务逻辑,客户端只负责两个事情:显示和发送数据到服务器端,服务器来调度UI的显示混合模式,混合使用以上两种方案,交叉使用rjs + html + json 第一种方式现在比较流行,也有很多比较的框架支持,比如 React, angularjs 等

2016-05-13 16:00:05 2659

原创 Rails ActiveRecord的default_scope的坑

Rails ActiveRecord的default_scope的坑其实,我是特别反对使用default_scope的。它很强大,同时也非常的难于驾驭。它的优点在于我们只需要在Model层增加一行代码,就能解决整个项目中的如何一个地方数据的获取。举个例子,我们有一个项目的Model,前期比较简单,我们在代码的如何地方都可以方便的使用Project.find 或者 Project.where...。然

2016-05-11 15:55:47 3122 1

原创 使用docker-compose搭建可以扩展的Web Application

使用docker-compose搭建可以扩展的Web Application使用docker-compose搭建可以扩展的Web Application构建 web application构建一个简单的base image写app新建startsh 文件新建构建文件 Dockerfile测试容器使用docker-compose编排项目启动项目补充说明总结这是一次使用docker-

2016-05-10 14:39:33 3449

原创 使用深度搜索分析心理调查问卷的研究

使用深度搜索分析心理调查问卷的研究背景昨天我女朋友发了一个心理调查问卷要我做。我向来对这种形似心理调查问卷嗤之以鼻: 一个人的性格怎么可能由几个简单的问题决定。但作为技术人员,我决定用技术的手段分析这份调查问卷,向女朋友证明其缺乏科学性。调查问卷的原版如下图 有兴趣的朋友可以玩玩~我想了解如下几个问题: 1. 问卷是不是有环路?如果有环路,则可证明这份问卷不正规。 2. A 答案是不是不可能达

2016-05-07 22:33:01 2192

原创 [数据结构和算法]状态树的问题

问题给定一个正整数 n, 求输出符合期望的所有的 左右括号的组合。要求,左括号不小于右括号。当 n = 3 的时候,输出值为:["((()))", "(()())", "(())()", "()(())", "()()()"]分析这是问题可以抽象成状态树: * 节点: 在 x 的时候(0 <= x <=n), 此时的左右括号的个数为 (x, y) * 边: (x,y) 到 (x +1, y)

2016-03-10 11:29:13 2233

原创 [数据结构和算法]九宫格算法

描述典型的九宫格命题: 1 到 9 , 一共10个数, 放在一个 3x3 的表格中,要求表格中的: 同行, 同列 并且 对角线 的所有数字相加 等于 15. 问题分析这个是一个典型的题目,因为数据量比较少,所以完全可以用穷举法实现。本文使用Ruby实现了九宫格的算法。

2016-03-09 23:59:10 6126 2

原创 如何有效的区分小公司和创业公司(一):小公司的特点

为什么要写这篇文章现在有很多的“小公司”假扮成“创业公司”。因为大家一直有一种错误的认知“创业公司就是小公司”,所以,很容易被这样的伪装公司欺骗。等到了这样的小公司以后才发现,这TM哪是创业公司啊,分明就是小公司。本文的主要目的是跟大家分享一些我对于小公司和创业公司的一些看法。希望看到这篇文章的朋友能少走一些弯路。

2016-01-27 11:36:43 4682 16

原创 Ruby多线程编程

前言多线程编程一直是Ruby开发中的软肋。从事Web开发的朋友一般很少关注Ruby多线程方面的知识。但不可否认,很多非常优秀的Gem还是用了很多多线程方面的知识的。多线程也的确能提高程序的性能。比如 sidekiq, thin 通过使用多线程,提高了程序的性能。对下面的主题比较感兴趣的朋友,可以加入到我们的群组里!讨论的话题有1. 多线程的应用场景有哪些?2.

2015-11-11 20:33:51 1702

原创 Topic 1: hello world for react-native

https://github.com/chucai/HelloWorld

2015-04-07 10:28:11 1654

原创 如何利用工具写出优秀的Ruby代码?

介绍使用几种工具,改善我们的代码。

2014-12-03 14:20:37 2274

原创 Ruby的Unix编程

暂定内容如何生成进程进程之间的通信如何向进程发消息应用

2014-12-03 13:32:10 1726

原创 技术阅读记录(一)

RubyCreate a Neo4j Graph Database Using the REST APIA CRM with Neo4j and RESTneo4j 是用Java实现的图形化的数据库,跟关系型数据库不同的是,Graph database更注重于关系查询。比如查询朋友的朋友的朋友的朋友的四层关系,用关系型数据库查询会使用大量的Join,会有性能问题,如果用Gr

2014-07-28 17:57:22 2273

原创 web开发的最佳组合的思考和实践

前言如何快速开发出一个 漂亮,稳定,可扩展, 可移植,可替换的现代的web 网站?关键点是: 界面要漂亮(UI),系统要稳定(良好的测试), 可扩展和移植(组件之间依赖最少), 速度快(可以使用缓存)我的思路是 前后端的完全分离,别用后端语言 写前段 view基本的技术栈是: UI: bootstrap + AngularJSServer: Railsapi数据库层

2014-07-03 18:46:39 2183

原创 源代码快速定位工具-qwandry

qwandry 是一个快速打开我们指定文件夹的工具,比如快速打开rails, activerecord等目录。https://github.com/adamsanderson/qwandry安装gem install qwandry使用qw matrix # opens ruby's matrix class in your editorqw r

2014-07-03 14:51:35 2496 1

原创 EventMachine 系列之简单的服务器

EventMachine本文主要是EventMachine如何建一个简单的Echo服务器post_init, unbind, receive_date 方法EchoServer如下代码,是建立一个简单的EchoServer#!/usr/bin/env rubyrequire 'rubygems'require 'eventmachine' class Ech

2014-05-19 22:17:30 2343

原创 智能化的命令行工具-betty

本文首先发布在CSDN的文章编辑器实在太烂了,建议大家用Cmd Markdown。它不但支持markdown,还支持VIM模式。智能化的命令行工具-bettybetty tool command rubybetty 是一个用Ruby实现的非常简单,好玩的智能化命令行提示工具。主要解决的问题是将英文翻译成机器可以理解的unix命令。在它的官方文

2014-05-11 11:38:51 2526

原创 TracePoint浅析

TracePoint是一款跟踪Ruby代码的工具,可以细粒度的监控Ruby程序,但是只支持2.0.基础知识一个简单的例子非tracepoint的例子tracer = lambda do |event, file, line, id, binding, klass|   to_display = [event, File.basename(file), line, klass,

2014-01-21 16:39:17 3990

原创 Ruby Tips

randDesc: 如何在自动生成一个简单的Range范围的随机数Code:rand(10) + 10rand(10...20)Random.new.rand(10...20)awesoome_printDesc: 能格式化JSON,HASH的输出Code:gem install awesome_printrequire 'ap'ap [1,2,3]ap

2013-12-09 10:07:47 1864

原创 Ruby相关的比较cool的工具和代码收集

文本解析Gem: parslet简单的Ruby Lib,用于构建私人的解析器实例代码require 'parslet' include Parslet # Constructs a parser using a Parser Expression Grammar parser = str('"') >> ( str

2013-12-06 13:31:43 2241

原创 几个好玩的小工具

tree 命令tree 命令挺有用的,能看到一个文件夹下的所有文件的目录, 在mac下,可以使用 brew 安装brew install tree;tree some_folder;bower强大的前端插件管理系统,使我们安装插件非常的快。install命令brew install -g bower安装jquery的命令是bower install jq

2013-12-02 10:16:12 1682

原创 Rspec 如何组织测试用例?

Rails项目中,如何有效的组织测试用例? 个人的一些经验总结在此。1. 可读性和可维护性是最重要的。2. 层级和逻辑一定要清楚。3. context 和 describe 描述一定要清晰.

2013-11-04 14:44:49 2154 2

原创 Javascript调试的小窍门: 如何获取元素上的事件绑定函数?

项目膨胀以后,调试变得非常困难。尤其是javascript。Javascript 的事件绑定可以发生在代码的任何地方,当项目中的JS代码超过10万行后,想从代码中找到元素的事件绑定,非常的困难。灵活带来的维护的困难。JQuery的data("events")方法给我们带来了便利使用$("name").data("events")['click']

2013-07-15 17:16:09 1949

原创 linux 误修改 /etc/sudoers 的恢复办法

联想的自带linux的 thinkpad e430c, 误修改 sudoers 文件后,无法使用sudo命令 ,并且不知道 root 用户的密码?该如何恢复?#linux 误修改 /etc/sudoers 的恢复办法* 启动电脑,按住 shift, 进入引导选项* 可以看到引导选项列表中,有一项的末尾括号里是这样的(recovery mode),也就是恢复模式,选择这项,回车继

2013-06-08 10:36:57 2895

原创 Vim的插件推荐

不管如何,vim真的很强大。虽然现在在mac上一直用 sublime text。 但是有点时候还是需要vim: 方便,简单。管理vim的工具https://github.com/gmarik/vundlevim运行ruby命令https://github.com/tpope/vim-dispatch有详细的说明,不详说了。vim-dispatch 很强大

2013-04-19 10:39:45 1574

原创 网站推荐: 以树状结构查看Gem的依赖关系 和 管理i18n文件的网站

GemLou.pe: View The Dependency Tree for Any Ruby GemUsing the provided bookmarklet, you can go to a gem's page on rubygems.org and then see an interesting view of the dependencies for that gem.

2013-04-19 10:19:51 1468

原创 RubyMotion 初玩

公司买了RubyMotion,今天试玩了一下。安装过程记录在下。Xcode的安装就多说了。具体的安装流程可以参考: http://www.rubymotion.com/developer-center/guides/getting-started/#_prerequisites值得说一下的是,由于Xcode版本的问题,在运行 RubyMotion 的 rake 任务的时候,出现

2013-02-19 13:07:45 1989 1

原创 Sublime text2 的几个小技巧和资料汇总

Sublime text2是一个编辑神器,这是毋容置疑的。从vim转到sublime text2后,我感觉更为轻松了。当然,我也喜欢vim。所以,我喜欢把我的sublime text2设置成vim模式。这样,就可以结合vim和sublime text2的优点了。本文,我做一些简单的总结,希望对大家有所帮助。虽然,现在已经有sublime text3了,但是还是喜欢 sublime text2。:-) 本文是介绍sublime text2 。

2012-11-20 13:32:12 7817 1

原创 Rails代码质量控制工具

持续集成工具Huson代码检查工具metric_fuhttp://metric-fu.rubyforge.org/http://railscasts.com/episodes/166-metric-fu

2012-11-20 10:22:32 1314

原创 Rails的script如何引入Rails的环境?

常常需要开发一些script,需要引用Rails的modelENV['RAILS_ENV'] ||= 'production'require File.dirname(__FILE__) + "/../config/environment"还有一些需要直接查数据的操作可以使用Mysql2require 'mysql2'client = Mysql2::Client

2012-11-12 17:30:58 884

原创 如何保证软件的质量?

足够的测试和持续的集成

2012-11-09 09:31:19 864

原创 Ubuntu 安装软件的过程中,出现版本冲突的解决办法

常使用ubuntu的源deb http://mirrors.163.com/ubuntu/ oneiric main universe restricted multiverse deb-src http://mirrors.163.com/ubuntu/ oneiric main universe restricted multiverse deb http://mirrors.163.

2012-11-03 13:44:27 2821

原创 Mac10.8的Rails环境搭建

第一次使用Mac Book,记录于此。1, 需要按照xcodexcode 4.2以上的需要安装 command line xxx打开 xcode -> open develop tools -> more xxxx2, 将 /Applications/Xcode.app/Contents/Developer/usr/bin  放到 $PATH修改 ~/.bash_profi

2012-11-02 13:53:29 918

原创 limiter Gem使用记录一

对 csdn 提供的 limiter gem 比较感兴趣,想研究一下。可惜它的文档不是很全,说的也不够的详尽,所以,只能自己摸索了。limiter gem 的作用:Rack middleware for rate-limiting incoming HTTP requests with black_list and white_list support.大体意思是, 通过白名单 和

2012-10-16 10:32:25 993

原创 如何发布自己的Gem?

首先,需要注册!http://rubygems.org/sign_up其次,生成gem文件gem build xmpp_server.gemspec发布gemgem push xmpp_server-0.0.1.gem如下是我的gemhttps://rubygems.org/gems/xmpp_server文档地址https://github.com/c

2012-09-27 17:54:56 1369

原创 如何将Gem中的rake任务导入Rails Project中

Rails3中,可以使用Railtie的方式,将rake 任务 放到 Rails 项目中lib/your_gem/railtie.rbrequire 'your_gem'require 'rails'module YourGem class Railtie < Rails::Railtie rake_tasks do load 'path/to/rake.r

2012-09-27 17:23:28 1129

转载 Ruby简单的生产者,消费者模式的实现

require 'thread'q = Queue.newproducter = Thread.new { 10.times { |i| q.push i sleep 1 } q.push nil}consumer = Thread.new { loop { i = q.pop break if i == nil puts i

2012-09-26 16:30:07 751

原创 xmpp server: 负责发送数据到xmpp 服务器的中转站

自己写的一个简单的xmpp服务的中转站require 'drb/drb'require 'xmpp4r/client'include JabberURI = "druby://localhost:8787"QUEUE = Queue.newip_addr = "server地址"server_str = "tester001@#{ip_addr}/testing"

2012-09-26 16:25:32 1307

原创 强大的 ActiveSupport::Notifications

ActiveSupport::Notifications   是Rails3提供的 Rails系统的事件提醒通知机制, 非常强大。 我们可以非常容易的捕捉到 系统运行的各个状态时的参数,时间等。一个简单的可以查看其功能的例子新建/config/initializers/notifications.rb ActiveSupport::Notifications.subscr

2012-09-26 14:43:22 1381

原创 Rspec笔记

当我们有这样的需求:一个或者更多的类 拥有同样的行为, 那么可以使用Rspec的 可分享的实例组(a shared example group). 关键词是shared_examples_for 和  it_should_behave_likeshared_examples_for "Any Pizza" doit "should taste really good" do@pizza

2012-09-25 20:34:46 966

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除