Mac下升级Nodejs

突然发现系统中的nodejs版本比较旧,想升级一下但又不想下载安装包一步一步安装, 发现还是可以很简单用命令行升级的。

首先得清理npm的缓存

sudo npm cache clean -f

安装 n 包来升级nodejs

sudo npm install -g n

升级nodejs 到最新版本

sudo n stable
more ...

使用VirtualBox搭建 Hadoop 测试集群

环境:

  • 物理机: i7 4核8线程,16G 内存的组装兼容机
  • VirtualBox Host: Ubuntu 14.04
  • VirtualBox: 4.3.20
  • VirtualBox Guest: CentOS 6.6 x86_64

本文的目的只是为了测试和理解Hadoop在集群机器中的运行过程。具体针对物理机的Hadoop 集群的一些操作不能以本位作为参考。

首先安装一台VM, 设置好之后,用linked clone 3台,这3台只需改一下IP, hostname 和一些必要的配置,这样操作的话可以减少很多时间和节约Host机的硬盘空间。

总共4台虚拟机,第一台 6G内存,其他2G, 因为我的Host机器只有16G 内存,这样的 分配应该不至于内存溢出。第一台机器因为承担比较重的任务,所以分配的内存比其他 三台都要高。

创建第一台机器,也就是克隆的原型

如果之前没有没有安装过CentOS, 国内同学可以去理工大服务器下载。

http://mirror ...

more ...

Mac OSX 下 Hadoop 使用本地库提高效率

环境:

  • Mac OSX: 10.9.5
  • Hadoop: 2.6.0
  • Java: 1.7.0_71

Mac OSX 下运行Hadoop老出现以下警告, 其实就是缺少本地库

14/12/05 14:40:27 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

安装 protobuf

首先安装protobuf, 不然编译Hadoop会报错, 从以下地址下载

https://protobuf.googlecode.com/files ...

more ...

Mac OSX 下 Hadoop 单节点集群配置

环境:

  • Mac OSX: 10.9.5
  • Hadoop: 2.6.0
  • Java: 1.7.0_71 (1.8.0_25)

大数据是未来的趋势,要顺势而学之。

本文是参考Hadoop文档,但其描述为Linux写的。所以Mac是否适用容我来验证一下。 而且Hadoop的官方测试JDK只支持到1.7.0, 1.8.0是否成功也一起试了。

2014-12-05 Update: 1.8.0 虽然支持,但在用Maven编译Native Library的时候遇到很多 问题。所以最好转回1.7.0_71。

参考:

  • http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist ...
more ...

Flask Framework初探

环境:

  • 操作系统: Mac OSX 10.9.5
  • Python: 2.7.8
  • Flask: 0.10.1
  • 开发工具: Eclipse Luna + Pydev 3.6

之前对Pyramid, Django都已经有一些项目经验了,这次研究一下Flask的易用性如何。 说不定以后能在小项目上用的上。 本文主要参考一下两个网页:

  • http://flask.pocoo.org/
  • http://flask.pocoo.org/docs/0.10/quickstart/

首先建立开发的环境

假设我们Base Dir 为 /temp/flaskstudy

cd /temp/flaskstudy
virtualenv env
mkdir ...
more ...


HTML coding standard

文件命名规范

  • 文件名由英文小写字母和下划线共27个字符组成。由于windows平台不分大小写的原因。
  • 文件后缀固定为html。

例子:

非标准 标准
Index.html index.html
ContactUs.html contact_us.html

字符编码规范

统一使用utf-8编码。

结构规范

整个网页的总体的构成如下。

<!DOCTYPE>
<html>
  <head>
    <meta>
    <title>
    <style>
    <script>
  </head>

  <body>
  </body>
</html>

各部分内容互不干涉,javascript脚本必须在之间, 内容必须在之间。 页面的内容必须在之间。

标签规范

  • 所有标签使用英文小写。
  • 所有标签必须闭合。一个比较常见的旧html中的标签都没有闭合,如
  • 不要使用标签的布局属性。如width, height等。
  • 属性也是英文小写,属性的值必须用英文半角的单引号(')括一起来。
  • 不许精简属性。如checked ...
more ...

JPA Dead Lock 死锁

使用JTA + hibernate 做持久层,Unitils 做Repository的单元测试。

Test类中的repository是用Unitils 提供的@SpringBean进行注入。 而repository中的entityManager是用@PersistenceContext的方式注入, 这个注入是由spring来管理的,所以repository的实现类中的entityManager 的datasource是属于spring的。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

然而 ...

more ...

OpenJPA Entity

出现下列错误

Caused by: <openjpa-2.2.0-r422266:1244990 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: This configuration disallows runtime optimization, but the following listed types were not enhanced at build time or at class load time with a javaagent: "
com.example.jpastudy.Message".

解决方法1, 在persistence.xml中添加

<property name="openjpa.RuntimeUnenhancedClasses ...
more ...

JPA 中如何使用String 类型作为Identity

默认的JPA是使用Int, Long来作为ID使用的。但是用这两种型的ID作为 Primarykey有一些不好的地方。

  • 可能会溢出。
  • SqlServer 的identity属性让你的单元测试变得焦头烂额, 因为你初始化数据库的时候总可能出现

    Cannot insert explicit value for identity column,
    

    这是由于你对ID附上值了。 * 如果存在一个老系统,他的主键不是数字型,而是自己定义的varchar 或char类型的话就会有问题。

这里我将讲述如何使用String作为@Id, 但我不用annotation的方式去配置。而是用xml定义方式。

如下例, 数据库的表结构如下

CREATE TABLE questions (
    question_id VARCHAR(15) primary key,
    description VARCHAR(30)
);

xml定义如下

<entity class="Question" metadata-complete="true">
    <table name="questions" />
    <attributes>
        <id name="questionId ...
more ...