- 博客(26)
- 资源 (8)
- 收藏
- 关注
原创 一个支持批量获取处理并删除的RingBuffer
在工作中遇到一个应用场景,有多个Producer生产一些任务,然后由一个Consumer批量获取并处理,如果批量处理失败了需要回滚,下次获取重新获取到上次处理失败的数据并重新尝试处理。如果存储任务的容器满了,则需要阻塞生产者线程。在遇到这个场景时,第一时间就想到了RingBuffer,但是很多Java扩展包里面的RingBuffer实现并不支持批量获取,也不支持二段ack确认删除,只能一次获取一个并从RingBuffer中删除。因此对org.apache.commons.collections.buffer
2020-09-24 14:34:51
420
原创 基于CDC技术的ElasticSearch索引同步机制
概述ElasticSearch作为一个基于Lucene的搜索引擎被广泛应用于各种应用系统,比如电商、新闻类、咨询类网站。在使用ElasticSearch开发应用的过程中,一个非常重要的过程是将数据导入到ElasticSearch索引中建立文档。在一开始系统规模比较小时,我们可以使用logstash来同步索引。logstash的好处是开方量少,只要进行编写简单的索引模板和同步sql,就能快速搭建索引同步程序。但是随着应用数据规模的变大,索引变化变得非常频繁。logstash的缺点也随着暴露,包括(1)不支持
2020-09-23 16:15:13
1462
1
原创 ElasticSearch ik分词器扩充词库遇到的坑
博主使用了ik分词器作为搜索服务中文分词器。ik分词器支持扩充词库,具体方法这里不提,大家自行google。这里记录在扩充词库后大家容易遇到的坑,因为我就遇到了。在扩充完词库后,搜索词的分词会使用到扩展的词库,一般我们使用ik_smart以匹配最长的词,让结果更精准。这里举个例子。扩充词库里加了阿莫西林胶囊。扩充词库之前,阿莫西林胶囊使用ik_smart会被分词为[阿莫西林,胶囊],扩充完词库...
2020-03-07 22:44:45
3111
转载 安卓常用开源项目总结
引子一个好的程序员并不是代码写的很快地程序员,而是能把一个需求用尽可能少得代码就完成的程序员。所以在我们做一件事的时候,如果发现需要一些可以服用的东西,可以先查看下是否别人已经有写过类似的库,如果有,就可以直接拿来用,这不仅节省时间,而且能够减少代码,毕竟有名的开源项目都是经过很多人的验证的。废话不说了,下面是转载自别人整理好的一篇文章,以后会逐渐进行更多地整理。原始出处已经不知道
2015-07-13 13:56:37
996
原创 AndroidAnnotation配置与使用
背景随着安卓手机在市场上的普及,安卓开发的需求也越来越大。但是在安卓开发过程中,其实很多操作都是较为繁琐,且没有必要的,虽然一天下来看看写的代码很多,但是可能也就一个界面,几个功能点。所以对于安卓开发中代码的简化和重用是十分有必要的。 昨天偶然在网易云课堂上看到了AndroidAnnotation这个第三方框架,据说能够大幅度简化安卓编程,提高编程效率。怀着一颗好东西都要尝试一下的心态,今天将之配
2015-07-10 17:06:43
1958
转载 Java Bitmap操作详解
package com.testbitmapscale; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterat
2014-11-10 16:36:00
7497
原创 使用Django框架实现游戏网站搭建
上一篇中我们使用了Javascript和Html5实现了弹球游戏,而在本文中我们希望以其为基础实现游戏网站,能够实现用户的注册登录,游戏成绩记录,排名显示,微博分享等功能。
2014-08-31 20:21:47
5738
原创 Huffman 压缩解压缩java实现
本文介绍了利用Huffman编码对文件进行压缩和解压缩的过程。其中使用了java做为编程语言。为大家提供参考。本文只实现了对文本文件进行压缩和解压缩,对二进制文件压缩解压缩留待大家研究。完整工程留待以后上传。
2014-06-14 16:14:16
5443
原创 LimeJS Demo学习2 box2d使用
goog.provide('test.box2d');goog.require('box2d.BodyDef');goog.require('box2d.BoxDef');goog.require('box2d.CircleDef');goog.require('box2d.CircleShape');goog.require('box2d.PolyDef');goog.requi
2014-04-24 15:25:20
797
原创 limeJS Demo学习
goog.provide('test.events4');goog.require('lime');goog.require('lime.CoverNode');goog.require('lime.Director');goog.require('lime.Layer');goog.require('lime.Scene');goog.require('lime.Sprite')
2014-04-24 14:33:10
1378
原创 安卓开发日记3——IP推送器
1.引子最近因为学习和工作需要经常用到远程登录,但是我没有固定IP,所以为了得到IP,出门前都要用cmd看一下,比较麻烦。所以希望能够开发一个小应用能够方便地获得我自己电脑的IP地址。虽然如果开发发送ip地址到自己邮箱的应用可能会简单方便安全很多,但对安卓开发情有独钟的我希望能够在我手机上接受IP地址。思来想去,最后发现可能比较简单地解决方案就是使用推送服务。刚好我也没尝试过,所以就决定开发这样一款小应用。能够实现以下功能:服务器: 在自己的电脑上开机自启动,没过一段时间检查本机IP,并推送到指定的手机
2014-03-18 16:35:02
2056
1
原创 安卓学习笔记5——个推透传服务体验
1.引子在上一篇中我们讲到如何使app能够接收个推推送信息。但是这样的推送信息只能够在通知栏显示,而不能被我们应用本身使用,所以在这一篇中我们继续讲接收能够被我们应用所利用的推送信息。也就是个推所说的透传信息。2.使用步骤以下步骤在上一篇配置好个推的基础上进行,具体可以查看安卓学习笔记4——推送服务初体验为了能够接收透传信息,我们需要使用广播类,
2014-03-18 15:38:41
4321
原创 安卓学习笔记4——推送服务初体验
一. 引子推送服务我们都不陌生,每天你手机上的应用都会推送或多或少的信息到你的手机。这些推送信息有些是由应用开发商自己提供的,而有些则是通过第三方的推送服务上提供的,比如今天我们体验的“个推”推送平台。点击打开链接二.开发步骤个推提供了详细的技术文档,所以学习和使用起来都比较简单。下面我们就跟着技术文档的教程一步一步来做吧。步骤一:注册个推账号。不说了,大家都懂的。步骤
2014-03-17 16:35:50
3153
转载 The connection to adb is down, and a severe error has occured.
转载自:静静的写Blog 的博客 点击打开链接启动android模拟器时.有时会报The connection to adb is down, and a severe error has occured.的错误.在网友说在任务管理器上把所有adb.exe关闭掉.重启eclipse.但试过不管用.所以在外国网站上找到一种可行的方法:1.先把eclipse关闭.2.在管理器转
2014-03-15 10:16:01
593
原创 安卓学习笔记3——摄像头的使用
一. 简介本节学习目标是使用手机摄像头,并将拍摄到的影像呈现在surfaceView上。二.相关方法介绍按照惯例,首先来总结学习下将会用到的类和方法以及相关的基础知识。1.申请权限为了使用camera,首先我们需要申请权限,安卓摄像头的权限为android.permission.CAMERA。2.Camera 类的相关方法Camera.open(
2014-03-13 14:30:00
1310
原创 安卓学习笔记2——视频和音频的播放
视频播放一般有两种方式,使用videoview控件,或者使用MediaPlayer配合surfaceView。本文中,我们采用的方法是使用videoview,因为videoview操作简单,适合初学者,至于后者,我将会在后一篇文章中再做介绍。首先是有关videoview的各常用方法。我们可以使用setMediaCOntroller为videoview设置控制器,而videoview
2014-03-12 17:28:30
1155
原创 安卓开发日记2——思念计数器
一.应用背景最近看了一部自认为很好看的电影——彭于晏,陈意涵演的《听说》,在电影的最后,陈意涵演的轩轩告诉男主角,每次想到他的时候就会往水鸟储蓄罐里面投一个硬币。我想很多年轻人都,包括我自己,都有过这样的困惑,我到底喜不喜欢某人,或者我该不该向某人表白,而该应用的主要功能就是帮助年轻人鼓起勇气追求幸福。二.功能介绍用户可以在本应用中设置
2014-03-08 21:23:06
1570
原创 pcduino开机心得
pcduino是国产的一款类似于树莓派的miniPC,并且支持anduino。且其硬件性能远超树莓派,是做嵌入式开发学习的又一个好选择。得益于上了学校的嵌入式系统开发课程,我也免费得到了一个pcduino一个学期的使用权,想想还有点小激动呢。现在我就来写写pcduino开机心得。首先得到了pcduino,可惜我没有显示器,没有路由器,既看不到图形化界面,也上不了网怎么办,我想这也是初玩
2014-03-06 15:15:52
3732
原创 安卓学习笔记1——service开机自启动
本文参考了 好像睡觉.... 的博文http://blog.youkuaiyun.com/etzmico/article/details/7317695在平时开发中我们可能会遇到需要开机自启动app的某项服务,使其在后台运行。我们在手机刚开机的时候可以查看正在运行的应用,可以看到比如qq,微信等应用已在后台运行,而这则需要使用android的广播机制来完成。实现服务的开机自启动主要有三点:1.
2014-03-02 16:02:48
1433
1
原创 简单解释性语言解释器设计
编程语言解释器设计一. 解释器构成解释器主要由以下几个部分构成,分别是词法分析器,语法分析器,解释器,以及内存管理机制。其构成见下图:源代码经由词法分析器转换为token流,然后语法分析器将token流转换为单个语句的内部数据结构,该内部数据结构交由解释器解释执行。这里定义两张表,分别为函数入口表和变量映射表。均在执行make语句的时候由解释器插入新的表项。内存管理机制管理变量映射
2014-03-01 20:53:01
2554
原创 php环境的快速搭建
传统搭建php环境的一般做法是采用apache mysql软件,不仅需要软件多且配置复杂。这里使用集成的软件包xampp来实现php环境的快速搭建。需要软件Eclipse 任一版本,bz使用的是用来开发android的ADT。xampp。安装步骤1.下载xampp,安装即可,无需配置。安装完成后打开apache 和mysql 这两个module,如下图
2014-03-01 20:26:49
870
原创 安卓开发日记1——虫虫新闻
一.应用背景21世纪是信息时代,每天信息量巨大。特别是网络信息每天都铺天盖地。但是,无疑每个人都具有自己的兴趣点,而关注信息时也只会选择自己感兴趣的信息。但是不可避免地,人们就需要每天花费一定的时间去对信息进行筛选。另外,有些信息还具有时效性,在一定的时间内获取信息具有很大价值,但是错过这个时间可能就失去价值了。因此可以得出结论,一款能够帮助人筛选信息的应用能够对人们产生很大的帮助,具有一定的
2014-03-01 16:25:42
1192
安卓视音频播放测试工程
2014-03-12
安卓开发之思念计数器完整工程
2014-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人