自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃豆豆的博客

从小就爱吃豆豆

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

原创 MySQL 存储表情字符

修改服务器端修改数据库配置文件/etc/my.cnf,添加下面的配置,然后重启服务器:1234567[mysqld]character-set-server=utf8mb4collation_server=utf8mb4_unicode_ciinit-co

2017-03-14 16:37:46 538

原创 Lisp学习--Windows下面的开发环境搭建

很久以前,就准备学习Lisp,但是遇到不少困难,社区太凌乱,也一直很犹豫,直到看了《Common Lisp - 想说爱你不容易》,想看看Common Lisp怎么样,之前都是拿Lisp的方言Schemel来练习的。正好有一篇Windows下如何安装使用CLISP的文章《Lisp语言: 在Windows下搭建CLisp环境》,于是在官网下载了一个安装程序 http/SF     (sources

2017-03-14 16:30:42 761

原创 使用反射+缓存+委托,实现一个不同对象之间同名同类型属性值的快速拷贝

最近实践一个DDD项目,在领域层与持久层之间,Domain Model与Entity Model之间有时候需要进行属性值得拷贝,而这些属性,尽管它所在的类名称不一样,但它们的属性名和属性类型差不多都是一样的。系统中有不少这样的Model需要相互转换,有朋友推荐使用AutoMapper,试了下果然不错,解决了问题,但作为一个老鸟,决定研究下实现原理,于是动手也来山寨一个。为了让这个“轮子”尽量有

2017-03-14 16:14:12 446

原创 Erlang语言学习入门

这是一个命令行程序,可以直接在里面输入表达式进行计算,例如来一个简单的: Erlang R15B01 (erts-5.9.1) [smp:4:4] [async-threads:0]Eshell V5.9.1  (abort with ^G)1> 100+300.4002>  注意在语句的结尾输入“.”以表示完成,回车就开始计算结果了

2017-03-14 16:13:22 590

原创 PostgreSQL的.NET驱动程序Npgsql中参数对象的一个Bug

最近将公司的项目从SqlServer移植到PostgreSQL数据库上来,在调用数据库的存储过程(自定义函数)的时候,发现一个奇怪的问题,老是报函数无法找到。先看一个PgSQL存储过程: CREATE OR REPLACE FUNCTION updateattention(dm citext)  RETURNS void AS$BODY$DECLARE 

2017-03-14 16:10:47 709

原创 Linux设备文件三大结构:inode,file,file_operations

驱动程序就是向下控制硬件,向上提供接口,这里的向上提供的接口最终对应到应用层有三种方式:设备文件,/proc,/sys,其中最常用的就是使用设备文件,而Linux设备中用的最多的就是字符设备,本文就以字符设备为例来分析创建并打开一个字符设备的文件内部机制。struct inodeLinux中一切皆文件,当我们在Linux中创建一个文件时,就会在相应的文件系统创建一个inode与之对

2017-03-14 16:09:35 749

原创 Android 6.0权限

一、概述        在Android6.0之前的系统中,APP只要在AndroidManifest.xml声明了权限,就获得了授权,用户只能选择授权或者不安装该应用。Android 6.0在原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测,使用:日历、摄像头、通讯录、地理位置、麦克风、电话、短信、存储空间、身体传感器等权限都需要在运行时判断,使用

2017-03-14 16:04:37 560

原创 从最简单的HelloWorld理解MVP模式

大多数编程语言相关的学习书籍,都会以hello,world这个典型的程序作为第一个示例。作为Android应用开发者,无论使用eclipse还是用android studio,在新建项目的时候,一直按IDE默认选择项,下一步进行下去,就会创建出一个可以运行的hello,world应用程序。对于这个程序,可以认为是采用MVC模式,对应关系为:View:对应于布局文件Model:业务逻辑和实体

2017-03-14 15:56:55 586

原创 DataSet、DataTable和DataGridView知识备忘

datatable中,获取第i行j列的单元格内容:             string str = DataSet.Tables[0].Rows[i][j].ToString();datagridview中,获取第i行j列的单元格内容:             string str =  DataGridview.Rows[i].Cells[j].Value.ToString();

2017-03-14 15:56:20 597

原创 Windows 窗体启动和关闭的事件顺序

对于关注对 Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。当某种情况需要小心处理事件时(如重绘窗体的某些部分时),必须知道事件在运行时的确切引发顺序。本文提供了一些有关在应用程序和控件的生命周期中的几个重要阶段中的事件顺序的详细信息。对于验证这些事件的激发顺序有一个很简单的方法,就是创建这些事件的处理函数,即使什么事情都不做。然后在每

2017-03-14 15:54:15 687

原创 VB二进制文件读写

数组存取 存数组Private Sub Command2_Click()Dim fileNumber As IntegerDim S9 As StringDim k As IntegerDim l As Integer On Error Resume NextfileNumber = FreeFile() S9 = "D:\zs.txt" 

2017-03-14 15:53:37 4029

原创 C#操作符的重载

操作符也是可以重载的,先总结一下操作符的性质:如我们所知,操作符在不同的情况下有不同的语义,具体取决于它所操作的类型。例如,操作符“+”在操作数值类型的时候意味着“加”,在操作字符串时意味着“连接”。每个操作符都有一个优先级。例如,操作符“*”具有比操作符“+”更高的优先级。意味着表达式 a+b*c 等同于 a+(b*c)。每个操作符还具有一个结合性。 是它定义了操作符从左向右求值还是从右

2017-03-14 15:44:02 484

原创 虚方法(virtual)和抽象方法(abstract)的区别

虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢?1. 虚方法必须有实现部分,抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。如://抽象方法public abstract class Animal{    public abstract void Sleep();    public abstract void Ea

2017-03-14 15:43:32 369

原创 用Spark学习矩阵分解推荐算法

1. Spark推荐算法概述    在Spark MLlib中,推荐算法这块只实现了基于矩阵分解的协同过滤推荐算法。而基于的算法是FunkSVD算法,即将m个用户和n个物品对应的评分矩阵M分解为两个低维的矩阵:Mm×n=PTm×kQk×nMm×n=Pm×kTQk×n    其中k为分解成低维的维数,一般远比m和n小。如果大家对FunkSVD算法不熟悉,可以复习对应的原理

2017-03-14 15:38:53 562

原创 SQL Server计算列

计算列由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。  例如,在 AdventureWorks 示例数据库中,Sales.SalesOrderHeader 表的 TotalDue 列具有以下定义:TotalDue AS Subtotal + TaxAmt + Freight。

2017-03-14 15:38:16 1785

原创 为VS2010默认模板添加版权信息

通过以下方式可以自定义CS类文件代码模板(以下为VS2010,VS2008类似):1,打开VS的安装目录,例如 D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\20522,打开文件 Class.zip,找到文件 Class.cs,在文件头部加上下面的内容:

2017-03-14 15:35:48 562

原创 调用PostgreSQL存储过程,找不到函数名的问题

PostgreSQL的表,函数名称都是严格区分大小写的,所以在使用的时候没有注意大小写问题容易导致找不到函数名的错误,但最近两天我们发现,如果函数参数使用了自定义的数据类型,也会发生这个问题。问题描述: 下面的示例测试代码:  PWMIS.DataProvider.Data.AdoHelper db = MyDB.GetDBHelperByConne

2017-03-14 15:30:53 905

原创 PDF.NET数据开发框架实体类操作实例

PDF.NET数据开发框架实体类操作实例(MySQL)的姊妹篇,两者使用了同一个测试程序,不同的只是使用的类库和数据库不同,下面说说具体的使用过程。1,首先在App.config文件中配置数据库连接字符串:  xml version="1.0" encoding="utf-8" ?>configuration>  connectionStrings>

2017-03-14 15:29:38 736

原创 架构重构改善既有代码的设计

当架构模型进行迭代的过程中,必然伴随着对模型进行修改和改进。我们如何防止对模型的修改,又如何保证对模型进行正确的改进?  Context  架构模型通过精化、合并等活动之后,将会直接用于指导代码。而这个时候,往往就会暴露出一些问题出来,通常在实际编码中,发现架构存在或大或小的问题和错误,导致编码活动无法继续。这时候我们就需要对架构模型进行修改了。而架构设计的过程本身是一个迭代的过程

2017-03-14 15:28:39 326

原创 机器学习算法的随机数据生成

在学习机器学习算法的过程中,我们经常需要数据来验证算法,调试参数。但是找到一组十分合适某种特定算法类型的数据样本却不那么容易。还好numpy, scikit-learn都提供了随机数据生成的功能,我们可以自己生成适合某一种模型的数据,用随机数据来做清洗,归一化,转换,然后选择模型与算法做拟合和预测。下面对scikit-learn和numpy生成数据样本的方法做一个总结。1. numpy随机

2017-03-14 15:26:43 840

原创 逻辑回归原理小结

逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。那为什么有“回归”这个误导性的词呢?个人认为,虽然逻辑回归是分类模型,但是它的原理里面却残留着回归模型的影子,本文对逻辑回归原理做一个总结。1. 从线性回归到逻辑回归    我们知道,线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θθ,满足Y=XθY=X

2017-03-14 15:25:15 1824

原创 精确率与召回率,RoC曲线与PR曲线

在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢?    首先,我们需要搞清楚几个拗口的概念:1. TP, FP, TN, FN  True Positives,TP:预测为正样本,实际也为正样本的特征数  False Positives,FP:预

2017-03-14 15:11:17 524

原创 梯度下降(Gradient Descent)小结

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。1. 梯度    在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂

2017-03-14 15:10:30 727

原创 MD5骨骼动画模型加载

前面我们分析了静态模型OBJ格式,桢动画模型MD2,这篇主要分析骨骼动画MD5的一些概念并且实现。  混合桢动画有计算简单,容易实现等优点,但是在需要比较细致的效果时,则需要更多的关键桢,每桢都添加相同的顶点,如果模型再细分一些,则比较恐怖了。在这基础上,则发展出了骨骼动画模型,原理说起来很简单,比如我们人类,做的各种动作具体都是由几个关节点来控制,比如你抬腿,你只把你大腿的骨骼调动起来,

2017-03-14 15:07:39 580

原创 初试PyOpenGL四 (Python+OpenGL)GPU粒子系统与基本碰撞

在初试PyOpenGL一 (Python+OpenGL)讲解Pyopengl环境搭建,网格,球体,第一与第三人称摄像机的实现。在初试PyOpenGL二 (Python+OpenGL)基本地形生成与高度检测 里以用高程图生成地形以及以球体做三人称漫游。初试PyOpenGL三 (Python+OpenGL)GPGPU基本运算与乒乓技术 里实现了基本的GPGPU运算。  我认为比较完

2017-03-14 15:02:25 1715

原创 Ogre2.0 全新功能打造新3D引擎

不知当初是在那看到,说是Ogre2.0浪费了一个版本号,当时也没多想,以为没多大更新,一直到现在想做一个编辑器时,忽然想到要看下最新版本的更新,不看不知道,一看吓一跳,所以说,网络上的话少信,你不认识别人,别人张嘴就来,对别人也没损失,还可以装B下,靠.  从现在Ogre2.1的代码来看,大约总结下,更新包含去掉过多的设计模式,SoA的数据结构(用于SIMD,DOD),新的线程模式,新的渲

2017-03-14 15:01:24 1064

原创 Ogre2.1 Hlms与渲染流程

每桢场景流程  一 所有场景更新,场景更新包含的内容如下。场景动画 _applySceneAnimations所有节点数据 UPDATE_ALL_TRANSFORMS骨骼动画 UPDATE_ALL_ANIMATIONS所有模型的AABB。(ObjectData)UPDATE_ALL_BOUNDS所有光源的AABB。 UPDATE_ALL_BOUNDS生成光源列表。BUILD_LIG

2017-03-14 14:59:45 705

原创 python模块之re正则表达式

一、简单介绍正则表达式是一种小型的、高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分。在python中,主要通过re模块来实现。正则表达式模式被编译成一系列的字节码,然后由用c编写的匹配引擎执行。那么正则表达式通常有哪些使用场景呢?比如为想要匹配的相应字符串集指定规则;该字符串集可以是包含e-mail地址、Internet地址、电话号码

2017-03-14 14:57:11 365

原创 Web前端设计模式--制作漂亮的弹出层

设计场景:       Ben最近在负责一个购书网站,在网站的首页上,有一个叫做“最新上架”的板块,板块的内容比较简单,只有书籍名称,作者姓名和上架时间(如图),当初设计的时候并i没有过于丰富的构思...             现在问题来了,这个版块不大,更新频率却很高,每天都有十数条最新的信息上去,浏览网站的会员对于最新图书的了解和需求越来越大,因此需要对这个板块进行改

2017-03-14 14:56:08 1641

原创 离线系统表单设计

在这个离线系统中,表单无疑是构成这个离线系统的视图部分,作为最前端,与客户的操作最密切相关的一块,所以我们有必要先了解一下HTML5的Forms API,它有如下特性: 表单仍然使用Form元素作为容器,我们可以在其中设置基本的提交性质;用户或者开发人员提交页面的时候,表单仍用于向服务器端发送表单中控件的值;沿用之前的表单控件及其使用方法,并不断发展和增加新的控件和功能;

2017-03-14 14:46:22 894

原创 使用Audio API设计绚丽的HTML5音乐播放器

HTML5 有两个很炫的元素,就是Audio和 Video,可以用他们在页面上创建音频播放器和视频播放器,制作一些效果很不错的应用。无论是视屏还是音频,都是一个容器文件,包含了一些音频轨道,视频轨道和一些元数据,这些是和你的视频或者音频控件绑定到一块的,这样才形成了一个完整的播放组件。浏览器支持情况:浏览器支持情况编解码器

2017-03-14 14:45:52 543

转载 使用HTML5 WebDataBase设计离线数据库

基于HTML5的Web DataBase 可以让你在浏览器中进行数据持久地存储管理和有效查询,假设你的离线应用程序有需要规范化的存储功能,那么使用Web DataBase,可以使你的应用程序无论是在离线或者在线或者网络不通畅情况下都可以将数据保存在客户端。下面是HTML5 DataBase中两个不同的DataBase的比较,摘自http://www.html5rocks.com/en 上面

2017-03-14 14:43:00 741

原创 使用HTML5 WebStorage API构建与.NET对应的会话机制

HTML5的Web Storage API,我们也称为DOMStarage API,用于在Web请求之间持久化数据。在Web Starage API 出现之前,我们都是将客户端和服务端之间的交互数据存储在远程服务器上,随着Web Starage API的出现,我们可以在客户端存储我们重复访问的交互数据,用户在打开浏览器的时候,可以快速地读取到数据,减少了用户等待,数据流量。在Web Sta

2017-03-14 14:42:25 521

原创 使用HTML5 的跨域通信机制进行数据同步

离线应用系统的设计目标就是在网络离线情况下依然可以操作我们的应用系统,并在网络畅通的情况下与服务器进行数据交互。 所以离线应用系统最终会做成类似C/S架构的客户端应用程序。这边基于Chrome或者 Safari浏览器的 Web Application(Web 应用程序插件)无疑是最好的选择。 这边以Chrome 的 Web Application 为例,离线系统做成Web 应用程序

2017-03-14 14:40:38 783

原创 MyBatis中多对多关系的映射和查询

先说一下需求:  在页面上显示数据库中的所有图书,显示图书的同时,显示出该图书所属的类别(这里一本书可能同时属于多个类别) 测试环境:MySQL、MyEclipse创建表:  笔者这里使用 中间表 连接 图书表 和 图书类别表,图书表中 没有使用外键关联 图书类别表  而是在中间表中引用了 图书主键 和 类别主键   通过中间表来 表示 图书

2017-03-14 14:39:56 684

原创 从jvm的角度来看单例模式

最近在看jvm,发现随着自己对jvm底层的了解,现在对java代码可以说是有了全新的认识。今天就从jvm的角度来看一看以前自以为很了解的单例模式。了解单例模式的人都知道,单例模式有两种:“饿汉模式”和“懒汉模式”。引用一段网上对这两种模式的介绍:“饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全。饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的

2017-03-14 14:36:39 545

原创 Javascript对象

这次的分享,主要还是想跟大家聊聊Javascript语言中很重要的概念之一,对象。为什么说之一呢?因为Javascript其他重要概念还包括:作用域 作用域链 继承 闭包 函数 继承 数组 ...... 有机会会跟大家分享这些概念的。以下的介绍会分为如下:1:前言2:概述      2.1:对象创建      2.2:对象键名与键值      2.3:对

2017-03-14 14:35:51 278

原创 CSS margin详解

以下的分享是本人最近几天学习了margin知识后,大有启发,感觉以前对margin的了解简直太浅薄。所以写成以下文章,一是供自己整理思路;二是把知识分享出来,避免各位对margin属性的误解。内容可能会有点多,但都是精华,希望大家耐心学习。 以下的分享会分为如下内容:1.margin 属性的简单介绍  1.1:普通流的 margin 百分比设置  1.2:绝

2017-03-14 14:34:46 737

原创 深入理解javascript函数定义与函数作用域

最近在学习javascript的函数,函数是javascript的一等对象,想要学好javascript,就必须深刻理解函数。本人把思路整理成文章,一是为了加深自己函数的理解,二是给读者提供学习的途径,避免走弯路。内容有些多,但都是笔者对于函数的总结。  1.函数的定义  1.1:函数声明  1.2:函数表达式  1.3:命名函数的函数表达式

2017-03-14 14:32:31 360

原创 Javascript中构造函数与new命令

典型的面向对象编程语言(比如C++和Java),存在“类”(class)这个概念。所谓“类”就是对象的模板,对象就是“类”的实例。但是,在JavaScript语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)。 以下的内容会分为如下细节:1.对象的概念2.构造函数3.new 命令  3.1:基本

2017-03-14 14:31:56 349

空空如也

空空如也

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

TA关注的人

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