自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 问答 (1)
  • 收藏
  • 关注

原创 Ubuntu + Eclipse + Tomcat 配置 Java Web 开发环境填坑笔记

前言从 Eclipse 官网 上下载到的 Eclipse Neon 是不带插件的, 要配置出一个 Java Web 开发环境, 尚需各种折腾. 把踩到的坑记录一下备忘.Eclipse 基本配置:使用 shadow sock 科学上网,需要配置代理: Window -> Preferences -> General -> Network ConnectionsHelp -> Install New

2017-04-18 18:54:50 5311

原创 linux 不改变目录结构移动 home 目录到新分区

问题提出公司的开发测试服务器部署在阿里云, 阿里云给出的实例一般都是只有一个分区, 20G到40G的样子, 然后再买存储挂载到其他分区. 而 home 目录是在这个 20G 的跟目录分区下的. 随着开发人员增多, 根目录分区很快被大家填满了. 因为是多地研发, 因此需要一个无感知的给大家的 home 搬家的方案.基本原理接到这个任务, 首先想到的就是 bind mount 方式:mount --

2017-04-18 10:40:08 10758 4

原创 Android 从 View 中获取 Activity 时遇到 TintContextWrapper cannot be cast to 的问题

问题描述:如果一个 View 绘制于某个 Activity 的 ContentView 上, 那它的 Context 一定是和这个 Activity 相关联的. 因此我们想在 View 中直接用 Activity 方法时 (最常用的应该就是 Activity.startActivity() 方法了), 不必再向 View 中传递 Activity 对象. 一般在 View 中获取这个 Activi

2017-04-12 17:12:52 10020 4

原创 一键生成 Android 录屏 gif 的脚本

目的编写 bash 脚本, 实现一行命令得到 Android 手机录制屏幕 gif 动图文件.博主使用 ubuntu 系统, shell 为 bash. 这个脚本也可以用在 mac 系统上. 听说 windows 系统出了 ubuntu on windows, 不知道能不能使用这个脚本.原理adb shell screenrecordAndroid 4.4 版本后系统内预置了一个 screenre

2017-04-06 17:10:05 3480

原创 [积累] vsftpd 匿名用户登录显示空白页问题

问题:本来内网 ftp 用的好好的, 突然某天匿名用户就无法通过浏览器访问 ftp 了.尝试解决:检查 vsftpd 配置:出现这个问题首先肯定要查看 vsftpd 配置. 我使用 CentOS 6.5, 这个配置文件位置如下:/etc/vsftpd/vsftpd.conf重点检查如下两个参数设置是否正确:anonymous_enable=YESanon_root=/ftp_public第一个

2017-03-30 18:02:07 4952

原创 Android 保存 Fragment 引用及 getActivity() 为空问题

有时我们希望在 Activity 中保存所创建的 Fragment 的引用, 以便后续逻辑中做界面更新等操作. 如果页面中的 Fragment 都是静态的 (不会被 remove, hide 等), 则一般不会出啥问题. 如果是多个 Fragment 切换的场景, 就容易出现 getActivity() 为 null 等问题. 这种问题在使用 FragmentPagerAdapter 时尤其容易出现.

2017-03-23 16:19:18 5342

原创 Android 多主题切换 (theme + style) 及 selector/drawable 无法引用 ?attr 属性的问题

需求:最近需要实现应用内多主题的需求: 要求应用内预置 10 个左右的主题配色方案, 用户可按需切换. 刚一拿到需求, 觉得这简单, theme + style 就可以搞定了. 没过多久就遇到了 attr 无法被 selector, drawable 等 xml 资源引用的大坑. 主题色切换的方案中文网络上一搜一大堆, 但没有哪位博主好心的提起这里还有这么深一个坑的… 实在应该事先提起啊… 这

2017-03-15 22:38:01 4169 1

原创 Ubuntu 下使用 ADB 调试 Android 应用时的设备识别问题

在 Ubuntu 下使用 ADB 调试时如果出现错误提示: insufficient permissions for device: verify udev rules 等等… 以及各种各样的奇怪问题, 总之就是不能用或不好用. 这都可能是 udev rules 问题. 可以优先尝试如下解决方案:udev rules这是谷歌官方给出的 Ubuntu 下使用 ADB 调试的配置方法, 链接在此

2017-03-09 10:44:27 5506 2

翻译 [Tkinter 教程11] 对话框和消息框

简介Tkinter 提供了一系列的对话框, 可以用来显示文本消息, 提示警告信息和错误信息, 选择文件或颜色. 其他一些简单的对话框还可以请求用户输入文本, 整数或数字. 下面是一个典型的对话框使用场景. 在应用程序中经常会有 “退出” 按钮, 如下: 点击 “quit” 按钮会弹出一个确认退出对话框: 我们假设 “退出” 功能还没有最终完成, 这时我们会弹出一个只带 OK 按钮的消息对话框,

2017-03-07 22:30:34 23409

翻译 [Tkinter 教程10] Text 控件

简介及简例Text 控件用来显示多行文本. Tkinter 的 Text 控件很强大, 很灵活, 可以实现很多功能. 虽然这个控件的主要用途是显示多行文本, 但其还可以被用作简单的文本编辑器, 甚至是网页浏览器. Text 控件可以显示网页链接, 图片, HTML页面, 甚至 CSS 样式表. 在其他的各种教程中, 很难找到一个关于 Text 控件的简单例子. 这也是我们写这一章教程的主要目的:

2017-03-07 22:25:53 35056 1

翻译 [Tkinter 教程09] Scale 控件

简介Tkinter 中的 Scale 控件是一种可供用户通过拖动指示器改变变量值的控件. 这种控件可以水平放置, 也可以竖直放置. 可以在用户界面中放置一个 Scale 控件, 用户通过拖动该控件就可以在某个取值范围内选择一个合适的值. Scale 控件可以设置最大最小值以确定取值范围. 我们也可以改变 Scale 控件的放置方式, 使其水平或竖直放置. 当需要用户在一个范围内选择一个值时, Sc

2017-03-07 22:21:54 3581 1

翻译 [Tkinter 教程07] Entry 控件

简介Entry 是 Tkinter 用来接收字符串等输入的控件. 该控件允许用户输入一行文字. 如果用户输入的文字长度长于 Entry 控件的宽度时, 文字会向后滚动. 这种情况下所输入的字符串无法全部显示. 点击箭头符号可以将不可见的文字部分移入可见区域. 如果你想要输入多行文本, 就需要使用 Text 控件. Entry 控件只能使用预设字体. 使用 Entry 控件的语法如下: w = E

2017-03-07 22:09:39 27767 3

翻译 [Tkinter 教程13] Mastermind 游戏

Mastermind 游戏本章我们演示一个进阶例子. 我们用 Tkinter 编写了 “Bulls and Cows” 游戏. 这个游戏也被称作 “Cows and Bulls” 或者 “Pigs and Bulls” 或者 “Bulls and Cleots”, 是一个古老的益智解谜游戏, 由两名玩家参与. 早在19世纪, 人们就在用铅笔和纸来玩这个游戏了. Mordecai Meirowitz

2017-03-07 22:04:44 4426 1

翻译 [Tkinter 教程06] Checkbox 控件

简介Checkbox 控件允许用户在多个选项中选择多项. Radiobutton 则只允许用户选择一项. 通常, Checkbox 会显示为一个空白的方框 (表示 false, 未被选中), 或者方框中有一个对号或X号 (表示 true, 被选中). 一个对该选项的简短描述会和选择框一同显示. checkbox 的状态会因点击而改变, 这个点击可能来自鼠标, 也可能来自键盘热键, 比如空格键通常被

2017-03-07 07:35:00 8599

翻译 [Tinkter 教程05] Radiobutton 控件

Radio Buttons单选按钮是一种可在多个预先定义的选项中选择出一项的 Tkinter 控件. 单选按钮可显示文字或图片. 显示文字时只能使用预设字体. 该控件可以绑定一个 Python 函数或方法, 当单选按钮被选择时, 该函数或方法将被调用. 单选按钮 (Radio Button) 这个名字来源于收音机 (Radio) 上的调频按钮, 这些按钮用来选择特定波段或预设电台. 如果一个按钮被

2017-03-07 01:12:01 2312

翻译 [Tkinter 教程04] Variable 类

Variable 类有些控件 (比如 Entry 控件, Radiobutton 控件 等) 可以通过传入特定参数直接和一个程序变量绑定, 这些参数包括: variable, textvariable, onvalue, offvalue, value. 这种绑定是双向的: 如果该变量发生改变, 与该变量绑定的控件也会随之更新. 这些 Tkinter 控制变量和一般的 Python 变量一样, 都是

2017-03-07 00:43:32 8004

翻译 [Tkinter 教程03] Button 控件

简介Button 控件是一种标准 Tkinter 控件, 用来展现不同样式的按钮. Button 控件被用以和用户交互, 比如按钮被鼠标点击后, 某种操作被启动. 和 Label 控件类似, 按钮可以展示图片或者文字. 不同的是, Label 控件可以指定字体, Button 控件只能使用单一的字体. Button 上的文字可以多行显示. 可以将一个 Python 函数或方法绑定到一个 Butto

2017-03-07 00:22:23 7290

翻译 [Tkinter 教程15] event 事件绑定

简介一个 Tkinter 应用生命周期中的大部分时间都处在一个消息循环 (event loop) 中. 它等待事件的发生: 事件可能是 按键按下, 鼠标点击, 鼠标移动 等. Tkinter 提供了用以处理相关事件的机制. 处理函数可以被绑定给各个控件的各种事件. widget.bind(event, handler) 如果相关事件发生, handler 函数会被触发, 事件对象 event

2017-03-06 22:23:57 26583

翻译 [Tkinter 教程14] menu 菜单

简介一提到”menu”这个词, 很多人首先想到的是餐馆里的菜单. 虽然餐馆菜单和计算机程序中的菜单看起来一点也不像, 但他们确实有很多共同点. 在餐馆中, 菜单列举了所有菜品和饮料; 在计算机程序中, 菜单通过图形界面, 展示了应用程序可用的命令和功能. 在用户界面程序中, 菜单以图标和文字的方式展示可用选项. 用鼠标选择一个选项, 程序的某个行为既被触发. 这种行为通常包括比如 打开/保存文件,

2017-03-06 22:14:49 3208

翻译 [Tkinter 教程08] Canvas 图形绘制

简介绘制文字绘制 Oval交互式绘图绘制多边形绘制Bitmap绘制图片小练习简介Canvas 为 Tkinter 提供了绘图功能. 其提供的图形组件包括 线形, 圆形, 图片, 甚至其他控件. Canvas 控件为绘制图形图表, 编辑图形, 自定义控件提供了可能. 在第一个例子里, 我们将演示如何画一条直线. create_line(coords, options) 方法用来绘制一条

2017-03-06 22:03:15 29592 1

翻译 [Tkinter 教程02] Message 控件

Message 控件Message 控件用来展示一些文字短消息. Message 和 Label 控件有些类似, 但在展示文字方面比 Label 要灵活, 比如 Message 控件可以改变字体, 而 Label 控件只能使用一种字体. 它提供了一个换行对象, 以使文字可以断为多行. 它可以支持文字的自动换行及对齐. 这里要澄清一下前面提到的 Message 控件可以改变字体的说法: 这是说我们可以

2017-03-06 21:42:31 6534

转载 iptables 详细教程

本文转自:http://lesca.me/archives/iptables-tutorial-structures-configuratios-examples.htmliptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触ip

2017-02-19 01:20:35 7416

翻译 [Tkinter 教程01] 入门: Label 控件

本文译自:  http://www.python-course.eu/tkinter_labels.phpHello Tkinter Label下面我们将以 Tkinter 中最简单的控件,即 Label 控件,开始这个系列的教程. 在 Tkinter 中, Label 控件用以显示文字或图片, 常用来展示信息, 而非与用户交互.按照传统, 一个教程应始于 Hello

2017-01-24 00:44:50 31851 5

翻译 [Tkinter 教程12] 布局管理 (Pack Place Grid)

本文译自:  http://www.python-course.eu/tkinter_layout_management.php这个系列的 tkinter 文章图文并茂, 查了一堆教程, 就这个讲的最明白.Note1: 因为自己是初学 tkinter, 且不打算太深入, 译的不对的地方请指教~.Note2: 如果同学们想看这个系列的其他文章的译文, 请告知, 我们一同学习下.

2017-01-14 21:16:53 78021 6

原创 swagger 生成 PHP restful API 接口文档

需求:为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用 swagger 前手写文档的血泪史.我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪史中催死人不偿命的客户端阵营.但血泪史却是相通的,没有 swagger 的日子,对接口就是开发流程中最低效的环节.因此研究,采用 swagger 为我们的 php 接口项目加入注释,这样接

2017-01-12 14:09:26 20388

原创 [积累] gerrit 不经代码审核直接push进库的方法

需求:gerrit 代码审核将代码入库权限收起,可以有效控制代码质量.但同时弊端也是明显的: 对于频繁改动的项目(比如新项目),每段代码都审核会明显拖慢工作效率.这时可以给某个组配置不经审核直接push权限.方法:

2017-01-11 15:14:35 6226

原创 [gerrit场景教程] gerrit "missing Change-Id"

本系列是为公司写的 git & gerrit 场景使用手册的一篇.场景:你用 git push 向 gerrit 提交了待审核代码,一切都很顺利,你脑袋里冒出了"代码头上加了'佛祖保佑'果然有效"的想法.此时 git 打印出如下提示,你的内心OS同步打印 "心情 -5" :remote: Resolving deltas: 100% (14/

2017-01-11 14:42:32 44541 7

原创 [积累] git 出现 error Missing tree 的处理办法

问题:使用 git push 提交时,提示git push --receive-pack='git receive-pack --reviewer xxx@xxx.cn --reviewer xx@xx.cn' review HEAD:refs/for/masterCounting objects: 1, done.Writing objects: 100% (1/1), 24

2017-01-11 14:16:29 26044 1

原创 php + MongoDB + Sphinx 实现全文检索 (二)

上一篇文章写了大体思路, IndexDriver 只给了个接口, mysql 数据转移, sphinx 索引配置文件的建立, 这些地方都没有给出.本着 talk is cheap 的原则,将这部分代码在这里补全.IndexDriver这里仅列出一个示例性质的具体实现类. 首先给出一个由其派生的对接mongo的抽象类,所有由mongo数据建立的索引都继承该类:<?ph

2016-12-27 21:12:16 788 5

原创 Android 准确获取外置存储卡路径的方法

获取存储卡路径的接口大家都很熟悉,一般是通过 Environment 接口来获取:String sdcardPath = Environment.getExternalStorageDirectory();偶尔开发中会遇到需要获取外置存储卡的接口,一般是 TF小卡,网上有很多方法,但都不是完全准确的方法.下面提供一个准确获取外置存储卡路径的方法.原理:Andro

2016-12-27 19:20:23 11561 1

原创 Android Framework 批量编译-批量推送 脚本

刚毕业时在某手机厂商任职 Android Framework 研发工程师,工作了一段时间后,深感 Framework 层的编译调试太繁琐,每次都做重复劳动.因此决定要做一个一揽子解决方案,将整个 编译-打包-安装至手机 的流程用一行命令搞定. 于是写了一年多,写完了这个最终近2000行的脚本.这是我从零开始学写 bash 的最初的原因.现在不再做 Framework 开发了,也再也

2016-12-27 14:58:23 857

原创 [积累] CentOS 配置 vsftpd 搭建 ftp 服务

需求:要在公司内网搭建一个 ftp 服务,基本满足以下场景即可:研发同学可以使用自己的账号上传/下载文件到各自的 home 目录大家都可以将某些文件放在某个公共目录,所有人都可以免密码通过 ftp 协议在浏览器查看这些公共目录及其中的文件.第二个需求主要是为了方便美工妹妹: 美工可以登录自己的ftp账号上传原型图,切图等文件,然后将 ftp 协议的 url 发给研发同学们. 研

2016-12-27 13:04:17 514

原创 Java 实现简单的内存对象LRU缓存

常遇到需要将对象在内存中缓存的场景.于是自己做了一个简单的基于 LRU 规则的内存缓存容器.LRU 即 Last Recent Used, 大意是最近被使用的对象最后被丢弃.先上源码再扯其他:源码:package lx.af.utils.cache;import java.util.Collections;import java.util.HashMap;i

2016-12-24 23:13:27 1497

原创 [积累] 对一次 crontab 执行失败的调试

问题:任务目标是每隔一段时间将某 mongo 数据库内的某段信息,导入到 mysql 数据库,系统为 CentOS 6.5.主体脚本采用 php 编写,但为了调用方便,并和其他脚本接合使用,又做了一个 bash 脚本封装了该 php 脚本.然后由 crontab 执行该 bash 脚本,完成排期任务.编写完成后,却发现 php 的日志文件始终没有记录到运行信息.解决

2016-12-24 14:37:16 2173

原创 bash 常用代码片段

自己常用的一些代码片段,作为速查手册.路径类:获取脚本所在目录 (不是运行脚本的目录,是保存脚本的目录)SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"按 前缀+当前时间戳 为规则命名的临时文件TMP_FILE=/tmp/namestring_$(date +%m%d%H%M%S)获取

2016-12-23 13:42:09 481

原创 php + MongoDB + Sphinx 实现全文检索 (一)

用 sphinx 支持 mongo 数据库做全文索引.sphinx 采用中文分词方案 coreseek. 数据引入 sphinx 中用到了 mysql 做中转.

2016-12-13 16:06:12 2912

原创 Android不继承ViewPager实现自动滚动翻页功能

继承ViewPager实现自动滚动的例子已经很多了,不过有时候我们不想使用继承,比如一个类已经继承了ViewPager,或者不想更改过去的代码.这里提供一个使用外部类的方法实现ViewPager自动翻页功能.直接上代码:

2015-12-19 10:43:12 2279

原创 Android OpenGL ES 包及流程摘要

android.opengl-----Class:         GLDebugHelper:用于调试OpenGL ES程序的帮助类    GLU:提供GL 公共工具功能的类    GLUtils:连接OpenGL ES和Android API的工具类,其中提供了纹理图片的操作。    Matrix:矩阵运算工具类Exception:         GLException:OpenGL异常类---------------------------------------

2011-01-14 14:48:00 1674 2

原创 Android 编译摘要

<br />> 编译选项的help<br /><br />liuxu@liuxu:~/workspace/froyo_td$ help<br />Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:<br />- croot:   Changes directory to the top of the tree.<br />- m:       Make

2011-01-14 14:46:00 1684

原创 Android ADB 命令摘要

<br />> logcat<br /><br />log的六个级别:<br />|--Verbose<br />|--Debug<br />|--Info<br />|--Warn<br />|--Error<br />|--Fatal<br /><br />logcat -f [filename] 将log保存到指定的文件中,例如 logcat -b radio -f ~/desktop/log/filename<br /><br />logcat -b<br />

2011-01-14 14:44:00 2563

空空如也

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

TA关注的人

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