自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 有关 PHP 和 js 浮点运算的坑

javascript0.1 + 0.2 为啥不等于 0.3 ? (正确结果:0.30000000000000004)0.8 * 7 为啥不等于 5.6 ? (正确结果:5.6000000000000005)PHPvar_dump(intval(0.58 * 100));正确结果是 57,而不是 58浮点运算惹的祸其实这些结果都并非语言的 bug,但和语言的实现原理有...

2017-10-11 14:03:29 136

原创 彻底搞懂 PHP 变量结构体,多数文章观点不准确

PHP5 中的 zval // 1. zvaltypedef struct _zval_struct { zvalue_value value; zend_uint refcount__gc; zend_uchar type; zend_uchar is_ref__gc;} zval;// 2. zvalue_valuetyp...

2017-10-11 14:00:50 254

原创 靠谱外包公司真的不好找,先看看他的技术栈

外包公司,为了节省人力成本,除了项目经理,3 - 5 年的技术leader,技术人员大多数都是少于3年经验,或者实习生。所以造成外包企业,很难沉淀好的技术出来,多数有能力的技术人员,也明确找工作,不选外包企业,造成了一个恶性循坏,十分尴尬的局面。 但比如 IBM,thoughtwork 都是业内顶尖的技术服务型企业,所以并不是外包市场low,外包企业low,而是多数人做low 了...

2017-09-21 11:26:24 195

原创 解决Cannot find module ‘meteor/meteor’ ‘meteor/check’ ‘meteor/mongo’

meteor 对typescript的支持上存在问题,造成typescript中引入的一些包无法找到。 解决方法: 添加 meteor.d.ts 的定义补充文件到/ 下载位置: wget https://github.com/zencodex/snippets/raw/master/meteor.d.ts vim /typing.d.ts ///...

2016-12-22 20:30:51 325

原创 React Native编译错误:ReactAndroid:buildReactNdkLib FAILED

错误输出入如下:[code="ruby"][armeabi-v7a] Compile++ : reactnativejni

2016-12-18 10:42:01 227

原创 PhotoScan Google照片扫描仪,让手机替代扫描仪

[img]http://dl2.iteye.com/upload/attachment/0121/7823/15b22254-08fa-3989-a9e9-d325ed7bbfac.png[/img][url=http://www.yinqisen.cn/blog-742.html]看这里告诉你怎么玩[/url]!!!

2016-12-06 11:43:32 272

原创 微信小程序如何像webview一样加载html5网页

微信小程序如何像webview一样加载html5网页,目前微信暂时还没有开放这个功能,那怎么办呢?[url=http://www.yinqisen.cn/blog-731.html]请看这里[/url]!!!

2016-11-29 16:21:14 247

原创 微信小程序如何删除项目工程

微信小程序本地创建的项目没有删除功能,我通过尝试找到了可以清理的方法,只在Mac osx测试通过,windows可以根据原理自行解决,估计原理都是一致的:删除数据文件夹下的Default即可,属于全部清理,无法单个删除,删除后需要重新扫二维码登录。Mac osx 下目录: $HOME/Library/Application Support/微信web开发者工具/Def...

2016-11-08 10:46:41 322

原创 从PHP语法糖剖析Zend VM引擎

## 1. 先说个PHP5.3+ 的语法糖,通常我们这样写:

2016-11-04 10:58:17 131

原创 Dalvik虚拟机工作原理介绍

Dalvik虚拟机并没有使用目前流行的虚拟机技术,如JIT,但是根据Google的报告,这个功能的缺失并没有令Dalvik虚拟机在性能上有所损失。我们也同时相信,Dalvik虚拟机的性能还有进一步提高的空间。 根据 Google的测算,64M的RAM已经能够令系统正常运转了。其中24M被用于底层系统的初始化和启动,另外20M被用于高层启动高层服务。当然,随着系统服务的增多和应用功能的扩展...

2016-09-26 12:07:36 120

原创 mac osx wine 1.7.5 源码编译方法及中文乱码的解决

源码编译1、先安装apple-gcc42,Mac osx自带的 llvm-gcc,编译后,无法运行wine。1sudo port install apple-gcc422、下载wine源码12git clone git://source.winehq.org/git/wine.git ~/wine...

2016-09-23 10:11:03 134

原创 gerrit与crowdid, openid集成,设置openIdSsoUrl 直接登录

gerrit 版本为2.7gerrit验证方式选择 OPENID_SSO,使用的是crowdid做为用户验证服务。进入gerrit安装目录:cd review_site/etc/vi gerrit.config,修改如下:12345[auth] type = OPENID_SSO openIdSsoUrl = ...

2016-09-22 10:05:27 359

原创 Android 内存优化,如何避免OOM

一、 Android的内存机制二、Android的内存溢出三、万恶的static四、都是线程惹的祸五、超级大胖子Bitmap六、行踪诡异的Cursor七、其它要说的。一、 Android的内存机制Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java 堆内分配空间;然而对象的释...

2016-09-21 09:51:45 151

原创 如何分析android的OOM,与java静态代码分析工具

用MAT分析OOM很多OOM看似发生在bitmap 分配得时候,但它一般不是rootcause。根本原因都在于本应该自动释放的资源,因为代码的错误,而导致某些对象一直被引用(Reference),例如 Android 内存优化,如何避免OOM 文章中提到的Activity 的mContext 引用。当代码量很庞大的时候,单靠读代码查找错误是很困难的,所以必须借助于工具,这里介绍一款很好...

2016-09-19 09:34:51 108

原创 android 4.4(KitKat)上,如何开发SMS功能的APP

android 4.4(KitKat)上,对SMS功能做了限定,只允许设置为默认短信的APP,才可以写入短信到系统的数据库。此举显然增加了安全性。目前大多数第三方的,需要SMS功能的APP,都可能会有短信不能写入的问题,发布此文时,我测试了下QQ通讯录,仍然不能发送短信,且无法保存短信数据,这都是因为这个KitKat SMS新功能引起的,他们都需要遵循新的开发协定才可以。下面是我转自blo...

2016-09-18 12:02:54 195

原创 android4.4(kitkat),如何让APP可以直接写入SMS短信

以下代码的修改是针对android平台研发的,另外如果没有系统源码的情况下,通过逆向修改ROM中的对应文件,也是可以做到的。之所以有这样需求,是因为假如是你自己的ROM,需要对自己的某个APP授予SMS写入权限,可以通过修改如下代码中的OTHERSMS_PACKAGE_NAME,换成你自己APP的package name就可以了。如果类似QQ通讯录这种应用,在可以获取ROOT 的权限下,...

2016-09-14 09:44:10 168

原创 CyanogenMod 11.0模拟器goldfish的编译方法及下载地址

1、首先下载CM的源码,方法网上有很多,不再赘述。2、android模拟器的产品名为goldfish,cm的产品配置文件和linux内核,利用他脚本breakfast、brunch的方式,在我们天朝经常出错,还是GW的问题。所以如果有问题,可以手动在 .repo/local_manifests/roomservice.xml 中天下如下配置:<?xml version="1.0" ...

2016-09-13 09:52:43 145

原创 解决Mac osx AirPort: Link Down on en1. Reason 8 (Disassociated because station lea

这个问题存在好久了,在苹果官方论坛上已经存在好长时间了,但苹果至今仍未修复此问题:https://discussions.apple.com/thread/2142725有人说在Network Preference -> Location 里,新添加配置,就可以了,但我没有尝试成功过。我的版本是MBP 13 + Mac osx 10.8.5 ,从来不关机,在公司直接插网线,有时...

2016-09-12 09:26:00 268

原创 android中使用tcpdump拦截分析网络数据包

1、下载tcpdumphttp://pan.baidu.com/s/1c0vkU2k2、通过adb命令上传到手机里adb push tcpdump /system/bin3、adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap123456789#tcpdump 用法:...

2016-09-10 10:34:37 303

原创 Navicat for Mysql SSH tunnel 用跳板机解决方案

  Navicat Mysql SSH tunnel不能使用跳板机,对于需要跳板机登录的主机,他自带的SSH Tunnel就是鸡肋了。其实从原理上分析,根本不需要开启他得SSH Tunnel,使用本机强大SSH端口转发,加上跳板代理,即可完美解决。1、先取消已经设置的SSH Tunnel,如下图都清空2、本地配置好跳板机,跳板机文章很多,百度即可。比如我的:替换Host , ...

2016-09-10 10:28:55 478

原创 整理linux平台下的vim插件配置,减少到11M,简化安装

最近为了快速开发,直接在服务器上编写代码,把之前spf13 vim的配置整理了一下。安装更加简单,在不同服务器之间传输更快速。### 基于spf13修改的vim配置- 存储空间占用从110M减少到26M,.git只有11M,便于网络传输- 统一为一个仓储,去掉了git submodules的形式,方便小白用户- 根据自己开发语言需要可修改,修改.vimrc.bundle...

2016-09-09 12:00:16 63

原创 wordpress如何使用vim和markdown写blog

$TOC$开始试用了一下wp-markdown插件,高亮和部分语法支持不太好。而且以前的syntax highlight插件语法都乱了,如果使用,需要重新编辑,所以放弃了。网上搜了一下,很巧的是发现了11年底,当时一个老同事写的blog,介绍了vimrepress和vim-markdown,可以满足我的要求,但太久了,vimrepress当前是3.2.1,重写了很多代码。所以重...

2016-09-09 11:57:50 138

原创 重新设计实现CSipSimple呼叫记录分组功能

CSipSimple 原有的分组功能只能针对连续相同被叫号码,如果中间有间隔,相同的号码就不会被分成一组。这个实现很弱,也失去了分组的意义。下面针对这块功能的设计实现做下简单记录。#### 1. 自己封装一个CursorLoader这里取名为CalllogCursorLoader,在CallLogListFragment -> OnCreateLoader中:~~~.j...

2016-09-08 10:14:01 86

原创 adb logcat查看某个进程的输出日志

adb logcat 默认是没有这个功能的,我实现了一个小bash函数,添加到你$HOME/.bashrc 文件中:``` bash# 作用:能够通过进程名显示log# 用法:alogcat com.android.calendar or alogcat calendar# 当监控的进程异常退出时,需要重新运行此命令function alogcat() { OU...

2016-09-08 10:12:49 1796

原创 我的黑科技,让C++可以访问private成员

严格说,C++的禁止外部类访问private 是指在编译期,运行期都是在内存中的数据,是可以做任何修改的。本文的方式讲的就是针对运行期如何修改。这个方案源于N年前有个第三方实现的静态库,我们没有代码,只有库的头文件声明和编译好的lib库。在一个类的头文件中,有个私有变量存储的是Color值,但库的开放接口却没有能力修改这个值。### 方法通过头文件的类定义,算出该私有变...

2016-09-07 11:16:40 124

原创 基于CSipSimple开发的VOIP网络电话 iCaller for Android

下载地址: 手机扫描下方二维码,下载更方便:![icaller-qr](http://boxes.oss-cn-qingdao.aliyuncs.com/screenshots/iCaller-android-QR.png)### 测试参数配置:账号:1001, 1002, 1003 ... 1014密码: 都是1234服务器:t1.123sip....

2016-09-07 11:12:13 129

原创 C语言实现任意进制的转换,主要注意代码的小技巧

在Linux GCC编译测试通过,代码如下:~~~.c#include void tobase(int, int);int main(){ tobase(33, 16); return 0;}void tobase(int value, int base){ static char digits[] = "0123456789ABCDEF...

2016-09-06 09:42:20 168

原创 快速清理Android中无用的资源信息,图片,字符串等

基于python的脚本工具 android-resource-removergithub 地址: 安装方法: pip install android-resource-remover使用方法: cd lint --check UnusedResources ./ --xml lint-result.xml && android-resour...

2016-09-06 09:40:02 243

原创 解决case expressions must be constant expressions

Android Library工程写代码需要注意switch ... case语句对资源id的引用,会引发编译错误:`case expressions must be constant expressions。`通常android工程生成的资源R.java,资源id声明如下: public static final int main=0x7f030004;而对于libr...

2016-09-05 17:01:56 205

原创 android 上的API函数钩子,利用CydiaHook实现

发布将近一年了,最近发现还是有些人需要的,github上也有些人fork了。例子代码,发布在github上,地址:### CydiaHook利用Cydia Substrate SDK 开发,可以HOOK java层或NATIVE层 API接口。### 本代码功能写代码的初衷是因为有个app,需要保存数据到SD卡上,并且app里面有判断SD挂载的状态。没有SD...

2016-09-05 16:57:38 252

原创 tcpdump for android L 5.x with pie support

由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题。最近由于要测试在Android L上的运行情况发现,当运行该可执行文件时,报如下错误:error: only position independent executables (PIE) are supported.PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检...

2016-09-02 14:13:35 132

原创 自用Android程序破解,逆向分析工具集

下载: git clone https://github.com/zencodex/hack-android.git本人主要在Mac osx使用,所以linux下没经过严格测试,可能会存在小问题。签名脚本是自己写的,临时文件写到了/tmp 目录下,所以linux下要确定存在/tmp。如遇到问题,可在github上[new issue](https://github.co...

2016-09-02 14:11:19 202

原创 根据时间获取commit或者查看git log

查看某个时间点以后的log git log --since="Fri Aug 10 19:16:10 2012 +0800" 或者用--until 查看某个时间点以前的log git log --before="Fri Aug 10 19:16:10 2012 +0800" 获取某个时间点以后的commit,-n 1 表示只返回一个,最近的一个 git...

2016-08-31 10:48:06 631

原创 google gerrit repo, git commit如何自动生成Change-Id

1). 检查仓储.git/hook下面是否有 commit-msg 文件,如果没有到下面的地址下载: 如果有自己的gerrit-review服务器,可以直接在网址后面加上 `/tools/hooks/commit-msg` 即可下载。添加后,每次执行git commit 都会自动在log里面生成 Change-Id,用于gerrit code review...

2016-08-31 10:46:18 405

原创 git 使用教程,常用命令

### git常用命令~~~git pull --rebase从服务器获得更新git status查看本地修改git add .git add xxx添加本地的修改git rm xxx删除一个本地修改git commit提交本地修改,但没有上传到服务器,只是本地的记录,git commit --amend,修改上个commit的lo...

2016-08-30 14:07:13 79

原创 如何用git创建空内容的分支

空内容分支是指全新的分支,不是基于现有的分支节点上创建,可以存放全新的初始的代码。注意这么用会增加仓储的大小,如果不是特别需要,不建议这么做。 git commit --allow-empty -m "initial commit" git push origin HEAD:refs/heads/[branch name]转自:http://www.yinqis...

2016-08-30 14:02:39 204

原创 PHP 随机用户名账号的生成

随机生成难点是在于如何避免碰撞,有人说用md5,GUID这些机制啊,当然可以,但是做为账号,看着有乱,而且生成位数也过长。本方法只需要解决1秒内的并发碰撞就可以,因为固定头部采用的是unixtime时间,精确到秒,超过1秒,这个头部的时间肯定变化了。同时本方法也可以用户随机订单编号的生成。测试条件是用循环创建1万个随机账号(毫秒级),0碰撞,10万个大约有0-3个碰撞。应该没有...

2016-08-29 09:40:48 266

原创 adb命令如何获取android手机屏幕分辨率

#### 1. 通用方法: adb shell dumpsys window displays |head -n 3输出类似如下信息: WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays) Display: mDisplayId=0 init=1080x1920...

2016-08-27 10:39:29 196

原创 PHP实现投镖求PI法,最笨但最有意思

#### 原理见下图:被称为利用投飞镖的方法求PI![circle pi](http://www.yinqisen.cn/wp-content/uploads/2015/11/toubiaopi.jpg)#### 以下总结选自其他网友:1. Figure2是Figure1的右上角的部分。 2. 向Figure2中投掷飞镖若干次(一个很大的数目),并且每次都仍...

2016-08-26 14:21:10 129

原创 VIM PIV插件的bug,编辑PHP大文件偶尔会丢失语法高亮

在查看行数较多的PHP脚本时候,比如G跳到文件底部,经常会丢失语法高亮,经google 这个应该是和自动保存功能冲突所引起,具体讨论见:解决方法,编辑.vim/bundle/PIV/ftplugin/php.vim, 删除如下几行: 58 call s:InitVariable("g:load_doxygen_syntax", 1) 59 call s:InitVa...

2016-08-24 11:59:55 99

空空如也

空空如也

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

TA关注的人

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