paulwong

#

20 个免费的 Bootstrap 模板

Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。

本文向你推荐 20 个免费的 Bootstrap 模板:

Studio

Demo | Download )

Studio

Landon

Demo | Download )

Landon

E-Shopper

Demo | Download )

E-Shopper

Starter

Demo | Download )

Starter

Grayscale

Demo | Download )

Grayscale

Stylish Portfolio

Demo | Download )

Stylish Portfolio

FirmaSite

Demo | Download )

FirmaSite

Pratt

Demo | Download )

Pratt

Landy

Demo | Download )

Landy

mPurpose

Demo | Download )

mPurpose

COLORFUL FLAT

Demo | Download )

COLORFUL FLAT

Magister

Demo | Download )

Magister

AdminLTE

Demo | Download )

AdminLTE

Minimal

Demo | Download )

Minimal

Counter

Demo | Download )

Counter

Brushed

Demo | Download )

Brushed

progressus

Demo | Download )

progressus

Flatty

Demo | Download )

Flatty

Media

Demo | Download )

Media

Shield

Demo | Download )

Shield

via designerledger

posted @ 2014-07-09 07:57 paulwong 阅读(341) | 评论 (0)编辑 收藏

Java 微信公众账号开发平台 JeeWx 1.0 发布

JeeWx, 敏捷微信开发,简称"捷微".

捷微是一款免费开源的JAVA微信公众账号开发平台.


平台介绍:

 

一、简介
jeewx是一个开源,高效,敏捷的微信开发平台 , 采用JAVA语言它是基于jeecg这个企业级快速开发框架实现的。
jeewx的目的是最大化的简化微信开发的流程,使用开发者能把最好的精力放到微信具体业务开发,并能以最快的时间完成。把一些常规而频繁的工作交由jeewx来处理即可,平台兼备的代码生成器,在线开发,可以快速的完成企业应用。为此jeewx提供了详细的二次开发文档,关键代码里还是相关的注释说明。jeewx采用插件的方式实现微信功能,不同的插件实现不同的微信功能。

 

主要特性
1、基于快速开发平台jeecg 3.4.4最新版本,采用SpringMVC+Hibernate4+UI库+代码生成器+Jquery+Ehcache等主流架构技术
2、支持企业快速开发,完善的用户组织机构,报表,强大的代码生成器快速有效的提高开发效率
2、开源免费,jeewx遵循Apache2开源协议,免费提供使用。
3、支持多用户多公众号管理
4、详细的二次开发文档,并不断更新增加相关开发案例提供学习参考
5、微信功能插件化开发,更易于定制和二次开发
6、提供丰富的微信插件下载安装使用,总有一些是符合或接近你的需求

 

主要功能
1、微信接口认证
2、菜单自定义
3、文本管理和回复
4、关注欢迎语
5、关键字管理
6、文本消息管理
7、图文 消息管理
8、微信账号管理
9、用户管理
10、角色管理
11、菜单管理
12、微信支持多用户多公众号

 

后续发布功能:
1、微信大转盘
2、微信刮刮乐
3、微信CMS
4、周边
5、 微信群发
6、 微信关注用户分组
7、微信关注用户、
8、微信扫描登录
9、会员管理

 

最低系统需求
Tomcat6.0 或更高版本。
MySQL 5.0 或更高版本。

MyEclipse8.5或其他版本。 

源码下载地址:
     https://code.csdn.net/zhangdaiscott/jeewx

文档下载地址:

   链接: http://pan.baidu.com/s/1i3LxLmH 密码: j3co 

 

系统安装
1、将jeewx压缩包解压并上传到服务器。
2、首次在浏览器中访问 http://localhost:8080/jeewx/,默认admin登录,一个账号只能配置一个微信公众账号。
3、按照安技术文档完成安装,如果有问题请访问官网讨论区寻求帮助。
4、服务器配置      
        URL:   http://*地址*/jeewx/wechatController.do?wechat
      Token:  jeecg
5.云服务平台建议,可以采用MoPaaS

 

联系方式:

QQ  群 : 287090836,129190229,175449166

官网:    http://www.jeewx.com
邮箱:   jeecg@sina.com

 

系统首页展示:



 

posted @ 2014-07-07 15:48 paulwong 阅读(408) | 评论 (0)编辑 收藏

NoSql存储日志数据之Spring+Logback+Hbase深度集成


http://www.cnblogs.com/xguo/p/3298956.html

posted @ 2014-07-05 23:14 paulwong 阅读(743) | 评论 (0)编辑 收藏

运维工具

运维神器Chef简单介绍和安装笔记
http://www.cnblogs.com/xguo/p/3785346.html

posted @ 2014-07-05 23:11 paulwong 阅读(431) | 评论 (0)编辑 收藏

Maven安装jar文件到本地仓库

在项目开发期间难免遇遭使用的jar包在Maven的中央仓库里没有,比如那个固执的Oracle,这家伙始终不愿意把ojdbc驱动提交到Maven仓库,这件事很郁闷,Maven又不支持引入本地jar文件如果用IDE强行引入在Maven编译的时候又无法通过。

Maven官方提供导入本地jar文件到本地仓库的maven-install-plugin,可是要用的时候又得苦逼的去找命令,用起来也比较麻烦,因此,本文详细介绍一下maven-install-plugin插件的使用,可以导入任意数量的jar文件到本地仓库,是不是很开心那!

配置POM
Maven插件maven-install-plugin

<plugin>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.4</version>
    <inherited>false</inherited>
    <executions>
        <execution>
            <id>install-artifacts.1</id>
            <goals>
                <goal>install-file</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
                <file>${basedir}/libs/ojdbc14.jar</file>
                <groupId>org.oracle</groupId>
                <artifactId>oraclejdbc</artifactId>
                <packaging>jar</packaging>
                <version>14</version>
            </configuration>
        </execution>
        <execution>
            <id>install-artifacts.2</id>
            <goals>
                <goal>install-file</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
                <file>${basedir}/libs/foundation-1.0.jar</file>
                <groupId>org.bg</groupId>
                <packaging>jar</packaging>
                <artifactId>foundation</artifactId>
                <version>1.0</version>
            </configuration>
        </execution>
    </executions>
</plugin>


执行导入

在经过Maven的validate阶段时自动导入安装,在executions里指定插件的goals和maven的phase。
直接执行命令 mvn install:install-file

插件属性

如果要在导入时生成pom文件,增加配置属性:
<generatePom>true</generatePom>

指定自己的POM文件:

<generatePom>false</generatePom>
<pomFile>${basedir}/dependencies/someartifact-1.0.pom</pomFile>
如果JAR自带POM文件无需指定此属性,会自动安装。

http://www.cnblogs.com/xguo/archive/2013/06/04/3117894.html

http://www.cnblogs.com/xguo/archive/2013/06/01/3113146.html

更多详细配置:http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

最后提示一句,其实Maven生命周期中的每一个阶段都是一个插件来实现的,而且都可以单独拿出来根据你的使用需要来配置。
详细请查看http://maven.apache.org/plugins/
或者
另一篇Maven相关文章http://www.cnblogs.com/xguo/archive/2013/06/01/3113146.html。

posted @ 2014-07-05 22:37 paulwong 阅读(2279) | 评论 (1)编辑 收藏

Redisclient 1.0 发布,Java 的 Redis 客户端 GUI 工具

redisclient 1.0 正式发布,适用于多个 Redis 版本,主要更新内容如下:

  1. 管理 Redis 服务器

  2. 管理 Redis data favorite

  3. 管理 Redis 数据

    • 新 Redis 数据:string, list, hash, set, sorted set

    • 重命名 Redis 数据

    • 删除 Redis 数据

    • 更新 Redis 数据

    • 剪切,复制,粘贴 Redis 数据

    • 导入,导出 Redis 数据

    • 搜索 Redis 数据

    • 通过关键字,数据类型,大小来排序 Redis 数据

    • 导航历史

RedisClient 是  Redis 客户端 GUI 工具,使用 Java swt 和jedis 编写。它将redis数据以windows资源管理器的界面风格呈现给用户,可以帮助redis开发人员和维护人员方便的建立,修改,删除,查询redis数据,可以让用户方便的编辑数据,可以剪切,拷贝,粘贴redis数据,可以导入,导出redis数据,可以对redis数据排序。

https://github.com/caoxinyu/RedisClient

posted @ 2014-07-04 21:47 paulwong 阅读(347) | 评论 (0)编辑 收藏

DNS收集

国内

1.OpenerDNS:42.120.21.30

2.114DNS:114.114.114.114; 114.114.115.115

3.oneDNS:112.124.47.27

4.aliDNS:223.5.5.5;223.6.6.6

国际:

1.V2EX DNS:199.91.73.222;178.79.131.110

2.Google DNS:8.8.8.8;8.8.4.4

3.OpenDNS:208.67.222.222;208.67.220.220

posted @ 2014-07-04 12:55 paulwong 阅读(162) | 评论 (0)编辑 收藏

Java程序员们最常犯的10个错误

1.将数组转化为列表

将数组转化为一个列表时,程序员们经常这样做:

List<String> list = Arrays.asList(arr);

Arrays.asList()会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList类,java.util.Arrays.ArrayList类有set()、get()、contains()方法,但是没有增加元素的方法,所以它的大小是固定的,想要创建一个真正的ArrayList类,你应该这样做:

ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));

ArrayList的构造方法可以接受一个集合类型,刚好它也是java.util.Arrays.ArrayList的超类。

2.判断一个数组是否包含一个值

程序员们经常这样做:

Set<String> set = new HashSet<String>(Arrays.asList(arr)); 
return set.contains(targetValue);

这段代码起作用,但是没有必要把一个数组转化成列表,转化为列表需要额外的时间。它可以像下面那样简单:

Arrays.asList(arr).contains(targetValue);

或者是:

for(String s:arr){
if(s.equals(targetValue)){
return true;
}
}
return false;

第一种方法比第二种更容易读

3.在一个循环中删除一个列表中的元素

思考下面这一段在循环中删除多个元素的的代码

ArrayList<String> list = new ArrayList<String>(Arrays.asList("a","b","c","d"));
for(int i=0;i<list.size();i++){
list.remove(i);
}
System.out.println(list);

输出结果是:

[b,d]

在这个方法中有一个严重的错误。当一个元素被删除时,列表的大小缩小并且下标变化,所以当你想要在一个循环中用下标删除多个元素的时候,它并不会正常的生效。

你也许知道在循环中正确的删除多个元素的方法是使用迭代,并且你知道java中的foreach循环看起来像一个迭代器,但实际上并不是。考虑一下下面的代码:

ArrayList<String> list = new ArrayList<String>(Arrays.asList("a","b","c","d"));

for(String s:list){
    if(s.equals("a")){
      list.remove(s);
    }
}

它会抛出一个ConcurrentModificationException异常。

相反下面的显示正常:

        ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b",
                "c", "d"));
        Iterator<String> iter = list.iterator();
        while (iter.hasNext()) {
            String s = iter.next();
            if (s.equals("a")) {
                iter.remove();
            }
        }

.next()必须在.remove()之前调用。在一个foreach循环中,编译器会使.next()在删除元素之后被调用,因此就会抛出ConcurrentModificationException异常,你也许希望看一下ArrayList.iterator()的源代码。

4.Hashtable与HashMap的对比

就算法而言,哈希表是数据结构的一个名字。但是在java中,这个数据结构的名字是HashMap。Hashtable与HashMap的一个重要不同点是Hashtable是同步的。所以你经常不需要Hashtable,相反HashMap经常会用到。

具体请看:

HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap
Top 10 questions about Map

5.在集合中使用原始类型

在Java中原始类型与无界通配符类型很容易混合在一起,拿Set来说,Set是一个原始类型,而Set<?>是无界的通配符类型。
考虑下面使用原始类型List作为参数的代码:

public static void add(List list,Object o){
list.add(o);
}
pulbic static void main(String[] args){
List<String> list = new ArrayList<String>();
add(list,10);
String s = list.get(0);

这段代码会抛出一个异常:

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

at ...

使用原生类型集合是危险的,这是因为原生类型集合跳过了泛型类型检查,并且不是安全的,在Set、Set<?>和Set<Object>中有很大的不同,具体请看Raw type vs. Unbounded wildcard和Type Erasure。

6.访问级别

程序员们经常使用public作为类字段的修饰符,可以很简单的通过引用得到值,但这是一个坏的设计,按照经验,分配给成员变量的访问级别应该尽可能的低。

具体请看:public, default, protected, and private

7.ArrayList与LinkedList的对比

当程序员们不知道ArrayList与LinkedList的区别时,他们经常使用ArrayList,因为它看起来比较熟悉。
然而,它们之前有巨大的性能差别。简而言之,如果有大量的增加删除操作并且没有很多的随机访问元素的操作,应该首先LinkedList。
如果你刚接触它们,请查看ArrayList vs. LinkedList来获得更多关于它们性能的信息。

8.可变与不可变

不可变对象有许多的优点,比如简单,安全等等。但是对于每一个不同的值都需要一个独立的对象,太多的对象可能会造成大量的垃圾回收。
当选择可变与不可变时应该有一个平衡。
一般的,可变对象用来避免产生大量的中间对象。一个典型的例子是连接大量的字符串。
如果你用一个不可变的字符串,你会产生很多需要进行垃圾回收的对象。这很浪费CPU的时间,使用可变对象是正确的解决方案(比如StringBuilder)。

String result="";
for(String s: arr){
  result = result + s;
}

有时在某些情况下也是需要可变对象的,比如将可变对象作为参数传入方法,你不用使用很多语句便可以得到多个结果。
另外一个例子是排序和过滤:当然,你可以写一个方法来接收原始的集合,并且返回一个排好序的集合,但是那样对于大的集合就太浪费了。(来自StackOverFlow的dasblinkenlight’s的答案)

具体请看:Why String is Immutable?

9.父类与子类的构造函数




这个编译期错误的出现是父类默认的构造方法未定义,在java中,如果一个类没有定义构造方法,编译器会默认的为这个类添加一个无参的构造方法。如果在父类中定义了构造方法,在这个例子中是Super(String s),编译器就不会添加默认的无参构造方法,这就是上面这个父类的情形。

子类的构造器,不管是无参还有有参,都会调用父类的无参构造器。因为编译器试图在子类的两个构造方法中添加super()方法。但是父类默认的构造方法未定义,编译器就会报出这个错误信息。

想要修复这个问题,可以简单的通过1)在父类中添加一个Super()构造方法,像下面这样:

public Super(){
  System.out.println("Super");
}

或者2)移除父类自定义的构造方法,或者3)在子类的构造方法中调用父类的super(value)方法。

具体请看:Constructor of Super and Stub

10.使用" "还是构造器

有两种方式可以创建字符串:

//1.使用字符串
String x = "abc";
//2.使用构造器
String y = new String("abc");

有什么区别?

下面的例子会给出一个快速的答案:

String a = "abc";
String b = "abc";
System.out.println(a==b);//true
System.out.println(a.equals(b));//true

String c = new String("abc");
String d = new String("abc");
System.out.println(a==b);//false
System.out.println(a.equals(b));//true

关于它们内存分配的更多信息,请参考Create Java String Using ” ” or Constructor?.

将来的工作

这个列表是我基于大量的github上的开源项目,Stack overflow上的问题,还有一些流行的google搜索的分析。没有明显示的评估证明它们是前10,但它们绝对是很常见的。如果您不同意任一部分,请留下您的评论。如果您能提出其它一些常见的错误,我将会非常感激。

原文链接: programcreek 翻译: ImportNew.com - 林林
译文链接: http://www.importnew.com/12074.html 

posted @ 2014-07-04 10:44 paulwong 阅读(301) | 评论 (0)编辑 收藏

JAVABEAN和JSON STRING互转

TestUser.java
import javax.xml.bind.annotation.XmlRootElement;

import org.codehaus.jackson.annotate.JsonProperty;

@XmlRootElement
public class TestUser {
    
    /*@XmlElement(name="username")*/
    @JsonProperty("username")
    private String userName;
    
    private String email;

    public String getEmail() {
        return email;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "TestUser [userName=" + userName + ", email=" + email + "]";
    }
    
    

}


Test.java
import java.io.IOException;

import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class Test {
    
    private Logger logger = LoggerFactory.getLogger(Test.class);
    
    /*private String getBaseUri()
    {
        return "
http://192.168.1.223:8080/restfull-api";
    }
*/
    
    @Test
    public void testTest()
    {
        ObjectMapper mapper = new ObjectMapper();
        /*AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
        // make deserializer use JAXB annotations (only)
        mapper.getDeserializationConfig().setAnnotationIntrospector(introspector);
        // make serializer use JAXB annotations (only)
        mapper.getSerializationConfig().setAnnotationIntrospector(introspector);
*/
        mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        
        String userStr = "{\"username\":\"paul\",\"email\":\"paul@paul.com\"}";
        try {
            TypeReference<TestUser> temp = new TypeReference<TestUser>(){};
            TestUser testUser = mapper.readValue(userStr, temp);
            System.out.println(testUser.toString());
            
            String result = mapper.writeValueAsString(testUser);
            System.out.println(result);
            
        } catch (JsonParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}









posted @ 2014-07-04 09:07 paulwong 阅读(589) | 评论 (0)编辑 收藏

2014巴西世界杯淘汰赛赛程

posted @ 2014-07-03 08:36 paulwong 阅读(208) | 评论 (0)编辑 收藏

仅列出标题
共115页: First 上一页 50 51 52 53 54 55 56 57 58 下一页 Last