在 ArcGIS JS API 的开发中, FeatureLayer 可以说是让人又爱又恨, 特别是 ArcGIS JS API 4.x , FeatureLayer 从服务端加载数据的策略不可控制, 或者说默认的数据加载策略不适合所有的场景, 某些场景下, 需要从先加载数据, 然后在客户端创建 FeatureLayer 。 要在客户端创建 FeatureLayer , 根据 FeatureLayer 的文档, 这几个属性必须设置: fields 指定一个 Field 数组来描述 FeatureLayer 的架构, 并且必须包含一个类型为 oid 的字段; source 指... 阅读全文

由于项目安全评测的原因, 需要为 Postgres 数据库启用 ssl 连接, 特记录如下。 使用 openssl 生成 ssl 证书 生成证书需要 openssl 工具, 如果没有安装的话, 可以直接登录进去 Postgres 数据库的容器, 已经内置了 openssl , 而且兼容性也比较好。 生成证书的命令如下: openssl req -new -text -passout pass:abcd -subj /CN=localhost -out server.req -keyout privkey.pem openssl rsa -in privkey.pem -passi... 阅读全文

单文件应用简介 .NET Core 3.x 发布的单文件应用是自解压程序, 解压路径貌似是通过 System.IO.Path.GetTempPath() 来确定的: Windows 系统 %TEMP%\.net\ macOS 系统 /var/folders/s8/q4c00lhx3k384hngtv9pmwv40000gn/T/.net/ Linux 系统 /var/tmp/.net/ .NET Core 3.x 发布的单文件应用偶尔会出现无法运行的错误, 需要删除上面目录中对应的 app 目录, 再运行就可以了; .NET 5.0 发布的自单文件应用可以... 阅读全文

ArcGIS JS API 基于古老的 JavaScript 框架 Dojo 开发, dojo 虽然是曾经的王者, 但是2020年的前端开发, 早已是 Angular、 React 和 Vue 三大框架的天下, JavaScript 的新特性可以说是日新月异, 国内也几乎没有人基于 dojo 进行开发, 因此本文介绍如何使用现代化的脚本 (ES6, ES7, ES2018 等, 以下统称 ES6+, TypeScript) 进行 ArcGIS JS API 开发。 ArcGIS JS API 模块化概述 ArcGIS JS API 提供的基于 dojo 的模块是 Asynchr... 阅读全文

ASP.NET Core 应用默认监听的端口是 5000 , 在调试或者部署的过程中经常需要指定监听的端口来来运行, 本文就这个问题, 进行一个总结, 可以通过下面的方法来指定运行端口。 使用命令行参数 使用命令行参数 --urls 是最常用的方法了, 测试或者开发环境下用的最多。 只需要在运行命令中添加这个参数即可, 如下所示: dotnet run --urls=http://localhost:5001/ 在 appsettings.json 中添加配置 如果倾向于使用配置文件, 可以在 appsettings.json 文件中添加 urls 节点, 如下所示: { ... 阅读全文

frp frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,并且为 http 和 https 应用协议提供了额外的能力。 最近需要将内网的一些服务转发出来, 在自己的电脑上随时可用, 于是就研究了 frp 的文档, 操作记录如下。 frp 服务器配置 要使用 frp 进行内网穿透, 必须有一台有互联网 IP 的服务器, 否则没办法架设 frp 服务器。 服务器上根据操作系统安装 frp 的服务端, frps , 配置如下: [common] bind_addr = 0.0.0.0 bind_port = 7000 bind_udp_port = 70... 阅读全文

在 ASP.NET Core 默认的应用程序模板中, 配置文件的处理如下面的代码所示: config.AddJsonFile( path: "appsettings.json", optional: true, reloadOnChange: true ); config.AddJsonFile( path: $"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true ); appsettings.json 和 appsettings.... 阅读全文

下面是使用 PostgreSQL 内置的工具 pg_dump 和 psql 对超级表 conditions 进行备份和恢复的步骤。 备份 备份超级表架构: pg_dump -s -d old_db --table conditions -N _timescaledb_internal | \ grep -v _timescaledb_internal > schema.sql 将备份超级表的数据备份到 CSV 文件: psql -d old_db \ -c "\COPY (SELECT * FROM conditions) TO data.csv DELIMITER... 阅读全文

Linux 的 SSH 服务不仅仅能够远程登录和管理,还可以在本地计算机和服务器之间建立 TCP 通道, 实现代理、内网穿透、暴露内网服务等功能,简单可靠。 动态端口转发 将向本地指定端口发送的请求通过 SSH 服务器向外转发。 比如将 SSH 服务器作为一个代理服务器。 #!/bin/bash -e ssh -C -T -N -D 127.0.0.1:8088 ubuntu@192.168.6.67 将 127.0.0.1:8088 作为一个 SOCKS4/5 的代理, 比如 curl --proxy socks5://127.0.0.1:8088 https://ww... 阅读全文

Angular 最近发布了 9.0 版本, 需要先将一个模板项目升级至新版本。 虽然它提供了 ng update 命令来升级, 但是这个命令会自动调整 package.json 文件依赖项的顺序, 导致向其它项目合并时产生不必要的冲突。 为了不打乱现有的依赖项的顺序, 容易向其它派生项目进行合并, 同时也能明确知道究竟那些文件需要修改, 因此采用手工升级的办法。 项目结构采用 angular-cli 创建的的多项目架构, web 是一个应用, app-shared 是类库。 - angular.json - package.json - tsconfig.json - tslint.... 阅读全文

Termux 简介 Termux 可谓安卓上的开发神器, 注意, 不是开发安卓应用, 是在安卓手机上做开发的神器, 它的官方简介如下: Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT packa... 阅读全文

Cordova 简介 Cordova 非常的流行,因为它可以让 Web 开发人员来创建移动应用, 而且还可以通过 JavaScript 来调用设备硬件 API (GPS、蓝牙等)。 通常 Cordova 的做法是把应用的 Web 内容 (HTML, JavaScript, CSS) 打包到移动应用中, 这样看起来更像是一个本地应用, 即使在离线的情况下也可以使用。 其实还可以使用 Cordova 为现有的 Web 应用提供设备 API , 增强现有 Web 应用的功能。 这样做不仅可以使用服务端技术(aspx, cshtml, php等), 还可以随时更新 Web 应用, 只有在需... 阅读全文