自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hongchangfirst

不以物喜,不以己悲(热烈祝贺 西安电子科技大学 八十五周年校庆)

原创 @Setter(onMethod = @__(@Inject)) 是什么意思

这是Lombok的实验性质的语法,以后可能会deprecate掉。 @Setter都知道就是lombok帮你生成setter方法,那里面的onMethod是什么意思呢?就是让lombok在生成setter方法时,在这个setter方法上进行annotate,annotation就是@Inject...

2020-01-11 01:58:25 634 0

原创 SQL中UNNEST 是什么

如果想要将ARRAY转换为一组行,即平展操作,可以使用UNNEST运算符。UNNEST获取一个ARRAY,然后赴安徽一个表,表中的每一行都是该ARRAY中的元素。 我们来看一个例子: 比如你有一个表zhc,第一列是id,第二列是ARRAY,像这样: id, numbers 1, [0,2,...

2019-07-09 13:33:29 4793 1

原创 谁动了我的奶酪 读后感

读了Who Moved My Cheese这本书的几点感悟,记录下来,共享之。 1 拥抱变化, embrace the change, since the only thing that isn't changing is the change itselft. 有变化,才能越来越好...

2019-07-09 13:26:30 369 0

原创 一分钟教你知道乐观锁和悲观锁的区别

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

2014-07-08 14:06:58 264573 36

原创 awk按照多个分隔符进行分割

我们知道awk可以进行类似于cut之类的操作,ru

2014-05-22 12:17:05 104769 1

原创 三分钟教你学Git(二)之命令索引

  记住这三个概念,工作区(Working Area),暂存区(Stage),版本库,通过add,工作区的变化到暂存区,通过commit暂存区的变化到本地版本库,通过push本地版本库的变化到远程版本库。下面是常用的命令。   保存进度恢复工作进度 #把工作区和暂存区的内容保存到进度列表里...

2014-04-29 15:00:41 4200 0

原创 程序员必知(六):信息论问题

具体问题:有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。 这道题的本质是,至少用多少个老鼠可以表达1000种方式。即用多少位可以表达1000,为n=10,因为2的10次方等于1024,大于1000,所以此题的答案是1...

2014-01-03 16:35:24 2301 4

原创 Linux命令惯用法

1硬连接与软连接 ln a b 这是硬连接,a文件和b文件是同一个inode,连接数为2 ln -s a c 这是符号连接,c文件是一种特殊的文件,即连接文件,指向a,c文件的inode和a文件的inode不同。 可用ls -li来查看inode号。 2想要动态的查看一个文件内容的...

2012-08-28 11:13:13 2479 0

原创 Shell环境变量传递问题

当shell新开一个script的时候,可以告诉子进程继承来自父进程的environment variables export ENVROOT=/apollo/env/zhc 可以用printenv来打印当前所有的环境变量供debug使用。今天遇到一个很奇怪的问题,已经export了,但是...

2020-02-18 06:04:33 336 0

原创 Python Basics - 十四个基本点

直接上code了,code里有注释,最主要是理解python的基本概念和语法,适合已经有其它语言经验的developer快速学习。 from math import * # 1. Variables, string, number, boolean character_name = "...

2019-11-03 01:05:39 92 0

原创 Mac OS terminal 并没有读取.bashrc

比如在.bashrc中写了一个: export PATH=/Users/hczhang/bin:$PATH 但是启动一个新的terminal的时候整个path并没有生效,这是因为Mac OS terminal并不读取.bashrc, 而是读取.bash_profile, 所以为了简便起见,直接c...

2019-07-09 13:27:35 874 0

原创 CoffeeScript是什么

CoffeeScript是一种JavaScript的开源工具,常用在Ruby On Rails项目中。 它的原理是写CoffeeScript脚本,然后CoffeeScript会把CoffeeScript转换成JavaScript脚本供你的网站使用。 举一个例子:你写的CoffeeScrip...

2019-07-09 13:23:52 607 0

原创 Scala List 怎么转换为Java util.List

1 Scala List -> Java List 比如你有一个Scala List, val zhcScalaList = List(1,2,3) 你有一个library是take java util List作为参数的,你怎么把它变为Java 的List呢? 你需要import ...

2019-05-25 03:04:43 2124 0

原创 Dagger是什么

Dagger是一种对Java和Android的静态的,编译时依赖注入(Dependency Injection)框架。 它主要用来解决很多由于大量使用反射reflection而带来的开发和性能问题。 Dagger可以用来帮你来建立之前需要写的Factory class。它主要用来代码生成。 ...

2019-05-02 07:32:19 832 0

原创 JOOQ是什么?

JOOQ代表Java Object OrientedQuery, 可以把你的数据库模型的基本信息,比如表名,字段名生成相应的Java类,这些是自动化的,提高了效率,也避免了手动写POJO代码产生的错误。 这和一些ORM比如Hibernate映射框架有些不同,比如Hibernate是帮你隐藏了SQ...

2019-05-02 05:51:10 800 0

原创 什么是liquibase

liquibase是开源的数据库跟踪,管理工具,比如数据库表的更改变化,回滚等。 所有的数据库变化比如表增加列都会存储到XML,JSON或者SQL中。比较适合多团队写作开发,用来共享资源。LIquibase会自动的创建DatabaseChangeLog数据库表和DatabaseChangeLog...

2019-05-02 01:59:21 1213 0

原创 YAML是什么

YAML不是标记语言。YAML是一种对人友好的对各种程序语言的数据序列化标准。 YAML Aren't Markup Language, 递归缩写就变成了YAML. 语法类似于XML,但是比XML要简单很多。 YAML使用空白字符和分行来分隔资料,使得它特别适合用grep,Pyt...

2019-04-03 07:28:51 912 0

原创 几种比较好用的连接PostgreSQL的客户端

1 navicat是类似于MySQL workbench的SQL客户端,可以支持PostgreSQL,需要购买,但是有试用版。 http://www.navicat.com.cn/download/navicat-for-postgresql, 可以下载安装相应的版本,然后创建连接即可。 ht...

2019-02-26 18:23:54 37296 1

原创 SQL - 分组排序

SELECT *,row_number() over(partition by col1 order by col2) as rn1 这是什么意思呢? 简单的说就是进行分组排序并编号的过程。 row_number()很好理解,给每条记录分配一个行号,从1开始,连续的。那么over (part...

2018-12-03 17:21:29 236 0

原创 Apache Superset是什么

Apache Superset是一个现代的,工业级的Business Intelligence的Web应用。之前的名字叫做Panoramix和Caravel,2016年底重新命名为Superset。 了解一下Superset的功能有: 1 Data visualizations 2 探索和可...

2018-11-13 12:27:24 783 0

原创 swagger-editor 怎么用

可以将swagger-editor装在本地上进行编辑json/yaml 文件,然后preview。非常方便。 首先下载swagger-editor: git clone https://github.com/swagger-api/swagger-editor.git cd swagger-...

2018-11-13 12:25:47 916 0

原创 handlebars是什么

一种建立语义模版的工具,跟Mustache模版基本上兼容。 用双括号来表示handlebars会进行处理,比如{{variable}},表示会替换variable的内容。 循环: {{#list people}}{{firstName}} {{lastName}}{{/list}} peo...

2018-11-13 12:24:52 445 0

原创 Linux date 时间显示的时区问题

以下三个时间其实是同一时间, date 1 Fri Nov  2 16:28:11 CST 2018 CST: China Standard Time, 中国东八区时区,GMT+8   2 Fri Nov  2 08:28:11 GMT 2018 GMT: Greenwich Mean...

2018-11-13 12:23:28 4238 0

原创 Java8 @FunctionalInterface

Functional Interface即函数式接口,在这个接口里面只能有一个抽象方法,即Single Abstract Method Interface。 @FunctionalInterface public interface FunctionAdd {     void add(i...

2018-10-19 18:46:50 180 0

原创 Python – No Module named SimpleHTTPServer

如果用python打开一个http服务器: python -m SimpleHTTPServer 9999 出现Python – No Module named SimpleHTTPServer   看一下python版本,python --version,如果是python3的话,可以试...

2018-10-19 18:44:36 6892 0

原创 Excel 将两列合并变成第三列,中间加一个连字符

比如你有一个表格: A  B a  1 b  2 你想把A,B两列合并起来变成第三列C C a1 b2 怎么做呢? 可以用公式得到=A1&B1就可以了,如果想中间加个连字符"-",怎么做呢? C a-1 b-2 可以这样: =A1&a...

2018-10-19 18:40:55 14843 0

原创 Excel 表格旋转

行变列,列变行,比如: A   B 1   2 3   4 5   6 旋转后变成: A  1  3  5  B  2  4  6 怎么做呢? 先复制所有的数据,然后在选择粘贴的位置,单击右键,选择性粘贴,paste special, 然后选择置换transpose,即可。 这...

2018-10-19 18:39:59 490 0

原创 SQL 只返回前10个纪录

如果是MySQL的话可以使用limit,像这样: SELECT * FROM table WHERE id > 10 ORDER BY id LIMIT 10,5 第一个参数表示初始纪录行的偏移量,第二个字段表示个数,比如上述例子只会拿到第11行到15行。   如果是...

2018-08-17 10:29:05 4995 0

原创 SQL REGEXP_SUBSTR的用法

REGEXP_SUBSTR顾名思义就是根据正则表达式来进行字符串替换。 比如下面这个例子: WHERE PROMO_ID = REGEXP_SUBSTR('{abc}','\{([^{}]*)\}',1,1,'i')  第一个字段是s...

2018-08-16 11:58:20 6224 0

原创 多元逻辑回归 - 小技巧(一)

在做多元逻辑回归进行分类问题时,经常需要将某一个分类转化成vector,或者反过来的操作。比如一共有四种分类,那么第二种分类的vector就是:[0;1;0;0], 除了第二个元素为1外,其它的都为0. 所以问题为:给定一个vector,里边的值代表了是第几重分类: 比如y = [1;2;4]...

2018-07-16 17:45:37 2768 0

原创 怎么测试abstract class

关于对abstract class需不需要一个单独的unit test,业界有很多争论。https://stackoverflow.com/questions/7569444/how-to-test-abstract-class-in-java-with-junit不支持立场的观点是abstrac...

2018-07-11 10:50:18 692 0

原创 三分钟教你学Git(二十六) revert多个提交

假如git commit 链是A -> B -> C -> D 如果想把B,C,D都给revert,除了一个一个revert之外,还可以使用range revertgit revert B^..D 这样就把B,C,D都给revert了,变成:A-&...

2018-07-10 15:28:19 9683 0

原创 Mockito怎么验证最后一次调用

比如说你有一段代码像这样:{ ... A.add("1"); ... A.add("what ever"); ... A.add("2"); A.delete("5&quo...

2018-06-11 11:05:31 599 0

原创 Intellij上装一个Vim插件

打开Preferences,对话框中有plugin,然后install IdeaVim插件。重启Intellij就可以了,重启后会弹出需不需要enable repeating key press, 这里选择yes。所以可以一直按着j向下走,比较方便。如果你选了no的话,可以用下列命令行恢复。Sys...

2018-05-11 11:15:11 1366 0

原创 Charles 在iOS设备抓包

正常的进行配置proxy,enable ssl on host and port,安装证书,信任证书,但是有些域名的访问还是出现了:SSLHandshake: Remote host closed connection during handshake还需要最后一步是full trust:Gene...

2018-05-10 12:00:44 518 0

原创 Sublime Text建立sftp进行文件同步

1 打开sublime,按下Ctrl+Shift+P,如果是Mac,按下Command+Shift+P.2 输入install packages,按回车。3 在接下来出现的对话框中,输入sftp,按回车。4 安装好后,右键单击你想要同步的文件夹,点击SFTP,map to remote.5 自动打...

2018-05-10 11:59:15 1062 1

原创 Spark处理数据如何获得行号

因为Spark并行的处理数据,所以你不能在自己的driver program中计数到底是处理到第几个。Spark提供了zipWithIndex可以给你提供索引号。这个索引号是全局有序和唯一的。public RDD<scala.Tuple2<T,Object&gt...

2018-05-10 11:57:02 2199 0

原创 SQL中LAG和OVER函数的意义

做BI查询时,有时会需要看上一条纪录的情况,那么需要怎么做呢?现代的数据仓库系统或者RDBMS系统一般都会提供一个一个函数来供你分析上几条或下几条的数据。比如LAG和LEAD。LAG( shorten_url IGNORE NULLS ) OVER ( PARTITION BY hit_day, ...

2018-04-04 17:00:21 21453 0

原创 团队管理 - Bus Factor

在lead一个team的时候,怎么样来应对人员流失而导致项目进度受到影响呢?其中可以思考的一个问题是公车因子(Bus Factor).我们先来看看Bus Factor的定义:The "bus factor" is the minimum number of team membe...

2018-03-09 17:55:46 477 0

原创 sun.zip.disableMemoryMapping

有时候你如果修改了JVM正在load的jar文件,会导致JVM crash。stacktrace是在java.util.zip.ZipFile.getEntry() 时发生的。There are three possible scenarios here:1. While a class is i...

2018-02-11 14:22:11 1309 1

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