开源中国

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

It appears you’re using an unsupported browser

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

精彩阅读

  • 最新推荐

  • 本周热门

  • 每日一博

  • 最新文章

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

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

Glide--Golang包版本管理工具

Glide--Golang 包版本管理工具
岁月无痕 发布于 4小时前 阅读 90 评论 4

Dockerfile 最佳实践

Dockerfile 最佳实践
william3608 发布于 5小时前 阅读 94

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

微信小程序后台解密用户数据具体搭建步骤分享
第九程序 发布于 6小时前 阅读 66

我是这样翻译 CraftyJS 的

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

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可以是基于内存(必选的surface)也可以基于某种backend(和操作系统或驱动接口对接),使用过程是创建一个surface,然后在surface里做各种绘图,最后使用Painting类的functions时图像就显...
KnightMobi 发布于 16小时前 阅读 55

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 发布于 17小时前 阅读 103 评论 1

使用Kubeadm快速搭建Kubernetes(docker)

使用Kubeadm快速搭建Kubernetes(docker)
jinzili777 发布于 22小时前 阅读 44

安全发布之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 发布于 1天前 阅读 54

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

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

Three.js 初期踩坑

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

最流行的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...
葡萄城控件技术团队 发布于 1天前 阅读 690 点赞 1

API 文档神器 Swagger 介绍及在 PHP 项目中使用

API 文档神器 Swagger 介绍及在 PHP 项目中使用
leo108 发布于 1天前 阅读 129

Solr搜索统计 JSON Faceting API

如果你一直用在Solr,并打算使用Solr来做一些统计分析的话,接下来的内容你会非常感兴&...
大明别跑 发布于 1天前 阅读 19

使用 Webix 创建 Email 客户端

Webix 是一个JavaScript UI 库,提供了多达88个UI小部件和功能丰富的 CSS/HTML5 JavaScript 控件。使用 Webix 可以有效地...
waylau 发布于 2天前 阅读 231 评论 2 点赞 3

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 发布于 2天前 阅读 734 评论 2

vue与TypeScript集成配置最简教程

# vue与TypeScript集成配置最简教程 [TOC] ## 前言 Vue的官方文档没有给出与TypeScript集成的具体步骤,网上其他的教程不是存在问题就是与vue-cli建立的项目存在差异,让人无从下手。 下面我就给出vue-cli建立的项目与TypeScript集成的最简配置。 ## 初始化项目 首先用vue-cli建立webpack项目。这里为了演示方便,没有打开router和eslint等,可以根据自身情况打开。 ```shell # vue init webpack vue-typescript ? Project name vue-typescript ? Project description A Vue.js project ? Author ? Vue build standalone ? Install vue-router? No ? Use ESLint to lint your code? No ? Setup unit tests with Karma + Mocha? No ? Setup e2e tests with Nightwatch? No ``` 安装TypeScript相关依赖和项目其余依赖,用npm或cnpm ```shell # cd /vue-typescript # npm install typescript ts-loader --save-dev # npm install ``` ## 配置 修改目录下`bulid/webpack.base.conf.js`文件,在文件内`module>rules`添加以下规则 ```json { test: /\.tsx?$/, loader: 'ts-loader', exclude: /node_modules/, options: { appendTsSuffixTo: [/\.vue$/], } }, ``` 在src目录下新建...
lzp4ever 发布于 2天前 阅读 248 点赞 1

【软件周刊第 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 新...
编辑部的故事 发布于 3天前 阅读 1584 评论 3 点赞 2

Dubbo优雅服务降级之mock

Dubbo优雅服务降级之Stub dubbo作为国内互联网最常用的Java开源服务治理框架,在提供了远程调用的同时也提供了服务降级功能。 首先可以考虑一下服务降级的需求===》考虑在系统服务调用失败时可以返回指定消息而不是异常 通常来说选用dubbo的Mock功能可以实现。 在上一篇中描述到MockClusterWrapper几乎是必须的操作,实质上Mock也是通过其生成的MockClusterInvoker来实现。 public Result invoke(Invocation invocation) throws RpcException { Result result = null; String value = directory.getUrl().getMethodParameter(invocation.getMethodName(), Constants.MOCK_KEY, Boolean.FALSE.toString()).trim(); if (value.length() == 0 || value.equalsIgnoreCase("false")){ //no mock result = this.invoker.invoke(invocation); } else if (value.startsWith("force")) { if (logger.isWarnEnabled()) { logger.info("force-mock: " + invocation.getMethodName() + " force-mock enabled , url : " + directory.getUrl()); } //force:direct mock ...
Mr_Qi 发布于 4天前 阅读 494 点赞 1

关于perl6的若干问题?

20年磨一剑,在perl人艰苦卓绝的努力下,perl 6终于在2015年圣诞节推出了正式版本V6.c版本(c代"...
桔子 发布于 4天前 阅读 153 点赞 1

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

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

从程序员到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 发布于 5小时前 阅读 271 点赞 1

白银平川服务(小姐)这找一晚上全套多少嘿嘿

白银平川服务(小姐)这找一晚上全套多少嘿嘿【137メ1005メ2903芊芊】【各种特色,任您挑选】137メ1005メ2903芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 时卤挛滓墙径凰督糯桃 https://my.oschina.net/aTgn6l7f0tB/blog/1004669 https://my.oschina.net/agyo98EwP7C/blog/1004072 https://my.oschina.net/avCHWY93MnW/blog/1003240大财神出品...
guaji247590 发布于 4天前 阅读 226

一篇文章教会你,如何做到简历中要求的“要有扎实的Java基础”。

来历 本文来自于一次和群里猿友的交流,具体的情况且听LZ慢慢道来。 一日,LZ在群里发话,“招人啦。” 然某群友曰,“群主,俺想去。” LZ回之,“你年几何?” 群友曰,“两年也。” LZ憾言之,“惜了,三至五为佳。然如汝有扎实之基础,且附一技之长,倒也并非不可呀。” 群友惑,问之,“何为一技之长?” LZ抚须答曰,“皆可,吾之一技即为写。” 群友又问之,“何为基础扎实?” LZ请抚**答曰,“玩好JDK!” 引言 好了,LZ终于可以说人话了,请原谅LZ的文言文不好。其实很多人对于公司的招聘要求中写的,要有“扎实的Java基础”,都很迷茫。 这到底啥意思?什么东西算作Java基础?学到什么程度才算扎实? 这些问题的答案,LZ已经用文言文告诉你了,咳咳,答案就是玩好JDK就可以了。 不过JDK这东西包含的东西实在太多,群里的猿友还是拎不清到底应该学哪个,所以,LZ就专门写一篇文章,来讲一讲JDK应该怎么玩。 玩好JDK 在详细讲解JDK之前,LZ首先要强调下,本文的内容,都是LZ个人的主观判断。因此,各位猿友务必结合自己的判断之后,再决定是否要学习,以及学习到什么程度。 此外,本文只是告诉你学什么,学到什么程度,本文不会包含太多具体的技术细节讲解。 JDK其...
Java程序员-10 发布于 3小时前 阅读 142

青岛市北服务(小妹)啪啪啪找一晚上全套

青岛市北服务(小妹)啪啪啪找一晚上全套【130メ5121メ7892芊芊】【各种特色,任您挑选】130メ5121メ7892芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 煞贫梢炊敬嘉爻羌俏亢 https://my.oschina.net/af2y71wB7U5/blog/1010422 https://my.oschina.net/a0XET4E39w1/blog/1007851 https://my.oschina.net/a66W2Pg6EuI/blog/1006804大财神出品...
shagudunji 发布于 4天前 阅读 113

枣庄薛城服务(小姐)啪啪啪找一晚上全套多少上门

枣庄薛城服务(小姐)啪啪啪找一晚上全套多少上门【130メ5121メ7892芊芊】【各种特色,任您挑选】130メ5121メ7892芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 闹狈泵峙倬潘坎铀懊白 https://my.oschina.net/am6Q2xsoSnw/blog/1007025 https://my.oschina.net/agLvfYtBBHz/blog/1006884 https://my.oschina.net/aEgr2Fs5g9p/blog/1006996大财神出品...
kan38959124 发布于 4天前 阅读 100

一个web前端程序员对于职业规划道路的思考

昨日看到几篇关于程序生涯的几篇文章博有感触,想想自己这几个月多少有些堕落了,想起刚学那会,连过年那天晚上还在看js,这些天在想自己为什么会 突然的感觉迷茫了,想起有次去面试的时候,面试官问起的,你的职业规划是什么。沉默一会,技术大牛?项目经理?架构师?这些不是我听他们说的吗?为什么我 也回答了这些。偶然想起自己好像一直从未有过职业规划,虽然半年前也有过那么一段时间考虑过,但最终失败之,因为那时候的我认为每一天就是最好的证明。看 来我是一个比较喜欢用过去的经验来判断某个事物的价值,或许是太过于年轻,年轻总是起伏很大,喜欢把东西认死理,后来发现其实他们没有对错,不过是它们都 占有一些罢了。 为什么需要职业规划,曾经以为做好每一天就是职业规划固然没有错,但是你总得有一个长远的方向吧,这样也不会太过于迷茫,别人说这个好就去学这个,跟随潮流没有错,错的是你得有自己的方向。 人生之所以迷茫,不就是因为我们不知道该何去何从吗 。 虽然年轻,但一味的错下去,将来不也和他们一样了吗,是啊,我们该有一个规划了。 这 里再说一下自己为什么会迷茫,技术学到某个阶段就很难提升了,更多只能靠自己摸索,没有人可以指导,就像...
前端攻城狮-Dawn 发布于 4小时前 阅读 96

web前端职业规划

关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了,坚持去认真走,就好。在这里,我只是简要说一下自己对于这块儿内容的理解。有一个观点想要分享给大家的是:任何规划和目标的实现都依赖于知识的积累,而知识的积累来源于学习及学习后大量的实践。我提供一个实践途径,我们可以在工作之余的时间在网上或外包公司那里接一些私单做,因为目标不是赚钱,我们可以用最低的价格来提升自身竞争力,获得大量订单就意味着获得大量的实践机会,同时,还有一些收入作为工作成就感之外的安慰奖,还是不错的。 一、职业方向定位          首先,只有确定好自己的职业方向,才能做好职业规划。在我看来,做WEB前端技术能够找到的职业方向有以下几种:          (1)资深WEB前端工程师           这个方向算是一个WEB前端最基本的选择了,在国外,很多老外都能够把自己的专业做到极致,能一辈子就在一个专业领域不断学习和积累。主要在于内因和外因两方面,内因是老外通常思想比较简单直接,容易一直专注于一个领域;外因是国外的环境很好,能够良好的支撑这样的职业发展道路。反观国内,从内因来讲...
前端攻城狮-Dawn 发布于 4小时前 阅读 96

Dockerfile 最佳实践

Dockerfile 最佳实践
william3608 发布于 5小时前 阅读 94

CDH使用之CM、CDH4、5卸载

前言:无论是CM或者CDH使用的过程中,学习研究CDH使用、CDH升级、CM升级等等原因而考虑卸载CM、CDH,本教程使用于基于CM安装的CDH的卸载。当然,如果CDH采用独立安装方式安装,在删除对应目录时,更改相应目录即可,主要分为CM卸载和CDH卸载两部分,理论上使用于CDH4和CDH5的卸载(新版本如有更改则不适用)。 一、卸载CM:(CM主机执行)1、移除所有服务
        先在Cloudera Manager管理端停止集群所有组件服务,然后删除所有服务。 2、删除Manager Server(一直选yes. 卸载不成功执行步骤3)        到CM所安装的主机上执行如下命令,需要root权限: sudo/usr/share/cmf/uninstall-cloudera-manager.sh 3、如果没有该脚本,则可以手动删除,先停止服务:          命令如下: sudo service cloudera-scm-server stop sudo service cloudera-scm-server-db stop sudo yum remove cloudera-manager-server sudo yum remove cloudera-manager-server-db 二、卸载CDH:(所有主机执行)1、删除所有CDH节点上的CDH服务 sudo service cloudera-scm-agent hard_stop 2、卸载cloudera的rpm包 查看: rpm -qa | grep cloudera 逐个将其删除: for f in `rpm -q...
超人学院 发布于 2年前 阅读 155

Glide--Golang包版本管理工具

Glide--Golang 包版本管理工具
岁月无痕 发布于 4小时前 阅读 90 评论 4

韶关武江服务(小姐)啪啪啪找一晚上全套

韶关武江服务(小姐)啪啪啪找一晚上全套【130メ5121メ7892芊芊】【各种特色,任您挑选】130メ5121メ7892芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 恿试椅拿瓮崩攀逊河侗 https://my.oschina.net/aO916j00E07/blog/1012990 https://my.oschina.net/awiVm4Xha2O/blog/1012457 https://my.oschina.net/aok6omW06V6/blog/1013701大财神出品...
stan42971554 发布于 3天前 阅读 78

太原小店服务(小姐)啪啪啪找一晚上全套

太原小店服务(小姐)啪啪啪找一晚上全套【130メ5121メ7892芊芊】【各种特色,任您挑选】130メ5121メ7892芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 绷送贪涨婆控季心案逼 https://my.oschina.net/a9Fj4UYAk4P/blog/1012555 https://my.oschina.net/aNqf1Q6Emt5/blog/1012319 https://my.oschina.net/a3fyNwZcTzV/blog/1012581大财神出品...
guhuaishizhichi 发布于 3天前 阅读 80

烟台福山服务(小姐)啪啪啪找一晚上全套

烟台福山服务(小姐)啪啪啪找一晚上全套【130メ5121メ7892芊芊】【各种特色,任您挑选】130メ5121メ7892芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 蹦骋剖捎镀来篮傅新冀 https://my.oschina.net/ad87qtv5S6O/blog/1013486 https://my.oschina.net/awZh3KdvBL1/blog/1014098 https://my.oschina.net/aflGDZI1nm5/blog/1013103大财神出品...
zona82164818 发布于 3天前 阅读 69

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

微信小程序后台解密用户数据具体搭建步骤分享
第九程序 发布于 6小时前 阅读 66

南充嘉陵服务(小姐)啪啪啪找一晚上全套

南充嘉陵服务(小姐)啪啪啪找一晚上全套【130メ5121メ7892芊芊】【各种特色,任您挑选】130メ5121メ7892芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 鲜估倥移迪芯恳栏菜寄 https://my.oschina.net/avw2MTaN89Y/blog/1012279 https://my.oschina.net/atvRxwP2enz/blog/1012390 https://my.oschina.net/aojb76c743P/blog/1012454大财神出品...
guhuaishizhichi 发布于 3天前 阅读 63

广州黄埔服务(小姐)啪啪啪找一晚上全套多少上门

广州黄埔服务(小姐)啪啪啪找一晚上全套多少上门【178メ0118メ1938芊芊】【各种特色,任您挑选】178メ0118メ1938芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 纱厍焉鼓缆驼渍毙期翱 https://my.oschina.net/ac6GK9Z7IqA/blog/1014027 https://my.oschina.net/au0N83fB3yx/blog/1013315 https://my.oschina.net/aG2b7Yev89y/blog/1013768大财神出品...
stan42971554 发布于 3天前 阅读 55

温州鹿城服务(小姐)啪啪啪找一晚上全套

温州鹿城服务(小姐)啪啪啪找一晚上全套【178メ0118メ1938芊芊】【各种特色,任您挑选】178メ0118メ1938芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 剂老陌诔讼俣豢植诖椎 https://my.oschina.net/ahwqiBxD43W/blog/1007355 https://my.oschina.net/a8b2a93Pu08/blog/1007433 https://my.oschina.net/apmqhYrYNKG/blog/1005848大财神出品...
kan38959124 发布于 4天前 阅读 55

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可以是基于内存(必选的surface)也可以基于某种backend(和操作系统或驱动接口对接),使用过程是创建一个surface,然后在surface里做各种绘图,最后使用Painting类的functions时图像就显...
KnightMobi 发布于 16小时前 阅读 55

酒泉肃州服务(小姐)啪啪啪找一晚上全套多少

酒泉肃州服务(小姐)啪啪啪找一晚上全套多少【178メ0118メ1938芊芊】【各种特色,任您挑选】178メ0118メ1938芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 僭纷涎罕心墓臃透沂炎 https://my.oschina.net/aa3UYj20UWg/blog/1003064 https://my.oschina.net/a2fy8d7LXo3/blog/1004165 https://my.oschina.net/a6zWaH8pslf/blog/1004385大财神出品...
guaji247590 发布于 4天前 阅读 51

镇江丹徒服务(小姐)啪啪啪找一晚上全套

镇江丹徒服务(小姐)啪啪啪找一晚上全套【130メ5121メ7892芊芊】【各种特色,任您挑选】130メ5121メ7892芊芊客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不到十分钟我们一定能送到您指定的酒店,十分钟我们一定能送到您指定的酒店,终身信法制晚报讯 莫名收到一份某网站发来的商品分期催款单,称其在今年3月在该网站分期购买了一部 中新网吉林4月27日电 (记者 苍雁)吉林省舒兰市官方27日通报称,25日晚,一辆载有28吨硫酸的罐车发生侧翻,有7吨左右的硫酸泄漏,造成420平方米土地受到侵蚀,并有少量硫酸进入细鳞河。目前当地相关部门正在紧急处置。4月25日晚21时10分,吉林市龙启危化品运输有限公司运输的危险品罐车沿榆江线由蛟河市往哈尔滨市方向行驶,当行驶至舒兰市上营镇马目前当地相关部门正在紧急处置 儋又教紫诽够谢驹畏爻 https://my.oschina.net/a7Xc54x0W8Y/blog/1012105 https://my.oschina.net/aS1TSXS142y/blog/1013640 https://my.oschina.net/aQuU82Ae8dd/blog/1013084大财神出品...
zona82164818 发布于 3天前 阅读 44

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类型...
细肉云吞 发布于 1周前 阅读 3130 评论 16 点赞 16

【码云周刊第 25 期】2017 JavaScript 开发者的学习图谱

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

反向跟单软件|反向跟单样本筛选|反向跟单亏钱和赚钱的区别就在这里

反向跟单软件|跟单软件|资管软件|分仓软件|金融软件开发|Q653714026,tell13564123143,黄先生
Sell反向跟单软件 发布于 5天前 阅读 1433 评论 1

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

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

DNS劫持原理与实现

    上篇说到旁路劫持的原理与实现,主要还是针对TCP下HTTP服务而言的,有粉儿问了二个问题,一个问题是基于TCP的HTTP服务可以防劫持吗,网上有许多关于HTTP防劫持的办法,有说检测服务地址的,有说分片传输请求的,有说检测ttl值异常的,有说禁止重定向的,结论是都没用,伪造报文里网络层地址原本就是用户的目标地址,否则还叫什么伪造呢,请求报文分片web端能识别劫持设备就能识别,况且你确定你分片的报文在网络设备层发送前不会合并吗,ttl异常检测完全不靠谱,不用重定向200OK照样让你乖乖跳转;另一个问题是UDP能实现旁路劫持控制吗,结论是可以,UDP不同于TCP无连接无状态,只要数据合法先到先得,早年运营商控制P2P数据传输对带宽的占用就使用过类似方法,直接看代码吧不复杂。 DNS协议 // 0 1--4 05 06 07 08 9-11 12-15 // +----+--------+----+----+----+----+--------+-------+ // | QR | opcode | AA | TC | RD | RA | <zero> | rcode | // +----+--------+----+----+----+----+--------+-------+ // +--------------------------------+ // | DNS Header: ID + flags | // +--------------------------------+ // | Quest...
厉力文武 发布于 6天前 阅读 1390 评论 6 点赞 2

成为Java顶尖程序员 ,看这11本书就够了

学习的最好途径就是看书 "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处: 1、能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 2、对着书上的代码自己敲的时候方便 "看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。 很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。 目前市面上讲解设计模式的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客。这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是: 1、开篇点明该设计模式的定义 2、图文并茂讲解该设计模式中的结构 3、以详细的代码形式写一下该种设...
Java程序员-10 发布于 6天前 阅读 1200 点赞 3

【软件周刊第 33 期】跳票 5 次的 Fedora 26 Beta 终发布 坐等正式版

Fedora 26 Beta 版发布:默认启用 DNF 2.0 软件包管理系统 来自 Red Hat 的 John Terrill 今天宣布,Beta 版 Fedora 26 系统正式发布,本次共推出了三种不同的 flavors,包括 Fedora 26 Workstation、Fedora 26 Server 和 Fedora 26 Atomic Host。 以上三个版本的 Fedora 26 发行版本都基于 Linux Kernel 4.11 内核,GCC(GNU Compiler Collection)7,Go 1.8, Ruby 2.4 和 Python 3.6 开源技术。还包括对 32 位 MIPS 的支持和速度改进。 在本次发布的 Beta 版本默认采用 DNF 2.0 软件包管理系统,向后兼容 Yum。而且 Anaconda 安装程序装备了全新的存储配置屏幕,能够从分区和设备中支持“bottom-up”配置。除此之外,还向安装程序添加了“blivet-gui”。这将为熟悉存储系统细节的系统管理员和爱好者提供一个“building-blocks”样式的分区管理器。 发布的三个 Beta 版本装备了特色功能,例如 Fedora 26 Workstation Beta 版本使用 GNOME 3.24 作为默认桌面环境,并更新使用了诸如 LibreOffice 5.3 办公套件等最新组件。 Firefox 54.0 正式版发布,默认启用多进程 Mozilla 释出了最新版的 Firefox 54 ,最主要的变化是对所有用户启用多进程支持。新版从单进程默认调整到...
编辑部的故事 发布于 1周前 阅读 2439 评论 3 点赞 3

全栈开发——动手打造属于自己的直播间(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 发布于 4天前 阅读 4650 评论 56 点赞 28 打赏 1

如果上天再给我一次机会,我会这样学Java

回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般, 但是分享下我的心得,估计也能帮大家少走点弯路。 [入门] 我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让人哭啊。 后来我就看《Thinking in Java》 ,《 Java 核心技术 》, 感觉也不吃力。 如果我之前没学过别的语言,或者半路出家转到计算机行业, 我不会先看上面那两本, 相反我会选《Head First Java》, 这本书非常适合零基础的小白, 读起来轻松搞笑, 不信你看看第一页 但是光看书也挺无趣的,不妨和视频结合着看, 我觉得传智播客的Java基础视频很不错 (唉, 给传智打了个广告), 网上一搜就有,真搜不到就来我的QQ群里吧(群号码:523047986) 注意:视频的好处就是能看到敲代码的过程, 代码是活的, 这点很爽。 如果视频只是按PPT讲编程, 果断扔掉。 书也有书的好处,能写成书的, 肯定是作者经过系统化思考,梳理才能形成的东西, 所以系统性比较强。 书还有其他优点, 例如可以随便的翻, 找到重点反复的看。 所以混合着看经典书+优秀的视频 应该是最好的入门。 Java 入门, 我不会去上培训班,白白浪费钱 ,自...
Java程序员-10 发布于 3天前 阅读 945 评论 1

假如时光倒流,我会这么学习Java

回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般, 但是分享下我的心得,估计也能帮大家少走点弯路。 [入门] 我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让人哭啊。 后来我就看《Thinking in Java》 ,《 Java 核心技术 》, 感觉也不吃力。 如果我之前没学过别的语言,或者半路出家转到计算机行业, 我不会先看上面那两本, 相反我会选《Head First Java》, 这本书非常适合零基础的小白, 读起来轻松搞笑, 不信你看看第一页 但是光看书也挺无趣的,不妨和视频结合着看, 我觉得传智播客的Java基础视频很不错 (唉, 给传智打了个广告), 网上一搜就有,真搜不到就来我的QQ群里吧(群号码:523047986) 注意:视频的好处就是能看到敲代码的过程, 代码是活的, 这点很爽。 如果视频只是按PPT讲编程, 果断扔掉。 书也有书的好处,能写成书的, 肯定是作者经过系统化思考,梳理才能形成的东西, 所以系统性比较强。 书还有其他优点, 例如可以随便的翻, 找到重点反复的看。 所以混合着看经典书+优秀的视频 应该是最好的入门。 Java 入门, 我不会去上培训班,白白浪费钱 ,自...
Java程序员-10 发布于 5天前 阅读 580 点赞 3

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

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

Java编程思想重点笔记(Java开发必看)

Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理解题(比如is-a关系和has-a关系的区别),也有深入的涉及RTTI和JVM底层反编译知识。   1. Java中的多态性理解(注意与C++区分) Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生。 final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果不明显)。 如果某个方法是静态的,它的行为就不具有多态性: class StaticSuper { public static String staticGet() { return "Base staticGet()"; } public String dynamicGet() { return "Base dynamicGet()"; } } class StaticSub extends StaticSuper { public static String staticGet() { return "Derived staticGet()"; } public String dynamicGet() { re...
Java程序员-10 发布于 5天前 阅读 717

一位资深程序员大牛给予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 发布于 6天前 阅读 595 点赞 2

淘宝前端工程师:国内web前端开发十日谈

一直想写这篇“十日谈”,聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘。我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要。   我一直认为自己是“初级”前端开发工程师,一方面我入道尚浅,只有短短几年,另一方面我自知对技术的钻研并不深入,可能是由于环境的原因,当然最重要的是,我幸运的参与到互联网崛起的浪潮之巅。时势造就了一批技能薄弱但备受追捧的“弄潮者”,这在很大程度上影响我们对“技术本质”的洞察力,多年来也一直未有成体系的“前端技术”布道佳作,以至于当下多数人对前端技术的了解,盖始于表述并不严谨的岗位招聘描述,而这正恰恰反映了Web前端开发对自身的模糊定位。对于很多Web前端工程师来说,初尝禁果的快感无法持续很久,就陷入一轮又一轮的迷惘,思索自己的职业规划,试图寻找到适合自己的成长道路、看清自身技能的瓶颈,寻找突破。但遗憾的是,Web前端技术被广泛接纳时日尚短,没有多少励志的成功样板可供遵循。然而情况不总是这么糟,毕竟Web前端技术是一门“技术”,和计算机科学系出同门,只是因为互联网的高速崛起而被蒙上了迷雾,遮住了双眼,让我们傻傻看不清时局。   那么,如何定义Web前端技...
前端攻城狮-Dawn 发布于 3天前 阅读 688 评论 1 点赞 1

阿里前端两年随想

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

一个牛人给Java初学者的建议

给初学者之一:浅谈java及应用学java 不知不觉也已经10年了 从不知java为何物到现在一个小小的j2ee项目经理虽说不上此道高手,大概也算有点斤两了吧每次上网,泡bbs逛论坛,没少去java相关的版面总体感觉初学者多,高手少,精通的更少由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间还有一个很重要的原因就是java这门语言更适合商业应用所以高校里大部分博士老师们对此语言的了解甚至不比本科生多在这种环境下,很多人对java感到茫然,不知所措,不懂java能做什么即便知道了java很有用,也不清楚该从哪里入手所以就有了 java入门难 这一说法ok,那我们就从java到底能做什么聊起 先说什么是java java是一种面向对象语言,真正的面向对象,任何函数和变量都以类(class)封装起来 至于什么是对象什么是类,我就不废话了 关于这两个概念的解释任何一本面向对象语言的教材里面都有 知道了什么是java,那自然就会对java能干什么感兴趣 在说java能做什么之前,先说java作为一个真正面向对象语言的优点 首先第一个,既然是真正的面向对象,那就要做到彻底的封装 这是java和c++最大的不同,java所有的源码以及编译后的文件都以类的形式存在 java没有所谓的类外部定...
Java程序员-10 发布于 1周前 阅读 481 点赞 1

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周前 阅读 1382 评论 3 点赞 3

Vue2 全家桶仿 微信App 项目,支持多人在线聊天和机器人聊天

## 前言 这个项目是利用工作之余写的一个模仿微信app的单页面应用,整个项目包含27个页面,涉及实时群聊,机器人聊天,同学录,朋友圈等等,后续页面还是开发中。写这个项目主要目的是练习和熟悉vue和vuex的配合使用,利用socket.io实现实时聊天。 ## 技术栈 ``` vue2+vue-router+webpack+vuex+sass+svg构图+es6/7 ``` ## 源码地址 源码地址:[https://github.com/bailichen/vue-weixin](https://github.com/bailichen/vue-weixin) ## 项目运行 ``` git clone https://github.com/bailichen/vue-weixin.git cd vue-weixin npm install npm run dev (访问本地,运行后访问 http://localhost:8882) ``` ### 效果演示 [项目演示请点击这里](http://cangdu.org:8003/dialogue) (请用chrome手机模式预览) ### 移动端扫描下方二维码 ![](http://cangdu.org/files/images/code.png) ### 说明 > 本项目主要用于熟悉vue2+vuex的用法 > 如有问题请直接在Issues中提出,或加qq:812571880 > 如果觉得对您学习vue有点点帮助,请右上角star一下吧 ^_^ # 目标功能 - [x] 微信 - [x] 通讯录 - [x] 发现 - [x] 我 - [x] 设置 - [x] 新消息提醒 - [x] 勿扰模式 - [x] 聊天 - [x] widows 微...
cangdu 发布于 1周前 阅读 1916 评论 17 点赞 15

写给自己的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 发布于 1周前 阅读 439

Web前端应用十种常用技术你全都知道吗?

随着JS与XHTML的应用普及,越来越多的Web界面应用技术出现在网站上,比如我们常见的日历控件,搜索下拉框等,这些Web界面应用技术大大的丰富了网站的表现形式,本文将为您精心推荐十种最常见的Web界面应用技术。 Web应用程序的界面设计,其核心就是网页设计,但它的重点主要是在功能方面。要超越桌面应用程序, Web应用程序必须提供简单、直观和即时响应的用户界面,让他们的用户花更少的精力和时间去完成事情。 以前,我们并没有注意到Web应用程序这个方式,但是现在是时候仔细看看一些实用的技术和设计解决规划,让Web应用更友好更漂亮。 一位好的Web前端开发工程师在知识体系上既要有广度,又要有深度,所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。那么如何系统的学习企业实用的Web前端技术呢?现在说的重点不在于讲解技术,而是更侧重于对技巧的讲解。技术非黑即白,只有对和错,而技巧则见仁见智。 1、界面元素的需求 在Web前端开发中,简单这个原则是很重要的。在任何时候,你在屏幕上显示越多的控制,您的用户将不得不花费更多的时间去搞清楚如何使用界面。当选择变少时,可用的功能变得更加明显更容易被发现。简化的界面虽然是不容易的,尤其是如果...
前端攻城狮-Dawn 发布于 3天前 阅读 565

解决NE40绑定MAC导致BGP邻居异常

本着互联网开放、共享的原则,一些地区建立了互联网交换中心(Internet Exchange Point),即各地不同的运营商都在同一个交换平台接入。 大量的运营商在同一个交换平台接入,会引申出其他问题,比如ARP欺骗。某天晚上收到NE40告警,发现与某交换中心互联BGP挂了,一直停留在Active状态,检查互联端口、物理链路均正常,查看交换中心流量图,发现该时间点,整个交换中心的流量下掉300G,后经交换中心排查,发现是某接入运营商ARP欺骗导致。 拓扑:(使用子接口通过交换中心分别与R1、2立BGP Peer。) ![输入图片说明](https://static.oschina.net/uploads/img/201706/27145014_VZwm.png "在这里输入图片标题") 为了防止下一次出现类似问题,于是在NE40上绑定R1、R2的MAC地址,配置arp static 1.25.88.1 a46c-2a90-73c0之后,发现NE40与R1的BGP邻居变为IDLE,检查二者连通性,发现无法ping通,对比绑定前后MAC地址,无绑定错误的MAC地址。在NE40的出口抓包,发现无对应的icmp报文从该端口发出,于是还原配置,取消arp绑定之后,BGP peer 1.25.88.1恢复正常。查找资料后发现NE40是采用子接口的方式互联,子接口绑定ARP时需要添加参数vid,默认vid为0。所以绑定MAC地址后,二者之...
ali安东尼 发布于 14分钟前 阅读 1

The mythical 10x programmer

A 10x programmer is, in the mythology of programming, a programmer that can do ten times the work of another normal programmer, where for normal programmer we can imagine one good at doing its work, but without the magical abilities of the 10x programmer. Actually to better characterize the “normal programmer” it is better to say that it represents the one having the average programming output, among the programmers that are professionals in this discipline. The programming community is extremely polarized about the existence or not of such a beast: who says there is no such a thing as the 10x programmer, who says it actually does not just exist, but there are even 100x programmers if you know where to look for. If you see programming as a “linear” discipline, it is clear that the 10x programmer looks like an irrational possibility. How can a runner run 10x faster than another one? Or a construction worker build 10x the things another worker can build in the same time? However p...
LsDimplex 发布于 16分钟前 阅读 1

Nodejs事件引擎libuv源码剖析之:高效队列(queue)的实现

基础数据结构      在libuv中,有一个只使用简单的宏封装成的高效队列(queue),现在我们就来看一下它是怎么实现的。      首先,看一下queue中最基本的几个宏: typedef void *QUEUE[2]; /* Private macros. */ #define QUEUE_NEXT(q) (*(QUEUE **) &((*(q))[0])) #define QUEUE_PREV(q) (*(QUEUE **) &((*(q))[1])) #define QUEUE_PREV_NEXT(q) (QUEUE_NEXT(QUEUE_PREV(q))) #define QUEUE_NEXT_PREV(q) (QUEUE_PREV(QUEUE_NEXT(q)))      首先,QUEUE被声明成一个"具有两个char*元素的指针数组",如下图:                                                        接下来看第一个宏: QUEUE_NEXT(q) ,其中q代表一个指向QUEUE数组的指针,其返回值是下一个节点QUEUE的指针,其用法大致如下: static QUEUE queue; QUEUE_NEXT(&queue);       可以看到,非常简单的操作便可以取得queue的下一个节点地址,那么它是如何做到的呢,来看一下QUEUE_NEXT的实现: (*(QUEUE **) &((*(q))[0]))       这个表达式看似复杂,其实它就相当于"(*q)[0]",也就是代表QUEUE数组的第一个元素,那么它...
黑客画家 发布于 19分钟前

下围棋APP软件开发如何获得成功

广州APP软件开发别样网络指出:围棋是一项老少皆宜、益智身心的运动,很考验一个人的智力、体力、品质和意志力,喜欢下围棋的人也不在少数,尤其是一些退休在家的老年人,尤其热爱下棋。     学习围棋是一个循序渐进的过程,使用手机APP软件就可以随时随地学习围棋,各位开发商如果想要开发一款成功的下围棋APP软件,就需要做到以下几点:   一、准确的APP定位   要根据自己的产品或者公司理念为自己的APP进行准确的定位,移动平台就像是一个商业上的战场,想要在众多APP中脱颖而出,首先需要了解你的创意或者是想法是否有人做过,如果已经有了类似的APP,那么你就必须融入更多的想法和创意,要带给用户新鲜感才行。   二、抓住用户痛点   如果想开发一个成功的手机APP,你应该总是专注于你的手机APP开发的主要功能,以解决你的用户最大的痛点。尝试做一些他们意想不到的事情,超越他们的期望,他们在学习围棋的过程中越来越多依赖你的手机APP应用。   三、简洁的产品设计   对于手机用户来说,第一印象很重要,市场上两款相同类型的APP,一款APP界面简洁,功能一目了然,一款APP界面花样百出,功能参差不齐,用户很容易做出选择。在APP界面设计上面,一定要做到界...
bieyang1437 发布于 21分钟前 阅读 1

压缩感知

首先,我们必须要认识到这一点,即CS(Compressed Sensing)中的compressed不同于传统信息论和率失真意义上的compression。在CS中,"compressed"一词更加准确的描述是一个降维采样的过程,而不是在信源编码意义上的“compression”。在CS中,我们是没有关于原始信号像素域的任何信息,仅仅只有观测域信息的,而这一点是常常被人忽略的。 其次,我们要明白CS理论的意义何在,往往有很多人忽略了这一理论的实际意义。CS最重要的意义在于其可以极大地减轻信号采集端的复杂度(在实践情况中,许多信号是没有实际意义的),在信号采集端采样率低的情况下,在信号接收端能够以比较大的概率重构出原始信号。CS的应用比如,在医学图像上,由于CS理论,我们可以减少对于病人伤害部位的观测时间,从而减少检查(如X光、CT)时对人体产生的副作用——辐射;再比如,如果信号采集设备地处偏远、环境恶劣,那么这个设备的能源供应系统就成了问题,而我们可以通过降低信号采集端设备的复杂度,从而减少采集端设备的能源消耗,如此CS理论就有很现实的意义了。 传统的数据采集模式是:数据 采集-压缩-传输-解压缩 的模式。既然采集数据之后反正要压缩掉其中的冗余度,而这个压缩过程又相对来...
天蚕宝衣 发布于 23分钟前

saltstack trick

简单记录下saltstack的小技巧
Firxiao 发布于 23分钟前 阅读 1

游戏美工要学什么课程?

     很多人或者是不知道游戏美工是到底做什么的?其实游戏美工是CG艺术的分支,它是又可以分为游戏原画美工、游戏UI美工、游戏角色美工、游戏场景美工、游戏动画美工、游戏特效美工,这些分工不同的游戏美工一起合作才能完成一部完整的游戏,因此这就需要看你是想成为什么样的一个工种了,它的技能要求也是比较高的。   (1)如果是游戏原画美工要则是根据游戏策划给的策划案,然后是去设定整部游戏的美术风格,设定主要角色、场景,概念类游戏原画美工要设定主要角色、设计整体氛围,如果是想制作类游戏美工则需要设计出游戏中所有的道具、角色、怪物、场景以及游戏界面。   (2)现在的游戏原画美工要学的课程:(1)手绘基础、(2)原画艺术基础、(3)动物角色设定、动物角色设定、场景设定这些都是要考虑的,游戏UI美工需要设计出游戏的操作界面、登陆界面、游戏道具、技能标志、游戏中的小物件等都是要进行相关的设计的。   游戏UI美工要学的基础课程:UED概述、GUI设计基础、网页UI设计、软件UI设计、游戏UI设计。   (3)游戏角色美工要根据游戏原画美工给的原画稿件制作出游戏中的人物、怪物、动物等角色的模型。   在游戏角色美工要学的课程:(1...
jun9152143 发布于 25分钟前

最近新技术学习方向

因为目前对 Spring Boot 的绝大部分内容和 Spring Cloud 主要内容都已掌握,虽然还有如 Eureka的原理和高可用、Hystrix 的聚合监控、Zuul 过滤器的编写和高可用、Spring Cloud Bus 的用途等内容需要研究学习,但是目前在新技术领域的学习重点转向 Reactive Programming 和 Go 语言。 Reactive Programming 是 Java 高并发领域的主流技术,虽然 Netty 已出现多年,并被广泛使用,但是在业务系统的开发中,反应式编程的应用还是非常有限。这其中的原因不外乎是异步编程的复杂性很高,在大部分程序员能写好顺序性的代码已实属不易。以 RxJava 和 Spring Reactor 为代表的 Reactive Programming 技术就是为了解决异步编程中的困难,并提供 Back Pressure 等特性以适应高并发场景。因为 Java 目前包括可遇见的未来,很难全面提供类似 Go 的协程特性。Kotlin 的协程特性也难以解决已有 Java 技术对高并发的需求。因此,学习 Reactive Programming 对于 Java 程序员来说很重要...
编走编想 发布于 27分钟前 阅读 1

Excel文档隐藏Sheet页的两种方式

Excel文档隐藏Sheet页的两种方式
北风其凉 发布于 28分钟前 阅读 1

python对mysql.connector的简单封装,读改增删基本操作

python下,对mysql.connector驱动进行进一步封装,实现对mysql的添加、删除、读取,更改的常用操作。
qycms_cn 发布于 30分钟前 阅读 1

抖动,摇一摇动画

抖动效果在开发中比较少用到,不过有时使用了确有个很好的装逼效果,用的时候就&...
iOS赵师顺 发布于 31分钟前

Log4j

日志的实现方式: 1、自己写类,将日志数据,以io操作方式,写数据到文本文件。或者是写到数据库中。 2、使用log4j。log4j,这也是此文要记录的。log4j,以前在用.Net做web form时,用log4net。平台通吃。而且,log4j可以将日志,输出到console窗口,输出到文本文件,输出到数据库 等,功能还是很强大的! 3、使用jdk自带的logging.jar中的方法。 4、使用slfj。slfj,是也是一个很强大的功能。slfj旨在一统天下,也就是slfj提供了logging.jar 和 log4j的接口,可以通过slfj来调用log4j,也可以调用jdk的logging。 Log4j三个主要的组件,它们分别是 Logger、Appender和Layout Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger 称为Root,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logger.getLogger(String name)方法。 Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时 存储到一个...
Curry_M 发布于 35分钟前 阅读 1

classActionChains(__builtin__.object)

python 2.7 selenium Actionchains帮助文档的简单翻译,某些地方存在歧义及表达不准确的地方,望大神轻拍
Kampfer 发布于 38分钟前

redis队列(set)

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 话不多说我们直接来看命令: sadd/smembers/sismember Redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。当集合 key 不是集合类型时,返回一个错误。 注意:在Redis2.4版本以前, SADD 只接受单个成员值。 SADD KEY_NAME VALUE1..VALUEN   Redis Smembers 命令返回集合中的所有的成员。 不存在的集合 key 被视为空集合。 SMEMBERS KEY VALUE   Sismember 命令判断成员元素是否是集合的成员。 SISMEMBER KEY VALUE   scard/srem/srandmember Redis Scard 命令返回集合中元素的数量。 SCARD KEY_NAME   Redis Srem 命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。当 key 不是集合类型,返回一个错误。在 Redis 2.4 版本以前, SREM 只接受单个成员值。 SREM KEY MEMBER1..MEMBERN   Redis Sran...
写代码的奥特曼 发布于 38分钟前

git忽略对已入库文件的修改

一、关于.gitignore 和 excludes 这两个文件的只针对尚未提交到配置库的文件才起作用。而对于已经提交的文件是不起作用的。 由此可见,这两个文件的初衷是用于排除不希望上传入库的文件。像编译产生的临时文件等。 但是,我们经常有这样一种情况。 有个文件,我们必须入库,大家一起共享,但是呢。每个人本地的配置又是因自己本地的环境而异。这样的话,这个文件就很崩溃了。你要入库,通过.gitignore和excludes都不起作用。每次git status都会提示你修改,你又好上传。 对于这种情况,应该使用下面的命令: git update-index --assume-unchanged FILENAME 这样,每个人,从库上取代码后,在自己本地都要执行一下上面的这个命令。这样,以后,你这个文件的修改,git 都会帮你忽略掉。 当然,哪一天,你希望你的修改要提交入库,那你也必须手动修改一下 这个文件的标志位: git update-index --no-assume-unchanged FILENAME 所以。 我们总结一下,总的流程:还是像你平常一样,需要入库,全部commit 提交,push。然后,由于这个文件你本地的配置跟别人不一样,你需要修改它,但不需要入库与别人共享。那么你就执行上面的 git update-index --assume-unchanged 命令来...
fsteel 发布于 41分钟前

Java Lombok @Data @Builder

常用的 lombok 注解 @EqualsAndHashCode:实现equals()方法和hashCode()方法 @ToString:实现toString()方法  @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法  @Setter:注解在属性上;为属性提供 setting 方法  @Getter:注解在属性上;为属性提供 getting 方法  @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象  @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法  @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法  @Cleanup:关闭流 @Synchronized:对象同步 @SneakyThrows:抛出异常 @Data 不使用 lombok 的方案 public class Person { private String id; private String name; private String identity; private Logger log = Logger.getLogger(Person.class); public Person() { } public Person(String id, String name, String identity) { this.id = id; this.name = name; this.identity = identity; } public String getId() { return id; } public String getName() { ...
火力全開 发布于 43分钟前 阅读 2

大神张鑫旭的css reset

body{ line-height:1.4; color:#333; font-family:arial; font-size: 12px; background:white; } input,textarea,select{ font-size:12px; font-size:100%; font-family:arial; font-family:inherit; } body,h1,h2,h3,h4,h5,h6,p,ul,ol,form{ margin:0; } h4,h5,h6{ font-size:1em; } ul,ol{ padding-left:0; list-style-type:none; } /*image with no-border*/ a img{border:0;} img{border:0;}
帅的人连bug都讨厌 发布于 45分钟前

JVM调优总结(九)-新一代的垃圾回收算法

垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他 无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失 败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大 堆的设置限制在一个相对较小范围内,但是这样有限制了应用本身的处理能力,同样也是不可接收的。 分代垃圾回收方式确实也考虑了实时性要求而提供了并发回收器,支持最大暂停时间的设置,但是受限于分代垃圾回收的内存划 分模型,其效果也不是很理想。 为了达到实时性的要求(其实Java语言最初的设计也是在嵌入式系统上的),一种新垃圾回收方式呼之欲出,它既支持短的暂停 时间,又支持大的内存空间分配。可以很好的解决传统分代方式带来的问题。 增量收集的演进 增量收集的方式在理论上可以解决传统分代方式带来的问题。增量收集把对堆空间划分成一系列内存块,使用时,先使用其中一 部分(不会全部用完),垃圾收集时把之前用掉的部分中的存活对象再放到后面没有...
舒运 发布于 1小时前 阅读 1

使用USB HID进行数据交互

最近看到一款与我们同类型的USB Audio  Chip的SPEC: CM108AH(http://www.hardwaresecrets.com/datasheets/CM108AH.pdf), 其中通过HID协议对芯片内部寄存器进行读写操作的feature觉得很有意思。 考虑到客户应用场景下通过USB进行寄存器调整的简便性,觉得增加这个功能还是很有必要。 由于之前已经使用USB HID来进行音量的控制,所以相对修改就小的多,基本上只需要进行描述符的改动即可。 HID接口描述符 0x09, /* bLength: Interface Descriptor size */ 0x04, /* bDescriptorType: Interface descriptor type */ 0x03, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ 0x02, /* bNumEndpoints */ 0x03, /* bInterfaceClass: HID */ 0x00, /* bInterfaceSubClass : 1=BOOT, 0=no boot */ 0x00, /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */ 0x00, /* iInterface: Index of string descriptor */ 端点描述符 0x07, /* bLength: Endpoint Descriptor size */ 0x05, /* bDescriptorTyp...
crouchggj 发布于 1小时前 阅读 3

autocomplete属性

autocomplete 属性是 HTML5 中的新属性。 autocomplete 属性规定表单是否应该启用自动完成功能。 autocomplete 属性适用于 <form>,以及下面的 <input> 类型:text, search, url, telephone, email, password, datepickers, range 以及 color。 是否让浏览器自动记录之前输入的值,防止浏览器和恶意插件获取到,在input设置属性autocomplete="off"来关闭记录。
皇上洗碗 发布于 1小时前 阅读 4

全栈开发——动手打造属于自己的直播间(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 发布于 4天前 阅读 4650 评论 56 点赞 28 打赏 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 工程代码详解   一、搜索实战场景需求 搜索的场景会很多,常用的搜索场景,需要搜索的字段很多,但每个字段匹配到后所占的权重又不同。比如电商网站的搜索,搜到商品名称和商品描述,自然商品名称的权重远远大于商品描述。而且单词匹配肯定不如短语匹配。这样就出现了新的需求,如何确定这些短语,即自然分词。那就利用分词器,即可得到所需要的短语,然后进行...
泥沙砖瓦浆木匠 发布于 4天前 阅读 1137 评论 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_龙 发布于 6天前 阅读 1733 评论 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....
泥沙砖瓦浆木匠 发布于 7天前 阅读 2118 评论 3

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

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

【干货】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...
雪饼 发布于 7天前 阅读 1810 评论 14 点赞 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...
拿客-三产 发布于 7天前 阅读 2925 评论 7 点赞 5

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

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

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类型...
细肉云吞 发布于 1周前 阅读 3130 评论 16 点赞 16

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周前 阅读 1382 评论 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周前 阅读 2220 评论 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周前 阅读 2701 评论 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周前 阅读 1480 评论 2 点赞 4

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

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

使用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() 怎么画?...
量子 发布于 2周前 阅读 2132 评论 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...
瞎折腾 发布于 2周前 阅读 647

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周前 阅读 3456 评论 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周前 阅读 4631 评论 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周前 阅读 937 评论 3 点赞 1

各种动态渲染Element方式 的性能探究

###一、性能优化的原则及方法论 树立原则:动态渲染进入一个Dom元素,首先需要保证动态渲染操作必须尽可能少对原有dom树的影响,影响重绘及重排。 确定方法论:必须寻找一个**容器**来缓存渲染期间生成的dom结构(操作必须尽可能少对原有dom树的影响),然后再进行一次渲染到目标element中。 ### 二、生成期间DOM缓存的选择 - DocumentFragment(文档碎片对象,选择原因:脱离于文档流) - 临时Element(选择原因:新element脱离于文档流) - createElement,再一步步进行渲染 - 通过描述Dom的String(下称:DomString),转化为Dom对象 - 临时Element+innerHTML+cloneNode返回最外层element元素对象,再进行插入appendChild,必要时还需要选择器方法讲某一个Element对象提取出来 - XML字符串通过解析生成Element对象(注意,不是HTMLxxxElement对象,是Element对象),然后将该对象appendChild进去 - 临时字符串(选择原因:借助innerHTML渲染,一次渲染) ###三、DocumentFragment的优缺点 基本模式: ```javascript var fragment = document.createDocumentFragment(); fragment.appendChild( ... //生成Element的IIFE ) ``` ```javascript //IIFE示例,根据配置创建元素...
雕刻零碎 发布于 3周前 阅读 1695 评论 2 点赞 4

Fit项目分页组件的编写

项目中涉及列表显示的地方都会用到分页控件,为了能更好地与当前网站的样式匹配,这次要自己实现一个。 所以选择了模板中提供的分页样式,基于模板改造以能够动态生成:       一 控件的行为规则 a) 可设置显示几个页码(默认5个,只能是奇数) 如果当前页显示5个,则默认前后各有两个,比如当前页是5,显示页码为“3 4 5 6 7 如果当前页在最前面,比如为1,显示页码为:1 2 3 4 5 同样当前页在最后面,比如为9,显示页码为:5 6 7 8 9 如果总页数少于5,比如只有3页,则页码全部显示:1 2 3 b) 关于跳转首页(<<)、尾页(>>)、上一页(<)、下一页(>) 如果当前页是第一页,首页和上一页禁用 如果当前页是最后一页,尾页和下一页禁用 c) 当前页的样式要区别于其它页码       二 代码编写 a) 分页组件类、属性、常量   PAGE_COUNT为默认显示的页码数量,这里为了便于测试设置成了2;静态属性分别为当前页、总页数、数据总条数,但刚刚发现TotalPage、TotalCount实际上是冗余的,两者可以互相计算得出,这要尽早重构。   b) 局部变量   根据目前的实现,需要这么一坨局部变量。startPage、endPage限定了显示页码的范围。将跳转链接放在了hrefStr,以后其它列表需...
zhixin9001 发布于 3周前 阅读 943 评论 3 点赞 2
顶部