说起来,上次参加聚会到现在已经过去两个月时间了,ThinkInLamp聚会是每个月的第一周的周末举办,这是我第二次参加,在安居客公司的会议室里。
与会者嘛,还是安居客的开发占了大部分,毕竟天时地利人和啊。确实,如果有这样的聚会放在公司里,一来可以让单位的开发人员进行学习二来也可以了解认识一下其他开发人员,对于公司来说几乎没有任何投入成本,但所获颇多(毕竟真要请人来培训花的钱更多。。)
这次聚会其实就三个内容,一团队,二求职,三敏捷开发
从上个月的聚会开发stingchen就开始有他的分享了,可惜7月份无缘参加,(那次还有逍遥冰心讲的领域驱动方面的内容,也没有听到。惋惜,所以这次我怎么样也得来了。)sting介绍了团队建设方面的一些要点,以及注意事情,引起了很多人的共鸣,看来很多人在工作中遇到过类似问题啊(看来领导们很多)
板子介绍的是不要让工作外的事情来影响工作。总结起来就是有一颗平常心,不以物喜不以已悲,了解自己的真实想法做下去,不要频繁跳槽。
最后的敏捷开发就是讲的如何让工作变得更有效率。在讲之前做了一个游戏,每组8个人,每组中又有不同的分工,一个客户,一个客户老板,三个经理,每个经理下面有一个工人。然后分组开始数硬币(当然是有一定的规则)。客户将硬币交给工人时,客户与客户老板同时开始计时,当第一个工人开始翻硬币时,对应的经理开始计时。当第一个工作完成任务后,把硬币交给第二个工人时,第二个工人对应的经理开始计时。当第一个工人全部把硬币给了第二个工人时,第一个工人对应的经理停止计时。客户在收到第三个工人第一枚硬币时结束计时。当最后一枚硬币到达客户手里时,客户经理停止计时。然后做了五次不同方式的游戏,比如从左手到右手再到两只手一起,等等。DannelTeng的意思就是想让我们把工作能够细分,而且并不是在细分全部结束后再下达任务,这样的工作效率会有提高。
突然想起几件事,一小时学的语文课文里有个统筹方法,好象与此类似。还有就是在夜大学习的工商管理中的管理学,都有涉及类似方面。工厂运作本来就与程序开发有类似之处,毕竟理论是一样的,只是在实现的方法中有不同的方式而已,就如那句:戏法人人会变,手法各有不同。当然,如果没有经过培训过的人,可能在工作过程中也会摸索出类似的方式,但如果经过事先培训,岂不是会更加增加工作效率 ?
最后再做一个广告,锅巴哥哥准备在10月份左右举办一次数据库的专题会,他说到时候会请一些数据库方面的专家来与大家分享和讨论数据库设计方面的事情。也坦言在PHP开发中,其实DBA处于一个很尴尬的地位,即DBA在开发中几乎是没有介入开发中的机会,往往数据库的设计都是由开发人员自行设计,这导致在遇到问题时无法进行调优。而这次分享会上,就是请不同行业的专家们来分享如何更好的设计数据库,以及一些调优方法 。
顺便,锅巴哥哥说的原来从最初设计MYSQL时就是为了电信级的应用。我承认我真不了解这个背景,我想,恐怕80%的PHP开发者不了解MYSQL设计的背景吧。了解的最多的恐怕就是开源、免费。想着MYSQL被我们用成这样,不知道那些数据库设计人员是否会很郁闷。
估计,下一周就会有今天分享的PPT和视频出现在thinkinlamp官方网站了。你也可以到官网查看往期的分享(官网:www.thinkinlamp.com)。
知道分子的这个事例事实也经常遇到过。只是谁都没有提出来当成一回事
在自己的机器上,各种不同版本的PHP一直存在着,或许,相对稳定的也就apache和mysql吧?每次要升级前都看着changelog,但即使这样,也会有或多或少的问题发生,然而,在公司的版本库里,测试机里等等中早就存在着不同版本的PHP,只是可能从来就没有注意过罢了。
升还是不升这是个问题,但如果真的版本不对了,出现的问题也就稀奇古怪了,所以,保证版本号一致还是有着非常重要的作用(如果为了新特性需要升级,那就通知所有的人一起升,最终仅保留一台两台有明显记号的,旧版本的服务器专门用来调试,开发人员有虚拟机的也通通升级到统一的版本号里,一切为了稳定 )
下面是知识分子的内容:这个版本太新了
以前偶尔听到同事 A 问同事 B,某软件出新版本了,我们要不要升级?同事 B 果断地回答,这个版本太新了,我们还是别急着升级吧。同事 A 深以为然,刚出来的版本就升级,万一出个故障谁负责?何况现在这个软件跑得好好的,没事最好别折腾。后来 A、B 两人都忘了这件事,也就没有了下文。
再后来,同事 C 在另一处需要用到该软件,去官方网站上下载了“最新稳定版”(也就是前面那个“太新了”的版本),用着没问题。又过了一段时间,这个软件又出新版本,同事 D 问同事 E,我们要不要升级?同事 E 说,这个版本太新了,你懂的。于是同事 D 拈花微笑,信受奉行。
如此循环往复,同样一个软件,在开发/测试/生产环境里运行着无数个“太新了”的不同版本。
先不谈管理成本,“这个版本太新了”是否构成不升级的理由,颇值得解析一番。为什么要出新版本?不外乎安全漏洞 修补、bug 修正、新功能三者(或混合)。安全漏洞显然是要尽早尽快修补的,明知有安全漏洞而不及时修补,无异于后门洞开等待爆菊,有受虐倾向。整体或所调用部分相关 的 bug 也是要修补的,紧急程度视 bug 可能造成的损失大小而定。新功能则要看未来是否会用到,才决定要不要升级。
“这个版本太新了”之所以被接受,其中也有一定的合理成分。“太新了”指的是新版本没有经过完整的兼容性、稳定性和性能测试,也许会对现有应用造成影响。这个意思永远是对的,或者不客气地说,就是一句废话。任何一个新版本软件都一样,不去做测试你怎么知道有没有影响?
同一个软件,不同的版本,随意分布在多个环境中,这无疑增加了管理的复杂度,当然也有人认为,这体现了“个性 化”。复杂度也好,“个性化”也罢,都是效率的大敌。标准化的高效运维,应该是同一个软件、同一个版本,并且有统一机制进行追踪、测试、升级,保证安全漏 洞、bug 得到及时修补,新功能尽在掌握。
怎么说呢,netbeans这个IDE工具是目前我用的时间最长的一款IDE,以前也用过其他的一些IDE,不过,在算上版权问题后,这是目前唯一一款值得推荐的IDE吧?komodoEdit和netbeans相比,功能差了很多。当然各人习惯不一样,有的人喜欢拿GVIM来配置,把它配置成一款符合自己使用习惯的IDE,这,我也没话说。
正好看到cnbeta上说了6.9.1发布了,仔细看了一下更新内容,对于PHP来说,只有一小部份的更新,那就是:支持 PHP Zend 框架。这让我很吃惊。事实上,虽然我挺力挺这款IDE,但对他还是有抱怨的,或许在以前的贴子里也发表过,这里我再发发牢骚。。
用到现在nb让我郁闷的有几件事
1、同一项目中不能存在两种编码的文件。。。否则读取可能会是乱码(不过,这个能忍,自己的项目能够保证,主要是别人的)
2、耗内存,还有就是项目扫描,好几次就死在这上面了,卡死了
3、自动換行。配置里的自动换行永远是灰色的。。明明有这玩意却不能用。太让人郁闷了。。。
其他。。。好象还都能忍受 。在6.9更新的时候(http://wiki.netbeans.org/NewAndNoteworthy69#PHP),我们也看到,6.9对于PHP最大的更新其实就是formatter。格式化代码更优秀和准确了(在团队中,可以更方便的把代码格式化成同一风格,方便后来人),还有一个就是改进了语法检测。
虽然问题有一堆 ,不过,我还是推荐它。除非出来一款更好的(还要能跨平台,比如当我用LINUX进行IB的时候,我也有功能强劲的IDE可用)
做网页开发的时候不可避免会用到JS,当然更不可避免的就会遇到JS错误。当你打开网页时,IE左下角的感叹号是不是让你很郁闷?怎么调试就成了必修课了。
一般来说,IE的出错信息还是能够基本定位到代码中,FF的相对定位的就更准确一些。只是有时候IE报错为0行或者N行(这个N超出了页面行数)时,就比较让人郁闷。而更头疼的是,如果这个代码在FF完全正常,那真是想死的心都有了。
IE下面,可能更多的时候还是利用微软自己提供的工具来进行查错:ms script debugger,只是知道的人很少,用的人更少。现在firebug lite已经登录IE平台(其实也不算是登录,只是加载firebug lite类库而已。不过,这已经能解决大部分问题了)。FF下面嘛,那就主推firebug,随着firebug的流行,一些附加的东西都有了,如firephp,firecookie,eventbug等插件也越来越让人离不开它。safari和chrome这些基于webkit的浏览器。也都有着自带的js调试工具,可用性我就不太清楚了。没用过,更多的时候只保证IE和FF正常就OK了。webkit虽然份额随着国内所谓双核浏览器的开发而增长的较快,但真正的使用者还仅限于那一小撮人群而已。
于是,这,又成了firebug等的天下(IE8已经自带调试工具,快捷键与firebug一样,界面差不多)。
不废话,下面是我转贴的文章,介绍了一些常见的调试方法,其实也不能算是调试,也可以说是代码的一些写法罢了。【略做整理】
A 使用alert() 和document.write() 方法监视变量值
如果要中断代码的运行,监视变量的值,则使用alert() 方法;
如果需要查看的值很多,则使用document.write() 方法,避免反复单击“确定”按钮;
B 使用window.onerror 事件
当页面出现异常时,onerror 事件会在window 对象上触发。它能在一定程度上告诉开发者相关的错误信息。
示例:
JavaScript代码
- <script type="text/javascript">
- function myerror(_message,_url,_line)
- {
- alert("错误信息:" + _message
- +"\n错误的URI:" + _url
- +"\n错误的行数:" + _line
- );
-
- return true;
- }
-
- window.onerror = myerror;
-
-
- window,onload = test;
- </script>
注意:在IE 中,触发error 事件后,正常的代码会继续运行,所有的变量和数据都会保存下来,在其onerror 事件处理方法中可以正常访问到;而在Firefox 中,触发error 事件后,一切都结束,所有的变量和数据都将被销毁。
C 使用 try...catch 语句找错误
示例:
JavaScript代码
- <script type="text/javascript">
- try
- {
- alert(触发异常);
- }
- catch (_ex)
- {
- var err = "错误信息";
- for (var i in _ex)
- {
- err += "\n参数名:" + i
- + "\t参数值:" + _ex[i];
- }
- alert(err);
- }
- finally
- {
- alert("finally 总是会运行");
- }
- </script>
注意:try...catch 并不能很好的处理JavaScript 的语法错误。
示例:
JavaScript代码
- <script type="text/javascript">
- try
- {
- alert("触发语法错误"));
- }
- catch (_ex)
- {
- var err = "错误信息";
- for (var i in _ex)
- {
- err += "\n参数名:" + i
- + "\t参数值:" + _ex[i];
- }
- alert(err);
- }
- </script>
该示例并没有进入catch 块中。
D 使用相关调试器
在IE 和Firefox 浏览器中,可以使用相关的调试器或插件对JavaScript 进行调试。
● 在Firefox 浏览器中,可以使用其自带的“错误控制台”。操作步骤如下:
打开Firefox 浏览器 → 在菜单条“工具”中 → 选择“错误控制台”即可。
在没有其他插件的情况下,其自带的“错误控制台”是一个非常不错的选择。
另外,在Firefox 浏览器中,还有一些很不错的调试器,如:Venkman、Firebug 等。
Venkman 调试器安装后,可以在Firefox 浏览器 → 在菜单条“工具”中 → 选择“JavaScript Debugger ”命令启用;
Firebug 调试器安装后,可以在Firefox 浏览器 → 在菜单条“工具”中 → 选择“Firebug”→ 选择“打开 Firebug”即可;
● 在IE 浏览器中,可以使用 Microsoft Script Debugger 调试器
Microsoft Script Debugger 是微软随IE 4 一同发布的一个IE插件,可以从微软的官方网站上免费下载。
下载安装以后,必须将IE 浏览器的调试选项打开才能使用。操作步骤如下:
1> 打开IE 浏览器 → 选择菜单栏的“工具”→ “Internet 选项”命令 → “高级”选项卡 → 将“禁用脚本调试(Internet Explorer )”复选框中的勾去掉即可。
2> 当IE 浏览器正在浏览页面时,运行Microsoft Script Debugger 调试器工具即可进行调试。
在Microsoft Script Debugger 调试器的 Running Document 面板中选择开启的页面文件(只读),然后按F9 可以设置断点调试。另外,其Command Window 面板也是一个很有用的功能,它能在代码断点停止时,在其中输入变量名并回车,便可看到此时变量的值;Command Window 面板甚至可以接受简单的JavaScript 命令。但Microsoft Script Debugger 调试器自身还存在一个bug 问题。
原文出自:http://www.cnblogs.com/xugang/archive/2010/08/05/1793392.html
ipad 终于升级了。升级前,我真的很紧张。
但还是忍了。打开itunes,让我升级到9.2.1,行,我下载。。。
然后让我更新到ipad 3.2.1 OK,我继续。。。
然后郁闷的事情就来了,我一看,MMD,更新包要456M。于是乎就从早上下载到晚上,终于下完。搞定。。
然后重启后打开一个网站,好象网站叫什么:http://www.jailbreakme.com,嗯你懂的。
然后把以前装过的软件再重装一遍,如此而已。。。
很方便,可惜ios4还没有推出,没法多线程,虽然我在微博上说意义不大,但在看到那个苹果皮的软件后,我觉得ipad的多线程估计也挺好玩。比如他们的软件可以直接支持短信?猜测而已。。或许是我太鸡动了呢?
不知道苹果皮?请看http://www.cnbeta.com/articles/118506.htm,让你的IPOD动起来吧