自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 管理 MacOS 上的 Python 环境版本

00.前言MacOS 上的 Python不同版本的环境一直是个让人头大的问题,原因在于,系统预先安装了2.7版本,但这是个老版本了,老版本是不能卸载的,一些系统程序都在依赖它。现在市面上开发的新程序多数在用3.x版本,部分老代码还在用2.x版本,两个大版本还是有些区别的,无法完全兼容,这就让管理多版本共存成了个问题。当然,也有一些管理工具,如pyenv,但其实python的venv模块已经足够了,下面会简单说一说使用。01.卸载干净据不完全统计,目前发现了以下这些还算固定的安装目录:自己安装的

2021-06-09 01:26:02 1277 3

原创 Flask API 单元测试 unittest,mock && patch

单元测试,主要是为了测试某个方法,或是某个代码快,对于各种输入的处理,输出是否符合预期。但由于其他库、或模块的依赖,以至于很难独立测试我们自己实现的逻辑代码。对此,引出 mock...

2019-12-12 11:33:55 749

原创 React - Webpack 项目脚手架搭建

把手还是伸向了前端,抽空折腾了几天,算是理清了起步门槛。一、首先确保安装了 npm,如果没装…那就想办法装上$ npmUsage: npm <command>where <command> is one of: access, adduser, bin, bugs, c, cache, completion, config, ddp, dedu...

2019-11-28 23:29:33 339

原创 RHEL(Red Hat Enterprise Linux) 安装 zip、unzip

多数的系统镜像文件中都是包含这两个命令,但总有意外。一般方法$ sudo yum install zip unzip如果一般方法报错,这个是安装unzip$ sudo rpm -ivh https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/unzip-6.1c-6.mga8.x8...

2019-11-28 19:05:24 2690

原创 yum 安装最新版本 mysql

一. 先到官网查询最新的版本,官网地址注意选择自己Linux对应的版本,查询方式:$ cat /etc/*-releaseNAME="Red Hat Enterprise Linux Server"VERSION="7.7 (Maipo)"......$ uname -mx86_64根据以上信息,选择所需版本的 rpm 名称,如图二. 安装、启动下载 rpm 文件。可以...

2019-11-25 17:28:07 149

原创 nginx路由匹配

=精确匹配^~精确前缀匹配~正则匹配(大小写敏感)~*正则匹配(大小写不敏感)/uri普通前缀匹配/通用匹配

2019-11-25 14:10:06 307

原创 nginx 转发错误 13 permission denied

今天在做 nginx 转发的时候,总是权限的错误:2019/11/23 14:22:28 [crit] 19986#19986: *1 connect() to 127.0.0.1:5050 failed (13: Permission denied) while connecting从网上翻了翻,大多数文章都在说修改 nginx 用户,而且这些文章的内容还都是一样的,这让着急解决问题的我很...

2019-11-24 00:19:25 594

原创 ELK 单机部署,多 beat 节点

参考文章适用场景:多个项目或服务,独立部署,各个服务有自己的 log 文件。为便于查看、过滤等,可单机部署 ELK 服务后,各个服务通过 filebeat 服务将 log 发送至 ELK 机器。一、安装 java$ sudo yum install java$ java -versionopenjdk version "11.0.5" 2019-10-15 LTSOpenJDK R...

2019-11-17 23:31:35 355

原创 保持ssh远程连接不断开

通过ssh user@server登陆到远程服务器时,经常会遇到一个问题,Connection closed by remote host意思就是服务器断开了这个连接。解决方法// 先登录到远程服务器$ ssh -i ./ssh/authorization.pem {root}@{server}// 切换到root$ sudo su -// 修改配置文件# vi /etc/...

2019-09-18 23:02:15 829

原创 在AWS Lambda中使用psycopg2连接Redshift

环境:MacOS 10.12.6开始说正题。Redshift是基于PostgreSQL的二次开发应用,所以,能连接PostgreSQL的工具都可以用来连接Redshift。我选择的是使用最广泛的psycopg2。如果上来就执行:$ pip install psycopg2你会看到下面的提示错误:Error: pg_config executable not found. ...

2019-09-17 22:55:54 884

原创 在Spark中加载Redshift数据问题汇总

1. java.sql.SQLException: No suitable driver这个错误是因为,连接Redshift时需要一个driver,而程序执行时找不到能用的driver,所以报错。AWS提供了多个版本连接Redshift的driver,点击查看。2. java.lang.NoClassDefFoundError: com/amazonaws/services/kinesis/m...

2019-09-17 00:13:10 1193

原创 「AWS」入门安装aws cli

cli,即Command Line Interface,是aws服务常用的命令工具AWS官网地址环境:Python安装安装起来只需要一条命令:pip install awscli执行完成之后,输入aws,输出如下,则说明安装成功了:$ awsusage: aws [options] <command> <subcommand> [<su...

2019-08-22 20:57:37 1821 3

原创 golang 项目结构

好久没写golang的项目了,前两天接个临时需求,需求不难,但要求必须用golang来写。一时间竟然忘了如何开始,从哪入手了,故在此做个记录,以备不时之需。环境: MacOSIDE:GoLand项目路径为了便于管理和引用其他package,一般放在 /{GOPATH}/src 下。在该目录下,创建一个公司域名的文件夹,在此文件夹下创建项目命名的文件夹,如/{GOPATH}/sr...

2019-08-20 23:28:16 427

原创 AWS EMR 上运行Spark + Kinesis: NoSuchMethodError: org.apache.spark.internal.Logging

如题,因有需求,这两天在弄这个Spark,用的是AWS的EMR,具体是什么就不解释了。上面这个问题卡了很久,故在此记录一下。Spark支持多种语言,如Scala、Java、Python、R,我用的是Python。官方有个叫WordCount的Example,我没看,直接照着文档撸代码。Spark文档地址初始化代码很简单,如下:# main.pyfrom pyspark impor...

2019-08-13 23:47:58 1599

原创 「原码 反码 补码 移码」一探究竟(下)

抛开复杂的理论,直探事物的本质。这是这个主题的第三篇文章,前两篇介绍了这几种码的基本概念并深入详细的介绍了补码,这篇文章来具体说说「移码」。00. 回顾先来回顾一下移码是什么,简单说定义就一句话:**将补码符号位取反,即为移码。**乍一看,是不是有点懵,这到底在说什么呢?什么是移码?为什么是这么算?它能干嘛用?莫急,这些问题一个一个都会解决。相比于移码,应该使用补码的几率更高一些。因为...

2019-01-18 02:39:41 368

原创 「原码 反码 补码 移码」一探究竟(中)

上文「原码 反码 补码 移码」一探究竟(一)说了基本定义和原码,对于补码,我们只知道是对原码符号位不变,其他位置取反,最后再加 1 得来的,为何如此呢?接下来咱们来揭下「补码」的面具,看看它到底是什么。0. 关于 1 + (-1)首先,先看一个问题。1 的原码为**[0000 0001],-1 的原码为[1000 0001]**,所以计算这两个数相加,应该是这样的:1 + (-1) =...

2019-01-17 01:40:28 636

原创 「原码 反码 补码 移码」一探究竟(上)

要想一文就说明白,必然内容会长一些。抛开复杂原理,只为了将事物解释清楚。1. 这些个码都是什么意思原码,是一种计算机中对数字的二进制定点表示方法。一般分为两种,有符号位和无符号位。有符号位,即用最高位的 bit 位来表示正负,剩下的位来存储数据;无符号位,即所有的 bit 位都来表示数据,所以无符号数字无法表示负数,全部大于等于 0。光看定义干巴巴的,用长度为 8 bit 的类型举几个例子...

2019-01-14 02:04:11 399

原创 Goland调整Terminal窗口字体大小

Goland的Ternimal窗口样式和Console窗口公用同一个样式,修改路径:Setting-&gt;Editor-&gt;Color Scheme-&gt;Console Font若不生效,重启一下IDE即可。

2018-12-04 15:41:26 9979

原创 android WebView加载URL不显示图片

WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); settings.setBlockNetworkImage(false); if(Build.VERSION.SDK_INT&amp;amp;gt;=Build.VERSION_CODES.LO...

2018-10-13 14:24:26 3049 1

原创 Program type already present: org.iq80.leveldb.CompressionType

今天在Android Studio添加了一个新的依赖:implementation ("org.ethereum:ethereumj-core:$ethereumj_version")然后Sync可以通过,但是Rebuild报错如标题,往上搜了几个方法都未奏效,最后只好顺着问题找答案。报错的内容就是说CompressionType重复了,换句话说,添加的新依赖不添加这个即可。双击Shi...

2018-08-07 10:56:07 428

翻译 [翻译] 种子词

原文地址:https://en.bitcoin.it/wiki/Seed_phrase种子短语种子短语、种子恢复短语或备用种子短语是存储恢复比特币钱包所需的所有信息的单词列表。钱包软件通常会生成一个种子短语并指示用户将其写在纸上。如果用户的电脑坏了或者他们的硬盘坏了,他们可以再次下载相同的钱包软件,使用纸质备份来取回他们的比特币。任何发现这个短语的人都可以偷比特币,所以比特币必...

2018-08-02 00:45:41 784

原创 Linux服务器常用命令

systemctlsystemctl status name.service 查看某个服务的状态systemctl | grep name-partern 过滤显示所有服务名符合name-partern的服务systemctl enable name.service 设置开机自启systemctl restart name.service 重启服务journalctl...

2018-07-29 23:53:41 185

原创 持续集成与自动化测试 Continuous Integration,CI

所谓持续集成与自动化,是指用机器替代人工持续不间断地集成代码,让产品可以快速迭代,同时还能保证代码质量。一个完整的持续集成环境需要Jenkins与Git、Gerrit一起配合,才能发挥出它最强大的功能。一般来说,在开发者Push代码后会首先到Gerrit进行代码Review。Review分为两部分,一部分是使用程序的自动化Review,主要是通过静态代码检测工具来进行代码质量分析(比如Son...

2018-05-29 13:00:32 1209

转载 「转」Java继承机制的弊端

原文链接:http://www.sunxin.org/forum/thread/20672.html# 为什么Java中继承多数是有害的 大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系)。实际上80%的代码应该完全用interface写,而不是通过extends。Java设计模式一书详细阐述了怎样用接口继承代替实现继承。这篇文章描述设计者为什么会这么作。 Ext...

2018-05-22 19:52:03 885

原创 Android使用netty框架配置SSL适配7.0以上的系统

最近项目在使用的netty框架加上了SSL安全设置,SSL可单项验证也可双向验证,我使用的是双向验证,即Client验证Server同时Server也验证Client。 以下只说明Client(Android)端的实现方式。首先需要两个文件,client.p12和cacert.pem,由服务器端提供。使用java的keytool工具将cacert.pem导入到keystore中 ...

2018-05-18 17:00:11 1524 1

原创 MySql的modify和change区别

相同点:都是用来改变column的属性,change和modify执行成功后都会这本次设置的属性替换column原属性,请注意是【替换】;不同点:重命名只能使用change格式(mysql默认不区分大小写)1 changealter table table_name change current_column_name new_column_name type extra;//...

2018-04-27 13:32:04 7959

原创 「巧用Gradle构建Android应用」读书整理

周末看完了「巧用Gradle构建Android应用」,故将新认知整理在此以便以后供自己以及有需要的人查看。GradleGradle构建过程实际上是执行DAG(Directed Acyclic Graph,有向无环图),允许定义自己的task并插入到其中。 build.gradle中Android块时Android DSL()的入口。依赖的语法//完整语法 (禁用传递依赖)...

2018-04-23 22:37:30 880

原创 gradle各个版本资源

gradle官网下载地址:点击跳转但是这个网站有时需要翻墙有时下载速度慢,趁着现在翻墙方便一次性将上面的里程碑版本下了下来链接: https://pan.baidu.com/s/1i4Fm9Q9 密码: cjfd最新更新日期:2017-12-22 18:17:06(如果想的起来就更新)ps: 如有小更新版本需求, 邮箱联系 : [email protected]如何使用当用AndroidStudio

2017-12-20 17:02:41 914

原创 HelloKotlin - Error:Gradle: failed to create directory

今天在看Kotlin-Docs,于是随手建了一个HelloKotlin的项目准备练练手,于是引发了一连串的问题。在此记录过程。环境Windows 7 64bitAndroidStudio 3.0.1一般的,像下面这样,直接写一个程序入口main函数,跑一些简单代码时不用构建apk省时省力: 同样的,我想创建一个Kotlin的程序入口。 创建项目时勾选上Kotlin,AndroidStudi

2017-12-04 13:37:07 1398

原创 Windows下编译OpenSSL

今天为了获取FB秘钥,里面有个命令openssl,于是网上找了一下教程,众说纷纭,最后可算成功了,在此记录过程。环境Windows 64位已安装Visual Studio 2017 社区版(已过期不过没影响)已安装Active Perl v5.16.2准备源码OpenSSL官网或者直接用文中所用的 : https://pan.baidu.com/s/1pL0vDhx 密码: hndw

2017-11-20 20:53:26 498

原创 『Effective Java』读书整理

- Chapter 3 适用于所有对象8. 重写equals方法 三个原则:对称性、传递性、一致性9. 重写equals方法必定要重写hashCode方法 例如在HashMap中存储时会调用该方法10. 始终要重写toString方法 便于阅读,使类用起来更加舒适11. 谨慎的覆盖clone方法 相当于另一个构造器12. 考虑实现Comparable接口 用于对象比较、排

2017-11-07 16:33:23 266

原创 Android YuvImage直接旋转

操作相机的Preview可通过以下三种方式添加回调接口: Camera.setPreviewCallbackBuffer(PreviewCallback) Camera.setOneShotPreviewCallback(PreviewCallback) Camera.setPreviewCallback(PreviewCallback) PreviewCallback接口里

2017-10-26 18:58:11 3503 2

原创 ScrollView在SlidingUpPanelLayout中下滑无效问题

当在ScrollableView(即, 可上下滑动的ViewGroup)中含有ScrollView时,向上滑动ScrollableView至其全部上移展示出来时,继续向上滑动时ScrollView会响应滑动事件向上滑动,但是此时抬起手后再向下滑动时,首先响应滑动事件的是ScrollabldView,这就导致ScrollView无法下滑,解决该问题一种简单有效的实践: SlidingUpPanel

2017-10-24 20:42:08 949

原创 手把手教你实现RecyclerView的下拉刷新和上拉加载更多

纵观多数App,下拉刷新和上拉加载更多是很常见的功能,但是谷歌官方只有一个SwipeRefreshLayout 用来下拉刷新,上拉加载更多还要自己做。基于RecyclerView 简单封装了这两个操作,下拉刷新支持LinearLayoutManager、GridLayoutManager 和 StaggeredGridLayoutManager;上拉加载更多只支持前两者。话不多说先上效果图 数据来

2017-10-12 09:11:26 38126 24

原创 几分钟完成发布开源库到jCenter

快速实现发布开源库到jCenter。

2017-10-10 10:22:03 440

原创 Retrofit 2.0

类型介绍2种类型响应过程Observable(不支持背压Backpresure) 3个异步子集SingleCompletable 适用于Void返回类型MaybeFlowable支持背压(Backpresure) 支持背压(Backpresure)的响应过程Flowable2种响应流Disposable 取消方法dispose()Subscription 取消方法cancel()

2017-09-14 18:08:36 263

原创 Android Drawable 和 xml文件转化关系

<selector />———StateListDrawable <level-list />———LevelListDrawable <layer-list />———LayerDrawable <transition />———TransitionDrawable <color />———ColorDrawable <shape />———GradientDrawable <scal

2017-09-04 16:58:37 1359

原创 Android改变图片属性之饱和度

ImageView image = (ImageView) findViewById(R.id.image); ColorMatrix matrix = new ColorMatrix(); matrix.setSaturation(0f); image.setColorFilter(new ColorMatrixColorFilter(matrix));通过设置Matrix的参数来实现.

2017-09-04 14:04:45 349

原创 Android 自定义样式通知栏的坑RemoteServiceException

Android.app.RemoteServiceException: Bad notification posted from packagecom.my.package:是的,就是这个异常。没有使用系统提供的三个方法setContentText()setContentTitle()setSmallIcon()而用的是RemoteViews,然后就掉坑里了。原因是这样的,请往下看~布局中的

2017-07-12 14:58:54 1199

原创 Android获取系统相册所有图片

直接获取所有照片的信息,而不是打开照片选择页面

2017-06-05 11:15:10 1941

空空如也

空空如也

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

TA关注的人

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