自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rpm安装mysql-community-server安装完成后没有密码位置提示

网上教程说rpm安装mysql-community-server安装过程中会提示密码位置在’/root/.mysql_secret’,但是我在安装5.7.33时并没有看到密码提示。可能因为版本比较老的原因,最后在这里找到了初始密码:sudo cat /var/log/mysqld.log|grep -E "temporary password"...

2021-06-24 10:41:14 335

原创 cElementTree解析XML文件使用iterfind无法找到指定元素的问题

通过排除发发现是头部的命名空间问题,去掉xmlns="http://www.springframework.org/schema/beans"就能正常查找解决方案参考Python 解析含有命名空间(xmlns)的xml文件(基于ElementTree)

2021-05-11 21:20:14 472

原创 linux离线安装Python3和Pip 从入门到放弃

linux离线安装Python3和Pip背景下载和安装下载安装测试参考文档背景需要在远程服务器上安装Python3,但是这台服务器网络访问限制比较严格,无法直接通过访问外网链接安装Python3和Pip。安装下来坑比较多,特此记录。下载和安装下载下载Python3的安装包访问https://www.python.org/ftp/python/,下载合适的安装包,比如我选的3.7.4下载Pip的安装包(1) 访问https://pypi.org/,搜索pip,选择pip安装工具的包,

2021-05-09 15:33:24 6303 5

原创 关于Fiddler AutoResponder 不起作用的问题

最近发现用Fiddler mock接口数据很给力,只要知道请求参数规则和响应体,就可以用它来模拟请求和响应。这样后端开发完毕,前端不用什么改动就可以直接测试了。但是今天碰到点问题,本来昨天模拟得好好的,今天换了个环境就不行了,在网上找原因试了好久都不行,最后发现是公司的网络的原因,公司的网络用的是无线网+PPPOE,这样的情况下用Fiddler代理不起作用,我换成手机热点测试是可行的。原因找到了...

2019-07-10 11:09:28 2302

原创 低版本Android上的WebView不能重定向或不能进入shouldOverrideUrlLoading方法的问题

只想知道问题原因,直接看最后的总结就好了,以下是我对找这个bug的过程的梳理。昨天收到一个bug任务:在Android5.0的手机上无法打开某H5页面。在加载后不久直接进入onPageFinished方法后就没了下文。观察到WebView打开其他页面没有问题,打开该页面时有个重定向,猜想到是重定向的问题。但是shouldOverrideUrlLoading无论如何都进不了。使用Postma...

2019-04-27 10:48:16 2910

原创 TextView的SpanableString的坑:不能多次setSpan的解决方案

原方法要实现的效果是将“XX月XX日”的“月”和“日”设置成不同样式,包括颜色、字体大小和加粗/不加粗。private void setDateText(String dateStr) { if (TextUtils.isEmpty(dateStr)) { this.keywords.setVisibility(View.INVISIBLE); ...

2019-04-08 15:05:34 2749

原创 微信小程序仿照微信拖动缩放图片和截取头像

效果图整体思路:实现图片的缩放和拖动;在图片上方盖上中间镂空的半透明遮罩;根据截取方框区域的图片。截图时,在方框区域将截取的图片绘制出来,然后使用wx.canvasToTempFilePath截取图片。实现过程和遇到的问题:实现缩放和拖动最初是使用touchStart和touhMove,处理触摸事件来实现图片的缩放和拖动,但是这样的实现在小程序上会很卡。后来无意中发现了小程序提...

2019-01-14 13:39:00 3419 1

原创 打造淡入淡出过渡自然的PopupWindow

效果如图,Gif压缩得厉害,效果失真,凑合看: 我所谓的淡入淡出过渡自然是指一下几点: 1. 窗体从底部弹出一级收回过程有移动动画; 2. 伴随窗体的弹出和收起,背景透明度也应有个动画,否则会显得生硬。附加功能: 1. 点击窗体外,弹窗收回; 2. 弹窗打开时,点击返回键,弹窗收回。项目地址:https://github.com/sheaye/SlidePopupWindow...

2018-09-14 09:48:09 812

原创 解决disableScroll无法禁止小程序下拉的问题

disableScroll的优先级小于enablePullDownRefresh,因此如果app.json里是enablePullDownRefresh:true,那如果只是在page.json中加上disableScroll:true是无效的,需要在page.json中同时加上enablePullDownRefresh:false:{ "enablePullDownRefresh":...

2018-09-05 12:13:10 16265 2

原创 关于ThinkJs 的Crontab定时任务无法执行的问题

在这个问题上纠结了老半天,同样的Action方法,我放在这个Controller中无法执行,放在另一个Controller中却可以,甚至我复制这个可行的Controller重命名都不行,莫非创建Controller需要在哪个文件中声明?在群里问了也不需要。最后的最后,经技术负责人点播,是权限问题!需要在common或对应的模块下的config/config.js中配置,例如:// defaul...

2018-09-04 11:06:26 773

原创 Handler跨线程通信的工作原理和使用

回顾一下Handler跨线程通信:Handler的使用在接收线程中创建Looper对象。主线程中的Looper对象已经由系统创建。在接收线程中创建Handler对象,复写handleMessage方法处理消息。开启Looper的消息循环,主线程中已由系统开启。在发送线程创建Message,并使用接收线程中的Handler引用发送消息。 测试Handler的Activity代码:...

2018-08-05 10:25:17 2351

原创 微信小程序获取二维码:报错47001 data format error

我这里是使用Postman测试的B类接口:https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=XXX.总是报错:{"errcode":47001,"errmsg":"data format error hint: [WqXQEA06804522]"} 最好找到的原因是,不能使用form-data的body形式,而是要...

2018-07-31 14:54:52 18613 3

原创 Windows中无法更改Python默认版本的问题

问题描述:在CMD命令窗口中输入python回车后显示的一直是python 2.7的版本,更改系统环境变量path中Python2.7和Python3.6的顺序也不行。解决方法:折腾了好久最后发现,原来是因为我把Python3.6中的python.exe改成了python3.exe的原因。晕,在这里记录一下,希望能给后续采坑者带来点帮助。...

2018-07-11 11:39:56 1701 2

原创 将一个int类型的数据转换为固定位数的二进制字符串,不足位补0

我经常用到,所以记下。/** * 将一个int数字转换为二进制的字符串形式。 * @param num 需要转换的int类型数据 * @param digits 要转换的二进制位数,位数不足则在前面补0 * @return 二进制的字符串形式 */public static String toBinary(int num, int digits) { String cove...

2018-07-05 10:00:21 6824 1

原创 Morris中序遍历简述

Morris中序遍历相比普通的递归中序遍历的优点在于其空间复杂度为O(1),更多关于Morris原理的介绍参见Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间) 在此我补充一点我关于Morris中序遍历的理解。原理简述:Morris中序遍历过程中伴随着加线索和去线索的过程。每次进入一棵子树,首先找到该子树的最右节点,并在这个最右节点与子树的根节点之间建...

2018-06-15 23:34:49 2616

原创 图解中序遍历的线索二叉树

参考链接: 线索二叉树原理及前序、中序线索化(Java版)原理不细讲了,参考链接里有。以下图所示的二叉树为例: 中序遍历的结果: 中序遍历的线索二叉树: 虚线箭头为线索指针,对于所有左指针指向空的节点:将该节点的左指针指向该节点在中序遍历中的上一节点;对于所有右指针指向空的节点,将该节点的右指针指向该节点在中序遍历中的下一结点。线索二叉树的中序遍历结果: 即形成了...

2018-06-14 10:26:14 34596 7

原创 django.db.utils.InternalError: (1049, u"Unknown database 'XX' ")

检查数据库有没有连接,例如我用的是MySql,在Navicat中建立连接。检查数据库的URL是否与Django Settings文件中的URL一致,例如我用的是127.0.0.1检查Setting文件中的数据库名是否与MySql中的数据库名一致。...

2018-06-08 23:28:54 5764 2

原创 ValueError: Unable to configure handler 'default': No such file or directory: '..\\log\\all.log

从Github导入Django项目运行时报如下错误:"C:\ProgramFiles\PyCharm 2017.3.3\bin\runnerw.exe" E:\Coder\Python\Django\Forks\blog_project-master\venv\Scripts\python.exe E:/Coder/Python/Django/Forks/blog_project-master...

2018-06-08 23:13:12 15036

原创 微信小程序:在Wxml中遍历对象或者map的key和value

感谢http://www.wxapp-union.com/thread-3373-1-1.html中Mliter的解答。再次做一下总结: 例如js文件中有如下数据:data: { someone:{ name: "张三", attrs: {'身高': '178cm', '体重':'60kg', '胸围': '36C', ...

2018-05-17 15:20:31 27282

转载 小程序WXSS中多个.class的意思

2018-05-09 17:32:26 6655 2

原创 打签名包时:Duplicate zip entry:DragStartHelper.class

Warning:Exception while processing task java.io.IOException: Can't write [E:...\app\build\intermediates\transforms\proguard\rc\release\jars\3\1f\main.jar] (Can't read [C:\Users\Snail\.android\build-ca...

2018-03-23 12:01:27 1743

原创 使用Android sdk/build-tools/dx工具转jar为dex时出现:-Djava.ext.dirs is not supported

原因是:jdk升级到java9时不兼容产生的问题:详情参见:https://www.jianshu.com/p/77db2ea8098f 将dx.bat最后那句call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%中的-Djava.ext.dirs改为--class -path...

2018-03-13 00:06:55 1970 1

原创 @property的妙用

倒霉的程序员SA新建了这样一个简单的Student类:class Student: def __init__(self, score = 0): self.score = score然后各种使用这个Student类:s1 = Student()s1.score = 100s2 = Student()s2.score = 90s3 = Student()

2018-01-29 17:38:29 356

原创 Dagger2实用教程(1):初识Component

在你读这篇文章时,我假设你已经知道了使用Dagger有什么好处,下面我们开门见山。本偏讲述的是Dagger2的HelloWorld。希望读者通过本篇文章能了解Dagger2最基本的用法。1. 添加依赖compile 'com.google.dagger:dagger:2.14.1'annotationProcessor 'com.google.dagger:dagger-comp

2018-01-23 00:26:38 526

翻译 3. Dagger2之Component

译文标注一个接口或者抽象类从而根据modules集合生成一个完整的、依赖注入的实现。生成类会以@Component标注的类名加Dagger前缀命名。例如{@code @Component interface MyComponent {...}}会产生一个名为DaggerMyComponent的实现。1. Component-methods(组件-方法)每一个使用@Component

2018-01-22 22:44:14 596

翻译 1.2.1 设计模式:Builder——建造者模式

Intent(意图)将一个复杂对象的构建(construction)与其表示(representation)分离,这样同样的构建过程可以创建出不同的表示。Motivation(动机)一个RTF(Rich Text Format)文档转换格式的阅读器必须可以将RTF转换成多种文本格式。该阅读器必须能将RTF文档转换成无格式的ASCII文本,或者转换为可交互编辑的文本插件(text w

2018-01-17 22:01:45 448

原创 Rxjava中的observeOn和subscribeOn

示例一个简单的HelloWorld:Flowable.fromCallable(new CallableString>() { @Override public String call() throws Exception { Log.e(TAG, "Start:" + Thread.currentThrea

2018-01-15 15:06:55 805

翻译 Android API指南之动画与图形(1)——动画与图形概览

动画Android系统框架提供了两种动画系统:属性动画和View动画。属性动画更加灵活,可以提供更多特性,因而优先选择属性动画。除了这两个,还有Drawable动画,它可以加载图片资源,一张一张地展示。属性动画可以让任意对象的属性动态化,包括那些不在屏幕上渲染的。该系统具有可扩展性,也可以允许你将自定义类型的属性动态化。View动画以前的动画系统,只能用于View。设置

2018-01-11 14:50:54 398

原创 不继承RxAppCompatActivity的情况下使用RxLifeCycle

在Android中使用Rxjava时可能会在页面退出时出现内存泄漏的情况,RxLifeCycle就是为此而生,但是作者在sample中写得很简单,只用了继承RxAppCompatActivity的案例讲解它的用法。但是用户在使用过程中,可能会因为继承了别的Activity,不好再继承RxAppCompatActivity,这种情况怎么办呢?其实作者已经为我们提供了解决方案,只是没有在sampl

2018-01-05 12:57:16 5730

原创 关于py不是内部或外部命令的问题

首先你要明白凡是这种问题只有两种可能:1. 你没有正确安装这个软件;2. 没有配置环境变量。如果你的电脑上同时安装了python2和python3,你可能想在命令行中方便地切换python2和python3. 参考知乎问题:同时装了Python3和Python2,怎么用pip?的解决方案,我们需要在电脑上使用python启动器(两个核心文件:py.exe和pyw.exe)。 但如果网友同我一样是

2018-01-03 18:47:04 6225 3

翻译 Android官方文档翻译-Broadcasts

原文链接:https://developer.android.com/guide/components/broadcasts.html广播Android应用可以向Android系统和其他Android应用发送或从它们那接收广播消息,这类似于发布-订阅设计模式。当需要关注的事件发生时这些广播就会发送出去。例如Android系统在许多系统事件发生时会发送广播,比如当系统启动或设备开始充电时。应用也可以发

2017-12-30 08:59:42 611

原创 Android Studio Clean和Rebuild的区别

偶然发现Clean会将build文件夹下generate的代码,比如用注解处理器(Butterknife、Dagger2)生成的代码清除,而Rebuild会使用注解生成器生成这些代码。

2017-12-25 17:47:06 3499

翻译 Dagger 官方文档之Dagger1(译文)

译者注Dagger2是在Dagger1的基础上升级开发的,所以要学习Dagger2,先了解Dagger1。下文是由Dagger1的官方文档翻译而来。 参考: 原文链接 Dagger1项目链接介绍在任何应用中最好的类是那些“干活卖力”的:如BarcodeDecoder,KoopaPhysicsEngine和AudioStreamer.这些类持有依赖,可能是一个BarcodeCameraFinde

2017-12-21 13:50:52 989

翻译 大话MVP架构模式(1)-Basic

Model-view-presenter(MVP)是Model-view-controller(MVC)的派生,通常用于UI构建。在MVP中,presenter充当着“中间人”的功能。在MVP中,所有的表示逻辑都推给presenter。 model-view-presenter最早起源于90年代的Taligent——一个由Apple、IBM和Hewlett-Packard合资的企业。MVP是在

2017-12-19 13:46:52 516

原创 使用Android Studio克隆Github上的branch分支

在Android Studio上clone branch代码其实很简单两种方式: 1. 使用顶部工具栏: VCS–>Git–>Branches 首次clone branches 请选择show more: 选择分支 check out 使用底部Git工具栏,后续操作同上

2017-12-19 10:42:01 2057

原创 UML类图图解

1. 类格式如图,顶格表示类名,中间隔表示属性,底格表示方法。方法和属性的可见性 符号 可见性 + public - private| protected/ | derived ~ | package2. 关系2.1 Generalization(归纳)/Inheritance(继承)我不知道Generalization为什么要翻译成泛化,个人觉得翻译得太硬了,一般人还得进

2017-12-14 18:06:03 560

翻译 面向对象23个设计模式(1)——工厂方法模式

参考链接:https://en.wikipedia.org/wiki/Factory_method_pattern http://blog.csdn.net/xmlife/article/details/43491039概念在基于类的编程(class-based programming)中,工厂方法模式(the factory method pattern)是创建型模式(creational pa

2017-12-12 18:24:18 493

原创 没有UI的Fragment的妙用——截屏

最近测试了一下Android的截图工具,最开始是这么设计的:public class ScreenCaptor{ public static final int REQUEST_CAPTURE = 4; public interface OnCaptureFinishedListener { void onCaptureSuccess(Bitmap bitmap);

2017-12-12 14:35:26 1126

原创 java.lang.NoClassDefFoundError: com/android/tools/lint/detector/api/Detector$UastScanner

好长时间没更新APP了,结果今天打包报错如下,百思不得其解:Could not load custom rule jar file /home/user/.android/build-cache/317bbf7182688f2c4e85a24d078fe2ab62ffb2a0/output/jars/lint.jarjava.lang.NoClassDefFoundError: com/andro

2017-11-06 01:06:09 4023

原创 获取TextView中文本的宽度

在写一个自定义Button,希望图片宽度可以根据文本宽度来定,找到如下方法可以得到文本宽度:Layout.getDesiredWidth(getText(), getPaint());

2017-09-08 13:28:56 1981

空空如也

空空如也

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

TA关注的人

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