- 博客(614)
- 资源 (5)
- 问答 (6)
- 收藏
- 关注
转载 高冷的 WebGL
接下来,我们就要给告诉WebGL,你要绘制的是什么,也只是说,用于控制图形的顶点数据。然而要和WebGL的着色器沟通,我们并不能直接向着色器传入数据(其实也是可以的,不过比较低效),我们需要先在内存里开辟一块缓冲区,然后通过WebGL提供的接口,把数据写入缓冲区,这就是。通过上面的这个例子,我们明白了,要在WebGL中绘制图像,首先得教会WebGL如何绘制(编写着色器),然后告诉WebGL要绘制什么(创建缓存区,写入顶点数据,并关联到着色器变量上),最后清理一下之前绘制的东西,把准备好的图像绘制到屏幕上。
2023-10-19 23:39:31
92
原创 OpenGL简介
实际的 OpenGL 库的开发者通常是显卡的生产商。显卡所支持的 OpenGL 版本都为这个系列的显卡专门开发的。在 Linux 下,有显卡生产商提供的 OpenGL 库,也有一些爱好者改编的版本。这也意味着任何时候 OpenGL 库表现的行为与规范规定的不一致时,基本都是库的开发者留下的bug。规范严格规定了每个函数该如何执行,以及它们的输出值。因为 OpenGL 规范并没有规定实现的细节,具体的 OpenGL 库允许使用不同的实现,只要其功能和结果与规范相匹配(亦即,作为用户不会感受到功能上的差异)。
2023-10-19 23:20:47
156
原创 BIM轻量化技术简介
BIM轻量化技术是指在工程建筑的BIM模型建立之后(利用专业的BIM建模软件,比如Autodesk Revit, Bentley MicroStation, DS Catia等),通过对BIM模型的压缩处理等技术手段,让BIM可以在各类WEB浏览器、移动App上被使用的技术。BIM轻量化技术大大拓展了BIM的应用范围,让三维可视化、数据化的BIM模型不仅只停留在设计阶段,而是可以应用于施工阶段、运维阶段,覆盖整个工程建筑的全生命周期。
2023-10-16 23:09:26
497
原创 BIM轻量化引擎的国内外发展现状
BIM轻量化技术是指在工程建筑的BIM模型建立之后(利用专业的BIM建模软件,比如AutodeskRevit、DSCatia等),通过对BIM模型的压缩处理等技术手段,让BIM可以在各类WEB浏览器、移动App上被使用的技术。传统的BIM轻量化引擎在国外出现较早,基本从2013年开始,采用WebGL技术的轻量化BIM引擎开始出现。随着BIM技术的不断发展,对BIM技术应用要求已不局限于模型及基于模型的应用,其在经历了方案展示、BIM建模及应用两个阶段后,逐步向基于BIM平台的。
2023-10-16 22:40:02
141
原创 什么是BIM轻量化
BIM轻量化技术是指工程建筑BIM模型建立后(使用专业)BIM例如,建模软件AutodeskRevit,BentleyMicroStation,DSCatia等),通过对BIM模型压缩处理等技术手段BIM可以在各类WEB移动浏览器App使用的技术。BIM轻量化技术还可以实现各种不同的格式BIM模型的集成应用打破了不同BIM建模制造商产品之间的屏障实现了统一的数据格式和统一的数据应用,实现了多专业合作,大大降低了BIM应用的复杂性。BIM大大拓展了轻量化技术。BIM大大拓展了轻量化技术。
2023-10-16 22:17:39
46
转载 webservice中JAX-WS与CXF,Axis区别
JAX-WS是一种规范,而在jdk1.6之后就有了自带的实现,但是这种实现是比较简单的,基本上就只能够传递SOAP协议格式的消息。既然我们知道可以使用上面的两种形式进行通讯,那么我们就需要对上面的两种形式进行描述,规范化。而这些规范化的工作sun已经帮我们完成了,也就是 JAX-WS,JAX-RS这两种规范。Web Service是一种能够使应用程序在不同的平台使用不同的编程语言进行通讯的技术规范,而这种技术规范的实现可以用不同的方法,比如使用基于XML形式的协议(总而言之,JAX-WS是标准,CXF与。
2023-09-10 18:08:48
111
原创 GIS 图层
GIS图层,从直观的角度看,就是按某种属性对数据分为若干文件,比如铁路L,公路、城市道路、乡村道路,分成若干层。图层通常用来管理和显示大量的要素集合。要素集合又分为结构化和非结构化1。从开发的角度,图层对应一张数据库表,这张表可能存在数据库中,也可能存在GIS相关文件中。Map作为数据的容器,存放着各种不同类型的图层,图层又是由要素集合组成,每个要素都要包含。做开发时常常需要在调试时查看要素的各个字段。为可选属性,定义了要素弹出窗口的显示内容。
2023-06-23 23:31:51
513
原创 GIS坐标系统
最新在看GIS的理论知识,坐标系统这块比较抽象,B站上搜到到一个博主的视频,对这块讲解的比较通俗易懂,这里记录一下: 地理坐标系统是地球表面空间要素的定位参照系统。地理坐标系统是由经度和维度定义的。经度和维度都是用角度量的:经度是本初子午线开始向东或向西度量角度,而维度是从赤道平面向北或向南度量角度。 用椭球体太简单,用基准面太复杂,我们使用椭球体去贴基准面,这个时候就牵扯到一个参考的问题。按需决定贴哪里好些:下面我们走一下模拟流程:1、地球 2、做出来大地水准面 3、依据大地水准面,生成椭球体 4、在椭球
2023-06-23 20:36:17
347
原创 GIS简介
地理信息系统 (GIS) 是一个创建、管理、分析和绘制所有类型数据的系统。GIS 将数据连接到地图,将位置数据(事物所在位置)与所有类型的描述性信息(事物在该位置的情况)集成到一起。这可以为适用于自然科学和几乎所有行业的制图和分析提供基础。GIS 帮助用户了解模式、关系和地理环境。其优势包括改善沟通、提高效率以及更好地管理和决策。
2023-06-23 10:50:40
407
转载 每个系统都在用的appid、appkey、appsecret都是什么意思?
前言在日常开发中难免会遇到对接三方平台,比如文件的云存储、短信通道、认证等,在调用这些三方接口时往往需要进行先认证,认证完成之后才能够进行正常的业务处理。在认证的过程中,往往会提供appid、appkey、appsecret三对key-value的数据。本篇文章就带大家深入了解一下这三组认证所需数据的功能及生成。先简单概况一下:app_id,应用的唯一标识;app_key,公匙(相当于账号);app_secret,私匙(相当于密码)。app_id参数app_id通常情况下指的是一个用户的
2022-05-27 08:50:49
9461
2
转载 资源服务器验证Token的几种方式
资源服务器验证Token的几种方式在微服务中,除了eureka,config,网关等基本的微服务还有认证服务和资源服务,上图描述了使用了 OAuth2 的客户端请求验证token的流程,是通过资源服务向认证服务验证token。过程就是客户端用用户名和密码到认证服务获取token,客户端拿着 token 去各个微服务请求数据接口,当微服务接到请求后,先要拿着 token 去认证服务校验token 的合法性,如果合法,请求成功接口处理返回数据。这种方式首先要在认证服务的认证服务配置允
2022-05-25 22:14:14
6573
2
转载 GitHub OAuth 第三方登录示例
已经学习了:理解 OAuth 2.0 一篇文章就够了 一篇文章带你搞定 OAuth 2.0 的四种方式今天演示一个实例,如何通过 OAuth 获取API数据。很多网站登录时,允许使用第三方网站的身份,这称为"第三方登录"。下面就以GitHub为例,写一个最简单的应用,演示第三方登录。文章目录 一、第三方登录的原理 二、应用登记 三、示例仓库 四、浏览器跳转 GitHub 五、授权码 六、后端实现 七、令牌 八、API数据 一、第三方登录...
2022-05-25 21:46:53
419
转载 SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法
一、概念1、什么是JWTJson Web Token (JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)该token被设计为紧凑且安全的 特别适用于分布式站点的单点登录(SSO)场景随着JWT的出现 使得校验方式更加简单便捷化JWT实际上就是一个字符串 它由三部分组成:头部 载荷和签名用[.]分隔这三个部分 最终的格式类似于:xxxx.xxxx.xxxx在服务器直接根据token取出保存的用户信息 即可对token的可用性进行校验 使得单点登
2022-05-23 12:09:38
1431
转载 Centos防火墙开放端口
首先查看下服务器上开放的端口:# firewall-cmd --zone=public --list-ports5902/tcp 5903/tcp 5901/tcp 5900/tcp 10191/tcp可以看到确实没有开放我绑定的9706端口,于是将该端口加入到开放端口中:# firewall-cmd --zone=public --add-port=9706/tcp --permanentsuccess# firewall-cmd --reloadsuccess再来看一下,
2022-04-23 21:20:50
4977
转载 ThingsBoard单体架构的项目构建逻辑
ThingsBoard的项目用一个工程实现了单体和微服务两种架构,能做到重用大量的代码同时又具有横向扩展能力。而本文研究的重点是:ThingsBoard单体架构的应用是怎么构建打包出来的?1. 工程构建的交付物首先了解一下工程的结构,通过tree命令可以查看项目结构:tree -I "node_modules|target|src|pom.xml" -P "pom.xml" ./thingsboard/ > tree.txt对一些与分析无关的子目录再手工删除一下,大致看了一下每个
2022-04-15 22:35:23
2498
2
转载 modbus tcp通讯modbus4j使用说明
ava编程中,使用modbus4j实现Java中的modbus协议通讯modbus4j实现了Java与modbus协议的以下几种通讯方式:modbus TCP/IP通讯modubs UDP/IP通讯modbus RTU/IP通讯Java读取工具类package com.leftso.project.demo.modbus4j; import com.serotonin.modbus4j.BatchRead;import com.serotonin.modbus4j.BatchR
2022-04-10 21:57:30
3623
转载 modbus slave和modbus poll使用说明
modbus slave和modbus poll使用说明1.使用环境:win7/win10 32/64位系统Virtual Serial Port Driver 9.0 虚拟com端口工具2.说明:最近项目开发使用到了modbus协议,由于刚接触这个协议,在使用第三方工具进行调试的时候使用到了modbus poll和modbus slave工具,以下是简单的使用记录,希望以后对需要者有所帮助。3.modbus poll和modbus slave是一款实用的modbus开发和调试工具,可...
2022-04-10 17:02:49
1726
转载 JAVA Future类详解
1. Future的应用场景 在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。 举个例子:比如去吃早点时,点了包子和凉菜,包子需要等3分钟,凉菜只需1分钟,如果...
2022-04-05 21:53:03
29327
2
转载 一文了解JPA、Hibernate、Spring Data JPA之间的爱恨情仇
前言 我们都知道Java 持久层框架访问数据库的方式大致分为两种。一种以 SQL 核心,封装一定程度的 JDBC 操作,比如: MyBatis。另一种是以 Java 实体类为核心,将实体类的和数据库表之间建立映射关系,也就是我们说的ORM框架,如:Hibernate、Spring Data JPA。今天咱们就先来了解一下什么是Spring Data JPA?JPA是啥 在开始学习Spring Data JPA之前我们首先还是要先了解下什么是JPA,因为Spring Da...
2022-04-05 21:17:07
317
转载 linux五种IO模型
为了更好的理解五种IO模型,我们先来说一下几个概念:同步,异步,阻塞和非阻塞。同步和异步 这两个概念与消息的通知机制有关。同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。比如,调用readfrom系统调用时,必须等待IO操作完成才返回。异步 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。比如:调用aio_read系统调用时,不必等IO操作完成就直接返回,调用
2022-03-27 21:13:13
4043
转载 quartz.properties配置文件详解
我们通常是通过quartz.properties属性配置文件(默认情况下均使用该文件)结合StdSchedulerFactory来使用Quartz的。StdSchedulerFactory会加载属性配置文件并实例化一个Scheduler。默认情况下,Quartz会加载classpath下的”quartz.properties”文件作为配置属性,如果找不到则会使用quartz框架自己jar下org/quartz包底下的”quartz.properties”文件。当然你也可以指定”org.quartz...
2022-03-27 17:19:10
5227
1
转载 netty源码之ByteBuf详解
一、背景简介ByteBuf,顾名思义,就是字节缓冲区,是Netty中非常重要的一个组件。熟悉jdk NIO的同学应该知道ByteBuffer,正是因为jdk原生ByteBuffer使用比较复杂,某些场景下性能不是太好,netty开发团队重新设计了ByteBuf用以替代原生ByteBuffer。二、ByteBuf和ByteBuffer对比下面用图示来展示ByteBuf和ByteBuffer工作原理:①、ByteBufferByteBuffer依靠flip()来切换模式,在读模式下..
2022-03-23 23:06:49
8290
转载 Socket缓冲区
一、什么是socket缓冲区编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的socket API。socket在操作系统层面,可以理解为一个文件。我们可以对这个文件进行一些方法操作。用listen方法,可以让程序作为服务器监听其他客户端的连接。 用connect,可以作为客户端连接服务器。 用send或write可以发送数据,recv或read可以接收数据。在建立好连接之后,这个socket文件就像是远端机器的"代理人"一样。比如,如果我们想给远端服务发点什...
2022-03-23 22:33:12
3838
1
转载 怎样去理解Linux用户态和内核态?
在Linux技术讨论中经常会用户态和内核态术语脱口而出,可你们想过吗?用户态和内核态代表是什么?本片文章,就来谈一谈这个话题。我们先来看一张Linux整体架构图。从图上我们可以看出来通过系统调用将Linux整个体系分为用户态和内核态(或者说内核空间和用户空间)。那内核态到底是什么呢?其实从本质上说就是我们所说的内核,它是一种特殊的软件程序,特殊在哪儿呢?控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。用户态就是提供应用程序运行的空间,为了使应用程
2022-03-22 23:07:53
377
转载 什么是SpringData
Spring Data 是Spring 的一个子项目, 旨在统一和简化对各类型持久化存储, 而不拘泥于是关系型数据库还是NoSQL 数据存储。无论是哪种持久化存储, 数据访问对象(或称作为DAO,即Data Access Objects)通常都会提供对单一域对象的CRUD (创建、读取、更新、删除)操作、查询方法、排序和分页方法等。Spring Data则提供了基于这些层面的统一接口(CrudRepository,PagingAndSortingRepository)以及对持久化存储的实现。一: Spr
2022-03-21 21:38:36
8405
转载 Reactor模型
Reactor是一种设计模式。基于事件驱动,然后通过事件分发器,将事件分发给对应的处理器进行处理。该设计模式可以分三个角色: Acceptor:负责接收Accep事件,然后将连接注册成读事件,传递给dispatch; Dispatch:负责分发事件,如果是接收到Accept事件,则分发给Acceptor。如果是Read事件,将请求交给ReadHandler处理; Handler:负责处理具体事件;Reactor有三种模型: 第一种:单Reactor单线程模型第二种
2022-03-20 23:02:13
450
转载 SpringBoot开发笔记- 属性文件读取1: @ConfigurationProperties读取yml配置文件
ConfigurationProperties使用方式步骤@Component+@ConfigurationProperties(prefix="person")person是在yml中配置的前缀: person: ...3.1.2. 样例1、maven依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:
2022-03-20 10:53:51
776
转载 @ConditionalOnProperty的作用和用法
@ConditionalOnProperty的作用和用法在spring boot中有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@Configuration是否生效.配置类代码:@Configuration@ConditionalOnProperty(prefix = "filter",name = "loginFilter",havingValue = "true")public class FilterConfig { //prefix为
2022-03-20 10:24:53
486
转载 Quartz-整体设计思路分析
quartz概述quartz是一个用java实现的开源任务调度框架,可以用来创建简单或者复杂的任务调度,并且可以提供许多企业级的功能,比如JTA以及集群等,是当今比较流行的JAVA任务调度框架。1. 可以用来做什么Quartz是一个任务调度框架,当遇到以下问题时: 想在每月25号,自动还款; 想在每年4月1日给当年自己暗恋的女神发一封匿名贺卡; 想每隔1小时,备份一下自己的各种资料。 那么总结起来就是,在一个有规律的时间点做一些事情,并且这个规律可以非常复杂,复杂到
2022-03-19 21:33:40
432
转载 java并发编程:线程池使用
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲起,然后再讲述
2022-03-18 22:10:15
183
原创 ETL工具之Kettle
一、ETL简介ETL(Extract-Transform-Load 的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种 ETL 工具的使用,必不可少。市面上常用的 ETL 工具有很多,比如 Sqoop, DataX, Kettle, Talend 等,作为一个大数据工程师,我们最好要掌握其中的两到三种。二、KettleKettle 是一款国外开源的 ETL 工具, 纯 java 编写,可以在 Window、 .
2022-01-05 22:39:05
4444
转载 数据中台与数据仓库的区别
“中台”这个概念,是相对于前台和后台而生,是前台和后台的链接点,将业务共同的工具和技术予以沉淀。相对于业务中台来讲,数据中台跟企业的业务有较强的关联性,是企业业务和数据的沉淀,如果在烟囱林立的各财务业务系统之上搭建共享的数据中台,其不仅能降低重复建设和减少烟囱式协作的成本,也是企业差异化竞争优势所在。然而,当说到数据中台这里,很多人就有了疑问,以前没有数据中台这个概念时,企业不是也建设了数据仓库、商业分析之类的东西吗?对比这个有什么区别?不就是换了个概念和马甲吗?一、数据中台与数仓的区别首先可以
2022-01-05 21:54:36
735
转载 Google Earth、百度地图、高德地图数据原来是这么来的
对于刚入行或者入行不深的同志时常困惑,手上搞来的地图数据到底是地面采的还是天上飞来的,近期整理一些地图数据来源相关的常识普及普及,希望能够对老少爷们有点帮助。Part 1谈到数据来源,首先得对地图数据做分类,因为不同分类数据,其来源,采集方法大不同。要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:地图图层电子地图对我们实际空间的表达,事实上是通过不同的图层描述,然后通过图层叠加显示来进行表达的过程。对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所
2022-01-03 17:38:17
7585
redis字符串最大长度限制512M,原理是什么?
2021-01-11
dwg文件在线预览?
2020-12-28
Activity实例运行期间动态添加节点
2020-09-08
工作流,催办设计实现方案?
2020-02-21
编写脚本定时访问系统url,检测各个业务是否正常时,对于需要登录后才能访问的系统怎么办?
2018-03-14
mysql binlog日志中对于特殊字符的ascii编码
2017-12-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人