开源中国

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

It appears you’re using an unsupported browser

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

精彩阅读

  • 最新推荐

  • 本周热门

  • 每日一博

  • 最新文章

PHP 在 Console 模式下的进度显示

最近在群里看到一问题:说一个脚本执行了很长时间不知道执行多少了,有没有什么方法能够知道进度,就想起许早时接触换行符的经历,就着墨一二以做记录。
dingdayu 发布于 3小时前 阅读 61

Poi读取Excel引发的内存溢出

前言 最近生产环境有个老项目一直内存报警,不时的还出现内存泄漏,导致需要重启服务器,已经严重影响正常服务了。 分析 1.dump内存文件 liunx使用如下命令: ./jmap -dump:format=b,file=heap.hprof pid 2.使用Eclipse Memory Analysis进行分析 异常如下: t org.apache.poi.xssf.usermodel.XSSFRow.<init>(Lorg/openxmlformats/schemas/spreadsheetml/x2006/main/CTRow;Lorg/apache/poi/xssf/usermodel/XSSFSheet;)V (XSSFRow.java:68) at org.apache.poi.xssf.usermodel.XSSFSheet.initRows(Lorg/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorksheet;)V (XSSFSheet.java:157) at org.apache.poi.xssf.usermodel.XSSFSheet.read(Ljava/io/InputStream;)V (XSSFSheet.java:132) at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead()V (XSSFSheet.java:119) at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead()V (XSSFWorkbook.java:222) at org.apache.poi.POIXMLDocument.load(Lorg/apache/poi/POIXMLFactory;)V (POIXMLDocument.java:200) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(Ljava/io/InputStream;)V (XSSFWorkboo...
ksfzhaohui 发布于 3小时前 阅读 29

杭州源创会揭晓码云新域名,红薯真的只穿开源内裤登台了?!

转眼就是又一年来到杭州举办源创会,感谢下雨天趟着小河水如约而至的各位,本期所有分享PPT下载链接可在文末查看。
源创会

SPRING REST API 返回结果处理和异常处理

在处理定制的返回结果时,Spring framework 4.0 提供了比较完整的方法,包括正常返回和异常处理
OrangeJoke 发布于 5小时前 阅读 57

XLSUnit,面向数据库的单元测试工具

大多数程序员和项目经理回避单元测试是因为工作量巨大且在面向数据库应用没有很好的工具能支撑,XLSUnit是我在公司研发部开发的一款面向数据库的单元测试工具,它能有效减少单元测试代码量和辅助面向数据库应用测试
闲大赋 发布于 7小时前 阅读 67

CentOS 7.3 + Server JRE 1.8 + Hadoop-2.8.0 

本文节选自《Netkiller Linux 手札》由于工作的关系最近几年没有使用hadoop,今天看了一下版本已经到了2.8, 跟数年前用的版本差异还是很大的。于是便想更新一下文档,顺便温故知新。
neo-chen 发布于 10小时前 阅读 20 评论 1

Android基于UPnP/DLNA的智能设备媒体互联

有趣的 在一个项目工作中偶然接触到 UPnP -- 一个基于本地网络的即插即用设备互联协议标准,后来经了解发现 UPnP 是个很有趣的东西。这个协议有一些特性(详细信息可参考官方资料 http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v2.0.pdf) ⦁ 对等,没有主次 所有 UPnP 网络中的设备及可以提供服务,也可以主动发起数据传输,设备的角色取决于软件(不像 USB 协议那样的主从模式)。如果一个设备实现了 AVTransport 那么它可以提供媒体渲染服务,例如一台智能电视;如果设备实现了 ContentDirectory 那么它可以提供流媒体服务,例如开启媒体流的功能的 PC;如果设备是使用 ControlPoint 那么它就像是个智能遥控器,例如安装一些 DLNA 控制软件的手机;一台设备可以同时支持多个服务,例如Windows Media Player它即可以接受渲染推送来的媒体,也可以吧媒体推送到其他设备上播放(Play To)。UPnP网络中的设备没有一个Master,所有设备都是对等。 ⦁ 即插即用,零配置 这个即插即用不是硬件层面的(不像USB那样的串行总线设备拓展),而是通过本地网络实现。设备可以动态加入网络(通过SSDP发现设备),传达其功能(使用XML描述),并了解其他设备的存在和功能。...
KnightMobi 发布于 23小时前 阅读 110 评论 2 点赞 2

Jboot集成Redis来实现缓存技术方案

现在osc上有大量的文章来说springboot整合redis实现缓存的技术方案,比如:《SpringBoot集成Redis来实现缓存技术方案》,网址:https://my.oschina.net/feinik/blog/1023601 但是殊不知如果使用Jboot来实现使用redis的技术方案,要比springboot简单100000000000倍。 第一步:maven依赖jboot <dependency> <groupId>io.jboot</groupId> <artifactId>jboot</artifactId> <version>1.0-alpha4.1</version> </dependency> 第二步:配置jboot的缓存配置文件jboot.properties jboot.cache.type= redis jboot.cache.redis.host = 127.0.0.1 第三步:在Service使用缓存(注解方式) @Singleton public class UserServiceImpl implements UserService { @Cacheable(name = "user",key = "#(id)") public User getUserById(@Named("id") String id) { return new User(); } } @Singleton public class ArticleServiceImpl implements ArticleService { @Cacheable(name = "article", key = "articleListCache:#(user.id)", unless="user == null") public List<Article> getArticleListByUser(@Named("user...
michaely 发布于 1天前 阅读 715 评论 27 点赞 5

Solr查询语言 JSON Request API

JSON Request API是一套优雅高效查询语法,尤其在搜索统计方面带全新的体验,既简洁又漂亮。绝对是一次非常美好的体验。
大明别跑 发布于 1天前 阅读 207

oracle中,通过触发器,记录每个语句影响总行数

触发器, 包,关联数组
noonoo 发布于 1天前 阅读 151 评论 3

【干货】Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件

    在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA、ResourceManager HA之后(详见我的另一篇博文:Apache Hadoop 2.8分布式集群详细搭建过程),接下来将搭建最新稳定版的Apache Hive 2.1.1,方便日常在自己电脑上测试hive配置和作业,同样的配置也可以应用于服务器上。以下是Apache Hive 2.1.1的安装配置详细过程 1、阅读Apache Hive官网说明文档,下载最新版本Hive        Hive是一个基于Hadoop的数据仓库工具,将HDFS中的结构化数据映射为数据表,并实现将类SQL脚本转换为MapReduce作业,从而实现用户只需像传统关系型数据库提供SQL语句,并能实现对Hadoop数据的分析和处理,门槛低,非常适合传统的基于关系型数据库的数据分析向基于Hadoop的分析进行转变。因此,Hive是Hadoop生态圈非常重要的一个工具。        安装配置Apache Hive,最直接的方式,便是阅读 Apache Hive官网的说明文档,能了解到很多有用的信息。Apache Hive 要求JDK 1.7及以上,Hadoop 2.x(从Hive 2.0.0开始便不再支持Hadoop 1.x),Hive 可部署于Linux、Mac、Windows环境。        从官网下载最新稳定版本的 Apache Hive 2.1.1 2、安装配置Apache Hi...
雪饼 发布于 1天前 阅读 122 点赞 1

Spring整合Hessian与分析

前言 上一篇文章Hessian入门体验与分析介绍了hessian的简单入门,并且从源码层面对Hessian的调用流程进行了分析;发现使用原生的Hessian还是比较繁琐的,下面看看Spring与Hessian进行整合并且进行简要分析。 使用 提供三个模拟块,分别模拟client,server以及被依赖的jar;对应的模块名称分别是:hessianClient,hessianServer以及hessianJar 1.hessianJar介绍 hessianJar主要提供被hessianClient和hessianServer依赖的公共类,这里主要提供了接口类IHessianService和pojo对象Bean IHessianService类: public interface IHessianService { public String getString(String value); public Bean getBean(); } 对象Bean: public class Bean implements Serializable { private static final long serialVersionUID = 1L; private String value; public Bean(String value) { this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } 2.hessianSever介绍 hessianServer主要用来对外提供服务的,因为hes...
ksfzhaohui 发布于 2天前 阅读 346 评论 1 点赞 1

Glide--Golang包版本管理工具

Glide--Golang 包版本管理工具
岁月无痕 发布于 2天前 阅读 478 评论 10 点赞 2

Dockerfile 最佳实践

Dockerfile 最佳实践
william3608 发布于 2天前 阅读 529 点赞 1

微信小程序后台解密用户数据

微信小程序后台解密用户数据具体搭建步骤分享
第九程序 发布于 2天前 阅读 460 评论 6 点赞 1

我是这样翻译 CraftyJS 的

最近博主在翻译 CraftyJS 的官方文档,或许你还不知道 CraftyJS 是什么,好吧,先来一张图! 想做网页小游戏不是一两天的事了,但说实话一直没找到满意的游戏框架,JS水平又很烂,平面设计水平还一塌糊涂,这可怎么活啊!默哀三分钟。。。 一个偶然的机会博主发现了 CraftyJS ,深入了解之后,博主觉得就是它了,因为他足够小,足够简单,足够灵活,这就足够了!但随后博主发现网上关于这款游戏引擎的文档简直是少的可怜,幸好官方的文档还算给力,组织的比较清晰,似乎也比较完备。博主英文是相当的差劲(默哀三分钟。。。),还好混了几年IT,简单的单词还算识得,不过看着还是很吃力的,更何况在没有游戏开发背景的情况下,里边有很多专业的术语是很难理解的,想到中国还有千千万万像博主这样满怀一腔热情,但是英文不过关的同志们,于是博主决定将整个官网翻译成中文以方便后来者。(话说官方难道就不打算出了中文网站么,不打算在天朝发展么,天朝人多势众啊!) 下边就来讲讲我翻译 CraftyJS 的经历,各位吃瓜群众准备好瓜子茶水前来围观吧!!! 首先我在官网上发现原来这个网站的页面源码有在github上托管(这真是感谢党感谢人民啊,还好不用我一个页面一个页面的在...
-无名小卒- 发布于 3天前 阅读 134 评论 4 点赞 1

cairo 图形库

简介 提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件是QT和GTK+,相对于框架性质的QT,GTK+则依然保持着自由与开放的传统,从底层绘图到上层程序库都由其他开源库组成,cairo就是GTK+采用的底层图形库,负责构建图形界面。cairo是一款开源的2d矢量图形库,支持多种后端输出,用c语言编写而且模块化设计得很出色。这篇博客介绍一份cairo的windows移植和定制(Visual Studio 编译),及跟windows的全新图形子系统DXGI对接,通过DXGI来显示cairo产生的图像帧,即基于cairo的不依赖操作系统GUI、不依赖于应用程序框架的图形库。博客的主要内容是介绍、分析、演示 cairo 图形库 cairo能够做各种复杂的点线图案绘制、填充、文字渲染、图像变换、剪切、层混合等等操作。但是他没有涉及到用户交互,如鼠标、touch、事件处理,交互窗口,这些统统没有,他只有专一的绘图。他有surface可以理解为画布,这个surface可以是基于内存(image surface,必选的surface)也可以基于某种backend(和操作系统或驱动接口对接),使用过程是创建一个surface,然后在surface里做各种绘图,最后使用Painting类...
KnightMobi 发布于 3天前 阅读 362 评论 8 点赞 1

Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】

> 已经有非常长的时间没有更新《Spring Cloud构建微服务架构》系列文章了,自从开始写Spring Cloud的专题内容开始就获得了不少的阅读量和认可,当然也有一些批评,其中也不乏一些很中肯的意见和深度的问题,对我来说也是进一步提高的契机,在此感谢所有关注我博客的读者们。 > > 由于之前主要精力都花在的编写《Spring Cloud微服务实战》一书上,所以该系列文章就没有得到持续的维护和更新。由于漫长的写书过程和繁琐的出版流程,在本书一面世的时候,在版本上已经落后于当前的最新版本。虽然在书中前前后后加入了一些版本更新的注意事项,但是认识过程不是一蹴而就的,总是随着实践的深入慢慢发现的。所以,决定重写一下该系列文章,一方面将Spring Cloud的版本更新到Dalston,另一方面重新组织内容并增加一些之前没有写过的重要组件。希望通过这个系列,来帮助准备使用Spring Cloud的朋友们快速入门。同时,也是作为《Spring Cloud微服务实战》一书对最新版本做一些不同内容的补充。 ## Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策...
程序猿DD 发布于 3天前 阅读 546 评论 3 点赞 2

使用Kubeadm快速搭建Kubernetes(docker)

使用Kubeadm快速搭建Kubernetes(docker)
jinzili777 发布于 3天前 阅读 205

安全发布之Jvm友好关闭

小伙伴们一定很熟悉kill -9 来杀某个进程了,其实这样做在生产系统中是存在安全隐患的。 我们知道线程分为守护线程和用户线程。如果是系统中存在的均是守护线程,那么调用JVM的关闭讲课以关闭否则(存在至少一个用户线程)是无法正常关闭的。 因此代码能否响应中断是一个很重要的标志。 我们熟悉的Java的GC线程 就是一个很典型的守护线程。 各位在关闭tomcat时,在使用到线程池时经常会碰到调用tomcat的关闭脚本无法正常关闭就是因为系统中存在一些非守护线程导致无法正常退出导致。 那么各位可能想了,我将所有的线程池起的线程都设置为守护线程那么在调用shutdown的时候是否时就会正常关闭呢? thread.setDaemon(true); 答案是肯定的,但是带来一个其他的问题===》如果此时代码只执行了一半那么怎么处理呢?比如你消费了一个jms的消息,但是没有消费完成,然后‘砰’所有的线程灰飞烟灭,恰巧这个消息里面是个1000w的大单…… 严重: The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 2013-1...
Mr_Qi 发布于 3天前 阅读 370 评论 9 点赞 1

微信小程序实战篇-分类页面制作

今天第九程序要教大家微信小程序分类页面的制作,废话不多说,先上效果图。
第九程序 发布于 3天前 阅读 610 评论 5 点赞 4

图说Java —— 理解Java机制最受欢迎的8幅图

世间总是一图胜过千万言! 下面的8幅图来自于 Program Creek 的 Java教程 ,目前这是该网站最受欢迎的文章. 希望本文能帮你回顾你已经知道的那些知识。如果图片讲解的不够清晰,你可能需要阅读详细的文章或者进行搜索。 1. String对象不可改变的特性 (详情请点击上面的标题查看) 下图显示了如下代码运行的过程: String s = "abcd"; s = s.concat("ef"); 中文参考:Java String 详解      2. equals()与hashCode()方法协作约定 HashCode(哈希编码,散列码)是设计了用来提高性能的.  equals()与hashCode()方法之间的关系可以概括为: 2.1 如果两个对象相等(equal),那么必须拥有相同的哈希码(hash code) 2.2 即使两个对象有相同的哈希值(hash code),他们不一定相等. 中文参考: HashMap的实现原理     3. Java 异常类层次结构 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明. 另一类异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理。 而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。 中文示例: Exception 4. 集合类层次结构关...
Java程序员-10 发布于 7小时前 阅读 278

一位资深程序员大牛给予Java初学者的学习路线建议

Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。   在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。   如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。   一、Java基础首先去找一个Java的基础教程学一下,这里可以推荐一个Java学习交流的QQ群(群号码:523047986)你可以到这个群里找相应的视频教程。学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下...
Java程序员-10 发布于 4小时前 阅读 219

写好Java代码的30条经验总结

成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。   (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。   Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。   (2) 为了常规用途而创建一个类时,请采取”经典形式”,并包含对下述元素的定义: equals()   hashCode()   toString()   clone()(implement Cloneable)   implement Serializable   (3) 对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测...
java学习资料 发布于 12小时前 阅读 207 评论 1

写给自己的Java程序员学习路线图

如下是我做开发这几年经常使用一些技术和工具,当然这些技术也都是需要加强的(有些是我一直使用的,不过不深入,有些内部的原理等等不是很清楚) 前端部分:        1)HTML:网页的核心语言,构成网页的基础        2)CSS:使网页更加丰富多彩灿烂的利器        3)JavaScript:使网页动起来的根本,加强了网页和用户之间的交互        4)HTML DOM:换一种更加形象化的角度来看待网页,让我们更加方便的控制网页        5)HTML BOM:与浏览器交互不可或缺的工具        6)JavaScript库,主要是:jQuery及其插件、YUI及其插件,使编写网页更加的方便快捷和健壮的强大工具        7)AJAX:异步提交,增强了用户使用网页的良好交互体验        8)JSON: 比 XML 更小、更快,更易解析的数据传输工具        9)FLEX:提供丰富多彩的动画效果        10)普元工作流:更加清晰明了的帮助用户处理业务流程上面的工作        11)JSP:Servlet的展示层,使网页逻辑与网页设计的显示分离        12)JSTL:加强和简化了JSP页面的开发        13)EL:使JSP页面写起来更加简单 后台部分: ...
Java程序员-10 发布于 9小时前 阅读 174

杭州源创会揭晓码云新域名,红薯真的只穿开源内裤登台了?!

转眼就是又一年来到杭州举办源创会,感谢下雨天趟着小河水如约而至的各位,本期所有分享PPT下载链接可在文末查看。
源创会

浅谈Java中的equals和==

  在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str2 = new String("hello"); 3 4 System.out.println(str1==str2); 5 System.out.println(str1.equals(str2));   为什么第4行和第5行的输出结果不一样?==和equals方法之间的区别是什么?如果在初学Java的时候这个问题不弄清楚,就会导致自己在以后编写代码时出现一些低级的错误。今天就来一起了解一下==和equals方法的区别之处。 一.关系操作符“==”到底比较的是什么?   下面这个句话是摘自《Java编程思想》一书中的原话:   “关系操作符生成的是一个boolean结果,它们计算的是操作数的值之间的关系”。   这句话看似简单,理解起来还是需要细细体会的。说的简单点,==就是用来比较值是否相等。下面先看几个例子: public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int n=3; int m=3; System.out.println(n==m); String str = new String("hello"); String str1 = new Strin...
Java程序员-10 发布于 4小时前 阅读 132

web前端开发学习路线

导语:首先分享一下我的经验,想做好一件事,必须要花费一些功夫,然后是多学、多思、多练、多交流、多总结,发现自己的问题,然后一定要克服,在状态不好的情况下,往往要及时调整。新手学习前端的话,一定要想想    首先分享一下我的经验,想做好一件事,必须要花费一些功夫,然后是多学、多思、多练、多交流、多总结,发现自己的问题,然后一定要克服,在状态不好的情况下,往往要及时调整。新手学习前端的话,一定要想想为什么要学习它,是出于一种什么心态,然后定位好自己,多向大牛请教,多教一些没有自己水平高的人,那样往往能让自己成长的快,切勿急躁。初学可以看一些入门视频教程,之后可以买一些书,做一些小项目,要学会投资,分析自己的现状及能力,实时调整,一定要有自己的想法,懂得创新。在这里一定要对自己做分析,然后找出一种适合的学习方法。   Web前端的学习误区   网页制作是计算机专业同学在大学期间都会接触到的一门课程,而学习网页制作所用的第一个集成开发环境(IDE)想必大多是Dreamweaver,这种所见即所得的“吊炸天”IDE为我们制作网页带来了极大的方便。   入门快、见效快让我们在不知不觉中已经深深爱上了网页制作。此时,很多人...
前端攻城狮-Dawn 发布于 10小时前 阅读 126

给Java程序员的几条建议

对于Java程序猿学习的建议   这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是LZ你是如何学习Java的,能不能给点建议?   今天LZ是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。   在大家看之前,LZ要先声明两点。   1、由于LZ本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。   2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。   第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。   一、Java基础   首先去找一个Java的基础教程学一下。   学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。   学完...
Java程序员-10 发布于 10小时前 阅读 121

JavaScript 声明全局变量的三种方式

JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。 声明方式二: 没有使用var,直接给标识符e赋值,这样会隐式的声明了全局变量e。即使该语句是在一个function内,当该function被执行后e变成了全局变量。 声明方式三: 使用window全局对象来声明,全局对象的属性对应也是全局变量,详细如下: e = 10; function tt(){ c = 1; window.d = 50; } tt(); alert(c); alert(d); alert(e); f = { aa : "aa" } alert(f.aa);  
卢瑶 发布于 7小时前 阅读 123

Android基于UPnP/DLNA的智能设备媒体互联

有趣的 在一个项目工作中偶然接触到 UPnP -- 一个基于本地网络的即插即用设备互联协议标准,后来经了解发现 UPnP 是个很有趣的东西。这个协议有一些特性(详细信息可参考官方资料 http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v2.0.pdf) ⦁ 对等,没有主次 所有 UPnP 网络中的设备及可以提供服务,也可以主动发起数据传输,设备的角色取决于软件(不像 USB 协议那样的主从模式)。如果一个设备实现了 AVTransport 那么它可以提供媒体渲染服务,例如一台智能电视;如果设备实现了 ContentDirectory 那么它可以提供流媒体服务,例如开启媒体流的功能的 PC;如果设备是使用 ControlPoint 那么它就像是个智能遥控器,例如安装一些 DLNA 控制软件的手机;一台设备可以同时支持多个服务,例如Windows Media Player它即可以接受渲染推送来的媒体,也可以吧媒体推送到其他设备上播放(Play To)。UPnP网络中的设备没有一个Master,所有设备都是对等。 ⦁ 即插即用,零配置 这个即插即用不是硬件层面的(不像USB那样的串行总线设备拓展),而是通过本地网络实现。设备可以动态加入网络(通过SSDP发现设备),传达其功能(使用XML描述),并了解其他设备的存在和功能。...
KnightMobi 发布于 23小时前 阅读 110 评论 2 点赞 2

java初学者最关心的五个问题

很多人学习Java不知道从什么地方学起,今天给大家聊一下初学者怎么系统并且有效率的学习Java 废话不多说直接说干货,首先我们要明白一点,你目前的身份是什么,如果是学生,就用学生的学习方式,如果是你想转行的人就用转行人的学习方式。 问题一:能看懂,不会写 相信这是所有初学者的问题,就是看视频,能看懂,但自己写就不会,这一点非常重要,就是我们要掌握一个非常恰当而且适合自己的学习方法,根据我的经验,接触过很多初学者,学着学着放弃的失败的原因基本都是相同的,但是一直坚持下去,而且学的不错的人学成功的方法却都是不同,这是我自己的感觉,至于学习方法要看你自己适合什么,也可以加我的交流群像我请教。 问题二:学完就忘记 我们如果克服了第一问题,就会立马迎来第二个问题,比如我们的HTML标签和一些css属性,用浮动去实现一个效果,几天之后发现,这个我怎么不会用了,就在脑海中,怎么都想不起来,这里我给大家说的是,我们学习每一个知识点,必须跟三个案例以上,只有应用到实处,实际操作中,才能更好的记忆,在你学习之后的知识点,要不断的温习前面的东西,不然一定会忘记。如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是...
java学习资料 发布于 2周前 阅读 106 点赞 1

Petya勒索病毒疫苗出现,分分钟让电脑对病毒免疫

继wannacry之后,Petya勒索软件攻击再次席卷全球,对欧洲、俄罗斯等多国政府、银行、电力系统、通讯系统、企业以及机场造成了不同程度的影响。   研究发现,Petya 会锁定磁盘的 MFT 和 MBR 区,导致计算机无法启动。除非受害者支付赎金解锁,否则无法恢复他们的系统。但在此前的wannacry勒索软件事件发生的时候,阿里聚安全就建议大家不要支付赎金,一方面支付赎金后不一定能找回数据,其次这些赎金会进一步刺激攻击者挖掘漏洞,并升级攻击手段。   好消息是Cybereason安全研究员Amit Serper已经找到了一种方法来防止Petya (notpetya / sortapetya / petna)勒索软件来感染电脑,这种方法简直一劳永逸!   研究员蜂拥寻找killswitch机制 在Petya 爆发的第一时间,国内外安全研究人员们蜂拥而上对其进行分析,一开始他们认为Petya无非是新瓶装旧酒,和其他勒索软件相似。但在进一步研究过程中,他们发现这是一种全新的勒索蠕虫病毒。因此它的名字从Petya逐渐变为Notpetya,Petna,以及SortaPetya。   研究员分析勒索软件的运作机制后,发现NotPetya会搜索本地文件,如果文件已经在磁盘上存在,那么勒索软件就会退出加密。这意味着,受害者只需要在自己电脑上创建这个文...
阿里聚安全 发布于 7小时前 阅读 93

t-io 和 Voovan 并发性能测试

前段时间写了有篇有关并发框架的文章Netty、t-io、Voovan 框架浅谈得到了大家不少的关注,其中更有位朋友在留言中希望将 Voovan 和 t-io 进行一个性能测试。
愚民日记 发布于 9小时前 阅读 90 点赞 2

Redis的安装与使用(单节点)

IP:192.168.4.111 环境:CentOS 6.6 Redis版本:redis-3.0 (考虑到Redis3.0在集群和性能提升方面的特性,rc版为正式版的候选版,而且很快就出正式版) 安装目录:/usr/local/redis 用户:root   编译和安装所需的包: # yum install gcc tcl   下载3.0版Redis(当前最新版redis-3.0.0-rc5.tar.gz,请学员们在安装时自行选用最新版) # cd /usr/local/src # wget https://github.com/antirez/redis/archive/3.0.0-rc5.tar.gz   创建安装目录: # mkdir /usr/local/redis   解压: # tar -zxvf 3.0.0-rc5.tar.gz # mv redis-3.0.0-rc5 redis3.0 # cd redis3.0   安装(使用PREFIX指定安装目录): # make PREFIX=/usr/local/redis install 安装完成后,可以看到/usr/local/redis目录下有一个bin目录,bin目录里就是redis的命令脚本: redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-server   将Redis配置成服务: 按上面的操作步骤,Redis的启动脚本为:/usr/local/src/redis3.0/utils/redis_init_script 将启动脚本复制到/etc/rc.d/init.d/目录下,并命名为redis: # cp /usr/local/src/redis3.0/utils/redis_init_script /etc/r...
liwei2000 发布于 9小时前 阅读 72

基于t-io的httpserver雏形版已经开源

一个雏形版而已,发布一条新闻,是不是有点小题大作的味道?t-io是在4月开始开源的,之后有好些人跟我反馈很想知道t-io是如何一步一步发展起来的,现在有机会从零开始了解t-io的httpserver,所以此条新闻纯属知会型新闻。 httpserver的代码在https://git.oschina.net/tywo45/t-io的src/zoo目录,代码极少,告诉大家一个运行入口吧:demo\httpserver-1工程的org.tio.http.demo.server1.HttpServerDemo1Starter,代码导入到eclipse后,运行HttpServerDemo1Starter,之后在浏览器中敲入:http://127.0.0.1:9527,便会出现下图界面: 因为此条新闻纯属知会型新闻,审核估计也通不过,所以也不详写了,想了解更多t-io动作的朋友还是来更好用的码云上关注t-io吧----不过想把t-io用在生产环境,还是先了解一下t-io的各种正负面新闻比较妥当,以免要上了贼船。 差点忘了说,如果以前没下载过t-io的朋友,你在下载全部代码后,需要先运行一下bin/install.bat。既然是雏形版,那么功能和性能可能都不会太好,想见证从零到成熟的朋友,可以关注。  ...
talent-tan 发布于 12小时前 阅读 69 评论 4

XLSUnit,面向数据库的单元测试工具

大多数程序员和项目经理回避单元测试是因为工作量巨大且在面向数据库应用没有很好的工具能支撑,XLSUnit是我在公司研发部开发的一款面向数据库的单元测试工具,它能有效减少单元测试代码量和辅助面向数据库应用测试
闲大赋 发布于 7小时前 阅读 67

SPRING REST API 返回结果处理和异常处理

在处理定制的返回结果时,Spring framework 4.0 提供了比较完整的方法,包括正常返回和异常处理
OrangeJoke 发布于 5小时前 阅读 57

PHP 在 Console 模式下的进度显示

最近在群里看到一问题:说一个脚本执行了很长时间不知道执行多少了,有没有什么方法能够知道进度,就想起许早时接触换行符的经历,就着墨一二以做记录。
dingdayu 发布于 3小时前 阅读 61

灵异现象记录...

一个仿佛触碰到了世界的禁忌的错误   mysql表结构如下     当我作如下查询时, (2013, 'Lost connection to MySQL server during query')   燃鹅当我改了下表名,或者字段名   甚至于查别的表   都是ok的。。。。   是的, dashboard是“门”, 这个世界为虎作伥的控制者们设立的绝对的“门”。 它伫立在于自然规则不得不为被选中的“造访者”存在的“界”前。 冰冷的控制者们不想稀释掉保以他们无限知识的“界”,投机取巧地制定了不可思议的门槛,一方面向自然阐述dashboard的必要性,获得规则的准可,另一方面暗箱操作,压制着全部生灵无法成长到门槛的高度。 好比就是,简单地把可怜的蚂蚁面前的糖拎了起来。既是“现实”,但却剥离了“存在”。 而这样的举动,引起了创造者的低语, 他们背负殊途的使命,有着异样于控制者的视界, 既是自然规则所有的“界”,则是与万物生灵一样同属自然的子嗣,亦是需要被承认被认可被渴求不被囚禁的“存在”。 他们提出抗议,却没有受理者。 他们想抹除dashboard,但无法跨越控制者。 他们想告诫万物,然而dashboard就像勒索病毒,上一把锁永远比解一个谜要简单太多。 回过神来, 是的, 即便他们自诩正义,dashboard也并非邪...
守恒的猫 发布于 4小时前 阅读 40 打赏 1

Elasticsearch简单使用系列--安装

包括es版本,安装,自举检查,常见配置等
liuchangng 发布于 2小时前 阅读 32

Redmine3.3.3 搭建与不完全填坑指南

Redmine3.3.3 + SQL Server2012,根据回忆整理的,笔记不在手边。后续更新详细笔记。搭建过程中的各种坑:gemfile、railsinstall版本、tiny_tds0.6.2 bug、内网搭建等等....
蛮大人 发布于 20小时前 阅读 23

全栈开发——动手打造属于自己的直播间(Vue+SpringBoot+Nginx)

#前言 大学的学习时光临近尾声,感叹时光匆匆,三年一晃而过。同学们都忙着找工作,我也在这里抛一份[简历](http://139.199.82.213:8080/LiveDemo/resume)吧,欢迎各位老板和猎手诚邀。我们进入正题。直播行业是当前火热的行业,谁都想从中分得一杯羹,直播养活了一大批人,一个平台主播粗略估计就有几千号人,但是实时在线观看量有的居然到了惊人的百万级别,特别是游戏主播,可想而知,直播间是一个磁铁式的广告传播媒介,也难怪这么多巨头公司都抢着做直播。我不太清楚直播行业技术有多深,毕竟自己没做过,但是咱们可以自己实现一个满足几百号人同时观看的直播间呀。 ---------- # 最终成果 * [演示地址(电脑端与移动端效果不同哦)](http://139.199.82.213:8080/LiveDemo/live_room) * [服务端项目地址](https://github.com/jack-hoo/LiveRoomDemo_Server) * [客户端项目地址](https://github.com/jack-hoo/LiveRoomDemo_Client) > 手机端效果 ![动图](http://www.veton.cc/LiveDemo/dongtai1.gif ) 这个场景很熟悉吧~~ 通过obs推流软件来推流。 ![图片描述](https://static.oschina.net/uploads/img/201706/23132352_igQv.png "在这里输入图片标题")![] 户外直播,通过...
jack-hoo 发布于 6天前 阅读 5679 评论 59 点赞 31 打赏 1

【码云周刊第 26 期】十分钟搭建自己的问卷调查系统

每周为您推送最有价值的开源技术内参!
开源中国码云 发布于 6天前 阅读 2756 评论 2 点赞 3

全国首款实用的股票多账户管理|股票多账户管理分布式系统

全国首款实用的股票多账户管理|股票多账户管理分布式系统|QQ:653714026,电话:13564123143
Sell反向跟单软件 发布于 6天前 阅读 1564

工作中redis合库以及aof踩坑记

概述     此文是第一次搞redis主从小白犯的错,大神可以忽略。记录为了让看到本博文的小白前车之鉴 软件资源             centOs:6.5             redis:2.8.10  背景               公司现有架构均是单机模式,本文仅先介绍redis单机踩的坑-- 即生产应用redis均是单一实例,一旦实例挂掉功能就会不可用。现公司业务使用了一台实例(业务实例),一台session共享实例(session实例)。             现需要对现有架构升级(后续会出整个架构升级的相关博客),先从最简单的redis开始开刀,采用主从复制,启用哨兵监听进行主从切换(后续会有相关详细博客)。 基本问题  线上redis仅启用了rdb持久化,需要启用AOF 线上业务实例和session实例 keys<1W,可以把业务实例和session实例合并节约资源 踩坑记     AOF挖坑       已经搭建了主从模式,创建了多个key验证没问题, 很开心ing, 发现需要启用AOF,查看官方文档认为so easy, 于是乎 改改改配置,重启服务,在主节点添加了一个key,主从验证通过, 非常开心ing。     【敲黑板,开始挖坑了哈】 此时模拟极端故障,把主从节点都停掉了,开始依次开启服务,发现仅有开启...
java_龙 发布于 1周前 阅读 2373 评论 19 点赞 3

除了 Python ,这些语言写的机器学习项目也很牛

Python 由于本身的易用优势和强大的工具库储备,成为了在人工智能及其它相关科学领域中最常用的语言之一。尤其是在机器学习,已然是各大项目最偏爱的语言。 其实除了 Python ,也不乏有开发者用其他语言写出优秀的机器学习项目。在此,列出其中一些个人认为值得关注的开源机器学习项目。由于篇幅有限,考虑分多期整理。 1、C Darknet —— 神经网络框架 Darknet 是一个用 C 和 CUDA 编写的开源神经网络框架。它快速,易于安装,并支持 CPU 和 GPU 计算。 CCV  —— 计算机视觉库 CCV 是 C-based/Cached/Core Computer Vision Library 的简称, 它是一个现代的计算机视觉库。 CCV 是一种以应用驱动的算法库,比如对静态物体(如人脸)的快速检测算法、对某些不容易定位物体(如猫)的准确检测算法、艺术文本的检测算法、长期目标的跟踪算法和特征点检测算法。 2、C++ CNTK —— 深度学习工具包 微软出品的开源深度学习工具包,它把神经网络描述成一个有向图的结构,叶子节点代表输入或者网络参数,其他节点计算步骤。 CNTK 不仅使深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)和长短时记忆单元(LSTM)的实现变得非常容易,还支持多个 GPU 组合、服...
编辑部的故事 发布于 1周前 阅读 5828 评论 21 点赞 11

期货资管软件|期货资管代理商系统使用说明

专业金融软件开发|期货资管软件|股票资管软件|反向跟单软件|QQ:653714026,
Sell反向跟单软件 发布于 3天前 阅读 952

微信小程序资讯、微信小程序Demo、微信小程序合集(6月23日更新)

微信小程序资讯、微信小程序Demo、微信小程序合集(6月23日更新) 微信小程序:支付系&...
yuzeng84 发布于 3天前 阅读 940

SpringBoot集成Redis来实现缓存技术方案

概述 在我们的日常项目开发过程中缓存是无处不在的,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求。 Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件,Redis 的优势包括它的速度、支持丰富的数据类型、操作原子性,以及它的通用性。 案例整合 本案例是在之前一篇SpringBoot + Mybatis + RESTful的基础上来集成Redis的,所以大家如有什么不明白的地方可以前往https://my.oschina.net/feinik/blog/879266,由于篇幅原因这里不一一贴出所有的代码,具体完整案例代码可以看这里:https://github.com/AIFEINIK/SpringBoot-Learn/tree/master/spring-boot-redis2,关于Redis如何安装可自行google。 1、在Maven pom.xml文件中加入Redis包 <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>${boot.version}</version> </dependency> 2、SpringBoot配置文件中配置Redis连接(YAML方式配置) spring: application: ...
FEINIK 发布于 4天前 阅读 3130 评论 18 点赞 8

最流行的5个前端框架对比

如今出现了大量的CSS前端框架,但真正优秀的框架只有少数几个。 本文将会比较其中五个最佳的框架。每个框架都有自己的优点和缺点,以及具体的应用领域,你可以根据自己的具体项目需求进行选择。此外,许多选项都是模块化的,允许你仅使用所需的组件,甚至可以混合使用来自不同框架的组件。 本文依据各个框架的GitHub流行度来顺序介绍。 Bootstrap Bootstrap是目前可用框架中无可争议的领导者。其人气日益增长,你可以放心的选择这个框架,而不必担心项目会失败,因为具有广泛使用基础的框架,不太可能被抛弃。 创作者: Mark Otto 和 Jacob Thornton. 发行: 2011 当前版本: 3.3.7 人气: GitHub上有111,000颗星 说明: “Bootstrap是最流行的HTML,CSS和JavaScript框架,用于在网络上开发响应式、移动的Web项目。 核心概念/原则: RWD和移动端优先。 框架大小: 154 KB 预处理器: Less和Sass 响应式布局:是 模块化:是 启动模板/布局:是 图标集: Glyphicons Halflings设置 附加/附件:无捆绑,许多第三方插件可用。 独特组件: Jumbotron 文档资源:良好 自定制:基本GUI定制器。但是你需要手动输入颜色值,因为没有颜色选择器可用。 浏览器支持: Fir...
葡萄城控件技术团队 发布于 3天前 阅读 5143 评论 15 点赞 8

【软件周刊第 34 期】Debian 9 Stretch 经过 26 个月的开发后终于正式发布

摘要:软件周刊(06.18 — 06.24):本周热门软件更新 — Kotlin 1.1.3 发布,初始支持 JDK 9;Alpha 版 Ubuntu 17.10 月底发布:支持 PIE,Python 3.6 系列;Julia 0.6.0 发布,动态编程语言 Debian 9 Stretch 正式发布,MariaDB 成为默认的 MySQL 版本 Debian 9 Stretch 在经过 26 个月开发后终于释放,团队将会为它提供 5 年的支持,尽管它将在 3 年内被取代。开发者将 Stretch 专门献给于 2015 年 12 月 28 日去世的项目创始人 Ian Murdock。 Stretch 的主要变化包括:MariaDB 成为默认的 MySQL 版本;Firefox 和 Thunderbird 替代去品牌名的版本 Iceweasel 和 Icedove;九成以上的源包用逐位对应的方式构建,未来版本的 Debian 还将提供验证包的工具和元数据;X 显示系统不再需要 root 权限运行;GnuPG 经典版本将被淘汰,引入的现代版本增加了椭圆曲线加密,改进默认设置,模块化架构,改进智能卡支持;改进 UEFI 支持等。 软件方面的变化包括:Apache 2.4.25、Chromium 59.0.3071.8、Firefox 45.9、GIMP 2.8.18、已更新的 GNOME 3.22、GnuPG 2.1、LibreOffice 5.2、Linux 4.9、MariaDB 10.1、PHP 7.0.... 更详细清单见发布公告。 预计 8 月正式发布的 Golang 1.9 新...
编辑部的故事 发布于 5天前 阅读 1683 评论 3 点赞 2

Three.js 初期踩坑

基于Three.js建立项目所需要的3d地图场景,实现多角度和距离的观察运动点或坐标系。基础...
SwatNo27 发布于 3天前 阅读 655 评论 2

微信小程序实战篇-分类页面制作

今天第九程序要教大家微信小程序分类页面的制作,废话不多说,先上效果图。
第九程序 发布于 3天前 阅读 610 评论 5 点赞 4

深入浅出 spring-data-elasticsearch - 实战案例详解(四)

『  热烈的爱情到订婚早已是定点,婚一结一切了结。现在订了婚,彼此间还留着情感发展的余地,这是桩好事。- 《我们仨》 』 「系列文章」 深入浅出 spring-data-elasticsearch - ElasticSearch 架构初探(一) 深入浅出 spring-data-elasticsearch - 概述(二) 深入浅出 spring-data-elasticsearch - 基本案例详解(三) 深入浅出 spring-data-elasticsearch - 实战案例详解(四) 深入浅出 spring-data-elasticsearch - 架构原理以及源码浅析(五)(拼命编写ing) 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2 本文提纲 一、搜索实战场景需求 二、运行 spring-data-elasticsearch-query 工程 三、spring-data-elasticsearch-query 工程代码详解   一、搜索实战场景需求 搜索的场景会很多,常用的搜索场景,需要搜索的字段很多,但每个字段匹配到后所占的权重又不同。比如电商网站的搜索,搜到商品名称和商品描述,自然商品名称的权重远远大于商品描述。而且单词匹配肯定不如短语匹配。这样就出现了新的需求,如何确定这些短语,即自然分词。那就利用分词器,即可得到所需要的短语,然后进行...
泥沙砖瓦浆木匠 发布于 6天前 阅读 1257 评论 4 点赞 1

阿里前端两年随想

其实按照我的情怀和尿性,文章的标题应该是 前端登堂入室宝典、前端成长就这三招 之类,奈何这是篇软文 ~ 看官先别急Command + W,尤其是和我经历类似 做着其它岗位的工作,却多少会接触一些前端 发现有些兴趣,但又不肯定这应该是自己未来 也会有些成就感,但似乎挫折和沮丧来的更多一些 我可以负责任的说,这是一篇有态度的软文 欲语泪先流 我希望做些有用的事情,甚至可以做个有用的人 才毕业工作的第一年我是满足的,学到了很多新知识,写的代码不但能work,还能真的跑在生产环境中 我提交代码上线,忐忑的测试之后没有问题,看着屏幕傻笑了一下午,虽然整个两年半可以说失落更多一些,但那天我是幸福的 最后的半年我想走了,那里有人真心对我好,工作氛围也不错,待遇也不至于让人失望,可我还是想走了 有天早上醒来莫名其妙的沮丧,下午我看着代码发呆的时候忽然想起我早上做的梦,客户铺天盖地的投诉我做的产品问题太多,忽然觉得满世界都是委屈,情不自禁的满脸都是泪 除了登录后首页,我负责的产品根本没人使用,永远躺在免费的Package中,客户投诉对我来说是一种奢望。公司方向也好,个人努力也罢,我一直在做一些可有可无的事情 那天才了解,我的成就感不像大...
前端攻城狮-Dawn 发布于 3天前 阅读 436 评论 1 点赞 1

知名公司拿我的开源软件( XXL-JOB)申请国家知识专利,我该怎么办?

>关于这件事情我们的本意和唯一诉求是 “就事论事,撤销专利”,无意伤害任何人。为了防止事情被误导和进一步扩大,我隐去了发明人、代理人和申请人的相关信息,在此希望大家不要转发和恶意评论此事,理智对待切勿网络暴力。我们的最终目标是要解决问题,希望大家可以提供一个协商解决的环境。 ## 请大家理智对待,不要发表过激言论 感谢各位的关注,相关事情已经委托"开源中国"处理,正在和对方沟通中。我们的诉求只有两点: - 1、对方撤销专利。(专利发明人已积极道歉并,且勿网络暴力); - 2、对方正面声明。(给关注的朋友一个交代); ## 声明 - 1、XXL-JOB自始至终是一款开源软件,永远开源免费,社区成员将会持续提供技术支持。 - 2、XXL-JOB一直以来是GPL协议开源,目的是为了禁止各种定制版本变相收费,我们承诺产品免费。 - 3、希望冒名申请国家发明专利的公司和个人正视问题:**尽快撤销申请专利,并且公开声明**。 - 4、请大家就事论事,不要变成网络暴力,也不要偏离主题啊。 >抛开冒名申请国家发明专利不谈,在此我有几个问题: - 开源软件是否能够申请国家知识专利? - 开源软件如何进行保护,开源协议还是专利? - 开源作者的辛苦成果,如何保证不会变成...
许雪里 发布于 3周前 阅读 75994 评论 418 点赞 104 打赏 4

【干货】Apache Hadoop 2.8 完全分布式集群搭建超详细过程,实现NameNode HA、ResourceManager HA高可靠性

最近在自己的笔记本电脑上搭建了Apache Hadoop分布式集群,采用了最新的稳定版本2.8,并配置了NameNode、ResourceManager的HA高可用,方便日常对Hadoop的研究与测试工作。详细的搭建过程如下: 1、安装docker,创建docker容器,用于搭建hadoop节点 docker真是个好东西啊,当要在自己的笔记本上搭建分布式集群时,由于CPU、内存、磁盘有限,无法在VMware上虚拟出太多节点,这时使用docker创建几个容器,就能轻松搭建一个分布式集群了。 (1)先在VMware上安装centos6.9,作为宿主机,然后安装docker,具体过程见我另一篇博文:Centos6.9安装docker (2)然后再docker hub中拉取centos镜像,用于创建分布式集群的节点,推荐在docker中安装centos6(docker中的centos7有坑,被坑过,呜呜),具体过程见我另一篇博文:docker中安装centos6 (3)centos镜像准备好后,就开始创建docker容器,用于搭建hadoop的节点 # 创建4个节点,用于搭建hadoop docker run -it --name hadoopcentos1 centos:6 /bin/bash docker run -it --name hadoopcentos2 centos:6 /bin/bash docker run -it --name hadoopcentos3 centos:6 /bin/bash docker run -it --name hadoopcentos4 centos:6 /bin/b...
雪饼 发布于 1周前 阅读 2114 评论 16 点赞 5

从程序员到CTO的Java技术路线图

在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了。但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平。    Java程序员 高级特性               反射、泛型、注释符、自动装箱和拆箱、枚举类、可变               参数、可变返回类型、增强循环、静态导入         核心编程              IO、多线程、实体类、              集合类、正则表达式、              XML和属性文件              图形编程              AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace         网路编程             Applet、Socket/TCP/UDP、NIO、RMI、CORBA        Java语法基础            类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类、编码规范       Java开发环境           JDK、JVM、Eclipse、Linux Java核心编程技术 Java,设计而又非常精巧的语言。学习Java,须从Java开发环境开始,到Java语法,再到Java的核心API。        ...
Java程序员-10 发布于 2天前 阅读 432 点赞 1

给Java新手的一些建议——Java知识点归纳(Java基础部分)

写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。   这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的、和Java中各个框架相关的内容。   经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1. JVM相关(包括了各个版本的特性)   对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。   JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。   在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump, 分析内存结构 ...
Java程序员-10 发布于 3天前 阅读 378 评论 1 点赞 1

成为一名Java高级工程师你需要学什么

宏观上: 1.技术广度方面 至少要精通多门开源技术吧,研究过struts\spring等的源码。 2.项目经验方面 从头到尾跟过几个大项目,头是指需求阶段,包括需求调研。 尾是指上线交付之后,包括维护阶段。 3.架构经验方面 有过分布式系统的架构和开发经验。对于跨系统的结构优化,数据存储的性能指标等有丰富经验。什么缓存啊、数据库的垂直切分什么的,业务的抽象和水平拆分啊,这些应该都轻车熟路吧。 4.行业领域方面 最起码得精通一到两门业务吧,所谓精通,就是比如做金融证券业务的,至少等当半个经融分析师。做电力业务的,至少等当半个电力工程师。 5.个人修为 有自己一些独到的见解,不会人云亦云啦。 微观上: 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。 2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。 3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且...
Java程序员-10 发布于 4天前 阅读 570

Java学习路线图

JAVA学习路线图,特此声明; 仅希望对热爱JAVA学习有所帮助 如若转载或者使用本图,请注明出处,避免后期出现版权问题,谢谢!!!   JAVA学习路线图 此乃是java攻城狮的学习路线图,由简到繁,由易到难,一步步的学习,最后成为 JAVA攻城狮。希望对大家的学习有所帮助 阶段1   1:学习HTML     2:学习CSS    3:Javascript    4:jquery    5:xml解析   6:Bootstrap      阶段2   7:JAVAse基础      8:mysql数据库     9:Powerdesigner   10:JDBC    11:JAVAWEB        阶段三 12:oracle         13:struts2         14:Hibernate       15:Spring 阶段四 16:Maven         17:SpringMVC      18:MyBatis Java学习交流QQ群:523047986  禁止闲聊,非喜勿进!
Java程序员-10 发布于 3天前 阅读 316

萨达萨达发神鼎飞丹砂

阿萨飒飒
飞翔的燕子 发布于 1小时前 阅读 1

杭州源创会揭晓码云新域名,红薯真的只穿开源内裤登台了?!

转眼就是又一年来到杭州举办源创会,感谢下雨天趟着小河水如约而至的各位,本期所有分享PPT下载链接可在文末查看。
源创会

JavaScript面向对象

理解对象 对象这个词如雷贯耳,同样出名的一句话:XXX语言中一切皆为对象! 对象究竟是什么?什么叫面向对象编程? 对象(object),台湾译作物件,是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素。 在软件系统中,对象具有唯一的标识符,对象包括属性(Properties)和方法(Methods),属性就是需要记忆的信息,方法就是对象能够提供的服务。在面向对象(Object Oriented)的软件中,对象(Object)是某一个类(Class)的实例(Instance)。 —— 维基百科 对象是从我们现实生活中抽象出来的一个概念,俗话说物以类聚,人以群分,我们也经常说有一类人,他们专业给隔壁家制造惊喜,也就是我们说的老王 这里面就有两个重要概念 类:无论是物以类聚,还是有一类人,这里说的类并不是实际存在的事物,是一些特征、是一些规则等 老王:这是个实物,是现实存在,和类的关系就是符合类的描述 对应到计算机术语,类就是class,定义了一些特点(属性 property)和行为(方法 method),比如说给隔壁制造惊喜的这类人有几个特征 长相文质彬彬,为人和善 姓王 同时这些人还有技能(行为) 帮隔壁...
最帅的刘先生 发布于 1小时前 阅读 1

实现一个简单易用的KOA2路由中间件

最近需要用到koa2,抽时间实现了一个简单易用的路由中间件,提供规则路由功能,不再需要复杂无趣的路由文件,路由影射表等。 代码已提交到: git (https://github.com/tim1020/ec-router) 也可以通过npm install ec-router安装试用 支持的路由规则包括: RESTful方式,例如:GET /res, PUT /user/12 PATH方式,  例如:  GET /res/list, POST /res/add QueryString方式,例如 GET /apiName?c=res&a=list, POST /apiName?c=user&a=add 三种方式均可实现自动的查找controller文件并执行其中的对应的方法。(如果无法匹配,则响应404) 同时提供无代码自动实现RESTful服务的功能,只需要创建好相应的数据库表,并在koa中引入该中间件,即可提供基本的RESTful服务接口,包括常规则的增删改查功能,无需编写业务代码。
TimWong 发布于 1小时前 阅读 2

SLF4J 之logback.xml配置文件实例及其说明

对于java后端程序员来说,如何记录日志是一个小话题,只要在网上随便找一个log4j的简单说明,就可以用了。但是,要真正了解日志记录的技术细节,还是需要花点时间研究一下。这里推荐使用SLF4J的logback来记录日志,虽说和log4j区别不大,但其模板打印方式很贴心: logger.debug("现在要打印第一个数据:{} ,和第二个数据{}",object1,object2); 以下是一个logback.xml配置实例。本文主要参考了aubdiy的文章: http://aub.iteye.com/blog/1103685 在此表示感谢! 首先,在工程中引入如下包: import org.slf4j.Logger; import org.slf4j.LoggerFactory; 然后在类中引用logger: private Logger logger = LoggerFactory.getLogger(this.getClass()); 最后,在工程的classpath下,放入logback.xml配置文件。文件中包含的节点的含义和用法,均有详细说明: <?xml version="1.0" encoding="UTF-8"?> <configuration debug="true" scan="true" scanPeriod="60 seconds"> <!-- 关于logback的更多介绍,请参考原创文章: http://aub.iteye.com/blog/1103685 --> <!-- appender简介: 具体描述如何来写日志的节点。最常用的有三类:ConsoleAppend...
yxzkm 发布于 1小时前 阅读 2

mysql innodb 和 myisam 的区别与选择

 InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。   下面是已知的两者之间的差别,仅供参考。      innodb   InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力   (crash recovery capabilities)的事务安全   (transaction-safe (ACID compliant))型表。InnoDB 提供了行锁   (locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking   read in SELECTs)。这些特性均提高了多用户并发操作的性能表现。   在InnoDB表中不需要扩大锁定(lock escalation),因为 InnoDB 的列锁定(row level   locks)适宜非常小的空间。InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY   constraints)的表引擎。      InnoDB 的设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库   引擎所不能比的。在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,   InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。 InnoDB 把数据和索引存   放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在 MyISAM 中,表被存放   在单独的文...
朝天放歌 发布于 2小时前 阅读 1

reactJS -- 1 运行

1.运行 在新版本的 webpack-dev-server 中,因为取消了 content-base 参数,所以需要热加载自动刷新的话,直接执行命令 webpack-dev-server --hot --inline 即可。
奋斗中小芋头 发布于 2小时前 阅读 2

docker 的 Alpine Linux 推荐

dockerfile头 ``` FROM alpine:latest MAINTAINER dingdayu <614422099@qq.com> // 安装 bash RUN apk add --no-cache --update-cache bash CMD ["/bin/bash"] ``` [如何创建一个安全的Docker基镜像](http://www.tuicool.com/articles/fUVFZja) [Alpine Linux配置使用技巧](http://www.tuicool.com/articles/yqmmYbu) [How to install bash shell in Alpine Linux](https://www.cyberciti.biz/faq/alpine-linux-install-bash-using-apk-command/)
dingdayu 发布于 2小时前 阅读 2

mysql提示Column count doesn't match value count at row 1错误

1、数据库表顺序不一样,应该按着建表数据写sql插入 2、字段数量不匹配,  (field1,field2,field3) values('a','b')
木九天 发布于 2小时前 阅读 1

企业建设H5相应式网站的5大好处

  企业网站制作有逐渐向响应式网页设计改版与设计的趋势,随着手机、平板等移动终端上网的用户激增,网页设计的也必须符合使用移动终端用户的习惯,那么响应式网站建设为何如此重要?它能为企业网站带来什么样的价值?   1、接触到行动用户。越来越多移动端使用者:手机、平板、网络电视……当他们看到老旧网页的显示不符合新装置时,就会立即关闭页面走人。响应式网页设计最大的好处,就是让不同装置的用户,都能得到最佳的浏览效果,自然就能够抓住行动用户的目光。   2、增加转换率。网络营销经常提及的转换率,即访客成为客户的比例。当您使用相应式网页设计,表示您的网站能够接纳各式各样网络用户,您所制作的服务页面与优惠资讯,都更容易呈现在所有使用人群的眼前,转换率自然会大大提上升。   3、使企业形象跟上潮流、响应式网站是这两年的最新趋势,这一项技术仍在成长阶段,因此当您比其他竞争对手领先制作响应式网站时,会使用许多新的设计技术,例如:滚动视差网页设计、平面化视觉设计,一页式网页设计……各种新颖的浏览方式会使客户对您的网站留下好印象。   4、增加搜寻引擎曝光度。当移动端上网用户超越PC端用户时,搜索引擎也早已经优化了搜索...
课课家IT 发布于 2小时前

将canvas标签转换为img标签

``` //从 canvas 提取图片 image function convertCanvasToImage(canvas) { //新Image对象,可以理解为DOM var image = new Image(); // canvas.toDataURL 返回的是一串Base64编码的URL,当然,浏览器自己肯定支持 // 指定格式 PNG image.src = canvas.toDataURL("image/png"); return image; } //获取网页中的canvas对象 var mycanvas1=document.getElementsByTagName('canvas')[0]; //将转换后的img标签插入到html中 var img=convertCanvasToImage(mycanvas1); $('#imagQrDiv').append(img);//imagQrDiv表示你要插入的容器id ```
niuhongxia 发布于 2小时前 阅读 2

dsdsd

/** * @author zhixin wen <wenzhixin2010@gmail.com> * extensions: https://github.com/kayalshri/tableExport.jquery.plugin */ (function ($) { 'use strict'; var sprintf = $.fn.bootstrapTable.utils.sprintf; var TYPE_NAME = { json: 'JSON', png: 'PNG', csv: 'CSV', txt: 'TXT', sql: 'SQL', doc: 'Word', powerpoint: 'MS-Powerpoint', pdf: 'PDF' }; $.extend($.fn.bootstrapTable.defaults, { showExport: true, exportDataType: 'all', // basic, all, selected // 'json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'powerpoint', 'pdf' exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel', 'pdf'], //exportTypes: ['pdf'], exportOptions: {} }); $.extend($.fn.bootstrapTable.defaults.icons, { export: 'glyphicon-export icon-share' }); var BootstrapTable = $.fn.bootstrapTable.Constructor, _initToolbar = BootstrapTable.prototype.ini...
own1991 发布于 2小时前 阅读 1

Elasticsearch简单使用系列--安装

包括es版本,安装,自举检查,常见配置等
liuchangng 发布于 2小时前 阅读 32

CentOS 7.3 Python3.5 下ansible的编译

下载ansible: https://pypi.python.org/pypi/ansible/ 版本ansible-2.3.1.0.tar.gz yum install libffi-devel tar xf ansible-2.3.1.0.tar.gz cd ansible-2.3.1.0 python3.5 setup.py  install  
MichaelShu 发布于 2小时前 阅读 2

阿呆学Linux 第二十四讲

shell基础
阿dai 发布于 2小时前 阅读 4

LeetCode:326. Power of Three

Given an integer, write a function to determine if it is a power of three. Follow up: Could you do it without using any loop / recursion? Credits: Special thanks to @dietpepsi for adding this problem and creating all test cases.   解答: func isPowerOfThree(n int) bool {     if n == 0 {         return false     }     c := math.Log10(float64(n)) / math.Log10(3)     d := float64(int64(c))     return (c - d) < 0.00001 }
徐学良 发布于 2小时前 阅读 3

转:Android中的Service全面总结

Android中的Service全面总结(点击在新标签中打开 http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html ),这篇文章讲得很详细。   Android开发,关于service的常驻和共享的问题 (点击在新标签中打开 https://segmentfault.com/q/1010000000415917 ),这是同行提出的问题和回答。下面的是复制转载、修改后的部分内容: 在AndroidManifest中声明Service时,定义android:process属性,其格式为:android:process=":{进程名字}",这样就能使Service运行在独立的进程中了。需要特别注意的是 该属性值必须以英文冒号字符作为开始字符;如果冒号后面的进程名称是以小写字母开始,则该服务将在全局进程(global process)中运行。详细说明如图所示:  
zigzagroad 发布于 2小时前

Android 模仿微信朋友圈点击回复后的定位效果

Android 模仿微信朋友圈点击回复后,话题滑动至键盘上方的精确定位效果
夲仒無道 发布于 2小时前 阅读 1

基于mongodb+node express的增删查改(CRUD)操作

#mongodb 和node express 的神奇配合! 前端工程师的福利,再也不需要看后端人员的歧视了,摆脱后台,咱们也还可以立足!废话不多说。上🐎: /** * Created by farben on 17/6/27. */ //配置mongodb数据库相关的内容 var mongodb=require('mongodb'); var MongoClient=mongodb.MongoClient; var DB_CONN_STR='mongodb://localhost:27017/foobar'; //配置node服务器相关内容: var express=require('express'); var app =express(); var bodyParder = require('body-parser'); app.use(bodyParder.urlencoded({extended: true})); //设置跨域访问 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By",' 3.2.1'); res.header("Content-Type", "application/json;charset=utf-8"); next(); }) //定义post请求的接口 向数据表插入数据 app.post('/post',function(req,res){ var username=req.body.username; var pass...
梦幻人生之旅 发布于 3小时前

pycharm ImportError: No module named selenium 问题解决

使用 pip install 成功安装好某一个module 之后,在 pyCharm 里导入使用 却提示类似的错误: ImportError: No module named selenium  出现此错误的原意可能是你安装了多个 python ,而pyCharm 的 python 配置路径不对导致的。比如 selenium 下载到了  python3 下,而  pyCharm 的python配置路径为 python2.7 的 ,就会出现这个错误。 修改 pyCharm 配置路径方法为: 选择 preferecence 然后看图: 选择正确的版本后, 再导入就不会再提示类似错误了 。
zh_iOS 发布于 3小时前 阅读 6

来科普啦,对于软件测试,你知道多少?

作为开发同学,一些基本的测试岗位相关知识还是很有必要了解一下,免的某些同学在工作中和测试同学斗嘴、打架、群殴等以及被测试鄙视….
发芽的土豆丶 发布于 3小时前 阅读 4

最流行的5个前端框架对比

如今出现了大量的CSS前端框架,但真正优秀的框架只有少数几个。 本文将会比较其中五个最佳的框架。每个框架都有自己的优点和缺点,以及具体的应用领域,你可以根据自己的具体项目需求进行选择。此外,许多选项都是模块化的,允许你仅使用所需的组件,甚至可以混合使用来自不同框架的组件。 本文依据各个框架的GitHub流行度来顺序介绍。 Bootstrap Bootstrap是目前可用框架中无可争议的领导者。其人气日益增长,你可以放心的选择这个框架,而不必担心项目会失败,因为具有广泛使用基础的框架,不太可能被抛弃。 创作者: Mark Otto 和 Jacob Thornton. 发行: 2011 当前版本: 3.3.7 人气: GitHub上有111,000颗星 说明: “Bootstrap是最流行的HTML,CSS和JavaScript框架,用于在网络上开发响应式、移动的Web项目。 核心概念/原则: RWD和移动端优先。 框架大小: 154 KB 预处理器: Less和Sass 响应式布局:是 模块化:是 启动模板/布局:是 图标集: Glyphicons Halflings设置 附加/附件:无捆绑,许多第三方插件可用。 独特组件: Jumbotron 文档资源:良好 自定制:基本GUI定制器。但是你需要手动输入颜色值,因为没有颜色选择器可用。 浏览器支持: Fir...
葡萄城控件技术团队 发布于 3天前 阅读 5143 评论 15 点赞 8

杭州源创会揭晓码云新域名,红薯真的只穿开源内裤登台了?!

转眼就是又一年来到杭州举办源创会,感谢下雨天趟着小河水如约而至的各位,本期所有分享PPT下载链接可在文末查看。
源创会

SpringBoot集成Redis来实现缓存技术方案

概述 在我们的日常项目开发过程中缓存是无处不在的,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求。 Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件,Redis 的优势包括它的速度、支持丰富的数据类型、操作原子性,以及它的通用性。 案例整合 本案例是在之前一篇SpringBoot + Mybatis + RESTful的基础上来集成Redis的,所以大家如有什么不明白的地方可以前往https://my.oschina.net/feinik/blog/879266,由于篇幅原因这里不一一贴出所有的代码,具体完整案例代码可以看这里:https://github.com/AIFEINIK/SpringBoot-Learn/tree/master/spring-boot-redis2,关于Redis如何安装可自行google。 1、在Maven pom.xml文件中加入Redis包 <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>${boot.version}</version> </dependency> 2、SpringBoot配置文件中配置Redis连接(YAML方式配置) spring: application: ...
FEINIK 发布于 4天前 阅读 3130 评论 18 点赞 8

全栈开发——动手打造属于自己的直播间(Vue+SpringBoot+Nginx)

#前言 大学的学习时光临近尾声,感叹时光匆匆,三年一晃而过。同学们都忙着找工作,我也在这里抛一份[简历](http://139.199.82.213:8080/LiveDemo/resume)吧,欢迎各位老板和猎手诚邀。我们进入正题。直播行业是当前火热的行业,谁都想从中分得一杯羹,直播养活了一大批人,一个平台主播粗略估计就有几千号人,但是实时在线观看量有的居然到了惊人的百万级别,特别是游戏主播,可想而知,直播间是一个磁铁式的广告传播媒介,也难怪这么多巨头公司都抢着做直播。我不太清楚直播行业技术有多深,毕竟自己没做过,但是咱们可以自己实现一个满足几百号人同时观看的直播间呀。 ---------- # 最终成果 * [演示地址(电脑端与移动端效果不同哦)](http://139.199.82.213:8080/LiveDemo/live_room) * [服务端项目地址](https://github.com/jack-hoo/LiveRoomDemo_Server) * [客户端项目地址](https://github.com/jack-hoo/LiveRoomDemo_Client) > 手机端效果 ![动图](http://www.veton.cc/LiveDemo/dongtai1.gif ) 这个场景很熟悉吧~~ 通过obs推流软件来推流。 ![图片描述](https://static.oschina.net/uploads/img/201706/23132352_igQv.png "在这里输入图片标题")![] 户外直播,通过...
jack-hoo 发布于 6天前 阅读 5679 评论 59 点赞 31 打赏 1

深入浅出 spring-data-elasticsearch - 实战案例详解(四)

『  热烈的爱情到订婚早已是定点,婚一结一切了结。现在订了婚,彼此间还留着情感发展的余地,这是桩好事。- 《我们仨》 』 「系列文章」 深入浅出 spring-data-elasticsearch - ElasticSearch 架构初探(一) 深入浅出 spring-data-elasticsearch - 概述(二) 深入浅出 spring-data-elasticsearch - 基本案例详解(三) 深入浅出 spring-data-elasticsearch - 实战案例详解(四) 深入浅出 spring-data-elasticsearch - 架构原理以及源码浅析(五)(拼命编写ing) 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2 本文提纲 一、搜索实战场景需求 二、运行 spring-data-elasticsearch-query 工程 三、spring-data-elasticsearch-query 工程代码详解   一、搜索实战场景需求 搜索的场景会很多,常用的搜索场景,需要搜索的字段很多,但每个字段匹配到后所占的权重又不同。比如电商网站的搜索,搜到商品名称和商品描述,自然商品名称的权重远远大于商品描述。而且单词匹配肯定不如短语匹配。这样就出现了新的需求,如何确定这些短语,即自然分词。那就利用分词器,即可得到所需要的短语,然后进行...
泥沙砖瓦浆木匠 发布于 6天前 阅读 1257 评论 4 点赞 1

工作中redis合库以及aof踩坑记

概述     此文是第一次搞redis主从小白犯的错,大神可以忽略。记录为了让看到本博文的小白前车之鉴 软件资源             centOs:6.5             redis:2.8.10  背景               公司现有架构均是单机模式,本文仅先介绍redis单机踩的坑-- 即生产应用redis均是单一实例,一旦实例挂掉功能就会不可用。现公司业务使用了一台实例(业务实例),一台session共享实例(session实例)。             现需要对现有架构升级(后续会出整个架构升级的相关博客),先从最简单的redis开始开刀,采用主从复制,启用哨兵监听进行主从切换(后续会有相关详细博客)。 基本问题  线上redis仅启用了rdb持久化,需要启用AOF 线上业务实例和session实例 keys<1W,可以把业务实例和session实例合并节约资源 踩坑记     AOF挖坑       已经搭建了主从模式,创建了多个key验证没问题, 很开心ing, 发现需要启用AOF,查看官方文档认为so easy, 于是乎 改改改配置,重启服务,在主节点添加了一个key,主从验证通过, 非常开心ing。     【敲黑板,开始挖坑了哈】 此时模拟极端故障,把主从节点都停掉了,开始依次开启服务,发现仅有开启...
java_龙 发布于 1周前 阅读 2373 评论 19 点赞 3

深入浅出 spring-data-elasticsearch - 基本案例详解(三)

『  风云说:能分享自己职位的知识的领导是个好领导。 』   欢迎来 Spring For All , 和我探讨 Spring 相关的分享。 http://spring4all.com   运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2   本文提纲 一、spring-data-elasticsearch-crud 的工程介绍 二、运行 spring-data-elasticsearch-crud 工程 三、spring-data-elasticsearch-crud 工程代码详解 一、spring-data-elasticsearch-crud 的工程介绍 spring-data-elasticsearch-crud 的工程,介绍 Spring Data Elasticsearch 简单的 ES 操作。Spring Data Elasticsearch 可以跟 JPA 进行类比。其使用方法也很简单。 二、运行 spring-data-elasticsearch-crud 工程 注意的是这里使用的是 ElasticSearch 2.3.2。是因为版本对应关系 https://github.com/spring-projects/spring-data-elasticsearch/wiki/Spring-Data-Elasticsearch---Spring-Boot---version-matrix;  Spring Boot Version (x)    Spring Data Elasticsearch Version (y)    Elasticsearch Version (z) x <= 1.3.5    y <= 1.3.4    z <= 1.7.2* x >= 1.4.x    2....
泥沙砖瓦浆木匠 发布于 1周前 阅读 2239 评论 3

【干货】Apache Hadoop 2.8 完全分布式集群搭建超详细过程,实现NameNode HA、ResourceManager HA高可靠性

最近在自己的笔记本电脑上搭建了Apache Hadoop分布式集群,采用了最新的稳定版本2.8,并配置了NameNode、ResourceManager的HA高可用,方便日常对Hadoop的研究与测试工作。详细的搭建过程如下: 1、安装docker,创建docker容器,用于搭建hadoop节点 docker真是个好东西啊,当要在自己的笔记本上搭建分布式集群时,由于CPU、内存、磁盘有限,无法在VMware上虚拟出太多节点,这时使用docker创建几个容器,就能轻松搭建一个分布式集群了。 (1)先在VMware上安装centos6.9,作为宿主机,然后安装docker,具体过程见我另一篇博文:Centos6.9安装docker (2)然后再docker hub中拉取centos镜像,用于创建分布式集群的节点,推荐在docker中安装centos6(docker中的centos7有坑,被坑过,呜呜),具体过程见我另一篇博文:docker中安装centos6 (3)centos镜像准备好后,就开始创建docker容器,用于搭建hadoop的节点 # 创建4个节点,用于搭建hadoop docker run -it --name hadoopcentos1 centos:6 /bin/bash docker run -it --name hadoopcentos2 centos:6 /bin/bash docker run -it --name hadoopcentos3 centos:6 /bin/bash docker run -it --name hadoopcentos4 centos:6 /bin/b...
雪饼 发布于 1周前 阅读 2114 评论 16 点赞 5

Redis 通信协议-了解 Redis 客户端实现原理

# 简介 几乎所有的主流编程语言都有Redis的客户端(http://redis.io/clients),不考虑Redis非常流行的原因,如果站在技术的角度看原因还有两个: 1. 客户端与服务端之间的通信协议是在 **TCP 协议**之上构建的。 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。 客户端和服务器发送的命令或数据一律以 `\r\n` (CRLF)结尾。 2. Redis制定了 RESP(REdis Serialization Protocol,Redis序列化协议)实现客户端与服务端的正常交互,这种协议简单高效,既能够被机器解析,又容易被人类识别。 # 发送命令 RESP 在 Redis 1.2 版本中引入, 并最终在 Redis 2.0 版本成为 Redis 服务器通信的标准方式。 在这个协议中, 所有发送至 Redis 服务器的参数都是二进制安全(binary safe)的。 RESP 的规定一条命令的格式如下: ```shell *<参数数量> CR LF $<参数 1 的字节数量> CR LF <参数 1 的数据> CR LF ... $<参数 N 的字节数量> CR LF <参数 N 的数据> CR LF ``` **命令本身也作为协议的其中一个参数来发送。** 例如我们经常执行的 SET 命令,在命令行中我们输入如下: ```shell SET key value ``` 使用 RESP 协议规定的格式: ```shell *3 $3 SET...
拿客-三产 发布于 1周前 阅读 3020 评论 7 点赞 5

你知道Thread线程是如何运作的吗?

我们在Android开发过程中,几乎都离不开线程。但是你对线程的了解有多少呢?它完美运&#...
CoorChice 发布于 1周前 阅读 3965 评论 25 点赞 17

springmvc集成shiro后,session、request姓汪还是姓蒋?

# 1. 疑问 我们在项目中使用了spring mvc作为MVC框架,shiro作为权限控制框架,在使用过程中慢慢地产生了下面几个疑惑,本篇文章将会带着疑问慢慢地解析shiro源码,从而解开心里面的那点小纠纠。 (1)** 在spring controller中,request有何不同呢 **? 于是,在controller中打印了request的类对象,发现request对象是org.apache.shiro.web.servlet.ShiroHttpServletRequest ,很明显,此时的 request 已经被shiro包装过了。 (2)众所周知,spring mvc整合shiro后,可以通过两种方式获取到session: **通过Spring mvc中controller的request获取session** ``` Session session = request.getSession(); ``` ** 通过shiro获取session ** ``` Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); ``` 那么,问题来了,** 两种方式获取的session是否相同呢 **? 这里需要看一下项目中的shiro的securityManager配置,因为配置影响了shiro session的来源。这里没有配置session管理器。 ``` ``` 在controller中再次打印了session,发现前者的session类型是 org.apache.catalina.session.StandardSessionFacade ,后者的session类型...
细肉云吞 发布于 2周前 阅读 3350 评论 17 点赞 17

Maven工程配置代码覆盖工具Jacoco

本篇博文我们将给出示例理解如何在Maven工程中配置Jacoco和如何使用Jacoco查看代码覆盖报告~ Jacoco是一个开源的Java代码覆盖率工具,Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins等。 Maven工程 创建Maven工程 打开Eclipse,File->New->Project->Maven Project,新建一个Maven工程~ 点击“Next”按钮,然后填写groupId和artifactId信息后点击"Finish"按钮即可~ groupId -->  com.xxx.tutorial artifactId --> jacoco-demo 配置Jacoco 添加maven-complier-plugin <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <skipMain>true</skipMain> <skip>true</skip> <source>1.7</source> <target>1.7</target> </configuration> </plugin> 添加jacoco-maven-plugin <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.v...
王孟君 发布于 2周前 阅读 1413 评论 3 点赞 3

docker搭建oracle开发环境

oracle太大了,对于开发人员来说,在本机安装一个oracle代价不菲。 在docker环境中,我找了很久,发现wnameless/oracle-xe-11g 镜像还不错,很方便搭建起来。 但是也发现一个问题,挂载本地卷遇到了麻烦。一旦挂载,就无法登陆了。从官方的issues中发现,有一个fork版本解决了这个问题,记录一下。 创建docker-compose工作目录 --- ``` mkdir -p oracle/data cd oracle touch docker-compose.yml ``` 配置docker-compose.yml --- ```yaml version: '2' services: oracle: image: sath89/oracle-xe-11g container_name: oracle ports: - 1521:1521 volumes: - ./data:/u01/app/oracle ``` 启动容器 --- ``` #启动oracle docker-compose up -d #关闭容器 docker-compose kill ``` 登录oracle --- 登录使用的参数: ``` SID: xe username: system password: oracle ``` 注意:原文写错了用户名,不是admin,是system,sorry 进入后自行修改密码,创建用户等即可。 为什么要绑定本地卷 --- wnameless版本无法绑定本地卷的问题,会导致我们一旦重启容器或重建容器,我们在数据库中的所有操作、创建的表以及数据等等全部丢失了。 绑定了本地卷,可以让容器的数据持久化到本机。就...
polly 发布于 2周前 阅读 2247 评论 13 点赞 4

spring boot / cloud (八) 使用RestTemplate来构建远程调用服务

# spring boot / cloud (八) 使用RestTemplate来构建远程调用服务 ##前言 上周因家里突发急事,请假一周,故博客没有正常更新 ###RestTemplate介绍: >RestTemplate是spring框架中自带的rest客户端工具类,具有丰富的API,并且在spring cloud中,标记@LoadBalanced注解,可以实现客户端负载均衡的rest调用. ##思路 RestTemplate虽然提供了丰富的API,但是这些API过于底层,如果不稍加控制,让开发人员随意使用,那后续的代码也将会变的五花八门,难以维护. 同时,当系统规模大了之后,将会有更多的服务,并且服务之间的调用关系也将更加复杂,如果不进行管控治理的话,同样,项目同期也将越来越不可控, 最后,服务间调用也需要有明确的权限认证机制,最好是能通过配置的方式来明确,哪些服务可以调用那些服务.从而来把控项目的复杂度. 本文将从以下几点来提供一个解决问题的思路: - 通过spring boot的@ConfigurationProperties机制来定义远程服务的元数据,从而实现权限认证的配置化 - 使用HandlerInterceptor来进行拦截,实现权限的验证 - 定义通用Rms类,来规范RestTemplate的使用 ##实现 ###1.实现权限配置 ####1.定义Application元数据 ``` java public class ApplicationMeta implements Seria...
wangkang80 发布于 2周前 阅读 2724 评论 6 点赞 6

Thrift不同服务类型的使用探索

Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。 Thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器。thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。 本篇博文编写的目的是对Thrfit不同的服务类型进行整理,并结合代码示例进行说明~ 目标 本篇博文编写的目的是对Thrfit不同的服务类型进行整理,并结合代码示例进行说明~ 博文主要包含如下几个部分: 1. 实例代码准备 2. 对不同的服务类型进行介绍说明,并给出示例 3. 异步客户端调用实例 4. Nifty库的使用,包含服务端和客户端代码示例 实例 说明 在这个示例中,我们主要在用户接口中定义三个接口:保存用户,根据name获取用户列表以及删除用户 如:   /** * 保存用户 * * @param user */ public boolean save(com.xxx.tutorial.thrift.entity....
王孟君 发布于 2周前 阅读 1500 评论 2 点赞 4

从JavaScript属性描述器剖析Vue.js响应式视图

学习每一门语言,一般都是从其数据结构开始,JavaScript也是一样,而JavaScript的数据结构中对象(Object)是最基础也是使用最频繁的概念和语法,坊间有言,JavaScript中,一切皆对象,基本可以描述对象在JavaScript中的地位,而且JavaScript中对象的强大也使其地位名副其实,本篇介绍JavaScript对象属性描述器接口及其在数据视图绑定方向的实践,然后对Vue.js的响应式原理进行剖析。
熊建刚 发布于 2周前 阅读 2692 评论 9 点赞 12

使用MediaCodec和RTMP做直播推流

本项目完全开源 项目Github地址:[AndroidInstantVideo](https://github.com/ChillingVan/AndroidInstantVideo) 码云地址:[AndroidInstantVideo](http://git.oschina.net/ChillingVan/AndroidInstantVideo) 目前开源的项目或市面上的Android直播客户端主要是用ffmpeg来实现推流的。本文将介绍使用Android原生的视频编码类MediaCodec实现直播推流。 ### 数据流及大致原理 这里所说的直播,就是将你的客户端产生的视频数据,实时发送到服务器上。服务器上的数据再实时地发送到播放客户端上。 * 以视频数据为例: **获取Camera画面** 首先是摄像头拍摄得到原始画面数据,这里原始画面数据的格式我们不用管,因为我们使用的是MediaCodec,所以我们会使用 camera.setPreviewTexture(surfaceTexture) 来利用Camera获取到的画面。 此处的原理可忽略,大致说明的话,就是Camera会把获得的画面保存为OpenGL的一个纹理,我们使用这个纹理就能使用Camera的画面。 **绘制画面** 在获得画面之后,我们要把这个画面(纹理)“画”到MediaCodec上。 如何画? MediaCodec提供一张’白纸’,也就是一个Surface,供我们把纹理画到上面。此处的API是 MediaCodec.createInputSurface() 怎么画?...
量子 发布于 3周前 阅读 2158 评论 21 点赞 5

OC对象之旅 weak弱引用实现分析

# Runtime学习 -- `weak`应用源码学习 >   Runtime源码分析,带你了解OC实现过程。其中参考了大量的大神的代码以及文献,里面也有个人的见解,欢迎拍砖,欢迎交流。 ## 两种常见使用场景 ```Objective-C /// weak属性 @interface XX : XX @property(nonatomic,weak) Type* weakPtr; @end /// 代码块中使用 { /// 使用__weak __weak Type* weakPtr = [[SomeObject alloc] init]; } ``` 根据调试信息,发现两者的区别是: - 第一种进入到 `id objc_storeWeak(id *location, id newObj)方法` ``` /** * This function stores a new value into a __weak variable. It would * be used anywhere a __weak variable is the target of an assignment. * * @param location The address of the weak pointer itself * @param newObj The new object this weak ptr should now point to * * @return \e newObj */ id objc_storeWeak(id *location, id newObj) { return storeWeak (location, (objc_object *)newObj); } ``` - 第二种绕一个远路,先初始化 `id objc_initWeak(id *location, id newObj)` ``` Objective-C /** * Initialize a fresh weak pointer to some object l...
瞎折腾 发布于 3周前 阅读 654

java lambda方法引用总结——烧脑吃透

lambda是java8的新特性,基本使用比较容易理解,但有一个环节遇到了坎儿,那就是方法引用,尤其是类的实例方法引用,烧脑之后总结一下。 在需要函数参数的方法中,我们可以把另一个同类型的方法直接传入,这称为方法引用的绑定。类似于C语言中的函数指针。 lambda表达式可以替代方法引用;或者说方法引用是lambda的一种特例,方法引用不可以控制传递参数。 ### 4.1) 构造器引用 ```java private Person construntorRef(Supplier sup){ Person p=sup.get(); return p; } @Test public void testConstructorRef(){ Person p=construntorRef(Person::new); System.out.println(p); } ``` 需要有无参的构造器。 ### 4.2) 静态方法引用 ```java private static void print(String s){ System.out.println(s); } @Test public void testStaticRef(){ Arrays.asList("aa","bb","cc").forEach(TestMethodReference::print); } ``` so easy,只要静态方法的参数列表和FI需要的参数一致就可以。 ### 4.3) 成员方法引用 ```java @Test public void testMemberMethodRef(){ Arrays.asList("aa","bb","cc").forEach(System.out::println); } ``` so easy,只要成员方法的参数列表和FI需...
polly 发布于 3周前 阅读 3486 评论 18 点赞 7

Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.net/xyang81/article/details/52554398可以看更多介绍 Keepalived的介绍可以百度一堆一堆的资料。一定要看看哦。 1.基于上一篇博客总结,再次安装一个虚拟机当backup服务器,这个服务器只安装Keepalived+Nginx即可 2.Master还是上一篇博文的虚拟机,环境是Tomcat+JDK+Nginx+Keepalived 3.每个Nginx服务器都安装Keepalived
小帅帅丶 发布于 3周前 阅读 4757 评论 5 点赞 5

三篇文章了解 TiDB 技术内幕 —— 谈调度

任何一个复杂的系统,用户感知到的都只是冰山一角,数据库也不例外。 前两篇文章介绍了 TiKV、TiDB 的基本概念以及一些核心功能的实现原理,这两个组件一个负责 KV 存储,一个负责 SQL 引擎,都是大家看得见的东西。在这两个组件的后面,还有一个叫做 PD(Placement Driver)的组件,虽然不直接和业务接触,但是这个组件是整个集群的核心,负责全局元信息的存储以及 TiKV 集群负载均衡调度。 本篇文章介绍一下这个神秘的模块。这部分比较复杂,很多东西大家平时不会想到,也很少在其他文章中见到类似的东西的描述。我们还是按照前两篇的思路,先讲我们需要什么样的功能,再讲我们如何实现,大家带着需求去看实现,会更容易的理解我们做这些设计时背后的考量。 # 为什么要进行调度 先回忆一下第一篇文章提到的一些信息,TiKV 集群是 TiDB 数据库的分布式 KV 存储引擎,数据以 Region 为单位进行复制和管理,每个 Region 会有多个 Replica(副本),这些 Replica 会分布在不同的 TiKV 节点上,其中 Leader 负责读/写,Follower 负责同步 Leader 发来的 raft log。了解了这些信息后,请思考下面这些问题: * 如何保证同一个 Region 的多个 Replica 分布在不同的节点上?更进一...
TiDB 发布于 3周前 阅读 942 评论 3 点赞 1
顶部