自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MasonChen的专栏

点点滴滴。积少成多。厚积薄发

  • 博客(87)
  • 资源 (1)
  • 收藏
  • 关注

原创 Web视频播放与数据安全

Web视频播放与数据安全HTML5 的 video 标签的安全性保证媒体资源的数据安全Referer 防盗链Blob URL视频⽂件加密视频⽂件加密算法选择AES 加密模式MSE,让浏览器播放器进⼊H5时代!HLS和MPEG DASH 协议HLSDASHHTML5 的 video 标签的安全性H5的video/audio标签可以⽅便的播放⾳视频,只需要把资源的链接设置为src属性即可。但是这种⽅式也把资源的链接暴露了出来,⽤户可以随意下载、播放⾳视频数据。那么如何提⾼媒体资源的安全性呢?保证媒体资源的

2022-05-10 23:09:50 560

原创 Vue移动端开发问题纪要

Vue移动端开发问题纪要1、UC浏览器兼容性问题现象在部分Android机型中的UC浏览器下访问,出现白屏现象解决之前遇到过类似的问题,第一反应应该是babel-polyfill的问题,要么没有引入要么是引入的方式不对。看了一眼 main.js 中babel-polyfill的引入位置,之前并不是在最顶部的位置引入的,于是调整到最顶部的位置import 'babel-po...

2018-10-25 17:39:11 381

原创 RecordRTC总结

RecordRTC总结概念RecordRTC:是一个为现代浏览器开发的基于javascript的媒体记录库(支持WebRTC的 getUserMedia API ),它为不同的设备和浏览器进行了优化,带来了全客户端(无插件)的媒体记录方案。Recorder:通过RecordRTC的API生成的针对不同媒体类型的记录器,支持的媒体类型包括 MediaStreamRecorder (流...

2018-07-30 16:14:57 15372 3

原创 如何通过QQ机器人技术实现禅道bug的自动提交功能

零、写在前头最近部门老大提到可以使用qq机器人实现bug自动提交禅道,好奇心趋势于是自告奋勇进行了一系列探索。qq机器人当然有很多种,这里选择基于smartQQ协议的qqbot作为模拟客户端。qqbot是用python写的,目前社区比较活跃,如果想要实现一些简单的功能的话,推荐使用qqbot。不过最近由于支付宝扫码红包事件,腾讯封掉了一些smartQQ的关键字段,所以qqbot以及所有基于sm

2018-01-11 13:46:22 3031

原创 Mock.js + RAP 使用介绍

Mock.js + RAP 使用介绍问题前后端分离开发开发过程当中,经常会遇到以下几个尴尬的场景:1、前端开发依赖于后端接口数据,需要与后端接口联调才能获得数据展示,从而拖慢了开发进度;2、没有一个很好的结构化接口文档管理工具,能够对项目中所用到的接口进行管理。如一个请求的地址、有几个参数、参数名称及类型含义等等。同时支持项目、历史版本的切换。什么是Mock Mock = 生成模拟数据M

2017-09-03 19:49:46 10713 1

转载 理解JavaScript之JavaScript执行顺序

如果说,JavaScript引擎的工作机制比较深奥是因为它属于底层行为,那么JavaScript代码执行顺序就比较形象了,因为我们可以直观感觉到这种执行顺序,当然JavaScript代码的执行顺序是比较复杂的,所以在深入JavaScript语言之前也有必要对其进行剖析。1.1 按HTML文档流顺序执行JavaScript代码首先,读者应该清楚,HTML文档在浏览器中的解析过程是这样的:浏览器是按着文

2016-10-13 16:17:56 510

原创 EditText+ListPopupWindow实现可编辑的下拉列表

使用场景AutoCompleteEditText只有开始输入并且与输入的字符有匹配的时候才弹出下拉列表.Spinner的缺点是不可以编辑.所以本文介绍如何使用EditText+ListPopupWindow实现可编辑的下拉列表.使用场景可以是有记住密码功能的登录框.给EditText增加上下箭头我们需要一个箭头图片,放在EditText的右面,用来点击后弹出下拉列表.如图所示 要想实现这个很容

2016-09-01 18:48:12 9487 5

原创 [LeetCode] sort-list

sort-list 题目描述Sort a linked list in O(n log n) time using constant space complexity. 链表排序。。要求用O(n log n)的复杂度。好像只有归并排序比较适合 把链表分成两部分的时候用快慢指针:当快指针遍历结束后,慢指针刚到中间。/** * Definition for singly-linked

2016-08-12 21:48:47 315

原创 [LeetCode] max-points-on-a-line

max-points-on-a-line题目描述Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 给出n个点的坐标,找出在一条线上的点的数量的最大值. 根据斜率统计在一条直线上的点的数量,可以用HashMap作为斜率和数量的映射

2016-08-12 21:37:20 302

原创 [LeetCode] evaluate-reverse-polish-notation

evaluate-reverse-polish-notation题目描述Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are+,-,*,/. Each operand may be an integer or another expression. Some e

2016-08-12 21:16:02 247

原创 [LeetCode]Minimum Depth of Binary Tree

题目描述Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 二叉树的遍历。递归遍历左右子树,返回最短的路径长度。递归结束的条件是,如

2016-08-12 21:03:31 214

原创 计算机网络七层协议模型

一、物理层(Physical Layer) - OSI模型的最低层或第一层,规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性,为上层协议提供了一个传输数据的物理媒体。 在这一层,协议数据单元为比特(bit)。属于物理层定义的典型规范代表包括:RS-232、RS-449、RS-485、USB2.0、IEEE-1394、xDSL、X.21、V.35、RJ-45等。在物理层的互联设

2016-08-01 14:52:36 629

转载 第二部分、十个海量数据处理方法大总结

第二部分、十个海量数据处理方法大总结 ok,看了上面这么多的面试题,是否有点头晕。是的,需要一个总结。接下来,本文将简单总结下一些处理海量数据问题的常见方法,而日后,本BLOG内会具体阐述这些方法。 下面的方法全部来自http://hi.baidu.com/yanxionglu/blog/博客,对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,

2016-07-30 15:17:18 954

转载 第一部分、十道海量数据处理面试题

第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。首先是这一天,并且是访问百度的日志中的IP 取出来,逐个写入到一个大文件中。 注意到IP是32位的,最多有个2^32个IP。 采用映射的方法,比如模1000,把整个大文件映射为1000个小文件, 再找出每个小文件中出现频率最大的IP(可以采用hash_map进行频率统计, 然后再找出频率最大的几个)及相应

2016-07-30 11:58:44 327

原创 C++复习之堆排序&快速排序

堆是具有下列性质的完全二叉树 : 每个节点的值都大于或等于其左右孩子节点的值 , 称为大顶堆;或者每个节点的值都小于或等于其左右孩子节点的值 , 称为小顶堆 .堆排序就是利用堆进行排序的方法 . 基本思想是 : 将待排序的序列构造成一个大顶堆 . 此时 , 整个序列的最大值就是堆顶的根结点 . 将它移走 ( 其实就是将其与堆数组的末尾元素交换 , 此时末尾元素就是最大值 ), 然后将剩余的 n-1

2016-07-30 10:45:28 338

原创 C++复习之简单选择排序&归并排序

简单选择排序 (simple selection sort) 就是通过 n-i 次关键字之间的比较 , 从 n-i+1个记录中选择关键字最小的记录 , 并和第 i(1<=i<=n) 个记录交换之尽管与冒泡排序同为 O(n^2), 但简单选择排序的性能要略优于冒泡排序void selectSort(int *arr, int n) { for (int i = 0; i < n; i++)

2016-07-29 20:48:56 340

原创 C++复习之冒泡排序&插入排序&希尔排序

冒泡排序时间复杂度最好的情况为 O(n), 最坏的情况是 O(n^2) ,基本思想是 : 两两比较相邻记录的关键字 , 如果反序则交换 “`cpp void bubbleSort1(int *arr, int n) { for (int i = 0; i < n; i++) { for (int j = 1; j < n - i; j++) {

2016-07-29 17:21:59 233

原创 C++复习之HashTable的简单实现

hashtable :本文中采用开链法( separate chaining )来处理 “ 冲突 ” ( collision ),而且 hashtable只存储唯一的元素,不存在重复。

2016-07-29 11:52:28 1098

原创 C++复习之实现标准库的字符串操作函数

C++复习之实现标准库的字符串操作函数strcpy 、 strncpy 、 memmove 、 memcpy 、 memset 、 strlen 、 strncat 、 strcmp 、 strncmp 、 strstr 、 strchr 的实现

2016-07-29 10:37:29 364

转载 Java线程池ExecutorService 的理解与使用

接口 java.util.concurrent.ExecutorService 表述了异步执行的机制,并且可以让任务在后台执行。一个 ExecutorService 实例因此特别像一个线程池。事实上,在 java.util.concurrent 包中的 ExecutorService 的实现就是一个线程池的实现。

2016-07-28 10:52:37 6630 2

原创 使用cocos2d-android做最简单的飞机大战

什么是cocos2d-android?用一句话简单来说,cocos2d-android就是cocos引擎的java版本的API。优缺点:其优点是容易使用和入门,不需要使用其他语言交叉编译,其开发和调试相比cocos2d-x等其他版本都比较方便。当然缺点也就显而易见–不能进行跨平台开发。另外随着触控科技加大对c++/lua/js的投入,cocos2d-android也面临着缺乏维护而没落的危机。

2016-07-27 22:09:47 6844 2

原创 Android逆向入门

最近在研究android逆向分析,算是一个入门,现在做一下记录。 java在android 4.4及之前的平台上运行是依赖于Dalvik虚拟机的,虽然google从android5.0开始就推行ART虚拟机,但是并不妨碍android软件在Dalvik上的逆向分析。 可用dex2jar配合jd-gui实现java层的反编译。 Davik虚拟机专门为自己专门设计了一套指令集

2016-03-20 20:41:32 947

原创 java如何把一篇英文按照空格分割并按照字母顺序排序

package com.chenmingcheng;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputSt

2016-03-07 21:56:04 1271

原创 cocos2dx 3.x 之移植到android平台

搞了一晚上加一上午,终于又把SquareHome从VS2013移植到Eclipse上了。为了避免每次移植都要查资料,现在把一些技巧记录下来首先在配置cocos2dx环境的时候,解压完下载的压缩包之后,执行根目录中的setup.py(首先要在机器上安装python环境,需要python27版本,不要安装高版本),配置上ANT、NDK等的环境变量。一开始应该新建一个cocos项目  比如在

2016-02-18 15:26:56 408

原创 在Android中使用反射获取并修改private static final成员

import android.app.Instrumentation;import android.test.InstrumentationTestCase;import android.util.Log;import java.lang.reflect.Field;import java.lang.reflect.Modifier;/** * Created by mark_ch

2015-12-12 22:21:42 4280

原创 使用AndroidStudio进行Android单元测试

import android.app.Instrumentation;import android.test.InstrumentationTestCase;import android.util.Log;/** * Created by mark_chen on 2015/12/11. * 1.使用了AndroidStudio自带的单元测试功能 * a)在(androidTest

2015-12-12 22:16:40 435

原创 如何离线安装GitHub for windows

1、安装前的各种操作:  (1)打开控制面板→ Internet 选项→“安全”选项卡;  (2)选择“可信的站点”→点击“站点”按钮:  (3)弹出的窗口中的文本框中输入点击“添加” https://github-windows.s3.amazonaws.com/ ;  或者去除复选框“对该区域中的所有站点要求服务器验证(https:)”的钩,直接加入 github-wind

2015-10-14 20:40:13 1693 1

原创 设计模式学习之简单工厂+反射+配置文件

3.用反射+配置文件的方法重新实现大话设计模式课本上15章15.7的例题问题分析:相比抽象工厂,用DataAccess类代替了工厂接口以及工厂类,再加上使用反射+配置文件的方式,可以做到不对编译好的程序作出改变就能修改数据库种类,客户端可以只是用DateAccess进行数据库访问实例的创建,达到了解耦的目的。UML图:package com.cmc;//用户数据类public cl

2015-06-23 14:16:37 2070

原创 设计模式学习之备忘录模式:象棋中“悔棋”操作

题目分析:备忘录模式的定义是捕获一个对象的内部状态并在该对象之外保存这个内部状态。从这个模式的定义可知我们需要一个类随时对目标对象的保存和创建进行管理,这个类就是Origintor(发起人)类,同时也用它对当前的状态进行管理,以便随时保存。然后需要一个类CareTaker负责保存好备忘录。UML图:package com.cmc;//棋子类,负责记录当前是哪个棋子以及棋子在棋盘上的位

2015-06-23 14:11:31 3635 1

原创 设计模式学习之装饰模式:IO流的装饰器

IO流的装饰器题目分析:通过对java的io系列类分析得知,java的io流使用了设计模式中的装饰模式,以动态的给一个对象增加职责,能够更加灵活的增加功能。通过看io的源代码得知FilterOutputStream类继承了OutputStream类并拥有父类的一个对象,它和父类具有组合聚合的关系。因此要实现我们自己的加密类只需扩展FilterOutputStream类重写它的wite方法即可

2015-06-23 14:07:04 3114

原创 设计模式学习之状态模式:请假流程

工作流中的请假流程某人提出请假申请,先由项目经理审批,如果项目经理不同意,审批就直接结束如项目经理同意,再看是否超过3天,如果三天以内,审批直接结束否则,交给部门经理,部门经理审核后,无论是否同意,审批直接结束状态类package com.cmc;public abstract class State { public abstract void sh

2015-06-01 20:12:08 2226

原创 设计模式学习之观察者模式

场景:演示注册的投资者在股票市场发生变化时,可以自动得到通知 股民类,包含对股票的走势做出反应的方法:package com.cmc; class Observer {//观察者类,股民观察股票走势,所以就是股民类 private String name; public Observer(String name) { this.name = na

2015-05-31 21:41:19 797

原创 ZigBee入门之Z-Stack协议栈总体设计

视频教程笔记  第四讲:Z-Stack  协议栈总体设计ZigBee 网络中的各种操作需要利用协议栈各层所提供的原语操作来共同完成。原语操作的实现过程往往需要向下一层发起一个原语操作并且通过下层返回的操作结果来判断出下一条要执行的原语操作。Z-Stack 协议栈中提供了一个名为操作系统抽象层OSAL 的协议栈调度程序。对于用户来说,除了能够看到这个调度程序外

2015-05-31 21:06:44 2498

原创 ZigBee入门之基础概念3

第三讲:zigbee术语射频收发器:如cc2420一个节点可以对应多个设备一个设备包含多个端点每个端点又有很多群集(输出群集、输入群集)每个群集有一个或多个属性属性 Attribute 是一个反映物理数量或状态的数据值,比如开关值(On/Off) ,温度值、百分比等。群集(簇) Cluster 是包含一个或多个属性(attribute)的

2015-05-30 21:21:24 1709

原创 设计模式学习之策略模式:容错恢复机制

容错恢复机制应用程序开发中常见的功能程序运行的时候,正常情况下应该按某种方式来做,如果按照某种方式来做发生错误的话,系统并不会崩溃,而是继续运行,能提供出错后的备用方案。日志记录的例子把日志记录到数据库和日志记录到文件当做两种记录日志的策略日志记录的策略接口:package com.cmc;public interface LogStrategy {

2015-05-30 19:35:25 694

原创 设计模式学习之策略模式:报价管理系统

一个报价管理系统在一些CRM(客户关系管理)系统中,会有一个单独的报价管理模块,处理复杂的报价功能普通客户:全价老客户:根据年限,给予折扣大客户:根据累计消费,给予折扣客户购买量:对于新老客户都适用报价人员职位高低:如何实现????一个支付策略的接口package com.cmc;//一个报价接口类,提供报价的接口,传入的参数为钱数pub

2015-05-30 19:11:37 842

原创 ZigBee之基础概念2

设备类型1.协调器  具备协调功能、路由功能2.路由器  具备路由功能3.终端设备  空Note.一个网络当中,只有且必须有一个协调器,可以有多个路由器,也可以有多个终端设备协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道(2.4G一共有16个信道)和一个网络ID(也称之为 PAN ID,即 Personal Area Network ID

2015-05-30 18:04:56 1972

原创 设计模式学习之代理模式

考虑实现一个订单系统:一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人则不能修改。三个属性:产品名称、订购数量、订购人public interface OrderAPI { public String getProductionName() ;//得到产品名称 public void setProductionName(String productionNam

2015-05-25 21:14:19 487

原创 [线段树]线段树 入门

1.定义1.1树 树是图论中的一个概念,在图论中,树(英语:Tree)是一种无向图(undirected graph),其中任意两个顶点间存在唯一一条路径。或者说,只要没有回路的连通图就是树。 1.2二叉树 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left  subtree)和“右子树”(right subtree)。 1.3二叉查找树 (Binary

2015-05-20 19:49:17 463

原创 java如何在文件中读取一个字符串并创建以这个字符为名字的类的对象

我们一般用properties或者XML文件作为资源存储的文件,现在主要介绍一下对properties的操作1.我们在src文件下新建一个名称为config的包2.在config下新建一个file,把它命名为demo.properties3. 把下面的几段文字复制到demo.properties中#commentsusername=oseye4.新建一个叫RunMai

2015-05-18 21:22:52 2663

小米路由停电工作教程

前天晚上我家住的这幢楼停电了,路由器没有电了,我那个悲催啊!一直想发帖,突然间给我了提示?断电不断网!好了,就它啦!于是今天中午动手,现在敲打键盘,有了这篇文章!

2014-03-23

空空如也

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

TA关注的人

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