开源中国

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

It appears you’re using an unsupported browser

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

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON

我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过`JSON.stringify`后的字符串是怎样的?**先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有误记得看完全文并评论,哈哈。** ```javascript var friend={ firstName: 'Good', 'lastName': 'Man', 'address': undefined, 'phone': ["1234567",undefined], 'fullName': function(){ return this.firstName + ' ' + this.lastName; } }; JSON.stringify(friend);//这一行返回什么呢? ``` 第二个问题,如果我想在最终JSON字符串将这个'friend'的姓名全部变成大写字母,也就是把"Good"变成"GOOD",把"Man"变成"MAN",那么可以怎么做? 基于以上两个问题,我们再追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?JSON和JS对象的区别?JS中`JSON.parse`、`JSON.stringify`和不常见的`toJSON`,这几个函数的参数和处理细节到底是怎样的? 欢迎进入本次“深挖JSON之旅”,下文将从以下几个方面去理解JSON: - 首先是对“JSON是一种轻量的数据交换格式”的理解; - 然后来看经常被混为一谈的JSON和JS对象的区别; - 最后...
Stinson_Zhao 发布于 18小时前 阅读 153

【谁动了我的开源内裤?】2017年深圳源创会图文回顾

伴随着深圳的下雨天,2017年3月19日OSC深圳源创会圆满落幕,了解本次活动详情,嘉宾分享PPT下载,注意文末链接。
开源中国源创会

【软件周刊第 21 期】Angular 4.0.0 正式版发布;Google Chrome 悄悄升级 WebGL 2.0 标准

软件周刊(03.19 — 03.25):本周热门软件更新 — WebStorm 2017.1 发布:增加对 Vue.js 和 Jest 的支持;Egg.js 1.0.0 正式发布,阿里开源的企业级 Node.js 框架;GitLab 9.0 发布,次级群组与部署面板功能上线;Ubuntu 17.04 Beta 2 发布,现可下载
编辑部的故事 发布于 22小时前 阅读 1145 评论 1 点赞 1

Apache启用mod_expires&mod_headers实现静态缓存

mod_expires&mod_headers可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。 在使用之前,首先要确认一下”mod_expires”模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的”httpd.conf”设定档来处理
IamOkay 发布于 1天前 阅读 275

Spring-Boot整合mybatis(三)-注解的基本使用

前面两篇说了一下springboot整合mybatis跟使用阿里的druid包,这次给大家介绍一下mybatis3.0后增加的注解基本使用吧,限于篇幅,下篇在介绍基于注解的动态SQL,本篇只介绍mybatis的基本使用,跟注意的地方   先介绍一下开发环境: jdk版本是1.8 springboot的版本是1.4.1 开发工具为 intellij idea 引入mybatis的依赖,这里就不用说了,如果不知道引入哪个依赖,请看我第一篇博客     篇幅介绍:    先介绍增删改查四个注解(附带参数注解以及插入返回注解)     然后是返回参数类型注解    一对多,一对一注解使用 ------------------------------------分割线-------------------------------------   我们先创建2个表,SQL如下 create table city (id int primary key auto_increment, name varchar(32), state varchar(32), country varchar(32)); create table school (id int primary key auto_increment, name varchar(32), state varchar(32), cityId varchar(32)); 创建2个是因为,我们会使用到级联的一对一,跟一对多查询 然后我们插入一些数据: insert into school(name, state, cityId) values('北大附中','ON','1'); insert into school(name, state, cityId) valu...
贺小五 发布于 2天前 阅读 292 点赞 1

适合各种使用场景的长URL转短链接的完整解决方案开源了

首先我要说,开源托管,必须得 @红薯 家的。 上一次本人写过一篇博客《长URL转短连接的简单设计与实现》,由于写得比较仓促,是缺少设计的,因此方案也是不完整的,看到大家非常有热情,阅读的阅读收藏的收藏,我就深深的为写了这么不够深入的博客而感到不安,于是就有了这一篇博客,以及背后的开源代码。 确实,这次花费时间比较多,大概有大半天的时间设计并写代码。 需求 首先说明一下这次的主要关注点: 可以满足多种场景下的短链接生成需求 可以满足多重序列号机制 可以满足多种短链接生成方式 自由&可扩展性--秉承一贯的设计原则,觉得框架实现的好就用,觉得不满足就替换之 主要接口说明 字符串生成接口 package org.tinygroup.shorter; /** * 随机字符串发生器 * Created by luoguo on 2017/3/24. */ public interface StringGenerator { String generate(String url); void setLength(int length); } setLength用于指定生成的长度,generate用于生成对应长度的短链接字符串。 上片文章里面被人喷说生成逻辑不够好,这次好了,随便你写你喜欢的。 当然,为了满足懒人,也有一个默认的实现,大致就是把上次的算法挪下来了 /** * 随机字符串发生器的默...
悠悠然然 发布于 2天前 阅读 928 评论 5 点赞 3

HBase数据模型与架构实现

hadoop-hbase笔记 ,文档中所示例的项目的地址 https://git.oschina.net/weiwei02/WHadoop
为为02 发布于 2天前 阅读 123

10分钟教你学会Yii2手动安装第三方扩展

> 我们爱composer,但是总有一些我们需要的扩展还没有加入到composer大家庭,那么我们的大Yii2如何爱他们那? 对于没有进入composer的扩展,请通通将他们下载到vendor内。通通的。 还是按照目录来 1. 添加不在composer,但是有自己的autoloader的扩展 2. 添加不在composer,也没有autoloader的扩展 3. 添加在composer里的扩展 4. 啥都没有的 那我们开始吧~ # 号外 先说说自动安装composer扩展吧,当复习了,这个我想是最简单的了,方法有两个 1. composer.json内修改,增加我们想要的扩展,然后执行composer install 2. 在当前程序目录直接命令行 composer required xxxxx 无论各种教程还是官方介绍最多的就是这个了,因此我不在多说,进入到今天的主题? # 不composer,有autoloader 这种库也蛮多的,尤其一些已经有些年头有些粉丝的库,他们都有自己的autoloader加载器,今天北哥给你讲讲这种库怎么破! 我们都知道入口文件index.php里有两个自动加载,一个是composer的、一个是自己的。 ```php require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); ``` 你不知道?扒光拖出去,送往东莞。💀💀💀💀💀。 如果...
阿北2017 发布于 2天前 阅读 66 点赞 1

【源资讯 第20期】Python 真的超过 PHP 了;又有一波漏洞曝光,Linux、Gitlab 中招!

【一周源资讯(2017.3.18-2017.3.24)】Python 超过 PHP 了,不过语言只是一种工具,适合自己才是最好的!有时间我们来看看程序员提高编程能力的办法,还有围观一下近期爆出的几个重大安全漏洞。
编辑部的故事 发布于 2天前 阅读 3528 评论 29 点赞 2

Angular2学习笔记(五) Angular2 表单

这节将讲述表单的使用,我们使用表单时不在使用原始表单,而是使用Bootstrap集成到Angular中来使用 安装Bootstrap npm install bootstrap --save 引用css样式,修改.angular-cli.json文件中的styles节点内容: "styles": [ "../node_modules/bootstrap/dist/css/bootstrap.min.css", "styles.css" ], 创建组件和相关类 ng generate component myform/MyForm1 ng generate class myform/MyUser 还是仍然修改app.module.ts和index.html my-form1.component.html <div class="container"> <div [hidden]="submitted"> <form (ngSubmit)="onSubmit()" #userForm="ngForm" role="form"> <legend>创建用户</legend> <div class="form-group"> <label for="name">姓名</label> <input type="text" class="form-control" id="name" placeholder="请输入姓名..." name="name" required [(ngModel)]="model.name" #name="ngModel"> <div [hidden]="name.valid || name.pristine" class="alert alert-danger"> 姓名必须 </div> </div> <div cla...
luamas 发布于 2天前 阅读 112 点赞 1

从hammer到jewel的RGW升级实战

旧版本hammer的rgw管理模型是 region->zone两级结构,而新版本变成了realm->zonegroup->zone,同时部分pool的命名规则也发生了变更,如果直接升级ceph版本,会出现RGW服务启动失败,导致RGW启动失败的因素有两类,一类是pool名称的变更,另外一类是ceph.conf中rgw的配置变更。本文通过真实用例,实现了新旧版本的切换,各位实际环境还是要谨慎操作,毕竟跨版本的升级还是有很大风险。 ---by 秦牧羊
秦牧羊 发布于 2天前 阅读 30

Swoole C++扩展已支持php-fpm环境

今天对Swoole的C++扩展模块做了2项改进。 函数调用优化 ------ 现在在C++模块中可以直接传参调用PHP的函数和对象方法了。不再需要使用`Array`来做中介容器。 ### 调用PHP函数: ```c++ exec("test", "hello world", 1234, 12345.678, false); ``` > 调用PHP的test函数,一共传入了4个不同的参数,注意如果函数不存在将会报致命错误 ### 调用对象方法: ```c++ Object redis = PHP::create("redis"); auto ret1 = redis.exec("connect", "127.0.0.1", 6379); auto ret2 = redis.exec("get", "key"); printf("value=%s\n", ret2.toCString()); ``` 这个程序连接了Redis服务器,并执行get从Redis服务器中获取了一个Key为"key"的数据。C++函数中只用了几行代码就实现了像PHP代码一样的功能。大大简化了开发的工作。 启动自动加载模块 ---- 现在C++模块可以配置到`php.ini`在swoole扩展初始化时就加载到PHP中。现在C++扩展模块提供的函数和类可以支持在php-fpm和cli等环境中调用。 ### 目录结构 ```shell /stdext.cpp #C++源文件 /Makefile #make编译配置文件 ``` ### 编写代码 ```c++ #include #include #include "PHP_API.hpp" #include "swoole.h" #include "module.h" usin...
matyhtf 发布于 2天前 阅读 666 评论 4 点赞 3

Spring Boot 整合 Mybatis 实现 Druid 多数据源详解

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲 一、多数据源的应用场景 二、运行 springboot-mybatis-mutil-datasource 工程案例 三、springboot-mybatis-mutil-datasource 工程代码配置详解 一、多数据源的应用场景 目前,业界流行的数据操作框架是 Mybatis,那 Druid 是什么呢? Druid 是 Java 的数据库连接池组件。Druid 能够提供强大的监控和扩展功能。比如可以监控 SQL ,在监控业务可以查询慢查询 SQL 列表等。Druid 核心主要包括三部分: 1. DruidDriver 代理 Driver,能够提供基于 Filter-Chain 模式的插件体系。 2. DruidDataSource 高效可管理的数据库连接池 3. SQLParser 当业务数据量达到了一定程度,DBA 需要合理配置数据库资源。即配置主库的机器高配置,把核心高频的数据放在主库上;把次要的数据放在从库,低配置。开源节流嘛,就这个意思。把数据放在不同的数据库里,就需要通过不同的数据源进行操作数据。这里我们举个 springboot-mybatis-mutil-datasource 工程案例: user 用户表在主库 master 上,地址表 city 在从库 cluster 上。下面实现获取 根据用户...
泥沙砖瓦浆木匠 发布于 2天前 阅读 431 评论 2 点赞 1 打赏 1

Java虚拟机管理的内存运行时数据区域解释

概述     Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。 程序计数器     程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖这个计数器来完成。     如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址,如果正在执行的是Native方法,这个计数器值则为空。此内存区域是唯一个在Java虚拟机规范中没有规定任何OurOfMemoryError情况的区域。   虚拟机栈     与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一...
FEINIK 发布于 2天前 阅读 180 评论 2 点赞 1

引入 Activemq 之后日志冲突问题解决方案

记录工作中引入Activemq之后,自带的日志框架和系统中原来的框架冲突问题
科比可比克 发布于 2天前 阅读 148 评论 2

python模块之re正则表达式

python模块之re正则表达式
PeanutLike 发布于 2天前 阅读 121 点赞 2

vuejs的初上手项目

学习一个框架有两个阶段最难,一个是初期的入门,一个是后期的源码阅读。 虽然vue的官方文档非常棒,在我读完文档之后还是会有一种感觉,知识点我都懂,然后呢?似乎大体知道该怎么利用vue全家桶去搭建一个项目,但具体下笔又有点模糊。vue官方的脚手架并没有将vue-router和vuex包括进去,所以我们需要自己去配置它们。虽然找了一堆的demo,但是都没有达到我想要的效果。正好趁着自己接了一个小项目,拿来练手。 这个项目主要的作用是熟悉 vue vue-router vuex 在初期搭建项目的时候该怎么配置,以及怎么去互相配合,xx.vue文件该怎么写,如何创建和使用组件,vuex的state,mutations,actions,getters怎么配合,形成一个完整的流程。 项目并不复杂,所以拿出来分享,希望对大家有帮助 源码地址:[https://github.com/bailicangdu/vue2-happyfri](https://github.com/bailicangdu/vue2-happyfri) ## 路由配置 ```js import App from '../App' export default [{ path: '/', component: App, children: [{ path: '', component: r => require.ensure([], () => r(require('../page/home')), 'home') }, { path: '/item', component: r => require.ensure([], () => r(requi...
cangdu 发布于 2天前 阅读 355 评论 1 点赞 1

Python爬虫—破解JS加密的Cookie

  前言   在GitHub上维护了一个代理池的项目,代理来源是抓取一些免费的代理发布网站。上午有个小哥告诉我说有个代理抓取接口不能用了,返回状态521。抱着帮人解决问题的心态去跑了一遍代码。发现果真是这样。   通过Fiddler抓包比较,基本可以确定是JavaScript生成加密Cookie导致原来的请求返回521。 发现问题   打开Fiddler软件,用浏览器打开目标站点(http://www.kuaidaili.com/proxylist/2/) 。可以发现浏览器对这个页面加载了两次,第一次返回521,第二次才正常返回数据。很多没有写过网站或是爬虫经验不足的童鞋,可能就会觉得奇怪为什么会这样?为什么浏览器可能正常返回数据而代码却不行?   仔细观察两次返回的结果可以发现:   1、第二次请求比第一次请求的Cookie内容多了个这个_ydclearance=0c316df6ea04c5281b421aa8-5570-47ae-9768-2510d9fe9107-1490254971   2、第一次返回的内容一些复杂看不懂的JS代码,第二次返回的就是正确的内容   其实这是网站反爬虫的常用手段。大致过程是这样的:首次请求数据时,服务端返回动态的混淆加密过的JS,而这段JS的作用是给Cookie添加新的内容用于服务端验证,此时返回的状态码是521。浏览器带上新的Cooki...
j_hao104 发布于 2天前 阅读 291 评论 4 点赞 3

OAuth 2.0 认证的原理与实践

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

常用排序算法的JavaScript实现与性能比较

本文收集了几种常用排序方式的JS代码实现与性能比较,包括:冒泡排序,选择排序,插入排序,归并排序和快速排序,我们从实现方式最简单的冒泡排序入手 一、冒泡排序  原理:依次比较两个相邻的项,如果前者大于后者,则交换两者位置,就如同气泡往上冒一样。 代码实现: Array.prototype.bubbleSort = function(){ var length = this.length; for(var i=0;i<length;i++){ for(var j=0;j<length-1-i;j++){ this[j]>this[j+1] && swap(this,j,j+1) //swap方法交换两个元素 } } } 注意,内层循环的次数需要减掉外层已循环过的次数,因为外层循环每走一遍就有一个元素被排好序,无需再进行排序。 这种排序方式的时间复杂度为O(n^2),(时间复杂度的计算方法参见http://baike.baidu.com/link?url=DnQgmILQ4dt2kCRwafBtNJHo21upzQVZAX2Y6TyJLoh2rxy_YQtxfhjwhmHmneETaSlw9KuKCjzSJqwGtzL4CUSm4aC3mYTfDlsjfZWCRFiQ8TiPnKHvn3mZ6-YpTkAYX1MEn5BRoFmjOHFRjzNCSK) ,我们可以在http://math.hws.edu/eck/js/sorting/xSortLab.html中模拟这个过程,结果如下: 执行10个长度为10000的乱序数组的排序,总耗时为28.7秒 二、选择排序 原理:从数组中找到最小值,与数组首位交换...
lee1994522 发布于 3天前 阅读 110 评论 2

Android代码规范指北

统一的代码风格在多人协作开发中的作用是不言而喻的,通过参考一些比较优秀的实践,这里大量参考《阿里巴巴 JAVA 开发手册》,再结合了个人的思考,制定了这么一套规范,由于个人的认识是非常有限的,本规范也肯定存在很多不合理和需要补充的东西,在这里恳请大家根据自己的实践和工作中,提出一些中肯的建议和修改意见。
叶大侠 发布于 3天前 阅读 110 评论 2

spring cloud微服务架构之UAA

微服务架构中,对用户及其权限的管理,具体实现的方式有很多种,从架构上来看分为: 1、网关层进行权限管理 <本文的实现方式>; 2、各服务独立实现校验; 3、校验逻辑实现在各服务上,通过共享数据或者授权中心等方式实现;
丁丙乙甲 发布于 17小时前 阅读 152

JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON

我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过`JSON.stringify`后的字符串是怎样的?**先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有误记得看完全文并评论,哈哈。** ```javascript var friend={ firstName: 'Good', 'lastName': 'Man', 'address': undefined, 'phone': ["1234567",undefined], 'fullName': function(){ return this.firstName + ' ' + this.lastName; } }; JSON.stringify(friend);//这一行返回什么呢? ``` 第二个问题,如果我想在最终JSON字符串将这个'friend'的姓名全部变成大写字母,也就是把"Good"变成"GOOD",把"Man"变成"MAN",那么可以怎么做? 基于以上两个问题,我们再追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?JSON和JS对象的区别?JS中`JSON.parse`、`JSON.stringify`和不常见的`toJSON`,这几个函数的参数和处理细节到底是怎样的? 欢迎进入本次“深挖JSON之旅”,下文将从以下几个方面去理解JSON: - 首先是对“JSON是一种轻量的数据交换格式”的理解; - 然后来看经常被混为一谈的JSON和JS对象的区别; - 最后...
Stinson_Zhao 发布于 18小时前 阅读 153

【谁动了我的开源内裤?】2017年深圳源创会图文回顾

伴随着深圳的下雨天,2017年3月19日OSC深圳源创会圆满落幕,了解本次活动详情,嘉宾分享PPT下载,注意文末链接。
开源中国源创会

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

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

分布式事务系列(开篇)提出疑问和研究过程

#1 前言 系列目录 - [分布式事务系列(开篇)提出疑问和研究过程](http://my.oschina.net/pingpangkuangmo/blog/413518) - [分布式事务系列(1.1)Spring事务管理器PlatformTransactionManager源码分析](http://my.oschina.net/pingpangkuangmo/blog/415162) - [分布式事务系列(1.2)Spring事务体系](http://my.oschina.net/pingpangkuangmo/blog/416038) - [分布式事务系列(2.1)分布式事务模型与接口定义](http://my.oschina.net/pingpangkuangmo/blog/417479) - [分布式事务系列(3.1)jotm的分布式案例](http://my.oschina.net/pingpangkuangmo/blog/419374) - [分布式事务系列(3.2)jotm分布式事务源码分析](http://my.oschina.net/pingpangkuangmo/blog/420831) - [分布式事务系列(4.1)Atomikos的分布式案例](http://my.oschina.net/pingpangkuangmo/blog/423210) 对于我们这种初学者,可能会使用spring带给我们的@Transactional,可能了解JTA,可能会使用jotm、atomikos,又会遇到一些名词XA,支持XA的数据库驱动等等诸多问题,然后就会愈加混乱,自然形成一个疑问,庞大的事务体系的全貌到底是什么样? #2 需要解决的疑惑 下面就要具体列出一系列需要解决的问...
乒乓狂魔 发布于 2年前 阅读 3201 评论 6 点赞 4

zmail 开源邮件服务器6.1版本介绍

zmail 开源邮件服务器6.1版本介绍
jason.tang 发布于 3年前 阅读 122

jfinal+ueditor上传图片、文件报“未找到上传数据错误”的解决方案

在使用jfinal+ueditor上传图片、文件时,解决由于拦截器导致“未找到上传数据错误”的问题。
陈俊凯 发布于 1年前 阅读 489 点赞 1

凡是把一本书读100遍的人,没有一个人不成大器

转自微信号 \ 陳大惠   70年前的中学生进入大学的第一天,就能够用英语上高等数学课。今天,清华大学的学生阅读美国小学生的数学课本有语言障碍。   无论英语还是汉语,今天的硕士生,不如70年前的中学生。   70年前的教育,是“先念书、后读书”的教育,是四两拨千斤的教育——中学生花200小时学英语,一年而能读林肯传;今天的教育,是老师辛辛苦苦、满头大汗“替学生学习”的教育,是千斤拨四两的教育——中学生花4000小时学英语,7年而不能读安徒生。   那时候的老师,几乎没有人得咽炎;今天的老师,几乎没有人不得咽炎!   那时候,培养人才的效率,与犹太人相比都毫不逊色。西南联大几千人,留在大陆的有118人成为院士,去了台湾的成大器者并不比大陆少,去了美国的有世界级数学大家陈省身,诺贝尔奖获得者杨振宁、李政道,以及一大批美国一流大学的教授;燕京大学是一所教会学校,每年招生300多人,1919年创办,1952年结束,历时33年,前后共计9988位学生,产生了33位院士,91位学科奠基人。   清华大学梅贻琦校长感慨:“大学之谓,非大楼之谓也,乃大师之谓也。”   今天的学生,从6岁步入校门,到二十一二岁大学毕业,一直都是考生——一个忙于做...
人生能绕几个圈 发布于 2年前 阅读 746

游戏编程中的人工智能(Python改编)

本文改编自Mat Buckland的[游戏开发中的人工智能技术](https://book.douban.com/subject/1831698/)中的Chapter 3帮助Bob回家,C++代码重新用python来实现(本文所有遗传算法相关代码均改编值Mat的C++代码,如有雷同,纯属巧合)。 Mat在本章节中详细的描述了如何利用遗传算法来帮助Bob从迷宫的起始点走到终点。具体效果如下图,红色是起点,绿色是终点,蓝色是寻找的路径: ![BobsMap](https://static.oschina.net/uploads/img/201703/25231737_6Umu.png "帮助Bob回家")。 #遗传算法 遗传算法是一种经典的进化算法,本文不再讲解遗传算法的概念,基本运算过程的介绍从百度百科拷贝如下: a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。 b)个体评价:计算群体P(t)中各个个体的适应度。 c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。 d)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。 e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。 群体...
crazyskady 发布于 17小时前 阅读 13

一个很好的 emacs 配置文件范例

一个很好的 emacs 配置文件范例 (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(TeX-engine (quote xetex)) '(TeX-shell "/bin/bash") '(TeX-view-program-list nil) '(TeX-view-program-selection (quote (((output-dvi style-pstricks) "dvips and gv") (output-dvi "xdvi") (output-pdf "xpdf") (output-html "xdg-open")))) '(gud-gdb-command-name "gdb --annotate=1") '(inhibit-startup-screen t) '(initial-buffer-choice t) '(initial-frame-alist (quote ((menu-bar-lines . 1)))) '(initial-scratch-message "") '(large-file-warning-threshold nil) '(org-agenda-files (quote ("~/Desktop/todo.org"))) '(org-agenda-include-diary t) '(org-log-into-drawer t) '(safe-local-variable-values (quote ((encoding . utf-8) (ruby-compilation-executable . "ruby") (ruby-compilation-executable . "ruby1.8") (ruby-compilat...
FreeBlues 发布于 4年前 阅读 2154

spring集成redis cluster

spring集成redis cluster,完整示例
朕当时就惊了 发布于 1年前 阅读 2663

完全免费的 Windows Server 系统,不需要序列号、不需要激活、更不需要破解

    2009-04-17 22:06 在百度空间上发表过一次,后来百度空间倒闭了……最近给自己家里搭建家庭文件共享服务器用到,所以在这边再发一次。     2009 年时,由于项目需要,用过 Hyper-V Server 2008。到了 2012-09-25 升级为 Hyper-V Server 2012。这次(2017-03-22)用的是 Hyper-V Server 2016。这么多年一直还是完全免费的。     Hyper-V Server 是基于 Windows Server Server Core x64 的虚拟机服务器系统,要正常提供虚拟机服务, CPU 必须满足三个条件:x64、DEP (Data Execution Prevention)、HV (Hardware Virtualization),但 UMU 不需要它的专业本领——虚拟机服务,所以只需要有 x64 CPU 就可以了。目前只使用他的副业,作为网上邻居(SMB)服务器和静态文件 HTTP Server,就家用而言,绝对够用,前者是系统自带的共享功能,用 net share 命令开启,后者安装 node.js + http-server 模块。     但它不是完整的 Windows Server,比如您想跑 IIS,那就不能使用它了。它最适合的情况是您开发了一些系统服务(NT Service)类的应用,比如游戏服务端、聊天软件服务端,想发布到 Windows Server 上。...
UMU 发布于 18小时前 阅读 11

IO流

Java IO流学习总结     输出流:   输入流: Java流操作有关的类或接口: Java流类图结构:   流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。  IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流   字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别: 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。 结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。   输入流和输出流 对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。   Java IO流对象 1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可...
wangwenya 发布于 4年前 阅读 127 评论 1

BSP 软硬件系统配置要求

BSP 软硬件系统配置要求: 如下是BSP软件平台单节点最小要求: 内存: >=4GB(系统需要4GB, 总体为8GB 以上内存); 使用 Kafka 数据流可能需要额外的6-8GB内存。 磁盘空间:>=20GB(用于BSP 运行时产生的系统日志和Kafka 消息传输的数据) 支持操作系统如下: Microsoft Windows 7 Mac OS X 10 64-bit CentOS 6.6 64-bit Ubuntu 14.04 支持 JDK 环境如下: 64-bit Oracle SE Development Kit 7 64-bit OpenJDK 7 推荐 Web 浏览器: Google Chrome 尽量不要安装在4GB 或小于4GB 内存的机器上。 安装 Oracle Java SE Development Kit 7: Windows版本安装, 下载 jdk-7u79-windows-x64.exe,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html OS X 10版本安装, 下载 jdk-7u79-macosx-x64.dmg,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 为了验证 Java 已经正确安装,请输入如下命令行: java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)  ...
杨旭钧 发布于 6小时前 阅读 10

让axis1.4与spring集成,去掉累赘层~

集成Spring和Axis的一个简单方案,使Axis Web服务引擎可以使用直接spring的service,去掉累赘层~
ulyn 发布于 3年前 阅读 7436 评论 24 点赞 4

Ubuntu如何安装最新版的flash,解决:adobe flash player is out of date

最近使用chrome浏览器,优酷搜狐等国内视频网站依然使用flash player播放视频,视频内显示:adobe flash player is out of date. Open Software & Updates Switch to ‘Other Software‘ tab Click/check the ‘Canonical Partners’  repository Refresh your software sources when prompted. sudo apt install adobe-flashplugin  参考资料:http://www.omgubuntu.co.uk/2016/11/install-adobe-flash-ubuntu 如果这样也没解决,只好使用终极大法: 删除 ~/.config/google-chrome 目录,把所有chrome的配置全部清除,如同新安装的chrome,所有配置重新来一遍,问题就解决了。亲测可行!
lieefu 发布于 5个月前 阅读 477

分布式事务系列(4.1)Atomikos的分布式案例

#1 系列目录 - [分布式事务系列(开篇)提出疑问和研究过程](http://my.oschina.net/pingpangkuangmo/blog/413518) - [分布式事务系列(1.1)Spring事务管理器PlatformTransactionManager源码分析](http://my.oschina.net/pingpangkuangmo/blog/415162) - [分布式事务系列(1.2)Spring事务体系](http://my.oschina.net/pingpangkuangmo/blog/416038) - [分布式事务系列(2.1)分布式事务模型与接口定义](http://my.oschina.net/pingpangkuangmo/blog/417479) - [分布式事务系列(3.1)jotm的分布式案例](http://my.oschina.net/pingpangkuangmo/blog/419374) - [分布式事务系列(3.2)jotm分布式事务源码分析](http://my.oschina.net/pingpangkuangmo/blog/420831) - [分布式事务系列(4.1)Atomikos的分布式案例](http://my.oschina.net/pingpangkuangmo/blog/423210) #2 Atomikos使用非XA数据库驱动实现分布式事务 项目地址见:[Atomikos使用非XA数据库驱动实现分布式事务](https://git.oschina.net/pingpangkuangmo/framework/tree/master/jta/spring-jta-atomikos-noxa) ##2.1 业务逻辑的操作 UserDao和LogDao,操作分别如下: @Repository public class UserDao { @Re...
乒乓狂魔 发布于 2年前 阅读 1772 评论 3 点赞 2

多比Web 3D展示(3D机房/3D监控)中间件多比Web 3D展示(3D机房/3D监控)中间件免费

多比Web 3D展示(3D机房/3D监控)中间件多比Web 3D展示(3D机房/3D监控)中间件免费下载购买地址
yidongkaifa 发布于 2年前 阅读 262

Spring进行面向切面编程的一个简单例子

一、eclipse新建java项目取名SpringTest 二、倒入sping包到构建路径 三、创建java类(当然先要创建各种包) IHelloService.java package com.zjptcc.wxw.spring.hello; public interface IHelloService { public void sayHello(); public void sayChinaHello(); } HelloServiceImpl.java package com.zjptcc.wxw.spring.hello; public class HelloServiceImpl implements IHelloService { private String Hello; private String ChinaHello; @Override public void sayHello() { // TODO 自动生成的方法存根 System.out.println(Hello); } @Override public void sayChinaHello() { // TODO 自动生成的方法存根 System.out.println(ChinaHello); } public String getHello() { return Hello; } public void setHello(String hello) { Hello = hello; } public String getChinaHello() { return ChinaHello; } public void setChinaHello(String chinaHello) { ChinaHello = chinaHello; } } SimpleHelloBean.java package com.zjptcc.wxw.spring.hello; public class S...
wangxuwei 发布于 1年前 阅读 2486 点赞 1

自定义AlertDialog布局

自定义AlertDialog布局
墨梅 发布于 3年前 阅读 10108

HTTP 协议格式 和 HTTP Header

HTTP协议
满小茂 发布于 1年前 阅读 3096 评论 2 点赞 4

最流行的浏览器?不用 Chrome 的 13 个理由

Chrome 可能是世界上最流行的浏览器,但它不一定是最好的浏览器。
编辑部的故事 发布于 5天前 阅读 7716 评论 73 点赞 1

是时候让你们知道这些最好的开发者网站了!

在每个行业中都有其业内最好的资源。在开发的世界也是如此,开发者是个古怪的群体,普通的网站并不能满足他们,所以我们整理了这些必须访问的网站,让开发者能了解最新的科技新闻;让初学者掌握编程;当然,还有一些当你需要休息时用得上的有趣的网站。(请自行准备梯子) 新闻网站和社区 开发人员在哪里可以获得影响编程和开发世界的最新消息? Hacker News @newsycombinator 这个有点像开发界的“Reddit”!Hacker News能在任何重量级的新闻发生时给你一种如临其境的感觉。 例如:数百个开发者希望在2017年2月28日讨论大规模的AWS S3停机。你的同事中可没有几个能见证这种中断所造成的史诗灾难。 SlashDot @slashdot 这是一个汇集了所有最新的博客文章、与技术相关的新闻的巨大互动源,SlashDot于1997年由Rob“CmdrTaco”Malda创建,今天则归BIZX公司所有。SlashDot是由一小群编辑和开发者在网站强大的社区读者的帮助下运行,具有真正的社区氛围。 Reddit Programming @reddit_progr 它是开发人员的Reddit! Reddit Programming是讨论最新发展趋势、科技新闻以及繁忙开发者心目中的一切事物的社区。 如果你需要最热门的新闻,想讨论一个困扰已久的编程问题,或希望在无休...
编辑部的故事 发布于 6天前 阅读 5955 评论 48 点赞 9

还在为测试发愁?10 个开源的压力/负载测试工具

负载/压力测试工具可以让你了解应用程序在负载/压力下的执行情况,它可以暴露其中的问题,并进行改进。因此,负载/压力测试是确保系统运行效率并不可少的部分。本文介绍了 10 个开源的负载/压力测试工具,欢迎补充。 1、Apache JMeter JMeter 是 Apache 组织的开放源代码项目,它是功能和性能测试的工具,100% 的用 Java 实现。 2、Httperf Httperf 是个 web 服务器的性能测试工具,来自惠普公司。Httperf 提供了灵活的生成各种 HTTP 负载来测试服务器的性能,提供可靠、高性能的工具,支持 HTTP/1.1 和 SSL。 3、OpenSTA OpenSTA 是一个免费的、开放源代码的 web 性能测试工具,能录制功能非常强大的脚本过程,执行性能测试。例如虚拟多个不同的用户同时登陆被测试网站。 4、loadUI loadUI 是一个企业级的负载测试工具,测试可分布式运行并可实时修改,与 soapUI 紧密集成,使用高度图形化接口,使得测试变得很简单而且运行迅速。 5、Grinder Grinder 是一个负载测试框架,通过 Jython 来编写测试脚本,基于 HTTP 的测试可以由浏览器来记录整个要测试的过程。 6、JCrawler JCrawler 是一个开源的 WEB 应用压力测试工具。通过其名字,你就可以知道这是一个用 Java 写的像...
编辑部的故事 发布于 4天前 阅读 4279 评论 21 点赞 2

有趣的二进制

优秀应用算法都大量用到位运算,而位运算在工作中很少用到,所以借助其算法,我们看一下位运算的优势以及应用,但是大多数教材只会教大家二进制和十进制如何互换,都是死记硬背式的,并没有去讲解真正含义,换一个进制之后,依然不会,我们回到最根本的一些计数方法上,从10进制来推算,希望用一种更简单的方式介绍其原理
wier 发布于 6天前 阅读 3950 评论 21 点赞 11

圆桌论道:聊聊小程序的发展生态,小程序还值得投入吗?

3月19日的 OSC 深圳源创会圆桌论道,以“聊聊小程序的发展生态”为主题,邀请到了多位在小程序领域知名的项目作者、嘉宾探讨小程序从现在到未来的发展生态。
OSC源创君 发布于 5天前 阅读 3677 评论 34 点赞 4

接地气又好用,8 款优秀的国产开源博客系统推荐

对于程序员来说,除了苦修技术,写博客将开发过程和开发经验记录下来,也是非常有意义的事情。既能帮助自己梳理思绪,也能让其他人避免重复踩坑,还能抛砖引玉,得到更多同行的指点和建议。 开源的博客系统非常多,其中不乏优秀之作,但最符合本地化需求的,当属国产。接下来,推荐几款优秀的且保持更新的国产开源博客系统。 1、Solo Solo 是一款一个命令就能搭建好的 Java 开源博客系统,包括 Markdown / TinyMCE / KindEditor、自定义导航(页面、链接)、草稿夹、评论/回复邮件提醒、随机文章 / 相关文章 / 置顶 / 更新提醒、多语言、代码高亮等多项实用功能。它还内置了 15+ 套精心制作的皮肤,有自己的活跃社区。 2、Tale Tale 使用了轻量级mvc框架 Blade 开发,默认主题使用了漂亮的 pinghsu,设计简洁,界面美观,支持多主题和 Emoji 表情,支持网易云音乐播放和数据库备份,以及 Markdown 文章发布,且部署发布简单,不依赖 Tomcat。 3、NiceFish NiceFish(美人鱼)是一个微型博客系统,前端基于 Angular 2 + ng2-Bootstrap,后端可以是任意技术。 NiceFish 的系统管理界面 NiceFish-Admin 和 Java 版后台 NiceFish-SpringMybatis 也在制作当中,NiceFis...
编辑部的故事 发布于 3天前 阅读 3801 评论 24 点赞 10

花十分钟时间给JFinal写了个talent-aio插件。。。

本人 JFinal脑残粉,最近公司几个项目都需要跟硬件交互,这就得用到长连接,之前一直没接触过该领域,本来还想花时间研究下netty,讲真挺难啃的,找资料的时候翻到 talent-aio,略微了解发现似乎学习成本极低,没想到作者本人也极其nice,解答我这个门外小伙子好多个问题,顺利用上此框架,刚好解了我的燃眉之急。 什么是 talent-aio? talent-aio是基于java aio实现的即时通讯框架,源于作者另一个久经考验的talent-nio框架,但在易用性、性能及代码可读性方面又远远超越了talent-nio。 顺便放上传送门:https://my.oschina.net/talenttan/blog/863545 废话不说,下面正题: 下载talent-aio的demo,demo极其简单,主要还是看HelloAbsAioHandler这个类的编码协议,剩下的就是看Aio的类了,api 貌似都在这。具体不介绍了,上面有链接,要注意的是Client端与Server端协议要一致。在这里说下我之前踩的坑,比如talent-aio的demo代码中的协议是有header的,Server端对客户端没有要求,但必须遵循交互协议,所以若是你用百度出来的socket实例连Server要注意,这里我们用回本身提供的Client代码就可以了。 导入talnet-aio依赖。 <dependency> <groupId>com.tale...
小徐同学 发布于 5天前 阅读 3487 评论 25 点赞 19 打赏 1

【码云周刊第 12 期】走过微软20年,埋头并发编程15年,如何减少代码的认知负荷?

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

【源资讯 第19期】苹果拒绝“热更新”, iOS 11 抛弃 32 位应用……程序界的与时俱进?!

【一周源资讯(2017.3.10-2017.3.17)】苹果发通谍拒绝“热更新”; iOS 11 将彻底放弃 32 位应用程序;Android 将加入 Java 8 的原生支持……不与时俱进,小心被小学生完虐!
编辑部的故事 发布于 1周前 阅读 5220 评论 7 点赞 2

阿里-蚂蚁金服三轮面试总结

作为团队里一名还未毕业的前端妹子,这周接到了接到了阿里巴巴-蚂蚁金服的三轮电面,我大概是从二月中旬的时候就陆续投一些公司的简历,想找一下比较好的暑假实习,一些大公司从二月份中下旬就开始发内推了,貌似我是在牛客网的讨论区刷到内推的机会的,然后就发了简历。等到了最近三月的7/8/10号这三天,我经历了杭州蚂蚁金服的一二三面(电话),面完第三面不知道结果怎么样,还是和大家分享一下吧。 一.第一次电面 (2017.3.7 下午 5:30开始,持续半小时) (一)问题: 1.基础问题: 说说js的继承实现 js的闭包 2.项目问题: 说说你做过的项目  你在项目中的角色 (我说前后端,用node) 在项目中遇到的问题 假如让你重新做这个项目,你会怎么做? 这个项目有哪些你觉得会保留的,哪些你觉得需要改进的? 为什么用grunt 产品存放在哪里 有没有上线 node版本的区别 (二)我问的问题总结: 这次和面试官的沟通中,我了解到Angular慢慢地使用减少了,react、ej6、vue现在比较热门。(不过后来听师兄师姐说,阿里影视为了兼容问题暂时还在用 Angular1,而阿里UC也有使用Angular2的,所以还是有必要学习的 )另外,面试官介绍个github账号antdesign给我学习。 (三)个人总结: ...
weknow 发布于 7天前 阅读 2444 评论 27 点赞 11

长URL转短连接的简单设计与实现

非常多的时候,我们不想在分享的时候采用长长的链接,主要的原因有: URL太长占显示空间、难于输入,转成二维码点点小,难于识别 长的URL提供的信息太多,不利于信息安全,甚至容易造成倒库 其他理由...... 今天的理由不是重点,重点是如何用一点点代码实现这个短链接的生成。 我们的注意点有: 生成的短链接地址长度可调整,毕竟不能因为4位、5位、6位的长度变化就让我们重新写一套程序 要有防冲突处理机制,不能因为算法导致两个长链接地址生成的短地址一样就把前一个覆盖掉 有时候,一个地址用过之后觉得不需要使用了,哪么这个地址失效之后,短地址可以有效收回。 首先设计接口 /** * Created by luoguo on 2017/3/16. */ public interface UrlShortener { /** * 设置产生短链接长度 * @param length * @return */ void setLength(int length); /** * 返回短链接长度 * @return */ int getLength(); /** * 返回指定地址对应的短链接 * @param url * @return */ String get(String url); /** * 存储对应关系 * @param url * @param shortUrl */ voi...
悠悠然然 发布于 1周前 阅读 4142 评论 38 点赞 4

Angular2.0视频教程来了!(视频和PPT的链接都在底部)

各位道友大家好:        “Angular2.0视频教程”来了!这是全球第一个完整的Angular 2.0系列视频教程,到目前为止也是唯一的,该系列的视频在优酷和youtube同步播出。        还是大漠穷秋老师,还是熟悉的声音,还是淡淡的小幽默。3年前,大漠老师在慕课网发布了“AngularJS实战” http://www.imooc.com/learn/156 系列视频教程,迄今为止已经有14万人学习,整体评分9.6分。很多道友反馈说,通过学习这门课程找到了心仪的工作,大漠老师感到非常开心,说明他的付出是有价值的。        这一次,大漠老师再度倾力打造,从开发环境到完整案例,涵盖了Angular2的方方面面。如果你自己看文档,或者在网上寻寻觅觅,看那些碎片化的文章,可能需要几十个小时,甚至几个月才能摸到门道。而你来听大漠老师的系统讲解,只要8小时,你就是Angular开发专家了!整个课程全部基于大漠老师自己开发的NiceFish这个小项目,如果你想先睹为快,请自己检出代码上手试玩 http://git.oschina.net/mumu-osc/NiceFish 。         同时,大漠老师还给大家带来了一波小福利,每一节课都会送出2本《揭秘Angular2》,https://item.jd.com/12027521.html ,整个课程共送...
大漠穷秋 发布于 2个月前 阅读 30443 评论 71 点赞 47 打赏 6

spring cloud netflix 微服务使用实例

想使用微服务,却不知从何入手的同学或者有如下疑问的,可以看看这个项目实例。 参考我在解决如下问题的思路,这里只是简单的介绍,更多的内容靠源码表达了。有时间再单独就微服务的每一块写博客。
丁丙乙甲 发布于 1周前 阅读 2213 评论 12 点赞 5

Linux+Nginx+Asp.net Core及守护进程部署

  上篇《Docker基础入门及示例》文章介绍了Docker部署,以及相关.net core 的打包示例。这篇文章我将以oss.offical.site站点为例,主要介绍下在linux机器下完整的部署流程,.net core在docker容器中的运行已经介绍,这里.net core运行环境我会介绍直接在linux运行的场景,内容主要包含以下几个部分: 1. 基础工具和Linux环境准备 2. .Net Core环境安装及端口配置 3. Nginx的安装配置 4. Supervisor守护进程安装配置   一. 基础工具和Linux环境准备     工具介绍:   Ubuntu:azure云端linux主机   Xshell:免费的linux客户端工具   FileZilla: 免费文件上传(sftp、ftp)工具    vs2017:  开发工具   本次部署主要是通过Nginx负载代理.net core服务,提供对外站点访问。.net core 本身的宿主则通过其自带的Kestrel服务运行。如果你是云主机请记得在管理控制台添加80访问端口。   那这里我先创建一个www文件夹,作为后边存放站点文件的根目录,同时设置相关权限,这里可能会有一个小的需要注意的问题,现在很多云主机直接登录后权限是很低的,需要使用:sudo -s 命令提升权限,否则创建文件夹会出现权限不足的错误。   1. mkdir /home/www/ossoffic...
KevinWG 发布于 6天前 阅读 1691 评论 6 点赞 2

3 月值得关注的 15 个 JavaScript 和 CSS 库

Tutorialzine 是一个教程资源网站,每月都会发布一些优秀资源,以让读者了解最新最酷的网络开发趋势,本月同样精心挑选了 15 个 JavaScript 和 CSS 供大家参考学习。 Propeller Propeller 是一个基于 Bootstrap 和 Google’s Material Design 语言的 CSS 组件框架。它包含 25 个组件,响应敏捷,具有典型 Material Design 动画的特点。该项目可以作为 Bootstrap 主题下载,也可作为完整的框架或独立的组件下载。 BaguetteBox baguetteBox.js 是一个简单简单、易用的 JavaScript lightbox库,它具有一下特点: 纯 JavaScript 实现,无需依赖其他库 支持触摸屏设备手势操作 支持显示标题(说明) 支持响应式图像 支持CSS3过渡 使用 SVG 按钮,没有多余的文件下载 启用 gzip 压缩后仅 2KB Whitestorm Whitestorm 使用 Three.js 引擎开发 3D 网页应用和游戏,它为普通的 Three.js 任务提供封装,使搭建环境,创建对象,添加物件等操作更简单。官方提供了很好的项目教程,以及与 React 集成的工具。 Animatelo Animatelo 是极度流行的 Animate.css 库的端口,它用 Web Animations API 克隆代替 CSS 转换。所有原始的 Animate.css 效果都被重建,但现在的 API 是基于 Ja...
编辑部的故事 发布于 2周前 阅读 5063 评论 5 点赞 13

Android Studio 中 VCS 的使用介绍

翻译自 Saúl Molinero 的 [The VCS client of Android Studio](http://saulmm.github.io/vcs-android-studio) 现在,我们无法想象在没有版本控制系统的情况下开始一个新的软件项目,在不同的选项可用于VCS,Git,毫无疑问,已经成为其中最流行的系统之一,像Subversion或Mercurial。 然而,这种工具需要的**学习曲线通常非常陡**,因为版本控制系统包括的各种特征和选项使得它同时变得复杂和强大。 对于大多数实验开发者和初学者来说,使用好的工具或足够好的定制环境以便以有效和快速的方式处理VCS是重要的。 ### 对比 在我们可以使用版本控制系统的好处可以发现一个强大的功能是**随时间比较文件与其各自的状态**。为此,JetBrains包括最强大和直观的 **diff / merge**工具之一 良好的使用这些工具可以加快日常工作,因为这些比较是频繁的,当我们修改代码(添加,删除或更改行),除了查看它。 此外,这些修改往往很难表示,所以不是很容易找到一个很好的工具来显示这些变化清楚。 ### IntelliJ as a diff, merge tool 从IntelliJ IDEA的2016版本开始,JetBrains包含了一个有趣的功能,称为 **Create command line launcher**,Android Studio在其2.2更新中继承。 ![输...
派赛克 发布于 6天前 阅读 1113 评论 3 点赞 1

华为最新众包项目已发布,6万+项目费等你领

华为最新众包项目已经发布,需求明确,工期合理。开发小伙伴们赶紧报名吧。 项目一 华为存储对接puppet实现运维自动化项目¥24,000,项目周期30天 项目链接:https://zb.oschina.net/project/ef1b0b8bff092431 项目二 华为存储服务对接微软SCO_插件开发¥45,000,项目周期60天 项目链接:https://zb.oschina.net/project/844a05a8a6de93ee
开源中国众包平台 发布于 2天前 阅读 1335 评论 5 点赞 1

基于Swoole开发PHP扩展

Swoole-1.9.7增加了一个新特性,可以基于Swoole使用C++语言开发扩展模块,在扩展模块中可以注册PHP内置函数和类。现在可以基于Swoole来编写PHP扩展了。Swoole使用了C++ 11封装了ZendAPI,配合C++ IDE的自动提示和自动补齐,使PHP扩展开发的效率得到了大幅提升,分分钟写出一个PHP扩展。 环境准备 ---- * IDE建议使用Eclipse CDT * 必须安装Swoole-1.9.7或更高版本 * 必须要有Swoole源码 编写程序 ---- ```cpp #include #include #include "PHP_API.hpp" #include "module.h" using namespace std; using namespace PHP; extern "C" { int swModule_init(swModule *); void swModule_destory(swModule *); } //C++函数必须要在头部声明 void cpp_hello_world(Args &args, Variant &retval); int swModule_init(swModule *module) { module->name = (char *) "test"; PHP::registerFunction(function(cpp_hello_world)); } void swModule_destory(swModule *module) { PHP::destory(); } //C++函数的实现 void cpp_hello_world(Args &args, Variant &retval) { printf("SWOOLE_BASE=%ld\n", PHP::constant("SWOOLE_BASE").toInt()); printf("swoole_table::TYPE_INT=%ld\n", ...
matyhtf 发布于 4天前 阅读 1047 评论 3 点赞 3

施耐德GalaxyVX为数据中心关键业务提供高能效、高可靠、灵活的电源保护

信息技术的高速发展,正推动“大数据时代”的到来。而数据中心基础设施则是大数据战略成败的关键,正因如此无论是政府、企业、网络运营商、还是互联网、金融等行业都大力发展建设数据中心,希望通过信息化改革,促进发展自身业务。 对于数据中心本身来讲,其头号最重要的需求无疑是电力资源。数据中心的供电即使只有几秒钟的中断也可能造成重要数据丢失/设备损坏,甚至会影响整个数据中心的正常运行,造成严重的经济损失。因此UPS供电系统成为数据中心业务运行的可靠保障。 近日全球能效管理及自动化领域的专家施耐德电气推出一款高效、易于部署、空间紧凑的三相不间断电源(UPS)GalaxyVX™,为大型设备、数据中心和关键性业务应用程序提供灵活的运行模式。这款创新型按需提供的解决方案将为企业建设超大规模数据中心提供支持,在保证可靠性的前提下提高效率,帮助企业实现IT部署价值最大化。 四电平技术:高效率,高可靠性 多模式操作可实现不同环境下的最佳性能   VX使得客户能够在UPS的全生命周期根据负载曲线、现场环境和运行计划灵活选择以上不同模式运行。 可扩展、模块化、冗余设计   通过250KW功率柜体扩容系统。在初始安装后,可以通过增加功率柜体扩容或提高冗...
闪闪钥匙 发布于 3周前 阅读 3663

细思极恐的共享单车

        最近火的一塌糊涂的共享单车哥也不幸中招了,几百米的距离也忍不住要扫一扫,懒的也是不要不要的了。每天蹬着踏板心里就寻思开了,这么个玩意咋盈利呀,不想不要紧,一想把自个吓尿了,这是啥情况呀?         骑一回五毛(五毛党是不是打这旮沓来的呀?),摩拜押金299, ofo押金99,指望押金沉淀和骑行费用这才哪到哪呀,扣除人工成本和车辆损耗暂且打个平手,开挂的大招跟后面憋着呢,我的天呀!         1、APP应用banner广告:一人每天骑二次,日活用户1000万,多少CPM自个算,加上CPC以及CPA,一年下来甩五毛党三条街,而且曝光点击定向必须精准,这块儿后面说,说快了不好消化。完了把流量往ADX上一兑就齐活了,剩下就是采购点钞机那点事儿了。         2、车身广告:车身广告位日租,车轮阿迪达的、车架普希金的、车把克林顿的、车座叶利钦的。哥再帮着算了笔花账,一辆车一天五毛(这是跟五毛党杠上了),一个月15元,2000万辆车,一年多钱自个算。乌安完~点钞机又烧了八台,那谁谁,赶紧再采购100台点钞机~钞机~机~。         3、wifi蓝牙免费接入:摩拜单车车身集成了世界上最小的GSM/GPRS+GPS模块,有了共享单...
厉力文武 发布于 4天前 阅读 932 评论 10 点赞 2 打赏 3

centos 开启sftp 目录

centos 开启sftp 目录
cpaku 发布于 28分钟前

矩阵旋转90度,180度,270度

将矩阵逆时针旋转90度,180度,270度 矩阵旋转的关键在于构建一个反对角矩阵B, 形如: In [707]: B Out[707]: array([[0, 0, 1], [0, 1, 0], [1, 0, 0]]) 假设目标矩阵为A: In [708]: A=np.arange(1,10).reshape(3,3) In [709]: A Out[709]: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 1、将A逆时针旋转90度:(AB).T In [710]: np.dot(A,B).T Out[710]: array([[3, 6, 9], [2, 5, 8], [1, 4, 7]]) 2、将A逆时针旋转180度:(BAB) In [711]: np.dot(B,np.dot(A,B)) Out[711]: array([[9, 8, 7], [6, 5, 4], [3, 2, 1]]) 3、将矩阵逆时针旋转270度:(A.T)B In [712]: np.dot(A.T,B) Out[712]: array([[7, 4, 1], [8, 5, 2], [9, 6, 3]]) 注,BA,即A左乘B,是将A的行进行上下交换         AB,A右乘B,是对A的列进行左右交换 构建B: B=np.zeros_like(A) for i in range(len(A)): B[0][len(A)-1-i]=1  ...
元禛慎独 发布于 29分钟前

iterm2

https://www.iterm2.com 增强terminal
indi_yugj 发布于 38分钟前

“全球云计算开源峰会”将于2017年4月19日-20日在国家会议中心举行!

广告
近年来,云计算开源技术逐渐成为云计算发展的重要支撑和导向,改变了以往的信息技术进化模式,引领软件技术标准的发展和创新,深刻影响着整个信息技术产业的发展格局。为进一步探索我国云计算开源技术发展模式,加速云计算与各行业的深度融合,更好地发挥云计算在经济社会创新发展中的支撑和引领作用,促进我国云计算产业快速、健康发展。
云计算开源产业联盟

【OAuth】WebApi基于OWIN的JWT Token使用解疑附带Access_token

由Katana项目带来的灵感,基于WebApi的使用示例,开放授权oauth,对access_token的支持。
李朝强 发布于 39分钟前

适配器模式

1.类适配:继承了普通类,用普通类的方法去实现接口 2.方法适配:用普通类的接口作为成员变量 注入。   假设有一个方法只是支持A接口作为参数,现有的类是B接口或者B接口的实现。那么很明显B不能作为方法的参数。那就定义一个新的类实现A接口,通过继承B接口的实现,或者将B接口作为成员变量注入。实现A接口。就可以继续让方法执行
zheng_pat 发布于 56分钟前

Spring 经典面试题

Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。   2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB。 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器:Spring 包含并管理应用中对象的生命周期和配置。 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。 3.  Spring由哪些模块组成? 以下是Spring 框架的基本模块: Core module Bean module Context module Expression Language module JDBC module ORM module OXM module Ja...
Original123 发布于 2小时前

重定向与转发

重定向是通过response来进行对路径的访问,可以是本站点内的资源,也可以是外站点的资源,通过重定向转到重定向的页面,在通过被浏览器相应,然后浏览器在发送个服务器,服务器在把内容返还给浏览器。 首次通过setAttribute发送的值,在重定向以后不能被获取。   转发是通过request进行转发,处理都是在本站点内进行,通过setAttribute的值能够转发以后能够被获取。转发的两个方法:forward 和include
CLOWN001 发布于 2小时前

错误:undefined reference to `__gxx_personality_v0' libstdc++-6.dll

1. 编译好的QT程序运行时提示这个错误,可能是用于编译QT库,和libstdc++库的编译器版本不一样或者QT使用的c++标准与当前的libstdc++-6.dll的版本不一样。   参考 http://www.cppblog.com/seahouse/archive/2010/12/24/136708.html
ldh2015 发布于 2小时前 阅读 14

壁纸助手 0.1.1 Beta 2 发布

(好几年前发布的东西了, 从旧的博客搬运过来)   这是花了一些心思重新打造的自动换壁纸工具,0.1版本的特色功能:加入壁纸不重复算法,当所有图片没有轮播完之前不会重复(所有图片都是随机轮播的)、壁纸预览功能、、更多功能请各位关注更新!   下载地址:http://pan.baidu.com/s/1pJv7Nir
Deali-Axy 发布于 2小时前 阅读 2

golang中开启gctrace

如何开启打印gc信息 只要在程序执行之前加上环境变量GODEBUG gctrace =1 ,如: GODEBUG gctrace =1 ./xxxx.exe or GODEBUG gctrace =1 go run main.go 程序将会显示gc信息,如下 gc 1 @2.104s 0%: 0.018+1.3+0.076 ms clock, 0.054+0.35/1.0/3.0+0.23 ms cpu, 4->4->3 MB, 5 MB goal, 4 P gc 2 @2.241s 0%: 0.019+2.4+0.077 ms clock, 0.079+0/2.4/6.4+0.30 ms cpu, 5->6->5 MB, 6 MB goal, 4 P gc 3 @2.510s 0%: 0.011+3.2+0.063 ms clock, 0.047+0.10/2.9/9.0+0.25 ms cpu, 11->11->10 MB, 12 MB goal, 4 P gc 4 @3.021s 0%: 0.013+6.6+0.076 ms clock, 0.053+0.34/6.2/18+0.30 ms cpu, 21->21->20 MB, 22 MB goal, 4 P gc 5 @3.725s 0%: 0.015+15+0.079 ms clock, 0.062+0.35/15/45+0.31 ms cpu, 40->40->39 MB, 41 MB goal, 4 P gc 6 @4.741s 0%: 0.008+35+0.17 ms clock, 0.035+0.19/35/100+0.70 ms cpu, 76->76->75 MB, 78 MB goal, 4 P gc 7 @6.688s 0%: 0.020+117+0.34 ms clock, 0.082+11/117/330+1.3 ms cpu, 147->148->146 MB, 151 MB goal, 4 P gc 8 @68.645s 0%: 0.019+146+0.30 ms clock, 0.078+0.006/146/407+1.2 ms cpu, 285->285->248 MB, 292 MB go...
xloogson 发布于 2小时前

curl 设置代理服务器 访问

curl设置代理 ``` curl -x 10.0.0.172:80 www.wo.com.cn ``` 此命令使用10.0.0.172:80这个代理服务器IP和端口访问站点www.wo.com.cn 参数说明 -x 设置代理,格式为host[:port],port的缺省值为1080
ok绷forever 发布于 2小时前

web技术栈中不可或缺的Linux技术

随着第三次信息浪潮的冲击,web技术在近年来可谓发生了天翻地覆的变革。从单向信息的web1.0时代,逐步过渡到信息和人交互的web2.0再到数据主动与人发生关系的web3.0时代,这些成就无疑归功于Web技术的迅速发展。 Web技术最重要的载体便是服务器,服务器运行在公共的网络环境下,为广大的用户提供网页浏览、信息通讯、消息推送等服务,从最开始的硬件服务器到虚拟主机技术,再到虚拟化技术的出现和云概念的兴起,绝大部分都是基于Linux操作系统的,因此web工程中,Linux也是一枚举足轻重的角色,不过掌握一门Linux技术也是重中之重,个人认为《Linux就该这么学》这本书拿来入门还是挺不错的,下面将开始介绍Linux作为web技术的重要角色的几个要点。   图:WEB技术栈 1、 应用部署 绝大多数Web应用都承载在各大Linux发行版(如ubuntu 、redhat、centos)上,因此掌握Linux环境下的应用部署和日常维护尤为重要。下面列举一些典型的应用部署解决方案: PHP:Nginx/LAMP(Linux+Apache+Mysql+PHP),提供HTTP(S)服务并提供PHP解析的Fastcgi; JAVA WEB:Tomcat/Jboss,提供HTTP(S)服务、Servlet和JSP容器; Node.js:pm2/nodemon:提供守护进程和集群管理服务,Node.js应用本身...
linux-tao 发布于 3小时前

学习Java“捷径”:破坏与重建

  在尚学堂学习的四个月,自己深切的认识到一个道理:学习Java不能偷懒,必需坚持练习,而且需要有破坏的精神,敢于尝试。 学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。 亲身体会,看书与敲代码同时进行。不要等到你完全理解了才动手敲代码,这样程序运行的各种情况可以让你更快更牢固的掌握知识点。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。 敢于尝试,敢于破坏。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断...
路人从北少喵呜 发布于 3小时前

SpringBoot之application.properties or application.yml配置大全

SpringBoot的application.properties or application.yml属性配置大全; 默认用到哪个,写哪个; ​ # =================================================================== # COMMON SPRING BOOT PROPERTIES # # This sample file is provided as a guideline. Do NOT copy it in its # entirety to your own application. ^^^ # =================================================================== # ---------------------------------------- # CORE PROPERTIES # ---------------------------------------- # BANNER banner.charset=UTF-8 # Banner file encoding. banner.location=classpath:banner.txt # Banner file location. banner.image.location=classpath:banner.gif # Banner image file location (jpg/png can also be used). banner.image.width= # Width of the banner image in chars (default 76) banner.image.height= # Height of the banner image in chars (default based on image height) banner.image.margin= # Left hand image margin in chars (default 2) banner.image.invert= # If images should be inverted for...
能胜 发布于 3小时前 阅读 2

Redis乱码

最近在spring-data-redis用redis缓存对象时,如果保存是String的话,没有问题,但是如果保存对象时,发现就无法正常显示。利用redis-cli查看发现保存的均是二进制,无法正常的查看。 ​ 127.0.0.1:6379> keys *  1) "\xac\xed\x00\x05t\x00\x05test1"  2) "\xac\xed\x00\x05t\x00\atest122"  3) "\xac\xed\x00\x05t\x00\auser001"  4) "\xac\xed\x00\x05t\x00\ttest12245"  5) "\xac\xed\x00\x05t\x00\x1auser0000000000000000000001"  6) "\xac\xed\x00\x05t\x00\x10user000000000001" ​   查资料发现,spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列,而spring-data-redis支持。 JacksonJsonRedisSerializer Jackson2JsonRedisSerializer OxmSerializer 现在我们实现Jackson2JsonRedisSerializer序列化,直接上代码,主要看objRedisTemplate方法 package com.xxfy.demo.config; import java.lang.reflect.Method; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.Enab...
萧萧风雨 发布于 3小时前 阅读 1

2.1 操作系统的类型与结构

【引言】     操作系统是计算机核心系统软件,负责管理和控制计算机系统中硬件与软件资源,合理地组织计算机工作流程和有效的利用资源。 【操作系统的类型】     根据使用环境和对应作业的处理方式,操作系统可以分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。 批处理操作系统:把用户提交的作业进行分类,把一批中的作业编排成一个作业执行序列。通常分为联机和脱机批处理。批处理系统的主要特点是:用户脱机使用计算机、成批处理、多道程序运行。 分时操作系统:采用分时技术,使用多个用户同时以会话的方式控制自已程序的运行,让每个用户感知到似乎各自有一台独立的计算机、支持自已请求服务的系统。分时技术把处理机的运行时间切分成很短的时间片,按时间片轮流把处理机分配给各个联机作业使用。若某个作业分配给它的时间片内不能完成计算,则作业暂时中断,把处理机让给另外一个作业使用,等待下一轮再继续执行。分时操作系统的主要特点:交互性、多用户同时性、独立性。 实时操作系统:系统与应用很难分离,常常紧密结合在一起。实时操作系统并不强调资源利用率,而更关心的时实时性(时间紧迫性)、可靠性与完整性。实时系...
无寄语 发布于 3小时前 阅读 1

web技术栈中不可或缺的Linux技术

Web技术最重要的载体便是服务器,服务器运行在公共的网络环境下,为广大的用户提供网页浏览、信息通讯、消息推送等服务,从最开始的硬件服务器到虚拟主机技术,再到虚拟化技术的出现和云概念的兴起,绝大部分都是基于Linux操作系统的,因此web工程中,Linux也是一枚举足轻重的角色,不过掌握一门Linux技术也是重中之重,个人认为《Linux就该这么学》这本书拿来入门还是挺不错的,下面将开始介绍Linux作为web技术的重要角色的几个要点。                                           图:WEB技术栈   1、 应用部署 绝大多数Web应用都承载在各大Linux发行版(如ubuntu 、redhat、centos)上,因此掌握Linux环境下的应用部署和日常维护尤为重要。下面列举一些典型的应用部署解决方案: PHP:Nginx/LAMP(Linux+Apache+Mysql+PHP),提供HTTP(S)服务并提供PHP解析的Fastcgi; JAVA WEB:Tomcat/Jboss,提供HTTP(S)服务、Servlet和JSP容器; Node.js:pm2/nodemon:提供守护进程和集群管理服务,Node.js应用本身即可开启Server; 那么我们需要如何进行应用部署的技能补充呢?事实上,学习WEB应用部署并不难,首先我们需要扎实Linux的...
云端等你 发布于 3小时前 阅读 3

mongodb,redis,hbase三者区别

当SQL满足不了你的需求或者SQL 已经不是必须的或者最佳的选择时,就是你考虑这类NoSQL 的时候了。 当你的内存大于你的数据时,schema也不是太确定时,mongodb在这里静静地等待My SQL转业户为了尝鲜过来看热闹的,不改变设计模式,爽在前面痛在后面; 当你唯一追求的就是速度,又对memcached的过于简单心存芥蒂,刚好内存也比数据多时,redis俏生生站在那里; 大,好大,太大了,我说的是数据,我们128GB内存双路CPU25TB存储只够一星期的时候,估计就没有选择综合症了,HBase成了唯一或者唯二选择了。 ----------------------------------------- 所以呢,不严谨地讲,Redis定位在"快",HBase定位于"大",mongodb定位在"灵活"。 NoSQL的优点正好就是SQL的软肋,而其弱点正好也就是SQL的杀手锏 ----------------------------------------- 最大区别在于,在一般使用情况下,mongodb可以当作简单场景下的但是性能高数倍的MySQL, Redis基本只会用来做缓存,HBase用来做离线计算   =================== Nosql = Not only SQL mongodb:我觉得定位是取代关系型数据库,想当一个主流数据库。因为他有非结构化、方便扩充字段、写性能优于mysql。万事万物有利有弊,mongodb的内存型缓存...
周积荣 发布于 4小时前 阅读 1

VS.NET版本与VC版本对应关系

vc6        ->    vc6 vs2003    ->    vc7 vs2005    ->    vc8 vs2008    ->    vc9 vs2010    ->    vc10 vs2012    ->    vc11 vs2013    ->    vc12  
robslove 发布于 4小时前 阅读 4

PHP代码补全(提示)中的两个 Atom 插件的对比

这里和大家分享两个 php 插件,两个插件都是 php 代码提示补全的功能 #插件一:atom-autocomplete-php# 插件链接:[atom-autocomplete-php](https://atom.io/packages/atom-autocomplete-php) 优点:可以模糊匹配到准确的函数名(方法名)或变量名; 缺点: 1.补全的函数名不带括号及括号中的参数(不知道这个是不是自己的配置问题,但是检查了这个插件的配置,应该是没问题的) 2.可提示变量 效果图:(从中可以看到,可以通过输入函数名中包含的字符,进行模糊匹配到准确的函数) ![atom-autocomplete-php](https://static.oschina.net/uploads/img/201703/26132001_tuIU.gif) #插件二:autocomplete-php# 插件链接:[autocomplete-php](https://atom.io/packages/autocomplete-php) 优点:可以补全包括 函数名、括号、参数 在内的整个函数 缺点:不具备模糊匹配的功能,在输入函数名的时候,必须从左到右,严格按照函数名进行输入 效果图:(来自该插件的官网截图) ![autocomplete-php](https://raw.githubusercontent.com/Azakur4/autocomplete-php/master/assets/img/demo.gif) 经过对比,两个插件,各有所长。如果可以互补,那么在写代码的时候是多么酸爽啊!!! ...
胡乱发 发布于 4小时前

花十分钟时间给JFinal写了个talent-aio插件。。。

本人 JFinal脑残粉,最近公司几个项目都需要跟硬件交互,这就得用到长连接,之前一直没接触过该领域,本来还想花时间研究下netty,讲真挺难啃的,找资料的时候翻到 talent-aio,略微了解发现似乎学习成本极低,没想到作者本人也极其nice,解答我这个门外小伙子好多个问题,顺利用上此框架,刚好解了我的燃眉之急。 什么是 talent-aio? talent-aio是基于java aio实现的即时通讯框架,源于作者另一个久经考验的talent-nio框架,但在易用性、性能及代码可读性方面又远远超越了talent-nio。 顺便放上传送门:https://my.oschina.net/talenttan/blog/863545 废话不说,下面正题: 下载talent-aio的demo,demo极其简单,主要还是看HelloAbsAioHandler这个类的编码协议,剩下的就是看Aio的类了,api 貌似都在这。具体不介绍了,上面有链接,要注意的是Client端与Server端协议要一致。在这里说下我之前踩的坑,比如talent-aio的demo代码中的协议是有header的,Server端对客户端没有要求,但必须遵循交互协议,所以若是你用百度出来的socket实例连Server要注意,这里我们用回本身提供的Client代码就可以了。 导入talnet-aio依赖。 <dependency> <groupId>com.tale...
小徐同学 发布于 5天前 阅读 3487 评论 25 点赞 19 打赏 1

Linux+Nginx+Asp.net Core及守护进程部署

  上篇《Docker基础入门及示例》文章介绍了Docker部署,以及相关.net core 的打包示例。这篇文章我将以oss.offical.site站点为例,主要介绍下在linux机器下完整的部署流程,.net core在docker容器中的运行已经介绍,这里.net core运行环境我会介绍直接在linux运行的场景,内容主要包含以下几个部分: 1. 基础工具和Linux环境准备 2. .Net Core环境安装及端口配置 3. Nginx的安装配置 4. Supervisor守护进程安装配置   一. 基础工具和Linux环境准备     工具介绍:   Ubuntu:azure云端linux主机   Xshell:免费的linux客户端工具   FileZilla: 免费文件上传(sftp、ftp)工具    vs2017:  开发工具   本次部署主要是通过Nginx负载代理.net core服务,提供对外站点访问。.net core 本身的宿主则通过其自带的Kestrel服务运行。如果你是云主机请记得在管理控制台添加80访问端口。   那这里我先创建一个www文件夹,作为后边存放站点文件的根目录,同时设置相关权限,这里可能会有一个小的需要注意的问题,现在很多云主机直接登录后权限是很低的,需要使用:sudo -s 命令提升权限,否则创建文件夹会出现权限不足的错误。   1. mkdir /home/www/ossoffic...
KevinWG 发布于 6天前 阅读 1691 评论 6 点赞 2

有趣的二进制

优秀应用算法都大量用到位运算,而位运算在工作中很少用到,所以借助其算法,我们看一下位运算的优势以及应用,但是大多数教材只会教大家二进制和十进制如何互换,都是死记硬背式的,并没有去讲解真正含义,换一个进制之后,依然不会,我们回到最根本的一些计数方法上,从10进制来推算,希望用一种更简单的方式介绍其原理
wier 发布于 6天前 阅读 3950 评论 21 点赞 11

spring cloud netflix 微服务使用实例

想使用微服务,却不知从何入手的同学或者有如下疑问的,可以看看这个项目实例。 参考我在解决如下问题的思路,这里只是简单的介绍,更多的内容靠源码表达了。有时间再单独就微服务的每一块写博客。
丁丙乙甲 发布于 1周前 阅读 2213 评论 12 点赞 5

长URL转短连接的简单设计与实现

非常多的时候,我们不想在分享的时候采用长长的链接,主要的原因有: URL太长占显示空间、难于输入,转成二维码点点小,难于识别 长的URL提供的信息太多,不利于信息安全,甚至容易造成倒库 其他理由...... 今天的理由不是重点,重点是如何用一点点代码实现这个短链接的生成。 我们的注意点有: 生成的短链接地址长度可调整,毕竟不能因为4位、5位、6位的长度变化就让我们重新写一套程序 要有防冲突处理机制,不能因为算法导致两个长链接地址生成的短地址一样就把前一个覆盖掉 有时候,一个地址用过之后觉得不需要使用了,哪么这个地址失效之后,短地址可以有效收回。 首先设计接口 /** * Created by luoguo on 2017/3/16. */ public interface UrlShortener { /** * 设置产生短链接长度 * @param length * @return */ void setLength(int length); /** * 返回短链接长度 * @return */ int getLength(); /** * 返回指定地址对应的短链接 * @param url * @return */ String get(String url); /** * 存储对应关系 * @param url * @param shortUrl */ voi...
悠悠然然 发布于 1周前 阅读 4142 评论 38 点赞 4

从Visual Studio看微软20年技术变迁

前言 这个世界从来都不缺变革,从工业革命到晶体管和集成电路,从生活电器到物联网,从简陋人机到精致体验,我们在享受技术带来的便捷的同时,也在为复杂设计而带来的挑战和生产力下降而痛并快乐着。而迫切期盼的,就是趁手的工具。曾几何时,Visual Studio 一直就是软件开发的高效的标杆,从VB的简洁语法和简单的拖拽开始,Visual Studio 不断的完善,不断的适应快速变化的,加上成熟的生态,让微软世界里的各个伙伴们活的有滋有味。 近年来,微软开始了拥抱开源,投资云技术,在开发工具领域有明显的减持,这也让很多追随者感到不安。如今 Visual Studio 2017 的发布,给了开发者几点很明确的信号: 移动开发前景无限,解决方案多样化 跨平台服务器支持和服务器轻量化 开发过程标准化和开发效率持续提升 服务优于产品 作为微软工具的受益人,我们相信这是一个好的变化,有了变化,才有提升,才能提供更好的服务。   回顾 那么,在 Visual Studio 的20年发展历程中,都经历了哪些历程和技术变革呢?   根据微软的资料,第一个使用 Visual Studio 品牌销售的是 Visual Studio 97,后续版本(VS6)成为一代经典,即使今日依然还有企业和公司在使用;之后 Visual Studio 携...
葡萄城控件技术团队 发布于 1周前 阅读 3421 评论 25 点赞 7

Javascript常用的设计模式详解

一:工厂模式 工厂模式类似于现实生活中的工厂可以产生大量相似的商品的流水线,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。 简单的工厂模式可以理解为解决多个相似的问题;这也是它的优点;如下代码:  ​ function CreatePerson(name) { var obj = new Object(); obj.name = name; obj.sayName = function(){ return this.name; } return obj; } var p1 = new CreatePerson("longen"); var p2 = new CreatePerson("tugenhua"); console.log(p1.name); // longen console.log(p1.sayName()); // longen console.log(p2.name); // tugenhua console.log(p2.sayName()); // tugenhua // 返回都是object 无法识别对象的类型 不知道他们是哪个对象的实列 console.log(typeof p1); // object console.log(typeof p2); // object console.log(p1 instanceof Object); // true ​ 如上代码:函数CreatePerson能接受一个参数name参数,可以无数次调用这个函数,每次返回都会包含一个属性和一个方法的对象。 工厂模式是为了解决多个类似对象声明的问题;也就是为了解决实列化对象产生重复的问题。 优点:能解决多个相似的问题。 缺...
源子姗 发布于 2周前 阅读 2600 评论 15 点赞 7

Android基础夯实--你了解Handler有多少?

万丈高楼平地起,学习任何东西我们都离不开扎实的基础知识。本编文章通过对Handler相关知识的全面回顾,给Android开发者重新夯实基础。
Ryane 发布于 2周前 阅读 1511 评论 7

简单聊聊: linux 匿名管道

  相信很多在linux平台工作的童鞋, 都很熟悉管道符 '|', 通过它, 我们能够很灵活的将几种不同的命令协同起来完成一件任务.就好像下面的命令: echo 123 | awk '{print $0+123}' # 输出246 不过这次咱们不来说这些用法, 而是来探讨一些更加有意思的, 那就是 管道两边的数据流"实时性" 和 管道使用的小提示.   其实我们在利用管道的时候, 可能会不经意的去想, 我前一个命令的输出, 是全部处理完再通过管道传给第二个命令, 还是一边处理一边输出呢? 可能在大家是试验中或者工作经验中, 应该是左边的命令全部处理完再一次性交给右边的命令进行处理, 不光是大家, 我在最初接触管道时, 也曾有这么一个误会, 因为我们通过现象看到的就是这样.    但其实只要有简单了解过管道这工具, 应该都不难得出解释: 管道是两边是同时进行, 也就是说, 左边的命令输出到管道, 管道的右边将马上进行处理.  管道的定义 管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循...
Lin_R 发布于 2周前 阅读 1427 评论 8 点赞 8 打赏 1

2016 年崛起的 JS 项目

长江后浪推前浪,如果你能花 30 分钟读完我 6 个小时翻译的内容,相信你不会被后浪拍死在沙滩上,对 2017 该学什么有个清晰的认识。
wangshijun 发布于 2周前 阅读 4864 评论 30 点赞 9

signalR+redis 分布式聊天服务器搭建

        最近在搞一个直播项目需要聊天服务器,之前是以小打小闹来做的,并没有想太多就只有一台服务器。前几天一下子突然来了5000人,服务器瞬间gg,作为开发人员的我很尴尬! 这就是我们这篇文章的背景。           我使用的是C# Mvc4.0 来开发的,这里还需要一个redis 至于你是windows版本还是Linux版本我就不管了,反正是要有个地址一个端口,密码根据实际情况填写。         我这里用一个demo来展现分布式的情况https://git.oschina.net/908Sharp/signalR-multi-Server.git         第一步:新建两mvc项目         从nuget 中添加以下几个包 Install-Package Microsoft.AspNet.SignalR Install-Package Microsoft.AspNet.SignalR.Redis install-package Microsoft.Owin.Cors         第二步:在App_Start目录中添加Owin StartUp类               public void Configuration(IAppBuilder app)         {             GlobalHost.DependencyResolver.UseRedis("127.0.0.1", 6379, string.Empty, "SignalRBus");             app.Map("/signalr", map =>             {               ...
yangxing 发布于 2周前 阅读 2828 评论 20 点赞 7 打赏 3

js中几种实用的跨域方法原理详解

好用!!!
源子姗 发布于 2周前 阅读 2155 评论 10 点赞 5

实验:MySQL使用JDBC执行批处理性能测试

实验:MySQL使用JDBC执行批处理性能测试
IamOkay 发布于 2周前 阅读 1655 评论 13 点赞 6

CheungSSH3.0国产自动化运维堡垒机

CheungSSH Web3.0 虽然不优秀,但衷心希望能给予支持和理解 项目地址:http://git.oschina.net/CheungSSH_OSC/CheungSSH 建议您使用git命令下载,因为文件比较大,如果用浏览器,和可能下载不完整 [root@CheungSSH ~]# git clone https://git.oschina.net/CheungSSH_OSC/CheungSSH.git 讨论QQ群:585393390        在当今互联网的发展大势下,云计算和大数据已经成为主导。在两大趋势下,企业的服务器数量日益增多,如何有效的管理众多的服务器,已经成为了各大公司考虑的问题。在传统的人工管理模式下,已经很难做到高效的维护,是人管理服务器?还是服务器管理人?        为了解决这个问题,我痴迷于运维自动化研究,目前后端使用的Python语言+Django的Web框架,前端使用Bootstrap+Javascript+jQuery框架开发的CheungSSH Web3.0自动化运维系统,通信协议采用Linux系统自带的SSH协议,无Agent。并通过Paramiko库完成自动化登录,本系统可以基本满足日常的自动化运维需求。系统全程由我自主研发,不采用任何第三方工具和接口。        系统设计不足之处请各位朋友指出,也感谢大家的支持和信任,如果在使用过程中遇到任何问题,或者有任何的意见和建议...
张其川 发布于 2周前 阅读 3459 评论 21 点赞 15

使用 Elastic Stack 来监控和调优 Golang 应用程序

Golang 因为其语法简单,上手快且方便部署正被越来越多的开发者所青睐,一个 Golang 程序开发好了之后,势必要关心其运行情况,今天在这里就给大家介绍一下如果使用 Elastic Stack 来分析 Golang 程序的内存使用情况,方便对 Golang 程序做长期监控进而调优和诊断,甚至发现一些潜在的内存泄露等问题。   Elastic Stack 其实是一个集合,包含 Elasticsearch、Logstash 和 Beats 这几个开源软件,而 Beats 又包含 Filebeat、Packetbeat、Winlogbeat、Metricbeat 和新出的 Heartbeat,呵呵,有点多吧,恩,每个 beat 做的事情不一样,没关系,今天主要用到 Elasticsearch、Metricbeat 和 Kibana 就行了。   Metricbeat 是一个专门用来获取服务器或应用服务内部运行指标数据的收集程序,也是 Golang 写的,部署包比较小才10M 左右,对目标服务器的部署环境也没有依赖,内存资源占用和 CPU 开销也较小,目前除了可以监控服务器本身的资源使用情况外,还支持常见的应用服务器和服务,目前支持列表如下: Apache Module Couchbase Module Docker Module HAProxy Module kafka Module MongoDB Module MySQL Module Nginx Module PostgreSQL Module Prometheus Module Redis Modu...
Medcl 发布于 3周前 阅读 1849 评论 13 点赞 11

用大白话聊聊分布式系统

一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。
waylau 发布于 3周前 阅读 3922 评论 11 点赞 7

聊聊Java的泛型及实现

和C++以模板来实现静多态不同,Java基于运行时支持选择了泛型,两者的实现原理大相庭径。C++可以支持基本类型作为模板参数,Java却只能接受类作为泛型参数;Java可以在泛型类的方法中取得自己泛型参数的Class类型,C++只能由编译器推断在不为人知的地方生成新的类,对于特定的模板参数你只能使用特化。在本文中我主要想聊聊泛型的实现原理和一些高级特性。
suemi94 发布于 3周前 阅读 2561 评论 11 点赞 5

工具系列——webpack2的学习

最近上课比较忙,一直没有时间整理一些知识,今天把webpack2的一些常见用法都给总结了一下。
龙马行空 发布于 3周前 阅读 1725 点赞 2

记一次mysql性能优化过程

所谓mysql的优化,三分是配置的优化,七分是sql语句的优化,通过一些案例分析,希望给大家在工作中带来一些思路
成熟的毛毛虫 发布于 3周前 阅读 4196 评论 52 点赞 30 打赏 3

使用dubbo 分布式框架开发项目

Dubbo概述 •Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 •Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点 Dubbo背景 Dubbo的简介 •Dubbo是一个分布式服务框架,Dubbo的架构如图所示: l节点角色说明: lProvider: 暴露服务的服务提供方。 lConsumer: 调用远程服务的服务消费方。 lRegistry: 服务注册与发现的注册中心。 lMonitor: 统计服务的调用次调和调用时间的监控中心。 lContainer: 服务运行容器。 dubbo模块分包 通讯关系 下载dubbo源码 •源码地址 https://github.com/alibaba/dubbo •Eclipse maven工程引入 Dubbo项目编译打包 •环境是jdk8  •Dubbo 工程 编译 •Dubbo 工程 打包  服务安装 1.Zookper 安装(单点安装,集群安装也很简单) 2.Dubbo admin 安装 3.Dubbo moniter 安装 4.应用服务端启动(spring容器) 5.应用客户端启动(spring容器) Zookeeper安装 •下载解压 •进入zookeeper-3.4.8\conf目录下复制zoo_sample.cfg文件并修改为zoo.cfg •进入zookeeper-3.4.8\bin目录下点击zkServer.cmd,...
巅峰之虎 发布于 4周前 阅读 2559 评论 21 点赞 3
顶部