小胖轩


编码生涯的点点滴滴

正方体涂色问题

前些日子室友说了一道15年秋招的笔试题,题目如下: 用三种颜色给立方体的六个面着色,颜色可以使用一种或多种,旋转后可以相同的涂色记为一种涂色方式,问一共有多少种涂色方式? 当时一心想直接罗列出来,但是涂色的种类比较的多,而且立方体的旋转也有很多种,有按照面中心点连线,棱中心连线,顶点连线三种方式。人为的去列举很容易出现错误。下面讲一下使用Polya计数定理来进行计算,有关Polya定理...

SSH正向与反向代理

日常中经常遇到需要代理的问题,例如需要访问google,但是直接访问不了,那我们可以通过另外一台服务器来进行访问,这个称为正向代理,当然与之相对的就是反向代理,反向代理的用途也很多,例如在家不能直接登录公司里自己的电脑,那么可以使用反向代理将一台远程主机的端口映射到公司电脑的22端口(ssh)或3389端口(远程桌面),下面具体总结一下正向代理与反向代理的使用与配置。 准备工作 开启ss...

Http与Socket

一直对 Http 与 Socket 比较的疑惑,之前认为 Http 与 Socket 是两个完全不相关的概念,其实不然,这里对这两个词进行一下对比。  Socket则是对TCP/IP协议的封装和应用(程序员层面上)。   TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,  HTTP是应用层协议,主要解决如何包装数据。 Socket跟TCP/IP协议没有必然的联系,...

同步aar到jCenter与maven central

目前gradle使用的越来越多了,自己平时也在github上放了一些代码,但是别人使用起来非常的麻烦,需要下载项目,导入项目,比较的繁碎。经历了一天的实战,终于成功了将自己在github上的一些项目规整后同步到了jcenter与maven central中。大家可以参考英文版的文档https://github.com/lopspower/gradle-jcenter-publish and...

Android导航栏隐藏与浮现(一)

Android M已经发布了很久了,很多新的特性也非常的吸引人,比如Doze模式可以使导航时间更长,刷到nexus5上,体验了一下确实不错。但是导航栏(虚拟按键)一直存在,感觉不是特别的爽。今天我们就从android M(6.0)进行源码的修改,使nexus5能够方便的进行导航栏的隐藏与恢复。 修改源码前,看到了CSDN上的文章(http://blog.csdn.net/way_ping_...

Apache下Https反向代理Http

尽管很多加密算法都做的很好了,但是在网页登录或注册时还是存在一定的号码被盗风险。怎么才能进一步加强信息的安全的,https是一个很好的选择。 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的...

IOS8与9配置企业证书签名的应用

ios8出来的时候,使用企业证书打出的包不能够下载,后来网上提供了一定的解决,在plist中的bundle id后面加上ios8fix,如下: <key>bundle-identifier</key> <string>com.ahhailan.ios8fix</string> <key>bundle-version</...

IOS UIWebView 优化

native体验好,但是每一次修正bug后都需要发版(特例除外);web开发快,维护成本低,体验上比native上差一点。web方面怎么减少与native的差距的呢?一个很重要的优化就是尽可能较少网络传输。下面看一下ios开发中怎么减少UIWebView的网络数据传输。 加载网页时需要加载页面以及页面相关的资源(js,css,img),一般来说页面会经常的变动,但是大部分js,css,im...

git常用操作

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 复制完整项目 git clone http://xxxxxx.xxx/xxxxx 检出分支(a)到本地(b) git checkout -b [my_local_branch] [...

实用的陌生Shell命令

有一些不经常的使用的bash命令可以帮我们省去写很多的脚本, 汇总如下: realpath 获取文件的真实路径 ➜ ls haha ➜ realpath haha /Volumes/Extra/Tmp/test/haha ➜ ➜ echo "`pwd`/haha" /Users/YD/Tmp/test/haha rename 批量重命名, -s ‘替换前...

Java LruCache

为了更好的使用内存,操作系统中有一种Lru(Least Recently Used)策略,将最近最少使用的项移出容量有限的内存。不仅仅操作系统这样做,平时做一些android应用等也需要在有限的空间内保存一些状态。下面来看分析我们要怎么做这个基于Lru策略的缓存: 能够快速的读取与写入 ① 能够实现Lru策略 ② 能够适应多线程并发访问操作 ③ 多个线程可以同时读取,但是...

Round Up To Power Of Two

这个标题应该说明了我们要做什么了,中文的意思是找出一个2^n的数,使其不小于给出的数字。举个例子吧: 如果给一个数字63,那么我需要获取不小于63的数字,但是这个数字需要是2的n次方了,所以 63对应的是64(2^6) 64对应的依旧是64(2^6) 100对应的是128(2^7) 问题来了: 怎么快速的计算出这个结果呢? 可能首先浮现在我们眼前的可能是计算log或者...

Codeboy Blog的搭建

本文介绍了codeboy.me网站的搭建过程。 网站使用了jeykll进行构建,在CleanBlog等模板的基础上进行改造。jekyll是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如Disqus。最关键的是jekyll可以免费部署在Github上...

Android LaunchMode and StartActivityForResult

android4.0+已经占据目前主流android系统版本了,在5.0版本发布后,android的LaunchMode与StartActivityForResult的关系发生了一些改变。 两个Activity,A和B,现在由A页面跳转到B页面,看一下LaunchMode与StartActivityForResult之间的关系: android5.0之前 ...

Android开发及使用技巧

1. 查看wifi密码 查询连接的wifi密码,没问题,前提是手机已经root了,可以查看系统文件,android的wifi密码明文保存在一下文件中,使用root explorer查看即可。 /data/misc/wifi/wpa_supplicant.conf 2. 查看activity堆栈情况 adb shell dumpsys activity ---------------...

Ubuntu Vim中文显示

英文版的Ubuntu系统自带的编码是en_US.UTF-8,并不包含中文编码集,可以在以下文件中查看: /var/lib/locales/supported.d/local 默认情况下,使用vim打开含有中文的文本后,看到的将是乱码。 怎么显示中文呢? 生成中文编码集 添加vim编码 生成中文编码集 将中文编码集加入系统: sudo /var/lib/locale...