利发国际官方网

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

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
开源中国 - 找到您想要的开源项目,分享和交流 - 利发国际官网-利发国际官方网-利发国际官方网站

精彩阅读

  1. 最新推荐

  2. 今日热门

  3. 本周热门

  4. 每日一博

  5. 最新文章

Laravel学习笔记之基于PHPStorm编辑器的Laravel开发

引言 本文主要讲述在PHPStorm编辑器中如何使用PHPStorm的Laravel插件和Laravel IDE Helper来开发Laravel程序,结合个人积累的一点经验来说明使用PHPStorm编辑器来开发程序还是很顺手的,内容主要基于PHPStorm官方文档Laravel Development using PhpStorm。 学习主题 本文主要涉及以下几个技巧: Composer的初始化 Laravel IDE Helper的安装 Laravel Plugin的安装 PHPStorm对Laravel框架的支持 PHPStorm对Blade模板引擎的支持 使用PHPStorm调试Laravel程序 使用PHPStorm的单元测试功能 使用PHPStorm的数据库功能 1、一些准备工作 (1)、初始化composer PHPStorm提供了composer配置功能,可以在PHPStorm新建一个空项目,然后在空项目根目录右键选择Composer|Init Composer...,然后点击从getcomposer.org网上下载,PHPStorm会自动下载composer.phar文件,并在项目根目录下生成composer.json文件,速度也很快: 对于composer.json文件中数组key字段值可以在Composer官网上查找相关解释,包括重要的require和require-dev字段解释。 (2)、安装Laravel IDE Helper 安装也很简单,还是在项目根目录右键找到Composer选择Add Dependancy...,搜索laravel-ide-helper选择安装就行,如果...
slagga 发布于 6小时前 阅读 42 评论 1

python “双”稀疏矩阵转换为最小联通量“单”矩阵

python “双”稀疏矩阵 最小联通量 “单”矩阵 tri-tuple 三元组
soul_mate 发布于 7小时前 阅读 21

程序中的并发分析及处理

 B/S构架的应用越来越普及,但由于它有别于C/S构架的特殊性,并发控制始终没能得到很好的解决,如售票系统经常会出现同一张火车票出售多次的现象。典型的案例如下:   例如若有两个客户端,A客户先读取了2000张票,之后B客户也读取了2000张票的数据,A客户买了500张,对数据库作了变 更,此时数据库中的余票为1500张,B客户也要买500张,根据其所取得的资料,2000-1300将为700余票,若此时再对数据库进行变更,最 后的余票700张就会不正确,应当是200张,问题的出现是由于两个客户对同一条数据进行并发访问造成的。
jamesamy 发布于 7小时前 阅读 39

Mongodb高可用集群搭建

最近公司项目要求Mongodb集群且高可用,在查询了一系列文章,再结合项目实际情况,所以采用了这一套高可用集群方案
Crazy_Coder 发布于 9小时前 阅读 29 评论 1

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

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

干货:4 个绝佳的命令行终端程序

让我们来看几个精心设计的 CLI 程序,以及如何解决一些可发现性问题。在本文中,我会指出命令行界面的可发现性缺点以及克服这些问题的几种方法。
云端等你 发布于 12小时前 阅读 78 评论 1

这 5 个前端组件库,可以让你放弃 jQuery UI

在建立Web应用时,通常都需要用到一些有用的UI组件。无论应用中需要的是日历,滑块,图形或其它用于提升或简化用户交互的组件,那么都面临两种选择:要么自己来创建这些组件,要么使用现有的组件功能。 自行开发这些组件是复杂并耗时的,通常会花费大量的时间来独自完成这些组件,这也正是UI库和框架存在的意义。现存的这些库简化了创建UI组件的过程。你可以直接利用现有的框架,并自定义它们来满足自己的需求。 目前正在广泛使用的框架之一就是jQuery UI。这是一组扩展的使用jQuery构建的部件、效果和主题,分为一组一组的形式。既可以在单个软件包中下载jQuery UI的所有元素,也可以选择只下载感兴趣的组件和功能。使用这样的控件集能够为组件创建出一致的外观,并允许以更少的投入快速创建出应用。 虽然jQuery UI能起到很好的作用,但是还有其它的一些框架,拥有很好的高品质控件。在这篇文章中,将会分析其中的几个框架并做比较。 Kendo UI 这是一个付费框架,Kendo UI Framework提供了一系列超过70个用于加速开发过程的组件。这些组件是响应式的、可设置主题的、快速的和高度可定制的。 以下讲解Kendo UI的几件事情以及如何使用Kendo UI来创建炫酷的交互元素。 首先这...
葡萄城控件技术团队 发布于 12小时前 阅读 72

Elasticsearch学习总结三 elasticSearch基本操作API

本文是elasticSearch一些基本操作api的简单封装和调用
winstone 发布于 1天前 阅读 36

docker下搭建fastdfs分布式集群

本文在centos6.8下,通过一个实例演示fastdfs_in_docker工程的使用方法,利用docker搭建一个fastdfs集群环境。部署结构为: 1、前提条件 1)所有机器均能连接外网 2)已安装docker,具体看参考    3)已安装git 4)防火墙开放对下面要使用的端口(端口在fastdfs集群启动前开放即可) 2、搭建步骤 2.1 所有机器上执行: git clone https://git.oschina.net/zjg23/fastdfs_in_docker.git;#从git服务器下载工程 mkdir -p /home/fastdfs/{tracker,storage}; #这两个路径用来挂载到docker容器,尤其是/home/fastdfs/storage路径要保证有足够的存储空间 cd fastdfs_in_docker; docker build -t zjg23/fastdfs:2.0 .; #构建镜像 下图表示镜像构建成功 2.2 构建tracker,192.168.5.128上执行: docker run -d --name fdfs_tracker -v /home/fastdfs/tracker:/export/fastdfs/tracker --net=host -e TRACKER_BASE_PATH=/export/fastdfs/tracker -e TRACKER_PORT=22123 zjg23/fastdfs:2.0 sh /usr/local/src/tracker.sh 2.3 构建storage 2.3.1 192.168.5.129上执行: docker run -d --name fdfs_storage -v /home/fastdfs/storage:/ex...
zjg23 发布于 1天前 阅读 39 评论 1

【Django源码浅析】—Django runserver启动流程与URL路由

基于django version 1.11.0 . alpha版本
麻花先生 发布于 1天前 阅读 14 评论 1

Spark Streaming场景应用-Kafka数据读取方式

## 概述 Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka、flume、socket流等等。除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论。本篇文章主要着眼于我们目前的业务场景,只关注Spark Streaming读取Kafka数据的方式。 Spark Streaming 官方提供了两种方式读取Kafka数据: - 一是Receiver-based Approach。该种读取模式官方最先支持,并在Spark 1.2提供了数据零丢失(zero-data loss)的支持; - 一是Direct Approach (No Receivers)。该种读取方式在Spark 1.3引入。 此两种读取方式存在很大的不同,当然也各有优劣。接下来就让我们具体剖解这两种数据读取方式。 ## 一、Receiver-based Approach 如前文所述,Spark官方最先提供了基于Receiver的Kafka数据消费模式。但会存在程序失败丢失数据的可能,后在Spark 1.2时引入一个配置参数`spark.streaming.receiver.writeAheadLog.enable`以规避此风险。以下是官方的原话: > under default configuration, this approach can lose data under failures (see receiver reliability. To ensure zero-data loss, you have to additionally enable Write Ahead Logs in Spark Streaming (in...
狂奔小蜗牛 发布于 2天前 阅读 1832 评论 2 点赞 3 打赏 2

CentOS7搭建 Hadoop + HBase + Zookeeper集群

本文主要介绍搭建Hadoop、HBase、Zookeeper集群环境的搭建
kolbe 发布于 2天前 阅读 3186 评论 14 点赞 17 打赏 1

MyCAT源码分析:调试环境搭建

> 原文地址:[MyCAT源码分析:调试环境搭建](https://github.com/YunaiV/Blog/blob/master/Database/MyCAT/1001-MyCAT%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%EF%BC%9A%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md) > `MyCat-Server` **带注释**地址 :[https://github.com/YunaiV/Mycat-Server) > **😈本系列每 1-2 周更新一篇,欢迎订阅、关注、收藏 GitHub:https://github.com/YunaiV/Blog。** ------- - [1. 依赖工具](#) - [2. 源码拉取](#) - [3. 数据库配置](#) - [4. MyCat 配置](#) - [5. MyCAT 启动](#) - [6. MyCAT 测试](#) - [7. 交流](#) # 1. 依赖工具 * Maven * Git * JDK * MySQL * IntelliJ IDEA # 2. 源码拉取 从官方仓库 https://github.com/MyCATApache/Mycat-Server `Fork` 出属于自己的仓库。为什么要 `Fork` ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。😈 使用 `IntelliJ IDEA` 从 `Fork` 出来的仓库拉取代码。拉取完成后,`Maven` 会下载依赖包,可能会花费一些时间,耐心等待下。 # 3. 数据库配置 我们要搭建的是**非分片表**的调试环境,需要创建一个数据库和表: 1. 创建数据库...
芋艿V 发布于 2天前 阅读 327 评论 6

自定义的Troop<T>泛型类(qt c++, java和c#的实现源码)

Troop是一个泛型列表操作类,适用于非高性能和非大数据量的要求。包括了:取值get,赋值set,追加append,插入insert,清除remove,进队enqueue,出队dequeue,交换swap,滚动roll, 进栈push,出栈pop等日常操作。
白首太玄經 发布于 2天前 阅读 180 评论 1

聊聊Golang中的range关键字

golang range
william3608 发布于 2天前 阅读 247 点赞 2

处处蚊子咬,绑定事件知多少?

> 接上回,上次的更改小x经理很满意,但是提出了几点意见。 她是这样说的: - 系统本地留log没必要弄个类,太麻烦了,日志也不需要记录具体人,有个时间即可。 - 管理员就一个人,不要用静态方法。 经理一定是处女座的,好吧,她的要求是对的,每个事件都是具有自己的用意,有的是一个对象,有的是系统级别,有的是一类东东,看来我要先复习一下yii的事件都能绑定什么了? # yii事件支持的绑定 前面说过yii一共能绑定四种类型的函数,分别是 - 全局函数 - 类的静态函数 - 对象的方法 - 匿名函数 **支持的函数理解很简单,难在使用场景,这是我们要思考的。** 针对小x经理说的第一个问题,我似乎用一个匿名函数就可以搞定了,于是我改了app\controllers\UserController.php 中对于OLog的绑定逻辑 ```php use yii\web\User; class UserController extends Controller { public function __construct(){ // 绑定事件 $this->on(User::EVENT_AFTER_LOGIN,function($event){ $time = date("Y-m-d H:i:s"); Yii::info("有人在{$time}登陆了"); }); $this->on(User::EVENT_AFTER_LOGIN,['app\models\Admin','sendMail']); $this->on(User::EVENT_AFTER_LOGIN,['app\models\User',...
阿北2017 发布于 2天前 阅读 251 评论 2

spring boot / cloud (一) 使用filter防止XSS

# spring boot / cloud (一) 使用filter防止XSS ##一.前言 ###XSS(跨站脚本攻击) >跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。 ##二.思路 ###基于filter拦截,将特殊字符替换为**html转意字符** (如: `"<" 转意为 "<"`) , 需要拦截的点如下: - 请求头 `requestHeader` - 请求体 `requestBody` - 请求参数 `requestParameter` ##三.实现 ###1.创建XssHttpServletRequestWrapper类 在获取请求头,请求参数的这些地方,将目标值使用`HtmlUtils.htmlEscape`方法转意为html字符,而避免恶意代码参与到后续的流程中 ``` java /** * XssHttpServletRequestWrapper.java * Created at 2016-09-19 * Created by wangkang * Copyright (C) 2016 egridcloud.com, All rights reserved. */ package com.egridcloud.udf.core.xss; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import org.springframework.web...
wangkang80 发布于 2天前 阅读 571 评论 5 点赞 2

基于Go语言快速构建RESTful API服务

In this post, we will not only cover how to use Go to create a RESTful JSON API, but we will also talk about good RESTful design.
RiboseYim 发布于 3天前 阅读 591 评论 1 点赞 1

YII2 RBAC规则与源码分析

YII2 RBAC 规则细说 我们新建这样的规则 我们在yii2 admin中添加以上规则 然后我们新增一个测试的权限,写个规则名字 并把这权限赋给要测试用户 我们用这用户登录后,运行/site/about,当然用户需要有site/about的权限 这里我们可以通过传的参数作为规则的运行参数,本身用户是有chgfhg权限的,但参数限制了用户是否有这权限,当规则返回true时,用户有权限,反之不行。 我们再看看官方文章 首选这里有author有$updateOwnPost权限,但这个权限绑定了规则,所以运行时受到规则约束 updatePost为updateOwnPost的后代 官方检测权限updatePost,本身没有这个直接的权限,但我们有updateOwnPost,yii2的RBAC是以递归方式一层层检测权限,(在没有规则的情况下)我们当前拥有updateOwnPost(我们可以看成我们拥有某个修改文章的角色,而updatePost又是这角色的子孙), 这是约束,如果返回TRUE我们就可以修改文章了
303650172 发布于 3天前 阅读 221 评论 1 点赞 1

从源码看kubelet与CNI Plugin的集成

基于kubernetes 1.6.2的代码,对kubelet于CNI Plugin交互的代码进行了分析,看看kubelet是在什么时候通过什么方式调用的CNI Plugin的。
WaltonWang 发布于 3天前 阅读 120 评论 1

单元测试(二)-桩对象

在单元测试时,难免会碰到一些外部依赖,外部依赖是指在系统中代码与其交互的对象,而且无法对其做人为控制,比如文件系统、线程、内存、时间、数据库结果集等,这时可以使用伪对象(fake)来替代外部依赖,桩对象(stub)便是其中之一   一 桩对象 a) 桩对象是对系统中现有依赖项的一个替代品,可人为控制。通过使用桩对象,无需涉及依赖项,即可直接对代码进行测试。使用桩对象可以轻松地控制模拟依赖项的返回值会行为(比如模拟内存溢出异常)。 b) 使用桩对象的前提是要找到原系统中的接缝(Seam)。接缝是指代码中可以插入不同功能(如桩对象类)的地方。有时需要通过重构来制造接缝并解除依赖的方法,可以抽取接口来制造接缝,这样底层实现就可以被替换了。     二 替换底层实现的方法   常用的替换底层实现的方法有: 在构造函数中接收一个接口实现(构造函数注入) 在属性中接收一个接口实现(属性注入) 在方法的参数中接收一个接口实现(参数注入) 使用工厂方法产生接口实现   a) 在构造函数中接收一个接口实现 如果要使用类LogAnalyzer中的IsValidLogFileName方法来判断文件名是否有效,在生产环境下,IsValidLogFileName方法要读取配置文件,然后根据配置内容来...
zhixin9001 发布于 3天前 阅读 182

实机操作,由IBM的技术大咖带领如何在短时间内迅速上线人工智能应用,名额有限快来报名!”

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

ElasticSearch:时序差分聚合(Serial Differencing Aggregation)

时序差分聚合的公式为f(x) = f(xt) - f(xt-n),也就是用当前点减去上一个周期的对应点,然后得出一个新的时序图,周期为1相当于不对时间做归一化求导,它表示一个点到下一个点的变化。单周期差分聚合对移除常量和线性趋势是很有用的。 单周期对于把序列转换为固定序列也是十分有用的,例如下面的图片,原始数据不是固定序列的,这样在某些分析场景下是不方便的 ![输入图片说明](https://static.oschina.net/uploads/img/201705/26113152_NwLR.png "在这里输入图片标题") 通过计算差分,我们重新整理了数据的趋势。并且我们让序列固定化了(第一个序列有一些随机的0值,并且没有任何模式)转换后我们发现数据是随机游走的,这个发现让我们能够选择合适的工具进行下一步的分析 对第1和第30位进行差分 ![输入图片说明](https://static.oschina.net/uploads/img/201705/26113742_jtt7.png "在这里输入图片标题") # 语法 ``` { "serial_diff": { "buckets_path": "the_sum", "lag": "7" } } ``` #参数 参数|描述|是否必填|默认值 ----|----|---|---| buckets_path|感兴趣的项|是| lag|向前减第n个桶|否|1 gap_policy|中间出现间隙了怎么办|否|insert_zero format|格式化输出|否|...
小埋酱 发布于 12小时前 阅读 106

【码云周刊第 20 期】让 Java 开发更简单,提高工作效率!

每周为您推送最有价值的利发国际官方网内参!
利发国际官方网码云 发布于 2周前 阅读 154

干货:4 个绝佳的命令行终端程序

让我们来看几个精心设计的 CLI 程序,以及如何解决一些可发现性问题。在本文中,我会指出命令行界面的可发现性缺点以及克服这些问题的几种方法。
云端等你 发布于 12小时前 阅读 78 评论 1

CSS的未来:游戏的变革Flexbox

日期:2013-4-26  来源:GBin1.com 相关阅读: 使用Flexbox布局方式的简单演示 HTML5和CSS3给网络开发者提供了新的语法标签,本地动画工具,服务器端字体等等新增功能,这些并不是结束。开发者正苦于为网页设计挖出一条战壕 - 真正的页面排版工具,事实上,即便是最有前途的CSS3现在也仍旧是在地平线上。 虽然它可以创造出令人惊讶的复杂布局,例如CSS悬浮,定位规则,以及有些怪异的JavaScript,但是这些工具中,没有一个是用于明确布局内容的,这就是为什么你想要在浏览器用这些工具实现你想要的布局是如此令人惊讶的复杂。很快的,你就可以嵌入抛出你的悬浮效果用一种更好的方式 - CSS Flexible Box Model,可以简单称为Flexbox。Flexbox可以让你用几行非常简单的代码创建一个复杂的布局 - 不再需要悬浮和“清除悬浮”。 也许它更加强大的一点 - 特别是建设响应网站 - Flexbox的order属性允许你在HTML源顺序中创建一个完全独立的布局。基于一些理由,你想要自己的页脚出现在页面上方?没问题,只要将你的页脚CSS设置为顺序1,Flexbox也可以使它垂直居中。 Flexbox早就存在,但是它的规范被重写了,旧的代码就已经过时了。如果你想学习新的语法, 这里将提供一个简单的...
gbin1 发布于 4年前 阅读 97

[转载]响应式设计的未来——Flexbox

  本文由大漠根据Ben Gremillion的《Responsive Design of the Future with Flexbox》所译,整个译文带有我们自己的理解与思想,如果译得不好或不对之处还请同行朋友指点。如需转载此译文,需注明英文出处:http://blog.teamtreehouse.com/responsive-design-of-the-future-with-flexbox,以及作者相关信息 ——作者:Ben Gremillion ——译者:大漠 在CSS中,浮动几乎代替了表格用来服务于布局,做为替身,比表格好用得多。但他们仍然有限。现在有一个建议的解决方案称为CSS Flexible Box布局模块,一般称为Flexbox。 Flexbox是CSS3推荐方法,用来帮助设计师更好的控制页面的元素,在没有比较好的解决方案之前,Flexbox要比其他现代布局方案要更强。 真的,我们仍然没有在使用,因为Flexbox支持至今还是受到限制的。但当Flexbox得到浏览器友好支持的时候,加上媒体查询的弹性布局会使Web设计师在Web布局上带来革命性的变化。 CSS的痛楚 在写这篇教程时,支持Flexbox的浏览器还是有限的。Chrome浏览器需要添加其自身的前缀“-webkit-”才能识别。其他的Webkit内核浏览器,特别是移动端的Safari和Android浏览支持都是仅仅有限的。而微软IE只有IE10。不过这个Flexbox规范本身...
叛道 发布于 4年前 阅读 167

这 5 个前端组件库,可以让你放弃 jQuery UI

在建立Web应用时,通常都需要用到一些有用的UI组件。无论应用中需要的是日历,滑块,图形或其它用于提升或简化用户交互的组件,那么都面临两种选择:要么自己来创建这些组件,要么使用现有的组件功能。 自行开发这些组件是复杂并耗时的,通常会花费大量的时间来独自完成这些组件,这也正是UI库和框架存在的意义。现存的这些库简化了创建UI组件的过程。你可以直接利用现有的框架,并自定义它们来满足自己的需求。 目前正在广泛使用的框架之一就是jQuery UI。这是一组扩展的使用jQuery构建的部件、效果和主题,分为一组一组的形式。既可以在单个软件包中下载jQuery UI的所有元素,也可以选择只下载感兴趣的组件和功能。使用这样的控件集能够为组件创建出一致的外观,并允许以更少的投入快速创建出应用。 虽然jQuery UI能起到很好的作用,但是还有其它的一些框架,拥有很好的高品质控件。在这篇文章中,将会分析其中的几个框架并做比较。 Kendo UI 这是一个付费框架,Kendo UI Framework提供了一系列超过70个用于加速开发过程的组件。这些组件是响应式的、可设置主题的、快速的和高度可定制的。 以下讲解Kendo UI的几件事情以及如何使用Kendo UI来创建炫酷的交互元素。 首先这...
葡萄城控件技术团队 发布于 12小时前 阅读 72

PVC地板使用时应注意

自21世纪初,作为新型环保概念的PVC地板步入中国建材市场,以“轻体地材”的优越材质形象,打开了地板发展的大门,创下建材市场的伟绩。在国内,PVC地板普遍流行于东南沿海及发达城市之间;国外,PVC地板广受欧美及日韩等国家的青睐;受到了消费者的普遍认可。由于PVC地板多样化的性能和“将环保进行到底”的发展概念,逐渐取代了传统木地板、瓷砖等,成为现代装修中不可取代的地面材料。 PVC地板与目前主流的木地板大径不同,采用聚氯乙烯树脂为主材料,含有填料、增塑剂、稳定剂、着色剂等辅料加工而成。由于引进高科技与高分子的采集物,其性价比相对于传统的木地板要高,且经久耐用,不易磨损,因此,在超市、健身中心、企业办公场所等公共场所应用广泛,且发展趋势逐渐上涨。 使用PVC地板时应该注意的事项: 在搬运物品时,特别是针对底部有金属尖锐的物品,禁止在地板上拖拉现象,避免地板被划伤等损坏;除此以外,阳光的防护也是必要的。避免强光直接照射,做好地板放紫外线照射,防止地板变色、褪色。 日常生活中,要定期给地板进行清洁保养;如使用中性清洁剂清洁,避免使用强酸碱性的清洁剂,清洁地面,做好保养地板的维护工作; 对于地板上沾染的墨水、食品、油...
sjml 发布于 2年前 阅读 127

泛函编程(5)-数据结构(Functional Data Structures)

     编程即是编制对数据进行运算的过程。特殊的运算必须用特定的数据结构来支持有效运算。如果没有数据结构的支持,我们就只能为每条数据申明一个内存地址了,然后使用这些地址来操作这些数据,也就是我们熟悉的申明变量再对变量进行读写这个过程了。试想想如果没有数据结构,那我们要申明多少个变量呢。所以说,数据结构是任何编程不可缺少的元素。     泛函编程使用泛函数据结构(Functional Data Structure)来支持泛函程序。泛函数据结构的特点是”不可变特性“(Immutability), 是泛函编程中函数组合(composition)的必需。所以,与其它编程范畴不同,泛函编程的泛函数据结构必须具体一套特定的数据运算方式。 泛函数据结构及运算方法具备以下特征: 1、不可变特性(Immutable) 2、运算在数据结构内进行。尽量避免使用中间变量 3、运算返回新的数据结构作为结果 我们先看看熟悉的OOP数据运算风格: scala> var arr = Array(1,2,3) arr: Array[Int] = Array(1, 2, 3) scala> var sum = arr(0)+arr(1)+arr(2) sum: Int = 6 以上运算是需要中间变量的。而且是在结构外进行的:先把数据从地址读出再相加。 scala> arr(0) = sum scala> arr...
TIGER_XC 发布于 2年前 阅读 81

HDFS Federation设计动机与基本原理

HDFS Federation是Hadoop最新发布版本Hadoop-0.23.0中为解决HDFS单点故障而提出的namenode水平扩展方案。该方案允许HDFS创建多个namespace以提高集群的扩展性和隔离性。本篇文章主要介绍了HDFS Federation的设计动机和基本原理。 1. 当前HDFS概况 1.1 当前HDFS架构 当前HDFS包含两层结构: (1) Namespace 管理目录,文件和数据块。它支持常见的文件系统操作,如创建文件,修改文件,删除文件等。 (2) Block Storage有两部分组成: Block Management维护集群中datanode的基本关系,它支持数据块相关的操作,如:创建数据块,删除数据块等,同时,它也会管理副本的复制和存放。 Physical Storage存储实际的数据块并提供针对数据块的读写服务。 【Block Storage的这两部分分别在namenode和datanode上实现,所以该模块由namenode和datanode分工完成】 当前HDFS架构只允许整个集群中存在一个namespace,而该namespace被仅有的一个namenode管理。这个架构使得HDFS非常容易实现,但是,它(见上图)在具体实现过程中会出现一些模糊点,进而导致了很多局限性(下面将要详细说明),当然这些局限性只有在拥有大集群的公司,像baidu,腾讯等出现。 1.2 当前HDFS局限性 【Block...
彭苏云 发布于 2年前 阅读 149

Android架构之App组件化方案详细实践与总结

1、Android组件化项目 在Android项目组件化之前,我们的项目都是像下图那样,一个单一工程下,根据不同的业务分几个文件夹,把需要的第三方库依赖下就开始开发了,这样的代码耦合严重,牵一发而动全身,删除某处代码就会到处报错,如果不解决掉报错的地方,就没法编译打包,而且这样的代码只适合于个人开发,尤其团队开发合并代码的时候那真是一个麻烦,相信大家都会深有体会,如果项目很大的话,修改一点简单的页面都要重新编译,Android编译速度大家也都见识过,每次打包都很耗时,并且这样的代码想做单元测试也是无从下手。 ![输入图片说明](http://mmbiz.qpic.cn/mmbiz_png/ibuh47bPhianYAq9uhkSyKMlABUJVc2ypNWehDrlxuoJLkDqMfkMNibxJ3xnJxqQrhQpkr8ds73uYJwZ4ibwTPTWLQ/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1 "在这里输入图片标题") 所以Android项目组件化就迫在眉睫了,组件化的方向就是由一个项目工程拆分成若干个模块工程,由App主工程提供统一的入口,每个业务独立的模块共享项目的Common依赖库。 ![输入图片说明](http://mmbiz.qpic.cn/mmbiz_png/ibuh47bPhianYAq9uhkSyKMlABUJVc2ypNwM9MIhP7E8YUQUkNQsM5FCEFTz8E5R2Ib0cwLwxMnzEpr1veRGHZVg/640?wx_fmt=...
定陶黄公子 发布于 2个月前 阅读 95

Leader Election

Zookeeper Curator 选主
秋雨霏霏 发布于 4小时前 阅读 47

[Mybatis] Mybatis处理列名->字段名映射(二) - AS用法 & ResultMap

接上次的博文,看看第二种和第三种方案,因为第二种方案比较简单,和三放在一起看了。
kailuncen 发布于 2小时前 阅读 49 评论 1 打赏 2

Laravel学习笔记之基于PHPStorm编辑器的Laravel开发

引言 本文主要讲述在PHPStorm编辑器中如何使用PHPStorm的Laravel插件和Laravel IDE Helper来开发Laravel程序,结合个人积累的一点经验来说明使用PHPStorm编辑器来开发程序还是很顺手的,内容主要基于PHPStorm官方文档Laravel Development using PhpStorm。 学习主题 本文主要涉及以下几个技巧: Composer的初始化 Laravel IDE Helper的安装 Laravel Plugin的安装 PHPStorm对Laravel框架的支持 PHPStorm对Blade模板引擎的支持 使用PHPStorm调试Laravel程序 使用PHPStorm的单元测试功能 使用PHPStorm的数据库功能 1、一些准备工作 (1)、初始化composer PHPStorm提供了composer配置功能,可以在PHPStorm新建一个空项目,然后在空项目根目录右键选择Composer|Init Composer...,然后点击从getcomposer.org网上下载,PHPStorm会自动下载composer.phar文件,并在项目根目录下生成composer.json文件,速度也很快: 对于composer.json文件中数组key字段值可以在Composer官网上查找相关解释,包括重要的require和require-dev字段解释。 (2)、安装Laravel IDE Helper 安装也很简单,还是在项目根目录右键找到Composer选择Add Dependancy...,搜索laravel-ide-helper选择安装就行,如果...
slagga 发布于 6小时前 阅读 42 评论 1

From Java to Kotlin

From Java To Kotlin Java System.out.print("Amit Shekhar"); System.out.println("Amit Shekhar"); Kotlin print("Amit Shekhar") println("Amit Shekhar") Java String name = "Amit Shekhar"; final String name = "Amit Shekhar"; Kotlin var name = "Amit Shekhar" val name = "Amit Shekhar" Java String otherName; otherName = null; Kotlin var otherName : String? otherName = null Java if(text != null){ int length = text.length(); } Kotlin text?.let { val length = text.length } Java String firstName = "Amit"; String lastName = "Shekhar"; String message = "My name is: " + firstName + " " + lastName; Kotlin val firstName = "Amit" val lastName = "Shekhar" val message = "My name is: $firstName $lastName" Java String text = "First Line\n" + "Second Line\n" + "Third Line"; Kotlin val text = """ |First Line |Second Line |Third Line """.trimMargin() Java String text = x > 5 ? "x > 5" : "x <= 5"; Kotlin val text = if (x > 5) "x >...
顶层设计 发布于 14小时前 阅读 38

mysql数据库备份

MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb   备份数据库到D盘跟目录 mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql   备份到当前目录 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库 mysqldump --add-drop-table -h127.0.0.1 -uroot -ppass myweb > backupfile.sql   直接将MySQL数据库压缩备份 备份到D盘跟目录 mysqldump -h127.0.0.1 -uroot -ppass myweb | gzip > d:/backupfile.sql.gz   备份MySQL数据库某个(些)表。此例备份table1表和table2表。备份到linux主机的/home下 mysqldump -h127.0.0.1 -uroot -ppass myweb table1 table2 > /home/backupfile.sql   同时备份多个MySQL数据库 mysqldump -h127.0.0.1 -uroot -ppass --databases myweb myweb2 > multibackupfile.sql   仅仅备份数据库结构。同时备份名为myweb数据库和名为myweb2数据库 mysqldump --no-data -h127.0.0.1 -uroot -ppass --databases myweb myweb2 > structurebackupfile.sql   备份服务器上所有数据库 mysqldump --all-d...
陈小扁 发布于 14小时前 阅读 37

Keepalived+LVS+Nginx负载均衡之高可用

上一篇写了nginx负载均衡,此篇实现高可用(HA)。系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行。针对系统架构设计的高可用要求,我们需要解决Nginx负载均衡出现单机故障时,系统正常运行的需求。所以系统架构引入Keepalived组件,实现系统高可用。   一、Keepalived介绍    Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用,其功能类似于heartbeat,解决单机宕机的问题。   二、Keepalived技术原理    keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。通过VRRP协议结合LVS,对组群服务器监控情况,若master出现宕机情况,则将VIP漂移到backup机上。实现了分布式系统高可用。可以理解为:keepalived是LVS的管理软件,根据监控情况,将宕机服务器从ipvsadm移除掉。   三、Keepalived+LVS+Nginx实现系统高可用      服务器 IP地址 说明 虚拟IP 192.168.1.120:80   主机 192.168.1.104:80   备机 192.168.1.103:80   Web站点A 192.168.1.101:8081 不同端口 Web站点B 192.168.1.101:8082 不同端口 1、安装ipvsadm,C...
舒运 发布于 14小时前 阅读 35

使用jQuery需要注意的几点

1、$(document).ready();:当页面载入时自动执行程序 2、索引器(确定是哪个元素):eq()和get(),前者返回jQuery包装集,后者返回DOM对象,默认都是从0开始计数 3、设置元素文本内容的方法:html()是jQuery的方法,innerHTML()是DOM对象的方法 4、":even":用于获取索引值为偶数的元素   ":odd":用于获取索引值为奇数的元素 5、得到焦点:是指鼠标移到目标上准备操作时      失去焦点:是指鼠标移到目标之外 6、选择当前子元素:$(this).children(“”) 7、选择当前元素的兄弟元素:$(this).siblings() 8、index():搜索匹配的元素,并返回当前元素在所有兄弟元素里面的索引值,从0开始计数,返回number 9、eq(index|-index):获取第N个元素,从0开始计  
权哥仔 发布于 24小时前 阅读 35

深入解析java.lang.String

     java.lang.String作为一个最常用的类,出现在各种各样的编程环境中。而其实现方式的不同可能造成运行效率的大大不同。只有深入了解JVM对String的实现机制,才能更好的利用String。 String的不变性     String是一个final类,因此它不能被继承,同时,用以存储字符串内容的char value[]数组是private、final的,因此同样不能改变它的内容。下面是String类的源码: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; ...     那么在JVM中是怎么对String进行更新处理的呢?答案是新建一个String类,将原引用指向这个新String类。 public class Main { public static String test(String s){ return s.toUpperCase(); } public static void main(String []args){ String s1 = "asd"; String s2 = test(s1); System.out.println("s1 is : " + s1 + " and s2 is : " + s2); } } /×× s1 is : asd and s2 is : ASD ×/     s1作为一个拷贝传递给了test函数,返...
cassia_tora 发布于 2小时前 阅读 44

程序中的并发分析及处理

 B/S构架的应用越来越普及,但由于它有别于C/S构架的特殊性,并发控制始终没能得到很好的解决,如售票系统经常会出现同一张火车票出售多次的现象。典型的案例如下:   例如若有两个客户端,A客户先读取了2000张票,之后B客户也读取了2000张票的数据,A客户买了500张,对数据库作了变 更,此时数据库中的余票为1500张,B客户也要买500张,根据其所取得的资料,2000-1300将为700余票,若此时再对数据库进行变更,最 后的余票700张就会不正确,应当是200张,问题的出现是由于两个客户对同一条数据进行并发访问造成的。
jamesamy 发布于 7小时前 阅读 39

值得推荐国内最好用的VPN软件

如今,VPN服务业务已经是很多行业都非常关注的一个新型发展业务,不仅仅是因为互联网时代的到来,更加是因为现在很多人的生活和工作都离不开互联网,于是很多vpn的品牌也出现在我们的视野当中。那么有哪些是值得推荐的好用的vpn呢?这里就为大家介绍vpn行业当中的领头人物创联vpn。那么为什么在众多的vpn品牌当中,创联vpn会成为很多人非常关注的品牌呢,又是什么原因让创联vpn成为大家公认的值得国内最好用的vpn呢?                                                    首先第一点从使用感受方面来说,创联vpn是经过很多消费者检验过的品牌,为了更了解这个品牌的使用情况到底如何?记者专门采访了一些使用创联vpn平台的ip所制作出来的网络上,而该网络商以下服务的大部分消费者都反映,该ip旗下的网络十分稳定,哪怕是出现一些大型的网络游戏或者是多种设备共同连接一个网络,也不会出现很多人非常忌讳的网络不稳定或者中途断线的情况。而这样的使用体验,让很多娱乐型的消费者都非常支持这种备受推荐好用的vpn。在玩一些要求比较高的大型游戏的时候,这种ip所支持下的网络也会可以给玩家带来更刺激和流畅的体验感受。同样的,且对网络要求比...
admin管理员 发布于 10小时前 阅读 34 点赞 1

【码云周刊第 21 期】Python 牺牲性能以提升程序员的工作效率

每周为您推送最有价值的利发国际官方网内参!
利发国际官方网码云 发布于 5天前 阅读 4003 评论 11

基于 POI 封装 ExcelUtil 精简的 Excel 导入导出

![poi](http://poi.apache.org/resources/images/pb-poi.png "poi") # 注 本文是使用 org.apache.poi 进行一次简单的封装,适用于大部分 excel 导入导出功能。过程中可能会用到反射,如若有对于性能有极致强迫症的同学,看看就好。 # 序 由于 poi 本身只是针对于 excel 等office软件的一个工具包,在一些常规的 excel 导入导出时,还需要再做一次精简的封装,简化代码耦合。 ## 一、现状 本人经历过几家公司的代码封装,导入导出一般存在下面的情况。 ### 1.1 导入 1. 传入文件地址,返回 Sheet 对象,在业务代码中进行循环遍历,做相对应的类型转换,业务处理(二零零几年的代码框架) 2. 传入文件地址,返回 List 的对象,外部直接做强转 3. 传入文件地址,返回 List 的对象,外部将字符串对象转换为对应的类型 总结:如果只有上述的选择,本人是比较倾向于第二种,毕竟对外层是非常友好的 ### 1.2 导出 1. 直接在逻辑代码中进行遍历封装sheet,传入到生成file的方法中(二零零几年的代码框架) 2. 先循环遍历 List 对象,转换为 List> 对象,带上 fieldName 传入到封装好excel生成的方法中,内部则使用 map.get() 方法操作 3. 直接将 List 对象带上 fieldName 传入到封装...
倚楼听风雨_ 发布于 4天前 阅读 3595 评论 16 点赞 6

用两张图告诉你,为什么你的App会卡顿?

![Cover](http://upload-images.jianshu.io/upload_images/1869462-e45f4cf10981b323.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) # 有什么料? 从这篇文章中你能获得这些料: - 知道setContentView()之后发生了什么? - 知道Android究竟是如何在屏幕上显示我们期望的画面的? - 对Android的视图架构有整体把握。 - 学会从根源处分析画面卡顿的原因。 - 掌握如何编写一个流畅的App的技巧。 - 从源码中学习Android的细想。 - 收获两张自制图,帮助你理解Android的视图架构。 ![link](http://upload-images.jianshu.io/upload_images/1869462-59ab533d5276864e.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) # 从setContentView()说起 ``` public class AnalyzeViewFrameworkActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_analyze_view_framwork); } } ``` 上面这段代码想必Androider们大都已经不能再熟悉的更多了。但是你知道这样写了之后发生什么了吗?这个布局到底被添加到哪了?我的天,知识点来了! 可能很多同学也知...
CoorChice 发布于 3天前 阅读 3798 评论 38 点赞 18 打赏 1

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

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

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

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

本月推荐:15 个有用的 JavaScript 和 CSS 库

五月 JavaScript 和 CSS 库推荐!
编辑部的故事 发布于 3天前 阅读 3389 评论 9 点赞 10

Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询

摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 预见未来最好的方式就是亲手创造未来 - 《史蒂夫·乔布斯传》 』 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+,ElasticSearch 2.3.2 本文提纲 一、ES 的使用场景 二、运行 springboot-elasticsearch 工程 三、springboot-elasticsearch 工程代码详解   推荐 -  「springboot-learning-example」开源项目,Fork 一下,多多 Pull Request~ spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践。 https://git.oschina.net/jeff1993/springboot-learning-example 一、ES 的使用场景 简单说,ElasticSearch(简称 ES)是搜索引擎,是结构化数据的分布式搜索引擎。 在《Elasticsearch 和插件 elasticsearch-head 安装详解》  和 《Elasticsearch 默认配置 IK 及 Java AnalyzeRequestBuilder 使用》 我详细的介绍了如何安装,初步使用了 IK 分词器。 这里,我主要讲下 SpringBoot 工程中如何使用 ElasticSearch。 ES 的使用场景大致分为两块 1. 全文检索。加上分词(IK 是其中一个)、拼音插件等可以成为强大的全文搜索引擎。 2. 日志统计分析。可以...
泥沙砖瓦浆木匠 发布于 1周前 阅读 4031 评论 13 点赞 5

合格前端系列第三弹-实现一个属于我们自己的简易MVVM库

时隔半年,重新写一遍有关数据双向绑定的文章,模拟当今流行的vue框架实现一个属于自己的mvvm库。
qiangdada 发布于 5天前 阅读 2188 评论 10 点赞 8

【源资讯 第28期】Kotlin 成为安卓开发一级编程语言;多个国家爆发勒索病毒攻击

【一周源资讯(2017.5.13-2017.5.19)】这周发生了两个大新闻:谷歌宣布将 Kotlin 语言作为安卓开发的一级编程语言;多个国家爆发勒索病毒攻击~程序员有得忙了!
编辑部的故事 发布于 7天前 阅读 4856 评论 87 点赞 2

Linux之父:人生在世,Just for Fun !

It started out as survival, but it became a social thing.And then it becomes entertainment. 《Just for Fun: The Story of an Accidental Revolutionary》,是Linux内核的创建者林纳斯·托瓦兹(Linus Torvalds)的自传。这本书由他和大卫·戴蒙德(David Diamond)联合撰写,叙述林纳斯·托瓦兹从小的成长历程、创建Linux内核、Git的过程以及软件世界的江湖恩怨。全书主体部分采用一问一答的访谈形式,由戴蒙德在他们的的汽车旅行过程中记
RiboseYim 发布于 5天前 阅读 1386 评论 9 点赞 1

Spring思维导图,让Spring不再难懂(ioc篇)

>写在前面 写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。 就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。 ![Spring知识细节.png](http://upload-images.jianshu.io/upload_images/4120002-55b18f0249f25054.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >控制反转 ![Spring ioc简介.png](http://upload-images.jianshu.io/upload_images/4120002-7e89f6da34fe7bc9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >spring ioc容器 在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能。 ![Spring 整体结构图.jpg](http://upload-images.jianshu.io/upload_images/4120002-1ad5bb59e5e9f209.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 如果说在三个核心中再选出一个核心,那就非Bean莫属了。可以说,Spring就是面向B...
java思维导图 发布于 1周前 阅读 9457 评论 25 点赞 22

用户画像从入门到挖坑

用户流量从搜索引擎为入口的增量时代到移动互联网普及人口红利不再的存量时代,这个变化对每个公司的获客成本,运营思路都产生了很大的影响,在流量日益枯竭,获客成本越来越高的时代,伴随着大数据、精细化运营、人工智能、机器学习等一大波新技术和概念的崛起、普及,它们之间有何关联?如今互联网产品又该如何运营、攻城略地?本文介绍的用户画像或许能带来一点思路。
xrzs 发布于 5天前 阅读 1119

高性能Web Server思考

# 0xFF **Web服务可以让你在HTTP协议的基础上通过XML或者JSON来交换信息。** 醍醐灌顶!!! 你可以编写一段简短的代码,通过抓取这些信息然后通过标准的接口开放出来,就如同你调用一个本地函数并返回一个值。(rpc? rest?) 平台无关性. 目前主流的有如下几种Web服务:REST、SOAP。 **作为客户端** 向远端某台机器的的某个网络端口发送一个请求 **作为服务端** 把服务绑定到某个指定端口,并且在此端口上监听 # Socket编程 现在的网络编程几乎都是用Socket来编程 而Unix基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket也是一种文件描述符. 常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 ## Socket如何通信 网络中的进程之间通过Socket通信.利用三元组(ip地址,协议,端口)就可以标识网络中的唯一进程 ![](https://github.com/astaxie/build-web-application-with-golang/raw/master/zh/images/8.1.socket.png?raw=true) ### TCP Socket **TC...
陶加涛 发布于 5天前 阅读 949 评论 4 点赞 1

CSS 布局经典问题初步整理

本文主要对 CSS 布局中常见的经典问题进行简单说明,并提供相关解决方案的参考链接,涉及到三栏式布局,负 margin,清除浮动,居中布局,响应式设计,Flexbox 布局,等等。
brianway 发布于 1周前 阅读 2583 评论 8 点赞 10

【软件周刊第 29 期】谷歌在 I/O 大会期间的两个大招:Android O 和 Android Studio 3.0

软件周刊(05.14 — 05.20):本周热门软件更新 — 谷歌正式发布 Android O 首个公测版;UPX 3.94 发布,超级压缩工具;Nim 0.17.0 发布,命令式编程语言;GitHub Atom 1.17.0 和 1.18.0-beta0,改进启动时间;Gradle 4.0 M2 发布,Groovy 构建工具
编辑部的故事 发布于 6天前 阅读 2038 评论 3 点赞 1

aio系列文档(1)----t-io的hello world

hello world例子简介 本例子演示的是一个典型的TCP长连接应用,代码位于example/helloworld目录中。 服务端和客户端的消息协议比较简单,消息头为4个字节,用以表示消息体的长度,消息体为一个字符串的byte[] 服务端先启动,监听6789端口 客户端连接到服务端后,会主动向服务器发送一条消息 服务器收到消息后会回应一条消息 之后,框架层会自动从客户端发心跳到服务器,服务器也会检测心跳有没有超时 框架层会在断链后自动重连(对t-io来说,只需多一行代码便拥有自动重连功能) 公共模块代码 <dependency> <groupId>org.t-io</groupId> <artifactId>tio-core</artifactId> <version>1.6.9.v20170408-RELEASE</version> </dependency> 注:有时候服务器和客户端的业务消息包结构不一样,这种情况下,消息包的定义就不要放在公共模块 public class HelloPacket extends Packet { public static final int HEADER_LENGHT = 4;//消息头的长度 public static final String CHARSET = "utf-8"; private byte[] body; /** * @return the body */ public byte[] getBody() { return body; } /** * @para...
talent-tan 发布于 1个月前 阅读 3460 评论 17 点赞 14 打赏 1

python抢小米6自动化脚本

# -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoAlertPresentException import unittest import time import re import httplib class XiaoMi(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.base_url = 'http://item.mi.com/' self.verificationErrors = [] self.accept_next_alert = True def login(): """ 用户登陆 """ driver = webdriver.Chrome() driver.get("http://item.mi.com/product/10000041.html") driver.find_element_by_xpath(".//*[@id='J_userInfo']/a[1]").click() time.sleep(2) driver.find_element_by_xpath(".//*[@id='username']").clear() driver.find_element_by_xpath(".//*[@id='username']").send_keys('用户名'...
MedivhXu 发布于 2周前 阅读 685 评论 8

前端人员必备技能--Chrome浏览器的开发者工具

常见的浏览器都提供了开发者工具,本文以Chrome为例,介绍一些常见的工具使用方法以及应用场景。
王智博 发布于 6天前 阅读 867 评论 2 点赞 1

产品管理40步:一个优秀的产品经理每天都做些什么?

无论您是一名在为产品管理工作费心的产品经理,还是仅仅与产品经理共事,有一件事是确定的:当您询问产品经理的定义和产品经理的工作内容时,每个人的答案可能都不一样。
TanJx 发布于 5天前 阅读 613 评论 1 点赞 1

如何使用Kotlin开发微服务

谷歌在5月18号的I/O开发者大会上,宣布将Kotlin语言作为安卓开发的一级编程语言。可能很多人这时第一次听说这门语言。我了解这门语言时间也不长,在今年的一个内网帖子上第一次看到这门语言。今天我们来了解一下Kotlin这门语言和如何使用Kotlin开发微服务 ### Kotlin简介 > Kotlin是一种在Java虚拟机上运行的静态类型编程语言,它也可以被编译成为JavaScript源代码。它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的编程语言,其名称来自于圣彼得堡附近的科特林岛。 以上是维基百科上对于Kotlin的介绍。Kotlin是JetBrains的开发团队设计的基于JVM运行的一门编程语言。 Kotlin的诞生时间并不长,Kotlin的开发始于2010年,在2016年发布第一个正式版本1.0。它吸收了包括C#、GO等新兴语言的特性。虽然它在语法上和Java不兼容,但是它在设计时就考虑和Java的代码相互调用,并且可以复用Java现有的类库。 ### 使用Kotlin进行服务端开发 Kotlin非常适合服务端开发,同时Kotlin在设计时就考虑了和Java技术栈的完全兼容,所以对于Java开发者来说,非常容易上手。Java语言设计在90年代,由于Java社区的复杂性,导致Java的特性发展明显落后于其他语言。使用Kotlin可以既享受到...
wangyan9110 发布于 5天前 阅读 669 评论 19 点赞 1

通过Atlas实现MySQL读写分离

最近公司项目要求MySQL高可用,加上以前公司听过QiHoo360的Atlas,所以就尝试搭建了一个MySQL读写分离,并且高可用的。
Crazy_Coder 发布于 3天前 阅读 799 评论 2

centos安装nginx

安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum install gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令: yum install -y pcre pcre-devel 三. zlib 安装 zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。 yum install -y zlib zlib-devel 四. OpenSSL 安装 OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。 nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。 yum install -y openssl openssl-d...
xiaoyaoyoufang 发布于 48分钟前 阅读 3

我可以通过复制node_modules来移动依赖库吗?

简单的讲,是可以的。但是每个人电脑环境的不同,node_module安装的顺序也不同,可能会出问题不同的问题,虽然说依赖树的结构并不影响您的工程,但为安全起见,如果遇到问题时,请直接在工程目录下面npm install,假设工程下有package.json文件。那么你将得到跟来源机器完全一样的依赖库。 npm v3 dependency installation is now non-deterministic meaning you may get different packages depending on the order in which packages have been installed over time. This isn't necessarily a bad thing, just something to be aware of. npmv3依赖安装是不确定的了,意思是你将在不同的运行环境安装不同顺序的依赖包,一般不是件坏事,但要知道。 Given this change I personally don't copy my node_modules directory around too much (it's still possible though!) and instead opt for a clean install most of the time. 根据这个变化我个人是不经常复制node_modules(虽然仍有可能!)而是保留/opt/目录一个干净的安装版本。 There are new tools like Yarn Package Manager which can speed up the installation process if you are doing that a lot (...
swingcoder 发布于 49分钟前 阅读 2

CSS position属性

position:属性值; 值     描述 absolute     生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 fixed     生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 relative     生成相对定位的元素,相对于其正常位置进行定位。 static    默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 inherit    规定应该从父元素继承 position 属性的值。
权哥仔 发布于 52分钟前 阅读 1

netty源码分析系列——PooledByteBuf

对象池 池技术在计算机届世界中也是司空见惯,我们连接数据库会用到数据连接池可以使得我们连接数据的时候能够更快,java中的很对基本类型例如Integer针对常用的数字也做了池化处理,避免创建过多的重复对象。对于那些构造或者初始化起来代价非常大的对象,我们会把它们提前初始化好放入一个池中,如果有消费者需要使用,则直接从池中获取,这个对象池也会根据情况自动补充更多的对象,或者及时清除那些过多的对象,这种技术就称作为对象池。 而对于ByteBuf来说,如果频繁使用,我们对性能又有更高的要求,则也需要使用类似的对象池技术来近一步提升性能。 PooledByteBuf PooledHeapByteBuf PooledDirectByteBuf
杨武兵 发布于 1小时前 阅读 1

实机操作,由IBM的技术大咖带领如何在短时间内迅速上线人工智能应用,名额有限快来报名!”

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

深入解析java.lang.String

     java.lang.String作为一个最常用的类,出现在各种各样的编程环境中。而其实现方式的不同可能造成运行效率的大大不同。只有深入了解JVM对String的实现机制,才能更好的利用String。 String的不变性     String是一个final类,因此它不能被继承,同时,用以存储字符串内容的char value[]数组是private、final的,因此同样不能改变它的内容。下面是String类的源码: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; ...     那么在JVM中是怎么对String进行更新处理的呢?答案是新建一个String类,将原引用指向这个新String类。 public class Main { public static String test(String s){ return s.toUpperCase(); } public static void main(String []args){ String s1 = "asd"; String s2 = test(s1); System.out.println("s1 is : " + s1 + " and s2 is : " + s2); } } /×× s1 is : asd and s2 is : ASD ×/     s1作为一个拷贝传递给了test函数,返...
cassia_tora 发布于 2小时前 阅读 44

NoSQL数据库探讨之一 - 为什么要用非关系数据库?

随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: 1、High performance - 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往 往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的 BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当 普遍的需求。 2、Huge Storage - 对海量数据的高效率存储和访问的需求 类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个 月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站 的用户...
orec 发布于 2小时前 阅读 30

http 传输中出现部分中文乱码

只有局部汉字乱码,局部,局部,真是奇怪
今天来找bug 发布于 2小时前 阅读 28

Android错误之--'keytool' 不是内部或外部命令,也不是可运行的程序

要用到高德地图的SDK,首先要获取sha1,获取Android studio下的sha1的方法可以切到.android下,输入命令: keytool -list -keystore debug.keystore 。但是会出现如下错误; 分析原因,原理是没有正确配置Java环境变量,正确配置环境变量的方法可以参考如下链接: http://jingyan.baidu.com/article/c85b7a6414f2ee003bac95d5.html 这时可以在Android studio的Terminal中输入上述命令行,如下: 输入密钥的时候输入空,直接回车就好了,可以得到SHA1。
丁佳辉 发布于 2小时前 阅读 2

Ambari-2.5.0.3安装向导

主要基于
胡佐治 发布于 2小时前 阅读 7

sql server2008R2中修改已存的表中的字段的类型

一、打开sql server控制台,选择“工具“--->“选项” 二、选中“Desigers”,然后在右侧修改以下几个值,超时响应改为30000,下面勾选上 “检测到差异时报警”和“表受到影响时报警”,然后确定就可以,这个更改的过程时间稍微有点长, 在更改没有完成时,sql server2008 R2 是没有任何响应的。
爱运动的小乌龟 发布于 2小时前 阅读 1

docker-compose运行sentry

##docker-compose ``` version: '2' volumes: pgdb: services: redis: image: redis:3.2.9-alpine postgres: image: postgres:9.6 environment: POSTGRES_USER: sentry POSTGRES_PASSWORD: sentry POSTGRES_DBNAME: sentry POSTGRES_DBUSER: sentry POSTGRES_DBPASS: sentry volumes: - pgdb:/var/lib/postgresql/data sentry: image: sentry:8.15 links: - redis - postgres ports: - 9000:9000 environment: SENTRY_SECRET_KEY: '!!!SECRET!!!' SENTRY_POSTGRES_HOST: postgres SENTRY_DB_USER: sentry SENTRY_DB_PASSWORD: sentry SENTRY_REDIS_HOST: redis cron: image: sentry:8.15 links: - redis - postgres command: "sentry run cron" environment: SENTRY_SECRET_KEY: '!!!SECRET!!!' SENTRY_POSTGRES_HOST: postgres SENTRY_DB_USER: sentry SENTRY_DB_PASSWORD: sentry SENTRY_REDIS_HOST: redis worker: image: sentry:8.15 links: - redis - postgres command: "sentry run worker" environment: SENTRY_SECRET_KEY: '!!!SECRET!!!' SENTRY_POSTGRES_HOST: postgres SENTRY_DB_USER: sentry SENTRY_DB_PASSWORD: sentry SENTRY_REDIS_HOST: redis ``` ##创建...
go4it 发布于 2小时前 阅读 2

react-native-navigator的权限Bug修改

public class ReactDevPermission { private static final String REDBOX_PERMISSION_MESSAGE = "Overlay permissions needs to be granted in order for react native apps to run in dev mode"; public static boolean shouldAskPermission() { return NavigationApplication.instance.isDebug() && Build.VERSION.SDK_INT >= 23 && !Settings.canDrawOverlays(NavigationApplication.instance); } @TargetApi(23) public static void askPermission(Context context) { Intent serviceIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + context.getPackageName())); FLog.w(ReactConstants.TAG, REDBOX_PERMISSION_MESSAGE); Toast.makeText(context, REDBOX_PERMISSION_MESSAGE, Toast.LENGTH_LONG).show(); context.startActivity(serviceIntent); } }...
wilesun 发布于 2小时前 阅读 26

Android WebView 支持H5图片上传<input type="file">

" maxlength="300"> Android WebView 支持H5图片上传
放纵的青春 发布于 3小时前 阅读 25

微信小程序上传一或多张图片

一.要点 ``` 1.选取图片 wx.chooseImage({ sizeType: [], // original 原图,compressed 压缩图,默认二者都有 sourceType: [], // album 从相册选图,camera 使用相机,默认二者都有 success: function (res) { console.log(res); var array = res.tempFilePaths, //图片的本地文件路径列表 } }) 2.上传图片 wx.uploadFile({ url: '', //开发者服务器的 url filePath: '', // 要上传文件资源的路径 name: 'uploadFile', // 文件对应的 key ,(后台接口规定的关于图片的请求参数) header: { 'content-type': 'multipart/form-data' }, // 设置请求的 header formData: { }, // HTTP 请求中其他额外的参数 success: function (res) { }, fail: function (res) { } }) ``` 二.代码示例 ``` // 点击上传图片 upShopLogo: function () { var that = this; wx.showActionSheet({ itemList: ['从相册中选择', '拍照'], itemColor: "#f7982a", success: function (res) { if (!res.cancel) { if (res.tapIndex == 0) { that.chooseWxImageShop('album') } else if (res.tapIndex == 1) { that.chooseWxImageShop('camera') } } } }) }, chooseWxImageShop: function (type) { var t...
大慧慧 发布于 3小时前 阅读 25

【jfinal】扩展JFIANL 支持加载jar包中SQL模板

SQL模板 jfinal
冷冷gg 发布于 3小时前 阅读 1

那些年踩过的坑

1.tomcat启动报错 Servlet.service() for servlet [jsp] in context with path [] threw exception [java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;] with root cause java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext; 参考链接: http://blog.csdn.net/testcs_dn/article/details/39582939 http://www.xxbs.net/307.html 如下图所示最后找到原因,是hadoop-common中的jasper.jar包发布到tomcat的WEB-INF/lib中: 解决办法:在引入hadoop,hive相关包的时候,排除jasper的jar包,代码如下: hadoop-common: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.6.0-cdh5.7.1</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </exclusion> <exclusion> <groupId>com...
pandudu 发布于 3小时前 阅读 2

自适应网页

作者: 阮一峰 日期: 2012年5月 1日 随着3G的普及,越来越多的人使用手机上网。 移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事。 很多网站的解决方法,是为不同的设备提供不同的网页,比如专门提供一个mobile版本,或者iPhone / iPad版本。这样做固然保证了效果,但是比较麻烦,同时要维护好几个版本,而且如果一个网站有多个portal(入口),会大大增加架构设计的复杂度。 于是,很早就有人设想,能不能"一次设计,普遍适用",让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整布局(layout)? 一、"自适应网页设计"的概念 2010年,Ethan Marcotte提出了"自适应网页设计"(Responsive Web Design)这个名词,指可以自动识别屏幕宽度、并做出相应调整的网页设计。 他制作了一个范例,里面是《福尔摩斯历险记》六个主人公的头像。如果屏幕宽度大于130...
hfisop 发布于 3小时前 阅读 1

奇技淫巧之——为git客户端配置多ssh key

今天遇到个问题,我想给某个独立的 git 仓库配置一个不同的 `ssh key`。在使用 [`ssh-keygen`](http://git.mydoc.io/?t=154712) 命令生成新密钥对并保存到自定义目录之后,却不知道如何 apply 它。 几番搜索,并没有找到答案。最终在众多的文档中(包括 `/etc/ssh/ssh_config`),取其精华,举一反三,形成了一个简单的配置方法: > 在 `~/.ssh` 目录下新建文件 `config`(即 `~/.ssh/config`),并输入如下内容: ```Bash # 如果启用了本行,对于需要通过ssh登录的远程主机,# # 可直接使用 `ssh anyname` 命令,不过在git仓库不行。# # 不过如果想取消本配置,启用本行即可。# # Host anyname # 设置 `*` 或者不启用,表示默认使用本配置。# # Host * HostName github.com User git # 指定新生成的那个非默认ssh key路径 # IdentityFile ~/.ssh_xxx/id_rsa ``` 保存之后,对任何目录的 `git push` 操作都会应用该配置指定的 `ssh key`。 @[`成才 '中©`](https://git.oschina.net/wei.chou/Wei.Lib2A)...
弹一曲Happy颂 发布于 3小时前 阅读 16 打赏 1

简单时间管理方法

对于时间的管理我们总在不停的学习,寻找适合对自己最有效的方式,今天分享下自己的简单时间管理方法。
老梁的技术博客 发布于 3小时前 阅读 13

RedBeanPHP 类静态结构图

可以浏览器新窗口打开,查看高清原图。
暗夜在火星 发布于 4小时前 阅读 11

Spark Streaming场景应用-Kafka数据读取方式

## 概述 Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka、flume、socket流等等。除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论。本篇文章主要着眼于我们目前的业务场景,只关注Spark Streaming读取Kafka数据的方式。 Spark Streaming 官方提供了两种方式读取Kafka数据: - 一是Receiver-based Approach。该种读取模式官方最先支持,并在Spark 1.2提供了数据零丢失(zero-data loss)的支持; - 一是Direct Approach (No Receivers)。该种读取方式在Spark 1.3引入。 此两种读取方式存在很大的不同,当然也各有优劣。接下来就让我们具体剖解这两种数据读取方式。 ## 一、Receiver-based Approach 如前文所述,Spark官方最先提供了基于Receiver的Kafka数据消费模式。但会存在程序失败丢失数据的可能,后在Spark 1.2时引入一个配置参数`spark.streaming.receiver.writeAheadLog.enable`以规避此风险。以下是官方的原话: > under default configuration, this approach can lose data under failures (see receiver reliability. To ensure zero-data loss, you have to additionally enable Write Ahead Logs in Spark Streaming (in...
狂奔小蜗牛 发布于 2天前 阅读 1832 评论 2 点赞 3 打赏 2

CentOS7搭建 Hadoop + HBase + Zookeeper集群

本文主要介绍搭建Hadoop、HBase、Zookeeper集群环境的搭建
kolbe 发布于 2天前 阅读 3186 评论 14 点赞 17 打赏 1

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

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

用两张图告诉你,为什么你的App会卡顿?

![Cover](http://upload-images.jianshu.io/upload_images/1869462-e45f4cf10981b323.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) # 有什么料? 从这篇文章中你能获得这些料: - 知道setContentView()之后发生了什么? - 知道Android究竟是如何在屏幕上显示我们期望的画面的? - 对Android的视图架构有整体把握。 - 学会从根源处分析画面卡顿的原因。 - 掌握如何编写一个流畅的App的技巧。 - 从源码中学习Android的细想。 - 收获两张自制图,帮助你理解Android的视图架构。 ![link](http://upload-images.jianshu.io/upload_images/1869462-59ab533d5276864e.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) # 从setContentView()说起 ``` public class AnalyzeViewFrameworkActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_analyze_view_framwork); } } ``` 上面这段代码想必Androider们大都已经不能再熟悉的更多了。但是你知道这样写了之后发生什么了吗?这个布局到底被添加到哪了?我的天,知识点来了! 可能很多同学也知...
CoorChice 发布于 3天前 阅读 3798 评论 38 点赞 18 打赏 1

基于 POI 封装 ExcelUtil 精简的 Excel 导入导出

![poi](http://poi.apache.org/resources/images/pb-poi.png "poi") # 注 本文是使用 org.apache.poi 进行一次简单的封装,适用于大部分 excel 导入导出功能。过程中可能会用到反射,如若有对于性能有极致强迫症的同学,看看就好。 # 序 由于 poi 本身只是针对于 excel 等office软件的一个工具包,在一些常规的 excel 导入导出时,还需要再做一次精简的封装,简化代码耦合。 ## 一、现状 本人经历过几家公司的代码封装,导入导出一般存在下面的情况。 ### 1.1 导入 1. 传入文件地址,返回 Sheet 对象,在业务代码中进行循环遍历,做相对应的类型转换,业务处理(二零零几年的代码框架) 2. 传入文件地址,返回 List 的对象,外部直接做强转 3. 传入文件地址,返回 List 的对象,外部将字符串对象转换为对应的类型 总结:如果只有上述的选择,本人是比较倾向于第二种,毕竟对外层是非常友好的 ### 1.2 导出 1. 直接在逻辑代码中进行遍历封装sheet,传入到生成file的方法中(二零零几年的代码框架) 2. 先循环遍历 List 对象,转换为 List> 对象,带上 fieldName 传入到封装好excel生成的方法中,内部则使用 map.get() 方法操作 3. 直接将 List 对象带上 fieldName 传入到封装...
倚楼听风雨_ 发布于 4天前 阅读 3595 评论 16 点赞 6

合格前端系列第三弹-实现一个属于我们自己的简易MVVM库

时隔半年,重新写一遍有关数据双向绑定的文章,模拟当今流行的vue框架实现一个属于自己的mvvm库。
qiangdada 发布于 5天前 阅读 2188 评论 10 点赞 8

Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询

摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 预见未来最好的方式就是亲手创造未来 - 《史蒂夫·乔布斯传》 』 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+,ElasticSearch 2.3.2 本文提纲 一、ES 的使用场景 二、运行 springboot-elasticsearch 工程 三、springboot-elasticsearch 工程代码详解   推荐 -  「springboot-learning-example」开源项目,Fork 一下,多多 Pull Request~ spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践。 https://git.oschina.net/jeff1993/springboot-learning-example 一、ES 的使用场景 简单说,ElasticSearch(简称 ES)是搜索引擎,是结构化数据的分布式搜索引擎。 在《Elasticsearch 和插件 elasticsearch-head 安装详解》  和 《Elasticsearch 默认配置 IK 及 Java AnalyzeRequestBuilder 使用》 我详细的介绍了如何安装,初步使用了 IK 分词器。 这里,我主要讲下 SpringBoot 工程中如何使用 ElasticSearch。 ES 的使用场景大致分为两块 1. 全文检索。加上分词(IK 是其中一个)、拼音插件等可以成为强大的全文搜索引擎。 2. 日志统计分析。可以...
泥沙砖瓦浆木匠 发布于 1周前 阅读 4031 评论 13 点赞 5

CSS 布局经典问题初步整理

本文主要对 CSS 布局中常见的经典问题进行简单说明,并提供相关解决方案的参考链接,涉及到三栏式布局,负 margin,清除浮动,居中布局,响应式设计,Flexbox 布局,等等。
brianway 发布于 1周前 阅读 2583 评论 8 点赞 10

Spring思维导图,让Spring不再难懂(ioc篇)

>写在前面 写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。 就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。 ![Spring知识细节.png](http://upload-images.jianshu.io/upload_images/4120002-55b18f0249f25054.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >控制反转 ![Spring ioc简介.png](http://upload-images.jianshu.io/upload_images/4120002-7e89f6da34fe7bc9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >spring ioc容器 在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能。 ![Spring 整体结构图.jpg](http://upload-images.jianshu.io/upload_images/4120002-1ad5bb59e5e9f209.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 如果说在三个核心中再选出一个核心,那就非Bean莫属了。可以说,Spring就是面向B...
java思维导图 发布于 1周前 阅读 9457 评论 25 点赞 22

Web Components简述

要说最近几年来,前端开发最火的一个趋势或最火的前端开发框架是什么,第一想到的是,组件及推崇组件化开发的React框架。本文将介绍Web Components规范并就组件的几大特性进行讨论
熊建刚 发布于 2周前 阅读 1943 评论 8 点赞 2

This其实不难,通过实例全面解析JS中的This

GitHub地址:https://github.com/SimonZhangITer/MyBlog/issues/12 > this的指向问题应该是让每一个前端er都头疼的问题,我也一样,曾经遇到甚至都是一顿乱猜。最近在研读一些书籍如《你不知道的JavaScript》和《JavaScript语言精粹与编程实践》,让我对this的问题豁然开朗。故写下此篇文章,分享一下我的心得。 # 隐式绑定 关于this,一般来说,谁调用了方法,该方法的this就指向谁,如: ```javascript function foo(){ console.log(this.a) } var a = 3; var obj = { a: 2, foo: foo }; obj.foo(); // 输出2,因为是obj调用的foo,所以foo的this指向了obj,而obj.a = 2 ``` 如果存在多次调用,`对象属性引用链只有上一层或者说最后一层在调用位置中起作用`,如: ```javascript function foo() { console.log( this.a ) } var obj2 = { a: 42, foo: foo } var obj1 = { a: 2, obj2: obj2 } obj1.obj2.foo(); // 42 ``` ## 隐式丢失 一个最常见的this绑定问题就是被`隐式绑定`的函数会丢失绑定对象,也就是说他回应用默认绑定,从而把this绑定到全局对象或者undefined上,取决于是否是严格模式。 ```javascript function foo() { console.log( this.a ) } var obj1 = { a:...
Simon_ITer 发布于 2周前 阅读 2156 评论 12 点赞 5

解Bug之路-Druid的Bug

#解Bug之路-Druid的Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后的工作中能够少踩点坑。 #前言 此Bug是Druid低版本的Bug,此Bug至少在1.0.12版本就已经修复。 #Druid的Bug现场 在紧张的新项目开发的日子里,突然收到线上某系统的大量报警,对应系统的人员发现此系统在某一台机器上dump了大量的error日志。日志基本都是: ``` Druid: GetConnectionTimeoutException ``` 此系统所有用到数据库的地方都抛出此异常。于是祭出重启大法,重启过后,一切Okay。然后对应的系统人员开始排查这个问题,一直没有结果。 过了两天,又收到此类型的error日志报警,而且这一次是有两台系统同时爆出此种错误。紧急重启后,将此问题紧急报到我们这边处理。鉴于本人有丰富的IO处理经验,当然落到了本人头上。 #Bug复盘 此系统是通过Druid连接后面的数据库分库分表Proxy,再由此Proxy连接后面的数据库。示意图如下所示: ![输入图片说明](https://static.oschina.net/uploads/img/201705/15104710_ieM5.png "在这里输入图片标题") ##缩小Bug范围 获取连接超时(GetConnectionTimeo...
无毁的湖光-Al 发布于 2周前 阅读 2693 评论 45 点赞 28 打赏 1

关于“全球遭受网络勒索攻击”WannaCry2.0病毒软件图文分析

我是技术一般般码农 若分析的不到位 错误 请各位大神指出 分析此软件只是出去安全角度研究;请勿非法使用,工具就不公开,大家有兴趣逛逛我博客哈 liberxue博客:本文请勿转载by liberxue
Liberxue 发布于 2周前 阅读 4048 评论 17 点赞 5

详解 awk 工具的使用方法

当你第一次拿起双手在电脑上使用 awk 命令处理一个或者多个文件的时候,它会依次读取文件的每一行内容, 然后对其进行处理,awk 命令默认从 stdio 标准输入获取文件内容, awk 使用一对单引号来表示 一些可执行的脚本代码,在可执行脚本代码里面,使用一对花括号来表示一段可执行代码块,可以同时存在多个代码块。 awk 的每个花括号内同时又可以有多个指令,每一个指令用分号分隔,awk 其实就是一个脚本编程语言。说了这么多,你肯定还是一脸的懵逼。你猜对了,上面这些都是废话。先别急,客官请往下看。。。 **awk 命令的基本格式** ``` awk [options] 'program' file ``` `options` 这个表示一些可选的参数选项,反正就是你爱用不用,不用可以拉到。。。 `program` 这个表示 awk 的可执行脚本代码,这个是必须要有的。 `file` 这个表示 awk 需要处理的文件,注意是纯文本文件,不是你的 mp3,也不是 mp4 啥的。。 **先来一个 awk 的使用例子热热身** ``` $ awk '{print $0}' /etc/passwd ``` awk 命令的可执行脚本代码使用单引号括起来,紧接着里面是一对花括号,记住是 "花括号" 不是 "花姑娘",然后花括号里面就是一些可执行的脚本代码段,当 awk 每读取一行之后,它会依...
Jarly 发布于 2周前 阅读 3145 评论 16 点赞 17

t-io 入门篇(三)即时消息发送demo学习

T-io Im聊天demo分析
卡尔码农 发布于 2周前 阅读 2437 评论 14 点赞 5

如何在国内愉快的安装 Kubernetes

无需翻墙,如何愉快的与K8S 玩耍
无聊的学习者 发布于 3周前 阅读 3237 评论 16 点赞 3

重复性管理——从泛值到泛型以及泛函(上)

为什么用泛型以及它到底解决了什么问题?文中用大量例子介绍了重复性管理的一些具体做法,重点分析了泛型范式在解决重复性问题上的应用。
国栋 发布于 3周前 阅读 1409 评论 33 点赞 9

惊呆了,Servlet3.0的这个特性竟然99%的人都还不知道!

目前tomcat8和java8基本上得道了普及,基于Servlet3.0(tomcat7就支持)来设计我们的java mvc框架显然会使我们的框架更加轻量! 今天我要说的是:`ServletContainerInitializer`Servlet容器初始化器。 很多小伙伴对她并不陌生,例如Spring中的无web.xml配置也采用她来加载自定义WebApplicationInitializer。 ```java @HandlesTypes(WebApplicationInitializer.class) public class SpringServletContainerInitializer implements ServletContainerInitializer { // 省略部分代码和注释 } ``` 然而好像大家都是在使用她查找自定义实现类,我脑洞大开可以使用她来查找注解类吗? 查看文档无果,没有说明是否支持注解!直接上代码测试吧~ ### 实现类 ```java package net.dreamlu.learn.core; import java.util.Set; import javax.servlet.ServletContainerInitializer; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.HandlesTypes; import net.dreamlu.learn.ioc.annotation.Component; import net.dreamlu.learn.ioc.annotation.Service; import net.dreamlu.learn.mvc.annotation.Controller; /** * 采用...
如梦技术 发布于 3周前 阅读 5164 评论 29 点赞 3

电子凭证-Java生成Pdf

Java生成Pdf技术方案,通过Html模板引擎进行数据渲染,通过iText生成Pdf,通过Jpedal生成图片。解决CSS样式兼容问题,中文字体问题等。
蛙牛 发布于 3周前 阅读 6131 评论 50 点赞 28

Linux系列——各种环境安装集合

网上各种安装环境的文章脏乱差,我这弄了一套标准的出来,完善中
龙马行空 发布于 3周前 阅读 3042 评论 12 点赞 9

在Ignite上运行微服务:第三部分

本文是系列文章的最后一篇,这个系列会详细描述如何使用像Ignite这样的内存数据网格(IMDG)技术来构建容错和可扩展的微服务解决方案。
李玉珏 发布于 3周前 阅读 1408 点赞 4 打赏 1
顶部
利发国际官方网