自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 windows下编译boost的参数说明

windows下命令编译boost的基本参数说明(以1.62为例): bjam install ^ --prefix=E:\caffe-static\release\boost_windows_vc140_x86_64_md ^ --without-python -a -d+3 -q -j...

2020-05-06 10:42:47 57 0

原创 C++11模版元编程:如何判断一个类型是完整类型(complete type)

什么是完整类型(complete type)? 要明白这个概念不如先从不完整类型(incomplete type)开始. 简单说,如果在编译期编译器能计算出一个类型的size,那么它就是一个完整类型,否则就是不完整类型。 比如如下的向前声明,编译器遇到它时,并无法判断student这个类型有占用多...

2020-04-25 18:32:51 89 0

原创 erpc(EmbeddedRPC)入门笔记
原力计划

RPC 最近在忙一个IOT设备的项目,想设计一个通信系统通过串口控制设备(freertos)的运行。按照传统的设计思路,先要定义一套串口通信协议,在这套协议中传输层协议、应用层协议一个都不能少。每一层协议都要自己实现。数据编码/解码,数据校验,容错,这些非常基础的东西都要自己实现。 等这些协议都实...

2020-04-18 11:53:26 146 0

原创 c++11:如何判断std::function对象相同?

我们知道std::function的实质就是个函数指针,但在c++11中std::function并没有实现操作符==(要到C++20才实现),所以我们无法使用==操作符来判断两个std::function对象是否相等,虽然我们明明知道它就是个指针。 但我还是要判断啊,怎么办? 仔细研究了std:...

2020-04-06 18:24:21 228 0

原创 c++11:枚举类型(enum)的前向声明(forward declaration)

在C++11之前,C++标准是不支持枚举类型的前向声明的。我说出这个结论,肯定有用msvc的童鞋不愿意了:口胡,MSVC明明就可以对枚举类型前向声明,下面这样的前向声明在MSVC下好好的,没有任何问题。 enum E; 是哦,你说的对,MSVC下上面的写法的确是没问题,那因为MSVC提供了这个特...

2020-03-25 14:45:48 259 0

原创 spring boot: java.lang.AbstractMethodError: org.apache.bval.jsr303.ApacheValidatorFactory.close()V

今天在用spring boot启动服务时发生了如下的异常: [main][ERROR] (SpringApplication.java:771) Application startup failed java.lang.AbstractMethodError: org.apache.bval.j...

2020-03-12 14:17:54 175 0

原创 NV21转RGB或BGR的java实现和C实现

NV21是android平台摄像设备输出的标准格式,经常需要将它转为RGB或BGR格式, 以下是NV21格式图像矩阵转为RGB/BGR的实现代码,代码在windows/linux/android平台测试通过. NV21格式的具体定义参见: 《YUV(NV21)图像数据到RGB颜色空间的转换》 关于...

2020-03-07 17:53:41 106 0

原创 activemq:INFO: Broker not available at: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

(win7系统下)我用jdk7下启动apache activemq 5.14.5服务后,在用命令activemq stop停止服务时遇到文章标题的错误,服务没有被停止。 C:\ >activemq stop Java Runtime: Oracle Corporation 1.7.0_55...

2020-01-16 10:30:04 318 0

原创 Activemq获取消费者数量(consumerCount)

最近开始学习activemq系统的使用,关于如何在activemq中时实获取一个主题/队列(topic/queue)的订阅/消费者数量,让我花了挺多时间才搞明白: 在activemq中,可以通过订阅主题或队列对应的消息管理主题,从而获取咨询消息(Advisory Message), 每当新增/减少...

2020-01-08 17:47:52 336 0

原创 maven:从命令行(commandline)读取取pom.xml中的属性(property)

如何在命令行(shell)读取pom.xml中的属性呢? 我在网上找到如下回答: https://stackoverflow.com/questions/23802951/get-pom-xml-property-from-commandline 就是用maven的内置插件 maven-help-...

2019-12-01 11:22:46 109 0

原创 guava:Cache中使用数组(Object[],int[]...)作为KEY

guava是google的一个开源的基础java库,其中提供了一个非常有用的缓存(cache)功能。创建cache的过程大概如下: LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() .maximumSi...

2019-11-15 18:18:27 170 0

原创 nanohttpd:实现跨域(CORS)请求

NanoHTTPD是一个轻量级的HTTP服务器,可以很方便地嵌入到Java程序中。所以在android平台上有广泛的使用。 NanoHTTPD默认是不支持访问跨域(CORS)请求的。如果希望自己的NanoHTTPD服务支持CORS,就要自己实现对CORS请求的响应。 关于什么是CORS,这个文档有...

2019-10-15 16:36:49 141 0

原创 linux shell:判断git工作文件夹是否干净(clean)

git diff 如果你不关注未纳入版本控制的文件(untracked)的文件,使用git diff就可以判断git工作文件夹是否干净,如果是干净的,git diff将没有输出,否则输出修改的文件的差异 #!/bin/bash if [[ -n $(git diff --stat) ]] the...

2019-09-10 09:57:30 455 0

原创 linux:根据主进程查找子进程

如下是我的项目中创建的一个java系统服务在通过systemctl status显示的服务状态 $ systemctl status facelog ● facelog.service - facelog service Loaded: loaded (/etc/systemd/system...

2019-09-07 18:20:45 415 0

原创 msys2:shell下获取node版本号:

最近在写shell脚本时需要获取node的版本号,代码很简单node --version | sed 's/^v//',在linux(ubuntu)下执行都没有任何问题 但是在windows下的git-bash(基于msys2)执行时,报错了: stdout is not ...

2019-09-03 10:01:13 149 0

原创 shell:获取git当前分支或tag

shell下如何获取git的当前所在分支名或tag呢? 为了解决这个小问题,我之前是走了弯路的,之前我简单的想法就是解析git branch输出的内容从中获取 分支或tag名。 如下代码, # 返回$1指定的git项目的当前分支(branch)或标签名(tag) # $1 git项目源码位置 fu...

2019-09-01 11:14:07 439 0

原创 wget:重定向响应输出到stdout

wget 访问一个url默认是把主机的响应内容保存到文件 比如: $ wget http://www.baidu.com --2019-08-14 12:49:08-- http://www.baidu.com/ 正在解析主机 www.baidu.com (www.baidu.com)......

2019-08-14 13:02:53 580 0

原创 linux redis安装及多端口配置过程

安装 redis在linux下的安装很简单,ubuntu下apt-get就可以很方便的安装 # ubuntu安装redis-server sudo apt-get install -y redis-server 自定义端口 redis默认安装时服务端口为6379,很多情况下我们需要启动自定义的端...

2019-08-13 16:46:36 294 0

原创 linux shll:sudo的相关使用

判断当前用户是否有sudo权限 判断当前是否有sudo权限可以用sudo -v返回0为sudo user,否则不是。 使用示例: if sudo -v &>/dev/null; then echo $(whoami) is sudo user; else echo $(w...

2019-08-10 13:55:23 84 0

原创 linux shell 获取java版本号

获取java版本号 $ java -version 2>&1 | sed '1!d' | sed -e 's/"//g' | awk '{print $3}' 1.8.0_222 获取java类型(openjdk...

2019-08-05 11:50:37 1059 0

原创 linux/bash:用数组模拟栈(FILO)的封装

linux shell中是没有队列这个类型的,如果需要用到队列模型,就需要自己实现,以下是用数组模拟一个栈(FILO)的操作 #!/bin/bash # 向栈中添加一个元素 # $1 栈变量名 # $2 添加到栈中的元素 function stack_push(){ # 定义array 为间接引...

2019-08-04 12:09:38 93 0

原创 linux/shell:列出所有ip地址及对应的物理网卡

基本的思路就是用route命令列出所有的网卡名,然后再用ifconfig配合字符串匹配找出对应的ip地址,示例如下: #!/bin/bash function ips(){ local nics=$(route -n | grep ^0.0.0.0 | awk '{print $8}&...

2019-08-02 09:39:09 1528 0

原创 linux/bash:map作为参数传递给function

在linux bash中map是作为数组处理的,不能作为参数直接传递函数,如果一定要传递给函数,要做一些变通处理,示例如下: #!/bin/bash function test_map() { # 获取map变量的声明字符串 # 在本例中为:declare -A user='([na...

2019-07-31 16:51:00 377 2

原创 linux:dialog表单提交示例

dialog是个linux命令行的ui显示工具,可以在命令行显示,以下是在命令显示表单的示例: #!/bin/bash # 表单各字段的默认值 shell="bash" groups="1" user="hello" home="...

2019-07-30 11:04:26 187 0

原创 mysql:避免命令行使用password的安全警告:Warning: Using a password on the command line interface can be insecure.

在命令行执行mysql的命令mysql -uroot -p${password} < file.sql,会导致下面的警告: Warning: Using a password on the command line interface can be insecure. 意思就是在命令行使...

2019-07-22 16:42:30 3587 0

原创 MSYS2:windows下获取ip地址对应的网卡名

基本的原理就是用netsh interface ipv4 show address命令列出所有网卡的地址信息,然后用sed过滤掉无用的内容,具体实现如下: $ netsh interface ipv4 show address |\ sed -E -e '/(DHCP enabled...

2019-07-20 16:11:18 140 0

原创 MSYS2:获取本机的ip地址

MSYS2虽然是个linux shell环境,但如果要获取网卡的信息,还是需要windows平台提供的命令 参照这篇文章 《bat脚本 - 获取局域网内的本机IP》可以实现在MSYS2环境下获取本机IP,示例如下 $ route print -4 |grep -E '0.0.0.0\s...

2019-07-20 11:46:54 99 0

原创 maven:linux shell获取项目版本号(project.version)的方法

今天写linux shell脚本时需要获取maven项目的版本号,也就是pom.xml中的${project.version}。 在Stack OverFlow上找到这个帖子: 《How to get Maven project version to the bash command line》...

2019-07-18 14:02:08 492 0

原创 MSYS2:PID与windows 进程ID

MSYS2下启动的进程ID分两种:MSYS2空间的PID和windows的PID 以mysql为例,在MSYS2窗口启动mysqld $ mysqld --console 如下我们在windows CMD窗口用netstat查找3306端口的进程ID为2356 C:\>netstat -a...

2019-07-15 17:42:27 110 0

原创 MSYS2下:unix路径和window路径之间的转换

今天在写MYSYS2下的脚本(bash shell)遇到一个问题:MSYS2环境下获取到的路径都是’/'开头的unix路径,需要把它转为’C:\Windows\system’这样的windows路径。 万能的google给了我答案,找到stackflow上这篇文章: 《msys path...

2019-07-15 13:35:46 962 1

原创 java:组播通讯示例

在局域网内,组播通讯还是很有用处的,以下代码基于MulticastSocket类进一步封装更加方便的实现组播数据发送和组播数据接收功能。 package net.gdface.utils; import java.io.IOException; import java.net.DatagramPa...

2019-07-11 11:26:07 84 0

原创 thrifty-compiler maven插件

之前写过一篇文章介绍如何用thrifty-compiler 通过IDL生成client代码 《Microsoft/thrifty:解决thrifty-compiler.jar运行报错不能编译IDL生成java class代码问题》 但是Microsoft/thrifty官方并没有提供maven...

2019-07-07 13:02:44 106 0

原创 linux/shell:读取包含'.'键名的.properties文件

如果properties中的key名只是由字母数字组成,那读取properties中的property很简单,示例如下: 假设.properties中内容为: prop1.properties username=tom 读取prop1.properties中的username . prop1.p...

2019-06-24 16:01:59 1620 1

原创 Win7/Win10移动用户文件夹(C:\Users)移到非系统盘(如D:)

Windows的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中保存着所有的用户个人数据,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\你的用户名\Desktop\目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:\Users\用...

2019-06-02 14:53:08 21129 10

原创 jcifs:android解析局域网主机名

android平台默认不支持SMB协议,所以无法直接通过主机名访问局域网的设备。如果通过主机名需要访问局域内的设备,就需要将局域网内的主机名解析为IP地址,通过IP地址访问。 所以现在问题就变成了,如何将局域网内的主机名转换为对应的IP地址? 第三方的开源库jcifs可以解决这个问题。根据jcif...

2019-06-01 16:01:16 534 0

原创 jedis:subscribe(订阅)断线重连(reconnect)

使用jedis 实现redis消息订阅是一个独立的线程(长连接与Redis server通讯), 关于redis消息订阅是什么 参见 《Redis Subscribe 命令》 在实际应用场景下,Redis服务暂时中断是可预见一种异常,必须处理,这时就必须实现重连(reconnect)。 下面是...

2019-05-08 23:49:49 1448 0

原创 facebook/swift:构建thrift http server(4)--ThriftXHRDecoder,ThriftXHREncoder

在上一篇博客中解决了thrift http sever的CORS跨域问题,但前端依然没有服务端的正常响应。看来还存在问题。 继续研究Netty的代码。 ## ThriftMessage 通过跟踪服务端收到的HTTP POST请求在管道(ChannelPipeline)中的传递流程找到了问题:

2019-05-04 23:03:53 196 0

原创 facebook/swift:构建thrift http server(3)--CORS跨域

在上一篇文章中我已经通过替换`frameCodec`为`HttpServerCodec`将`ThriftServer`改造为可以接收HTTP响应的netty server。完成代码修改后,赶紧用浏览器测试一下: 通过拦截到的这个已经解码成`DefaultHttpRequest`对象的HTTP请求,...

2019-05-04 21:48:34 242 0

原创 facebook/swift:构建thrift http server(2)--HttpServerCodec

在为facelog选择XHR实现方案时,我反复看过[facebook/swift](https://github.com/facebookarchive/swift),了解到它依赖的底层通讯框架是[netty](https://github.com/netty/netty),说实话,我之前对net...

2019-05-04 19:27:44 630 0

原创 facebook/swift:构建thrift http server(1)

如何基于facebook/swift构建一个支持HTTP访问的thrift服务?说来话长。我将用分几篇博客介绍这个问题的解决思路和具体实现。 背景说明 我有一个项目facelog,是基于facebook/swift框架(java)开发的。在实际的项目应用时,需要从浏览器端能调用facelog的接口...

2019-05-04 00:46:23 382 0

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