大象笔记

知者行之始,行者知之成

使用 git-ftp 将 git 两次提交发生变化的文件上传到服务器

首先公网使用 FTP 部署程序是非常不科学的一种方式 FTP 这种协议本身不安全 服务器上的代码不方便回滚 只适合 PHP 这种不需要重启的服务 但是没有办法,客户只给开放了 FTP 权限。我实在懒得说服对方。 使用 FileZilla 手动一个一个上传代码文件是一件让人崩溃的事情 如果一次特性发布涉及的文件过多,超过10个。一是容易遗漏文件,二是文件分布于多个目录,点击查找目录异常耗时 多个文件存在依赖关系时,如果手慢,发布了其中一个文件,但是其他文件在10秒钟之后才上传,那么用户就遭殃了,只能在这10秒钟内笑看错误页面 所以,自动化部署是必然的选择。原本打算自己写一个 shell ...

阅读全文...

CSS Positioning

absolute left right top bottom 绝对是指,相对网页的坐标系来说的。 float 不能与 absolute/fixed position 同时作用于一个元素。因为这不合逻辑。。。 relative top left 这里的相对,是指相对自己原来的位置。例如,span b 原来在 span a 的右侧,紧贴着。使用 relative 之后,left 10px 会使其右移 10px. fixed 这里的 fixed, 是只相对于显示屏是 fixed 的。但是相对网页的顶部来说不是。 应用场景:适用于 fixed sidebar 的实现。 static 浏览器的默 ...

阅读全文...

小作坊与流水线

越发觉得很多短平快的项目并不适合一上来就搞代码管理、规范测试、自动部署等流水线式的管理方式。例如,帮朋友搞个企业介绍站,最合理的方式实际上就是立马在线上部署一套 wordpress,因为这种项目,上线是最重要的。至于测试、代码管理、自动部署那都是之后的事情,先让大家看到效果才是重点。后续是否需要维护还真不好说。 待需要后续增加功能的时候,再搞这一套“流水线”方案也不迟。 最近给我印象最深的就是一个客户用 ecshop 搭建了一套商城,啥管理都没有,代码管理、安全测试、自动部署、服务监控什么都没有,但是居然运行了一年多,每天还不少单成交。我接手之后才一一给其补上,第一版换做我,我估计是不敢这样就 ...

阅读全文...

熬夜有害身体健康

周天晚上写代码过于兴奋,一直到十二点半老婆起来给孩子喂奶才被喊进去睡觉,如果不是被打断估计能一直搞到两三点。当时觉得状态非常好,但是第二天早上7点多起来,头痛欲裂,后脑勺一阵一阵的痛。本想早上补个觉,但是早上娃一直逗我玩,必须我抱着在家里来回转才能恢复呆萌的状态,孩她妈又出门了,这一上午把我累个够呛。 中午睡了两个点,才感觉头痛好些了。然而,噩梦并没有结束,下午4点多又开始头痛。真是岁月不饶人,刚毕业那会通个宵玩似的,通宵加班第二天生龙活虎,被上司催着回家。现在自己就蔫了。。。 今天还是早点上床休息为好,准备8点就寝了。 今天我媳妇也头痛,估计也是这两天没休息好,晚上起夜四五趟喂奶,的确不是常 ...

阅读全文...

Mac 上搭建 Wordpress 测试环境

最近遇到几个项目都是搭建一个小型网站,基本就是介绍类的小网站。从头写感觉重复劳动、且前端耗时,所以还是找个现成的模板来搭建比较合适。 一开始先找了两个选型 wordpress 织梦 CMS 对比之后决定采用 wordpress。至于织梦 最大的问题是漏洞太多,我实在不敢把这种代码放到自己/公司的服务器上。而 wordpress 好在更新比较频繁,理论上漏洞会少很多。 另外,我最近也在重修 CSS,短期目标是自己定制一套模板免费开放,看看有多少人下载,以验证自己的重构实力。。。 晚上,决定在笔记本上测试几个 wordpress 模板,看看几个典型场景下,哪些模板能够满足需求。 按照 di ...

阅读全文...

清理 ecshop 的自动上报代码

修改 ecshop 的 admin 后台时,发现一处自动上报的地方,在 admin/templates/index.htm 底部 <frame src="http://api.ecshop.com/record.php?mod=login&url={$shop_url}" id="hidd-frame" name="hidd-frame" frameborder="no" scrolling="no"> 目的应该是收集使用 ecshop 的网站地址,没有采用服务器后台上报, ...

阅读全文...

php-fpm 自启动失败问题排查

在 vagrant ubuntu 14.04 环境中配置的 php-fpm 总是自启动失败,每次都需要 vagrant ssh 上去切换到 root 手动起来 sudo su - /etc/init.d/php-fpm start 非常不专业 排查思路 首先,确认 init.d 是否有统一的日志文件,从这里看 centos - Is there an init.d start log? - Unix & Linux Stack Exchange,并没有。 然后,确认一下,php-fpm 的日志文件是否记录了启动错误。从 /etc/init.d/php-fpm 启动脚步文件中 ph ...

阅读全文...

中国哲学简史

原本打算周末读一下三国志,可惜手机上没找到合适的版本(微信读书的版本质量太差、kindle 上的内容有删减)。无意搜到这本《中国哲学简史》,今天去医院的公交上把微信读书的免费版读完了,感觉不错,晚上回来买了全本。 这本书的作者是冯友兰,名字感觉听说过,但是又说不上哪里见过。第一印象 对中国哲学史确实有系统的了解,而且是我目前唯一遇到的 文笔一般 序中表现得像个势力小人,极尽相互吹捧之能 后来在维基百科上才了解到,冯友兰这一生确实坎坷,被文革搞成了“精神太监”,这种懦弱的文人确实有失君子风范。但,能写出《中国哲学简史》足以令人拜服。如果我活在那个年代,也许更加卑劣。 不说冯友兰了,谈谈这本书 ...

阅读全文...

卖股票第一次有忧伤的感觉

万集科技从12块钱涨到86,虽然不舍还是得分阶段卖掉。今天卖掉了 200/500。 这种不舍我觉得一方面来自贪婪,另一方面来自生活的惯性,习惯了每日涨停,突然有一天只涨7%就觉得不是滋味。就像谁动了我的奶酪中的小老鼠一般。 但毕竟这不属于价值投资,对于不了解的行业,以及看不懂的盈利模式,应该见好就收。策略暂定为 剩下一手留作青春的回忆 其余半年内不再操作,未来一年如果营收不能翻倍,择机抛掉 ...

阅读全文...

CSS - 冲突时 Which Style Wins

CSS 冲突通常由两种情况引起 继承自不同祖先的样式 多个样式应用于同一个标签 对于第一种冲突,很好理解,nearest 祖先样式优先。 第二种冲突的实现很有趣,采用了打分机制。 一句话概括,即 tag 一分,class 十分,id 一百分,inline 一千分。得分高者胜! 例如: p 得1分 .name p 得11分 #name p 得101分 #main #name p 得 1101分 #name .content p 得 111 分 最终 #main #name p 获胜! 但是假设两个 style 得分一样呢?例如,.name a 与 p .name 得分均为 11, 这时哪 ...

阅读全文...

奔波的周末

早上八点出门,下午快六点回家,整个一天在奔波中度过。 到开发区行政审批中心给宝宝落户口 办理流程很顺畅,只需要夫妻双方身份证复印件、户口本、结婚证、出生证、生育证,填几个单子就搞定了。 第一次忘了带我的户口卡,折反了一次。 咨询身份证异地补办问题 我的身份证明年就到期了,实在不想为这种事情专门跑一趟北京,就顺便咨询了是否能在烟台补办。没想到果然可以,只需要拿身份证和居住证就能在烟台异地办理北京的身份证。但是据说居住证需要等半年才能办下来。。。 行政审批中心不知道是谁想出来的概念,太便民了,基本相关事宜在这两栋楼就能基本搞定。省去了很多跑腿的功夫。比如,各个派出所在这里都有办事窗口,不知道在哪个 ...

阅读全文...

CSS Selector 之 Attribute Selector

这个从名字上就很好理解,即根据属性来选择元素。 举几个例子: input[type="password"] input[type] /* 有 type 属性的 input */ 当然,也支持复杂的正则方式匹配 a[href$=".pdf"] 即,属性 href 以 .pdf 为结尾的 a 标签。 ...

阅读全文...