自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CSDN深蓝居

BI,Architecture,Database,C#,区块链

  • 博客(245)
  • 资源 (5)
  • 收藏
  • 关注

原创 基于Ordinals在比特币L1网络实现EVM图灵完备智能合约支持——BxE协议

BxE协议(Bitcoin x Ethereum Protocol)旨在充分利用比特币强大的安全性、去中心化特性和庞大的网络效应,在其基础上构建一个可编程、跨生态互联的新一代区块链生态系统。通过创新的技术设计,BxE将成为连接比特币与以太坊Web3生态网络的桥梁,推动整个加密经济的发展。BxE协议基于Ordinals协议为基础,在比特币原生网络(Layer1)实现了对以太坊虚拟机EVM的支持,从而让比特币网络能够支持图灵完备的智能合约。

2024-04-16 19:20:46 819

原创 strchecker——Go源码字符串规范检查lint工具

在大型项目开发过程中,经常会遇到打印大量日志,输出信息和在源码中写注释的情况。对于软件开发来说,我们一般都是打印输出英文的日志(主要考虑软件在各种环境下的兼容性,如果打印中文日志可能会出现乱码,另外英文日志更容易搜索,更容易后续做国际化),但是对于我们中国人来说,很容易就把中文全角的中文标点符号一不注意就写到日志中了。不过源码中的注释因为是完全面向开发者的,不会面向客户,所以如果研发团队全是中国人,那么代码注释用中文就更有效率。在实际开发过程中,确实就发现了打印日志中包含了中文标点的情况,但是如果我们直接用

2022-06-11 23:50:03 253 1

原创 新作:轻量级Golang IoC容器—— iocgo

1. iocgo简介习惯于Java或者C#开发的人应该对控制反转与依赖注入应该再熟悉不过了。在Java平台有鼎鼎大名的Spring框架,在C#平台有Autofac,Unity,Windsor等,我当年C#开发时用的最多的就是Windsor。使用IoC容器是面向对象开发中非常方便的解耦模块之间的依赖的方法。各个模块之间不依赖于实现,而是依赖于接口,然后在构造函数或者属性或者方法中注入特定的实现,方便了各个模块的拆分以及模块的独立单元测试。在[长安链]的设计中,各个模块可以灵活组装,模块之间的依赖基于pro

2021-10-12 13:06:13 1670

原创 去中心化数字身份DID简介——五、DID的应用

在上一篇文章中,我们给出了一种零知识证明的方法,解决用户身份属性的隐私问题,下面我们再来谈谈基于DID技术,我们都能在什么场景去应用。0x.0 无密码安全登录这个使用场景大家应该都很熟悉了,就类似于微信扫码登录,当我们要注册或者登录一个网站时,不需要再填写用户名、密码、邮箱之类的信息,只需要用手机里的数字身份APP扫描登录页的二维码,然后在APP中弹出扫码后的信息,选择确认登录即可。使用DID的APP与传统的微信扫码登录不同之处就在于DID中用户的身份信息是用户自己掌握的,而微信扫码登录的身份信息是

2021-03-27 16:20:16 3317 1

原创 去中心化数字身份DID简介——四、用户属性的零知识证明

在上一篇文章中,我们介绍了用户具有多个身份属性时,选择性的把其中的一个属性暴露出来,而不会造成其他信息的暴露。更进一步的情况,某些时候我们只需要验证用户的年龄达到多少岁,或者小于多少岁,但是并不关心用户的具体年龄和出生日期,比如在购买烟酒时,商家需要验证用户的年龄大于18岁。除了年龄,住址、民族等都可能会有对某个断言进行验证的情况。比如某旅游景点,对本市所有居民免费,所以居民只需要证明自己身份证上的住址在某市,而不需要暴露具体的居住地址。这些只给出证明的答案,而不暴露其他任何身份信息的情况,都是零知识证明的

2021-03-27 16:19:35 2693 3

原创 去中心化数字身份DID简介——三、用户属性的选择性披露

在上一篇文章中,我们以最简单的生成DID,颁发VC,验证VP流程介绍了DID的用法,但是在实际生活中,我们并不总是希望直接将整个证件VC亮给验证者看,比如我们去住酒店时,需要登记姓名、身份证号信息,但是如果我们直接把身份证给前台人员的话,前台人员就可以看到我们的民族、住址等信息,对于我们普通人来说,也许觉得没什么,那要是明星、公众人物去住酒店,那么可能前台人员就可能出于各方面的原因偷偷把住址信息记下了或者泄露到网上,给证照本人的生活带来各种麻烦。那么我们有什么办法呢?用户属性的选择性披露能够降低风险。我

2021-03-27 16:18:45 2762

原创 去中心化数字身份DID简介——二、一个完整的DID使用流程

在上一篇文章,我们已经掌握了DID的基本概念,接下来我们用一个具体的场景来看看DID是怎么使用的。0x0. 场景描述小明是一个刚刚从大学毕业的应届毕业生,在毕业当天学校颁发了毕业证给小明对应的数字身份,小明拿到毕业证后第二天去公司入职,其中一个环节,公司HR要求验证小明的学历信息,验证完成,小明入职成功。一般学校会颁发毕业证和学位证两个证,这里我们出于简单起见,就把学位证忽略吧。0x1. Holder小明生成DID标识和DID文档小明要想获得学校颁发的毕业证,那么他必须要有自己的DID,

2021-03-27 16:16:46 4431 4

原创 去中心化数字身份DID简介——一、基本概念

本人最近正在研究数字身份DID技术,该技术在区块链领域目前还比较冷门,并没有什么实际的应用案例,但是数字身份的应用场景广阔,是一个必然会火起来的技术。于是打算写几篇文章,好好讲一下其中涉及到的概念,技术实现和应用场景。先从基本概念讲起:身份:国际电子技术委员会将“身份”定义为“一组与实体关联的属性”。这里的实体不仅仅是人,对于机器或者物体都可以是实体,甚至网络中虚拟的东西也可以是实体并拥有身份。数字身份:随着互联网的出现和普及,传统的身份有了另外一种表现形式,即数字身份。一般认为,数字身份的

2021-03-27 16:15:44 7466 4

原创 UTXO和Account模型一个都不能少

UTXO对于非区块链从业人员来说可能比较陌生,UTXO的全称是Unspent Transaction Output,这中本聪在比特币中的一个天才设计。而Account模型就很常见,也很容易理解,你银行账户里面有多少钱,就是账户模型。关于UTXO的详细探讨,我比较推荐孟岩的一篇文章《其实并没有什么比特币,只有 UTXO》,这里比较详细的讲解了UTXO的原理,以及与Account模型的对比。总的来...

2019-06-12 01:36:56 506

原创 数据库模型设计——历史与版本设计

在企业数据库设计中,经常会遇到一个需求,就是希望把操作之前的数据保留下来,能够看到操作之前是什么数据,操作之后是什么数据。对于这种需求,我们可以使用保留历史数据或者使用版本来实现。 为了能够保留历史数据,在版本设计时有以下方案:   一、使用版本号 版本号是一种常见的版本设计方案,就是在要进行历史数据保留的表上面增加一个版本号字段,该字段可以是DateTime类型,也可以是int类型,每进

2013-09-10 14:24:06 2863

原创 数据库模型设计——关系的实现

在实体关系模型中,我们知道有三种关系:一对一、一对多、多对多。这只是概念上的关系,但是在真实的关系数据库中,我们只有外键,并没有这三种关系,那么我们就来说一说在关系数据库管理系统中,怎么实现这三种关系。一对多这里先讲解一对多,因为这个关系最简单。一对多和多对一是一回事,所以就不再提多对一这个词。一对多的概念是一个对象A会对应多个对象B,而从B的角度看,一个对象B只会对于一个对象A。比如说班

2013-09-10 14:24:04 2514

原创 数据库模型设计——主键的设计

在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键。而对于一个表,由两部分组成:主键和属性。主键的简单定义就是表中为每一行数据的唯一标识。其实更准确的说法,每一行数据的唯一标识是候选键(Candidate Key),一个表中可以有很多个候选键,主键是候选键中的一个,主要用于更方便的检索和管理数据。一个表中可以有多个候选键,但是只有一个主键。由于主键常常用于检索数据

2013-09-10 14:24:02 1911

原创 数据库设计范式1——三范式

一讲到数据库设计,大家很容易想到的就是三范式,但是第四、第五范式又是什么,不是很清楚,三范式到底怎么区分,也不清楚,作为数据库设计的基础概念,我再讲解下数据库范式。   Normal form Brief definition 1NF First normal form Table

2013-09-10 14:23:59 2307

原创 可动态扩展的数据库模型设计

在通常的数据库设计中,我们定义了每个实体有多少个属性,每个属性的数据类型是什么,有多长,是否允许为空,有什么约束条件等,这些定义是完全静态的,系统创建时就全部定义好,不能动态修改。但是对于实体的属性变化很快,或者实体和属性由用户在系统中自行定义的情况下,那么就需要一个可以动态扩展的数据库模型,以保存各种动态产生的数据。 比如我们要做一个电子商务网站,需要建立一个商品表以保存各种要卖出的商品的属性

2013-09-10 14:23:57 6876

原创 One to One 的数据库模型设计与NHibernate配置

在数据库模型设计中,最基本的实体关系有三种:一对一、一对多、多对多。关于一对多和多对多使用的情况较多,之前也有过一些讨论,现在来说明一下在数据库中一对一的模型设计。首先,关系数据库中使用外键来表示一对多,使用中间表和两边的外键来表示多对多,而一对一的话有三种表示方式:一种是使用相同的主键值,第二种是使用单边的外键,第三种就是使用双边外键。1.主键关联比如我们在做一个ER系统时,设计了一

2013-09-10 14:23:55 1953

原创 在MVC中使用Json.Net序列化和反序列化Json对象

在.Net的MVC开发中,经常会使用到Json对象,于是,系统提供了JsonResult这个对象,其本质是调用.Net系统自带的Json序列化类JavaScriptSerializer对数据对象进行序列化。但是这个系统自带的Json序列化对象方法没有Json.Net好用,于是打算有些时候用Json.Net替代默认的实现。要实现有时候用Json.Net,有时候用默认实现,那么就要保证系统中两种实

2013-09-10 14:23:53 5645

原创 iCalendar格式中关于RRule的解析和生成

最近在做一个关于Calendar的项目,相当于Google Calendar或者Outlook中的Calendar。在Calendar的发布和共享中,使用到了iCalendar,是一种日历数据交换的标准,具体参见维基百科:http://zh.wikipedia.org/wiki/ICalendar 由于使用C#开发,所以希望能够找到一个开源或者免费的iCalendar组件,帮助生成.ics格式的

2013-09-10 14:23:50 5093

原创 多语言系统的数据库设计

之前做的项目涉及到中国大陆和纽伦新港的用户使用,也就需要做成一个多语言的系统,现在总结下其中一些经验和思考。 首先我们需要确认我们要做的系统,多语言到底是要做多少种语言,以后会不会要求增加更多的语言。比如我们做一个给中国大陆和纽伦新港使用的系统,可以确定的语言就是简体中文、繁体中文和英语,而且可以确定以后也不会增加语言。确定以后是否需要增加语言这一点很重要,决定了我们在数据库设计时,是否需要考虑

2013-09-10 14:23:48 2722

原创 SQL Server2012在程序开发中实用的一些新特性

SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012 SP1,体检下感觉良好。官方给出了一大堆SQL2012相对于SQL2008R2的新特性,但是大多数对于普通开发人员来说都是浮云,根本用不到,下面就说说一些对于开发人员来说比较有用的新特性。一、增加了Sequence对象。这个对于Oracle用户来说是最熟悉不过的数据库对象了,现在在

2013-09-10 14:23:46 1892

原创 数据库中计算值的更新方法

在做项目时,经常在项目中会遇到有些值是通过其他表经过计算得来的,然后将计算结果保存到数据库中。比如在一个休假系统中,一个员工每年已休天数就是一个计算值,通过SUM员工的所有有效休假申请单可获得。再比如交易系统中的余额字段,对一个账号的所有流水进行SUM,所有收入减去所有支出就是余额。再比订单系统中,订单的总金额字段,就是订单明细的金额的SUM值。 对于这些字段,都有一个共性,那就是这个字段是可以

2013-09-10 14:23:44 2508

原创 数据库SQL开发的一些要点

前段时间做一个项目,其中涉及到报表部分编写了大量复杂的SQL,比如其中的一个存储过程就有700多行。项目上线过后,进入维护阶段,发现大量的SQL很难维护。于是总结点经验教训: 设计 一、数据库命名遵循一些通用规范。 数据库命名规范是个基本的命名标准,每个团队都有自己的命名规范,我们做项目中以全大写下划线分割作为标准。表名或字段名要准确表达其业务含义。以DATE结尾的数据类型都是date类型,

2013-09-10 14:23:41 1877

原创 深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔等

经过了2个多月的改进,终于深蓝词库转换2.0版正式与大家见面了。在1.9版本中增加了对Rime拼音输入法的支持,也得到了网友的反馈,所以在2.0版本中增加了几个新功能:一、支持多种编码的Rime输入法。Rime输入法是一款跨平台的输入法框架,在Windows下叫小狼毫,Linux下叫中州韵,Mac下叫鼠须管。这个输入法框架异常强大,支持各种常用的输入法,而且还可以通过简单的配置自定义输入法

2013-09-10 14:23:39 4256

原创 深蓝词库转换1.9发布——支持英库拼音、搜狗bin格式、FIT、中州韵等

经过了3个多月的沉寂,今天深蓝词库转换终于迎来了1.9版。这次版本升级主要包含了以下新特性: 一、支持微软英库Engkoo拼音输入法。 微软英库(Engkoo)拼音输入法是微软新推出适用于Win8的输入法,虽然还在Beta阶段,但是发展比较迅猛,最近的版本中已经支持文本词库的导入,所以想尝鲜使用英库输入法的同学们不用担心你之前使用的QQ拼音或者搜狗拼音的积累了那么久的词库无法在英库输入法中使用

2013-09-10 14:23:37 2495

原创 NHibernate中关于Inverse的理解和使用

在项目中NHibernate进行ORMapping,操作数据库变得非常简单,但是NHibernate中有很多特性不是很容易理解,比如Inverse这个功能就是其中的一个。 在使用NHibernate进行数据库操作的时候,比如数据插入的时候,经常用到级联功能,比如最常见的就是一个订单对应多个明细行,在保存订单时只需要Save订单对象即可,订单下的所有明细行会级联保存。在对象模型层面,Order对象

2013-09-10 14:23:35 2035

原创 深蓝词库转换1.8发布

经过一段时间网友提出的新的需求,鄙人利用闲暇时间对深蓝词库转换程序进行了升级,现将1.8版本发布。老生常谈,深蓝词库转换是一款.Net 2.0平台的各输入法词库互转程序。有了这个工具,各种词库在各种输入法,PC和手机上都通用了。目前支持的输入法有: PC端:搜狗拼音(文本词库和scel格式细胞词库)QQ拼音(文本词库和qpyd格式分类词库)QQ五笔(纯汉字)谷歌拼音

2013-09-10 14:23:32 2285

原创 在NHibernate的单表继承模式下通过父类Repository查询子类

在NHibernate中经常遇到继承与关系数据库的ORMapping的问题,我之前的一篇博客(http://www.cnblogs.com/studyzy/archive/2011/08/16/2140675.html)介绍了有3种常用的实现方式: Concrete Table Inheritance(具体表继承) Single Table Inheritance(单表继承)

2013-09-10 14:23:30 2178

原创 如何避免搭便车效应

关于搭便车效应(Free rider problem),这是在经济学里面很出名的一个问题。我本人不是学经济学的,所以对其理解不算深,但是在生活中中却经常遇到搭便车的情况,当然,有些时候我也是个搭便车的人。下面就谈谈搭便车效应和解决办法。 百度百科上说搭便车效应是指:在利益群体内,某个成员为了本利益集团的利益所作的努力,集团内所有的人都有可能得益,但其成本则由这个人承担。由于利益集团的利益是由组成

2013-09-10 14:23:28 5918

原创 数据库设计指南之我见

网上流传着一份关于数据库设计的文档《数据库设计指南》收集了几十个数据库设计大牛在项目中总结出来的Best Practice最佳实践,我最近也花了点时间细读并结合自身实际进行了总结,感觉自己在项目中还是有不少不足的地方,下面逐条分析下。(黑字为原文,红字为我的见解) 数据库设计指南 如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据

2013-09-10 14:23:25 2622

原创 如何使用Fluent Nhibernate中的Automapping进行OR Mapping映射

由于在项目中使用了NHibernate来作为ORMapping构建数据访问层,那么就必须要配置Object和DataTable的映射。最早的项目中,我们使用了最传统的XML配置文件的方式编写映射关系,但是这样太麻烦,每次修改class和表时都要去修改对应的XML文件,而且还容易出错,一定有疏忽遗漏的地方,还不容易找出错误,所以在第二个项目中,我们使用了Fluent NHibernate的Mappi

2013-09-10 14:23:23 3743

原创 PowerDesigner中转换物理模型时的命名转换

最近在使用PowerDesigner建模数据库,在使用中积累了一些遇到的问题和解决办法,记录下来,希望对遇到同样问题的朋友有所帮助。 早期在PowerDesigner中,只有概念模型和物理模型,一般是先建立概念默认,然后根据具体的数据库生成物理模型。但是概念模型太抽象,物理模型太具体,于是在PowerDesigner15版本之后出现了“逻辑模型”,能够从概念模型和物理模型各自的角度上都容易理解。

2013-09-10 14:23:21 1883

原创 Git bash常用命令

最近项目中使用到了GIT,所以记录一下GIT中常用的命令。 GIT使用的客户端有Git Bash:http://code.google.com/p/msysgit/ 还有乌龟TortoiseGit:http://code.google.com/p/tortoisegit/   git status查看本地修改与服务器的差异。 git add .将这些差异文件添加,这样就可以提交了。 g

2013-09-10 14:23:19 4027

原创 各大输入法分类词库内部格式的简单比较

之前一直利用闲暇时间做深蓝词库转换,对各大输入法的分类词库有了一些大概的了解,下面来比较下各个词库格式的特点: 1.搜狗细胞词库scel格式 scel格式是采用Unicode编码了汉字、拼音。整个scel格式的内容是:头信息、词库简介、拼音组合列表、词条列表。scel格式的词条的数据结构设计的还是比较好的,它使用了拼音指针来避免在词条中出现重复的拼音来占据内容,也会把同音词合并在一起,节省空

2013-09-10 14:23:16 4836 1

原创 深蓝词库转换1.7发布,支持QQ分类词库解析

昨晚收到了keke的邮件,得知了该大侠对QQ分类词库的解析有所研究,并Java实现了对QQ分类词库的解析,大喜,于是今天通过一天的努力,终于在C#中实现了对QQ分类词库(qpyd格式)的解析。 qpyd格式的解析一直是深蓝词库转换功能上的遗憾,我在一年多前的博客中提到了希望实现该功能,但是只可惜鄙人能力有限,不能悟透其中的格式,无法解析出来,现在有了keke大侠的帮助,同时还有Java源码作为参

2013-09-10 14:23:14 1478

原创 深蓝词库转换1.6发布

由于在技术上和功能上没有什么突破,一直心里的痛就是对QQ拼音分类词库(qpyd格式)的解析,一直无从下手,所以这半年来我一直都没有发布新版本的“深蓝词库转换”。期间也收到了很多朋友的来信,提出了修改意见和建议,我表示非常感谢。最近听闻搜狗细胞词库(scel格式)的内部格式有所改变,最新的词库文件1.5版无法进行解析了,所以我经过调试修改了解析的算法,发布1.6版。 这次发布我个人觉得没有什么大的

2013-09-10 14:23:12 1650

原创 网上买火车票网站的Bug,实在是留给程序员的福利

年关将近,又到了春运时间,火车票自然是这段期间最紧俏的资源了。与以往几十年不同的是,今年开通了网络购票、电话订票和真正的实名制功能。其中最让码农眼前一亮的就是网络购票功能了。写了那么多年的程序,终于有用武之地了。我作为一个码农,写这方面的程序,算下来已经有7年历史了吧。最早的时候是在大学做选课程序(准确的说应该是抢课程序),后来帮同学做刷票程序,再到后来做WebGame的外挂,各种抓包分析程序

2013-09-10 14:23:10 1612

原创 使用SharpZipLib压缩打包多个内存中的文件

SharpZipLib是C#写的开源压缩解压缩组件,最近项目上遇到一个需求:根据用户选择的项目生成CSV文件并下载,后来改为同时生成2个CSV文件下载下来。想到的解决办法就是将2个CSV文件打包成一个Zip文件,然后供用户下载。 SharpZipLib可以通过很简单的代码就将多个文件打包成一个zip包,形如: using (ZipFile zip = ZipFile.Create(@"E:\t

2013-09-10 14:23:07 1980 1

原创 对象的继承关系在数据库中的实现方式和PowerDesigner设计

在面向对象的编程中,使用对象的继承是一个非常普遍的做法,但是在关系数据库管理系统RDBMS中,使用的是外键表示实体(表)之间的关系,那么对于继承关系,该怎么在RDBMS中表示呢?一般来说有3种实现方式: Concrete Table Inheritance(具体表继承) Single Table Inheritance(单表继承) Class Table Inheritance

2013-09-10 14:23:05 975

原创 深蓝词库转换1.5发布

经过了漫长的修改,终于把深蓝词库转换1.5完成了。这次修改注意包括以下改进: 1.增加百度输入法bdict词库导出的功能。 百度输入法也推出了自己的分类词库,词库格式为bdict,这个词库格式比较简单,用户如果喜欢某个词库,可以将该百度分类词库转换为自己习惯的输入法。比如我们觉得百度分类词库中的动漫作品词汇这个词库不错,但是用的又是搜狗输入法,所以需要将该词库转换为搜狗输入法。   2.

2013-09-10 14:23:03 1085

原创 如何将数据库从SQL Server迁移到MySQL

一、迁移Database Schema。 首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型。具体操作是在Powerdesigner中选择“File”,“Reverse Engine”再选择Database,将DBMS选择为SQL Server,如图: 然后选择数据源,也就是要具体连接到的SQL Server数据库服务器,然后选择要逆

2013-09-10 14:23:01 1088

原创 NHibernate中对同一个对象的Lazyload要设置一致

在NHibernate中出于性能的考虑,经常使用Lazyload的方式来加载关联的对象,关于什么是Lazyload,以及怎么使用,可以参见博客园中的文章,比如:http://www.cnblogs.com/lyj/archive/2008/10/28/1321494.html 常用NHibernate.ByteCode.Castle动态代理来实现Lazyload,使用该程序集会在运行时创建实体对

2013-09-10 14:22:59 951

跨链技术与应用.pptx

本PPT介绍了区块链技术的发展,跨链的分类:公证人模式、侧链中继模式、哈希时间锁模式、分布式密钥模式,并介绍了跨链能应用的场景。

2020-11-16

积分上链方案.pptx

列出了区块链+积分的几种方案,方便大家做积分上链的参考。主要包括:传统积分方案的问题,最简单区块链积分方案,积分的互换,积分的扩展方案,还有积分+商品溯源的方案。

2020-11-16

最好的git中文教程

看日记学Git系列。总共112页。是学习使用Git作为源代码管理的很好的入门教程。

2013-01-05

wwf step by step

wwf的全英文书籍.

2007-08-31

企业应用架构模式

企业应用架构模式,英文版。经典之作。希望大家喜欢

2007-02-26

空空如也

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

TA关注的人

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