wheam
What I do that defines me

迷茫的几个月

2016 年是个不平静的年份

2016 年 1 月 1 日,我在去杭州的飞机上,趁空姐不注意,打开了手机,看着自己手中最新版本的 snaplock,觉得这可能是自己做过最满意的版本,也可能是目前最好的 android 第三方锁屏。那时候我想,2016 年一定要做一个中国的 google now,这一年一定又是辛苦但是兴奋的。接着我脑海中想的已经是我的产品 16 年大火, 17 年年会上评选超级豌豆自己上台的情景了。

24 岁

24 岁了,想想还真是可怕。

总觉得在这个日子里还是应该留下一些文字或者其他的东西。

还是先回顾一下吧,我特地看了下去年生日的日记,竟然写下了 “工作变得很糟糕,生活变得很无趣” 这样看起来不应该出现在我这种人身上的字眼。

mac 无法关闭[出现警告声音时闪烁屏幕]导致屏幕闪烁

前几天,我的 mac 开始出现了一个问题,我有时候点击某个按键会导致整个屏幕像是截屏一样闪烁,一开始觉得没啥,可是出现很频繁,用了个把星期后,感觉快被闪瞎了;

我开始寻思原因,一开始觉得一定是某个常驻的 app 出现了问题,导致这种傻逼问题,于是我开始一个个关闭进程和 app 来排除,在卸载了 QQ 等一系列我觉得可能出现这样问题的 app 后,依然未能解决,且其他人的 mac 并没有复现。

我找了找系统设置,发现在设置 - 辅助功能 - 视觉中有一个叫做 [出现警告声音时闪烁屏幕] 的选项,我并没有开启这个选项,但是我的电脑的整体反应特别像是这个开关被打开了的情况。

在 yilin 老师的帮助下,我找到了一个解决方案,How can I stop my whole screen from flashing white on errors?,这个问题中有回答告知了设置项的内容缓存在了 ~/Library/Preferences/com.apple.universalaccess.plist 这个路径下,我利用 sudo 权限备份后删除了这个文件,重启系统后问题解决,所以可以得出就是这个文件换言之是 mac 系统自己傻逼了。

感觉十分的蛋疼,而且好像自己搜索解决问题的能力和以前做开发的时候简直一毛一样,往往差一点就能找到真相,蛋疼。

那些被老板打脸的日子

一开始这个文章的标题是《文档写 high 的晚上》,alias 是 fuck_prd,起因是老板觉得我写文档不好,所以写了文档想反驳却被残忍打脸的故事。

最近总被老板打脸,打的多了就觉得不如来个记录被打脸的文章吧,觉得虽然脸疼但还是能学到东西的。


2015.7.22

我的老板说我文档写的一般,虽然我确实写的还没有他好,但是这还是让我非常的不服。

于是怒草了几天 PRD,立个 flag 在这里,等到他今晚写的文档后看他会如何说!


2015.7.23

今天被老板扯着耳朵打脸打了一晚上,果然我还是要被老板碾压,心好痛,我要再好好改文档,争取把脸打回去。

要点:图要画清楚;先有 whole picture 再细化;


2015.7.28

昨天做错了个事情,老问题,就是沟通没做好,另外没有把自己应该承担的东西接下来,总是想捡便宜,觉得别人会承担。

老板微信叫我过去,从做人到做事,打脸啪啪响,这让我都感觉到自己的情商应该不适合做 pm 了,泪目。

要点:应该沟通的越早越好;话要说清楚;改承担的躲也躲不过;定义问题,每个人想要的不一样;


2015.7.28

老板就上述的事情开导了下我,感觉心里暖暖的。


来这里两年了

今天是入职豌豆荚两周年纪念日,回头想想我已经来北京两年半了,刚开始我还大三,现在我都毕业一年了。

还记得两年前的今天,我早早的来到豌豆荚,还叫上了 LYD 一起过来,期望给豌豆荚的人能案例一下当时做的一个小 app - 豌豆拍,一个摄像头扫描 app icon 就能识别应用的应用。嗯,从名字就看得出来就是为了希望有天豌豆荚能用上。

可惜那事情确实对当时的贵荚没啥用,想法也还有些问题,没用上,那时候还挺失望的哈哈。

两年了啊,多么漫长的日子。

经历了十一的丽江,P4 时的小黑屋,MM 一个开发对七个产品的疯狂,Video 独立的折腾,PlayExp 的痛楚,还有现在在 Snaplock 的奋斗。

两年,我从实习生变成了正式员工,从 android 工程师变成了产品设计师,我先胖了十来斤现在又瘦了三十多斤。

我在北京的大部分朋友都是贵荚或者曾经是贵荚的,我曾经不只一次的说过,贵荚就是我在北京的家。

我想我还会继续走下去,我在这里还有广阔的成长空间,也有非常期望想做好的事情。

当然肯定不会是一帆风顺,这两天还纠结着自己是不是有点忘记了最初的目标,哈哈。

两周年或许是一个新的开始,祝自己两周年快乐。

我们到底要的是什么

上午看到了一些徐普、毛毛、秦伟他们的状态,才知道学弟们在学校里面又遇到了一些困难。

其实我的心情和你们是一样的,类似的事情当年遇到的不比现在少,只是现在我看待这些的角度不一样了,作为你们的学长,作为当初一手把团队拉到这条路上的人,我有必要说些什么。

好,先想想,来到这个团队,参与这些事情,你到底要的是什么,不必急于回答,且听听我的。

We've come a long way from where we began

今天去看了速 7,一样的 UME 华星,两年前在这里看了速 6 后,爱上了这个系列。只是没想到这次的结尾居然是如此煽情的一段纪念。

Dom 在海滩边看着合家欢乐的 Brian,仿佛有万般的不舍,却还是悄悄独自离去,是的,独自,这种手足般的感情,就只能是在两个人之间的。

看着那个画面,我甚至能够感受到 Dom 打开车门,发动引擎时候的心情。

三月没有读书笔记

是的,这个月我一本书都没看,我很遗憾,我生活中少了很多乐趣,少了很多思考,在这个愚人节的深夜,我觉得自己真的变愚蠢了很多。

不过好像我大学一位同学曾经这样评价过大学不好好念书的人(比如我):

如果你没把时间用在念书上,这不是问题;你的时间用在了哪里,浪费了没有,才是关键。

所以我还是可以安慰一下自己,我还是做了很多事情的。

二月读书笔记

这个月连上短篇,看了七本书,比上个月好,但是远不如预期。

本来挺好的节奏,已经隐隐感觉自己也有点阅读肌肉的感觉了,什么书都看,随便拿一本可以的就看,觉着再这样下去,今年看书 OKR 怕是半年就要完成了。

不过后来发生了些事情,实在什么事情都做不下去,今晚明天估计也没心情看,就先发总结算了。

倒是日记写了不少,二月份居然有 46 篇了。再看了段姑娘的《为什么我们要自己写文章》,都感觉自己也可以写点东西了。

一月读书笔记

这个月勉强看了四本书(其实有一本还是没啃完的),感觉很不爽,看的太少,如果有固定的看书时间,是可以看的更多的,下个月假期那么多,希望能够多看一些。

另外就是看书的范围略窄,还是以工作和行业相关的为主(下个月肯定不是,攒了一堆小说),坚持下去,今年一定要至少 50 本。

2015 年底来看

  • 读 50+ 本书(不算漫画),每月有可写的产品 && 技术博客
  • 扇贝打卡 300 天
  • 健身 100 天
  • 持续跟进一个 android 开源项目(如果我还想写 android 的话)
  • 学会 iOS 开发,完成一款自己的 iOS 应用
  • 各种工具处理数据能够飞起

跑的更慢就一定赶不上

【android】讲讲最近遇到的一些坑

下面这张图,是前段时间被 android 开发坑太多之后,一怒之下画的。虽然夸张,但是当你在 android 上实现一个技术和细节比较复杂的东西时候,遇到的坑真的形形色色。

最近其实一直在思考一些产品上的问题,技术上整块的东西不多,就整理下最近遇到的坑吧,望有助于后人,有新坑也会在这里继续补充。

WebViewJavascriptBridge for android

哈哈,前两天 WebViewJavascriptBridge 的作者 merge 了我的提交,纪念一下。

——————————— 更新的分割线 ———————————

今天给 WebViewJavascriptBridge 又又提了一个 pull request,解决的是如果使用 proguard or dexguard 之类的代码混淆工具会导致 javascript interface 被混淆的 bug。
作者还是没出现,准备自己维护了。

——————————— 更新的分割线 ———————————

今天给 WebViewJavascriptBridge 又提了一个 pull request,解决一个关于 WebChromeClient.onJsAlert 时候由于没有关闭 alert 带来的 WebView 不响应 bug。

【android】chromium crash 导致的 webview 空白

2015.01.02 update

我今天给原来的 android issues 回复了我的情况,希望能够帮助到其他人。

——————————— 我是更新的分割线 ———————————

如果你看过之前这篇文章,那么我要说一声抱歉,我给你带来了错误的理解。

完整的描述一下我遇到的 bug,其实是这样的:

我的程序会先打开一个 webview,里面有一个 html5 video tag,之后我会将整个 webview 从 view tree 中移除,但是依然会对这个 video tag 进行 js 注入操作。在某些手机上,只要一注入 js,就可能会触发下文中的内核 bug,以致于 application 级别的 webview 不再渲染。

是我太菜了吗?

所以是我太菜了么?

好像是,毕竟人没那么屌嘛,我能有什么拿得出手的么。
好像也不是,起码我认为不是,起码也有人认为不是。

晚上迷迷茫茫的走了一段,想了些以后的可能性,觉得还是过的窝囊了点,现在这个状态明显不是自己想要的。

感觉人的状态总是串起来的,一个事情不好,自然其他事情也不好。现在很多事情都是有那种劳资一番热血,就后被。。。那什么的感觉。
反正不管怎么样,需要仔细想想,认真做点自己的事情了。

I will go for it!

努力就一定会有机会

再次表示来到豌豆荚是这么多年来最幸运的一件事情。

这两天在写 OKR (what’s OKR),因为自己一直以来不断的折腾和追求,成功的让身边的很多人把自己定位在了自己最希望的角色 prodocoder ,哈哈哈,跟 codesigner 一样,我希望自己永远是一个有着更多可能性,能够尝试更多事情的人。

感谢大家对我的信任,让我有机会真的在别人眼中的两个角色不停的去转换,这对我来说是最有趣的事情。

只要肯努力,就一定会有机会。

what i do that defines me,想和说永远都无法成为决定性的因素,请拭目以待吧!

选择

我是一个天秤座,我从来不相信星座之说,可惜重度强迫症 + 选择困难症让我对科学产生了怀疑。

我会在很多事情上无法抉择。。。

我已经有一个 targus 的电脑包,又特别喜欢 incase 简洁的风格,但是买了 incase,tagus 就没用了,丢了可惜留着蛋疼,于是反反复复的在其中纠结了许久,直到有天脑子一热,现在背着两个书包在机场等晚点的飞机。。。

我已经有一个 13 寸的 pro,轻便又方便,可是又觉得 15 寸宽广的屏幕比较适合我这种不用外接屏幕的人,于是作为一个临时工,半年连换三次电脑让大家咂舌。

我没用 ipad,我趁着年终有点闲钱想买一个, mini 能让我拿着到处走,看书方便,air 能让我不用带电脑回家。。。。

好像22了

可能是去年的今天过得有点惨,所以去年的生日之后想了很多,最重要的一点是一年后的生日绝逼不能这么惨。
一个不小心就好像满足了要求,而超出了预期许多,神马年度目标,年度预期,全搞定了。

今天是我大P3的TB,上午随手改了几百行代码,中午吃完午饭就出发,和一群2货玩了一下午的杀人游戏,第一次玩,很high,接着大家凭借着高预算吃了大餐,又打了一晚上的电玩,最后很爽的回公司收拾回家,明天上班,后天全公司飞丽江high翻,接着是长达十多天的国庆长假。

所以应该改变了

最近对自己的状态很不满意,自从那个每天四点睡八点起的疯狂一周过后,就一直有这种不死不活的状态,我会经常这样提醒自己,这样的状态下去,过一段时间后,能达到自己的目标吗?答案往往是不能。所以,应该改变了,我想变得更好。

下文是高中格言看到的一篇文章,每每以此告诫自己

【android studio】离线更新方法和gradle报错解决

andorid studio确实是个坑啊,不建议新童鞋在preview版本的时候用于开发,除非你跟楼主一样纯粹为了好看 本文主要解决一些坑的,看了很久很久很久很久的stackoverflow加上各种搜索,现在整理一下解决办法。

【离线更新】

ps.由于android studio不提供0.1.9 - 0.2.0的升级包,so,你可以重新装了,0.2.0之后的更新下述应该还是可以使用的。

【android studio】离线更新方法和gradle报错解决

andorid studio确实是个坑啊,不建议新童鞋在preview版本的时候用于开发,除非你跟楼主一样纯粹为了好看 本文主要解决一些坑的,看了很久很久很久很久的stackoverflow加上各种搜索,现在整理一下解决办法。

【离线更新】

ps.由于android studio不提供0.1.9 - 0.2.0的升级包,so,你可以重新装了,0.2.0之后的更新下述应该还是可以使用的。

【开源框架】android-async-http stdudy note

首先容我先挖个坑,先只讲怎么用,后面有时间会把这个开源框架的研究补上。

android-async-http 的主页:http://loopj.com/android-async-http/

android-async-http 的github主页:https://github.com/loopj/android-async-http

本文参考博客之一:http://blog.csdn.net/tangren03/article/details/8824081

其实关于所有的使用方法,在此框架的主页上都有了,只不过是英文的,我来点流行的步骤分解法,三步即可使用此框架

【开源框架】android-async-http stdudy note

首先容我先挖个坑,先只讲怎么用,后面有时间会把这个开源框架的研究补上。

android-async-http 的主页:http://loopj.com/android-async-http/

android-async-http 的github主页:https://github.com/loopj/android-async-http

本文参考博客之一:http://blog.csdn.net/tangren03/article/details/8824081

其实关于所有的使用方法,在此框架的主页上都有了,只不过是英文的,我来点流行的步骤分解法,三步即可使用此框架

java 去除字符串里面的转义字符

今天遇到个蛋疼的问题,我从网上解析一段json,完了需要截取其中的一段,但是因为涉及到url,只要我使用了任何的正则表达式,包括String.replace String.spilt String.substring等方法,都会导致原本的String里的/被转义,然后你就会看到如下的url字符串

http:\/\/wheam.me\/

嗯,是的,而且你的字符串在运行时,是无法解析转义的,自然你截取的url就失效了。(注意这里点击是不算数的,你的浏览器会自动帮你消除转义,但是如果这是一张图片的url,你在程序里面是加载不了的)

解决办法是对最终字符串(注意是最终,不然你再使用了那些方法一样自动转义)使用如下方法

.replaceAll(“\\“, “”)

好的,又是一篇水文,我都受不了我自己了,继续码去,安。

【android studio】project默认jdk设置错误

好吧,请叫我“天天偷懒好久不更新博客渣渣君”,好嘛,好不容易更新还出个错误解决是不是很令人失望啊。。。其实不是的!!!我已经准备了好多好多,好多好多的经验要分享,偷懒没写而已嘛。。。

今天重装了win7(没SSD了好忧伤),编译project的时候总是报错,研究了一下,发现是project default setting的设置错误。

报错情况:

Cannot run program “C:\Program Files\Java\jdk1.7.0_04\bin\java” (in directory “C:\Program Files (x86)\Android\android-studio\system\compile-server”): CreateProcess error=2, ϵͳÕҲ»µ½ָ¶

因为我更想了jdk到1.7.0_25,但是android studio是默认导入的,so必须在启动的时候设置project default setting。

【android studio】project默认jdk设置错误

好吧,请叫我“天天偷懒好久不更新博客渣渣君”,好嘛,好不容易更新还出个错误解决是不是很令人失望啊。。。其实不是的!!!我已经准备了好多好多,好多好多的经验要分享,偷懒没写而已嘛。。。

今天重装了win7(没SSD了好忧伤),编译project的时候总是报错,研究了一下,发现是project default setting的设置错误。

报错情况:

Cannot run program “C:\Program Files\Java\jdk1.7.0_04\bin\java” (in directory “C:\Program Files (x86)\Android\android-studio\system\compile-server”): CreateProcess error=2, ϵͳÕҲ»µ½ָ¶

因为我更想了jdk到1.7.0_25,但是android studio是默认导入的,so必须在启动的时候设置project default setting。

人人都是产品经理8群——产品面试方法论

本次有幸成为了人人都是产品经理8群《产品面试方法论》的主持人,与大家一起唇枪舌战了一番,感觉很爽哈哈哈。

本次讨论的主题是《产品面试方法论》,主要通过讨论面试中的常见问题来得出一些产品面试的方法。


本次讨论主要分为了以下流程:

1、群面的讨论

2、用户与需求类问题

3、竞品分析类问题

4、产品面试遇到的那些奇葩事情

好吧,我不想再隐瞒了

好吧,我不想再隐瞒了,其实我的真实身份是一粒豌豆!

2013.5.6这个注定不平凡的日子,下午搜狗HR猎头到我了,我喝了一口酸奶,淡定的说,不好意思,哥不是很方便。


挂了电话,我想,尼玛邮箱还没动静,我怎么就这么淡定了呢?


然后晚上23:49突然接到了个邮件。。。


一个实习offer+一个正式offer,一份自己以前不敢想象的薪水,一家充满我偶像的梦想公司。

创世西游纪念视频

很忙,但是还是抽出时间剪了这个视频,纪念我最喜爱的游戏——创世西游。

时间确实太匆忙,视频只是跑图+回忆,没有更多的东西,怀念而已。

之后有空会出一个《创世西游死亡档案》,如果去网易游戏面试,一定跟面试官聊聊。

使用Handler和Thread实现简单计时器

就是单纯一个计时器,没什么其他东西,三个按钮,start,stop,reset,分别对应开始,结束,重置,如图:
我的实现方法不一定是最合适的,网上大部分都是采用Timer来实现,也有更精确的能到毫秒的。

项目提交上传github https://github.com/wheam/TimeCounter

不多说了,直接看代码和注释,布局不贴了,需要看github上