开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

基于docker官网镜像centos7配置Java运行环境

基于docker官网centos7镜像配置java运行环境,自己安装jdk和tomcat,解决docker容器与宿主机时间不一致问题
ht896632 发布于 3天前 阅读 391 评论 13 点赞 1

盘点那些评分最高的项目管理工具,不服来战!

作为一名开发者,总会接触到项目,而一个好的项目管理工具能让项目管理变得更简单,达到事半功倍的效果。下面是评分最高且收藏量超过 100 的几款项目管理工具,来看看你用过的工具多少分: 1、项目管理和缺陷跟踪工具 Redmine 收藏:744,评分:7.4 Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放 源码软件解决方案,它提供集成的项目管理功能,问题跟踪,并为多个版本控制选项的支持。 2、KanBan 管理应用 Wekan 收藏:116,评分:7.4 KanBan(看板)也叫“看板管理”(来自日语“看板”, カンバン)是丰田生产模式中的重要概念,指为了达到准时生产方式(JIT) 控制现场生产流程的工具,一般常见于生产系统,比如工厂车间或传统IT软件开发……总之无论是个人待办事项列表,假期与一些朋友出行的计划,或是工作团队中革命性的想法,看板都是一个无与伦比的工具,它为您提供项目当前状态的概览,让您能专注于最重要的几个项目,使您的工作效率得到很大的提升。 3、开源项目管理系统 Jitamin 收藏:122,评分:7.3 Jitamin (读作/ˈdʒɪtəmɪn/) 是一款免费、开...
编辑部的故事 发布于 3天前 阅读 2881 评论 6 点赞 4

Linux基金会执行董事 Jim Zemlin 将在 LinuxCon 做主题演讲,你来不来?

这场活动将三场会议的内容整合为一体,是一场面向开发人员、运营专家(架构师、系统管理员和开发运营人员)、以及商业、合规和法律领袖与其他专业人员的技术大会。
Linux

fir.im 持续集成技术实践

互联网时代,人人都在追求产品的快速响应、快速迭代和快速验证。不论是创业团队还是大中型企业,都在探索属于自己的敏捷开发、持续交付之道。fir.im 团队也在全面实施敏捷,并推出新持续集成服务— [flow.ci](http://flow.ci/?utm_source=oschina&utm_medium=passage&utm_content=firim_ci_practice) ,以帮助企业将开发测试流程自动化,更快速地交付产品。 4月15日,fir.im CTO 郭扬在“光环国际·2017敏捷春季峰会”带来了《敏捷工程实践的基石——持续集成》的技术实践,从敏捷方法论的角度分享了持续集成流程的质量实践与 fir.im 团队的 CI 技术实践。演讲实录整理如下,希望能带给你一些思考。 ![](http://7xsn88.com1.z0.glb.clouddn.com/image/f/84/6cc7fbf4818c49b278933fa578b25.jpg) >郭扬,fir.im CTO,曾就职于奔驰戴姆勒创新实验室,Thoughtworks,索尼移动通信,网易等公司,担任 DevLead,负责组建技术团队,管理项目进度与项目风险,软件及 DevOps 的架构设计、高并发条件下的性能调优、敏捷教练等工作。 ### 持续集成做什么 持续集成的概念出现在 2001 年,它其实是一个 XP 极限编程的工程实践。那么持续的是什么,集成是什么呢,非常简单就是“一直不停地...
风起云飞fir_im 发布于 2周前 阅读 181

docker常用命令总结——安装、镜像、容器基本操作

Docker 常用命令总结以及镜像、容器的基本操作
ht896632 发布于 3周前 阅读 472 评论 2

网站统计功能的设计与实现

本文分为以下五个部分: 埋点设计与实现 页面引入 数据接收 数据入库 统计分析   一、埋点设计与实现 在JavaScript中,包含了很多对象,可以用于获取用户的数据。比如Document对象用于分析每个载入浏览器的 HTML 文档,可以获得当前文档的域名、URL、及当前文档的标题;Navigator对象包含有关浏览器的信息,可以得到运行浏览器的userAgent的值,当前系统的语言;而Screen对象则可以获得当前屏幕的相关信息。通过这些对象,我们可以得到一个相当完备的用户信息。 另外,通过其他接口,还可以得到用户的mac地址及IP地址,继而可以分析出用户的机器及所在省市区地址等。 我们使用javascript获取访问信息,将统计代码伪装成图片通过浏览器访问触发,代码实现如下。   二、页面引入 在要做统计的web页面中引入统计脚本,并主动将其他接口获得的mac及ip地址另外传入,一个简易的页面设计如下代码所示。   三、数据接收 在后台接口中接收上报上来的数据。我们使用php程序获取get及post的数据来接收。 上述接口程序获得的文件日志中数据如下所示。 17:38:25 http://www.fangbei.org?domain=www.fangbei.org&url=http%3A%2F%2Fwww.fangbei.org%2F_test%2Fstat.html&title=%e6%96...
voole 发布于 3周前 阅读 569 评论 1

如何测试quartz定时任务逻辑

系统一般会有一些后台定时任务,假设我们使用quartz实现定时任务,那么有两个测试功能点: 定时任务逻辑是否正确 定时器cron表达式编写是否正确,触发时间点是否正确 定时任务逻辑测试 如果定时任务在晚上11点执行,我们不可能要求测试人员等到晚上11点时,再去检查任务执行逻辑逻辑是否正确。我们可以提供一个定时器任务管理界面,让测试人员能够手动触发任务马上执行一次。具体实现可以参见:https://www.dexcoder.com/selfly/article/311 定时器cron表达式测试 如果cron表达式比较复杂,或不太确定表达式是否编写正确,可以打印cron表达式,后续几次触发任务执行的时间点,就可以方便检验cron表达式编写是否正确。 打印cron表达式,后续几次触发任务执行时间点,代码示例: package org.quartz.demo; import org.quartz.impl.triggers.CronTriggerImpl; import java.text.SimpleDateFormat; import java.util.Date; public class CronTriggerImplDemo { public static void main(String[] args) throws Exception { CronTriggerImpl trigger = new CronTriggerImpl(); trigger.setCronExpression("0 */1 * * * ?"); trigger.triggere...
qquunn 发布于 1个月前 阅读 173

基于Ignite+Lucene+Log4j2的分布式统一日志查询最佳实践

目前,企业级应用在集群环境下的日志查询,一直是一个痛点,给开发和运维人员带来了一定的困扰,本文基于新的思路,设计了一种新的技术方案,实现了在一个统一的界面中,像数据库表一样对全集群范围的日志进行查询,极大地方便了开发和运维人员,而且具有很强的灵活性。
李玉珏 发布于 1个月前 阅读 822 评论 13

mybatis-generator-core自动生成代码,支持生成中文注释、支持分页、提供BaseDao封装

mybatis-generator-core自定义修改,生成中文注释、支持分页、提供BaseDao封装
ht896632 发布于 1个月前 阅读 1012 评论 6 点赞 1

关于项目发布包前后遇到的问题及看法

# 关于项目发布包前后遇到的问题 近期团队就发包的问题,展开了一次讨论性的会议。与其说是一次会议,更确切的说是一次沟通。项目是java人力外包,下面就让我介绍一下团队和本次沟通的内容吧。 ## 团队构成 分工 | 人数 | 程序数量 | 平均工龄 ---|---|---|--- 前端(含后台取数) | 4 | 1 | 2 后台 | 4 | 9 | 2 ## 问题 > 1. 发布包升级手册中脚本及问题验证编写粗心,发布包的验证马虎。 > 2. 需求/bug与现场沟通不够 > 3. 问题修复不完整或改出新问题的现象 > 4. 各程序之间的联合测试问题 > 5. svn使用不当,代码冲突或覆盖 > 6. 程序的版本控制问题 在沟通的过程中,大家都可以说出几个如何改进的点。在大家看来,这些都是项目运行过程中都会遇到的小问题。部分成员又是中途插队,很难再短时间内做好这样的工作。但这不是借口。对于如上问题,我也有自己的一些小建议,或者说小看法。 ## 看法 > 发布包升级手册中脚本及问题验证编写粗心,发布包的验证马虎 这个也不能完完全全说是成员个人的问题。在很多团队中,也并不要求成员对文档的编写有很大的要求。往往“麻雀虽小,但五脏俱全”的小团队反而压抑住成员的主人翁精神。这里我并没有说细分工种是件不好的事情。也由...
小祝特烦恼 发布于 1个月前 阅读 216 评论 2

微服务中的模式和反模式

微服务中的常见设计模式 软件开发者对“四人帮”的《设计模式》一书应该都很熟悉,微服务中也会有一些常见的模式: 部署模式 如何部署服务是微服务中的一个重要问题,微服务的部署方式非常灵活,有以下的不同选项可供选择 (参考 http://www.open-open.com/lib/view/open1462434484246.html) 多服务共享主机/虚机 单服务部署单一主机/虚机 单服务部署单一容器(Docker) 无服务部署(serverless),例如AWS Lambda 使用服务部署平台 (Kubernetes,Docker Swarm,Mesos, AWS ECS) 不同的部署方式各有优缺点,重点推荐使用容器编排系统的服务部署平台,能够提供各种灵活的部署方案。 横向关注点 微服务的开发过程中常常会花很多时间来处理一些各个服务都会遇到的问题,例如 如何管理配置信息,例如用户名和口令,服务器的网络地址,等等 日志管理 健康检查 业务度量数据(Metrics)的收集和分析 分布服务的追踪 这里推荐使用一个稳定的微服务框架来处理这些问题,例如基于Java的spring boot,基于Golang的Micro等 API网关  API网关类似服务代理,所有的客户端都通过API网关提供的统一服务API来消费服务内容。 下面是几个开源的API Gateway Kong ( https://github.com...
naughty 发布于 1个月前 阅读 545

OAuth 2.0 认证的原理与实践

使用 OAuth 2.0 认证的的好处是显然易见的。你只需要用同一个账号密码,就能在各个网站进行访问,而免去了在每个网站都进行注册的繁琐过程。 本文将介绍 OAuth 2.0 的原理,并基于 Spring Security 和 GitHub 账号,来演示 OAuth 2.0 的认证的过程。
waylau 发布于 2个月前 阅读 699 评论 6 点赞 2

Qt Creator 中配置 CPLEX 12.63 (MS VC++ 2010 compiler)

MS VC++ 2010 的IDE不怎么友好,Qt Creator 就趁手多了,通过在 .pro 文件配置宏和编译参数等,就可以用 Qt Creator 来写 CPLEX 应用了
阿睦瓦 发布于 2个月前 阅读 114

AES三端加密解密 – iOS与Android,JS的同步实现

AES是开发中常用的加密算法之一。然而由于前后端开发使用的语言不统一,导致经常出现前端加密而后端不能解密的情况出现。然而无论什么语言系统,AES的算法总是相同的, 因此导致结果不一致的原因在于 加密设置的参数不一致 。于是先来看看在三个平台使用AES加密时需要统一的几个参数。 - 密钥长度(Key Size) - 加密模式(Cipher Mode) - 填充方式(Padding) - 初始向量(Initialization Vector) ### **密钥长度** AES算法下,key的长度有三种:128、192和256 bits。由于历史原因,JDK默认只支持不大于128 bits的密钥,而128 bits的key已能够满足商用安全需求。因此本例先使用AES-128。(Java使用大于128 bits的key方法在最后提及) ### **加密模式** AES属于块加密(Block Cipher),块加密中有CBC、ECB、CTR、OFB、CFB等几种工作模式。本例统一使用CBC模式。 ### **填充方式** 由于块加密只能对特定长度的数据块进行加密,因此CBC、ECB模式需要在最后一数据块加密前进行数据填充。(CFB,OFB和CTR模式由于与key进行加密操作的是上一块加密后的密文,因此不需要对最后一段明文进行填充) 在iOS SDK中提供了PKCS7Padding,而JDK则提供了PKCS5Padding,JS提供CryptoJS....
非常夏日i 发布于 2个月前 阅读 72

Mybatis介绍之缓存

本文主要介绍Mybatis的一级缓存、二级缓存,包括它们的原理、应用等,以及如何使用自定义的Cache。
Elim 发布于 3个月前 阅读 1573 评论 10 点赞 3

开源软件的真正价值

这篇文章来自于2016年年会上我和大家的分享。 自从2010年创业至今,已有七年。人常说有七年之痒,创业也不例外。我最近经常在思考:我们团队的价值是什么?下一步的发展方向是什么? 我如何给团队的成员创造更广阔的空间呢?这些问题思考了很久,一直萦绕在心头,郁郁不畅。 春节前,微信小程序发布,腾讯的墙又砌了一道。有感于微信的封闭,还和几位朋友争论过一番。也恰恰是这次契机,让我最终悟到了开源软件的最终价值。 我们通常所能看到的开源软件的价值是实用层面的。 比如我可以免费的使用开源软件,节省我的金钱。 我可以修改开源软件,以让其适应个性化的需求。 我可以从开源软件中学习知识,以提高个人的技能等等。 这些实用层面的价值大家很容易看得到。我这几年创业坚持做开源软件,目的也是为了给用户提供好用的开源软件,也是从实用角度出发的。直到今年年会,和朋友的一些讨论,最终让我悟到了开源软件的最终价值:那就是为用户保留一个选择,让用户还可以有自由选择的权利。 如果没有linux和bsd这样的自由操作系统,很难想像我们现在在用什么。 也正因为有了linux,我们才能有安卓系统,也才有了国内的小米、华为厂商的崛起。 自由选择的权利,大家往往会忽...
开源春哥 发布于 3个月前 阅读 898 评论 16 点赞 16

Mybatis结果集自动映射

在使用Mybatis时,有的时候我们可以不用定义resultMap,而是直接在语句上指定resultType。这个时候其实就用到了Mybatis的结果集自动映射。Mybatis的自动映射默认是开启的,有需要我们也可以将其关闭(还可以调整自动映射的策略)。
Elim 发布于 4个月前 阅读 1865

SpringBoot+SpringMVC+MybatisPlus框架整合练习之【美女图片】爬虫---图文详细流程

最近浏览很多博客,学习了不少新的知识,收获颇多,就想着能不能将新学的知识整合一下来练练手,提高自己撸代码搭框架的能力,还有就是给大家一个新年福利,爬一爬美女图片网站。上车请刷卡,哈哈。顺便就拿这爬来的数据作为基础数据来整合最近学习的框架。一劳多得。当然,本文还是以框架整合为主,爬取美女图片只是为了获取基础数据而已啦!!
邹海清 发布于 4个月前 阅读 2539 评论 16 点赞 5

JMeter配置远程执行

在对容器技术相关的各个组件进行压力测试时,我们选用JMeter作为压测工具,分别对docker daemon, convoy(a docker volume driver), contiv/netplugin (a docker net driver), swarm, etcd, OpenVSwitch, registry进行了压力测试。我们准备了几十台PV作为worker,为了便于本地修改JMeter测试用例后进行调测脚本等,需要对JMeter进行远程执行配置。本文主要记录该配置事项。
WaltonWang 发布于 4个月前 阅读 324

osgi实战项目(osmp)一步一步玩转osgi之第一个服务(7)

前面几篇文章已经讲了一些组件了,今天我们就开始实实在在的动手三分钟完成我们的第一个业务bundle,写一个服务提供对数据的CRUD功能。   我们写一个demo完成学生信息的crud功能。   1、进入osmp下载目录,复制粘贴osmp-utils 并改名为 osmp-demo 2、进入osmp-demo目录,修改pom.xml为以下内容     <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.osmp.baseweb</groupId> <artifactId>osmp-parent</artifactId> <version>1.0.0</version> </parent> <artifactId>osmp-demo</artifactId> <packaging>bundle</packaging> <name>osmp-demo</name> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>${project.artifactId}</Bundle-Sym...
天涯浪子007 发布于 4个月前 阅读 171 评论 1

CDI框架笔记-weld-reference翻译(二)

如需转载,请注明出处,谢谢https://my.oschina.net/equalxx   Chapter 1.Introduction 介绍 你现在是不是特别想开始写你的第一个bean了?或者你很犹豫,不知道CDI规范有什么地方会很难。别急,其实你可能已经写过成千上百个bean了,CDI只是让你用它们更简单地创建一个应用!   1.1  what is a bean 什么是bean bean就是你想的那样。也就现在它在容器环境中有了定义,在java EE 6之前,在javaEE平台上术语”bean”没有明确的定义。当然,我们已经把web和企业级应用里面的java类叫做bean很多年了。甚至在javaEE规范里有好几种不同的叫做bean的东西,这其中包括EJB bean和JSF托管bean。同时,其他的第三方框架,比如Spring和Seam,介绍了他们自己对bean的理解。我们缺一个官方公共定义。   最终Java EE 6在Managed Bean规范中给出了bean的官方定义。Bean被定义为具有最小编程限制的容器管理对象,在某种情形下被称为POJO(Plain Old Java Object)。他们提供少量基本服务,比如资源注入,生命周期回调,以及拦截器。这些规范,比如EJB和CDI,都建立在此基础之上。但是,最终,这些bean和轻量级组件模型都会统一起来,在不同JavaEE平台上保持一致。   大多时候(除了很...
equalxx 发布于 4个月前 阅读 105

Maven--打包添加带有主方法类的信息

maven打包 添加mainClass信息
fajor 发布于 2年前 阅读 1404

IntelliJ IDEA 14 注册码生成

IntelliJ IDEA 14 注册码生成
backtract 发布于 2年前 阅读 3780

Be An Effective Engineer

1.shortcuts see also : http://blog.qiniu.com/archives/730 2.lookup here, I will take the pieces of dev work into diffrent parts. 2.1 handle local files lookup file which I need and process it, compare, preview for example.  everything and beyond compare is recommended. 2.2 handle remote files lookup documents. dash on macOS and zeal on Win is recommended. 3.automate your work 3.1 snipplet snippletis the easiest way to automate your work. You can store the most used code snippletand set an smoothly shortcut for it. 3.2 shell shell everything which is repeating 4.awesome tools see also: https://my.oschina.net/wanjubang/blog/906625...
-鹏 发布于 22小时前 阅读 3

您想参观体验IBM的创新中心,切身体会技术给时代带来的改变么?”

本次活动还特别设有实机操作环节,由IBM的技术大咖带领开发者在短时间内迅速上线人工智能应用。另外在最后,大家还可以参观体验IBM的创新中心,切身体会技术给时代带来的改变。
IBM技术沙龙

没有需求怎么做?

不是所有的软件开发都能从用户嘴里挖出需求的。有时候仅仅是用户懒得理你,可以说是不重视。但无论如何,当着顶头上司羞辱你的用户,绝对是幼稚又冲动的选择。
袁国涛 发布于 3年前 阅读 157

Spring Web的UrlPathHelper的主要方法

基于Spring Web开发的应用,下面这几个方法比较常用,标记一下 /** * Return the mapping lookup path for the given request, within the current * servlet mapping if applicable, else within the web application. * <p>Detects include request URL if called within a RequestDispatcher include. * @param request current HTTP request * @return the lookup path * @see #getPathWithinApplication * @see #getPathWithinServletMapping */ public String getLookupPathForRequest(HttpServletRequest request) /** * Return the path within the servlet mapping for the given request, * i.e. the part of the request's URL beyond the part that called the servlet, * or "" if the whole URL has been used to identify the servlet. * <p>Detects include request URL if called within a RequestDispatcher include. * <p>E.g.: servlet mapping = "/*"; request URI = "/test/a" -> "/test/a". * <p>E.g.: servlet mapping = "/"; request URI = "/test/a" -> "/test/a". * <p>E.g.: servlet mapping = "/test/*"; request URI = "/tes...
wilesun 发布于 6个月前 阅读 121

SpringMVC-Freemarker异常配置

1、spring mvc的异常配置     spring mvc 提供了SimpleMappingExceptionResolver来处理异常,这里的只是由web 请求,经由controller引发的异常,无法处理freemarker的异常 2、freemarker自定义异常 /**  * freemarker页面上的异常控制  * 在webmvc-config.xml里面的freemarkerSettings里头配置  * @author scipio  * @created 2014-02-01  */ public class FreemarkerExceptionHandler implements TemplateExceptionHandler {     private static final Logger log = LoggerFactory             .getLogger(FreemarkerExceptionHandler.class);     public void handleTemplateException(TemplateException te, Environment env,                                         Writer out) throws TemplateException {             log.warn("[Freemarker Error: " + te.getMessage() + "]");             throw new ViewException("freemarker error",te);     } }   这里重新包装异常抛出(这种方式要求比较严格,因为freemarker对个...
xixicat 发布于 3年前 阅读 2474 评论 16

IntelliJ IDEA 14 配置Tomcat8

关于IntelliJ IDEA 14 配置Tomcat8的流程和其中遇到的问题
Gaussic 发布于 2年前 阅读 1279

为基恩士 TM-3000 激光测量仪定制的测量管理系统

为客户定制开发了一套基恩士 TM-3000 测量仪配套的管理系统, 反馈不错. 如果有谁需要定制开发, 可以联系我, liuzhongwu2008@outlook.com
HARRYChinese 发布于 2年前 阅读 333

用户故事地图

用户故事地图主要是一种产品干系人间的沟通方式,通过敏捷开发,精益创业落实最小可行方案,科学迭代学习,故事分合,从而达到一次一点点改变世界的目的.
ericSM 发布于 9个月前 阅读 174

cas4.0服务端

对cas4.0服务端搭建和详解
Mslx 发布于 2年前 阅读 173 点赞 2

(三)solrj使用

1、查询 (1)获取cloud solr server  Collapse source /**  * 获取cloud solr server  * @author caibosi  * @created 2013-12-04  */ public enum SolrServerManager {     CONTRACT_LIST("collection1"),     REQUEST_AUDIT_LIST("collection2");      String serverName;      Logger logger = LoggerFactory.getLogger(SolrServerManager.class);      final int zkClientTimeout = 20000; // 心跳20秒      final int zkConnectTimeout = 10000; // 连接时间10秒     //如果采用的cloud server, 这个地址为zookeeper的地址,192.168.4.129:9983      final String zkHost = "ct.solrcloud.host";      CloudSolrServer cloudSolrServer = null;     private SolrServerManager(String serverName){         this.serverName = serverName;         try {             cloudSolrServer = new CloudSolrServer(ConfigUtil.getValueByKey(this.zkHost));             logger.info("### get solr server");         }...
xixicat 发布于 3年前 阅读 977 评论 1 点赞 1

Hibernate4中让SequenceGenerator支持字符类型的方法

在Hibernate4中,如果要用SequenceGenerator,其要求数据库中的对应字段为NUMBER等数值类型,但是在具体项目中,因为序列对应的字段往往是主键,虽然是数值但并不参与计算,还有一些其他的原因,往往希望字段定义为字符类型,比如VARCHAR2等,这是合理的需求,本文将提供解决该问题的方法。
李玉珏 发布于 2年前 阅读 843 点赞 1

jeesite框架分析

一些 或许有人能用到的说明吧
王小盼 发布于 1年前 阅读 223 评论 2 点赞 1

JEESZ分布式框架-ZooKeeper注册中心安装

注册中心准备 1、建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端(官网这样说的) 2、Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心 3、Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可, 所有注册中心逻辑适配都在调用Zookeeper客户端时完成。
xiaohong3 发布于 6个月前 阅读 134 评论 2

mybatis返回List<Map>

mybatis 不能返回一个包含多个key的map,如果需要,可以拿出来自己组装map 在进行统计相关操作时,也许需要返回如List<map>形式的。 mapperl.xml中: <select id="getAmount" parameterType="int" resultType="java.util.HashMap">        <![CDATA[           select count(*) as amount, estate_type as type, status from estate where status=#{status}  group by estate_type     ]]>     </select> 在mapper.java中 List<Map> getAmount(int status); 需要注意的问题: 1.注意select标签上设置为resultType,而不是ibatis支持的resultClass 2.返回map时select列中最好设置别名。(经验证,当不设置别名时,你需要这个来取数据map.get("count(*)"))。 3.在mybatis中,无论你指定还是不指定返回类型,mybatis都会默认的先将查询回的值放入一个hashMap中(如果返回的值不止一条就是一个包含hashMap的list)。这其中的区别在于,如果你指定了返回类型,mybatis将会根据返回类型的实体类来从hashMap中获取值并set到这个实体类中。如果不指定就默认返回一个HashMap<String,Object>(List<HashMap<String,Object>>)。...
凯文加内特 发布于 4年前 阅读 1012 评论 1

DevExpress v15.1:其它控件升级

<DevExpress Universal Subscription最新版下载> Windows通用应用程序的UI控件 凭借现在投放在Windows 8 XAML平台上的代码,我们已经为微软的下一代通用应用程序平台Windows 10创建了一个集成的控件套件。您在Windows 8上已经使用了的高级控件现在能够自动适应目标平台。 下面的UI控件将附带对Windows 10 / Universal Apps的完整支持: Data Grid Charts Gauges Maps Form Layout Control Data Editors Hub Tiles Ribbon Report Server 现在您可以交付预定报表给已注册客户端账号的两个用户(在您的DevExpress Report Server实例中)以及外部收件人。要启动交付给外部用户,只需制定所需调度任务的外部电子邮件地址即可。 Xamarin Grid Control DevExpress Grid for Xamarin.Forms为您的下一个Android、iOS和Windows Phone应用程序引入了high-impact和企业级产品功能。DevExpress Grid附带了高性能功能,旨在充分满足现在开发人员所需的数据可视化和触摸需求。 包括以下一些功能: 数据分组和排序操作 过滤 数据汇总计算 新项目行 未绑定列 单元格模板 主题支持 刷卡式按钮 专栏自定义/选择器 行详细信息窗格 DevExpress DevAV图标 在新的版本中,我们扩展了图标库,新增了...
Miss_Hello_World 发布于 2年前 阅读 200

Lib之过?Java反序列化漏洞通用利用分析

2015年11月6日,FoxGlove Security安全团队的@breenmachine 发布的一篇博客[3]中介绍了如何利用Java反序列化漏洞,来攻击最新版的WebLogic、WebSphere、JBoss、Jenkins、OpenNMS这些大名鼎鼎的Java应用,实现远程代码执行。
Cnlouds 发布于 2年前 阅读 4629 点赞 1

Eclipse rcp 开发 : 创建插件开发工程

创建插件开发工程
刘小菜 发布于 3年前 阅读 225 评论 1

Solr--企业级搜索引擎简介

企业搜索引擎 Apache Solr
fajor 发布于 2年前 阅读 146

SSM开发环境的搭建(方式一)

SSM全称:Spring-SpringMVC-MyBatis 1.导包。 2.配置web.xml。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>springweb</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-*.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springweb</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <filter> <filter-name>encoding</filter-name> <filter-class> .......xxxFilter </filter-class> <init-param> <param-name>contentType</param-name> <param-value>text/html;charset=utf8</param-value> </init-param> </filter> <fil...
itdebug 发布于 6个月前 阅读 156

盘点那些评分最高的项目管理工具,不服来战!

作为一名开发者,总会接触到项目,而一个好的项目管理工具能让项目管理变得更简单,达到事半功倍的效果。下面是评分最高且收藏量超过 100 的几款项目管理工具,来看看你用过的工具多少分: 1、项目管理和缺陷跟踪工具 Redmine 收藏:744,评分:7.4 Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放 源码软件解决方案,它提供集成的项目管理功能,问题跟踪,并为多个版本控制选项的支持。 2、KanBan 管理应用 Wekan 收藏:116,评分:7.4 KanBan(看板)也叫“看板管理”(来自日语“看板”, カンバン)是丰田生产模式中的重要概念,指为了达到准时生产方式(JIT) 控制现场生产流程的工具,一般常见于生产系统,比如工厂车间或传统IT软件开发……总之无论是个人待办事项列表,假期与一些朋友出行的计划,或是工作团队中革命性的想法,看板都是一个无与伦比的工具,它为您提供项目当前状态的概览,让您能专注于最重要的几个项目,使您的工作效率得到很大的提升。 3、开源项目管理系统 Jitamin 收藏:122,评分:7.3 Jitamin (读作/ˈdʒɪtəmɪn/) 是一款免费、开...
编辑部的故事 发布于 3天前 阅读 2881 评论 6 点赞 4

基于docker官网镜像centos7配置Java运行环境

基于docker官网centos7镜像配置java运行环境,自己安装jdk和tomcat,解决docker容器与宿主机时间不一致问题
ht896632 发布于 3天前 阅读 391 评论 13 点赞 1

【福利】蓝色巨人的云计算PaaS平台IBM Bluemix免费试用!

IBM Bluemix,包含认知、物联网、大数据分析、安全、DevOps、应用、应用整合、移动、计算、网络、存储等 11 大类共 140 多个服务的云计算平台。
IBM Bluemix

springMVC集成springfox和swagger实现接口文档管理

在项目开发过程中,编写接口文档时常对开发人员来说是一件耗时费力的事情。因为不论是先写文档或者是后期补充文档都是一件令人烦恼的事情。 但是,自从swagger UI诞生之后,这件事情将变得简单。在开发人员编写程序的过程中,不必在劳心费神接口api的编写,因为现在是在开发的同时完成了文档编写工作,仅仅几个注解便可以搞定。下面就来看看在spring项目中使用swagger的示例。 一、以下使用已经集成swagger ui静态资源的springfox组件。具体pom配置如下: <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.7</version> </dependency> <dependency> <groupId>co...
小马哥_mark 发布于 4周前 阅读 124 评论 1

UCKeFU v2.0正式版驾到,智能客服系统新选择

历时6个月时间,全新的客服系统,从零开始,到v2.0.0,今天,终于发布首个正式版本! 本次发布的增加了Oracle数据库版本,支持HTTPS。 优客服全渠道客服系统 优客服,是一个全渠道融合的客服系统,融合多个客服渠道,帮助各种行业各种规模的企业建立客服体系。 通过将邮件、短信、电话语音、WebIM 在线客服、微信、微博、H5 页面、APP 接口等多个渠道来源的客户服务请求与对话汇聚在一个管理平台,用统一的方式来响应和支撑客户服务。 1. WebIM在线客服  优客服提供WebIM功能,在线坐席能够通过工作台操作界面,接收来自WebIM的咨询请求,优客服通过整合多个渠道来源,让坐席在同一个工作界面上处理来自PC端、移动端、微信端,微博等渠道的服务请求。 2. 社交媒体 接入微信和微博渠道,将社交媒体渠道的的咨询请求接入进入 优客服 坐席工作平台,让客服统一响应和受理 3. 邮件、短信 多种邮件处理方式,能够将邮箱的消息转为坐席的待处理任务,可以将待处理任务或邮件转为工单 4. 语音 接入企业的呼叫中心,让客服在一个管理界面接听呼入的电话并可以方便快捷的呼出,通过工单记录和后续跟进客户。 5、人工坐席 企业客服人员能够在一个对话界面上同时和来自所有渠道的访客...
优客服多渠道客服系统 发布于 2周前 阅读 202

spring boot 图片的上传与显示

spring boot 图片上传后的图片读取路径在win与linux环境配置的差别 Windows: ``` import org.springframework.context.annotation.Configuration; import org.springframework.util.ResourceUtils; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * * @author Hacker * @date 2017-03-23 08:17:24 * @copyright 云南宣瑞农业科技开发有限公司 * @home https://my.oschina.net/sunhacker * @email dayi_lu@163.com * @qq 471769165 * @phone 18987408181 */ @EnableWebMvc @Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/"); registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX...
SunHacker 发布于 2个月前 阅读 383

腾讯Tars环境搭建中遇到的坑

Tars 环境搭建
longye321 发布于 1个月前 阅读 670 点赞 2

基于docker官方 tomcat镜像容器部署JAVA web项目

基于docker官方 tomcat镜像容器部署JAVA web项目
ht896632 发布于 2周前 阅读 61 评论 2

关于项目中要使用thymeleaf的一些想法

    关于web项目渲染页面数据,有很多模板引擎。初学java的时候jsp最流行,而且我参加第一份工作的时候,也是用的jsp,不外乎其他就是简单。在和同学们交流技术的时候突然听到freemarker velocity这些陌生的词语,当时很困惑,难道jsp不是大家都用的吗?经过一段时间的谷百,才确切的知道原来页面模板这么多,不同公司根据业务场景用的都不同。这就跟发现了新大陆一样,当时有个想法,赶紧学学这些玩意,万一下次跳槽用到了就不会很尴尬。确实学了,然后也用了,直到现在,项目里的大牛已经把freemarker用的出神入化,能用的概念基本上都有涉及。但是,页面已经杂乱无章,前后端严重耦合,让前端同学改个功能,freemarker成了一块绊脚石。这已经违背了使用的初衷。     紧接着看了看velocity,感觉它俩是一个套路,语法也挺简单,为了不将就,干脆就放弃了。     现在不都流行前后端分离,目前的项目中使用的freemarker,做分离的流程是这个样子的:前端同学写好HTML页面,交付后端人员转成ftl,这要求后端人员懂一点HTML JS等。在套的过程中,出现点问题,叫过来前端同学,哇,怎么一堆#if else之类的东西,加个判断之后再加个样式,什么鬼,你怎么不是按照我的来...
坚持的石头 发布于 1个月前 阅读 213 评论 2

mybatis-generator-core自动生成代码,支持生成中文注释、支持分页、提供BaseDao封装

mybatis-generator-core自定义修改,生成中文注释、支持分页、提供BaseDao封装
ht896632 发布于 1个月前 阅读 1012 评论 6 点赞 1

使用flowable构建一个命令行工作流示例

这是一遍翻译的文章,原文地址:http://www.flowable.org/docs/userguides/userguide/index.html#getting.started.command.line
cleanCode 发布于 3个月前 阅读 395

GoodERP要把开源坚持到底

没有双版本 不卖软件 不卖模块 不会闭源 只用GPL协议 会用随便用,不会用有2000元每年的超低价qq群支持 够用随便用,不够用有400元每小时的二次开发
GoodERP 发布于 2天前 阅读 18

Sping WebSocket SockJS使用

注意点: 1、Spring Framework从4.0版本开始支持websocket,示例代码使用的是4.1.3 2、SockJs是一个封装的WebSocket实现,可以支持低版本的IE浏览器。 3、SockJs+Spring-WebSocket时,由于SockJs与Spring WebSocket之间采用JSON通讯,需要引入jackson 2的相关jar包。 4、项目需要使用到Spring MVC。   具体代码实现(小例子): 1、Spring WebSocket配置类 package com.watcher.websocket.spring; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; @Configuration //配置类 @EnableWebSocket //声明支持websocket public class WebSocketConfig implements WebSocketConfigurer{ @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { //注册websocket实现类,指定参数访问地址;allowed-origins="*" 允许跨...
voole 发布于 2个月前 阅读 137

构造iview Tree结构

工程目录和类结构: 1.Book.java  测试model,包含id和父id还有name。 package com.dlmu.sei; /** * * @author zhangtuo * @Date 2017/4/14 */ public class Book { private String id; private String parentId; private String name; public String getId() { return id; } //省略get和set函数,构造函数等。 } 2.Constant.java  常量定义,父节点的uuid默认都是0字符串 package com.dlmu.sei; /** * @author zhangtuo * @Date 2017/4/14 */ public class Constant { public static final String UUID_PARENT = "00000000000000000000000000000000"; } 3.TreeNode.java  树结构model。 package com.dlmu.sei; import java.util.List; /** * iview的tree格式 * @author zhangtuo * @Date 2017/4/14 */ public class TreeNode { private String title; private boolean extend;//是否扩展 private List<TreeNode> childrens; public String getTitle() { return title; } //省略get和set函数以及toString函数。 } 4.TreeUtil.java 生成树的类,以递归的方式构造。 package co...
海蛎子大呲花 发布于 1个月前 阅读 51

调用已有BOTP下推生成单据

采购检验报告(标准)下推不合格评审记录表
小康爱学习 发布于 2周前 阅读 12

B2B2C开源系统众筹项目启动(以ShopsN开源核心为版权基础)

最近网上流传大量使用ShopXX的站长被其起诉,索赔几十万的消息连续不断。之前用盗版的时候不当一回事,等到对方发律师函了才开始紧张了,但这又有什么用那?对方是有公证处取证的,官司几乎不可能赢。网站开发公司,为了拉活大包大揽,不写明是二次开发,被客户列为第二被告,也陷入了困境。 怎么办? 开源中国电商榜首位的shopsn全网电商ShopsN官方,应大家强烈要求,准备公开组织b2b2c商城众筹开发。 框架将以目前shopsn的b2c自有著作权的开源核心源码为基础,采用ThinkPHP5.0开发,完美支持php7. 上海亿速网络科技有限公司2003年成立于上海,注册资金100万。以ShopsN开源电商系统官方及自身公司信誉为背书,组织起这次活动。具有极高的信誉和可靠性。只需要一点小钱,就可以获得具有正版版权的,价值25万人民币的系统一套。名额有限,仅限100名。想用b2b2c,又没钱买正版,用盗版又怕被告?开源众筹团队群号:422171904 预计3个月出测试版,4个月出正式版,并且今后将继续采用开源模式,保证有充足的开发者熟悉这套系统。  
五核全网开源免费电商 发布于 2个月前 阅读 364 评论 1

ECMALL(ECMOS)更好的开源电商系统

ECMOS 基于ECMALL深度定制的开源电商系统,以致利于免费提供更好的系统与服务,来为大量的开发者与使用者提供更好的选择
bornlau 发布于 2个月前 阅读 113 点赞 1

基于Ignite+Lucene+Log4j2的分布式统一日志查询最佳实践

目前,企业级应用在集群环境下的日志查询,一直是一个痛点,给开发和运维人员带来了一定的困扰,本文基于新的思路,设计了一种新的技术方案,实现了在一个统一的界面中,像数据库表一样对全集群范围的日志进行查询,极大地方便了开发和运维人员,而且具有很强的灵活性。
李玉珏 发布于 1个月前 阅读 822 评论 13

AOSuite V3.0 发布,开源JavaEE快速开发平台

AOSuite V3.0发布了,这个版本包含 11 个新增/修复/优化。 版本变更日志 1、【修复】修复了Httpclient工具类设置连接超时时间和等待响应时间无效的bug。 2、【新增】新引入了标准标签中的fn标签库和fmt标签库。 3、【新增】在表格管理中加入了表格列分割线的范例。 4、【优化】将代码生成器生成的**Dao.xml中的模糊查询%xx%改为xx%。(MySQL中的前后模糊查询会导致该字段的索引失效而全表扫描)删除了生成java文件后导入依赖类的冗余依赖。 5、【新增】针对MySQL数据源增加了&allowMultiQueries=true参数,实现MyBatis的SQLMapper中批量执行SQL的能力。 6、【删除】按照“”组合由于继承“”原则,删除了AOSBaseService基类,并调整了相关代码。 7、【优化】优化了ID生成器的生成策略和相关算法。 8、【优化】优化了主界面水平导航条的显示逻辑,当只有一个导航按钮的时候导航条被自动隐藏。 9、【优化】重新规范了JSP页面中相关属性名和变量名的命名规范。类w_add纠正为w_add、id_no纠正为id_no等。 10、【优化】重构了数据库表及字段命名规范。将表命名aos_org_改为aos_org、字段命名parent_id_改为parent_id,并对程序中波及到的相应代码进行了重构。[批注:以前表和字...
云岭名公子 发布于 2个月前 阅读 169

docker常用命令总结——安装、镜像、容器基本操作

Docker 常用命令总结以及镜像、容器的基本操作
ht896632 发布于 3周前 阅读 472 评论 2

基于睿思BI-开源商业智能系统实现数据快速可视化

  “睿思BI”系统V3.0 支持用户对已有数据进行快速建模,快速分析及可视化。 下载源码地址:http://git.oschina.net/ruisibi/rsdashboard 1.创建数据源      1.1)点击系统 “数据建模” 菜单进入数据建模模块,在数据源管理点击“新增”按钮创建新的数据源。     1.2)录入数据源名称,类型,连接字符串,用户名,密码等信息,点击“测试链接”,提示测试成功后点击“确认”按钮。 2.创建数据集     2.1) 点击左边“数据集”菜单,系统进入数据集管理页面,点击“新增”按钮创建新的数据集。     2.2)创建数据集包括选择表,建立表关联等操作,如果只选择了一个表,不用建关联。     2.3)操作完成后点击“确定”按钮保存数据集。 3.创建立方体         3.1)点击左边"立方体"菜单,系统进入立方体管理页面,点击“新增"按钮创建新的数据立方体。     3.2)立方体包括基本信息,立方体信息等内容,录入立方体名称,选择对于的数据集,再点击”立方体“信息选项卡,设置立方体的”维度“及”度量“,设置过程如下图:     3.3)点击”确定“按钮完成立方体的创建。 4.分析数据     4.1)点击页面顶部”多维分析“菜单,系统进入数据多维分析页面,...
ruisibi 发布于 1周前 阅读 30

【重大更新】DevExpress v17.1新版亮点(ASP.NET篇)

用户界面套包DevExpress v17.1日前正式发布,本站以连载的形式为大家介绍各版本新增内容。本文为大家介绍DevExpress ASP.NET v17.1中新的Hint Control控件,GridView Control、Chart Control等的新功能。快来下载试用新版本! New Hint Control 新版本为ASP.NET WebForms和ASP.NET MVC附带了全新的Hint Control。如您所料,DevExpress ASP.NET Hint Control可根据需要生成的内容,将其显示在一个框中,并将箭头指向网页上指定的UI元素。 功能包括: 触发操作显示提示(悬停,点击,聚焦,编程) 显示提示之前可自定义延迟 动画效果 标注元素可用性 位于目标元素之上(底部,顶部,左侧,右侧) 标题文本/标记(静态或从目标元素属性检索) 自定义尺寸(高/宽) 绝对定位(x / y) GridView Control Command Toolbar 在新版本中,ASP.NET Grid、Card View、Vertical Grid和TreeList Control附带可自定义的工具栏 - 允许您组合最常用的网格命令进行快速访问。您可以根据需要添加或删除工具栏、更改其位置和内容。工具栏项可以出发标准网格命令(例如数据项目编辑,删除,创建等)和任何自定义操作。 Chart Control 增强Legend DevExpress Chart legend项现在可以同时显示标记...
Miss_Hello_World 发布于 2小时前

Linux基金会执行董事 Jim Zemlin 将在 LinuxCon 做主题演讲,你来不来?

这场活动将三场会议的内容整合为一体,是一场面向开发人员、运营专家(架构师、系统管理员和开发运营人员)、以及商业、合规和法律领袖与其他专业人员的技术大会。
Linux

Be An Effective Engineer

1.shortcuts see also : http://blog.qiniu.com/archives/730 2.lookup here, I will take the pieces of dev work into diffrent parts. 2.1 handle local files lookup file which I need and process it, compare, preview for example.  everything and beyond compare is recommended. 2.2 handle remote files lookup documents. dash on macOS and zeal on Win is recommended. 3.automate your work 3.1 snipplet snippletis the easiest way to automate your work. You can store the most used code snippletand set an smoothly shortcut for it. 3.2 shell shell everything which is repeating 4.awesome tools see also: https://my.oschina.net/wanjubang/blog/906625...
-鹏 发布于 22小时前 阅读 3

Hibernate自动创建表hibernate.hbm2ddl.auto 异常

hibernate.hbm2ddl.auto=update 无效
Shawyee 发布于 2天前

【重大更新】DevExpress v17.1新版亮点(WinForms篇)

用户界面套包DevExpress v17.1日前正式发布,本站以连载的形式为大家介绍各版本新增内容。开篇介绍DevExpress WinForms v17.1中Data Grid Control 、Diagram Control 、Editors的新功能等。快来下载试用新版本! Data Grid Control 合并列分组 使用新的v17.1版本,您可以通过将适当的列标题拖到组面板上并使用CTRL键将其排列在一行,从而合并我们的WinForms和WPF Data Grid的分组列。拖动该行下方或上方的列标题可拆分合并的分组。 Chart Control Legend Enhancements DevExpress Chart legend项现在可以同时显示标记和复选框。 Diagram Control 显示/隐藏Subordinate Shapes Editors 全新的Side Panel v17.1附带了全新的WinForms Side Panel - 一个可调整大小的窗口,具有一个像素边框、支持边框捕捉和重叠大小。 Map Control 增强Design-Time 现在WinForms Map design-time提供以下功能: 能够使用数据源配置向导将WinForms Map Control绑定到任何类型的数据源上。 只需点击几下鼠标即可使用未绑定的MapItem填充Map Control。 能够通过拖放重新排列地图图层。 PDF Viewer 高亮文本显示 在此版本中,PDF Viewer可以突出显示文本。 Pivot Grid Control 性能改进 新版本改进...
Miss_Hello_World 发布于 2天前 阅读 6

基于docker官网镜像centos7配置Java运行环境

基于docker官网centos7镜像配置java运行环境,自己安装jdk和tomcat,解决docker容器与宿主机时间不一致问题
ht896632 发布于 3天前 阅读 391 评论 13 点赞 1

盘点那些评分最高的项目管理工具,不服来战!

作为一名开发者,总会接触到项目,而一个好的项目管理工具能让项目管理变得更简单,达到事半功倍的效果。下面是评分最高且收藏量超过 100 的几款项目管理工具,来看看你用过的工具多少分: 1、项目管理和缺陷跟踪工具 Redmine 收藏:744,评分:7.4 Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放 源码软件解决方案,它提供集成的项目管理功能,问题跟踪,并为多个版本控制选项的支持。 2、KanBan 管理应用 Wekan 收藏:116,评分:7.4 KanBan(看板)也叫“看板管理”(来自日语“看板”, カンバン)是丰田生产模式中的重要概念,指为了达到准时生产方式(JIT) 控制现场生产流程的工具,一般常见于生产系统,比如工厂车间或传统IT软件开发……总之无论是个人待办事项列表,假期与一些朋友出行的计划,或是工作团队中革命性的想法,看板都是一个无与伦比的工具,它为您提供项目当前状态的概览,让您能专注于最重要的几个项目,使您的工作效率得到很大的提升。 3、开源项目管理系统 Jitamin 收藏:122,评分:7.3 Jitamin (读作/ˈdʒɪtəmɪn/) 是一款免费、开...
编辑部的故事 发布于 3天前 阅读 2881 评论 6 点赞 4

【版本升级】DevExtreme v17.1.3震撼来袭|附下载

DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动、Web开发框架,可以直接在Visual Studio集成开发环境,构建iOS,Android,Tizen和Windows Phone 8应用程序。DevExtreme包含 PhoneJS 和 ChartJS 两个原生UI组件,并且提供源代码。目前,DevExtreme支持VS2010/2012/2013集成开发环境,兼容Android 4+、iOS5+、Windows 8、Window Phone 8、Tizen五大移动平台,是Visual Studio开发人员开发跨平台移动产品的首选工具。 【DevExtreme v17.1.3下载】 下面的列表包含了v17.1.3中引入的所有重要更改。 Data Visualization #  BC4049 - Data Visualization Widgets - 当标签重叠时,轴标签和刻度线的操作已更改。 在旧版本中,ticks一直绑定到标签上。因此不可能生成彼此接近的刻度,因为标签将重叠。现在ticks和labels是单独控制的。如果在应用程序中,您依赖于Chart,PolarChart,RangeSelector,CircularGauge和LinearGauge小部件中特定的标签操作,则可能需要对代码进行更正。 Chart and PolarChart  argumentAxis / valueAxis / commonAxisSettings.label.overlappingBehavior 根据您之前使用的值,进行以下更正: "enlargeTickInterval"更改...
Miss_Hello_World 发布于 3天前 阅读 4

CI 经常失败?可能是这 5 大原因…

本文翻译自文章 [Top 5 Reasons for CI Failure](https://dzone.com/articles/top-5-reasons-for-continuous-integration-failure),主要介绍了 CI 失败的五个原因,包括 CI 服务的错误选择、CI 工程师的不专业性、随意更改CI服务器配置、CI服务器性能差、缺乏管理等。由 [flow.ci-Meng](http://blog.flow.ci/author/meng/) 编译整理。 _____ 敏捷开发不可能完美,必须有 CI 实践的助力。CI 是持续进行分析、构建、测试和部署的自动化流程,在正式发布到生产环境之前,CI 会检查代码质量和测试产品的业务逻辑。 理想情况下,在构建失败时不能让项目或软件部署到生产环境。但是,持续集成的理念并不被每一个敏捷团队适用。一些敏捷团队非常重视 CI 实践,有的只是为了做敏捷而做,而有些团队完全忽视CI,更有甚者从未配置过 CI 服务器。 在团队中导致CI实践被忽视有各种原因。 我们都知道企业具有不同的优先级,产品经理可能并不理解内部质量、测试流程和完整构建的重要性。 技术经理不能分配时间来实施 CI 实践或修复出现问题的 CI 系统。 产品和技术经理无法了解彼此的优先级,导致部署了一个失败的产品交付给终端用户,并传递了一个非常糟糕的商业价值。 这种方法看似没...
风起云飞fir_im 发布于 3天前 阅读 4

emacs里用ebrowse解析已有的c++工程

个人问题解决过程
小保哥 发布于 5天前 阅读 4

虚拟机内存模型简介

Java虚拟机内存简单模型 方法区和堆是所有线程共享的数据区域,虚拟机栈、本地方法栈和程序计数器是每个线程都有自己的数据的。 程序计数器:一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。此内存区域是唯一一个在java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。 虚拟机栈:该部分内存主要用于存储局部变量表、操作数栈、动态链接、方法出口等信息。有人经常把Java内存划分为堆内存和栈内存,这种说法是比较粗糙的,这中划分的栈内存就是虚拟机栈中的局部变量表部分;局部变量表存储的是编译期可知的各种基本类型数据、对象引用类型,局部变量表所需内存在编译期就分配完成,方法运行器不会改变内存大小的。对于这部分内存规定了两种异常: 当线程请求栈的深度大于虚拟机栈允许的深度时,抛出StackOverflowError; 无法申请到足够的内存空间时,抛出OutOfMemoryError; 本地方法栈和虚拟机栈发挥的作用相似,也会抛出StackOverflowError和OutOfMemoryError异常; Java堆,该部分是虚拟机管理的最大的一块内存,被所有线程共享,此区域的唯一目的就是存放实...
石飞飞 发布于 5天前 阅读 5

IDEA调试功能使用总结

先编译好要调试的程序。 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。   2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试。 IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。   3.单步调试 3.1 step over 点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行) 3.2 step into 点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下: 在自定义方法发f1()处设置断点,执行调试 点击   如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。 3.5 Drop frame     点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用...
monroeCode 发布于 6天前 阅读 8

swagger2处理数组的坑

问题:springmvc的方法参数用Long[]接收,那么swagger注解该怎么写,才能正常的从swagger接收,网上大部分都是对象、基本类型,没有涉及到数组 处理方式:springmvc中Long[],对应的swagger的dataType为:Array[long] 这是自动生成时的,当时当我指定的时候,就不识别了,但是可以不写   @ApiImplicitParam(name = "erpIds", value = "erpIds", paramType = "query") 效果如下: public ResponseResult getPaginate(Long[] erpIds) throws Exception { LOG.info("erpIds:{}", Arrays.asList(erpIds)); }  
maolujun 发布于 6天前 阅读 3

【版本升级】DevExpress v17.1.3全新发布|附下载

DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用最多的.NET用户界面控件套包,DevExpress广泛应用于ECM企业内容管理、 成本管控、进程监督、生产调度,在企业/政务信息化管理中占据一席重要之地。 它主要的特点是:高效率和高实用性,拥有大量丰富的示例和帮助文档,开发者能够快速上手。在国内,DevExpress也拥有大量用户,资料比较完善,相互交流方便,慧都控件网更为广大用户量身定制了:DevExpress视频教程 |   Devexpress企业定制培训 |  DevExpress汉化资源  | 金牌技术支持,帮助用户快速掌握DevExpress,打造成功软件。 更多资源请查看【DevExpress控件专题】【DevExpress 2015更新说明文档】【DevExpress中文官方网站】 【适用范围】:各种桌面、Web应用程序及移动开发,尤擅长Winforms、ASP.NET、WPF应用程序开发,广泛应用于ECM企业内容管理、 成本管控、进程监督、生产调度,在企业/政务信息化管理中占据一席重要之地。 【DevExpress v17.1.3下载】 .NET #  BC4003 - PdfEncryptionOptions.OwnerPassword,PdfEncryptionOptions.UserPassword和PdfPasswordRequestedEventArgs.Password属性已经过...
Miss_Hello_World 发布于 6天前 阅读 2

Jasypt加解密配置文件

转:https://my.oschina.net/apdplat/blog/405306 本文我们以数据库的用户名和密码为例子,来讲解在APDPlat中我们如何使用开源项目Jasypt来实现加解密。 首先,我们引入依赖库,使用Maven方式如下: <dependency>     <groupId>org.jasypt</groupId>     <artifactId>jasypt</artifactId>     <version>1.5</version> </dependency> 其次,接下来我们看看如何加密: import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig; /**  *把密文放到配置文件中的时候要注意:  * ENC(密文)  * @author 杨尚川  */ public class ConfigEncryptUtils {     public static void main(String[] args){         //加密工具         StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();         //加密配置         EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();         config.setAlgorithm("PBEWithMD5AndDES");         //自己在用的时候更改此密码   ...
super-will 发布于 6天前 阅读 6

Spring profile 多环境切换

转:http://blog.lifw.org/post/68990012 spring允许我们通过定义 profile 来将若干不同的 bean 定义组织起来,从而实现不同环境自动激活不同的 profile 来切换配置参数的功能,下面介绍以 xml 的方式定义 profile、如何激活 profile以及定义默认的 profile,整个过程我以配置不同环境的数据源为例,为了简化配置,这里假设只有开发和生产两个环境。   数据源定义为 1 2 3 4 5 6 7 8 9 10 11 12 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">     <property name="user" value="${jdbc.user}" />     <property name="password" value="${jdbc.password}" />     <property name="jdbcUrl" value="${jdbc.jdbcUrl}" />       <property name="driverClass" value="${jdbc.driverClass}" />     <property name="initialPoolSize" value="${c3p0.initialPoolSize}"/>     <property name="acquireIncrement" value="${c3p0.acquireIncrement}"/>     <property name="minPoolSize" value="${c3p0.minPoolSize}"/>     <property name="maxIdleTime" value="${c3p0.maxIdleTime}"/>     <property nam...
super-will 发布于 6天前 阅读 2

springmvc使用jodo-time的坑

问题:系统里面出现1980-04-29以前的日期,有时自动使用注解自动转换会少一天,但是1989-05-01以后,转换就没问题 查询问题:查看springmvc默认转换器源代码: 意思是:根据classpath下面的依赖,来采用哪一种日期进行转换,后来发现我们项目下面确实有joda包:joda-time-2.3.jar   解决方式: 1、删除其,通过源码发现,那会使用jdk自带的,java.time.LocalDate,则正常 2、joda-time-2.3版本进行升级(未尝试)
maolujun 发布于 7天前 阅读 12

Nginx的启动、停止与重启

启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root[@LinuxServer](https://my.oschina.net/u/1770067) sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 停止 nginx的停止有三种方式: 从容停止   1、查看进程号 [root[@LinuxServer](https://my.oschina.net/u/1770067) ~]# ps -ef|grep nginx ![输入图片说明](http://images2015.cnblogs.com/blog/848552/201601/848552-20160102182744854-1291053517.png "在这里输入图片标题")   2、杀死进程 [root[@LinuxServer](https://my.oschina.net/u/1770067) ~]# kill -QUIT 2072 ![输入图片说明](http://images2015.cnblogs.com/blog/848552/201601/848552-20160102182652354-960281274.png "在这里输入图片标题") 快速停止 1、查看进程号 [root[@LinuxServer](https://my.oschina.net/u/1770067) ~]# ps -ef|grep nginx ![输入图片说明](http://images2015.cnblogs.com/blog/848552/201601/848552-20160102183103651-1859453208.png "在这里输入图片标题") 2、杀死进程 [root[@LinuxServer](https://my.oschina.net/u/1770067) ~]# kill -TERM 2132 或 [root@LinuxServe...
zh151832 发布于 7天前 阅读 5

【DevExpress v17.1新功能预告】WinForms和WPF Diagram控件 - Pan Tool

DevExpress即将发布v17.1版本,本文主要为大家介绍即将发布的新版本包含WinForms和WPF Diagram Controls的两个新功能。 Pan Tool 如下图所示,Diagram的新Pan Tool允许您可最终用户在任何方向移动或平移图表。 显示或隐藏Subordinate Shapes 无论是构建工作流程、组织结构图还是其中的任何内容,这个新功能都有助于提高应用程序的可用性和复杂图表的整体组织。 新版本中还包含了一些可用的选项,包括控件折叠按钮对齐及其位置的功能等。 =============================================================== 想要进一步了解如何使用DevExpress WinForms和WPF Diagram控件? DevExpress v17.1即将发布,更多精彩预告请持续关注DevExpress中文网! 扫描关注DevExpress中文网微信公众号,及时获取最新动态及最新资讯
Miss_Hello_World 发布于 1周前 阅读 27

解决在Filter中读取Request中的流后, 然后再Control中读取不到的做法

前段时间在开发中遇到这个问题,在网上搜索找到了解决方法, 在Filter中的处理 ``` public class SessionFilter extends GenericFilterBean { private static Logger log = LoggerFactory.getLogger(SessionFilter.class); @Override public void doFilter(ServletRequest req, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 为了避免此次读取request流后面control读取不到 HttpServletRequest request = (HttpServletRequest) req; HttpServletRequest requestWrapper = new BodyReaderHttpServletRequestWrapper(request); 。。。业务代码 if(null == requestWrapper) { chain.doFilter(request, response); } else { chain.doFilter(requestWrapper, response); } } } } ``` ``` package com.szkingdom.jros.va.util; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.n...
zh151832 发布于 1周前 阅读 29

企业所得税年报仅剩两周!还未申报的注意这4个问题!

离企业所得税年报结束仅剩下两周,小编提醒还没有申报年报的企业得抓紧时间了!最近咨询小编企业所得税年报的问题非常大,小编总结了近期遇到的几个系统及填写问题,与大家分享。 1、企业所得税年报提交提示报错“A104000《期间费用明细表》中(第4行第1列+第4行第3列)应等于A105000《纳税调整项目明细表》中(第15行第1列)? 答:是民非组织,不涉及A104000表,因此不会出A104000表,系统问题,预计18号晚间修复。 2、中华人民共和国企业年度关联业务往来汇总表提交提示报错“G100000行次15列3不能为0,请核实”? 答:地税申报企业,存在关联关系没有关联交易,系系统问题,待答复。 3、“研发支出”辅助账汇总表上传提示报错“研发支出辅助账汇总表第4行第9列应等于研发项目可加计扣除研究开发费情况归集表第9列,您填写的所计算出的合计值为918417.11,应为1478417.11”? 答:请核实企业所得税年报中研发项目可加计扣除研究开发费情况归集表第9行填写是否有误,若有误则需要更正16年年报。若填写正确,请核实研发支出辅助账汇总表中“研发形式”和“资本化、费用化支出选项”是否选择正确,具体可以参照 财税[2015]119号 。 4、请问研发支出辅助账项目编号,18-21位...
苏州注册公司 发布于 1周前 阅读 9

Mybatis查询延迟加载

本文主要介绍Mybatis延迟加载的原理、启用等。
Elim 发布于 5个月前 阅读 4573 评论 4 点赞 2

远程过程调用(RPC)详解

本文介绍了什么是远程过程调用(RPC),RPC 有哪些常用的方法,RPC 经历了哪些发展阶段,以及比较了各种 RPC 技术的优劣。
waylau 发布于 10个月前 阅读 5832 评论 27 点赞 20

7 款顶级开源 BI(商务智能)软件和报表工具

在这个信息化时代,每分每秒都产生海量数据。在海量数据中,挖掘出有用的数据,并且能以较人性化、直观的方式展示这些数据,变得尤为重要。本文将介绍 7款顶级开源 BI(商务智能)软件和报表工具,用于商业数据的分析处理,希望对您有所帮助。
催呀催呀 发布于 11个月前 阅读 5562 评论 22 点赞 25

Linux基金会执行董事 Jim Zemlin 将在 LinuxCon 做主题演讲,你来不来?

这场活动将三场会议的内容整合为一体,是一场面向开发人员、运营专家(架构师、系统管理员和开发运营人员)、以及商业、合规和法律领袖与其他专业人员的技术大会。
Linux

Spring 4.3 的新功能和增强

本文介绍了 Spring 4.3 的新功能和增强的特性。
waylau 发布于 11个月前 阅读 7855 评论 24 点赞 9

用JS实现简单的神经网络算法

笔者尝试用JavaScript实现最简单的神经网络算法。 神经网络简介 神经网络试图模拟大脑的神经元之间的关系来处理信息。它的计算模型通常需要大量彼此连接的节点。每个神经元通过某种特殊的输出函数来处理来自其它相邻神经元的加权输入值。 神经元之间的信息传递的强度,用所谓的加权值来定义,算法会不断的调整加权值来实现自我的学习过程。 神经网络分为多层,如上图,有输入层,隐藏层和输出层。 JS线性代数包 神经网络的计算涉及到大量的矩阵计算,有许多的线性代数的开源的软件,Python下有著名的numpy,非常有名。 Javascript也有几个: http://numericjs.com/index.php https://github.com/jstat/jstat https://mkaz.tech/javascript-linear-algebra-calculator.html  我使用了numericjs,效果还不错。推荐大家可以试试。 两层神经网络 我们有一些简单的输入输出的数据用来训练神经网络。这里每一行代表一条数据。输入有三个参数,输出是一个。 Inputs 0 Inputs 1 Inputs 2 Output 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 首先我们实现一个最简单的神经网络,没有隐藏层,输入直连输出。 因为输入是三个参数,输出是一个,所以我们的神经网络输入层是三个节点,输出是1个。...
naughty 发布于 12个月前 阅读 3732 评论 9 点赞 6

干货|建议初创团队起初也要构建分布式应用

  干货|建议初创团队起初也要构建分布式应用   本文内容整理自W-Time技术分享沙龙-天津站现场演讲《一切都是分布的》,演讲者:李傲,问啊联合创始人,前中交车联网总架构。   好多人都会问什么是架构师?其实架构师的定义很宽泛,前端后端的定义都不一样。作为后端出身的架构师,我认为后端并不是大家想的封装组件,它要定义的是规划,规划模块之前的关系。在一台机器搞不定时怎么办?答:集群!这词说着很容易,但真要给你,你发现how?怎么去加?   有人问我,架构师要做什么?我认为,架构师就是要在软件起初阶段就能够从情景当中预先想到这问题,通过架构分布式解决方案,预先把问题都埋好。可能有人会说这算不算重度设计?其实所谓重度设计,要看团队的基本能力,如果团队写代码还写不利索的情况下,那么这个设计就很重要。因为不能指望一个代码都没有写过几行的人去写架构,这个是不可能的,做分布式都很难。如果团队能力属于中上层,那么有两种可能:1、团队做过十几年的代码,但架构差一些,那么也会把程序写的非常漂亮,因为对代码有把控能力,对底层的研究比较透彻;2、代码写的并不是很好,但是架构师对新技术有了解,那么也是有可能做好分布式的。如...
刘星石 发布于 1年前 阅读 4127 评论 14 点赞 8

使用开源软件快速搭建数据分析平台

本文介绍了如何使用开源软件迅速的搭建一个数据分析平台,包含数据导入,变形,分析,预测,可视化。
naughty 发布于 1年前 阅读 9938 评论 56 点赞 47

Elasticsearch 2.2.0 分词篇:中文分词

在Elasticsearch中,内置了很多分词器(analyzers),但默认的分词器对中文的支持都不是太好。所以需要单独安装插件来支持,比较常用的是中科院 ICTCLAS的smartcn和IKAnanlyzer效果还是不错的,但是smartcn不支持自定义词库,所以优先用IKAnanlyzer。
赛克蓝德 发布于 1年前 阅读 5996 评论 18 点赞 6

Elasticsearch 2.20 高亮显示

Elasticsearch中的高亮显示是来源于lucene的功能,他允许在一个或者多个字段上突出显示搜索内容, lucene支持三种高亮显示方式highlighter, fast-vector-highlighter, postings-highlighter.
赛克蓝德 发布于 1年前 阅读 6794 评论 6 点赞 5

Elasticsearch 2.20入门篇:聚合操作

聚合(Aggregations)提供分组和统计文档的能力。聚合类似关系数据库中group by分组的功能,在Elasticsearch中,对一次的聚合查询中可以同时得到聚合的具体结果再次进行聚合,这是一个非常有用的功能。你可以通过一次操作得到多次聚合的结果,从而避免多次请求,减少网络和服务器的负担。
赛克蓝德 发布于 1年前 阅读 8502 评论 5 点赞 4

mycat实现mysql读写分离实践

mycat是一个的数据库中间件,基于阿里开源的cobar产品而研发,由几个有志之士的牛人共同完成并开源。提供高可用性数据分片集群,自动故障切换,高可用性 ,支持读写分离,支持Mysql双主多从,以及一主多从的模式 ,支持全局表,数据自动分片到多个节点,用于高效表关联查询 ,支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询多平台支持,部署和实施简单。 今天来实践下用mycat实现mysql的读写分离,1.配置mysql端主从数据同步,2.用mycat实现读写分离,配置mysql端主从数据同步不作讲解,这里详细介绍下用mycat实现数据读写分离 新建数据库读库和写库 分别在两个不同主机下新建两个大库,读库r和写库w,在读库r下新建3个数据库分片(db1,db2,db3),在写库w下也新建3个分片(db1,db2,db3)。 1.db1分片脚本 /* Navicat MySQL Data Transfer Source Server         : mysql Source Server Version : 50527 Source Host           : localhost:3306 Source Database       : db1 Target Server Type    : MYSQL Target Server Version : 50527 File Encoding         : 65001 Date: 2016-01-27 1...
rock912 发布于 1年前 阅读 9558 评论 21 点赞 18

获取spring 的bean 方法总结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?  Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的接口,它提供了高级IoC的配置机制。BeanFactory使管理不同类型的Java对象成为可能,应用上下文(com.springframework.context.ApplicationContext)建立在BeanFactory基础之上,提供了更多面向应用的功能,它提供了国际化支持和框架事件体系,更易于创建实际应用。我们一般称BeanFactory为IoC容器,而称ApplicationContext为应用上下文。但有时为了行文方便,我们也将ApplicationContext称为Spring容器。    对于两者的用途,我们可以进行简单划分:BeanFactory是Spring框架的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext而非底层的BeanFactory。 工厂方式:Resource resource = new ClassPathResource("/applicationContext.xml");              BeanFactory factory = new XmlBeanFactory(resource); factory.getBean(strName);    ApplicationContext的初始化和BeanFactory有...
hello菜bird 发布于 1年前 阅读 8462 评论 16 点赞 8

运维中被低估的日志

日志在运维中的作用是非常重要的,但非常不幸,日志在很多运维中被严重低估,直到磁盘空间不足的时候才想到,这有个大的日志文件把他删了,这样可以节省空间。
赛克蓝德 发布于 1年前 阅读 5204 评论 16 点赞 15 打赏 1

开源进销存PSI - 关于PSI开源协议的一些说明

关于PSI开源协议的一些说明
PSI 发布于 2年前 阅读 2326 评论 11 点赞 6 打赏 1

我如何在OSC上做开源项目

讲述我如何在OSC上做开源项目的经验体会
PSI 发布于 2年前 阅读 3966 评论 19 点赞 9

一个开源软件作者和邮件通知奋斗的血泪史

序章: 9月18日,禅道发布了7.3版本,这是禅道五年内发布的第65个开源版本,也是我们和邮件通知斗争五年的“血泪史”。这个版本我们最终集成了一个大招,来彻底解决邮件通知的问题。先卖个关子,后面详细讲我们的大招是啥。 背景: 禅道(http:/www.zentao.net)是我们团队开发的一款开源项目管理软件,主要定位是研发项目管理。面向的用户群体主要是研发团队,部署场景主要是企业内部的私有服务器。这是我们这个故事的大背景。然后悲惨的故事就开始了。 打不死的小强:Email 禅道软件在使用过程中的一个需求是需要将软件里面的各种动态消息通知到相关的人员。解决这个问题可以有很多种手段:客户端软件的提醒,QQ的提醒, 微信的提醒,短信的提醒,邮件的提醒,浏览器的桌面提醒等等。每种手段都有各自的优劣,然后我们与之奋斗了五年之久的邮件就粉墨登场了。在上述的各种通知 手段中,以邮件通知最为广泛,和用户的使用习惯契合度也最为密切。说到这儿,也许有的朋友说,我们团队邮件早都不用了。其实我们还是低估了邮件顽强的生命 力。邮件系统作为自互联网初期就存在的基础服务系统,有着广泛的用户基础。一直有各种各样的协同软件试图干掉邮件,但很遗憾的是,到现在还...
开源春哥 发布于 2年前 阅读 7594 评论 25 点赞 8

从开源到众包---写在2015“程序员”节

我们要打造众包平台帮大家找靠谱的项目,让大家一边干着私活一边树立个人品牌,直到实现财富自由!
老马 发布于 2年前 阅读 5168 评论 50 点赞 18

基于可视化复杂SQL拼接插件 QueryBuilder

基于Web的自定义查询系统在国内一直是一个短板,目前国内普遍的自定义查询均为一个简单的查询组件的罗列,达不到真正的实现动态、智能化的自定义查询。本系统就是在这个背景下,着力于解决这个短板,并将一个demo发布出来。
码上中国博客 发布于 2年前 阅读 4307 评论 34 点赞 15

我匆匆那年撸的开发平台G4Studio成功落户OSC : )

G4Studio行业应用二次快速开发平台基于JavaEE技术体系,面向中小软件企业。以“标准功能可复用、通用模块可配置、行业需求快速开发、异构系统无缝集成”为目标,为中小软件开发团队提供强有力的一站式解决方案。
云岭名公子 发布于 2年前 阅读 8364 评论 35 点赞 11

Location:Action,新的JSON序列化的思路

序列化Json,是当前火爆的互联网世界的一种最基础的技术之一,最常用的是采用Annotation&SerializerFeature 方式,国内流行的fastjson,还有国外流行的jackson都是这样。然而,这种方法有一定的局限性。会遇到各种奇葩序列化要求而很难做到。或者json工具作者不得不按照奇葩需求开发更多的序列化实现。本文介绍了常规思路的瓶颈,以及新思路,附带一个beetl-json实现(用了2周)来说明这个新的思路
闲大赋 发布于 2年前 阅读 6972 评论 57 点赞 18
顶部