分类归档:技术尝鲜

仿余额宝收益图实现

问题描述

最近的android客户端中需要实现类似余额宝中的折线收益图,乍一看似乎比较简单,但还是有不少细节需要解决,所以我们还是选择了Android-GraphView做为基础来进行改造.对于基本的折线功能,Android-GraphView已经能满足,但对于折线粗细,x轴等距分布以及最后一个记录的标记提示,以及空心小圆点都需要处理,如图显示.UI图例
阅读全文…

双色球背后的程序

突发奇想

首先这个题目有点大,但我实在想不出更好的标题了,这一切也是由于最近与小伙伴们讨论双色球,简单来说双色球就是一种排列组合小游戏,但又区别于全排列,它只针对数值而不针对位置,而其又区别蓝球与红球,那么我们很简单的就可以算出其全组合的可能数值,即红球33选6,33!/(6! * (33-6)!) = 1107568,蓝球16选1,全组合就是1107568 * 16 = 17721088,想一想这也确实很夸张,别说中头奖了,甚至中三等奖也是低概率事件,那么我们是否有办法提高中奖概率呢,个人认为肯定是有的,毕竟双色球只是一种伪随机.

程序实现

经过挖掘与分析,貌似能提高双色球中奖概率的条件有以下几种,例如红球分区,和值,跨度,奇偶比,质合比,012路比等等,那么我们可以将这类限制抽象成条件,但前提是我们需要将所有的组合全部列举出来,然后通过条件去缩小范围,这里我们有了第一个问题,即生成红球的所有组合,然后输出到一个文件里,代码看起来应该是这样

阅读全文…

Mac安装Eclipse与IDEA

最近将开发环境全面转至macbook上,但发现在安装java的过程中并不是那么一帆风顺,这里简单记录下遇到的问题以及解决方案.

Mac上安装Java7

首先我们需要去oracle下载最新的jdk,笔者拿到的最新的版本是1.7.0_45-b18,这里没有什么好说的,直接下载安装即可,安装完毕后需要在.bash_profile或者.zshrc文件中设置JAVA_HOME,代码如下

然后执行source让其生效.
最后在终端中执行如下命令判断JAVA_HOME是否正确设置

安装IntelliJ IDEA

下载好IntelliJ IDEA解压执行发现弹出提示需要安装1.6,查阅了资料后发现需要修改idea中的Info.plist.
打开plist后找到如下项,将1.6改成1.7后再次运行就发现idea可以正常启动了.

安装Eclipse

下载好eclipse解压执行,发现依旧提示需要安装1.6,多方查阅后发现似乎是oracle更新了某些JVM的设置,我们需要找到jdk的Info.plist
执行如下命令

找到JVMCapabilities配置项,修改成如下所示,最后重启机器即可.

Memcached CAS详解

什么是cas

Memcached于1.2.4版本新增CAS协议,类同于Java并发包中CAS(Compare and Set)原子操作,用来处理同一item被多个线程更改过程的并发问题.

基本原理

基本原理非常简单,简而言之就是”版本号”.每个存储的数据对象都有一个版本号.在Memcached中,每个key关联有一个64bit长度的long型唯一数值,表示该key对应value的版本号.
这个数值由Memcached产生,从1开始,且同一Memcached不会重复,在两种情况下这个版本数值会加,即新增与更新,而删除item版本值不会减小.
阅读全文…

Red5性能测试

最近一直在做Red5的直播与视频开发,虽然Red5提供了与FMS趋同的功能,但对于Red5的性能我们一直不太清楚,如果想大规模使用Red5作为我们的生产服务器,那么还需要对它进行一些性能测试,以此来验证它是否能满足我们的需求.

测试概要

对Red5进行压力测试与性能测试,其中Red5版本为1.0.0-RC1.

测试环境

硬件环境:CPU:Intel i3-2100@3.10GHz,内存8G
软件环境:Red5,CentOS
网络环境:1000M
阅读全文…