web的调试一直采用的是火狐firebug的调试,现在火狐越来越臃肿.现在在领导的启发下,平常都用chrome dev tools调试的,也是挺方便,转载下chrome的调试技巧做下记录.Google Chrome在招来了FireFox,FireBug的项目组领导人John J. Barton后,Chrome Dev Tools也变的越来越好用,越来越方便了。本文根据Google I/O上对Chrome Dev Tools的介绍(http://www.youtube.com/watch?v=N8SS-rUEZPg),和相关PPT:http://chrome-devtools-io2011.appspot.com/template/index.html 整理而来。(参照的Chrome版本为: 19.0.1084.52)实时****CSS Style编辑选择一个Dom,可以对Dom进行编辑和操作,实时修改Css Style, 同时CssStyle可以保存变更历史版本。保存变更历史版本:同时支持可以在Chrome 载入的Css文件正文中自由的修改。 网络交互当一个页面载入时,所有发出的请求可以在“Network”里监听到,同时下面有”All”, “Documents”, ”Stylesheets”, “Images”, “Scripts”, “XHR”(XMLHttpRequst), WebSockets, Other, 这几个分类,可以清晰的把网络请求进行分类,同时可以看到每个请求的详细情况。 控制台在控制台里可以方便的使用命令来查看Dom,执行JavaScript, 等等操作, Console API: http://getfirebug.com/wiki/index.php/Command_Line_API copy(), dir(), inspect(), $0, Script DebuggingScript Debugging 脚本调试功能,这个功能可以说是Chrome Dev Tools里最实用最强大的工具了:1. JavaScript Breakpoints, Break on exception, JavaScript Pretty Print.Break Points:断点在需要设置的地方点一下即可,Break on exception:当此功能开启时,有Script异常出现时,自动会在Exception处断住,方便差错。JavaScript Pretty Print: 当JavaScript被压缩后,非常难阅读,Pretty Print使JavaScript按照语法和关键字重新换行并重排,使得压缩后的JavaScript仍然可以进行阅读。 2. DOM BreakpointsDom元素断点,经常有多处JavaScript操作同一个Dom元素,如果要在JavaScript上下断点,要下好几个地方,不好断到想要的地方,在Dom元素上下断点就方便多了:Break on subtree modifications, Break on attributes modifications, Break on node removal, 可以方便的断到操作Dom的JavaScript。 3. XHR Breakpoints, Event listener breakpoints:XHR Breakpoints,可以方便的断到XMLHttpRequest Ajax请求。Event Listener Breakpoints, 可以方便的断到各种Event。 4. 查找JavaScript使用Ctrl+Shift+F, 打开查找窗口, 查找支持正则表达式:查找函数定义:Ctrl + Shift + o查找文件: Ctrl + o 5. 实时修改 JavaScript代码页面外链JavaScript文件在 Script Panel中可以直接修改,改完后Ctrl + s 保存, 会立即生效,但是不支持 Html 页面中 JavaScript 修改,经过 Pretty print 格式化的JavaScript也不支持实时修改。 6. 自建Script文件在Console(控制台) 中输入代码的最后一行加上 //@ sourceURL=filename.js, 会在Script Panel中加入一个新的外链Script文件: filename.js, 这个新文件和其它外链JavaScript 文件一样,可以实时进行修改。 TimelineTimeline功能把浏览器处理Dom的时间轴画了出来,方便进行优化: Remote DebuggingRemote Debugging 使得Chrome成为一个WebServer,执行命令–remote-debugging-port=1337, 同时再开一个Chrome 访问localhost:1337, 就可以用一个Chrome当Host,一个Chrome当Client,在调试一些移动Web的时候非常实用。
业务场景:例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间.解决办法可以是指定插入时间,也可以使用数据库的默认时间.在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.错误的建表语句: CREATE TABLE db1.sms_queue ( Id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Message VARCHAR(160) NOT NULL DEFAULT ‘Unknown Message Error’, CurrentState VARCHAR(10) NOT NULL DEFAULT ‘None’, Phone VARCHAR(14) DEFAULT NULL, Created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, LastUpdated TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, TriesLeft tinyint NOT NULL DEFAULT 3, PRIMARY KEY (Id) ) ENGINE = InnoDB;解决办法,可以使用触发器或者其他,在此还是使用数据库的方式.建表语句: create table test_table( id integer not null auto_increment primary key, stamp_created timestamp default ‘0000-00-00 00:00:00’, stamp_updated timestamp default now() on update now() );测试:mysql> insert into test_table(stamp_created, stamp_updated) values(null, null);Query OK, 1 row affected (0.06 sec)mysql> select * from t5;+----+---------------------+---------------------+ | id | stamp_created | stamp_updated |+----+---------------------+---------------------+| 2 | 2009-04-30 09:44:35 | 2009-04-30 09:44:35 |+----+---------------------+---------------------+2 rows in set (0.00 sec)mysql> update test_table set…
推荐给oracle11的简装版给开发测试人员,不用去装那么几百兆大的原版了。 作者: iihero@CSDN, 2012.3.11. 请尊重个人劳动。如若转载,请注明原始出处。Thanks.下载地址:http://download.csdn.net/detail/iihero/4131001(免责声明):这是一个精简版的oracle11g for windows 32bit x86平台.此压缩包,仅供学习研究使用,本文作者不负任何责任。适合于开发人员使用。切不可将其用于商业用途,请遵守Oracle公司相关商业规定。如因私自将其用于商业用途,由此带来的法律纠纷或其它问题,概与本人无关.author: iihero@CSDN (iiihero AT hotmail.com; iihero AT qq.com)0. 如果你已经安装了别的版本的oracle,请自行备份注册表:[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE], 这样即算有冲突,你也可以重新导入以前的注册项而得已恢复1. 将压缩包解压至目录,设该目录值为: d:,其下将有目录:<D>/oracle/*<D>/oracle/11.2.02. 新的ORACLE_HOME将为:<D>/oracle/11.2.0运行完iihero.ora11g.bat运行完以后,(一个批处理一次安装全部完成)你需要将<D>/oracle/11.2.0/BIN添加到path里头缺省的ORACLE_SID为iihero,你可以自行修改iihero.ora11g.bat中的SID值,不要超过8个字符。3. 安装完以后,别忘了添加环境变量ORACLE_SID=iihero以及将%ORACLE_HOME%/bin添加到PATH环境变量里头,在这之后,即可使用sqlplus system/manager进入并修改密码,执行表空间、用户管理相关操作。如: 1: [sql] view plaincopy 2: D:Oracle>;sqlplus system/manager 3: 4: SQL*Plus: Release 11.2.0.1.0 Production on 星期日 3月 11 13:14:35 2012 5: 6: Copyright (c) 1982, 2010, Oracle. All rights reserved. 7: 8: 9: 连接到: 10: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production 11:With the Partitioning, OLAP, Data Mining and Real Application Testing options 12: 13: SQL>; quit 14: 从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production 15:With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开 欢迎大家试用,如果发现有什么问题,可以与本人联系。这个11g的包,既可充当server,同时也可以用作oci, jdbc,sqlplus,odbc等的客户端工具。还是比较齐全的。11g比10g的非安装包,确实大了不少。10g的时候,总共才50M不到,这不,到了11g,压缩完以后,也有100来兆。不过,不管怎样,比原始的安装包,那可是小了很多了。作者地址:http://iihero.iteye.com/blog/1450186
win8已经开始公测,我这个喜欢折腾的也很想用上一把,根据以往换系统,装个系统之后,就需要装一大堆的软件,特别像我们这种专业码农,还需要考虑软件的兼容性。升级,风险很大。我也考虑过用虚拟就安装,可我下载的是win8 64位的,虚机仅支持32位的。我的解决办法就是,先ghost备份一个系统,再进行升级。虽然win7升级win8是可以保留应用的,还是备份下安全。win7升级win8还算简单,虚拟光驱加载系统镜像,点击sources中的setup,一路按照提醒,检测兼容性之后,选择保留个人内容和应用设置,就等待系统自动安装,各种驱动也不用重新安装,我花了两个小时,就完成了。安装之后,感觉不错,喜欢win8的metra的简洁风!win8取消了开始按钮,开始按钮我是常用的,很不习惯,装个start8基本就解决了,还可以使用metra的界面。win8的使用可以参考http://www.ilovewindows8.com/的介绍。其他比如我的使用,eclipse的使用开发,oracle的使用,svn、git的版本库使用,网银也可以用,还有其他一些常用软件都使用正常,目前不能正常用的是VMware,还没开始解决,应该是有方法解决的。杀毒软件用的是数字的,虽然我一直对数字做的东西比较排斥,但数字市场运作,用户体验做的的确不错,我又何必那么较真呢?做人也一样,不能太较真了。在运行的速度上面,感觉要比win7块一些,我是通过eclipse的使用感觉出来了,eclipse的使用是比win快了许多,不知道是不是心理作用。win8的QQ也是很好用,能让人全身心的投入在交流中,如果我们的IDE工具能做成这样的就好了。无论怎么说,win8还是值得升级的,再怎么说,也算是一个正版系统啊!免费的为啥不用呢?
很久没有关注was的使用,今天收到WebSphere 开发与应用社区的推荐邮件,看到里面一些不错的资源,推荐使用was的看看啊!WAS初学-创建简单集群[sangmin214]http://www.webspherechina.net/home/space.php?uid=15618&do=blog&id=56151通往测试架构师之路[myjob]http://www.webspherechina.net/home/space.php?uid=1913&do=blog&id=56147WAS V7 分布式高速缓存[yuruli2058]http://www.webspherechina.net/home/space.php?uid=39601&do=blog&id=56134WAS初学-如何从WAS中删除一个Profile[sangmin214]http://www.webspherechina.net/home/space.php?uid=15618&do=blog&id=56132WebSphere Application Server ND版 V8安装及简单使用http://www.webspherechina.net/home/space.php?uid=15618&do=blog&id=56121WebSphere密码遗忘的2种解决方案http://www.webspherechina.net/home/space.php?uid=205&do=blog&id=56065
Hibernate 参数设置一览表,相当全的啊!推荐hibernate使用者必备! 属性名 用途 hibernate.dialect 一个Hibernate Dialect类名允许Hibernate针对特定的关系数据库生成优化的SQL.取值 full.classname.of.Dialect hibernate.show_sql 输出所有SQL语句到控制台. 有一个另外的选择是把org.hibernate.SQL这个log category设为debug。eg. true | false hibernate.format_sql 在log和console中打印出更漂亮的SQL。取值 true | false hibernate.default_schema 在生成的SQL中, 将给定的schema/tablespace附加于非全限定名的表名上.取值 SCHEMA_NAME hibernate.default_catalog 在生成的SQL中, 将给定的catalog附加于非全限定名的表名上.取值 CATALOG_NAME hibernate.session_factory_name SessionFactory创建后,将自动使用这个名字绑定到JNDI中.取值 jndi/composite/name hibernate.max_fetch_depth 为单向关联(一对一, 多对一)的外连接抓取(outer join fetch)树设置最大深度. 值为0意味着将关闭默认的外连接抓取.取值 建议在0到3之间取值 hibernate.default_batch_fetch_size 为Hibernate关联的批量抓取设置默认数量.取值 建议的取值为4, 8, 和16 hibernate.default_entity_mode 为由这个SessionFactory打开的所有Session指定默认的实体表现模式.取值 dynamic-map, dom4j, pojo hibernate.order_updates 强制Hibernate按照被更新数据的主键,为SQL更新排序。这么做将减少在高并发系统中事务的死锁。取值 true | false hibernate.generate_statistics 如果开启, Hibernate将收集有助于性能调节的统计数据.取值 true | false hibernate.use_identifer_rollback 如果开启, 在对象被删除时生成的标识属性将被重设为默认值.取值 true | false hibernate.use_sql_comments 如果开启, Hibernate将在SQL中生成有助于调试的注释信息, 默认值为false.取值 true | false**表 3.4. Hibernate JDBC和连接(connection)属性 ** 属性名 用途 hibernate.jdbc.fetch_size 非零值,指定JDBC抓取数量的大小 (调用Statement.setFetchSize()). hibernate.jdbc.batch_size 非零值,允许Hibernate使用JDBC2的批量更新.取值 建议取5到30之间的值 hibernate.jdbc.batch_versioned_data 如果你想让你的JDBC驱动从executeBatch()返回正确的行计数 , 那么将此属性设为true(开启这个选项通常是安全的). 同时,Hibernate将为自动版本化的数据使用批量DML. 默认值为false.eg. true | false hibernate.jdbc.factory_class 选择一个自定义的Batcher. 多数应用程序不需要这个配置属性.eg. classname.of.Batcher hibernate.jdbc.use_scrollable_resultset 允许Hibernate使用JDBC2的可滚动结果集. 只有在使用用户提供的JDBC连接时,这个选项才是必要的, 否则Hibernate会使用连接的元数据.取值 true | false hibernate.jdbc.use_streams_for_binary 在JDBC读写binary (二进制)或serializable (可序列化) 的类型时使用流(stream)(系统级属性).取值 true | false hibernate.jdbc.use_get_generated_keys 在数据插入数据库之后,允许使用JDBC3 PreparedStatement.getGeneratedKeys() 来获取数据库生成的key(键)。需要JDBC3+驱动和JRE1.4+, 如果你的数据库驱动在使用Hibernate的标 识生成器时遇到问题,请将此值设为false. 默认情况下将使用连接的元数据来判定驱动的能力.取值 true|false hibernate.connection.provider_class 自定义ConnectionProvider的类名, 此类用来向Hibernate提供JDBC连接.取值 classname.of.ConnectionProvider hibernate.connection.isolation 设置JDBC事务隔离级别. 查看java.sql.Connection来了解各个值的具体意义, 但请注意多数数据库都不支持所有的隔离级别.取值 1, 2, 4, 8 hibernate.connection.autocommit 允许被缓存的JDBC连接开启自动提交(autocommit) (不建议).取值 true | false hibernate.connection.release_mode 指定Hibernate在何时释放JDBC连接. 默认情况下,直到Session被显式关闭或被断开连接时,才会释放JDBC连接. 对于应用程序服务器的JTA数据源, 你应当使用after_statement, 这样在每次JDBC调用后,都会主动的释放连接. 对于非JTA的连接, 使用after_transaction在每个事务结束时释放连接是合理的. auto将为JTA和CMT事务策略选择after_statement, 为JDBC事务策略选择after_transaction.取值 on_close |…
Brad Feld的一篇文章The Rise of Developeronomics中提到了“10倍效率的开发者(10x developer)”的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving在读了之后受到启发,并向多位大牛(Ben Sharpe、Collin Watson和Jonathan Locke)询问如何成为“10倍效率的开发者”,最后得到了以下的答案。 1. 只做需要做的工作使用敏捷方法;全心全意做UX设计;沟通第一;编码也许不是解决问题的办法;过早的优化是一切罪恶的根源;选择最简单的解决方案。2. 站在巨人的肩膀上使用开源框架;使用简洁语言(如HAML、Jade、Coffeescript);不要做重复的事情(不要重新发明轮子);利用包管理器来进行公共和私有代码分配;不要任凭巨头(如微软)的摆布而修复库中的一个Bug;不要让你的雇主逼你学习;自主学习并为自己设定新的目标。3. 了解数据结构和算法如果你不知道什么时候应该使用快速排序、不懂辨认O(n2)程序、不会写递归函数,你将无法成为10倍效率的开发者。使用多种语言你才能清楚不同的框架是如何解决相同问题的。尽可能去了解底层命令(plumbing),以便能够作出明智的决定(Web框架是怎么存储session状态的?Cookie到底是什么?)。 4. 不要怕买工具,它可以节省你的时间Ben说:“昨天我花50美元买了一个位图字体工具,它帮我节省的时间成本绝对超过200元。” 5. 集中注意力不要整天开着你的电子邮件、Twitter、Facebook等,在工作时将它们最小化或关掉它们,戴上耳机。Tiny hack说:“即使不听音乐我也戴着耳机工作,这样便不会有人打扰到我。” 6. 尽早并且经常性地进行代码重构有时,你不得不放弃漂亮的代码转而去寻找真正对项目有用的代码,但没关系,如果你的现有项目中有这样的代码,最好的方式便是不要看它,并重构。 7. 只管去做将你的业余项目分享到Startup Weekend中。在我开始转到Unix和Ruby on Rails上之前,我买了一台Mac,使用Windows虚拟机花了一年时间做.NET项目。 8. 挑选一个编辑器,并掌握它高效开发者喜欢用文本编辑器胜过IDE编辑器,因为这样可以学到更多东西。无论什么情况,尽量使用键盘快捷键,因为熟练使用一件工具的前提是熟悉它。 在选择编辑器时,认真考虑并挑选最好的(Emacs或Vim),因为它们是通用的。其次,挑选你的首选平台最支持的。使用宏,不断地写代码;使用Mac上的TextExpander为整个段落创建快捷方式;使用Visual Studio或SublimeText的自动补齐功能;使用支持按行/列分割窗口的编辑器,这样你便能同时看到单元测试和代码(或模型、视图)。 一定要想清楚后再写代码。Adam说,“我有朋友在一个大项目组里工作,他们组里最高效的程序员是一个高位截瘫用嘴叼着棍子敲代码的人,他总是在写代码之前想得很仔细且很少出错。” 9. 整洁的代码胜过巧妙的代码要想让其他人能够读懂你的代码,尽量使用最少的代码来完成任务。遵循DRY(Don’t repeat yourself)的原则,使用明确定义的对象和库,将任务分解成小而简单的代码段。 10. 潜意识是强大的工具离开10分钟往往就可以解决一个问题。控制编程时间,给自己一个多姿多彩的生活,劳逸结合能让你在工作时更高效、更愉悦。当然,即便是上了年纪的程序员也知道,以最少的时间完成最高效的工作是成为10倍效率开发者的必要条件。 作为一个程序员,我觉得在职业生涯中最好的一件事儿就是从电脑前站起来,去拜访那些在某一领域有所建树的人们。 11. 推动自身和团队进步重视批评,以包容的态度接受批评并提升自己是非常重要的事情。没有这个基础,你不可能成为一个高效的开发者。一位智者曾经说过:“聪明的人善于从自己的错误中学习,而智慧的人善于从别人的错误中学习。” 英文原文:http://adamloving.com/internet-programming/10x-developers原文网址:http://www.iteye.com/news/23799
团队成了优秀团队,在公司周刊上面的介绍,哈哈!非常6+1 —营销平台小组文/技术部 顾蕾非常6+1成员从左往右依次为:尹东勇、赵睿、周健、沈凤飞、赵鹏、张乔乔非常6+1 — 6个人 , 一个营销平台 。 年龄从23-30不等 ,组成了一个团队-营销平台小组。他们的辛勤劳作:顺利圆满完成了23个营销活动,1 3个营销平台功能需求,二期割接,集中封闭三期平台建设。他们的顽强表现:一年中的250多个夜晚,出现在旭建3号办公室;无数个傍晚,啃着面包和快要冷却的快餐;每天中午, 出现在最经济的新城食堂, 拥挤在人群中排队等来一顿十块钱的便当。尹东勇-承担短信PUSH能力层、 任务调度 、 10658838、8899的短PUSH高速群发 、 任务调度 、 审批等工作。 作为营销平台最热心的大师兄, 有问题吆喝一声, 以最简洁的方法定位问题,最快的速度处理BUG,最简练的语言回答疑问。一个喜欢篮球, 喜欢爬山, 喜欢文艺的青年, 他的时间精力献给了营销平台。乔乔-负责彩信能力层、 群发接口层的10658899彩信群发与接收、状态报告解析、用户回访分析、外系统调用等。 营销平台的二师兄, 幽默风趣的个人签名, 滑稽的表情, 经常会将大家逗乐。 天籁的歌喉吐露心中些许的苦闷。 身在异乡 ,时长想起家中的妻儿, 一成不变的黑色外套, 已经反复穿了一周又一周。沈凤飞、 赵睿2人辛勤为营销活动、 一期 、 3期的群发用户、 营销活动管理等紧急工作忙碌着。 凤飞, 见证了营销平台的成长历程, 从还未成形的平台到今天已经完工的三期平台, 问其休息都是码代码。 一次偶然的机会, 发现这小伙是个音乐小天才, 葫芦丝 , R&B, 动与静的结合, 古与今的交汇, 无一不赞。 赵睿,营销平台年龄最小, 也是最为帅气的一个,今年七月份刚入职,便投身到无日无夜的奋战中, 年轻是最大的资本,勤学好问是最大的优点,带着一股激情,一鼓作气将三期平台的建设顺利完工。赵鹏-作为团队的基础核心人员,为营销平台的接口层、基础平台搭建兢兢业业的埋头苦干, 独自开发的自有监控工具为平台安全保驾护航。喜欢篮球的他,平时还爱好钓鱼,正是这股耐力, 才让我们的营销平台在经过多次考验后依旧坚挺。走进旭建办公室的3号, 右手边第二排靠墙, 座位下面摆放了一双泛白的黑色单鞋, 鞋底已经开胶 。 桌上, 一只圆珠笔, 一个茶叶罐, 一个电脑散热器, 一瓶眼药水, 几包感冒药。 打开电脑, 电脑的桌面, 呈现的是未满周岁的可爱的女婴笑脸。 这是团队负责人周健的座位, 先后带领了十来个研发人员, 在小组成员的心中, 一直把他当做亲人看待, 人称“大叔” 。2012年 , 非常6+1 , 会翻开崭新的一页, 我们期待一个非常不一样的平台。 哈哈!非常6+1还有另外一层的结束,6个技术控,1位大美女-顾蕾。偷了一张蕾蕾的照片出来。自从来了蕾蕾之后,我们组就活跃起来了,两年团队没有一次一起出去活动过,现在动不动就能一起活动活动了,发现的人才,三年在一起的“大叔”竟然是个歌手。从照片看,就个萌女啊!哈哈!