Jack Huang's Blog


  • 首页

  • 标签

  • 归档

  • 搜索

QGIS学习笔记

发表于 2023-01-20 | 更新于 2024-08-08

最近在研究学习QGIS,简单记一下笔记。

基本概念

地理信息系统(Geographic Informaiton System,GIS)是一个可以建立、浏览、查询、分析地理空间数据的软件系统, 其功能小至地图的展示,大至空间决策分析与支持。

目前常见的GIS软件

自由软件或免费软件:

  • Quantum GIS(QGIS) http://www.qgis.org/
  • Geographic Resources Analysis Support System(GRASS) http://grass.itc.it/
  • PostGIS: http://postgis.refractions.net
  • Thuban: http://thuban.intevation.org/index.html
  • OpenEV: http://openev.sourceforge.net/
  • GMT: http://gmt.soest.hawaii.edu/

商业软件:

  • ArcGIS(ArcInfo, ArcViw) http://www.esri.com
  • MapInfo Coporation: http://www.mapinfo.com
  • Autodesk Inc: AutoCAD Maphttp https://www.autodesk.com.cn/
  • Web应用/APP:GeoMedia http://www.intergraph.com/
  • Google Earth / Google Map:

提供全世界范围的卫星影像(含历史卫星影像)、地图、地形图、道路、3D建筑物,使用者可以任意探索世界各地的 地理信息,储存浏览过的地方,做有系统的规划与管理。历史卫星影像可供用户询区域性的时序变迁; 另外,也整合海底与水面研究数据,提供地球环境全方位的资料。

QGIS安装

Quantum GIS(QGIS)是开源地理信息系统桌面软件,使用GNU(General Public License)授权, 属于 Open Source eospatial Foundation(OSGeo)的官方计划。

QGIS 的目标是成为一个 GIS系统,提供常见的功能与特征。借着核心特征提供基本功能与附加组件(Python 或 C++) 持续地扩充,让使用者可以浏览、管理、编辑、分析数据以及制图。

QGIS安装请参考QGIS安装.

QGIS界面

安装QGIS时,将获得两个应用程序:QGIS Desktop 和 QGIS Browser。如果您熟悉ArcGIS, 则可以将QGIS Browser视为类似于ArcCatalog。这是一个用于预览空间数据和相关元数据的小型应用程序。

栅格数据

栅格数据就是将空间分割成有规律的网格,每一个网格称为一个单元,并在各单元上赋予相应的属性值来表示实体的一种数据形式。 空间数据库是对地理栅格数据进行有效管理的一个极为重要的手段。

GIS系统的栅格数据格式有很多种,有卫星影像、数字高程模型、数字正射影像、扫描文件、数据栅格图形、 图形文件(”.jpg”,”.png”,”.tif”)等。其中常用的有”.jpg”,”.png”,”.tif”等。我们在一些任务中会利用一些电子地图下载器 来获取研究范围内的卫星地图,下载得到的格式就是”.jpg”或者”.png”。”.tif”格式的数据不同之处在于它具有空间地理坐标。

目前 QGIS 可以支持读取的主要栅格格式如下:

  • Arc/Info Binary Grid
  • Arc/Info ASCII Grid
  • GRASS Raster
  • GeoTIFF
  • JPEG
  • Spatial Data Tranfer Standard Grids
  • USGS ASCII DEM
  • Erdas Imagine

矢量数据

矢量数据(Vector Data)是用X、Y、Z坐标表示地图图形或地理实体位置的数据。矢量数据一般通过记录坐标的方式来 尽可能将地理实体的空间位置表现的精确。常见的矢量数据有:点、线、面等格式。

QGIS可以支持多种的矢量数据,如常见的 Shapefile 和 MapInfo MIF、TAB; 另外 QGIS 亦支持在 PostgreSQL 数据库中的 PostGIS 图层;以及提供 CSV(delimited text)纯文本导入。

目前 QGIS 可以读取的矢量数据有:

  • Arc/Info Binary Coverage
  • ESRI Shapefile
  • Mapinfo File
  • SDTS

SHP (Shapefile)

Shapefile是目前最常见的一种矢量数据格式。作为行业标准,几乎所有的商业和开源GIS软件都支持Shapefile。

一个Shapefile数据最少包括文件:

主文件( “*.shp” ):存储地理要素的几何图形的文件。

索引文件( “*.shx” ):空间数据索引文件,存储地理数据几何特征的索引。

DBASE表文件( “*.dbf” ):它是存储属性数据的文件,用于存储地理数据的属性信息。有时候我们也称为表文件或者dbf文件。 这里值得注意一下的是,这个文件Excel也是能够打开的。

空间投影文件( “*.prj” ):用于存储空间参考,也就是投影方式文件。当然了,如果你的数据没有空间参考信息,这个文件自然也就没有了。

地理数据索引文件( “.sbn” , “.sbx” ):这两个文件只有在进行主题间空间关系查询、主题的空间联接和对shape字段进行索引的时候才存在。 它们用于存储地物特征的索引。

地图/影像配准与数字化

地图投影及坐标转换

地理坐标系

如果使用纬度和经度,它可以在世界的任何地方表达, 与本地语言的地址符号不同,世界上每个人都可以理解。 基准系统(大地测量参考系统)是获得这种纬度和经度的标准, 大地测量系统和世界大地测量系统。

大地测量是为建立和维持测绘基准与测绘系统而进行的确定位置、 地球形状、重力场及其随时间和空间变化的测绘活动。世界大地测量系统(World geodetic system,简称WGS)是指1960年以来, 由美国国防制图局(DMA)建立的四个世界大地测量系统(WGS60、WGS66、WGS72和WGS84)的统称。

地理坐标系:为球面坐标。 参考平面地是椭球面,坐标单位:经纬度;

地理坐标转换到投影坐标的过程可理解为投影。(投影:将不规则的地球曲面转换为平面);

地理坐标,就是用经线(子午线)、纬线、经度、纬度表示地面点位的球面坐标。

地球的三级逼近

大地水准面是地球表面的第一级逼近。假设当海水处于完全静止的平衡状态时,从海平面延伸到所有大陆下部, 而与地球重力方向处处正交的一个连续、闭合的曲面,这就是大地水准面。

大地水准面可以近似成一个规则成椭球体,但并不是完全规则, 其形状接近一个扁率极小的椭圆绕短轴旋转所形成的规则椭球体,这个椭球体称为地球椭球体。 它是地球的第二级逼近。

确定了一个规则的椭球表面以后,我们会发现还有一个问题, 参考椭球体是对地球的抽象,因此其并不能去地球表面完全重合, 在设置参考椭球体的时候必然会出现有的地方贴近的好(参考椭球体与地球表面位置接近), 有的地方贴近的不好的问题,因此这里还需要一个大地基准面来控制参考椭球和地球的相对位置。 这是地球表面的第三级逼近。

地心基准面:由卫星数据得到,使用地球的质心作为原点,使用最广泛的是 WGS 1984。

区域基准面:特定区域内与地球表面吻合,大地原点是参考椭球与大地水准面相切的点,例如Beijing54、Xian80。 我们通常称谓的Beijing54、Xian80坐标系实际上指的是我国的两个大地基准面。

我们通常说的参心大地坐标系和地心大地坐标系的区别就在于此。

参心大地坐标系:指经过定位与定向后,地球椭球的中心不与地球质心 重合而是接近地球质心。区域性大地坐标系。是我国基本测图和常规大地测量的基础。如Beijing54、Xian80。

地心大地坐标系:指经过定位与定向后,地球椭球的中心与地球质心重合。如CGCS2000、WGS84。

投影坐标系

投影坐标系:为平面坐标。参考平面地是水平面,坐标单位:米、千米等;

在地球椭球面和平面之间建立点与点之间函数关系的数学方法,称为地图投影。

地球椭球表面是一种不可能展开的曲面,要把这样一个曲面表现到平面上,就会发生裂隙或褶皱。 在投影面上,可运用经纬线的“拉伸”或“压缩”(通过数学手段)来加以避免, 以便形成一幅完整的地图。但不可避免会产生变形。 地图投影的变形通常有:长度变形、面积变形和角度变形。 在实际应用中,根据使用地图的目的,限定某种变形。

百度火星WGS84坐标转换

做国内,为了数据保密的原因,国家测绘地理信息局规定,凡是公开对外提供服务的在线地图都必须使用保密插件做一次非线性坐标转换,将原始WGS84坐标系的数据转换为GCJ02坐标系(俗称火星坐标系),而百度在火星坐标系的基础上又做了一次偏移,形成了其自身的百度09坐标系,于是从互联网上下载、爬取的数据常用的坐标系有这么三大类:WGS84、GCJ02、BD09(从国外渠道下载的大多是WGS84,从高德、腾讯系下载的数据是火星坐标系GC02,从百度系下载的数据为百度坐标系BD09)

常用矢量数据下载

请参考中国国家基础地理信息数据、全球1:100万基础地理数据。

高程数据下载

请参考GEE学习笔记 五十四:QGIS展示3D的高程数据,QGIS下载各种DEM的插件(SRTM 90m/30m -ALOS 30m -Cop 30m/90m-NASADEM Global DEM)。

高程数据合并

请参考QGIS(2)——dem处理(获取、拼接、裁剪等)。

加载WMS/WMTS图层

  • WMS: Web Map Service
  • WMTS: Web Map Tile Service

请参考QGIS 2. 将网页中的地图或卫星图导入qgis (加载WMS/WMTS图层)。

GeoTiff to WMTS/WMS

使用 工具箱->栅格杂项->gdal2tiles 工具将GeoTiff文件切片。

XYZ编码含义请参考OGC标准WMTS服务概念与地图商的瓦片编号流派-web地图切片加载。

瓦片信息查看工具

瓦片信息请参考maptiler tool。

具体应用

下载高清卫星图片

请参考:

  • QGIS下载卫星影像全攻略
  • 如何使用QGIS下载Google地图的遥感影像

参考链接

  1. QGIS 3 地理信息系统基础教程,osgeo.
  2. TIFF 文件格式,by 雷震西山.
  3. qgis小技巧——加载GDB数据库,by 大猫小鼠.
  4. QGIS设置为中文界面,by lqqgis.
  5. QGIS添加在线底图,by Vigo*GIS.
  6. 15篇QGIS教程打包送给你,by 张云金.
  7. ArcGIS景观设计场景1:地理数据的获取,by liu_jingyi.
  8. [场景2] 地理数据初步处理,by liu_jingyi.
  9. 利用QGIS免费批量获取Google、Bing等高分辨率卫星影像,by 蜂芒.
  10. GeoTIFF、Shapefile和World File中空间参考的获取及其参数意义,by 蜂芒.
  11. 如何使用QGIS下载Google地图的遥感影像,by 锐多宝的地理空间.
  12. 中国国家基础地理信息数据,by GaoHR.
  13. 全球1:100万基础地理数据,by GaoHR.
  14. GEE学习笔记 五十四:QGIS展示3D的高程数据,by 无形的风(知乎).
  15. QGIS 2. 将网页中的地图或卫星图导入qgis (加载WMS/WMTS图层),by GIS在找果酱山上的果酱熊.
  16. QGIS 如何实现卫星图片(栅格数据)切片,by 晓寒学生.
  17. webGIS底图栅格化与实时数据合成处理原理,地图API设计,xyz加载,by zhoulujun@live.cn.
  18. OGC标准WMTS服务概念与地图商的瓦片编号流派-web地图切片加载,by zhoulujun.
  19. maptiler tool,by maptiler.
  20. [QGIS下载各种DEM的插件(SRTM 90m/30m -ALOS 30m -Cop 30m/90m-NASADEM Global DEM)],by Vigo*GIS.
  21. 壹张图看懂“火星坐标系”,by 梭梭树壹号.
  22. QGIS(2)——dem处理(获取、拼接、裁剪等),by 地学散人​.

数据字典结构设计方法

发表于 2023-01-17

数据字典(Data dictionary)是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。

什么是数据字典

什么是数据字典? 字典的英文是 Dict, 翻译过来是字典、词典。

和字典同类的东西呢,就是 Map。 Map 就是地图、映射的意思。

所以字典的本质就是 映射,对应。

字典一般分为两部分: 名称 和 描述信息。 用计算机术语说,就是 键-值对(Key-Value pair), 名值对、还有 Code-Name 等。

在系统中,因为有很多标准、规范、约定, 为了执行这些规范,对数据分类、数据状态进行精确定位,又或者因为多个系统之间需要进行数据交换,但叫法和显示上有差别,在存储数据时需要存储码值,而不能只存储显示时使用的名称。

例如状态值和状态名称。标准做法是只存储 VALUE, 不存储名称。 如果考虑优化,减少数据表的关联查询(join),那么可以在存储 VALUE 的同时冗余存储 NAME。 当然,需要根据具体情况来设计, 如果 NAME 或者描述信息太长,占用空间较大,那么可能就不会进行冗余。 顺便提一句, 减少空间占用 也是使用数据字典的一个原因。

数据字典作用是什么

在平时开发的过程中,特别是在遇到表单时候,我们经常需要为前端提供一些下拉选项的信息,这时候我们需要为前端提供下拉菜单的信息,让前端进行渲染。同时我们在数据库中存储的只可能是对应的编码。

如果前端直接将value值写死在前端代码中,那么就破坏了低耦合原则,如果未来清查状态有增加或者管理员想要修改,那么需要修改前端代码,会带来非常大的麻烦。

为解决该问题,就需要设计数据字典,其实就是数据库中的一张表。

数据字典的设计

最简设计

名称-值。

通用设计

如果状态、类型都有对应的字典表,那么随着系统规模的扩大,字典表会越来越多,可能200张表里面有30-50个是字典表。 这就很烦人了,这些表的字段都是差不多的。这时候比较好的办法就是合表。合表就会涉及到数据类型和如何区分的问题。

将相似的表结构合并时,添加一个字段来进行区分是常见的做法。数据字典的区分,我们一般使用 分类这个字段。分类的英文单词,大致有: type、class、classify、category 等。因为分类是给系统后台或者程序员看的,所以一般是使用字符串类型(String, VARCHAR(32))。

同时,为了避免再引入一个分类类型说明的表,我们做一点冗余: 使用2个字段: 分类编码(category_code) 和 分类说明(category_desc)。

简单优化

ID、排序

运维审查方便

创建时间、更新时间、创建人、修改人

最终结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE IF NOT EXISTS `dict_common` (
`id` bigint(20) unsigned NOT NULL COMMENT '自增ID',
`dict_code` varchar(64) NOT NULL COMMENT '编码',
`dict_desc` varchar(64) NOT NULL COMMENT '名称',
`category_code` varchar(64) NOT NULL COMMENT '分类编码',
`category_desc` varchar(64) DEFAULT NULL COMMENT '分类说明',
`sort_no` int(8) unsigned NOT NULL DEFAULT '999' COMMENT '排序编号',
`data_type` varchar(64) NOT NULL DEFAULT 'STRING' COMMENT '数据类型',
`remark` varchar(128) DEFAULT NULL COMMENT '附加说明',
`locate_code` varchar(64) DEFAULT NULL COMMENT '检索标识',
`create_id` bigint(20) unsigned DEFAULT '0' COMMENT '创建人ID',
`update_id` bigint(20) unsigned DEFAULT '0' COMMENT '修改人ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`version` int(8) NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
PRIMARY KEY (`id`),
UNIQUE KEY `dict_code_category_code` (`dict_code`,`category_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通用数据字典';

参考链接

  1. 通用数据字典表结构设计,by Jessicahust.
  2. 数据库设计之数据字典的使用与设计,by 沉默终止.
  3. 数据字典,by baidu.

AutoCAD简单教程

发表于 2023-01-15

最近需要将一个autocad的dwg文件转成pdf,简单记录流程。

确定生成dwg的autocad版本

使用vscode打开dwg二进制文件,查看其文件头。参考AutoCAD的图形格式版本代号确定生成该dwg文件的autocad版本,并下载autocad2017。

打印cad图纸

先跟随教程AutoCAD快速上手,只需要10分钟!简单熟悉一下autocad的界面,了解基本概念,如模型、布局等。

打印cad图纸的步骤参考AutoCAD如何设置打印想要的区域输出jpg等格式,具体为:

  1. 使用鼠标左键选中要打印的模型,使用鼠标右键打开图纸的上下文菜单,选择“隔离对象”后,模型窗口中就只剩需要打印的模型。
  2. 点击“打印”,打开打印窗口,将模型打印成pdf。
  3. 结束对象隔离。
  4. 选择新的要打印的模型,重复步骤1到3。

参考链接

  1. AutoCAD的图形格式版本代号,by autodesk.
  2. AutoCAD快速上手,只需要10分钟!,by CAD君.
  3. AutoCAD如何设置打印想要的区域输出jpg等格式,by autocad.

3D相关文件扩展名汇总

发表于 2023-01-12 | 更新于 2023-01-17
  • .flt

OpenFlight(或 .flt)是一种 3d 几何模型文件格式,最初由 Software Systems Inc. 在 1988 年为其MultiGen实时 3d 建模包开发。最初称为 Flight,该格式被设计为非专有 3d供实时 3D视觉模拟图像生成器使用的模型格式。

OpenFlight 相对于许多 3d 几何模型文件格式(.obj、.dxf、.3ds)的早期优势是其特定的实时 3d 图形行业设计。 这意味着格式是基于多边形的(而不是NURB曲面),并提供实时 IG 系统所必需的实时树结构。

OpenFlight格式是实时三维视景仿真领域中最为流行的图像生成格式。OpenFlight格式由Presagis(以前称为MultiGen-Paradigm)开发和维护,现在已被3D视觉仿真社区广泛采用为标准格式。3DSMax和Blender等3D建模软件都提供了对FLT文件类型的支持。

  • .tif

Tag Image File Format,缩写为TIFF或TIF,是一种用于存储光栅图形图像的图像文件格式,在图形艺术家、出版业、和摄影师中很流行。TIFF 被扫描、传真、文字处理、光学字符识别、图像处理、桌面出版和页面布局应用程序广泛支持。该格式由Aldus Corporation创建,用于桌面出版。它于 1992 年发布了最新版本 6.0,随后更新了Adobe Systems版权在后者于 1994 年收购了 Aldus 之后。一些 Aldus 或 Adob​​e 技术说明已发布,对格式进行了较小的扩展,并且一些规范已基于 TIFF 6.0,包括TIFF/EP (ISO 12234-2)、TIFF/ IT (ISO 12639)、 TIFF-F (RFC 2306) 和 TIFF-FX (RFC 3949)。

TIFF 是一种灵活、适应性强的文件格式,用于在单个文件中处理图像和数据,包括定义图像几何形状的标题标签(大小、定义、图像数据排列、应用的图像压缩)。例如,TIFF 文件可以是包含JPEG(有损)和PackBits(无损)压缩图像的容器。TIFF 文件还可以包含基于矢量的剪切路径(轮廓、剪裁、图像帧)。无损存储图像数据的能力格式使 TIFF 文件成为有用的图像存档,因为与标准 JPEG 文件不同,使用无损压缩(或无压缩)的 TIFF 文件可以在不损失图像质量的情况下进行编辑和重新保存。

可用Adobe PhotoShop软件打开。

  • .hdr

高动态范围成像(英语:High Dynamic Range Imaging,简称HDRI或HDR),在计算机图形学与电影摄影术中,是用来实现比普通数位图像技术更大曝光动态范围(即更大的明暗差别)的一组技术。高动态范围成像的目的就是要正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度。

高动态范围成像最初只用于纯粹由计算机生成的图像。之后又开发出一些从不同曝光范围照片中生成高动态范围图像的方法。随着数字相机的日渐流行以及桌面软件变得易于使用,许多业余摄影师使用高动态范围成像的方法生成高动态范围场景的照片,但是,实际上高动态范围还有许多其它的应用。

可用Adobe PhotoShop软件打开。

  • .mip

.mip文件最初为Paint Shop Pro创建的图像文件,这是一个图像编辑程序,现在称为PaintShop Photo Pro。 包含相同的多个分辨率 BMP。 图片; 通常用于纹理映射。MIP文件允许用户存储针对特定大小优化的图形。 这样,就不必拉伸或压缩图像以适合图像。 例如,512x512像素MIP图像还可以包含用于缩略图徽标的32x32像素版本。

可用Adobe PhotoShop软件打开。

  • .gdb

ESRI 文件地理数据库 (FileGDB) 是磁盘上文件夹中的文件集合,其中包含相关地理空间数据,例如要素数据集、要素类和关联表。它需要某些其他文件与 .gdb 文件一起保存在同一目录中才能工作。可以在 .gdb 文件上执行查询以管理空间和非空间数据。

查看.gdb文件需要安装arcgis系列软件,使用其中的catalog软件打开。或者参考Open Source Tool capable of reading Esri File Geodatabase (.gdb)?。

参考链接

  1. OpenFlight .flt,by wikipedia.
  2. TIFF,by wikipedia.
  3. HDR,by wikepedia.
  4. Mipmap,by wikepedia.
  5. .gdb,by fileformat.
  6. .gdb文件如何查看,by baidu.
  7. Open Source Tool capable of reading Esri File Geodatabase (.gdb)?,by stackexchange.

Oracle即时客户端连接方法

发表于 2023-01-10 | 更新于 2023-02-26

记录Oracle即时客户端连接Oracle服务器端的方法。

下载Oracle即时客户端

对应Oracle11数据库,下载如下Oracle即时客户端:

  • instantclient-basic-windows.x64-12.1.0.2.0.zip
  • instantclient-sqlplus-windows.x64-12.1.0.2.0.zip

将instantclient-basic和instantclient-sqlplus两个安装包放在同一个目录下,解压到同一个文件夹内。

修改系统变量

  • 将Oracle即时客户端的路径E:\Oracle\instantclient_12_1添加到系统环境变量PATH中。
  • 新增系统变量NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252 –>> 服务器端字符集
  • TNS_ADMIN=E:\Oracle\instantclient_12_1 –>> 指定tnsnames.ora所在位置

新建tnsnames.ora

在E:\Oracle\instantclient_12_1 下新建tnsnames.ora配置文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
orcl_service_name =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = localhost)(PORT = 1521)(QUEUESIZE = 100))
(CONNECT_DATA =
(SERVICE_NAME = bookstore.company.com)
)
)

orcl_sid =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = orcl)
)
)

用SQL*Plus登陆测试

Connect via SERVICE_NAME

sqlplus username/password@host:port/SERVICE_NAME

例如:

1
sqlplus admin/123456@192.168.1.11:1521/ORCL

Connect via SID

sqlplus username/password@host:port:SID,注意该方式在oracle instant client 12.1版本中没有验证通过,具体原因未知。

sqlplus system/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=192.168.0.49)(Port=1521))(CONNECT_DATA=(SID=ORCL)))

例如:

1
sqlplus admin/123456@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=192.168.0.49)(Port=1521))(CONNECT_DATA=(SID=ORCL)))

sqlplus命令

sqlplus登录后,使用如下sql命令查询相关信息:

  • 查看数据库名
1
SQL> select name from v$database;
  • 查询当前数据库实例名
1
SQL> select instance_name from v$instance;
  • 数据库中所有表
1
SQL> SELECT TABLE_NAME FROM DBA_TABLES;
  • 显示数据库对象结构
1
SQL> desc emp

使用node-oracledb连接数据库

连接字符串的网络服务名方法

1
2
3
4
5
6
7
8
9
10
const oracledb = require('oracledb');

const connection = await oracledb.getConnection(
{
user : "admin",
password : "123456",
connectStringForServiceName1 : "Ora11"
connectStringForServiceName2 : "192.168.0.49/ORCL",
}
);

对应的tnsnames.ora内容为:

1
2
3
4
5
6
7
8
Ora11 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.49)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)

连接字符串的网络服务标识方法

该方式可连接使用sid的oracle实例:

1
2
3
4
5
6
7
8
const connection = await oracledb.getConnection(
{
user : "admin",
password : "123456",
connectStringForSid1 : "Ora11",
connectStringForSid2 : "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=192.168.0.49)(Port=1521))(CONNECT_DATA=(SID=ORCL)))"
}
);

对应的tnsnames.ora内容为:

1
2
3
4
5
6
7
8
Ora11 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.49)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = ORCL)
)
)

oracledb读取Blob和Clob字段

请参考nodejs使用oracledb时,读取Blob和Clob字段遇到的问题。

参考链接

  1. 如何安装Oracle客户端(Oracle Instant Client),by whatday.
  2. Oracle Instant Client(即时客户端) 安装与配置,by 长烟慢慢.
  3. 使用 SQL *Plus 管理 Oracle 数据库,by Node.
  4. nodejs使用oracledb时,读取Blob和Clob字段遇到的问题,by 欢欢2776479680.
  5. CLOB data type,by oracle.
  6. Oracle的CLOB大数据字段类型,by Grand-Jon.

简明教学设计11讲读书笔记

发表于 2023-01-05 | 更新于 2023-11-14

教学法分类

  • 讲授法
  • 直导式
  • 指导发现式
  • 探究式

三大学习理论

  • 吸收理论
  • 行为理论
  • 认知理论

教学目标

布鲁姆教学目标分类:

  • 知道
  • 理解
  • 应用
  • 分析
  • 综合
  • 评价

学习内容分类:

  • 知识

分为事实性知识和概念性知识。事实性知识分为事实和程序,概念性知识分为概念和原理。

  • 技能

分为动作技能、认知技能、交互技能。

  • 情感

情感、态度和价值观。

教学过程设计

准备

  • 安心学习
  • 激发学习动机

输入

  • 抓住注意力
  • 激活旧知
  • 组织教学内容
  • 轻教学

加工

  • 以问题开始
  • 以对话维持
  • 以反思检视

输出

反思

参考链接

  1. 简明教学设计11讲,by 郑杰.

新版Chrome对JavaScript的Array.sort()不支持

发表于 2022-12-20

碰到一个JavaScript的Array.sort函数排序失败的奇怪问题,具体解决方案请参考新版Chrome对JavaScript的Array.sort()不支持。

参考链接

  1. 新版Chrome对JavaScript的Array.sort()不支持,by chrome.
  2. Array.prototype.sort(),by mozilla.

计算机安全的理论知识笔记

发表于 2022-12-20

计算机安全、网络安全(网络安全)或信息技术安全(IT 安全)是保护计算机系统和网络免受恶意行为者的攻击,这些攻击可能导致未经授权的信息泄露、盗窃或损坏硬件、软件或数据,以及他们提供的服务的中断或误导。

CIA三要素

保密性又称机密性,其与Integrity(完整性)和 Availability(可用性)并称为信息安全的CIA三要素。

信息安全三要素之间存在互相牵制的关系,例如:过度强化机密性时,将造成完整性与可用性的降低,需要高可用性的系统则会造成机密性与完整性的降低,因此在有限资源的前提下,在信息安全三要素中获取适当的平衡是信息安全管理层次结构的重要课题。

保密性

机密性(Confidentiality)确保资料传递与存储的隐密性,避免未经授权的用户有意或无意的揭露资料内容。

完整性

完整性是指在传输、存储信息或数据的过程中,确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。在信息安全领域使用过程中,常常和保密性混淆。通常使用数字签名、散列函数等手段保證數據完整性。

可用性

在信息安全领域,可用性(Availability)是成功的信息安全项目应具备的需求,意及当用户需透过信息系统进行操作时,资料与服务须保持可用状况(能用),并能满足使用需求(够用)。

认证、授权和记录

认证(Authentication)

识别信息用户的身份,可记录信息被谁所访问使用,例如:透过密码或证书方式验证用户身份。身份认证主要有三种方式:

  • 你所知道的(Something you know):账号/密码
  • 你所拥有的(Something you have):IC卡、数字设备、数字签名、一次性密码(OTP)
  • 你所具备的(Something you are):指纹、虹膜、声纹、脸部特征、静脉脉纹、DNA

授权(Authorization)

依照实际需求给予实体适当的权限,一般建议采最小权限(Least privilege),意即仅给予实际作业所需要的权限,避免过度授权可能造成的信息暴露或泄漏。

信息系统层面的实用访问控制方法分类如下:

  • 强制访问控制(Mandatory Access Control)
  • 自由选定访问控制(Discretionary Access Control)
  • 以角色为基础的访问控制(Role-Based Access Control)
  • 以规则为基础的访问控制(Rule-Based Access Control)

纪录(Accounting)

内容项目包含量测(Measuring)、监控(Monitoring)、报告(Reporting)与日志案(Logging),以便提供未来作为审核(Auditing)、计费(Billing)、分析(Analysis)与管理之用,主要精神在于收集用户与系统之间交互的资料,并留下轨迹纪录。

威胁建模

威胁建模是一个过程,通过该过程可以识别和列举潜在威胁,例如结构漏洞或缺乏适当的保护措施,并确定对策的优先级。威胁建模的目的是根据系统的性质、可能的攻击者概况、最可能的攻击向量以及攻击者最需要的资产,为防御者提供系统分析,说明需要包括哪些控制或防御措施攻击者。威胁建模回答诸如“我在哪里最容易受到攻击?”之类的问题,“最相关的威胁是什么?” ,以及“我需要做什么来防范这些威胁?”

参考链接

  1. Crash Course Computer Science,by Crash Course.
  2. Computer security,by wikipedia.
  3. 信息安全,by wikipedia.

金句摘抄

发表于 2022-12-16 | 更新于 2023-02-11

中国教材的最大问题,并不是知识点的讲解,而是缺乏得出结论的过程。

– 《为什么医学教材不好用?》

我不善于当众演讲,在人多的场合发言,我会紧张。但是后来,我发现听众真的不在乎,如果你讲得很糟糕,他们可能会发笑片刻,但很快就会忘记。

事实是我们放大了别人的想法。有人说的很对:我们在想象中比在现实中,遭受更多的痛苦。

– Hacker News 读者

参考链接

  1. GitHub 上这个「计算机科学」自学指南火了!,by 吴师兄.

软件行业的思考

发表于 2022-12-08

中国软件三十年:烟尘隐入,夹缝重生这篇文章对中国软件行业的历史、发展规律和现状认识比较深刻,因此摘抄一下:

中国软件的三大顽疾:一是企业数字化认识低,认为软件没用;二是定制化需求多且杂,「项目」导向而非「产品」导向;三是用户付费意愿和能力不足,软件公司难以积累利润投入研发。

大约是在2002年左右,雷军为了求证用户到底在意什么, 专门请了一家调查公司,在4个城市作了样本调查, 在4个城市作了用户专访, 最后结果让金山的工程师们很伤心:用户最在意的就是使用习惯,并不在意那些「创新」。

软件行业最终还是要靠「产品」说话。无论2C还是2B,软件好不好用,是用户选择最简单直接的一个标准。

参考链接

  1. 中国软件三十年:烟尘隐入,夹缝重生,by 饭统戴老板.
上一页1…111213…52下一页

Jack Huang

519 日志
66 标签
© 2025 Jack Huang
由 Hexo 强力驱动
|
主题 — NexT.Muse