自定义博客皮肤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

不以物喜,不以己悲

  • 博客(323)
  • 收藏
  • 关注

原创 什么是IAS架构

IAS全称为Insight Awareness Service,是一种构建软件系统或者服务的理念和架构,用来应对快速变化的商业需求。IAS stands for Insight Awareness Service, it's a mindset and architecture of how to buildsoftware systems or services to satisfy fast evolution business requirements.工程师构建软件系统大概会经历几个阶段:.

2021-09-15 06:53:01 1261

原创 NPM 是什么

NPM是Node Package Manager的缩写,是Node.js默认的、用JavaScript编写的软件包管理系统。它有自己的node registry仓库,可以可以包之间的依赖关系,类比于maven之类的Java包管理工具。

2021-08-28 06:05:16 1706

原创 文本情感分析是什么- Sentiment Analysis 101

Sentiment Analysis指的是根据文本信息来判断作者的态度是positive还是negative,或者是neutral的之类的。还有一种叫法是opinion mining。有什么用呢?比如企业可以利用客户的评论来判断一件商品质量的整体情况,亦或是企业可以根据Sentiment Analysis来分析这件商品哪些地方是客户喜欢的,哪些地方是客户吐槽的,用以随之改进商品。大概有两种思路可以做文本情感分析:1 第一种就是用一些相关性的单词表,来对一段话进行打分,最后用分数来来确定.

2021-08-28 06:02:35 1935

原创 三分钟教你学Git(二十八) - 修改commit的date参数

有时候你git commit --amend修改了一个commit,但是commit的date日期仍然是当时commit的日期,如果你想要修改为当前日期可以做以下操作:git commit --amend --no-edit --date "$(date)"原文:http://blog.csdn.net/hongchangfirst/article/details/111307065作者:hongchangfirsthongchangfirst的主页:http://blog.cs..

2020-12-17 06:33:03 1841

原创 SQL中UNPIVOT是什么

比如你有一个table,你想把列转换成行,就可以使用unpivot。还是有点抽象,具体什么意思呢?比如说有一个table stu_score如下:Name, Math, Chinesezhc, 99, 95xiaoy, 89, 100xiaot, 98, 60你想要把它转化成这样:Name, Subject, Scorezhc, Math, 99zhc, Chinese, 95xiaoy, Math, 89xiaoy, Chinese, 100xiaot,

2020-12-17 02:25:16 5878 1

原创 SQL中UNNEST 是什么

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

2019-07-09 13:33:29 35028 3

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

读了Who Moved My Cheese这本书的几点感悟,记录下来,共享之。1 拥抱变化, embrace the change, since the only thing that isn't changing is the change itselft.有变化,才能越来越好,而不是每天墨守成规。2 居安思危, stay alert. Being prepared for the ...

2019-07-09 13:26:30 751 1

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

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

2014-07-08 14:06:58 281693 39

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

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

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

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

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

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

原创 Linux命令惯用法

1硬连接与软连接ln a b这是硬连接,a文件和b文件是同一个inode,连接数为2ln -s a c这是符号连接,c文件是一种特殊的文件,即连接文件,指向a,c文件的inode和a文件的inode不同。可用ls -li来查看inode号。2想要动态的查看一个文件内容的变化,可以用tail命令如:tail -f /var/log/messages#将文...

2012-08-28 11:13:13 2727

原创 三分钟教你学Git(二十九) - 查询删掉的信息历史

有时候我们想知道某一行代码或者是某一段代码是在什么时候删除的,被谁删除的,如果是改动的那么很简单,我们只用 git blame就行了,但是 删除了怎么做呢?git log -S 'deleted_code'src/file.cpp这样git就会找到那个删除了这段代码的commit了,好了,就到这里了。原文:http://blog.csdn.net/hongchangfirst/article/details/114622425作者:hongchangfirsthongchan...

2021-03-10 08:04:06 4995

原创 三分钟教你学Git(二十七) - 修改多个commit

比如我们又一个历史提交A->B->C->D, 当前HEAD在D commit上,我们想要修改B,Ccommits,该怎么做呢?我们知道用git commit --amend可以修改当前的提交D,但是之前的怎么办呢?首先我们要修改的起点开始于最近的三次提交,告诉git:1 git rebase -i HEAD~3然后git会告诉你现在的status:pick a1message of a1pick a2message of a2pick a3message...

2020-12-12 07:36:50 1202

原创 Shell环境变量传递问题

当shell新开一个script的时候,可以告诉子进程继承来自父进程的environment variablesexport ENVROOT=/apollo/env/zhc可以用printenv来打印当前所有的环境变量供debug使用。今天遇到一个很奇怪的问题,已经export了,但是新的script却没有这个环境变量。后来才发现是因为user不同:比如1 export EN...

2020-02-18 06:04:33 2568

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

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

2020-01-11 01:58:25 6073

原创 Python Basics - 十四个基本点

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

2019-11-03 01:05:39 643

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

比如在.bashrc中写了一个:export PATH=/Users/hczhang/bin:$PATH但是启动一个新的terminal的时候整个path并没有生效,这是因为Mac OS terminal并不读取.bashrc, 而是读取.bash_profile, 所以为了简便起见,直接copy bashrc中的内容到bash_profile中。就可以了。当然你也可以每次都sour...

2019-07-09 13:27:35 2483

原创 CoffeeScript是什么

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

2019-07-09 13:23:52 2470

原创 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 scala 的JavaConverters._import scala.collection.Ja...

2019-05-25 03:04:43 5460

原创 Dagger是什么

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

2019-05-02 07:32:19 14550

原创 JOOQ是什么?

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

2019-05-02 05:51:10 2125

原创 什么是liquibase

liquibase是开源的数据库跟踪,管理工具,比如数据库表的更改变化,回滚等。所有的数据库变化比如表增加列都会存储到XML,JSON或者SQL中。比较适合多团队写作开发,用来共享资源。LIquibase会自动的创建DatabaseChangeLog数据库表和DatabaseChangeLogLock表和里边的每次更改记录。liquibase现在支持10种常用的数据库类型,比如说MySQL...

2019-05-02 01:59:21 3365

原创 YAML是什么

YAML不是标记语言。YAML是一种对人友好的对各种程序语言的数据序列化标准。YAML Aren't Markup Language, 递归缩写就变成了YAML. 语法类似于XML,但是比XML要简单很多。YAML使用空白字符和分行来分隔资料,使得它特别适合用grep,Python,Ruby等进行操作。结构通过缩进来表示,连续的项目通过减号-来表示. 也可以通过方括号[]来表达相...

2019-04-03 07:28:51 2519

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

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

2019-02-26 18:23:54 91864 2

原创 SQL - 分组排序

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

2018-12-03 17:21:29 1193

原创 Apache Superset是什么

Apache Superset是一个现代的,工业级的Business Intelligence的Web应用。之前的名字叫做Panoramix和Caravel,2016年底重新命名为Superset。了解一下Superset的功能有:1 Data visualizations2 探索和可视化数据的易用接口3 创建和分享dashboard4 权限管理5 可以配置数据源与界面之间...

2018-11-13 12:27:24 1732

原创 swagger-editor 怎么用

可以将swagger-editor装在本地上进行编辑json/yaml 文件,然后preview。非常方便。首先下载swagger-editor:git clone https://github.com/swagger-api/swagger-editor.gitcd swagger-editorpython -m SimpleHTTPServer 8888如果不行试试这个:...

2018-11-13 12:25:47 1402

原创 handlebars是什么

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

2018-11-13 12:24:52 1334

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

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

2018-11-13 12:23:28 9868

原创 Java8 @FunctionalInterface

Functional Interface即函数式接口,在这个接口里面只能有一个抽象方法,即Single Abstract Method Interface。@FunctionalInterfacepublic interface FunctionAdd{    void add(int i);} You can declare a method that use Fun...

2018-10-19 18:46:50 301

原创 Python – No Module named SimpleHTTPServer

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

2018-10-19 18:44:36 14768

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

比如你有一个表格:A  Ba  1b  2你想把A,B两列合并起来变成第三列CCa1b2怎么做呢?可以用公式得到=A1&B1就可以了,如果想中间加个连字符"-",怎么做呢?Ca-1b-2可以这样:=A1&"-"&B1原文:http://blog.csdn.net/hongchangfirst/article/det...

2018-10-19 18:40:55 33080

原创 Excel 表格旋转

行变列,列变行,比如:A   B1   23   45   6旋转后变成:A  1  3  5 B  2  4  6怎么做呢?先复制所有的数据,然后在选择粘贴的位置,单击右键,选择性粘贴,paste special, 然后选择置换transpose,即可。这样的数据就可以开始制作饼图了。原文:http://blog.csdn.net/hongchangf...

2018-10-19 18:39:59 1082

原创 SQL 只返回前10个纪录

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

2018-08-17 10:29:05 9357

原创 SQL REGEXP_SUBSTR的用法

REGEXP_SUBSTR顾名思义就是根据正则表达式来进行字符串替换。比如下面这个例子:WHERE PROMO_ID = REGEXP_SUBSTR('{abc}','\{([^{}]*)\}',1,1,'i') 第一个字段是source str, 表示需要进行处理的字符串。第二个字段是pattern.第三个字段是position, 表示起始位置。第四个字段是occurenc...

2018-08-16 11:58:20 14410

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

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

2018-07-16 17:45:37 5691

原创 怎么测试abstract class

关于对abstract class需不需要一个单独的unit test,业界有很多争论。https://stackoverflow.com/questions/7569444/how-to-test-abstract-class-in-java-with-junit不支持立场的观点是abstract不能被实例化,如果被实例化的话,那么一定有实现类,所以测实现类的时候,顺便就会测到abstract ...

2018-07-11 10:50:18 1956

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

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

2018-07-10 15:28:19 24666

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

比如说你有一段代码像这样:{ ... A.add("1"); ... A.add("what ever"); ... A.add("2"); A.delete("5"); ...}你想验证A的add方法最后一次调用的时候参数是2,怎么做呢?方法1 可以利用ArgumentCaptor去获得所有的实参,然后判断最后一个即可。Argum...

2018-06-11 11:05:31 1153

原创 Intellij上装一个Vim插件

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

2018-05-11 11:15:11 2763

空空如也

空空如也

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

TA关注的人

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