Jack Huang's Blog


  • 首页

  • 标签

  • 归档

  • 搜索

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 饭统戴老板.

CPlusPlus之Socket网络编程

发表于 2022-12-07 | 更新于 2022-12-09

inet_pton和inet_ntop

这两个函数是随IPv6出现的函数,对于IPv4地址和IPv6地址都适用,函数中p和n分别代表表达(presentation)和数值(numeric)。地址的表达格式通常是ASCII字符串,数值格式则是存放到套接字地址结构的二进制值。

1
2
3
4
5
6
7
//将点分十进制的ip地址转化为用于网络传输的数值格式
//返回值:若成功则为1,若输入不是有效的表达式则为0,若出错则为-1
int inet_pton(int family, const char *strptr, void *addrptr);

//将数值格式转化为点分十进制的ip地址格式
//返回值:若成功则为指向结构的指针,若出错则为NULL
const char * inet_ntop(int family, const void *addrptr, char *strptr, size_t len);

参考链接

  1. C++高性能网络编程,by huangwang.
  2. inet_pton()和inet_ntop()函数详解,by QvQ是惊喜不是哭泣.
  3. 2021-07-07使用winsock2.h中函数还需要链接静态库ws2_32.lib,by 杨晴朗Solo.

游戏网络研究笔记

发表于 2022-11-14

游戏网络库

C / C++

  • ENet - 简单而强大的可靠 UDP 网络库。
  • GameNetworkingSockets - Valve 用于游戏的内部(Steam)网络传输层。
  • GGPO - 好游戏,Peace Out 回滚网络 SDK。
  • KCP - 一种快速可靠的 ARQ 协议。
  • RakNet - 功能齐全且成熟可靠的 UDP 网络引擎。
  • TNL2 -(非活动)扭矩网络库 2,与TRIBES 网络模型非常相似。
  • yojimbo - 用于具有专用服务器的客户端/服务器游戏的可靠 UDP 网络库。

参考链接

  1. Beginner’s Guide to Game Networking,by pvigier.
  2. GameNetworkingResources,by ThusSpokeNomad.
  3. Real Time Multiplayer in HTML5,by Sven Bergström.
上一页1…131415…54下一页

Jack Huang

537 日志
69 标签
© 2026 Jack Huang
由 Hexo 强力驱动
|
主题 — NexT.Muse