- 博客(165)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 开源GIS技术讨论,欢迎加群
同学们好,众所周知开源软件已经在各个行业或垂直领域中得到广泛应用。在地理信息系统中,开源软件和技术的比重非常高。我建立了一个QQ群用于交流各种GIS相关的开源技术,欢迎GIS爱好者开发人员加入,不管你是大神还是小白都热烈欢迎!主要关注的技术有以下这些:GeoServer OpenLayers MapGuide Open Source FDO GDAL / OGR QGI...
2019-12-16 11:11:15
399
原创 Python 3.12新功能(3)- 增强的格式化字符串f-strings
对于f-strings,小伙伴们不会感到陌生。它又称为格式化字符串,是早在Python3.6中就加入的功能。那么在Python 3.12中又添加了哪些能力呢?
2024-08-06 14:48:38
534
原创 Python 3.12新功能(2)- 类型参数语法
为了更好地支持泛型(Generics), Python 3.12中为类型参数(Type Parameters)提供了更加便利优雅的语法形式。
2024-08-05 14:22:59
901
原创 从零开始安装Jupyter Notebook和Jupyter Lab图文教程
Jupyter是一个强大好用的工具集,它对于初学者学习Python语言、或者探索Python语言新功能、或者实验不熟悉的包都非常适合。Jupyter工具集主要有两个产品,一个是Jupyter Notebook, 另一个是Jupyter Lab。
2024-08-01 11:47:07
759
原创 Python 3.12新功能(1)
Python 3.12正式发布已经很久了,我才将主要电脑的Python版本从3.11升级到最新。最近刚好工作没有那么紧张了,就来领略下这个最新版本中的新特性。
2024-07-31 23:30:16
4695
15
原创 Python中的typings
Python作为一门生产效率很高的语言,它的动态性起了很关键的作用。但是动态特性也是一柄双刃剑,我们在日常开发中使用一些类或者函数时候,常常不知道确定的类型。而Python中的type hints试图帮我们解决了这个头疼问题。头不疼了,代码就更加轻盈了。
2024-07-31 16:04:49
967
原创 PDF小工具poppler
介绍一下一个不错的PDF库poppler。poppler的官网地址它是一个PDF的渲染库,顾名思义,它的用途就是读取PDF文件,然后显示到屏幕。基于这个库,现在已经有一些成熟的应用程序或工具。
2024-07-17 23:40:19
1058
转载 [转] 如何阻止或禁止WebSocket
前一个项目中使用了WebSocket技术来实现前端和后端的消息及时通知,具体有几种类型的消息,包括其中非常重要的一点就是后端计算的过程可能比较长,一些输出到stdout和stderr的信息需要让前端展示。一次技术讨论的时候,大家提到了说有的客户网络环境中可能会禁用WebSocket,那样我们的前后端无法正常通信了,这是一个很大的技术风险。因为websocket本身是通过http协议upgrade来的,它和普通的HTTP通信使用相同的端口,所以采用封端口的方式肯定是不行的。我不打算用这样的方式,原因有多个。
2024-01-09 08:32:18
722
1
原创 python-occ入门指北
在Windows环境中玩PythonOCC比较简单的方式是使用anaconda的cmd prompt或者powershell的prompt,这里我用的是cmd。上一步安装完成后,Windows的开始菜单上出现两个Anaconda Prompt,分别是适配Cmd和PowerShell的。因为学习使用PythonOCC的时候经常需要将几何显示出来,所以建议安装可视化的后端,例如PyQt5, PySide2等等。启动miniconda的命令行Prompt之后,默认的环境是base。根据提示输入"y"既可安装。
2023-07-31 15:50:21
1802
原创 杀不死你的,终将使你更强大
从4月份到10月底,开发的新功能顺利上线了,运行平稳。这期间除了忙,就是巨忙。除了8月初休假一周回了趟老家,其他时间每天从早拼到晚,周末时间也搭进去不少。但是总归结果是挺好的。接下来新的任务挑战性更大,影响面更广更深远。杀不死你的,终将使你更强大。
2022-11-06 10:28:17
211
1
原创 在C++多线程中使用std::call_once保证仅仅执行一次
C++标准库中的std::call_once函数保证只调用一次,常常用于初始化一些关键资源。
2022-08-12 10:31:35
617
原创 C++11并发支持库函数std::call_once
C++语言自从C++11开始对并发编程(concurrency)做了很多的支持,例如atomic,thread,mutex,condition_variable,lock,async,future等等众多喜闻乐见的好宝贝,另外不那么招人注意的也有几个值得称赞一番,例如stdcall_once。......
2022-07-19 23:46:48
437
原创 复习C++重读名著Effective STL - item 18 vector<bool>的缺点分析
复习C++重读名著Effective STL之第18条
2022-06-05 18:07:34
221
原创 Python nose测试大法
[注明:本文最初发布于简书,然而。。。]Python作为一门简单易学的编程语言,现在长期位于编程语言榜的前三。在人工智能的第二次浪潮涌起之前,因为简单快速容易维护,Python在很多系统中是作为“胶水语言”存在的。而现今时代因为出现大量数据处理的需求,以及在大数据集上的分析和推演的需求,包括人工智能的广泛运用,使得Python语言换发了第二春,众多的机器学习框架和库都是用Python例如pytorch和tensorflow等等。另外,很多数据分析师或工程师都选择了Python作为主要开发语言。大
2022-04-23 14:38:17
792
原创 什么时候需要加volatile关键字?它能保证线程安全吗?
这是一道常规面试题,对于各位大牛来说不算什么。但是怎样才能给小白讲明白呢?我尽力吧。先来看看这个关键字吧。volatile,查词典知道它的意思是“adj. 易变的,动荡不定的,反复无常的;(计算机内存)易失的”。说到它就要谈到CPU的高速缓存。我们知道一个程序运行起来,里边的变量都是在内存的,CPU为了提高效率,会把变量读到它自己的缓存中,这个缓存的读写速度比内存快很多。只有在缓存不够用的时候,才会根据算法把变量写回到内存。如果是单个CPU这样不会造成什么困扰,因为单个CPU不会存在缓存和内存不一致
2022-01-08 15:13:28
1134
原创 调试Jersey发送cookie问题
这周调用一个下载文件的API遇到一个问题。这个API返回的是CDN的signed URL,客户端需要根据Set-Cookie中指定的cookies值,将cookie设置到下载的GET请求中。项目中使用的是Jersey,而jersey中的Client提供了client.cookie(Cookie c)和client.cookie(String name, String value)等方法来设置cookies。我使用这两种方法都失败了,服务器返回403, 说需要的cookie没有设置。后来干脆"手写cookie
2021-08-11 15:45:59
277
原创 go语言的测试覆盖(2)
今天讲一下go语言的test coverage是如何实现的。上篇讲到了go语言1.2之前对于测试覆盖的支持,使用了比较“传统”的做法,也就是对于二进制文件的analysis和instrument。从go v1.2开始,新的测试覆盖工具使用了完全不同的方法。思路非常简单:在编译之前重写源文件,在源文件中加入一些instrument,然后编译和执行被修改的源文件,得到覆盖的统计信息。重写源文件其实不难,得益于go强大的命令行工具 - 它负责从源文件编译,到执行测试,直到程序的执行全盘搞定 - 所以在这个
2021-08-03 23:34:58
808
翻译 go语言的测试覆盖 (golang test coverage)
测试覆盖率测试覆盖率是指当运行测试用例时,代码(类,包,模块)中有多少被执行到。覆盖率通常用百分比来表示。例如当我们说一个包的覆盖率是85%的时候,就是说测试用例让包中85%的代码都运行过了。Go语言中对于测试覆盖率有比较不错的支持,在1.2版本开始跟其他工具一起发布。The usual way to compute test coverage is to instrument the binary. For instance, the GNUgcovprogram sets break..
2021-07-30 22:58:22
1062
原创 GeoTools开发GIS图形界面应用程序
GeoTools是大名鼎鼎的JAVA开源开发包,支持开发基于Swing的GUI应用程序。GeoTools对于矢量数据和栅格数据都有完善的支持,是开源GIS方案中常见的选择之一。例如流行的GIS服务器GeoServer就是基于GeoTools开发的,另一个桌面GIS软件uDig也是使用GeoTools开发的。前些天看了些文档,今天得空先把官网上的简单demo跑起来。代码如下:import org.geotools.data.FileDataStore;import org.geotools...
2021-07-25 14:27:58
1941
2
原创 GeoTools初体验之读取SHP文件
import java.io.File;import java.util.HashMap;import java.util.Map;import java.net.URL;import org.geotools.data.DataStore;import org.geotools.data.FeatureSource;import org.geotools.data.shapefile.ShapefileDataStoreFactory;import org.geotools.dat...
2021-06-03 23:54:39
885
原创 Python中lambda的小坑
From:https://realpython.com/python-lambda/Evaluation TimeIn some situations involvingloops, the behavior of a Python lambda function as a closure may be counterintuitive. It requires understanding when free variables are bound in the context of...
2021-03-03 10:07:59
447
1
原创 关于单元测试的几点思考
单元测试不是什么新鲜概念,随便问一个程序员,TA都能告诉你单元测试是什么,甚至告诉你具体地使用某个语言如何写出单元测试的测试用例。在最近的一个项目中,本人所在的团队践行单元测试的实践,却发现同事们对于单元测试有很多不同的见解,甚至是误解。Unit Testing虽然不是什么高精尖,但是它几乎是每个开发者每天都要用到的武器,所以还是值得思考和讨论的。先来一点关于这个项目的背景介绍,以便于讨论。之前有一个项目,姑且称为v1吧,是国外团队开发的,几年前移交给宇宙中心的团队。这是一个典型的Py.
2021-02-26 21:25:07
2084
8
原创 推荐关于Golang和Rust对比的一篇博文
原文在这里,如果有同学在两个语言之间选择困难的话,可以参考一下。https://bitfieldconsulting.com/golang/rust-vs-goBoth languages have a different scope. Golang shines for writing microservices and for typical "DevOps" tasks, but it is not a systems programming language. Rust is stro.
2021-02-04 12:29:28
1217
原创 Rust学习笔记[0]
Rust很火啊,那么,撸一把?Mac 上用rustup安装一下。装完了运行几个命令试试看。rustup versionrustup doccargo versionmkdir ./tempcd tempcargo init看看rust编译器版本rustc --version接着看看IDE和编辑器的支持,官网上列出了很多例如vim, emacs, IntelliJIDEA等等(略过VS Code)。选定了IntelliJIDEA, 安装官方插...
2021-02-02 12:57:23
151
2
原创 使用QGIS转换矢量数据的坐标系
本文介绍了QGIS的一个坐标系转换功能。这里使用SHP文件作为例子,其他类型的矢量数据也是类似的。首先在Data Source Manager添加一个矢量的数据类型,选择需要的文件。选择好文件之后,点击"Add"添加图层到地图上。然后按照下图操作。接下来选取希望做坐标转换的图层,指定目标坐标系就可以了。因为我们需要将转换的结果保存为SHP,所以在"Reproj...
2020-02-29 12:00:30
16150
2
原创 【开源GIS方案】OpenLayers和GeoServer的黄金搭档
投资少,见效快,WebGIS黄金搭档对于JS不是很精通的小朋友们注意不要踩坑!如果你创建和初始化map的代码是在header里边引入,请加上"defer"关键字,这样浏览器会在页面加载完成了再执行该脚本,否则地图不能显示出来,也不会报错。参见下图代码...
2020-02-12 23:28:35
450
原创 中国大地坐标系CGCS2000
该坐标系英文名称:China Geodetic Coordinate System 2000EPSG代码:EPSG:4490EPSG网站链接:http://epsg.io/4490某些国外厂商的GIS软件可能缺省没有支持CGCS2000,所以需要自定义。在EPSG网站上面能够查到坐标系的WKT表示,如下:GEOGCS["China Geodetic Coordinate S...
2020-02-06 15:02:16
11364
1
原创 使用QGIS符号化和分类数据
QGIS作为开源GIS产品的佼佼者,因为简单易用,一直在桌面GIS占据领导地位。这里是一个简单的例子介绍QGIS的标签(labeling,或称标记), 符号化(symbology) 和样式化(styling) 功能。首先是准备数据。这里我们用的是全国省级边界数据,当然你也可以用自己适用的数据。需要同一份数据的GISer,可以自行下载或进群索取(见文章末尾)。图一:SHP文件...
2020-02-04 16:08:44
9085
翻译 [译] 为什么我们需要关注PostGIS? - Part 2
原文链接:https://medium.com/@tjukanov/why-should-you-care-about-postgis-a-gentle-introduction-to-spatial-databases-9eccd26bc42b由于原博文较长,我分为几个部分翻译。上一部分在这里:https://blog.csdn.net/IDisposable/article/detail...
2020-01-21 10:29:30
413
翻译 [译] 为什么我们需要关注PostGIS? - Part 1
原文链接:https://medium.com/@tjukanov/why-should-you-care-about-postgis-a-gentle-introduction-to-spatial-databases-9eccd26bc42b由于原博文较长,我分为几个部分翻译。上一部分在这里:https://blog.csdn.net/IDisposable/article/details...
2020-01-16 15:38:43
226
翻译 [译] 为什么我们需要关注PostGIS? - Part 0
原文链接:https://medium.com/@tjukanov/why-should-you-care-about-postgis-a-gentle-introduction-to-spatial-databases-9eccd26bc42b【我的废话几句,可以直接略过】技术文章的翻译是个吃力不讨好的事情,大部分技术人员的英语水平都能够直接吃透原文。况且关于翻译,有句话深得我心:不能...
2020-01-04 14:40:51
331
原创 Python中函数缺省参数的早绑定
class DefaultConfiguration(object): def __init__(self): print("calling DefaultConfiguration.__init__ ......")class AppConfig(object): @classmethod def get(cls): print(...
2019-12-03 18:06:06
317
poppler库Windows版本
2024-07-19
如何编程创建3D PDF文件?
2017-11-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人