Notepad++是我电脑必备经常使用的软件,在新版中还加入了Document Map功能,就是文档的缩略图,以后做跳转方面的多了,和sublimetext一样,最近也在研究sublimetext的使用。Notepad++ 6 发布了,可通过下面地址下载:http://notepad-plus-plus.org/download/v6.0.html在 6 版本中,主要包含如下改进:支持 PCRE (Perl Compatible Regular Expressions)2. 添加文档映射特性 (通过 Menu View->Document Map): Screenshot 1, Screenshot 2改善大文件的加载性能Notepad++ 是一款非常有特色的编辑器,是开源软件,可以免费使用。支持的语言: C, C++ , Java , C#, XML, HTML, PHP, Javascript!
wordpress的插件多如牛毛,总有几款差距是必备的,比如下面推荐三款。Super Switch(超级开关)可以有选择地禁用Wordpress部分功能,或许可以使博客更快。WP Cleaner删除无用的修订版、自动草稿及自动保存的文章,减小空间,提高性能。有了上面的超级开关插件,WP Cleaner基本使用一次就足够了。**P3(Plugin Performance Profiler) **插件是由Godaddy发布的,它可以让你知道这些插件对你的网站速度有多大的影响.从而可以让你详细了解哪些插件占用资源最多,权衡利弊,有选择性地启用插件。插件只能运行在Firefox、Chrome、 Opera、 Safari、IE9中,不支持IE8或更低版本。
代码的使用性很强的啊! 让我们看看如何使用JDBC API在Java中执行批量插入。虽然你可能已经知道,但我会尽力解释基础到复杂的场景。在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据。此外,我们将努力探索一些场景,如在内存不足时正常运行,以及如何优化批量操作。首先,使用Java JDBC基本的API批量插入数据到数据库中。Simple Batch - 简单批处理我把它叫做简单批处理。要求很简单,执行批量插入列表,而不是为每个INSERT语句每次提交数据库,我们将使用JDBC批处理操作和优化性能。想想一下下面的代码:Bad Code[java]String [] queries = { insert into employee (name, city, phone) values ('A', 'X', '123'), insert into employee (name, city, phone) values ('B', 'Y', '234'), insert into employee (name, city, phone) values ('C', 'Z', '345'), }; Connection connection = new getConnection(); Statement statemenet = connection.createStatement(); for (String query : queries) { statemenet.execute(query); } statemenet.close(); connection.close(); [/java]这是糟糕的代码。它单独执行每个查询,每个INSERT语句的都提交一次数据库。考虑一下,如果你要插入1000条记录呢?这是不是一个好主意。 下面是执行批量插入的基本代码。来看看:Good Code[java] Connection connection = new getConnection(); Statement statemenet = connection.createStatement(); for (String query : queries) { statemenet.addBatch(query); } statemenet.executeBatch(); statemenet.close(); connection.close();[/java]请注意我们如何使用addBatch()方法,而不是直接执行查询。然后,加入所有的查询,我们使用statement.executeBatch()方法一次执行他们。没有什么花哨,只是一个简单的批量插入。 请注意,我们已经从一个String数组构建了查询。现在,你可能会想,使其动态化。例如:[java] import java.sql.Connection; import java.sql.Statement; //... Connection connection = new getConnection(); Statement statemenet = connection.createStatement(); for (Employee employee: employees) { String query = "insert into employee (name, city) values(' + employee.getName() + ',' + employee.getCity + '); statemenet.addBatch(query); } statemenet.executeBatch(); statemenet.close(); connection.close();[/java]请注意我们是如何从Employee对象中的数据动态创建查询并在批处理中添加,插入一气呵成。完美!是不是?等等……你必须思考什么关于SQL注入?这样动态创建的查询SQL注入是很容易的。并且每个插入查询每次都被编译。 为什么不使用PreparedStatement而不是简单的声明。是的,这是个解决方案。下面是SQL注入安全批处理。SQL Injection Safe Batch - SQL注入安全批处理思考一下下面代码:[java] import java.sql.Connection;import java.sql.PreparedStatement;//...String sql = "insert into employee (name, city, phone) values (?, ?, ?);;Connection connection = new getConnection();PreparedStatement…
在风向吧看到360安全浏览器5beta2的版本中加入的身份认证,也去体验了一把,被流氓的给了一个未知的身份。你一个做浏览器的,做安全的,好好做你的浏览器,做你的安全,你凭什么要对我们这些博主站长的站点做认证呢?就像风向吧靖说的,这是一种越界的强制认证行为。现在,大鹏的后院也加入了不兼容360安全浏览器的代码。js代码<script>function no360(){alert('系统检测出来你使用了360安全浏览器,请先卸载360产品后改用Chrome或firefox等再行访问本站,谢谢合作!');document.execCommand("stop");location.href="http://fengxiangba.com/no360.html";//注:将上面的//去掉,把后面的网址改成你的网站,弹出窗口后就会跳到你指定的网址}var f=false;if(navigator.userAgent.toLowerCase().indexOf("360se")>-1){f=true;}try{if(window.external&&window.external.twGetRunPath){var r=external.twGetRunPath();if(r&&r.toLowerCase().indexOf("360se")>-1){f=true;}}}catch(ign){f=false;}f&&(no360());</script>.htaccess屏蔽代码RewriteCond %{HTTP_USER_AGENT} 360SE [NC] RewriteCond %{HTTP_HOST} =www.bstaint.net RewriteRule ^(.*)$ http://labs.bstaint.net/break.html [L,R]php屏蔽代码<?php $str=$_SERVER['HTTP_USER_AGENT']; if(stripos($str, "360SE") > 0): header('Location: http://labs.bstaint.net/break.html'); endif; ?>代码提供:http://fengxiangba.com/is-not-compatible-with-the-code-of-360-secure-browser.html另外一篇关于360浏览器认证的文章360浏览器要认证谁
Anytodo 是一款chrome浏览器的插件,可以与google task进行同步,进行任务管理。我的手机是安装的gtasks的免费版本,是足够使用的了,Anytodo的使用,也弥补了google task没有桌面的管理的空缺,推荐使用。Anytodo是一个基于html5的离线便签应用,可方便的与Google Tasks进行同步,主要功能包括:1. 双击空白处快速添加便签;2. 双击便签简单编辑内容;3. 点击编辑按钮,支持富文本编辑;4. 更换便签颜色;5. 拖动改变位置和大小;6. 更换主题;7. 离线访问;8. 后台同步;9. 定时提醒;Anytodo目前最新版本为1.1.1,更新内容如下:1. 添加了处理时间的同步;2. 修正了富文本编辑后,提醒和日期显示错误;3. 修复了同步中的一些问题,提高了同步效率;项目地址:http://code.google.com/p/any-todo/下载插件:Anytodo-1.1.1.crx 1.5 MB2012-03-26 17:39 更新Anytodo 1.1.2,可以从Chrome App Store现在安装了:安装地址:https://chrome.google.com/webstore/detail/maidakogkfgehlikodkefhfefnmfaiig
对于程序员来说,最终的也是最基本的目标就是能写出一手好的代码。随着代码量的增长,自身对什么是好的代码的认识也渐渐有了不断的调整。 1** 注释真的那么重要么?**最好的注释就是代码。这句话确实是没有错误的。如果一个函数占用了一屏的版面,原因是由于各种各样的注释和解释性的 // ** 等说明文档,确实是比较恼人的。与其花过多的时间花精力在注释和说明的编写上面,不如花时间在变量名的编写上面。 不能说没有注释的代码一定是天书。在程序员界来说,其实有许多是大家默认的约定,以php为例子如果说function getMsgBySsn($msgid, $ssn)function getMsgs($msgids);这样的语句其实不用注释完全是可以的。 这说明好的变量名和函数名是最好的注释!在做一个完整的项目的时候,看代码的过程中其实就是接受作者潜意识规约的过程。如果一个大的项目,所有的数据结构都使用一致的变量名,$msg, $chg, 那么这些变量名就已经赋予了完整的定义了。比如在一个项目中,在所有表示“消息”这个概念的地方,不管是参数还是返回值,完全都只使用$msg这么一个array()那么,虽然我没有在每个引用的地方加大篇幅说明$msg中的key和value是什么,只要读者追着看到这样的函数:function getMsg(){ $msgid = self::getMsgid() return array( ‘msgid’ => $msgid, 'ssn' => self::getSsn($msgid), 'title' => self::getTitle($msgid), );}是不是/** Msg包含 msgid,ssn,title **/这样的注释更好呢?当然,好代码在变量都一定会遵循的规则是:一个项目一个意思的东西,一定只有一个规定的变量名好的代码会由于一个或两个变量名起的不对而不惜一次一次的svn commit,最后出现的代码一定不会让你失望的。 2 代码的简洁性你总是能感叹到为什么有的人写的代码是这么让人舒服。让代码简单并不是一件容易的事情。这需要相当的代码能力才能有这样的能力。比如这么一个函数,明明可以更简单的:function example(){ $iMsgid = $this->getMsgid(); $sTitle = $this->genTitle($iMsgid); $sContent = $this->genContent($iMsgid); $result = array( 'msgid' => $iMsgid, 'title' => $sTitle, 'content' => $sContent, ); return $result;}我宁可选择写成这样:function example(){ $msgid = $this->getMsgid(); $title = $this->genTitle($msgid); $content = $this->genContent($msgid); return compact('msgid', 'title', 'content');}不妨能不能用更少的代码行数写出一样功能性的代码。代码的量一旦减少,给的信息就是:犯错的概率也更少了 最近在新项目组有几个感想:1以前经常觉得有很多函数必须要很详细的参数说明什么的,其实大都都是可以使用OO的方法来使代码更优美比如function($msgid, $title, $content, $ssn)为什么不是使用function($msg)呢?开始我认为,$msg这样传入并不知道里面包含的key和value是什么,对代码的阅读性造成障碍但是后来想想,其实这是因为我在阅读到这个函数的时候并没有$msg是一个对象的概念,也就是前面的代码并没有在人的潜意识里面栽种下这个对象的概念。那么前面的代码应该改了…………2 好的代码不是一次性写出来的,一定是一次一次svn commit堆积出来的,你会看到某大牛为了一个空格,一个文件名是使用cron还是shell, 一个变量名(比如getMsg($Msgid) => getMsg($msgid))而进行一次又一次的改动最后得出的代码真的是“干净”的! 原文网址:http://www.cnblogs.com/yjf512/archive/2012/03/15/2399532.html
推荐给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还是值得升级的,再怎么说,也算是一个正版系统啊!免费的为啥不用呢?