Roc`s 随想录

诚信,认真,专注,踏实


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

2015年11月总结

发表于 2015-11-04   |   分类于 生活与心情   |     |   阅读次数

引子

在Qzone的“去年的今天”里,有这样一条说说,发现来北京一年一年了。

去年的今天

在这一年里,很充实。现进行反思和总结,给自己。

阅读全文 »

微信红包随机算法初探

发表于 2015-10-28   |   分类于 数学和算法   |     |   阅读次数

本文简书备份地址:微信红包随机算法初探

最近看了一篇文章,讲微信红包随机算法的。感觉很不错,所以自己实现了下,并进行了简单测试。

算法

算法很简单,不是提前算好,而是抢红包时计算:

红包里的金额怎么算?为什么出现各个红包金额相差很大?
答:随机,额度在0.01和剩余平均值*2之间。

实现

实现上述算法的逻辑主要是:

public static double getRandomMoney(RedPackage _redPackage) {
    // remainSize 剩余的红包数量
    // remainMoney 剩余的钱
    if (_redPackage.remainSize == 1) {
        _redPackage.remainSize--;
        return (double) Math.round(_redPackage.remainMoney * 100) / 100;
    }
    Random r     = new Random();
    double min   = 0.01; //
    double max   = _redPackage.remainMoney / _redPackage.remainSize * 2;
    double money = r.nextDouble() * max;
    money = money <= min ? 0.01: money;
    money = Math.floor(money * 100) / 100;
    _redPackage.remainSize--;
    _redPackage.remainMoney -= money;
    return money;
}
阅读全文 »

也谈单例模式

发表于 2015-10-08   |   分类于 Java基础   |     |   阅读次数

单例模式(Singleton)也叫单态模式。

用途

有时候需要内存中仅有一个某对象就足够了,出现多个就会出现内存浪费甚至逻辑错误。典型的有数据库连接池等,一个连接池就够了。

常见实现

急加载(Eager Initialization)

Initialization On Demand Holder

public class Singleton {
    // 这个实例要不要不可变(final),一般不需要
    private static Singleton singleton = new Singleton();

    // 私有化构造器
    private Singleton() {
    }

    public static Singleton getInstance() {
        return singleton;
    }
}
阅读全文 »

Java 8 中的函数式接口与Lambda表达式

发表于 2015-10-01   |   分类于 Java基础   |     |   阅读次数

函数式接口(Functional Interface)

函数式接口是Java 8 对一类特殊类型的接口的称呼。

Java 8 之前”已有”的函数式接口

java.lang.Runnable
java.util.concurrent.Callable
java.security.PrivilegedAction
java.util.Comparator
java.io.FileFilter
java.io.file.pathMatcher
...
阅读全文 »

WebNote 2.0 后记

发表于 2015-09-13   |   分类于 知识记录   |     |   阅读次数

WebNote2.0

地址:http://webnote.coding.io

回顾这两天写这个Markdown系统,走了很多之前踩过的坑,现在总结下。

阅读全文 »

关于云笔记

发表于 2015-09-11   |   分类于 知识记录   |     |   阅读次数

0. 起因

一直想找一款知识管理工具,但总不Match,从.txt开始,陆续使用、尝试了OneNote,WizNote,Typecho,WordPress,EverNote等,后来迷恋上了Markdown,又重新审视了许多工具,但总是不Match.

现在基本上使用Instapaper(Mac->iPad)做稍后读,筛选资料知识点,平时基本上用EverNote(全平台)记录,分享使用Roc`s随想录博客,该博客使用的是hexo,支持Markdown格式。

但是,没有好的Markdown编辑器。

  • 要么支持图片上传,不支持快捷键;
  • 要么支持快捷键,不支持图片粘贴上传;
  • 倒是SegmentFault全支持,但是发表博文老是失败,图片存储怕禁止外链。

于是,还不如自己动手做一个。

阅读全文 »

多线程之Condition

发表于 2015-09-07   |   分类于 Java基础   |     |   阅读次数

为什么使用多线程?

带来的问题

  • 执行顺序:需要达到某种条件次线程阻塞或者继续执行。某些情况可以用回调模型来处理这个问题。
  • 同步写:有时候并发写会造成数据出错,不一致,由于一般的写操作(如i++操作)是三个原子操作构成的:

    取i; 
    temp = i+1; 
    i = temp; 
    //应该合并成一个操作的三步如果被中间执行污染数据的代码,那就造成错误。
    
  • 由于需要同步的原因,引入锁的概念。但是锁也需要最小刻度。因为锁有性能开销。

阅读全文 »

CoffeeScript

发表于 2015-08-24   |   分类于 知识记录   |     |   阅读次数

CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript
其实有着一颗华丽的心脏. CoffeeScript 尝试用简洁的方式展示 JavaScript 优秀的部分.

CoffeeScript 的指导原则是: “她仅仅是 JavaScript”. 代码一一对应地编译到 JS, 不会在编译过程中进行解释.
已有的 JavaScript 类库可以无缝地和 CoffeeScript 搭配使用, 反之亦然. 编译后的代码是可读的, 且经过美化,
能在所有 JavaScript 环境中运行, 并且应该和对应手写的 JavaScript 一样快或者更快.

优点:

  1. 抛弃诞生时的C/Java语法,改用类似Ruby/Python的语法—-更适合函数式+动态语言内核。
  2. 语法糖&ECMAScript

总结就是,屏蔽掉不优雅的地方。

阅读全文 »

毕业设计整理

发表于 2015-08-11   |   分类于 毕业设计   |     |   阅读次数

摘要

协同过滤推荐,其原理是利用人们共同的喜好和行为为相似的人推荐他 可能喜欢的信息,而用户的新的行为也会成为信息过滤的条件。1992 年,产 生了最早应用协同过滤系统的设计 Tapestry,主要是解决 Xerox 公司在 Palo Alto 的研究中心资讯过载的问题。1994 年,产生了里程碑式的 GroupLens, 这个系统主要是应用在新闻的筛选上,帮助新闻的阅听者过滤其感兴趣的新 闻内容,阅听者看过内容后给一个评比的分数,系统会将分数记录起来以备 未来参考之用。近年来,随着电子商务的兴起,电子商务的推荐系统也逐渐 成熟,最早的成熟代表应属亚马逊网络书店,这就是著名的“买了这本书的 人也买了什么”的算法。现在是一个信息严重过载的时代,从消息流中找寻 自己的爱好的信息也比较困难。协同过滤推荐过滤掉不喜欢的资讯,推荐用 户喜欢的资讯,节省时间提高效率。

本论文通过对推荐系统的研究,进一步的说明推荐系统在信息过载时代 的重要性以及处理信息模型的精巧之处。本论文主要研究多维空间向量相似 度的在推荐系统的应用。根据这个算法,结合 Java 的一些特性,设计一个类 库,更方便的使用该算法进行过滤推荐。

关键词:协同过滤;Java;Web;反射;数据格式化;SpringMVC;Spring; Hibernate

附件:

  • 🎓毕业设计原文
  • 🎓毕业设计PPT

Node:WebSocket,REST,权限等

发表于 2015-08-05   |   分类于 Node.js   |     |   阅读次数

设计原则

好的原则可以让开发更规范,而且更好维护,易懂。现在主要想到的原则有:

  • 传输数据格式:JSON
  • 风格 or 规范:REST
  • 实时传输使用websocket
  • 更好地结合websocket与REST

关于REST

REST将每个URI看做一个资源,websocket同样可以借鉴这个想法。

在项目中可以把每一个URI看做一个资源集合。

例如:

POST /api/workflow/changes
[ {} , {} ]

单个元素的信息传递可以看做只含有一个元素的集合。

同样的,登录和注销这种也可以看做资源:

POST /api/user/logins
DELETE /api/user/logins
阅读全文 »
123…6
Coder_Roc

Coder_Roc

关注技术趋势,服务端技术细节,Java语言,技术热点等,关注思维和最佳实践。

58 日志
10 分类
80 标签
RSS
GitHub Weibo Zhihu
© 2014 - 2017 Coder_Roc
由 Hexo 强力驱动
主题 - NexT.Pisces