自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 GIS开发入坑(四)--QGIS导入POI数据并实现简单处理分析

POI数据,英文全称Point of Intersesting,中文的意思是兴趣点,指的是在地图上有意义的点:比如商店、酒吧、加油站、医院、车站等。POI数据能够赋能时空行为、城市规划、地理信息等研究,因此获取准而全的POI数据是开展科研工作的基础。而QGIS可作为处理分析POI数据的利器。

2022-12-20 11:05:46 2378 1

原创 GIS开发入坑(三)--QGIS制作行政区划及背景图层

QGIS,功能强大的GIS工具,地理信息开发中的必备神器,今天以南京市为例制作行政区划并使用电子地图为数字底图进行呈现。

2022-12-20 10:51:13 4083 4

原创 如何在UnrealEngine虚幻引擎中加载Web页面

对于非游戏开发团队来讲,在面向非游戏领域的UE项目中嵌入Web页面并实现交互无疑能充分利用现有开发资源和流程,WebUI插件能提供完整的Web页面加载及交互手段,让团队中的UE开发工程师和Web开发工程师能够各司其职、紧密配合。WebUI的安装配置过程可详细参考官方文档。

2022-12-19 20:00:00 3564

原创 如何在UnrealEngine虚幻引擎中进行版本管理

项目团队中的分工协作必不可少,在UE项目中进行版本控制非常必要。UE支持使用Perforce和SVN进行版本管理,此处选用自己比较熟悉的SVN。

2022-12-19 19:00:00 2166 1

原创 如何获取UnrealEngine虚幻引擎的WebUI插件

WebUI插件能够将成熟的HTML页面作为应用的组成部分,同时解决了UE与Web的交互问题。

2022-11-10 12:52:05 5082 4

原创 GIS开发入坑(二)--ArcGIS影像切片并使用GeoServer发布

使用ArcGIS进行切片缓存,再使用GeoServer发布切片缓存。

2022-11-10 12:38:21 6680 8

原创 Avalonia学习实践(五)--树形结构实现

使用AvaloniaUI的树形控件在MVVM模式下实现读取特定目录下的所有子目录及文件,在View层中定义树形控件并绑定对应的ViewModel。

2022-10-24 18:59:03 1044

原创 Avalonia学习实践(四)--实现最简单的SQLite操作辅助类

在桌面应用程序开发中,如果有数据存储的需要,同时对性能要求不是极高,又想应用能够随时随地运行,轻便小巧的SQlite自然是不二之选。本篇其实跟Avalonia没啥关系,SQLite的操作辅助类网上也是一大堆,这里就权当温故知新了。...

2022-08-08 21:44:25 642

原创 野生程序员的成长之路(续)--团队需要什么样的管理者?

作为团队的一名成员和管理者,我们不禁要问“我们的团队需要什么样的管理者?”要回答这个问题我们需要搞清团队的目标是什么、团队的现状是什么、自身作为管理者情况如何。

2022-07-30 11:14:01 152

原创 GIS开发入坑(一)--GeoServer发布DEM地形图

下载DEM地形数据,在GeoServer中添加数据存储,创建图层,为图层添加样式,创建图层组,预览地形图。

2022-07-30 11:02:59 4468

原创 Windows环境下安装PostgreSQL及PostGIS

前面一篇是如何在Docker中安装PostgreSQL及PostGIS,这篇就来记录下Windows环境下如何安装PostgreSQL及PostGIS。

2022-07-12 23:11:33 2553

原创 Docker安装PostgreSQL及PostGIS

开源数据库PostgreSQL第一次用,由于要存储地理信息数据,也用了PostGIS插件,顺手记录下在Docker环境中的安装配置过程。

2022-07-10 22:18:35 3319

原创 DataTable转HTML--实现单元格自动合并的方法探究

在关系型数据库中,数据往往是以列表的形式存储,但实际上物理结构上并列的数据存在逻辑上的关系,比如父子关系的树形结构等。同样数据库存储的数据在界面上展示时也需要将类似的关系展现出来,比如表格中常用的单元格合并。

2022-05-24 07:39:14 547 1

原创 Avalonia学习实践(三)--一个对话框引发的惨案

跨平台开发最令人头疼的是在一个平台上能正常运行,换到另外一个平台就不行了,尤其是那些细小的功能,来回的代码修改、重新编译、发布运行着实令人崩溃。在桌面操作系统中,对文件的选择、查找是很常见的操作,因此系统对话框算是一个桌面UI库最基本的需求了。来看看通过解决一个小小对话框的问题又学到了什么。

2022-05-14 17:45:17 3048

原创 Avalonia学习实践(二)--跨平台支持及发布

Avalonia主打跨平台,号称一套代码支持Windows, macOS, Linux, iOS, Android操作系统,其基础是基于.NET Standard 2.0的一系列库,也就是只要平台能支持.NET Standard 2.0,就能运行Avalonia开发的应用。然而理想很丰满、显示很骨感,并不是说跨平台Avalonia没有做到,而是过程中免不了会有些小问题。1.支持的平台运行平台版本WindowsWindows8及其以上版本(Window7也能用,但不保证没问题)

2022-05-14 16:14:28 6049 5

原创 Avalonia学习实践(一)--示例

Avalonia是基于.NET的跨平台UI框架,能够支持在Windows、Linux、MacOS等操作系统中运行客户端。在官方的MAUI没有发布最新稳定版,对于客户端程序的跨平台开发仍然是不错的选择,尤其是已经有WPF基础的,能够很快上手。0.开发环境开发工具:VisualStudio 2019处理架构:x86架构(AMD系列)操作系统:Windows10,统信UOS家庭版1.安装VS插件打开VS“扩展>管理扩展”,搜索“Avalonia”,安装“Avalonia for Visual

2022-05-12 23:50:28 9159 5

原创 野生程序员的成长之路(下)--管理者的忧郁

虚拟世界里骨王为着不眠不休、忠诚敬业的下属而忧郁,现实世界中管理者却要为着如何提升团队战斗力、增加成果产出率而忧郁。当你有幸跨过了工程师和项目经理的阶梯来到部门管理者的大门前,新世界打开了。企业的中流砥柱按照亚马逊的组织原则,一个团队的合理规模应该控制在能均分一个披萨。对于很多中小企业来讲,一旦公司全员聚餐时用的桌子(餐厅包间常见的那种圆桌)超过了两张,十有八九就要有人担当中层管理者的职责了。公司规模逐渐扩大后,不论是什么样的组织架构,大体都是金字塔形状,层级少些就叫扁平式组织结构,层级多些就叫锥形式

2022-05-04 15:19:36 311

原创 野生程序员的成长之路(中)--永无止境的项目管理

类似于古代的“学而优则仕”,软件开发行业也更倾向于提拔技术能力强的开发人员担任项目经理、小组长之类的技术型管理职务。

2022-05-03 21:47:52 264

原创 野生程序员的成长之路(上)--编码员还是工程师?

在软件开发从业者中有这么一群人,非计算机专业科班出身、有着不同的教育背景、却因为各种缘由而进入了软件开发行业,遍布各大中小企业,很巧我就是这其中是一员。半年来忙于他事而未更新博客,近日恰逢假期就来回顾下自己这个“野生程序员”的成长之路。...

2022-05-03 16:30:59 1321 1

原创 SSL证书填坑指南

近期在工作中用到了SSL证书,在开发调试过程中遇到了一系列的问题,对其中的一些问题进行总结。1.创建自签名SSL证书linux环境下使用系统自带的OpenSSL生成自签名SSL证书,支持多个域名及IP地址,适合内网或无域名的情况。#生成私钥(RSA加密算法、2048位加密、输出文件名rf_dev.key)openssl genrsa -out my.key 2048#移除私钥中的密码openssl rsa -in my.key -out my.key#生成证书(配置文件路径san_dev.c

2021-10-15 09:02:47 1297

原创 从零开始搭建.NET Core版搜索引擎(十一)--项目实践及性能优化

实践是检验真理的唯一标准,只有在实际项目中用一用才能感受到Lucene.NET带来的性能变化。以手上的已有项目为例进行改造,看一看使用Lucene.NET后成果。1.创建索引硬件配置为AMD Ryzen5900处理器,16GB内存,SSD硬盘。应用采用默认配置,RAMBufferSizeMB默认为16MB,最大独立线程数MaxThreadStates默认为8,IndexWriter使用单实例方式,采用文件形式存储索引。共57569条数据,创建索引耗时5787688毫米,约96分钟,即一个半小时左右

2021-10-09 21:08:02 556

原创 从零开始搭建.NET Core版搜索引擎(十)--如何在项目中使用

目前索引操作及检索查询相关的方法都是内置在项目内的,需要将其提取出来发布成公共类库,这样在业务项目中就可以安装使用了。那么就将项目放到GitHub上并发布成NuGet包吧!1.发布为NuGet包1.1.新建项目迁移代码新建.NET Standard类库项目Muyan.Search,目标框架为.NET Core 3.1,将所有相关代码迁移到项目中并根据代码文件用途重新调整文件结构。1.2.新增服务入口为了便于在其他项目中使用,增加类ServiceCollectionExtension用于定义服务

2021-10-09 20:57:06 636

原创 从零开始搭建.NET Core版搜索引擎(九)--Facet维度查询

前面几篇文章讲了索引创建、检索等一系列操作,说到底索引这个东西就是为了更快的查询信息,常见的模糊搜索可以实现,那么统计分析作为一种特殊的搜索当然也可以实现。Lucene.NET提供了Facet相关类用于维度统计分析。

2021-10-08 13:10:23 309

原创 从零开始搭建.NET Core版搜索引擎(八)--查询结果高亮显示

很多搜索引擎的检索结果都会将匹配的关键词高亮显示出来,便于用户的快速识别,Lucene.NET当然也提供高亮功能。1.高亮功能实现1.1.安装Lucene.NET.HighLightLucene.NET的高亮功能由Lucene.NET.HighLight包实现,使用NuGet管理器安装,建议与Lucene.NET保持相同版本。1.2.修改查询方法高亮显示是一个锦上添花的功能,所以打算把是否高亮设置为搜索输入项的可配置项,同时高亮的功能实现也在具体的查询方法中体现。搜索输入项修SingleSe

2021-10-03 15:40:50 530 3

原创 从零开始搭建.NET Core版搜索引擎(七)--引入JieBa分词

在了解了lucene的工作原理和流程后,就可以更进一步对原有代码进行改进了。在原有项目中使用的是默认的StandardAnalyzer,只能将文本分割成单个词,对于中文并不是很友好,所以本次将替换使用自定义分词器。1.使用JieBa分词根据Lucene的源码,只需要继承基类Analyzer即可实现自定义的分词器。此外在原有的SearchManager中已经预留的泛型接口,也可以很方便的接入。1.1.自定义Analyzer实现public class JieBaAnalyzer : Analyzer

2021-09-30 20:12:14 1111

原创 从零开始搭建.NET Core版搜索引擎(六)--Lucene工作原理及流程

在前面几篇中对于关键词索引的创建和检索已经基本实现,但如果想要再继续深入就有必要理解Lucene.NET的工作原理和工作流程。1.工作原理当我们想从大量的信息查询某个特定的信息时,不仅需要知道这个特定信息是否存在,而且需要知道这个特定信息在什么位置。这种情况下遍历所有信息去查找这个特定的信息并不是一个明智选择,查找的成本会极其巨大。建立索引则是一种很好的解决思路,索引类似目录、标签。就好比字典、书籍的目录,我们可以通过目录快速定位到相关的章节,而不必翻看每一页,这样能极大的缩短查找时间,毕竟查询的核心诉

2021-09-30 20:08:08 638

原创 从零开始搭建.NET Core版搜索引擎(五)--查询方法扩展

目前的查询方法过于简单,而且无法与实际业务中的实体建立关系,因此本篇文章就来描述对查询方法的扩展。1.查询多个字段的检索方法1.1.定义接口及输入输出项查询输入项SingleSearchOption:public class SingleSearchOption:SearchOptionBase{ /// <summary> /// 检索关键词 /// </summary> public string Keyword { get; set;

2021-09-29 20:42:11 527

原创 从零开始搭建.NET Core版搜索引擎(四)--与数据库实体关联

经过上次的改造,可以实现对实体对象中的特定成员创建索引,但从实际的应用上来看,需要检索的数据内容格式多种多样,可能会有HTML、XML等。另外一些自定义的数据结构可能是以JSON等特殊规则形式存储的,对于这些情况就需要单独对数据进行分割处理。1.索引基本概念回顾1.1.索引文件结构索引文件的结构是:索引(Index)段(Segment)文档(Document)域(Field)词(Term)1.2.常用FieldBinaryDocValuesFie

2021-09-29 12:53:26 502

原创 从零开始搭建.NET Core版搜索引擎(三)--通用方法扩展

经过上一篇的改造,可以作为公共方法使用了,但是通用性和抽象性还不够,所以继续从通用性着手来扩展方法。1.泛型扩展对前面的代码进行分析发现,多个方法都涉及到分析器Analyzer、存储目录Directory、索引操作器配置IndexWriterConfig的实例化,那么就考虑将这些对象作为属性抽离出来。1.1.公共属性提取/// <summary>/// 分析器/// </summary>public Analyzer Analyzer { get; set; }//

2021-09-27 21:23:05 508

原创 从零开始搭建.NET Core版搜索引擎(二)--简单项目示例

上一篇中实现的示例作为一个简单演示还行,但是作为通用方法使用就差的远了。本篇会对Lucene的基本操作进行完善,同时对公共方法进行提取,使其更适合在.NET Core项目中使用。1.基本方法完善1.1.删除索引 #region 删除所有索引 /// <summary> /// 删除所有索引 /// </summary> /// <param name="route">路由</param> public void DeleteAllIndex(

2021-09-27 13:00:50 564

原创 从零开始搭建.NET Core版搜索引擎(一)--Lucene基础概念及示例

近期使用了ELK系列组件,不由的感慨其功能的丰富和强大,伴随而来的就是另一个想法“ELK太重,用在简单的小型项目上有些鸡肋,能不能做一个轻量版的搜索引擎用于微小型项目呢?”。下面将会有一系列的文章来描述整个过程,每篇不会太长,但每篇相比前篇都会有所改进。

2021-09-27 08:50:56 2780

原创 .NET工程师知识图谱--数据存储

1.知识图谱1.1.关系型数据库名称说明SQL Server微软出品的关系型数据库,操作延续符合微软产品的一贯特点,具有操作简便、稳定性高的特点。OracleOracle甲骨文公司的一种关系型数据库管理系统。Oracle是一种高效率、可靠性高、适应高吞吐量的数据库方案。拥有系统可移植性好、使用方便、功能强大。相对的,对硬件要求高、价格昂贵、管理操作比较复杂、技术要求也相对较高。MySQL同样是Oracle旗下产品,为多种编程语言提供API支持,具有体积小、速度快、

2021-09-22 21:41:19 321

原创 .NET工程师知识图谱--大数据

1.知识图谱1.1.数据采集名称说明网络爬虫按照一定规则自动抓取网站信息的程序,可以为数据收集提供来源。Flume分布式、高可靠、高可用服务,可以有效收集、聚合、移动大量的日志数据。Flume的设计目的是要向Hadoop集群批量导入基于事件的海量数据。Logstash开源服务器端数据处理管道,可以同时从多个数据来源采集数据和转换数据,并将数据传输至存储中。Beats轻量级数据采集产品,包含用于收集网络流量数据的Packetbeat,用于收集系统、进程和文件

2021-09-21 09:00:14 483

原创 .NET工程师知识图谱--基础知识

.NET工程师需要了解和掌握一些基础知识,也就是作为专业技术人员需要的专业通识。1.知识图谱1.1数据结构名称说明栈存储线性元素的物理结构,具有后进先出的操作特性。堆是heap,栈是stack,堆栈是stack。包含入栈和出栈两个操作。队列一种线性结构,允许在队列的的一端插入数据,在另一端删除元素。插入元素的一端叫队尾,删除元素的一端叫队首。数组一种线性结构,用一组连续的内存空间来存储一组具有相同类型的数据。树非线性数据结构,由结点或顶点和边组成,不存

2021-09-20 20:26:29 715

原创 ELK学习实践(九)--IK中文分词、词频统计及词云展现

Elasticsearch提供了分词功能,能对文本进行分词并进行聚合查询。今天就利用Elasticsearch的IK中文分词插件对学习强国中的几篇文章进行关键词分析,并使用Kibana生成词云。1.Elasticsearch安装IK分词器下载地址:github/medcl/elasticsearch-analysis-ik进入Elasticsearch目录输入命令行安装IK分词器.\elasticsearch-plugin install https://github.com/medcl/el

2021-09-17 00:11:15 1759

原创 全能程序员系列(十三)--性能分析工具PerfView的使用

Windows平台下有一款性能分析神器PerfView,可以对CPU、磁盘、内存、进程资源进行跟踪,是性能分析不可或缺的好工具。

2021-09-12 10:04:36 13353 5

原创 API接口性能不达标?--记一次问题分析过程

近期工作中遇到一个问题:API接口性能始终达不到设定要求,虽然不是什么大型电商系统,但是100用户的并发量都慢的要命就有点说不过去了。1.问题描述系统的入口–登录接口功能正常,进行并发测试时会出现卡顿、延迟等现象,并且测试结果并不稳定,有时快有时慢。单次访问时长在3s以内,100现场并发访问总时长能到达1-3分钟。初期以为时硬件资源及网络的限制,在硬件资源扩容后仍没有明显改善。此外在配置了负载均衡策略后也没有显著提升。因此就有了以下从头到尾的问题排查和分析过程。2.原因分析测试工具输出的结果只是

2021-09-11 21:08:30 1159

原创 全能程序员系列(十二)--开发人员该怎么做PPT?

见过不少开发人员一提到PPT就头疼,也见过不少开发人员做的PPT惨不忍睹,今天就聊一聊开发人员该怎么做PPT。

2021-09-09 17:59:05 1377

原创 ABP学习实践(十六)--领域驱动设计(DDD)回顾

ABP框架并没有实现领域驱动设计(DDD)的所有思想,但是并不妨碍用领域驱动的思想去理解ABP库框架。1.领域驱动设计(DDD)与微服务(MicroService)的关系?2.领域驱动设计(DDD)

2021-08-28 08:43:12 959

原创 ELK学习实践(八)--批量导入CSV文件及聚合查询

以项目中的问题跟踪记录为例进行导入分析,同时测试excel文档批量转换、CSV文件批量导入、过滤器数据转换及聚合查询。1.Excel文件批量转换为CSV文件少量的Excel文件可以手动另存为CSV文件,但是几十上百份的文件就有点费工夫了,还是需要一种批量转换的方式。打开Excel,选择“文件>选项”,打开“Excel选项”窗口,选择“自定义功能区”,勾选“开发工具”。在Excel主界面选择“开发工具>Visual Basic”。双击“Microsoft Excel对象”中的She

2021-08-26 06:56:25 1152

C#二阶矩阵变换辅助工具类

C#,二阶矩阵变换,辅助工具类,静态方法

2021-04-23

WPF中Window与Page相互调用示例

WPF简单导航框架,Window和Page(父窗体与子页面)方法相互调用。

2017-08-19

WPF自定义表格控件

WPF自定义控件,动态添加、删除行,支持编辑,对外提供DataTable数据

2017-06-10

Unity3D应用嵌入到WPF应用

Unity3D应用嵌入到WPF应用,通过Socket进行消息传输,实现联动控制。MainWindow对应双屏版本示例,DemoWindow对应单屏版本示例,可修改App.xaml中的StartUri进行查看。

2017-06-08

WPF地图缩放平移及地图标签添加删除移动和保存

WPF实现地图缩放平移,可在地图中添加自定义地图标签,保存、删除地图标签

2014-08-18

zTree好用的树控件

zTree是功能比较丰富的树形控件,用起来很方便

2014-04-09

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

TA关注的人

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