(1) urlencode() -> 将请求的url地址中的特殊字符串进行ascii码转换, 特别是用header()函数的地方; 微信请求code时的回调redirect_uri里面的地址就应该用urlencode()函数处理一下
(2) 今天,最震撼的还是那句: 问题不明确,绝不开始编程。思路不清楚,不知道你要干什么的话,写出来的程序,迟早要崩溃! As 大神Linus Torvalds said "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."
2015-0324
(1)安卓手机重启陷入死循环,开不了机。只好拔掉电源,装上,按住音量减少键和电源键。进入HBOOT, 等,点击wipe data/factory reset 选yes, 完了点击wipe cache partition ,完了,点击重启指令 ->ok了, 重新下载需要的软件,速度快多了
(2)条件的高级分离: 由于 PHP 解释器会在条件未达成时直接跳过该段条件语句块,因此 PHP 会根据条件来忽略之。要输出大段文本时,跳出 PHP 解析模式通常比将文本通过 echo 或 print 输出更有效率。 (3)整数溢出:如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。
a. jquery有一个.eq()的函数,取对应的索引的节点, 例子,$("ul li").eq(index).addClass('on'); .each()是循环,注意。 2015-03-21(2)
a. others/javascript_click.html里的文件说明 函数不能写在$(function(){
****function aaa(){} ***** //这里不能写函数, html里面调用不到这里的函数, chrome会报错:Resource interpreted as Script but transferred with MIME type application/x-js:
});
第二次了!
b. array_slice(); 定义和用法
array_slice() 函数在数组中根据条件取出一段值,并返回。
注释:如果数组有字符串键,所返回的数组将保留键名。
语法: array_slice(array,offset,length,preserve)
c. settimeout(function(), 1000)与 setInterval(function(), 1000)是什么关系?js中执行的时间是怎么样的? http://ejohn.org/blog/how-javascript-timers-work/
闭包基本写法: (function(){do something}() //定义一个匿名函数并立即执行 javascript里面的闭包概念: 就是函数用到外部变量,不需要传参就可以获取 jquery闭包: (function(cssrain){cssrain("div p").click(...);})(jQuery)
带参数: (function(形参){do somethin})(实参)
(1)点击andriod手机回退键下,检测支付成功后的回退显示,微信浏览器取消缓存设置 header("Cache-control:no-cache,no-store,must-revalidate"); header("Pragma:no-cache"); header("Expires:0"); 2015-03-18
今天在知乎上发现一个叫余弦的黑客: 这里是他的博客及兵器谱http://evilcos.me/?p=336 2015-03-13
PhalconOperationPriciple.md 讲的是 Phalcon Framework的MVC结构及启动流程分析,先收起来,简单看了一遍,对phalcon的理解深刻了许多 原地址: http://www.ituring.com.cn/article/113735 作者博客 -> http://avnpc.com/ 此作者github -> https://github.com/AlloVince 2015-03-11
(1) 网站并发压力测试
a) windows上测试并发量在apache的bin目录下ab.exe -n100 -c10 http://www.baidu.com/
b) linux下直接./ab -n100 -c10 http://www.baidu.com/
(2) 微信支付最新文档 http://wxpay.weixin.qq.com/api/index.html
(3)微信核心类中,注意前面所有请求的appid都是小写,最后一个获取pamameters时,需要大写appId!
a: 微信支付php版demo中的问题:
-
WxPayPubHelper.php中,postXmlCurl函数,curl_close($ch)执行了多次,第二次执行的时候出错了。(应该)
-
WxPayPubHelper.php中,getShortUrl获取postXML数据后,需要对返回值做判断,然后再取值,否则抛异常(新发现)
-
WxPayPubHelper.php中,postXmlCurl函数 CURLOP_TIMEOUT修改成CURLOPT_TIMEOUT(已改)
-
phpdemo中checksign()添加判断returncode的逻辑(新发现) b: 微信支付最难的就是获取预支付id (prepay_id)
(1) http://www.sitepoint.com/whats-best-programming-language-learn-2015/ 2015年前景。就像结尾说的:don't worry about your choices:just build something! 2015-03-07
(1)phalcon开发例子 (2)开始用phalcon框架进行开发。 (3) hasMany(1-n), hasOne(1-1), belongTo(n-1), hasManyToMany(n-n) (4)事务处理挺难的 2015-03-06
ecmall 中获取当前登陆用户id$user_id = $this->visitor->get("user_id");
(1)明善的微信支付,不给我ftp,做起来太慢了。公司自己应该申请个微信支付,这样下次不管是什么框架,都可以本地测试完了,一迁移就ok了。像现在,调一点,测试一点(中间包括他们审查),浪费太多时间了,而且调试的效率差到极点。
http://61.19.1.116/ 长城,你发现我了么?求你把我也屏蔽了。
效率有点低。不够专注。不能多管齐下。收点心。
用PHP实现弹出消息提示框的两种方法 a.echo <script>alert("提示内容")</script>; b.echo <script language="JavaScript">;alert("这是";location.href="index.htm";</script>;; 2015-02-25
新年计划: (1)bootstrap用于实战
(2)git开始用于项目开发
(3)laravel4开发一个网站
(4)phalcon开发一个网站, 并作为自己博客网站的php框架
(5)linux服务器
(6)c入门课程学完
(7)微信支付
(8)数据结构与算法分析,做完习题
(9)手机网站
如何重新安排一周计划?
史蒂芬。柯维提出过一个生命罗盘的概念,对生命而言,我们不应该把精力放到做这件事的方法对不对,而是要探讨一下,做这件事对不对,是否有必要去做。把精力和时间放到生命中最主要的事情上,创造均衡圆满的人生。
当你看到这篇文章之后,希望你能拿出30分钟的时间,安排一下本周或下周的计划,找到你生命中的罗盘是什么?
(作者:史蒂芬。柯维)
步骤1:与使命连结
犹太裔的意义疗法学说发明者维克多埃米尔·弗些克尔医师(ViktorEmilFrankl)曾在第二次世界大战期间,经历奥斯维辛(Auschwitz)集中营劫后余生后,以一位心理治疗师的角度,探讨究竟是什么力量,让少数人能从纳粹集中营存活。
他发现原因并非是健康、智力、生存技巧,而是有志未竟的“使命感”。也就是说,每一个人都是有其使命而来到这个世界上的,每一个人都有为了别人而活的使命,面临人间炼狱的考验能够活下来的幸存者,多是因为保持着使命感而能生存下来。
柯维主张,“使命,是时间管理的基础,这不仅是一星期的生活,同时也反映了我们对于人生的态度与整个人生的看法。对于想探索时间管理深层意义的人,柯维建议不妨思索自己最在意的是什么?人生意义何在?不同于速成的时间 管理技巧,而是从使命探讨生命的本质。
柯维建议我们不妨自问:
1.生命中,最重要的事情是什么?
2.人生的意义何在?
3.我希望成为什么或是完成什么?
如果不太习惯思考这样的问题,不妨换个方式问:
-
我觉得人生中最重要的3件事情是什么
-
我的长期目标是什么?
-
我觉得人生中最重要的人际关系是什么?
-
在我的一生中最希望自己有什么贡献?
-
我最希望得到的感受是什么?
-
假使我只剩下6个月的生命,这一星期我要做些什么事情?
步骤2:认清角色
你可能是妻子的先生、女儿的爸爸、母亲的儿子、公司的高阶经理人、学校的家长会长、扶轮社的社友、慈善团体的义工,认清自己有这么多个角色定义,将有助于对人生的圆满有更多的整体观,知道时间管理有助于角色的动态平衡:同时,角色的定义也正能突显出重要但不紧急的范围。
此外,每个人最好找到一个扮演好其他角色的基础,也是每个人共同都有的,柯维称其为“利器”,包括了生理(例如运动)、社会情感(例如亲情)、心智(例如阅读)、心灵(例如打坐)4个层面,这并非立刻能立竿见影,而是我们必须投资心力、时间,以扮演好其他角色的基础。
步骤3:设定目标
接下来可以思索,这一星期当我扮演每一种角色时,可以做哪件事能产生最大的效果?接下来填写目标栏,最好将目标限定在一、两个最重要的目标。填好之后,可以思考以下的问题:
周计划表:
1.如果我在下星期完成这此目标,会有什么结果?
2.我对自己的生活会有什么不同的感受?
3.如果我只完成了部分目标,会有什么结果?
4.这会对我的人生产生积极的影响吗?
5.如果我持续每星期都这么做的话,会有什么结果吗?
6.我会比现在过得更好吗?
步骤4:做好周计划
一个广口瓶如果先放进了许多的小石头、沙子和水,就无法放入大石头。反之,如果先放进几个大石头,再依序放入小石头、沙子和水,还能填满大石头之间的空隙。
如果我们的观念是做得越多越好,但是做的都不是最重要的事情(小石头),做再多也没有意义,生命中最重要的事情才是当务之急。
因此,我们应该将占满时间的“重要且紧急”与“紧急却不重要”为重心的生活逐渐移到重要但不紧急的第二象限为重心的生活。
做好周计划之后,不妨思索:
1.做完计划之后,我对这样的一周生活有何感受? 2.如果我每星期都计划好每一种角色的重要但不紧急的目标,而且确实执行,对生活会发生什么影响? 3.我是否认同“先放大石头”的道理?这个道理如何帮助我完成重要的事情?
步骤5:实践诚信原则
诚信原则就是以自信泰然的心态将使命投注于每一刻,如果每天一开始,先做以下3件事情,便能提升面临实际抉择时,更能省思内在的罗盘:
1.省思一天的生活.在一日之初花点时间检讨行程,审视生命的内在罗盘,看清楚方向并调整心态,因应不可预期的挑战。
2.安排事情的先后顺序:确认自己要做的事情究竟是重要但不紧急,还是“重要且紧急”,这样才能确保避免被“不重要却紧急的事情用障眼法蒙骗。
3.拟定一日计划表:左栏排出必须在特定时间内完成才有价值的活动,右栏列出日之中可做的第一、二象限的事情。
即使一天当中发生了许多迫使自己必须重新规划计划的状况时,善用第一象限(重要但不紧急)时间管理法,可以协助我们分辨哪些才是真正重要的事情。
步骤6:评估
一周结束时可以探讨以下的问题:
1.我完成了哪些目标?
2.我遭遇到哪些挑战?作为自己的反省,并开始下周的使命检讨与安排
3.我做过哪些决定?是否将最重要的事情列为当务之急?
重要的事情一定要“找时间”去做,而不是等“有空时”去做。因此,时间管理的目的,并非只是被时钟控制,因为时钟代表的是我们的承诺、时间表、目标,这是属于时间管理的层面;罗盘代表了价值、使命、信念、良知、方向,也代表价值观与生活方式,如果心中只有时钟却没有罗盘,恐怕会浪费许多时间却达不到人生的目标。
(1)a.微信支付php版jsAPI,公共类155,821行CURLOP_TIMEOUT-> CURLOPT_TIMEOUT;
(1-1) 公共类里171,175行重复;
b.js_api_call.php里面的第91行js有错: if (typeof WeixinJSBridge == "undefined") -> if (typeof('WeixinJSBridge') == "undefined")
(2) ecmall的real_ip可以获取当前用户ip,用于注册再好不过
(1)js事件触发事件,用于壹起网非单独登陆页下需要身份验证的判断。 (2)文档格式要注意统一 (3)变量命名规则统一,要么驼峰,要么杠. (4)系统有的函数要熟悉。相同功能的函数不要重写。
(1)mobiscroll是一个手机端的日期插件,挺不错的一个插件. (2) mobiscroll-2.5.2-IncreasedChineseSupport 中文手机日期插件精简版 #(3)serialize()方法用在手机端时,要注意name力的元素。不能写错。 (4)zepto.js与jquery-1.9.1.js冲突,这时,应该考虑用原生的js去操作. (5)周六是壹起网完成的期限
(1) 手机端垂直方向不可以拉动时,找到此元素外层(如div)添加以下css overflow-x: hidden; overflow-y: auto; (2) 按钮类型一定要设置type=button,否则不指定action值的情况下,刷新当前页,ajax调用时将直接携带所有serialize()格式化的数据跳转,造成不必要的问题。
101个mysql调节和优化 http://www.linuxeden.com/html/database/20150121/158558.html
(1)yiqihd的show页面:layer的ajax返回别用json格式, (2)php 端返回数据时,最好用echo "数据";exit(); 不要直接用exit("数据"); 例子: exit(3)整形返回时,就会变为空值,得不到数据
做了个梦,梦里屠龙 (1)hBuilder (2)node.js
zepto.js 与jquery很相似。 $("#id").bind('click', fucntion(e){ alert(e); });
(1)php序列化数组反序列化可以直接存取数组,非常方便 serialize($array) unserialize($array) (2)checkbox, radio,select表单选项,disabled, readonly,(disabled会禁止提交数据)
(1) smarty直接输出固定格式时间 {$project.add_time|date:Y/m/d}
简单瀑布流代码
vim修改文本的速度!
天下代码,漏洞可破,为快不破!
围,有输有赢
有些人的脑子啊!灌水的? 需求想改就改?想修就修?人才还是人菜?
(1)分辨率是个什么概念? 一直搞不清楚分辨率的概念。 (2)DW CC查询文件夹下的字符串速度比vimgrep快很多,vim要怎样改变查询的速度呢。。。。。。
小问题找stackoverflow, 架构找quota 。我觉得选择和集中很困难。
为了在成为高手这条路上走的顺畅,事实上有三个关键点:
一是要有一张全局性的地图,以便选好方向;
二是要知道都有那些坑,好绕开它,免得掉进去。
三是要有足够的热情和动力,能坚持走下去。
对需求要有一个明晰的解读。否则,会有大量返工。这是得不偿失的。太浪费了。
抢不过啊。速度有问题。没高铁票了啊。时间宝贵。一错过,就失去。
choetech的人在想什么啊。跑去测w3c,百度www.baidu.com放上去也得出60,70个错误
到了这个年头,突然感觉:钱这东西,周围的环境逼着你去挣。特别是大山里走出来的娃儿。
注意身体。最近熬夜太晚太多。
(1)对choetech小刘已经无语了。再烦我,砍死他的心都有。
张良的配音太给力了, 能让人怀孕般的朗诵,Amazing!绝了~
(2) choetech小刘,我真的想砍死你了。 整天没事烦我。小bug也发几个信息。回个半天信息没说明什么问题。 补你的项目比登天还难。有完没完了? 整天我们boss要完成这个,我们boss要完成那个。boss,boss,boss,boss算西个东西? 在烦我,黑死你们网站!
"空虚感是一种渴望被喂养的感受,你越喂养它,它越强壮。你不是退出游戏后有空虚感,而是进入游戏前就有空虚感了,你玩游戏的过程是在喂养这种空虚感,换来那一段时间内它泛起来。
成就感的强烈度来自于结果的反馈强度,而真实度很大程度来自于过程中的付出多少。"
围棋先计算后下手的思维习惯和程序大同小异。这是二者的最讲究的地方。
这个blog写的不错。http://www.nowamagic.net/
Hacker 学习发展流程图(../others/hacker.html) 瀑布流的原理相当简单,有三种常用办法
-
传统多列浮动。即 蘑菇街和哇哦 采用的方式。 各列固定宽度,并且左浮动; 以一列中的数据块作为一组,列中每个数据块依次排列即可; 更多数据加载时,需要分别插入到不同的列上;
优点: 布局简单,无需明确知道数据块高度,当数据块中有图片时,就不需要制定图片高度。 缺点: 列数固定,扩展不易,当浏览器窗口大小变化时,只能固定的x列,如果要添加一列,很难调整数据块的排列。 滚动加载更多数据时,还要指定插入到第几列中。
2)CSS3定义。 W3C有相关的文档
由 chrome/ff 浏览器直接渲染出来,可以指定容器的列个数,列间距,列中间边框,列宽度来实现;
#container {
-webkit-column-count: 5;
/*-webkit-column-gap: 10px;
-webkit-column-rule: 5px solid #333;
-webkit-column-width: 210px;*/
-moz-column-count: 5;
/*-moz-column-gap: 20px;
-moz-column-rule: 5px solid #333;
-moz-column-width: 210px;*/
column-count: 5;
/*column-gap: 10px;
column-rule: 5px solid #333;
column-width: 210px;*/
}
column-count 为列数;
column-gap 为每列间隔距离;
column-rule 为间隔边线大小;
column-width 为每列宽度;
当只设置 column-width 时,浏览器窗口小于一列宽度时,列中内容自动隐藏;
当只设置 column-count 时,平均计算每列宽度,列内内容超出则隐藏;
都设了 column-count 和column-width,浏览器会根据 count 计算宽度和 width 比较,取大的那个值作为每列宽度,然后当窗口缩小时,width 的值为每列最小宽度。这边其实很简单,简易自己尝试下,详细可参考 https://developer.mozilla.org/en/CSS3_Columns 中的说明。
优点:
直接 CSS 定义,最方便了;
扩展方便,直接往容器里添加内容即可。
缺点:
只有高级浏览器中才能使用;
还有一个缺点,他的数据块排列是从上到下排列到一定高度后,再把剩余元素依次添加到下一列,这个本质上就不一样了;
鉴于这两个主要缺点,注定了该方法只能局限于高端浏览器,而且,更适合于文字多栏排列。
3)使用绝对地址。即 Pinterest, Mark, KISS采用的方式
可谓是最优的一种方案,方便添加数据内容,窗口变化,列数/数据块都会自动调整;
缺点:
需要实现知道数据块高度,如果其中包含图片,需要知道图片高度;
JS 动态计算数据块位置,当窗口缩放频繁,可能会狂耗性能。
KISSY.Waterfall 实现思路 KISSY 的 Waterfall 组件主要包含两个部分,一个是对现有数据块进行排列计算各自所在的位置; 二是下拉滚动时,触发加载数据操作,并把数据添加到目标容器中。
-
数据块排列,算法步骤简述下:
初始化时,对容器中已有数据块元素进行第一次计算,需要用户给定: a,容器元素 — 以此获取容器总宽度; b,列宽度; c,最小列数; 最终列数取的是容器宽度/列宽度和最小列数的最大值,这样保证了,当窗口很小时,仍然出现最小列数的数据; 获得列数后,需要保存每个列的当前高度,这样在添加每个数据块时,才知道起始高度是多少; 依次取容器中的所有数据块,先寻找当前高度最小的某列,之后根据列序号,确定数据块的left,top值,left 为所在列的序号乘以列宽,top 为所在列的当前高度,最后更新所在列的当前高度加上这个数据块元素的高度,至此,插入一个元素结束; 当所有元素插入完毕后,调整容器的高度为各列最大的高度值,结束依次调整; 性能效率上的注意点: a,如果当前正在调整中,又触发了 resize 事件,需要将上次调整暂停后执行这次调整(见 timedChunk 函数); b,resize 触发会很频繁,可以将回调函数缓存一段时候后执行,即当这段时间内多次触发了resize事件,但回调函数只会执行一次(见 S.buffer 函数)
-
异步加载数据,前面讲的是如何对容器中已有元素进行排列,但很多情况下,还需要不断加载新数据块,为此专门设计了一个独立的模块 KISSY.Waterfall.Loader,其实这个功能就更简单了,仅包含两个步骤:
绑定滚动事件,并确定预加载线高度值,即滚动到哪个高度后,需要去加载数据,其实这个就是列的最小高度值,这样当前滚动值和最小高度值比较一下即可判断出来,是否要触发加载数据; 加载数据,为了不对数据源做太多限制,完全由使用者自己决定数据源从哪边获取和其格式,这样更好的方便用户使用。为此,该组件只提供一个load(success,end) 接口,怎样load 由用户自己去定义,而其中的 success/end,分别给出如何添加新数据(suceess 即同 addItems)/如何停止加载的接口。这样真是太方便了~~
我在demo的php_waterfall里面采用的是第三种办法。
(xx)我想弄死choetech 小刘了~, 脑子里面想的是什么?
问题永远是不会完结的。只是探寻问题解决的办法,然后选择一条最优化的途径去捕捉。 所有的问题都没有想象的那么难以攻克。过程多数不容易,甚至是非常痛苦的,代价有时异常昂贵。但也就是这种苦苦探寻,能在最终获得解决的一刻给人一剂强心的快感!
可以逆转的一盘,总是比优势下赢棋来得开心。 JSbeauty反压缩js代码, css用DW左侧源代码格式反解压
点击图片查看大图的,做了几个,没一个做的满意的。倒不如用fancybox来的简洁。更何况choetech有多种颜色的产品图。参数多了一层。传值多了许多操作。
新年里的头一天班是在星期天。所有的问题都是由于未知产生的。你还真别说,客户的许多无理的需求,能直接刺激程序上的变化。做出来了也就那么一回事。当无理的需求获得程序上的满足时,技术也能得到相应的提高。
几乎所有的问题解决都来自一天天的积累
没有什么事情是一蹴而就。都是慢慢解决的。没有完美,我们只是在追求完美的路上多走几步。因为有缺陷,才有不断的追求。 除去稳定性,还有什么理由使我们停留在旧有的框架上这么久?,永远别忘了学习,一天不学,就感觉明天起要追赶一个月。这个时代,这个行业的变化太大了。
明善的项目做的琐碎啊。几乎所有的项目都是做些修修改改。指使人忙碌,但毫无价值的改善。浪费双方的时间。我应该拥有自己的项目。自己的事业。
这个人,写的不错:程序员接私活经验谈。(MobiLink数据同步) http://www.cnblogs.com/txw1958/archive/2012/11/06/programmer-personal-work.html
choetech小刘,能找出不少的问题。这些问题我之前都没想到。。。。。。 写的时候,程序的健壮性考虑得不周到。 观察事物 - 分析分解事物 - 得出解决方案,且把每一个步骤一步一步“写”下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事儿。
中午去华润万家,郑经理说我这辈子都挣不到250万。 我在回来的路上回应:40岁之前为界限,如果我能挣到250万净资产,他的全部家产就归我所有。张超在场做证。
这话,他说大了。看我不能看大了。但尤其不能看小了。我今年27岁。用接下来的13年是时间挣250万对我来说不是一个不可能完成的事情。你,看好了!
明善的微信绑定搞定了。 解绑,切换账号并没在需求内。但非常必要了解。 下一步:瀑布流bug修正及微信支付。重头戏是微信支付。 今天见识了一个很简短的瀑布流代码。
当$(window).scroll(alert("mm")); 在微信端和手机端不起作用时,从stackoverflow发现有这个解决办法:
以$(window).on('scroll mousewheel DOMMouseScroll touchmove',function(){alert("mm")};替代 之前jquery版本用的live绑定->jquery-1.11.1.min.js中改成了on绑定了
(1)choetech产品重定向页面,修改amazon购买链接默认为第一个。
$(".btn-gobuy").click(function() {
var url = $(this).attr("url");
var oCountryBox = $(".country-box");
var def_url = oCountryBox.children('input:first-child').val();
url = url ? url : def_url;
//if(url=="") return false;
window.open(url);
});
(2)获取子节点第一个input : $(".btn-bobuy").children("input:first-child"); (3)js中数组操作: array.push()压入 array.slice()截取
(4)同颜色切换问题已经解决。动用动态CLASS,获取同颜色的图片为一组。
choetech图片的做法真是。。。。。。。, 面包屑一样的代码。 差距很大。
(1)AMD/CMD a. AMD Asynchronous Module Definition异步模块定义, 所有的模块将被异步加载,模块加载不影响后面语句运行。所有依赖某些模块的语句均放置在回调函数中。
b. CMD 在CMD中,一个模块就是一个文件,格式为: define( factory );
(2)微信支付 php版本
(1)大体上讲,利用插件可以实现两种功能: a.改变原始数据内容 b.改变原始控制流程
window.history.go(-1)回退页面,有的页面不需要php那么麻烦