Month: 1 月 2016

2015 年度盘点 (完整版)

之前写过 2015 年度盘点按月简版, 眼看 2016 都要过完一个月了, 必须要把完整版给补完了

工作和学习

好多事都不一定记得清了, 先去看了下团队的 git 提交记录, 2015 年全年有 502 次提交, 看起来干活还是挺努力的, 啊哈哈哈哈

年初的时候在挖新坑, 但是最后还是效果实在撑不住, 无疾而终. 上半年还花了挺多时间在我们自己的数据分析平台和运营工具上, 期间正事上有一段不知道做什么的迷茫期, 把 Flask / Jinja 等源码通读了一遍, 也算是对我们的应用框架有更深点的理解, 把前端的 Javascript / CSS 也再学习了下, 为后面各种刨前端的坑巩固了下基础. 下半年先把一些说了很久但一直没做的大功能的坑给开了并基本填上, 然后刨了个更大的坑并也算是填上了, 中间还把公司的首页重新做了一遍, 就是 给公司做了个新首页 里提到的这个, 刚好把之前重学前端的技能给现学现用了一把. 再往后应对淘宝双十一前的各种坑爹情况和应急处理, 并随着有俩人被抽去另一个完全的新坑, 跟熊一起华丽的转成了专职前端, 对我们已有的前端代码越改越崩溃, 终于受不了了说老子不干了要推倒重来, 于是又开了个整个前端工程重构的超大坑, 在 2015 年末终于正式开工, 目前第一阶段算是基本完成, 希望在 2016 年的上半年能弄完并顺手完成一些以前积压了好久的需求

今年把很多基本功给重新过了一下, 在做了不少应用后再回头看基础的东西, 能有更多深入一点的理解, 并在后面的实战中可以更得心应手见招拆招

在公司里另一个角色上的变化是多做自我驱动和推动别人, 毕竟小团队不像大公司已经是一个机械运转的大发动机, 自己当个螺丝钉就随着环境自然走就行了, 现在要自己决定去做什么, 要拉上多少人一起做, 怎么让自己给别人提供支持也要让别人给自己提供支持或协作

生活和娱乐

2015 年生活上最大的变化还是喵喵怀孕啦, 有了莫莫, 各种对新生命的憧憬

四五月的时候一是考虑这时候租房价格会低点, 二是打算怀莫莫, 想让喵上班轻松点搬来喵医院附近住, 花了一个月左右找房子, 最后搬到喵医院隔壁, 房租涨了一把, 停车变得贵和麻烦许多. 不过现在看还是挺值的, 家喵每天早上能睡到七点多, 中午还可以回来睡个午觉, 对于嗜睡如命的喵来说爽的不要不要的. 现在离西湖步行就十来分钟, 去延安路银泰什么的地方吃饭也超方便, 每周都至少跟喵去腐败一顿, 薅各种信用卡的羊毛. 搬家时还被之前的房东小坑了下, 按他的说法我们提前搬也算坑了他, 都过去了就懒得扯了

两边父母现在都在家上班, 怀孕了的喵现在一些家务也不方便弄, 于是笨狗就在家多干活吧. 经常做饭后厨艺好像也长进了那么点, 虽然大菜还是不会几个, 日常过过小日子应该也还是够了. 现在好期待爸妈来过年后妈妈留下来照顾喵, 这样笨狗也稍微轻松点, 等莫莫出来后就要继续各种忙了

小 Polo 开了两年多还没到两万公里, 本来说莫莫要出来了换个大点的车吧, 也一直拖着没行动, 年底的时候财务上出了点意外状况导致这事也被搁置了, 反正不怎么出去现在这样也挺好, 还省油. 杭州的摇号政策变成没有驾照的不让摇, 于是九月份的时候去把 Polo 过户到喵名下, 然后换笨狗的身份去继续摇, 后来经常互相调侃时说家喵一分钱没出空手套白狼弄到辆车, 连过户时那十几块钱手续费都是笨狗出的, 哈哈哈

买的房子是期房, 预计 2016 年 3 月底交付, 之前销售忽悠说可能提前半年, 实际上却并没有, 全年也就工地开放日光明正大的进施工区看过两回, 后来通过各种奇怪的入口在装修期进去看过自家房子, 也没看出啥特别的问题. 规划家具软装时和喵一起去新时代和红星美凯龙看了下, 一致表示价格都太贵且风格又土又壕, 还是宜家搞定算了, 虽然质量上没法当传家宝, 但至少环保什么的宜家还是要信得过点, 必须定制化的比如衣柜窗帘什么的就回头找靠谱点的弄了

2015 出去玩倒是晃了不少地方. 年初公司的年度大出游去了泰国, 经停香港, 在泰国去了曼谷, 大城, 清迈, 清莱, 到一个语言文化都不那么一样的地方去感受下不一样的生活, 也挺有意思, 写了一系列博文记载, 见 Tag 泰国. 春节自驾开车来回老家, 单程一千两百公里的高速, 也算是又让生命多了一些奇妙的体验. 春节后从家里出发报团去云南蜜月, 行程太紧, 加上云南旅游业的一些乱象, 玩的只能说一般般, 也有一系列博文见 Tag 蜜月. 在杭州弄好市民卡后想着去办了个公园年卡, 然后跟喵就去晃了下岳庙和西溪, 好像还去了次植物园, 算是值回票价, 但是后来等喵怀孕后又再也没用上过. 六月份跟公司的短途出游去了黄山和宏村, 可惜在黄山一直下雨雾蒙蒙的啥也没看见, 完全没体会到 “黄山归来不看岳” 的美景, 在宏村倒是闲适多了. 端午带着喵一起去了龙游, 去看龙游石窟和民居苑, 返程的时候又去了瑶琳仙境和龙门古镇. 有单独的博文记录就不再贴链接, 搬家后到城里去坐过几次水上巴士, 和喵一起去小河直街逛了下, 下半年没再怎么出去, 公司方面是下半年习惯性的紧张期, 家里则是喵怀孕了就不怎么方便折腾了, 喵喵妈妈过来的那段一直在下雨也没去逛, 笨狗妈妈来的时候又去运河公园那边逛了下

数码和败家

一开始想今年好像也没买啥, 后来仔细盘算下好像对小米又是路转粉买了一堆. 年初公司年会最后抽了个 iPhone 6, 本来很开心的把自己的 iPhone 5 给换掉了, 后来架不住喵说这货应该是她的, 还是把 6 给了她自己继续用 5. 夏天买了个红米 2 的电信版, 本来是想给老爸换掉他那个被移动捆绑销售的一个忒不靠谱的机器, 顺带把我电信副卡给他放家里打长途和手机上网用, 后来妈妈来杭州时老爸为了方便她路上联系, 把这个新的换给老妈, 再后来据老爸反馈他拿着 13 年买给喵后来倒给我妈再流转到他手里的红米 1 又有各种问题, 干脆又给他买了个红米 2 的电信版还给他再弄了个副卡. 自己在十月份时对 iPhone 5 在很多时候卡的一抽一抽的实在忍无可忍, 又对 iOS 各种不满 (其实也是舍不得花钱买 6s), 十一月初入了个小米 4c 的高配, 用到现在也挺爽的, 双卡双待加电信 4G, 而且安卓上自由度大很多想折腾可以各种折腾. 年底时想着两边家长都有换新机, 喵爸爸那个手机当年买的就不咋滴, 现在应该也各种坑, 刚好喵爸说也想换, 就帮他把几个候选比较了一番最后也买了个 4c 的高配

零碎的东西挺多. 入了小米的插线板, 拿来丢卧室接几根线给各种数码设备充电是挺方便的. 入了小米的手环, 本来是说给喵看下她睡眠质量, 后来她嫌天天戴着不舒服, 更大作用变成了监督自己不要一直坐着, 该多走动走动. 入了小米的路由器 Mini, 因为受不了家里那个 Tp-Link WR-841n 经常抽, 加上周边 2.4G 频段干扰太厉害反正家里大部分都 5G 设备了也上个 5G 频段, 且中间坡给我的一个 Linksys EA6300 也完全没有预想中的那么给力且有些奇怪的坑, 反正家里那么多小米设备, 再多一个整体投奔小米生态圈也没啥不好. 入了个小米的蓝牙印象, 给喵拿来放儿歌什么的给莫莫做胎教, 也顺带当家里台式机的音频输出, 喵表示在电脑上看东西戴个耳机好不舒服的, 还是音箱好. 在买小米手机的时候顺手入过两个小米的耳机, 用来替换之前都快坏的山寨森海塞尔 MX500, 木耳听不出太多门道, 比十几块钱一条的耳机是好一点就是了

公司的生日礼物和入职周年纪念礼物标准比之前降了点, 目前这个价格区间没太多合适的选, 最后一个选的 AKG K430 耳机, 另一个选的 ThinkPad 外接键盘, 为搬家后台机前面拥挤的空间腾点地方, 也为了家喵睡觉时狗在这敲键盘不要吵到她, 如果拿之前那个青轴敲估计会把睡的正香的喵吵醒然后我就要被敲头了

在 Chiphell 上出二手把之前的几台小米一代都出掉了, 把之前买的一个多出来的 Nokia 备机也除掉了, 反正放家里没用还占地方, 有人要就能换一点零花钱是一点吧. 过年的时候把家里那个台式机又带到了杭州, 后面发现机箱太大放不下也是个问题, 跟公司打游戏的妹子换了个小机箱, 还是各种尺寸差那么点导致配置换来换去也没弄的非常好

还在坚持用随手记记账, 记了四五年了现在还是除了手头几块几毛的零钱可能有出入, 其他所有的钱都能对上账, 想回头看什么时候做了什么事, 这也是个很好的参考记录. 没折腾股票, 不管是美股还是 A 股. 各种 P2P 借贷放了一些, 综合看年化在 12% 出头点, 赚点零花钱. 在家里放了些奇怪的渠道, 之前收益挺好, 不过到 2016 时渠道有一些渠道的问题, 现在只想不要被坑就行了. 今年利率降了好多次, 房贷每月还款比刚买房时一个月能少一千. 不过因为搬到城区来房租涨了, 加上今年公司的一些运作机制, 每月到手的钱还是那么点, 导致一年到头好像也没攒下什么, 喵的收入倒是都存下来了

原来被 disabled 的 input 元素是不响应鼠标事件的

前几天做客服的时候遇到个客户来说我们的页面出错了, 两边鸡同鸭讲了半天发现都没法理解对方, 让客户截图后发现果然跟我这边不一样, 远程过去一看, 对面用的是 Win10 + Edge, 在我们本该出现 tipsy 的地方鼠标移上去没任何反应, 客户看不到该有的提示, 也难怪要跑过来找客服

一开始以为是 Edge 和 IE11 又出现什么奇葩的 jQuery 事件绑定错误, 需要在 knockout 的动态渲染完成后再做事件绑定, 但是仔细查了下后发现还不是这么回事, 熊去搜了下表示似乎 “disabled 的 input 元素是不响应鼠标事件的”, 但是为啥 Chrome 又能支持? 把 Firefox 也拉进来测试, 发现似乎不响应是通用标准, Chrome 那个浓眉大眼的货又一次不按常理出牌在鼠标事件完成后另外触发了一次, 所以我们测试一直没问题

既然知道了这么个原因, 而我们又要对一个 disabled 的 input 元素做悬浮事件, 怎么办? 按 Bootstrap 的说法, 在外面包一层, 然后把悬浮事件绑定到包的那一层上就好, 但是这么搞了后还是失败, 各种姿势换了一遍后发现如果我多包一点东西进去, 然后鼠标从多包的那一边进入, 就可以正常触发事件, 这是什么鬼? 想了半天没想明白, 暴力在外面做了一个图标来绑定悬浮事件先解决问题再说

吃了个饭回来, 越想越不对, 难道是因为那个 input 元素有 1px 的 border, 然后导致 Edge 那货一看这个区域都属于 disabled input, 所以其他这个区域的其他元素也不做任何响应? 怒而把包的那一层加了个 border: 5px solid transparent; margin: -5px, 果然就好了… 就仅仅是需要让包的这层真的比那个 disabled input 更大而已

不过还有几个坑没想明白的

  1. 不知道是不是跟 Edge 的刷新率有关, 如果鼠标进出太快, 也可能不会触发包的那一层的事件
  2. 不知道是不是需要额外设置 float 或 z-index 关系, 让包的那一层的 z-index 更高, 这样才能正确响应鼠标事件, 可能也不用去 hack border

最近其他事太多, 这个坑先这么填着, 回头有空了再来细细研究, 写前端真的是折寿啊

写这篇 blog 时去搜了下相关内容, 还有建议把元素不做 disabled, 在 hover 事件里动态设置为 disabled 的乱搞流… 你这样样式都不对的好么

写个小脚本来访问煎蛋

现在用 RSS 阅读器的人估计是越来越少了, 各种站为了防抓, 给全文 RSS 输出的也越来越少了, 关注了好多年的 jandan.net 早就找不到靠谱的全文 RSS, 现在只有摘要的列表点开去煎蛋看全文都经常提示 “我们怀疑你是机器人”, 而且如果一次开多个, 后面的一定是没法通过人类验证的

没办法, 就这么点业余乐趣, 不要这么被剥夺了吧, 反正跳转 URL 都显式给出了, 就是人肉替换麻烦了点, 那么, 写个脚本?

https://gist.github.com/whusnoopy/489c77059457c00c7b75

我在 Chrome 下是用 Tampermonkey 运行这个脚本, Firefox 下应该是那个叫 Greasemonkey 的插件

前端奇技淫巧之保持悬浮状态

先感慨一句, 一入前端深似海, 都是泪

经常要调前端样式, 有一些元素是只在鼠标悬停状态下才能显示, 那么, 怎么看和调试这些元素呢?

在 Chrome 等开发者工具里, 可以在 Element 那个选项卡右边的 Style 选项卡里点那个大头针图标, 将元素强制维持在 :hover 状态. 也可以在 Elements 左边的元素节点上点右键选状态

但这只是 CSS 上的搞法, 如果某个元素是 Javascript 悬浮事件弄出来的呢? 加 :hover 完全木用啊. 这时候可以用更奇葩的搞法: 暂停 Javascript 执行. 就是在开发者工具的 Sources 那个选项卡里, 调试 JS 那个地方有个暂停按钮, 按一下就好了

围观群众: 你特么一定是在逗我, 明明是鼠标悬停才能触发的事件, 鼠标一移开去点暂停键那不就没了悬停状态了么

当然了… 这时候是没法腾出手来按那个按钮的, 但是我们有快捷键啊, OS X 下是 F8Cmd + \, 剩下的就不用过多解释了