自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bruce

努力做一个精通全栈开发的段子手

  • 博客(158)
  • 问答 (1)
  • 收藏
  • 关注

原创 开源GIS技术讨论,欢迎加群

同学们好,众所周知开源软件已经在各个行业或垂直领域中得到广泛应用。在地理信息系统中,开源软件和技术的比重非常高。我建立了一个QQ群用于交流各种GIS相关的开源技术,欢迎GIS爱好者开发人员加入,不管你是大神还是小白都热烈欢迎!主要关注的技术有以下这些:GeoServer OpenLayers MapGuide Open Source FDO GDAL / OGR QGI...

2019-12-16 11:11:15 343

转载 [转] 如何阻止或禁止WebSocket

前一个项目中使用了WebSocket技术来实现前端和后端的消息及时通知,具体有几种类型的消息,包括其中非常重要的一点就是后端计算的过程可能比较长,一些输出到stdout和stderr的信息需要让前端展示。一次技术讨论的时候,大家提到了说有的客户网络环境中可能会禁用WebSocket,那样我们的前后端无法正常通信了,这是一个很大的技术风险。因为websocket本身是通过http协议upgrade来的,它和普通的HTTP通信使用相同的端口,所以采用封端口的方式肯定是不行的。我不打算用这样的方式,原因有多个。

2024-01-09 08:32:18 200 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 1245

原创 杀不死你的,终将使你更强大

从4月份到10月底,开发的新功能顺利上线了,运行平稳。这期间除了忙,就是巨忙。除了8月初休假一周回了趟老家,其他时间每天从早拼到晚,周末时间也搭进去不少。但是总归结果是挺好的。接下来新的任务挑战性更大,影响面更广更深远。杀不死你的,终将使你更强大。

2022-11-06 10:28:17 159 1

原创 C++11之this_thread namespace

如何使用C++11中的this_thread提供的函数例如yield, get_id

2022-08-12 16:04:36 359

原创 给C++ std::call_once传递可变参数

给c++ std::call_once传递可变长参数

2022-08-12 14:22:54 430

原创 在C++多线程中使用std::call_once保证仅仅执行一次

C++标准库中的std::call_once函数保证只调用一次,常常用于初始化一些关键资源。

2022-08-12 10:31:35 559

原创 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 388

原创 C++语法之function-try-block

C++里边有个看着比较怪异的语法,叫做“function-try-block”。

2022-06-29 22:01:16 530

原创 复习C++重读名著Effective STL - item 18 vector<bool>的缺点分析

复习C++重读名著Effective STL之第18条

2022-06-05 18:07:34 177

原创 Python nose测试大法

[注明:本文最初发布于简书,然而。。。]Python作为一门简单易学的编程语言,现在长期位于编程语言榜的前三。在人工智能的第二次浪潮涌起之前,因为简单快速容易维护,Python在很多系统中是作为“胶水语言”存在的。而现今时代因为出现大量数据处理的需求,以及在大数据集上的分析和推演的需求,包括人工智能的广泛运用,使得Python语言换发了第二春,众多的机器学习框架和库都是用Python例如pytorch和tensorflow等等。另外,很多数据分析师或工程师都选择了Python作为主要开发语言。大

2022-04-23 14:38:17 713

原创 JAVA中的clone到底是个什么呆鹅

clone, clone, clone

2022-01-28 15:23:45 367

原创 Python中的对象大小

python中对象大小的计算

2022-01-27 16:16:36 1559

原创 什么时候需要加volatile关键字?它能保证线程安全吗?

这是一道常规面试题,对于各位大牛来说不算什么。但是怎样才能给小白讲明白呢?我尽力吧。先来看看这个关键字吧。volatile,查词典知道它的意思是“adj. 易变的,动荡不定的,反复无常的;(计算机内存)易失的”。说到它就要谈到CPU的高速缓存。我们知道一个程序运行起来,里边的变量都是在内存的,CPU为了提高效率,会把变量读到它自己的缓存中,这个缓存的读写速度比内存快很多。只有在缓存不够用的时候,才会根据算法把变量写回到内存。如果是单个CPU这样不会造成什么困扰,因为单个CPU不会存在缓存和内存不一致

2022-01-08 15:13:28 1066

原创 回顾2021,展望2022

回顾2021年,展望充满希望的2022年。

2021-12-31 11:26:49 324

原创 调试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 230

原创 go语言的测试覆盖(2)

今天讲一下go语言的test coverage是如何实现的。上篇讲到了go语言1.2之前对于测试覆盖的支持,使用了比较“传统”的做法,也就是对于二进制文件的analysis和instrument。从go v1.2开始,新的测试覆盖工具使用了完全不同的方法。思路非常简单:在编译之前重写源文件,在源文件中加入一些instrument,然后编译和执行被修改的源文件,得到覆盖的统计信息。重写源文件其实不难,得益于go强大的命令行工具 - 它负责从源文件编译,到执行测试,直到程序的执行全盘搞定 - 所以在这个

2021-08-03 23:34:58 750

原创 微服务,真的香吗?

不是为了更好的创造用户价值,而是为了微服务而微服务,是耍流氓的第一特征。

2021-07-30 23:30:25 292

翻译 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 969

原创 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 1712 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 809

原创 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 404 1

原创 关于单元测试的几点思考

单元测试不是什么新鲜概念,随便问一个程序员,TA都能告诉你单元测试是什么,甚至告诉你具体地使用某个语言如何写出单元测试的测试用例。在最近的一个项目中,本人所在的团队践行单元测试的实践,却发现同事们对于单元测试有很多不同的见解,甚至是误解。Unit Testing虽然不是什么高精尖,但是它几乎是每个开发者每天都要用到的武器,所以还是值得思考和讨论的。先来一点关于这个项目的背景介绍,以便于讨论。之前有一个项目,姑且称为v1吧,是国外团队开发的,几年前移交给宇宙中心的团队。这是一个典型的Py.

2021-02-26 21:25:07 2007 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 1169

原创 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 123 2

原创 使用QGIS转换矢量数据的坐标系

本文介绍了QGIS的一个坐标系转换功能。这里使用SHP文件作为例子,其他类型的矢量数据也是类似的。首先在Data Source Manager添加一个矢量的数据类型,选择需要的文件。选择好文件之后,点击"Add"添加图层到地图上。然后按照下图操作。接下来选取希望做坐标转换的图层,指定目标坐标系就可以了。因为我们需要将转换的结果保存为SHP,所以在"Reproj...

2020-02-29 12:00:30 15138 2

原创 【开源GIS方案】OpenLayers和GeoServer的黄金搭档

投资少,见效快,WebGIS黄金搭档对于JS不是很精通的小朋友们注意不要踩坑!如果你创建和初始化map的代码是在header里边引入,请加上"defer"关键字,这样浏览器会在页面加载完成了再执行该脚本,否则地图不能显示出来,也不会报错。参见下图代码...

2020-02-12 23:28:35 401

原创 中国大地坐标系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 10240 1

原创 使用QGIS符号化和分类数据

QGIS作为开源GIS产品的佼佼者,因为简单易用,一直在桌面GIS占据领导地位。这里是一个简单的例子介绍QGIS的标签(labeling,或称标记), 符号化(symbology) 和样式化(styling) 功能。首先是准备数据。这里我们用的是全国省级边界数据,当然你也可以用自己适用的数据。需要同一份数据的GISer,可以自行下载或进群索取(见文章末尾)。图一:SHP文件...

2020-02-04 16:08:44 8462

翻译 [译] 为什么我们需要关注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 356

翻译 [译] 为什么我们需要关注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 189

翻译 [译] 为什么我们需要关注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 290

原创 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 275

原创 一些小事的絮絮叨叨

程序员的日常,要花大量时间跟代码打交道:写代码,改代码,读代码。而其中占用最多时间的是读代码,读自己的代码,同事的代码,同产品的或者其他产品的,有时候也需要读懂第三方库和框架的代码。跟很多同事一样,我也觉得写代码的难度远远比不上读懂别人的代码,很多情况下是因为代码可读性很差。代码可读性这个属性,不是很容易度量,所以没有什么自动化工具来帮助我们。然而,作为一个合格的程序员,良好的可读性依然是...

2019-08-21 23:27:09 190

原创 【原创】关于软件开发的一些名言和思考 - 读《告别失控》有感

《告别失控》这本书是听《极客时间》的时候哪位大神(可能是左耳朵耗子)推荐的,最近正在读这本书。在本文中布鲁斯同学挑选了7条个人喜欢的名言,大言不惭地评论一番。Martin Golding (Or John F. Woods)始终应当把将来负责维护你代码的人想象成一个知道你住在哪里的狂暴的精神病患者,以此来敦促自己小心翼翼地编码。为了人身安全,我决心把这一句话当做Rul...

2019-08-17 18:47:04 519

原创 推荐一本小书《每天5分钟玩转K8s》

k8s是个热门的大主题,但是很多技术人员并没有足够多的“时间预算”去深入专研,所以一本纲要性的书是再好不过了。我手上的这本小书就写得简明扼要,深得我心。虽然这本书很小巧,但是涵盖了k8s很多方面,从概念到实操,再到生态中的流行工具都一应具备,所以非常适合作为入门参考。而且因为小巧,花不了多少时间就能够读完,完全不造成巨大的心理伤害。...

2019-03-16 11:12:47 2140

原创 Python中的装饰器(decorator) - 函数装饰器

Python中的装饰器(decorator)并不是什么很神秘的火箭科技,但是妙用却很多。对于我等好学之徒,怎么能不深入研究呢?先放相关代码地址:https://github.com/jiafangtao/web_programming/tree/master/py-decorators 关于decorator是什么,这里不做说明了,引用一段话,同学们细读就能理解了。A decor...

2019-01-05 18:17:30 371

原创 2019年的愿望

各位博友,新年快乐! 这里写下新年愿望,立下flag,相信美好的事情就会发生。 2019年希望薪水能够涨10%(经济下行的时候不适合跳槽啊)2019年希望少跑医院2019年希望能够学会golang(写出超过5000行的go代码,估计算掌握了吧) 接下来我刚整理自己的书单和任务清单了 ...

2018-12-30 13:54:57 303 1

原创 单元测试,是程序员的基本功

10-11月份,我花了很多时间在项目D的代码重构和单元测试上,这期间重读了《重构》、《单元测试的艺术》和《Mastering Unit Testing Using Mockito and JUnit》等基本关于单元测试的书。一点感受,记录于此。关于为什么需要单元测试,以及测试驱动开发的原理,已经有大量的文章书籍讲述,我就不再浪费时间发表陈词滥调了。我的一个基本观点是:单元测试是程序员的一...

2018-12-29 22:46:38 723

原创 我永远记不住的git命令

如何撤销上一个提交(还没有push到服务器之前):git reset --soft HEAD^ or git reset --soft HEAD~This will undo the last commit.Here --soft means reset into staging.HEAD~ or HEAD^ means to move to commit before HEA...

2018-12-21 14:10:51 301

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除