自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术专栏

专注成就专业,兴趣成就事业

原创 整理一下以前写的俄罗斯方块的文章

很早以前写了一些俄罗斯方块系列的文章,很多人读,一直有很多人留言提问,我整理下,定置起来,如果有时间,根据自己的理解,继续完善一下。希望大家喜欢。学习C#从俄罗斯方块开始(一)概述学习C#从俄罗斯方块开始(二)俄罗斯方块的规则和算法的简单实现学习C#从俄罗斯方块开始(三)俄罗斯方块的优化和美化因为时间关系,根据自己对俄罗斯方块的理解些了以上的三个文章,大家希望看到如何更新,写一些什么内容,我

2015-07-18 14:52:32 2840

原创 C#多线程系列

个人感觉C#的编程,除了对算法和类库的使用以外,达到一定的水平以后,多线程的使用将会成为一个很大的瓶颈。所以重新花费时间读了一本书:《.net 4.0面向对象编程漫谈(应用篇)》里面关于多线程的描述。自己做了一个读书笔记,把多线程部分的要点进行了梳理,并且适当的加上了一些自己的测试和理解。整理出来,作为一个摘要,以便自己和同事们拿出来学习和使用。同时希望各位博友进行论证,大家一起学习和进步。 ...

2015-07-06 11:06:29 1765

原创 vnpy源码阅读学习(4):自己写一个类似vnpy的界面框架

自己写一个类似vnpy的界面框架概述通过之前3次对vnpy的界面代码的研究,我们去模仿做一个vn.py的大框架。巩固一下PyQt5的学习。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传这部分的代码相对来说没有难度和深度,基本上就是把PyQt5的组件进行了使用。主要应用了QVBoxLayout布局在交易下单的窗体tradingWidget上使用,其他的窗体都大多数用了Q...

2020-04-27 11:21:26 120

原创 vnpy源码阅读学习(3)学习vnpy的界面的实现

通过简单的学习了PyQt5的一些代码以后,我们基本上可以理解PyQt的一些用法,下面让我们来先研究下vnpy的UI部分的代码。首先回到上一节看到的run.py(/vnpy/example/trade/run.py)的关于UI部分的代码。生成QApplication部分qapp = create_qapp()我们跟踪得到 create_qapp() 方法是写在 "/vnpy/trader/u...

2020-03-30 10:56:18 97

原创 vnpy源码阅读学习(2)PyQt5的学习

PyQt5的学习花费了一个下午把PyQt5大概的学习了下。找了一个教程 PyQt5教程 跟着挨着把上面的案例做了一遍,大概知道PyQt5是如何生成窗体,以及控件的。基本上做到如果有需求要实现,查查手册,搜搜百度能实现的水平。另外强烈推荐:PyQt5图形界面编程PyQt5就是python的GUI库,用它来做一些桌面软件,是QT的python版本。具体的简介就不赘述了。记录点自己学习的干货。使...

2020-03-28 16:01:24 99

原创 vnpy源码阅读学习(1)准备工作

目标通过阅读vnpy,学习量化交易系统的一些设计思路和理念。通过阅读vnpy学习python项目开发的一些技巧和范式通过vnpy的设计,可以用python复现一个小型简单的量化交易系统看看是否可以用java或者.net做一个类似的量化交易框架准备工作在阅读所有的源码之前,我们先查找一下前人做过的一些工作。比如关于vnpy的源码阅读,评价,工作原理。避免我们走弯路。我找到了一下文档。...

2020-03-11 10:47:27 133

原创 CIFAR-10 DEMO代码阅读与理解

1、首先打开cifar_train.py 找到最后if __name__ == '__main__': tf.app.run()这个代码是让所有的参数生效类似tf.app.flags.DEFINE_string()2、开始执行main()函数def main(argv = none): cifar10.maybe_download_and_extract() if tf.gfi...

2020-03-11 10:47:12 72

原创 tf.train.string_input_producer

tf.train.string_input_producer( string_tensor, num_epochs=None, shuffle=True, seed=None, capacity=32, shared_name=None, name=None, cancel_op=None)把输入的数据进行按照要求排序成一个队列...

2018-09-27 14:24:36 3905

原创 tf.reshape

tf.reshape(tensor, shape, name=None)具体的理解:就是把一个tensor重新分配到新的数组中去,进行排列。shape填写一个一纬数组.tensor1 = tf.constant([0,1,2,3,4,5,6,7,8])r1 = tf.reshape(tensor1,[3,3,1])r2 = tf.reshape(tensor1,[3,1,3])#re...

2018-09-27 13:55:37 1242

原创 tf.strided_slice的用法和理解

函数的参数如下def strided_slice(input_, begin, end, strides=None, begin_mask=0, end_mask=0, ellips...

2018-09-27 10:11:41 2563

转载 Ubuntu18.04安装CUDA9.0时,Error: unsupported compiler: 7.3.0的解决方案

在Ubuntu18.04中安装CUDA 9.0时,会遇到Error: unsupported compiler: 7.3.0的错误。其原因是Ubuntu18.04的编译器版本过高,因此只需要安装较低版本的gcc、g++即可。具体解决方法是:sudo apt install gcc-6 g++-6sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gccsudo...

2018-09-20 00:05:34 1636

原创 小米笔记本Pro ubuntu 18.04安装显卡驱动

小米的笔记本安装ubuntu.显卡默认用的是集成显卡。如果要用NVIDIA的显卡。需要安装驱动,具体如下:小米启动的时候,出现小米的Logo的时候,按住F2 , 进入BOIS ,选择Security。设置User password。把Secure Boot设置为disabled。这一步很重要,否则显卡程序怎么都安装不成功。进入系统以后:启动终端输入以下命令:sudo add-apt-re...

2018-09-19 15:11:47 6297 4

原创 未能加载文件或程序集“CefSharp.Core.dll”或它的某一个依赖项

win 2012 server系统 CefSharp 67.00:System.IO.FileNotFoundException: 未能加载文件或程序集“CefSharp.Core.dll”或它的某一个依赖项。找不到指定的模块.解决方法: 需要先下载安装 Visual C++ Redistributable Packages for Visual Studio 2015 x86...

2018-09-14 11:51:06 11150

原创 Linux磁盘与文件管理

dumpe2fsdumpe2fs [-bh] 设备文件名-b 列出保留为坏道的部分-h 列出superblock 的数据磁盘目录与容量:df, dudf [-ahiHTm] [目录与文件名]-a 列出所有的文件系统-k 以kb的容量显示文件系统-m 以mb的容量显示文件系统-h 以人易于阅读的数据显示文件系统-H 以1000代替1024-T 连同该分区的文件...

2018-07-16 23:50:51 123

原创 Linux常见文件的操作

常见目录说明 目录 说明 /bin 系统命令,单用户维护模式下还能被操作的命令 /boot 开机使用到的文件,包括Linux内核文件,以及开机菜单和开机需要的配置文件 /dev 设备文件 /etc 配置文件 /home 用户文件夹 /lib 开机需要用到的类库 /root root的主文件夹...

2018-07-15 23:57:37 234

原创 Linux的文件权限的读书笔记

文件权限的概述linux文件权限是一个非常基础和重要的一个概念。所有的文件分为三个组,常见的有三种权限。 三个组:文件所有者,文件组,其他人 三种权限:r(可读) w (可写) x(可执行)权限是有文件类型,owner,group,other 组成,类型一个字符,其他三个组每个三个字符,共10个字符-rwxr-xr--drwxr-xr--权限操作的几个命令chow...

2018-07-15 23:12:55 112

原创 常见的Linux命令整理

最近公司同事推荐我看《鸟哥的Linux私房菜》这本书。这本书非常适合零基础的人去学习Linux。手头又没有Linux的机器。不能经常的练习,而且健忘的厉害,所以做一下记录,方便回顾复习。第五章六个终端tty1~tty6,分别使用ctril + F1,F2……F6来切换xwindow命令的启动startx常见的命令date 时间命令date + %Y%m...

2018-07-15 23:00:31 176

原创 如何把asp.net core的文件作为服务在windows下面部署

把Asp.netcore在Linux部署遭遇到部分库无法使用的情况,我决定吧asp.net core部署到Windows 服务器上。 但是如果当做传统的ASP.net文件来部署,发现行不通。网上讲了很多的操作步骤,但是得重启服务器,懒得重启了。 直接运行了生成的exe是可以访问的。但是当用户注销以后,必须要有问题。于是想到,把.net的exe当做服务就可以了。 找到了一个很好的工具 ns...

2018-07-13 17:07:18 1809

原创 安装WSL并且部署.net Core

什么是WSLWindows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 “Trusty Tahr”映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。安装WSL管理...

2018-07-13 17:02:41 852

原创 ASP.Net Core刚刚踩过几个坑

接触微服务的思想以后,甚是认同。综合考虑建议公司转成java来做开发,奈何目前的几个元老都是.net人员。于是决定用.net Core。方便在linux和docker中去部署。1、System.Drawing.Common这个库在.netcore中使用不会提醒任何依赖.net 框架,但是却无法在linux上使用。提示找不到gdiplus,照着网上的方法去安装gdiplus,然并卵。 ...

2018-07-13 16:55:45 2584 4

原创 .net 一个可以像操作XML一样操作HTML的文档的类库 HtmlAgilityPack

具体操作和使用,稍后整理,先做以下记录

2018-05-28 10:20:55 237

转载 关于TCP粘包的Netty处理的方法

这篇文章讲解的非常好,特别是对自己定义长度的方式进行处理。 https://blog.csdn.net/u010853261/article/details/55803933

2018-04-24 12:06:26 685

原创 聊聊Dotnetty

以前,我曾经写过一个C/S的期货交易系统。C/S就绕不开通信,我大概的了解了.net 的通信机制后,选择用TCP长连接实现了通信,客户端可以调用服务器端,服务器端可以主动推送消息到客户端。实现是实现了,但是代码笨重而且低效。近来又要解决一个C/S的通信问题。感觉到自己以前写的通信继续复用会触犯自己的洁癖,同时深感自己的精力大不如以前,重新写一个优雅而且高效的通信的中间件没有任何信心。于是就在网络上...

2018-04-24 11:23:05 9612 1

原创 Luarocks的使用

luarocks是一个好东西,上一篇博客中,我还抱怨Lua的插件麻烦,需要自己cmake进行编译才能使用,也没现成的dll。今天找到一个luarocks。是可以管理lua的插件和软件包,同时可以编译lua的插件。简单的记录下自己使用luarock的步骤。luarcoks的windows安装步骤1。 打开网址 https://github.com/luarocks/luaroc...

2018-04-11 11:16:52 4714 1

转载 Quartz Cron Expressions

Cron Expressions(Cron 表达式)是用来展示时间集合的字符串。在不同的系统或者框架上,Cron Expressions 的标准会有所差异。对于 Quartz Cron Expressions 来说,它被用来配置 CronTrigger 实例,由空格隔开分7个子表达式: 1. Seconds (秒):范围为0-59的整数,可出现, - * /四个字符; 2. Minutes...

2018-04-02 18:04:59 122

转载 使用Topshelf创建Windows服务

Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的介绍使用使用Topshelf创建Windows 服务。Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主。https://w...

2018-04-02 16:16:04 276

转载 Quartz.net

Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。        你曾经需要应用执行一个任务吗?这个任务每天或

2018-04-02 14:38:20 262

原创 受不了开源软件了

本来打算搞了Lua给C#使用,在使用过程中需要处理json,结果要让我疯掉了。 如果使用Lua的cjson来处理,需要先下载一个cjson的库放到目录下面去使用。然后没有编译好的Cjson库,需要额外下载源码。然后把源码需要进行自己编译。才能使用,然后自己编译还没有可视化的平台。 也许是用windows的平台给惯坏了,即便是C#需要引用外面的库,通过NUGET很轻松可以获得编译好的库。...

2018-03-22 17:56:57 139

原创 AutoMapper的使用

什么是AutoMapper?在多层结构中,经常用到对象到对象的转化,比如数据库Entity到Model的转化,Model和ViewModel的转换,手工去写复制太过麻烦。AutoMapper就是一个可以实现自动转换的类库。 AutoMapper是一个对象与对象的映射器。对象-对象映射通过将一种类型的输入对象转换为不同类型的输出对象来工作。让AutoMapper感兴趣的是,它提供了一些有趣的约...

2018-03-12 16:55:00 2194

原创 《C#敏捷开发实践》读书整理

《C#敏捷开发实践》是一本相当不错的良心之作。本书分为两个部分:第一部分:讲了敏捷开发的一些原则,书中列举了一些很不错的实现例子。本书主要使用的是Scrum的敏捷开发流程 第二部分:通过一个具体开发过程中的实践,讲了如何应用这些模式。对于本书的理解本书讲解了C#敏捷开发,首先我们承认没办法做出一个大而全的软件,没办法一次性的完成用户的需求。所以我们需要去拥抱变化,采用迭代的方式...

2018-02-27 12:40:46 814

转载 基于.NET平台常用的框架整理

自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库。分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架。Memcahed:一套分布式的高速缓存系统,

2018-01-31 10:05:14 263

原创 XAMPP和VScode 实现对PHP的编写和调试

在工作中遇到了需要开发PHP的情况,因为习惯用VS开发.net系列,所以决定用VScode继续开发PHP。对搭建VSCode的开发环境的过程做了一些总结。Xmapp的安装下载并且安装合适自己电脑的XMAPP的版本。下载地址:https://www.apachefriends.org/zh_cn/download.html 我用的是(7.0.27 / PHP 7.0.27)Window

2018-01-22 10:28:30 5676 1

原创 protocal buffer的一些基本整理

什么是Protocal buffer?protocal buffer 是一种类似XML和json的序列化格式,方便把数据从一个进程传输到另外一个进程。为什么选择Protocal buffer?相比于xml 和json,proto使用二进制进行保存和传输,占用的更小的字节,同时序列化和反序列化的效率远远高于json和xml。所以非常适合移动端的数据传输。常见的一些学习资料手把手教你如何安装Protoc

2017-10-10 08:41:12 866

原创 面试过部分童鞋,遇到的一些技术问题总结

为什么要用三层或者多层结构(包括MVC结构)?好多人说自己写过三层结构的网站,或者多层结构,结构基本上模仿的petshop。但是问问他们为什么要做成三层结构,有什么好处呢?为什么不写在一起呢?个人认为有几个好处 1. 三层结构降低耦合,方便大型系统的分工。(大多数人会回答这个) 2. 提供代码的重用度。 3. 封装变化,减少因为变化带来的代码变动。这个原则是建立在普遍认为UI的变动会强于底层业

2017-03-08 16:29:16 1900

翻译 创建和查询可观察序列

本节介绍如何创建和订阅可观察序列,将现有.NET事件转换为序列并进行查询。创建和订阅简单可观察序列与现有.NET事件桥接与现有异步源桥接使用LINQ运算符查询可观察序列LINQ操作符

2017-03-06 17:50:46 555

翻译 使用可观察的提供者

通过实现IQbservable接口并使用Qbservable类型提供的工厂扩展方法,您可以编写自定义LINQ提供程序来查询任何类型的外部数据,以便将这些数据视为可订阅的序列。例如,Rx MSDN开发人员中心中的LINQ to WQL示例展示了如何构建一个简单的提供程序,以便使用WQL查询WMI事件。您可以使用Qbservable类型提供的工厂LINQ运算符抽象WMI事件的序列并进行查询,过滤和组合。

2017-03-06 15:12:58 406

翻译 为IObservable实现自己的运算符

您可以通过为LINQ库不提供的操作添加新运算符,或者通过创建自己的标准查询运算符实现来提高可读性和性能,从而扩展Rx。 编写自定义版本的标准LINQ操作符在您希望使用内存中对象操作时以及当预期自定义不需要查询的全面视图时非常有用。创建新操作符     LINQ提供了一整套操作符,涵盖了一组实体上的大多数可能的操作。 但是,您可能需要一个运算符为查询添加特定的语义,尤其是如果您可以在代码中多次重复使

2017-03-06 15:11:02 478

翻译 测试和调试可观察序列

如果你有一个可观察的序列在一个延长的时间内发布值,实时测试可以是一个伸展。 Reactive Extension库提供TestScheduler类型,以帮助测试这种时间依赖代码,而不需要等待时间通过。 TestScheduler继承VirtualScheduler并允许您在仿真时间创建,发布和订阅序列。例如,您可以压缩出版物,需要5天才能完成到2分钟运行,同时保持正确的比例。您还可以采用实际上在过去

2017-03-06 15:06:02 541

翻译 使用调度者

调度程序控制订阅何时开始以及何时发布通知。它由三个组件组成。它首先是一个数据结构。当计划要完成的任务时,它们被放入调度器以基于优先级或其他标准进行排队。它还提供了一个执行上下文,它表示在哪里执行任务(例如,在线程池,当前线程或另一个应用程序域中)。最后,它有一个时钟为自己提供时间的概念(通过访问调度器的Now属性)。在特定调度程序上调度的任务将遵守仅由该时钟表示的时间。   调度器还引入了虚拟时间

2017-03-06 14:59:33 1656

翻译 使用Subjects

Subject 类型实现IObservable 和IObserver ,在它既是观察者又是可观察者的意义上。您可以使用主题订阅所有观察者,然后将主题订阅到后端数据源。以这种方式,主体可以充当一组订户和源的代理。你可以使用主题实现一个自定义observable与缓存,缓冲和时间移位。此外,您可以使用主题向多个订阅者广播数据。   默认情况下,主题不通过线程执行任何同步。他们不采取调度程序,而是假定所

2017-03-06 14:48:40 1041

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