自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寂寞的博客

寂寞是多么无敌!

  • 博客(249)
  • 资源 (16)
  • 收藏
  • 关注

原创 shell行编辑器ed:在倒数第几行插入

有时需要向一个文件的倒数第几行插入东西,或在前几行插入,不像直接追加那么简单。实际上,这是行编辑器的功能。基于古老的行编辑器 ed命令:http://www.gnu.org/software/ed/manual/ed_manual.html倒数第几行插入比如在倒数第二行插入# cat file line1line2line3line4line5# ed -s file $-0inew line.,pline1line2line3line4new lineline5

2021-12-03 17:39:17 2491

原创 Kryo序列化:Class Not Found的可能原因

最近写了个Spark应用,本地测试没问题,打成jar包,通过Livy运行Spark常驻服务,在Livy接收参数时使用Kryo进行反序列化却找不到类。示例代码如下:object LivyDriver { def runJob(spark: SparkSession, encodeJsonParam: String): String = { val param = KryoSerializer.deserialize(EncodeUtil.base64DecodeBytes(encodeJso

2021-11-20 15:17:50 2039

原创 DataStore通过geopkg写入SQLite数据库

geotools工具类中 DataStore(或者说SimpleFeature)如何写入SQLite数据库。引入依赖只需要geopkg这个依赖,里面包括了sqlite-jdbc。 <dependency> <groupId>org.geotools</groupId> <artifactId>gt-geopkg</artifactId> <versio

2021-11-03 12:22:15 425

原创 sysbench使用与mysql性能测试

使用sysbenchhttps://github.com/akopytov/sysbench基本用法# sysbench --helpUsage: sysbench [options]... [testname] [command]Commands implemented by most tests: prepare run cleanup helpGeneral options: --threads=N number of threads t

2021-10-31 16:01:58 582

原创 shardingsphere-proxy分库分表配置

shardingsphere-proxyshardingsphere-proxy是一个代理,兼容mysql和postgresql协议,可以接入多种语言。1.下载下载ss-proxy安装包:https://shardingsphere.apache.org/document/current/en/downloads/下载mysql-jdbc-driver-lib:https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysq

2021-10-23 16:30:23 1208

原创 linux安装pulse客户端

本文记录下linux下pulse客户端的安装方式。ubuntuwget http://webdev.web3.technion.ac.il/docs/cis/public/ssl-vpn/ps-pulse-ubuntu-debian.debsudo dpkg -i ps-pulse-ubuntu-debian.deb缺少依赖问题根据提示解决就行。然后搜索 pulse即可Centossudo dnf update -ysudo dnf install -y epel-releasesu

2021-09-25 10:34:48 524

原创 不到1000行,Go语言就算入门了吧

作为已经掌握了 C、Java、Python、JavaScript等多种语言的我们,再学习个新语言,自然不需要重头开始。建立在已有基础上学习一般都会更快,张三丰那种无招胜有招?抱歉,我目前还达不到。不过即便如此,断断续续花个几小时把Go语言学会了,也是有诸多好处。毕竟作为一名资深Java开发者,有预感,Go语言会超越Java。语言罢了,还都是GC语言,不过如此,确实简单。下面是不到1000行的学习笔记,包含了Go的关键特点,入个门足矣。基本规则go是静态类型语言短变量声明: var a int

2021-09-21 17:04:38 187

原创 多播与Hazelcast服务自动发现,如何检测多播是否可用

多播(也叫组播)是IP层网络传播的一种方式,我们都听说过还有单播和广播等。但多播的具体应用却很少,不过最近在分布式组件Hazelcast的使用中,发现其有3种服务发现的方式,其中一种就是多播,所以来研究下。Hazelcast简介Hazelcast是一个分布式计算和存储平台。本质是用Java实现的分布式缓存组件,同时还自带SQL查询,不仅可以像使用Java集合那样操作,还可以通过SQL来查询。看它和Redis的性能比较,还更胜一筹。总之,这个组件还支持云原生,能做的事情很多,有兴趣可以多了解下。比如,

2021-09-16 09:54:16 1233

原创 新电脑快速配置

最近换了台新电脑,开发环境这些都要重新装,主要记录下步骤。系统双系统少不了,由于默认都是windows,而我偏爱linux系统。所以,第一件事就是装ubuntu,也纠结过要不要换个发行版,比如mint,不过还是先求稳吧,旧电脑可以拿来折腾。需要查看下windows下有没有开启bitlocker,需要关掉才能装。而新电脑是2.8k屏,ubuntu 20.4安装时一直闪,估计是显卡驱动不对,需要在命令行里修改启动项# vim /etc/default/grub# 加上 nomodesetGRUB_

2021-09-12 14:36:52 4732 1

原创 Picocli之多级命令行参数解析

平时用Java写一些小工具,难免用到命令行参数解析,参数比较多的时候,再使用 args 一个个去判断就比较麻烦,且不优雅。所以,使用现成的Picocli开源组件来实现。下面记录的代码可以直接拿来用,以后就懒得写了。0.效果看看要达到的效果:我们打包独立运行的 app.jar,使用 java -jar app.jar 参数运行。我们的工具有多种功能,目前仅展示2个,所以我们不想直接就跟参数,想在中间插一级表示功能的命令:# 导出java -jar app.jar export -u xx -d

2021-08-11 20:46:11 1048

原创 windows下GDAL安装开发指南

GDAL(Geospatial Data Abstraction Library)是一个开源库,用来处理GIS里栅格和矢量数据,虽然本人并非GIS专业,但所处行业需要处理时空数据,所以接触到了。而这次的任务,却是要验证GDAL原生C++运行性能,平时都是用Java、Python引用这个C++开发的库,现在遇到性能瓶颈,需要测试下GDAL本身的性能。对于一个只在大学写过C语言版图书管理系统的C系列小白来说,这是一次挑战,不能辜负大家的希望。分析问题所在:我对Java、Python、js等语言很熟悉,C

2021-05-25 21:49:52 4130 4

原创 最后一次:HDFS的permission denied

在使用Hadoop HDFS时,几乎初学者都会遇到下面的权限问题,有的人草草搜索解决了,却不知道为什么,下次换一种场景依然解决不了。只有了解其本质原因,才能举一反三。异常信息:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=administrator, access=WRITE, inode="/user/hdfs/xxx":

2021-04-23 21:45:07 1306

原创 sed替换-带变量

我们有一个文件jimo:$ cat jimo hehe haha jimo wiki wiki注意:以下替换不使用-i参数真的替换文件内容,仅仅展示替换后的结果sed普通替换我们替换一个文件中的某个字符串,比如替换jimo里的wiki为haha:$ sed 's/wiki/haha/g' jimohehe haha jimo haha haha但是当我们用变量时如何替换呢?带有变量的替换声明一个变量 v1$ v1=lily$ echo $v1lily接着我们替换,这时候需要

2021-03-30 09:12:11 7123 5

原创 mysqldump导出insert语句

记录下mysql导出insert语句,不带注释,不带Set变量,不带表结构等等乱七八糟的多余信息,仅仅剩下光滑纯洁的insert语句。mysqldump -u root -p --set-gtid-purged=off --compact --comments=FALSE --add-drop-table=FALSE --no-create-info=TRUE --no-create-db=TRUE --create-options=FALSE --where="deleted=0"d

2021-03-26 22:55:39 3453

原创 快速构建hadoop单机版docker镜像

云是未来,未来已来!容器是云的核心组件,docker是实现容器的事实标准。hadoop是使用最广的大数据组件,然而其并没有官方镜像。所以,本文会搭建一个伪分布式版hadoop集群,用于CI测试非常方便。准备准备的文件结构如下:├── dockerfile├── hadoop│ ├── core-site.xml│ ├── hadoop-2.7.7.tar.gz│ ├── hdfs-site.xml│ ├── mapred-site.xml└── start-servi

2021-02-27 20:38:17 995

原创 如何统计你的开发工作量

在IT界曾经流传过一种方法:使用代码行数来评估程序员工作量。虽然至今没有亲身体验,但是在某种程度上,这种方法是有效的,比如一个对代码要求很高,总是不断优化和重构,将代码从100行变成10行的人,这是纯粹对技术的追求,对自己的挑战。对于使用框架开发的人来说行不通,50%都是框架代码,对于中间件开发来说有一定效果。为了更好的统计我的开发效果,专门写了一个小工具来统计我的提交数。import osimport platform# 新增功能的关键字new_feature_keywords = ['新

2021-02-06 10:58:13 1628

原创 HDFS FileSystem使用的坑

在初次使用HDFS客户端下载文件时,很容易写出下面的代码FileSystem fileSystem = FileSystem.get(uri, conf, "hadoopuser");// 使用fileSystem做操作try (BufferedReader br = new BufferedReader( new InputStreamReader(fileSystem.open(new Path("/dat

2021-01-30 11:01:33 3442 2

原创 从时空数据到空间计算工具-JTS

随着智慧城市的发展,GIS行业迎来了新机遇,时空数据也成为了这个行业的基石。作为一名有追求的程序员,终于在时空数据的道路上越走越远。JTS是什么?怎么使用JTS?来个入门案例免责声明:JTS是什么?https://github.com/locationtech/jtsJTS Topology Suite的缩写,递归命名 or Java Topology Suite。JTS是一个java api,它使用显式精度模型和健壮的几何算法实现一组空间数据变换的核心操作。JTS试图尽可能精确地实现

2021-01-13 21:57:11 957

原创 git迁移项目中的某个目录到新项目

对于一个多模块项目,有一天想把其中一个模块迁移成单独的项目,因为有很多提交,所以想带着提交记录一起迁移。本质上就是:git迁移项目中的某个目录到新项目,包括那一个目录的提交记录。# 克隆一份新的旧项目, 选择一个分支,比如dev分支$ git clone -b dev 旧项目git地址$ cd my-project# 假如我只需要 service 目录下的东西和其提交记录$ git filter-branch -f --subdirectory-filter service # 现在,该项

2021-01-09 16:51:05 2749 2

原创 外部覆盖jar包里的配置文件

在使用java -jar app.jar 形式运行jar包时,需要覆盖jar包里classpath下的配置文件,可以采用下面的命令:$ java -Xbootclasspath/p:/usr/hdp/hadoop/conf:/usr/hdp/hbase/conf -jar app.jar说明:-Xbootclasspath/p 和 -Xbootclasspath/a 都存在,一个是放在加载路径之前,一个是放在最后后面通过 :(unix), ;(windows) 来分隔多个目录根据文档介绍:h

2021-01-02 09:53:15 3079 4

原创 python库打包成wheel文件并上传到pypi

如何将自己的python库打包成wheel文件,并上传到pypi?以下操作都使用python3新建setup.py在项目根目录新建setup.py,内容如下from setuptools import find_packagesfrom setuptools import setupsetup( name="my-db-driver", author="jimo", version="2.0.0", author_email="[email protected]",

2020-12-21 22:20:11 2206

原创 Jackson序列化org.locationtech.jts.geom.Point

当使用Jackson来序列化 org.locationtech.jts.geom.Point 对象,就会发生递归的栈溢出GeometryFactory gf = new GeometryFactory();Point point = gf.createPoint(new Coordinate(1.2345678, 2.3456789));String geojson = objectMapper.writeValueAsString(point);如下:com.fasterxml.jackson

2020-12-13 20:52:46 3759 3

原创 命令行参数解析picocli快速使用

关于命令行参数解析的库还挺多,调研之后选择了 picocli 这个库因为其文档很全,所以下面是一个快速使用的教程,抓住主干再揪细节。 <dependency> <groupId>info.picocli</groupId> <artifactId>picocli</artifactId> <version>4.5.2</version>

2020-12-06 18:21:55 2537

原创 hbase手动合并region Java实现

有时需要手动合并hbase的region,顺手写个工具类。命令行在命令行可以通过 merge_region来合并2个region:hbase> merge_region 'ENCODED_REGIONNAME','ENCODED_REGIONNAME'hbase> merge_region 'ENCODED_REGIONNAME','ENCODED_REGIONNAME',true比如全名称是TestTable,0094429456,128947600452.56d55dsf5656

2020-10-11 19:58:01 881

原创 非root用户运行docker

2种简单的方法配置docker在非root用户下运行。前提:使用了root用户安装docker。方法1将用户加到docker组# 添加docker用户组,因为这是docker默认的组sudo groupadd docker# 将你的用户加到docker组sudo usermod -aG docker youruser方法2将你的用户所在组设为docker默认组修改或新增配置:# vim /etc/docker/daemon.json { "live-restore": t

2020-09-28 14:08:52 1640

原创 The goal you specified requires a project to execute but there is no POM in this directory

将一个非maven项目的jar包安装到本地maven仓库,遇到报错:The goal you specified requires a project to execute but there is no POM in this directory当你以为是自己jar包有问题时,才发现是powershell的坑。运行命令如下: mvn install:install-file -Dfile=avatica-core-1.17.0-SNAPSHOT.jar \ -DgroupId=org.apa

2020-09-28 08:43:38 4731 5

原创 springboot代理MQ请求

通过后端代理前端到mq的请求(stomp协议),主要是为了加权限验证。这里的MQ指ActiveMQ。依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>stomp代理import

2020-09-19 12:12:56 363

原创 Jackson注解详解

随着fastjson的壮大,漏洞也越来越多,是时候考虑下Jackson了,下面对Jackson近30个注解逐个解释。引入依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.11.2</version

2020-09-10 07:37:15 1640

原创 分页读取hdfs文件

分页读取hdfs文件。通过流是可以随机读的。准备数据放到 /jimo/linux.csv# cat linux.csv 0,01,12,23,34,45,56,67,78,89,910,1011,1112,1213,1314,1415,1516,1617,1718,1819,19第一次读取10行读取时记录读了多少个字符final FileSystem fs = getFileSystem();int batch = 10;long pos = 0;

2020-08-25 20:47:04 543

原创 clickhouse: Cannot execute replicated DDL query on leader

Cannot execute replicated DDL query on leader在执行分布式删除时报错:10.10.10.16 :) truncate table t_test_local on cluster shard2_replica2_copyTRUNCATE TABLE t_test_local ON CLUSTER shard2_replica2_copy┌─host──────────┬─port─┬─status─┬─error─────────────────────

2020-08-24 08:41:17 3212

原创 firewalld配置文件修改

网上大多数文章都是直接讲命令方式,很少讲直接通过配置文件修改,所以这里记录一下。从命令执行结果查看配置文件变化。开放端口永久开放2个端口firewall-cmd --permanent --zone=public --add-port=8080/tcpfirewall-cmd --permanent --zone=public --add-port=80/tcpfirewall-cmd --reload在 /etc/firewalld/zones 下的 public.xml里:<?

2020-08-15 09:23:15 11531 1

原创 windows自带hyperv安装虚拟机ubuntu与分辨率修改

在windows上自从自带了hyperv之后,装虚拟机就方便了。安装在 【启用或关闭windows功能】里选中【hyper-v】之后,重启系统。即可在【windows管理工具里创建虚拟机了】使用下载好的ubuntu的镜像文件,安装过程就不赘述。要修改一些配置,默认是装在C盘的。修改分辨率默认windows的hyperv比较简陋,没有更改虚拟机分辨率的地方,但是可以在虚拟机内部修改。以ubuntu为例: sudo vi /etc/default/grub然后更新:sudo up

2020-08-08 10:34:41 1854

原创 java免密连接SSH

本文使用2个java库示例如何免密连接ssh执行命令。JSchhttp://www.jcraft.com/ <!-- https://mvnrepository.com/artifact/com.jcraft/jsch --> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifa

2020-08-03 21:52:45 2012

原创 python自动生成数据库设计文档

项目交付了,需要补齐设计文档,对于数据库设计这种,需要写成word文档,懒惰的我们肯定考虑用代码自动生成。下面是使用python读取mysql库,每个表写一个表格,生成word文档。import pymysql.cursorsfrom docx import Documentdoc_path = 'D:\\test.docx'doc = Document()doc.styles['Normal'].font.name = u'宋体'def to_doc_table(rows, table

2020-07-29 20:40:53 1184

原创 scala面向对象总结

scala面向对象总结。Java是面向对象语言,但存在着非面向对象内容:基本类型、null,静态方法等;scala是天生面向对象语言,一切皆对象语法总结:scala类默认是public的,不必声明一个源文件可以有多个类的声明类的修饰符查看简单示例:object Demo01 { def main(args: Array[String]): Unit = { var p1 = new Person p1.name = "jimo" p1.age = 18

2020-07-29 07:23:50 806

原创 scala高级函数

scala函数(高级)总结作为参数的函数def plus(x: Int): Int = x + 1println(Array(1, 2, 3, 4).map(plus).mkString(",")) // 2,3,4,5偏函数给定一个列表 List(1,2,3,"abc"), 返回所有数字+1,且过滤掉非数字。方法一:模式匹配,不够优美val list = List(1, 2, 3, "abc")// 模式匹配方式val list1 = list.map { case x: In

2020-07-28 07:34:00 318

原创 scala模式匹配

scala模式匹配总结。基本介绍scala中的match是强大版switch语句。入门案例: val op = "*" val n1 = 10 val n2 = 20 val res = op match { case "+" => n1 + n2 case "-" => n1 - n2 case "*" => n1 * n2 case "/" => n1 / n2 case _ =&

2020-07-27 08:16:36 173

原创 activemq启动报错:Unsupported major.minor version 52.0

使用的activemq版本是 5.15.13, 本来在 JDK 1.8版本下应该正常运行,手动启动没问题,使用crontab脚本检测启动时发现JDK版本不对。INFO: Loading '/software/apache-activemq-5.15.13//bin/env'INFO: Using java '/usr/bin/java'INFO: Loading '/software/apache-activemq-5.15.13//bin/env'INFO: Using java '/usr/bi

2020-07-25 17:17:07 534

原创 windows搭建C++开发环境

在windows上使用CLion搭建C++开发环境。1.安装CLion直接下载安装,购买正版即可。2.安装 mingw 和 makehttp://www.mingw.org/wiki/Getting_Started安装过程简单,先安装基础版,后面根据需要安装其他插件。安装以下几个常用工具:gcc:编译C语言g++:编译C++gdb:调试工具make: 构建工具使用mingw安装:mingw-get install gcc g++ mingw32-make gdb3.安装cma

2020-07-25 10:55:08 3711

原创 scala集合

scala集合学习笔记。scala集合基本介绍scala同时支持可变和不可变集合,不可变集合可安全的并发访问2个主要的包:不可变:scala.collection.immutable可变:scala.collection.mutablescala默认采用不可变集合,对于几乎所有集合类,scala都提供了2个版本不可变:集合本身内存地址不可变集合的继承关系图注意scala和java集合体系的不同。

2020-07-22 07:49:53 204

zxing的Android提取库

从zxing框架里提取出的Android端扫二维码的库,适合as导入

2016-06-10

android扫描二维码及zxing框架lib

从zxing框架里提取出的Android端扫二维码的库和示例程序

2016-06-10

volley框架

一个封装的非常好的google框架,极大的简化了网络操作与数据获取

2016-03-28

蓝牙聊天APP

这是一个Eclipse下的安卓工程,基本上就是谷歌的源代码,蓝牙聊天,不过可以改变为蓝牙传送数据

2016-03-11

ScrollView嵌套两个ListView

此为Eclipse下的Android工程文件,用非常简单的方法解决了ScrollView嵌套多个ListView的问题。

2016-02-24

Path2.0菜单效果-Android

此为AS工程文件,配套我的博客源代码,讲了用Android属性动画简单的实现Path2.0中的菜单效果,非常简单。

2016-02-22

Android属性动画

此为AndroidStudio工程文件,配套博客源代码,内容为Android属性动画。

2016-02-20

CSS3.0参考手册

这是chm文件,里面有css3.0和css2.0的参考手册,寂寞资源,永远免费。

2016-02-15

Java编程思想第四版完整中文高清版

这是书籍《Java编程思想》第四版,寂寞资源,永远免费。

2016-02-15

自定义View代码

此为android工程,自定义了一个导航栏,供学习android模板,自定义View

2016-02-15

Fragment实现的Tab页面

此为android工程,一个最简单的tab页面,采用Fargment实现,同时加入了启动页面,动画等知识

2016-02-14

BaseAdapter的使用与优化

此文件为Eclipse下的android工程,里面介绍了listView的三种适配方式,从实现到优化。

2016-02-11

基于Face++的人脸识别与检测

有两个功能,一是基于谷歌API的人脸检测(复用了大神的代码,花了我3个积分),还有基于Face++的人脸识别,在图片上绘图之类的操作都有,且注释详细。

2016-02-06

canvas实现模糊效果

css3实现图片模糊,canvas实现交互设计,简单,简单,简单,简单,简单,简单单

2016-01-30

Tab页面实现代码2

本代码供免费下载,因为有Bug,会移动的Tab页面,蠢死的Android

2016-01-28

Tab页面实现代码

这是一个Eclipse下的Android工程文件,非常简单地实现了Tab页面布局,使用的是PagerAdapter进行适配。

2016-01-28

空空如也

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

TA关注的人

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