neoremind.net迁移成功!

最近由于“去他爹”(godaddy.com)的域名和空间到期了,而且国内绝大部分godaddy的IP都被GFW墙了,开始有了迁移主机到国内的想法,幸好域名没有被屏蔽,否则真就玩儿完了。
 
选择了一个小众主机——戈戈主机,这里不是打广告,访问速度还是非常理想的,网上的口碑也非常好,再者比godaddy动辄一年虚拟主机600多块实惠多了,就安家在戈戈吧。
 
下面记录了迁移的过程,对于wordpress应用在godaddy迁移国内主机或者就是单纯迁移wp应用都有一定借鉴意义。
 

1. 域名解析

以我在家[……]

继续阅读

Python执行系统命令的3种方法

如何在python中调用系统命令,python提供了很多的办法,根据不同的需求可以选择不同的方式,这里以代码示例为主,具体的可以去pydoc上搜索查找用法。

 
 
>>> import os  
>[......]<p class="read-more"><a href="http://neoremind.com/2012/02/python%e6%89%a7%e8%a1%8c%e7%b3%bb%e7%bb%9f%e5%91%bd%e4%bb%a4%e7%9a%843%e7%a7%8d%e6%96%b9%e6%b3%95/">继续阅读</a></p>
 
其实是执行shell命令,返回值是returncode。
 
 
代[……]

继续阅读

使用FastDateFormat来代替JDK自带的DateFormat

SimpleDateFormat来做Date到String的类型转换,建议我使用Apache commons-lang中的FastDateFormat。因为JDK里自带的SimpleDateFormat存在线程不安全问题。

 
改进方法有:
1.使用局部变量。有些时候希望SimpleDateFormat作为静态变量存在时候,这种情况不适用。
2.使用ThreadLocal。好是好,但是比较麻烦。更多请参考ThreadLocal的理解与在Spring中的应用
3.使用Apache commons-lang中的FastDateFormat。又快又线程安全,最佳选择。

[……]

继续阅读

使用pdb调试python程序

python就像shell一样简单,因为它是解释型语言,同时它也很强大,想OO语言,但是它的调试debug功能却不能像shell那样土,echo或者-x,那么拿出python的调试利器pdb,名字就像gdb一样cool用起来也是一样cool。如果想调试一段python代码有下面两种方法可以用:
 
方法1:修改源代码
_DEBUG=True
if _DEBUG == True:
import pdb
pdb.set_trace()
 
方法2:用-m参数
python -m pdb myscript.py
 
进入debug模式后,就可以[……]

继续阅读

grep出现错误Binary file (standard input) matches

 一个很普通的grep在处理一个文本文件的时候,报错:

Binary file (standard input) matches

原因未知,解决版本是加入-a (–text)选项。

[……]

继续阅读

windows寻找某个端口进程并kill掉

在windows命令行窗口下执行:

C:\>netstat -aon|findstr "4444"
TCP    127.0.0.1:4444         0.0.0.0:0              LISTENING       2434
由上面得知,端口被进程号为2434的进程占用,继续执行下面命令:
C:\>tasklist|findstr "2434"
java[……]

继续阅读

Spring单测中的@Autowired和@Qualifier

@Autowired 
注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛出BeanCreationException 
 
@Autowired(required = false) 
这等于告诉 Spring:在找不到匹配 Bean 时也不报错。
 
和找不到一个类型匹配 Bean 相反的一个错误是:如果 Spring 容器中拥有多个候选 Bean,Spring 容器在启动时也会抛出BeanCreationException 
&[……]

继续阅读

坑爹的睡眠排序算法[搞笑版]

 #!/bin/bash

function f() {

sleep “$1″

echo “$1″

}

while [ -n "$1" ]

do

f “$1″ &

shift

done

wait

 

example usage:

./sleepsort.bash 5 3 6 3 6 3 1 4 7

 

[……]

继续阅读

Linux下大文件排序

1. split -b   对大文件进行切割  如:split -b 200m BigFile

2. sort BigFile.splited1 > BigFile.splited1.sorted1 对每一个切割后的文件分别sort
3. cat BigFile.splited1.sorted1 BigFile.splited2.sorted2 …|sort -m|uniq

[……]

继续阅读

apache与tomcat互联配置

首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接。事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 8080,装好 tomcat 后通过 8080 端口可以直接使用 Tomcat 所运行的应用程序,你也可以将该端口改为 80。
 
既然 Tomcat 本身已经可以提供这样的服务,我们为什么还要引入 Apache 或者其他的一些专门的 HTTP 服务器呢?原因有下面几个:
1.提升对静态文件的处理性能
2.利用 Web 服务器来做负载均衡以及容错
3.无缝的升级应用程序
4.重写静态化的URL,为了SEO
 

[……]

继续阅读

Java内存分析工具

这段时间单机跑一个大java,总是出现Heap OutOfMemory,无奈了,于是搜了下java自带的内存分析工具,算是初学了,记录一下,主要包括jmap, jstat, jps, jconsole,看不懂的可以参考我之前写的一篇关于java内存管理的文章

 

jmap  

打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 
 

例1:堆使用情况

jmap -heap 22677 | more
Attaching to process ID 22677, pleas[……]

继续阅读

关于HTTP返回码301、302区别与SEO

301(永久移动)请求的网页已永久移动到新位置。服务器返回此响应时,会自动将请求者转到新位置。您应使用此代码告诉搜索引擎Spider某个网页或网站已永久移动到新位置。建议在URL规范化的时候采用301跳转,例如google.com跳转到www.google.com,如下图所示。

 
302(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。此代码与响应 301 类似,会自动将请求者转到不同的位置,但您不跨域跳转的时候,不应使用此代码来告诉 Googlebot 某个网页或网站已经移动,因为 Googlebot 会继续抓取原有位置并编制索引。

[……]

继续阅读

Linux下生产随机字符

 

#!/bin/sh 
 
alphabeta="a b c d e f g h i j k l m n o p q r s t u v w x y z" 
number="0 1 2 3 4 5 6 7 8 9" 
 
A=($alp[......]<p class="read-more"><a href="http://neoremind.com/2011/06/linux%e4%b8%8b%e7%94%9f%e4%ba%a7%e9%9a%8f%e6%9c%ba%e5%ad%97%e7%ac%a6/">继续阅读</a></p>

 

例如,输出z4

[……]

继续阅读

从Hibernate抛出Duplicate class/entity mapping异常来看eclipse配置编译输出路径

事情原因:

运行项目中的Spring JUnit测试用例,抛出以下异常,但是项目单单Run on Server在Tomcat下跑却没有问题。
Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping net.neoremind.bo.User
 

排查:

打开log4j的DEBUG模式,会打印出Spring去哪些路径地下寻找,发现这么一句:
Resolved location pattern [classpath*:/net/neoremind/test/**/*-[……]

继续阅读

MySQL LOAD DATA常用用法

 一般想要文件灌入数据库会用LOAD DATA语句,这里提供一个比较common的用法,导入文件内容到数据库,分为两个步骤:

1. 导入数据到备份表_bak,这样可以保证load大数据量时万一有错误,原表仍然不受影响 

2. 重命名表 原表名-> _tmp, _bak -> 原表名, _tmp -> _bak,相当于做了一次交换。

具体SQL参考如下:

步骤1:

${MYSQL_CLIENT} -u"${BEIDOU_DB_USER_SITEURL}" -p"${BEIDOU_DB_PASSWORD_SITEUR[……]

继续阅读