http kj.gy18.cn://www.5gy.com/怎么提高这个网站的访问量?

原生函数(native function)是 JavaScript 语言的一部分,这些函数有别于开发者编写的自定义函数。当我们在 profiler 中查看代码的调用栈时,这些函数是被过滤掉的。我们在 profiler 中看到的只有自己写的代码。
## 术语定义 ### 文档对象 “文档对象”是指PDF文档中的文档对象,共有三种类型的“文档对象”,他们分别是“页面对象”,“封面对象”和“目录对象”。 ### 页面对象 “页面对象”是指以页面的形式在PDF文档中呈现的对象,这个是相对于“封面对象”和“目录对象”来讲的。此类对象会成为PDF文档中内容。 ### 封面对象 “封面对象”是指以封面的形式在PDF文档中呈现的对象。这类对象会成为PDF文档中的封面。 ### 目录对象 “目录对象”是以目录的形式在PDF文档中呈现的对象,又叫“TOC对象”。这类对象会成为PDF文档中的目录。 ### 大纲 “大纲”是指阅读PDF文档时的书签导航。 ### 外链 “外链”是指所有在这个页面中且不指向它自身页面中锚点的超链接。 ### 内链 “内链”是指在这个页面中且指向的目标页面是这个页面本身中的一个锚点的超链接。 ## 命令格式 ``` wkhtmltopdf [GLOBAL OPTION]... [OBJECT]... ``` 上述代码就是 wkhtmltopdf 的命令行格式,看似简单,其实在 `[GLOBAL OPTION]` 和 `[OBJECT]` 中还别有洞天。预知详情,且听我慢慢道来。 ## 文档对象简介 wkhtmltopdf 能够把多个“对象”合并生成一个pdf文档,这些“对象”可以是“页面对象”、“封面对...
2016 年底,Google DeepMind 开源了它们的机器学习平台 — DeepMind Lab。尽管像霍金教授这样的专家曾就人工智能技术发出过警告,谷歌仍决定向其他开发人员开源其软件,这也是它们进一步发展机器学习能力的一部分。他们不是唯一一家这样做的科技公司,Facebook 去年开源了其深度学习的软件,Elon Musk 的非营利组织 OpenAI 也发布了 Universe,这是一个可用于训练 AI 系统的开放软件平台。所以,为什么谷歌、OpenAI,以及其他的公司或机构都选择开源了它们的平台,这将会对机器学习的采用产生怎样的影响? 为什么开源机器学习? 上面所提到的例子给了我们美好的愿景,其实如果仔细观察,会留意到机器学习一直是开源的,而且开放的研发是机器学习有如今这样关注度的根本原因。 通过向公众提供自己学习平台,Google 已经验证了其 AI 研究的意识越来越高。这样做其实有很多优点,例如可为 Alphabet 发掘到新的人才和有能力的创业公司。同时,开发者能访问 DeepMind Lab 将有助于解决他们研究机器学习的一个关键问题 —— 缺乏训练环境。OpenAI 为 AI 推出了一个新的虚拟学校,它使用游戏和网站来训练 AI 系统。 目前非常需要向公众提供机器学习平台这样的举动。 5 个开源机器...
玩过Elixir的人也许注意有注意到,`File.open(path)`返回的不是什么文件描述子(file descriptor,简称fd),也不是什么文件句柄(handle),而是`{:ok, pid}`。 为毛是`pid`?难道说打开文件的同时打开了一个新的进程?没错。之所以这样做,官方给出的解释是 & By modelling IO devices with processes, the Erlang VM allows different nodes in the same network to exchange file processes in order to read/write files in between nodes. 看不懂英文的可以看下面我的翻译(非直译): & 把IO设备建模成进程,可以使Erlang虚拟机在同一个网络内的不同节点(主机)上交换文件进程,从而实现节点之间的相互读写。 但这样一来,给我们自己实现IO设备带来了不小的麻烦。当执行读操作的时候,文件进程接收到的消息是什么?需要回复给主进程什么样的消息?碰上EOF了怎么处理?其他异常呢?写操作的时候又是什么样的消息机制呢?所有的这些都没有文档可查(我事先声明我不会Erlang,所以请别让我去查Erlang文档。前阵子查了erlsom的文档,差点没让我哭出来)。 没文档怎么办?Elixir又不像Ruby那样可以让我猴子补丁一把。忽然想到有个模块叫`StringIO`,貌似听说是用Elixir写...
& 有的兄弟一定会说,File缓存有什么好讲的那?不就是一个set,然后在一个get么?那你知道的只是皮毛~ 的确如大家所说,缓存从表现层看就是一个set(放数据),然后再一个get(拿数据),但是请记住,这样是不够的,如果你不了解每个缓存的实现原理、存储特点等等,你是无法使用对场景的,什么时候用File缓存、什么时候用DB缓存、什么时候用Memcache缓存,这些才是我们要学的。 依然先写目录 1. FileCache的定义 2. FileCache的基本用法 3. FileCache存储内容时的逻辑实现 # FileCache的定义 可能一句话就可以说明白,将某些数据存到文件中,下次读取的时候直接从文件中读,分流压力。 # 基本用法 为了统一接口,yii2将所有类型的缓存都统一成以下这些方法。 ```php get() // 根据一个指定的key获取缓存值,如果缓存不存在或已经过期则返回false set() // 直接保存一个值到缓存(不考虑是否存在,直接替换) add() // 如果此刻缓存不存在则保存,否则忽略 multiGet() // 一次获取多个key的缓存值,参数为一个key的数组["key1","key2"],返回值也是一个数组["key1"=&"valuw1","key2"=&"value2"] multiSet() // 一次存储多个缓存 mulitAdd() // 一次添加多个缓存 delete() /...
我们曾对黑客的世界充满着无限的幻想和畏惧,但随着技术的崛起和安全领域的进步,黑客技术已经变得越来越普遍。事实上,很多黑客工具被用于网络安全的工具可以用来进行渗透测试和安全测试,所以作为一名程序员,很有必要了解甚至尝试一下这些开源的黑客工具。但是请不要将它们用在非法用途。 1、渗透测试环境 Metasploit Metasploit Framework是一个编写,测试和使用exploit代码的完善环境。这个环境为渗透测试,shellcode编写和漏洞研究 提供了一个可靠的平台,这个框架主要是由面向对象的Perl编程语言编写的,并带有由C语言,汇编程序和Python编写的可选组件。 Metasploit Framework 作为一个缓冲区溢出测试使用的辅助工具,也可以说是一个漏洞利用和测试平台。它集成了各平台上常见的溢出漏洞和流行的shellcode,并且不断更新,使得缓冲区溢出测试变得方便和简单。 使用Metasploit安全测试工具在渗透测试中可以做很多事情,你可以保存你的操作日志、甚至定义每个有效负载在运行完成之后是 如何将其自身清除的。值得一提的是这个强大的工具是免费的,它的开发团队由两个全职成员和少数兼职的投稿者组 成,Metasploit Framework由最初的1.0版发展到现在的3.0版的漏洞...
这篇博客就来写一写之前学习shiro框架整合的时候,产生的一些问题,相信大家在学习的时候也有相应的一些疑惑。接下来就针对shiro中的session和cookie来捋一捋。 shiro整合学习的总结 ------------ ---------- 1. shiro+redis集成,避免每次访问有权限的链接都会去执行MyShiroRealm.doGetAuthenticationInfo()方法来查询当前用户的权限,因为实际情况中权限是不会经常变得,这样就可以使用redis进行权限的缓存。 2. 实现shiro链接权限的动态加载,之前要添加一个链接的权限,要在shiro的配置文件中添加filterChainDefinitionMap.put(“/add”, “roles[100002],perms[权限添加]”),这样很不方便管理,一种方法是将链接的权限使用数据库进行加载,另一种是通过init配置文件的方式读取。 3. Shiro 自定义权限校验Filter定义,及功能实现。 4. Shiro Ajax请求权限不满足,拦截后解决方案。这里有一个前提,我们知道Ajax不能做页面redirect和forward跳转,所以Ajax请求假如没登录,那么这个请求给用户的感觉就是没有任何反应,而用户又不知道用户已经退出了。 5. 控制同一个用户的在线数量。(挤出之前的登录用户) 6. Shiro 登录后跳转到最后一个访问的页面 7. 在线显示,在线...
Java 已经22岁了,依靠强大的功能、庞大的开发社区和无人能及的生态系统,长期占据世界编程语言排行榜首,成为当之无愧的业界之王。本人在大学时期被这种很有艺术性的开发语言所吸引,果断抛弃C,学习方式很简单,只看JDK API源码,直到现在都是如此。刚毕业就一直从事Java开发方面的工作,至今也有十来年了。从JSP、WebWork到Struts、JSF,从JDBC、Hibernate到TopLink、JPA。从NIO、Mina到Netty、Grizzly。很多框架都用过,研究过。后来渐渐觉得各阶段主流的框架功能很强大,设计理念也很好,但是我们大部分情况只使用其中一小部分功能,框架在实现上性能也普遍一般(除少数追求性能的框架),且适应新版JDK发布的版本普及也会滞后两三年以上。慢慢地发现用了那么多整合的框架并没有比JBuilder时代的开发速度敏捷多少,很多时候在原始的Servlet、JDBC基础上做一定的封装就能满足大部分的需求。个人觉得一个优秀的框架除了保证性能和稳定性,也要注重简易性,而不是满足开发者需求的同时大量依赖包、繁琐的配置(过多的配置性的注解也是配置)和臃肿的jar刷其存在感。在长期看JDK API源码、学习开源框架设计理念和参考JavaEE规范接口设计的习惯下自然有了自己的...
位运算是一种比较特别的数学运算。一般情况下,位运算的运算效率比加减乘除等常规数学运算要高得多。此外,位运算具备一些常规数学运算所没有的特点和规律,我们可以利用位运算的相关特性来完成一些非常巧妙的程序设计。
  etcd是CoreOS公司开发的分布式键值对存储库。在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储。   不幸的是,在github的[release](/coreos/etcd/releases)中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢。因此,我们只能通过源码编译etcd。
本文会对Tomcat进行简单说明,作为后续配置web.xml的铺垫。说明主要围绕server.xml这一配置文件进行。
前言: 现在有很多朋友在接触Angular2的时候,总是不可避免的会使用一些其他的第3方的插件,而这些插件可能都是基于jQuery的,而且也没有对应的angular2的版本,这里我就来讲解一下,在这种情况下,如何整合第3方的jQuery插件。 我们以Angular2整合zTree为例来说明整合的思路及过程。 zTree官方网站:/v3/main.php#_zTreeInfo 1.一般我在想要将像zTree这种插件集成进来的时候,我会先直接去看zTree它们的在线例子,比如说 这个例子:/zTree/zTree_v3/blob/master/demo/cn/super/metro.html 效果图是这样的: ![输入图片说明](https://static.oschina.net/uploads/img/01938_UFNx.png "在这里输入图片标题") 2.看到这个效果之后,我们再来看这个例子的代码: 关键代码在这里: ``` $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting, zNodes); }); ``` 这段代码中使用了jQuery,对吧,那我们要集成zTree进来的话,就必须先把jQuery引入进来。 那我们先不管怎么来集成zTree,我们先来解决如何将jQuery引入进来的问题: 3.引入jQuery到angular2项目中,当然,如果你使用的插件没有依赖jQuery的话可以跳...
在使用dubbo框架搭建集群时,如果我们将dubbo打包成可运行的jar包,就能很方便的构架起微服务集群 本文将示例使用maven-shade-plugin插件,将dubbo provider项目打包成一个整体的可运行jar包 ###1.使用maven创建一个新dubbo provider项目 Eclipse中,点File-&New Project...菜单,选择Maven Project,创建artifactId为dubbo-provider-to-jar的项目,修改pom.xml文件内容如下: ```xml 4.0.0 alun dubbo-provider-to-jar 0.0.1-SNAPSHOT 4.3.7.RELEASE org.springframework spring-context-support ${spring.version} com.alibaba dubbo 2.5.3 spring org.springframework org.apache.zookeeper zookeeper 3.4.6 com.101tec zkclient 0.10 ${artifactId}-${version} org.apache.maven.plugins maven-compiler-plugin 1.7 1.7 org.apache.maven.plugins maven-shade-plugin 2.4.1 false package shade mytest.dubbo.Main META-INF/spring.handlers META-INF/spring.schemas ``` ###2.新建启动入口程序mytest.dubbo.Main,内容如下: ```java package mytest. import org.springframework.context.support.ClassPathXmlApplicationC public class Main { private...
每周为您推送最有价值的开源技术内参!
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过`JSON.stringify`后的字符串是怎样的?**先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有误记得看完全文并评论,哈哈。** ```javascript var friend={ firstName: 'Good', 'lastName': 'Man', 'address': undefined, 'phone': ["1234567",undefined], 'fullName': function(){ return this.firstName + ' ' + this.lastN } }; JSON.stringify(friend);//这一行返回什么呢? ``` 第二个问题,如果我想在最终JSON字符串将这个'friend'的姓名全部变成大写字母,也就是把"Good"变成"GOOD",把"Man"变成"MAN",那么可以怎么做? 基于以上两个问题,我们再追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?JSON和JS对象的区别?JS中`JSON.parse`、`JSON.stringify`和不常见的`toJSON`,这几个函数的参数和处理细节到底是怎样的? 欢迎进入本次“深挖JSON之旅”,下文将从以下几个方面去理解JSON: - 首先是对“JSON是一种轻量的数据交换格式”的理解; - 然后来看经常被混为一谈的JSON和JS对象的区别; - 最后...
软件周刊(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 发布,现可下载
Hive是在数仓中用到的最重要的组件之一,难免会对其进行定制化修改... 在改源码到应用源码的路上,源码编译和源码调试以及打包应用必不可少,在我自己改源码的过程中走了些弯路,于是把基本操作总结了下,希望后面的人可以少走些弯路...
mod_expires&mod_headers可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。 在使用之前,首先要确认一下”mod_expires”模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的”httpd.conf”设定档来处理
前面两篇说了一下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...
正在使用盗版阿拉丁交易员训练系统的请注意了,为了您的个人财产安全请购买正版阿拉丁交易员训练系统,盗版软件第一没有售后服务保障; 第二这种公司就是强盗的做法,和强盗打交道您觉得放心吗? 第三这种盗版软件公司或者是小作坊随时会跑路,您上哪里去找他们? 第四使用盗版软件相关部门是会查封您的软件的。第五盗版软件的服务和软件的更新速度肯定是跟正版软件没法比的;不要为了图个便宜而去购买盗版软件,到时候损失的可不是一套软件的钱了,如果您就是想图个便宜我们也不会拦着您。退一万步讲,如果金融市场都使用盗版软件,那谁还敢在这个市场上面做下去了?支持正版人人有责。 下面是盗版软件公司的淘宝店铺和QQ,大家看清楚了。后面我会继续跟进其他贩卖我们公司盗版软件的信息。 正版阿拉丁交易员训练系统识别方法: 公司部分场景:
2016 年底,Google DeepMind 开源了它们的机器学习平台 — DeepMind Lab。尽管像霍金教授这样的专家曾就人工智能技术发出过警告,谷歌仍决定向其他开发人员开源其软件,这也是它们进一步发展机器学习能力的一部分。他们不是唯一一家这样做的科技公司,Facebook 去年开源了其深度学习的软件,Elon Musk 的非营利组织 OpenAI 也发布了 Universe,这是一个可用于训练 AI 系统的开放软件平台。所以,为什么谷歌、OpenAI,以及其他的公司或机构都选择开源了它们的平台,这将会对机器学习的采用产生怎样的影响? 为什么开源机器学习? 上面所提到的例子给了我们美好的愿景,其实如果仔细观察,会留意到机器学习一直是开源的,而且开放的研发是机器学习有如今这样关注度的根本原因。 通过向公众提供自己学习平台,Google 已经验证了其 AI 研究的意识越来越高。这样做其实有很多优点,例如可为 Alphabet 发掘到新的人才和有能力的创业公司。同时,开发者能访问 DeepMind Lab 将有助于解决他们研究机器学习的一个关键问题 —— 缺乏训练环境。OpenAI 为 AI 推出了一个新的虚拟学校,它使用游戏和网站来训练 AI 系统。 目前非常需要向公众提供机器学习平台这样的举动。 5 个开源机器...
## 术语定义 ### 文档对象 “文档对象”是指PDF文档中的文档对象,共有三种类型的“文档对象”,他们分别是“页面对象”,“封面对象”和“目录对象”。 ### 页面对象 “页面对象”是指以页面的形式在PDF文档中呈现的对象,这个是相对于“封面对象”和“目录对象”来讲的。此类对象会成为PDF文档中内容。 ### 封面对象 “封面对象”是指以封面的形式在PDF文档中呈现的对象。这类对象会成为PDF文档中的封面。 ### 目录对象 “目录对象”是以目录的形式在PDF文档中呈现的对象,又叫“TOC对象”。这类对象会成为PDF文档中的目录。 ### 大纲 “大纲”是指阅读PDF文档时的书签导航。 ### 外链 “外链”是指所有在这个页面中且不指向它自身页面中锚点的超链接。 ### 内链 “内链”是指在这个页面中且指向的目标页面是这个页面本身中的一个锚点的超链接。 ## 命令格式 ``` wkhtmltopdf [GLOBAL OPTION]... [OBJECT]... ``` 上述代码就是 wkhtmltopdf 的命令行格式,看似简单,其实在 `[GLOBAL OPTION]` 和 `[OBJECT]` 中还别有洞天。预知详情,且听我慢慢道来。 ## 文档对象简介 wkhtmltopdf 能够把多个“对象”合并生成一个pdf文档,这些“对象”可以是“页面对象”、“封面对...
原生函数(native function)是 JavaScript 语言的一部分,这些函数有别于开发者编写的自定义函数。当我们在 profiler 中查看代码的调用栈时,这些函数是被过滤掉的。我们在 profiler 中看到的只有自己写的代码。
工程过程?程序媛or程序猿的你知多少呢。开发时effort花在(=@__@=)哪里?
Today, I woke up feeling awesome. I turned to face the sunrise in the window, and as I stretched and let out a big yawn. Only for my boyfriend to say "Baby, turn back over. Your breath smells like turds." FML 晚上跟我男朋友一起睡的,他靠近窗户,此为前提,清晨醒来的时候感觉全身舒坦就对着初起的阳光伸了伸懒腰然后深出了一口浊气,还没等我懒腰深完就看到我男朋友一脸惊恐的看着我“亲爱的,你是吃屎了么?”。
Today, it was the last day of school, and I said goodbye to one of my students. She then told me how to correctly pronounce her name. I'd said it wrong all year. FML 楼主是老师,要转去别的学校了,然后跟我的学生们告别,到最后一个学生很认真的告诉我她的名字该怎么念,我念错了一年。。。。。FML
Today, my younger sister said that she was going to pray for her brother's HIV. I have Primary Immune Disease (PID) not HIV. School will be very interesting tomorrow. FML 我估计我在我们学校马上要火了,就在刚才我看到我妹妹子在twitter上面发了一条消息,呼吁她的朋友为我的艾滋病祈祷,我患有的是...
在[上一篇](https://my.oschina.net/greenlaw110/blog/860499)博客中我们介绍了 AAA 安全框架的概念. 下面我们开始讲述实际项目中 (本篇博客将实现一个多用户的 Todo 列表系统) 如何使用 AAA 安全框架. 在本博客中我们将假设应用使用 MongoDB 来存储数据. 不过关于安全框架应用的部分代码和具体数据库无关. ## 1 引入项目依赖 在你的 `pom.xml` 文件中添加 act-aaa 插件依赖: ```xml org.actframework act-aaa ${act-aaa.version} ``` 其中 `${act-aaa.version}` 是 act-aaa 插件的版本. 截止本文到落笔时的最新版本是 `1.0.2`. **注意: ** 当你的项目加入依赖之后发生的最直接的变化是所有的控制器响应方法都需要身份认证了. 如果你没有进一步做任何工作, 所有的访问都会被返回 `401 Unauthorised` 响应. ## 2 处理不需要身份认证的控制器方法 act-aaa 插件默认所有的 HTTP 访问都需要身份认证. 但很明显任何 web 应用都有不需要身份认证的访问结构, 最简单的例子是登陆和注册. 如果某个响应方法不需要身份认证, 可以在该方法上添加 `@org.osgl.aaa.NoAuthentication` 注解: ```java @NoAuthentication public void loginForm() {} ``` 如果某个控制器所有的响应方法都不需...
斯坦福“编程方法学”课程中导论Karel机器人,非常生动有趣地带领大家走进编程世界,是一门非常好的入门课程,我们翻译,整理了一些有趣的内容,帮助更多人更容易入门。我们建立了一个QQ交流群:,欢迎大家一起交流学习。
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。   var n=999;
  function f1(){
    alert(n);
  f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量。   function f1(){
    var n=999;
  alert(n); // error 这里有一个地方需要注意, 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!   function f1(){
    n=999;
  alert(n); // 999 二、如何从外部读取局部变量? 出于种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。 那就是在函数的内部,再定义一个函数。   function f1(){
    var n=999;
    function f2(){
      alert(n); // 999
抽出点时间继续写环境搭建。 开门见山,为了更方便,把代码整理出来,并且上传到了开源中国,码云上地址: 消费者:https://git.oschina.net/heiyanquan/FirstSpringBootDemo 生产者:https://git.oschina.net/heiyanquan/mysoa 代码取下来,环境准备,本地安装zookeeper即可(在工程中已提供)。 如遇到什么问题,欢迎留言,希望大家共同进步。
======================引入mybatis=============================== 上节内容,我们已经搭建了spring boot,这里我们先将mybatis搭进来。 第一步:先引入依赖,修改pom文件: 这里可以先忽略aop的jar包,一步一步来,我们先搭好mybatis,再一步步“深加工”,比如引入aop等等。 这里的讲解,我就按照我搭建的思路来,和市面上的文章不同的是,别的文章上来就讲什么配置,会给人造成无头绪的感觉,乱就容易出错。 下面,从上到下的往下理,有了jar包,那我们就可以写业务了,先把大条理通了,配置最后搞定。 ok,写一个方法用于接口请求用: 这个方法就是从city表里找出cityName是A的所有记录,很简单。 ok,接着写下一步,那肯定继续写CityService方法咯。 接着往下写,接着写CityDao。 哈哈,是不是很熟悉,这不就是和spr...
keepalived HA的解决方案的两大流派分为heartbeat、corosync和keepalived keepalived在诞生时被赋予的使命仅仅是为lvs的director的HA、生成ipvs规则和监控后端主机的健康状况 keepalived是可以模拟并以进程的方式实现vrrp协议,并以此协议进行工作的HA解决方案
最近在win7 vm遇到这个问题,重启了就好了,可用不了几分钟,又会出现同样的问题。运行cmd执行以下命令貌似可以解决,暂时先记录以下: @echo off | clip
#0 系列目录# - 深入浅出MyBatis系列 - [【深入浅出MyBatis系列一】MyBatis入门](http://my.oschina.net/xianggao/blog/548873) - [【深入浅出MyBatis系列二】配置简介(MyBatis源码篇)](http://my.oschina.net/xianggao/blog/548896) - [【深入浅出MyBatis系列三】Mapper映射文件配置](http://my.oschina.net/xianggao/blog/549015) - [【深入浅出MyBatis系列四】强大的动态SQL](http://my.oschina.net/xianggao/blog/549049) - [【深入浅出MyBatis系列五】SQL执行流程分析(源码篇)](http://my.oschina.net/xianggao/blog/549095) - [【深入浅出MyBatis系列六】插件原理](http://my.oschina.net/xianggao/blog/550356) - [【深入浅出MyBatis系列七】分页插件](http://my.oschina.net/xianggao/blog/550537) - [【深入浅出MyBatis系列八】SQL自动生成插件](http://my.oschina.net/xianggao/blog/550858) - [【深入浅出MyBatis系列九】改造Cache插件](http://my.oschina.net/xianggao/blog/551147) - [【深入浅出MyBatis系列十】与Spring集成](http://my.oschina.net/xianggao/blog/551161) - [【深入浅出MyBatis系列十一】缓存源码分析](http://my.oschina.net/xiangga...
在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。
单单抽象出生产者和消费者,还够不上是生产者/消费者模式。该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。 好处: 1、解耦
  假设生产者和消费者分别是两个类。如果让生产者直接调用消费者的某个方法,那么生产者对于消费者就会产生依赖(也就是耦合)。将来如果消费者的代码发生变化,可能会影响到生产者。而如果两者都依赖于某个缓冲区,两者之间不直接依赖,耦合也就相应降低了。
2、支持并发
使用了生产者/消费者模式之后,生产者和消费者可以是两个独立的并发主体(常见并发类型有进程和线程两种)。生产者把制造出来的数据往缓冲区一丢,就可以再去生产下一个数据。基本上不用依赖消费者的处理速度。其实当初这个模式,主要就是用来处理并发问题的。
3、支持忙闲不均
  缓冲区还有另一个好处。如果制造数据的速度时快时慢,缓冲...
在做定时任务时,难免需要改变定时任务的时间间隔,本文提供一种简单的方法来实现。
Semantic UI是一个逼格很高的前端框架,用了他,可以让你随时啪啪打设计经理、产品经理的脸。 但Semantic UI也是一个上手难度非常高的框架,尤其是他零散的className,而且这些className各自又能互相组合使用,所以,没有一定的耐性,可能会觉得他是一个巨啰嗦的框架。 虽然,Semantic UI也提供了很多Module View的套路样式封装,然而他的思想和Bootstrap、UIKit等完全不是一路的。这些套路都是又他的基本元素构造而成,你既可以单独将这些元素抽取出来用,也可以将不同的套路混搭使用,呃,真是五花八门。 最大的区别是,Semantic UI对空间、距离、字号,是使用em来处理的,这也是我2年前会看上他的一个重要因素。所以,本质上说,Semantic UI是通过字号来控制空间和距离的。当然其实你具体的去重载他的className,用具体的px,也是可以的。 好吧,多的就不啰嗦了,回到主题,Modal。 弹出层,是一个经常使用的东西,Semantic UI的Modal,样式做得很精致,包括弹出、消失的过度过程也非常流畅、充分,唯独有一样东西不好,就是控制太费解了,我看了老半天,都没闹明白他丫到底要干嘛,比如以下这个官网的例子: $('.coupled.modal')
allowMultiple: ...
研发这边要管理文档,觉得SVN管理文档相关还是很不错的;之前项目代码用Git管理。 在安装svn之前,先把svn相关依赖包安装好: 一、安装 1、apr wget /apr/apr-1.5.2.tar.gz
tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
#在configure前,要先安装apr的依赖
yum install -y autoconf libtool
./buildconf
./configure --prefix=/usr/local/apr
make install 2、apr-util wget /apr/apr-util-1.5.4.tar.gz
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make install 3、下载SQLite,SVN依赖 wget
http://www.sqlite.org/sqlite-amalgamation-3071501.zip
unzip sqlite-amalgamation-3071501.zip
cp -R sqlite-amalgamation-3071501 subversion-1.9.5/sqlite-amalgamation 4、SVN安装 #在第三步 SQLite前,先解压subversion
wget http://mirror./apache/subversion/subversion-1.9.5.tar.gz
tar -zxvf subversion-1.9.5
./configure --prefix=/usr/local/svn
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-uti...
(1024, [1,2],
(1024, [1,2,3],
(1024, [1,2,3,4], 0)
(1024, [2,3],
(1024, [2,3,4],
(1024, [3,4],
0) 主键是自增字段,给"车次"字段添加索引. 优化并发时,可以考虑根据"车次"进行分表分库. 区间[1,2,3]的含义是:从车站1上车,经过车站2,到车站3下车. 购票逻辑: 例如用户购买区间[2,3,4]的票时, 找出包含[2,3,4]的区间如[1,2,3,4]已售的票, 以及[2,3,4]包含的子区间如[2,3]和[3,4]已售的票, 如果三者的票合计小于500(这里假设列车满载为500人), 则用户能够购票,即[2,3,4]这个区间已售的票数+1. SQL购票逻辑如下(以MySQL为例): SET AUTOCOMMIT=0;
BEGIN WORK; --开启事务
select 已售 from 车票表 where 车次=1024
and 区间 in ('2,3,4', '2,3', '3,4', '1,2,3,4')
update 车票表 set 已售=(已售+1) where 车次=1024 and 区间='2,3,4';
COMMIT WORK; --提交事务
SET AUTOCOMMIT=1; 其中 select for update 的作用是读上锁(对读出的行上写锁),依赖事务. 上述购票逻辑,关键在于找到where条件in中的区间,步骤如下: 1.找出包含一个区间如[2,3,4]的其他区间: select 区间 from 车票表 where 车次=1024 a...
PHP寥寥几行代码轻松实现百度搜索那样的分页列表和导航链接,某些语言的拥趸哭晕在厕所. &?php
$app = array(
'db_prefix' =& 'phpbest_',
'db_sqlite' =& '/dev/shm/phpbest/phpbest.db3',
//数据库连接单例
function db() {
$db = new PDO('sqlite:'.$app['db_sqlite']);
} catch(PDOException $e) {
echo $e-&getMessage();
//分页导航链接
function page_nav($page, $page_size = 10, $before = 5, $after = 4) {
$page = intval($page);
$page_size = intval($page_size);
$db = db();
$table = $app['db_prefix'].'post';
$arr = $db-&query("SELECT count(id) FROM $table")-&fetchAll(PDO::FETCH_NUM);
$records = $arr[0][0]; //记录数
$pages = ceil($records/$page_size); //页数
if($pages == 0)
if($page &= 0 || $page & $pages)
$html = '&p&当前页:前输出5页,后输出4页&/p&';
$html .= '&a href="?page=1"&最前&/a&';
if($page != 1) { $html .= '&a href="?page='.($page - 1).'...
因为某些网络资源比较有限,比如OpenAPI,为了避免使用方无限使用(原因多方面的,性能、安全、费用等),因此要控制用户访问频率,这里使用Redis实现,并且解决实际应用中遇到的问题。
阿拉丁期货反向跟单软件特点: 1、阿拉丁期货反向跟单软件操作逻辑性强,页面简单明了,用户可以很容易学会操作; 2、阿拉丁期货反向跟单软件适用的柜台接口多,目前的柜台接口有:CTP BGP(模拟)CTS 鑫管家 金牛 吉投 源深 奇正 融航 天财 一融 知富
易盛 直达 环球等(根据市场需求来增加柜台接口); 3、阿拉丁期货反向跟单支持登录账户的多寡取决于用户电脑的承受能力,因为账户越多数据量越大,会导致软件反应延迟的现象,所以为了保证跟单速度,一套软件登录的跟单账户最好在50个账户以内; 4、非零滑点跟单软件要求跟单软件的速度一定要快,这样滑点才会小,但是零滑点的跟单软件没有这样的顾虑,保证能够成交,并且不会有掉单漏单现象; 阿拉丁期货反向跟单注意事项: 一、控制模拟样本账户的资金,根据自己实盘账户的资金来平均分配,预防因模拟账户的总资金超过实盘资金导致因实盘账户保证金不足部分单子跟不进去的情况出现; 二、限制操盘手每日的下单次数,因为商品的波动毕竟没有股指那么大,如果高频交易会导致手续费的浪费,正常一天盘手的开仓次数不超过五次,补仓不计算在内,严禁盘手锁仓; 三、挑选几个波动较大的合约让盘手分开来做单,一个盘手只...
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过`JSON.stringify`后的字符串是怎样的?**先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有误记得看完全文并评论,哈哈。** ```javascript var friend={ firstName: 'Good', 'lastName': 'Man', 'address': undefined, 'phone': ["1234567",undefined], 'fullName': function(){ return this.firstName + ' ' + this.lastN } }; JSON.stringify(friend);//这一行返回什么呢? ``` 第二个问题,如果我想在最终JSON字符串将这个'friend'的姓名全部变成大写字母,也就是把"Good"变成"GOOD",把"Man"变成"MAN",那么可以怎么做? 基于以上两个问题,我们再追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?JSON和JS对象的区别?JS中`JSON.parse`、`JSON.stringify`和不常见的`toJSON`,这几个函数的参数和处理细节到底是怎样的? 欢迎进入本次“深挖JSON之旅”,下文将从以下几个方面去理解JSON: - 首先是对“JSON是一种轻量的数据交换格式”的理解; - 然后来看经常被混为一谈的JSON和JS对象的区别; - 最后...
每周为您推送最有价值的开源技术内参!
【一周源资讯(-)】Python 超过 PHP 了,不过语言只是一种工具,适合自己才是最好的!有时间我们来看看程序员提高编程能力的办法,还有围观一下近期爆出的几个重大安全漏洞。
近年来,云计算开源技术逐渐成为云计算发展的重要支撑和导向,改变了以往的信息技术进化模式,引领软件技术标准的发展和创新,深刻影响着整个信息技术产业的发展格局。为进一步探索我国云计算开源技术发展模式,加速云计算与各行业的深度融合,更好地发挥云计算在经济社会创新发展中的支撑和引领作用,促进我国云计算产业快速、健康发展。
1、背景 昨天有同学在用 Excel 做数据统计时偶然发现 Excel 会少算一些数据,而且这个坑让这位同学排查了很久才确认不是自己统计程序错误而只是 Excel 简单的汇总出错。最初看到这个问题时,我也觉得好奇:历史如此悠久、普及率这么高、一流公司的产品都会有这种低级 bug?虽说历史上 Excel 也曾经出过很低级的 bug,但这种情况堪比彗星撞地球,而且一般很快会被 MS 官方修复,应该属于昙花一现的 bug 才对。(比如 Excel 2007 在正式发布后出过一个著名的“低级” bug:850 x 77.1 = 100000) 2、问题 那咱们先来看看这个问题(数据和问题我做了简化,方便大家理解): 看以看到 C 列值汇总后并不等于 B 列,也就是 15。 那这是什么问题导致 对 c 列 sum 缺失数据了呢?我们将 C 列复制粘贴到记事本看看: 3、说好的所见即所得呢? 发现 C9 所在单元格的值非常特殊,带有双引号且换行了,那为啥单元格里却看不到双引号呢? Windows 系列不是号称 WYSIWYG 的吗?那咱们再来换个角度看下这个问题, 将其保存为 csv 格式,再用 notepad++ 打开,开启上帝视角: 原来是这个单元格里带有换行符 \n,它在 ascii 码表里位列第10,属于不可见字符。 很显然,Excel 在这种情况下解...
软件周刊(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 发布,现可下载
各位道友大家好:
“Angular2.0视频教程”来了!这是全球第一个完整的Angular 2.0系列视频教程,到目前为止也是唯一的,该系列的视频在优酷和youtube同步播出。
还是大漠穷秋老师,还是熟悉的声音,还是淡淡的小幽默。3年前,大漠老师在慕课网发布了“AngularJS实战” /learn/156 系列视频教程,迄今为止已经有14万人学习,整体评分9.6分。很多道友反馈说,通过学习这门课程找到了心仪的工作,大漠老师感到非常开心,说明他的付出是有价值的。
这一次,大漠老师再度倾力打造,从开发环境到完整案例,涵盖了Angular2的方方面面。如果你自己看文档,或者在网上寻寻觅觅,看那些碎片化的文章,可能需要几十个小时,甚至几个月才能摸到门道。而你来听大漠老师的系统讲解,只要8小时,你就是Angular开发专家了!整个课程全部基于大漠老师自己开发的NiceFish这个小项目,如果你想先睹为快,请自己检出代码上手试玩 http://git.oschina.net/mumu-osc/NiceFish 。
同时,大漠老师还给大家带来了一波小福利,每一节课都会送出2本《揭秘Angular2》,/.html ,整个课程共送...
负载/压力测试工具可以让你了解应用程序在负载/压力下的执行情况,它可以暴露其中的问题,并进行改进。因此,负载/压力测试是确保系统运行效率并不可少的部分。本文介绍了 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 写的像...
华为最新众包项目已经发布,需求明确,工期合理。开发小伙伴们赶紧报名吧。 项目一 华为存储对接puppet实现运维自动化项目¥24,000,项目周期30天 项目链接:https://zb.oschina.net/project/ef1b0b8bff092431 项目二 华为存储服务对接微软SCO_插件开发¥45,000,项目周期60天 项目链接:https://zb.oschina.net/project/844a05a8a6de93ee
本帖提供三套学习路线,JAVA工程师学习路线(赠送,可免费索取),java架构师学习路线(收费),和大数据架构师四种学习路线(收费),针对不同的攻城狮,可以选择不同的学习路线(这三套视频是同时提供的,只要少许服务费,全部打包带走,资源加起来有IT左右,本人也是大数据架构师,免费提供技术方面的解答,付款后加技术群,后期群里资源持续更新,全部免费群里分享)Q:(非诚勿扰),废话不说上图:
一、java架构师学习路线 1、java架构师模块 (几乎涵盖所有的互联网应用,分布式架构设计,dubbo,mycat,nosql,负载均衡) 2、某网校高级架构师课程(分两阶段)
(1)高级架构师阶段一 (2)高级架构师阶段二 3、设计模式基础+设计模式项目实战
4、某机构高级架构师四个月课程
5、JAVA互联网架构师(netty、mina、nio)
(1)、JAVA NIO流篇 (2)、Mina视频教程 (3)、Netty快速入门教程 6、JAVA架构师实战篇
(1)、初级篇 (2)、进阶篇 (3)、高级篇 (4)、架构篇 7、JAVA高级架构师(2016整理版)
8、JAVA架构师系统篇(old boy) 9、Spring boot+shiro
二、大数据架构师学习路线
1、beifeng网hadoo...
首先我要说,开源托管,必须得 @红薯 家的。 上一次本人写过一篇博客《长URL转短连接的简单设计与实现》,由于写得比较仓促,是缺少设计的,因此方案也是不完整的,看到大家非常有热情,阅读的阅读收藏的收藏,我就深深的为写了这么不够深入的博客而感到不安,于是就有了这一篇博客,以及背后的开源代码。 确实,这次花费时间比较多,大概有大半天的时间设计并写代码。 需求 首先说明一下这次的主要关注点: 可以满足多种场景下的短链接生成需求 可以满足多重序列号机制 可以满足多种短链接生成方式 自由&可扩展性--秉承一贯的设计原则,觉得框架实现的好就用,觉得不满足就替换之 主要接口说明 字符串生成接口 package org.tinygroup.
* 随机字符串发生器
* Created by luoguo on .
public interface StringGenerator {
String generate(String url);
void setLength(int length);
} setLength用于指定生成的长度,generate用于生成对应长度的短链接字符串。 上片文章里面被人喷说生成逻辑不够好,这次好了,随便你写你喜欢的。 当然,为了满足懒人,也有一个默认的实现,大致就是把上次的算法挪下来了 /**
* 随机字符串发生器的默...
hadoop-hbase笔记 ,文档中所示例的项目的地址 https://git.oschina.net/weiwei02/WHadoop
Java 已经22岁了,依靠强大的功能、庞大的开发社区和无人能及的生态系统,长期占据世界编程语言排行榜首,成为当之无愧的业界之王。本人在大学时期被这种很有艺术性的开发语言所吸引,果断抛弃C,学习方式很简单,只看JDK API源码,直到现在都是如此。刚毕业就一直从事Java开发方面的工作,至今也有十来年了。从JSP、WebWork到Struts、JSF,从JDBC、Hibernate到TopLink、JPA。从NIO、Mina到Netty、Grizzly。很多框架都用过,研究过。后来渐渐觉得各阶段主流的框架功能很强大,设计理念也很好,但是我们大部分情况只使用其中一小部分功能,框架在实现上性能也普遍一般(除少数追求性能的框架),且适应新版JDK发布的版本普及也会滞后两三年以上。慢慢地发现用了那么多整合的框架并没有比JBuilder时代的开发速度敏捷多少,很多时候在原始的Servlet、JDBC基础上做一定的封装就能满足大部分的需求。个人觉得一个优秀的框架除了保证性能和稳定性,也要注重简易性,而不是满足开发者需求的同时大量依赖包、繁琐的配置(过多的配置性的注解也是配置)和臃肿的jar刷其存在感。在长期看JDK API源码、学习开源框架设计理念和参考JavaEE规范接口设计的习惯下自然有了自己的...
最近在搞一个直播项目需要聊天服务器,之前是以小打小闹来做的,并没有想太多就只有一台服务器。前几天一下子突然来了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 =&
位运算是一种比较特别的数学运算。一般情况下,位运算的运算效率比加减乘除等常规数学运算要高得多。此外,位运算具备一些常规数学运算所没有的特点和规律,我们可以利用位运算的相关特性来完成一些非常巧妙的程序设计。
Dubbo概述 oDubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 oDubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点 Dubbo背景 Dubbo的简介 oDubbo是一个分布式服务框架,Dubbo的架构如图所示: l节点角色说明: lProvider: 暴露服务的服务提供方。 lConsumer: 调用远程服务的服务消费方。 lRegistry: 服务注册与发现的注册中心。 lMonitor: 统计服务的调用次调和调用时间的监控中心。 lContainer: 服务运行容器。 dubbo模块分包 通讯关系 下载dubbo源码 o源码地址 /alibaba/dubbo oEclipse maven工程引入 Dubbo项目编译打包 o环境是jdk8
oDubbo 工程 编译 oDubbo 工程 打包
服务安装 1.Zookper 安装(单点安装,集群安装也很简单) 2.Dubbo admin 安装 3.Dubbo moniter 安装 4.应用服务端启动(spring容器) 5.应用客户端启动(spring容器) Zookeeper安装 o下载解压 o进入zookeeper-3.4.8\conf目录下复制zoo_sample.cfg文件并修改为zoo.cfg o进入zookeeper-3.4.8\bin目录下点击zkServer.cmd,...
我们曾对黑客的世界充满着无限的幻想和畏惧,但随着技术的崛起和安全领域的进步,黑客技术已经变得越来越普遍。事实上,很多黑客工具被用于网络安全的工具可以用来进行渗透测试和安全测试,所以作为一名程序员,很有必要了解甚至尝试一下这些开源的黑客工具。但是请不要将它们用在非法用途。 1、渗透测试环境 Metasploit Metasploit Framework是一个编写,测试和使用exploit代码的完善环境。这个环境为渗透测试,shellcode编写和漏洞研究 提供了一个可靠的平台,这个框架主要是由面向对象的Perl编程语言编写的,并带有由C语言,汇编程序和Python编写的可选组件。 Metasploit Framework 作为一个缓冲区溢出测试使用的辅助工具,也可以说是一个漏洞利用和测试平台。它集成了各平台上常见的溢出漏洞和流行的shellcode,并且不断更新,使得缓冲区溢出测试变得方便和简单。 使用Metasploit安全测试工具在渗透测试中可以做很多事情,你可以保存你的操作日志、甚至定义每个有效负载在运行完成之后是 如何将其自身清除的。值得一提的是这个强大的工具是免费的,它的开发团队由两个全职成员和少数兼职的投稿者组 成,Metasploit Framework由最初的1.0版发展到现在的3.0版的漏洞...
本人 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...
前面两篇说了一下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...
每周为您推送最有价值的开源技术内参!
本文标签: 程序员 女程序员 敬佩的演员.png -01- 每个人都希望自己获得成功,也读过很多成功人士的故事,知道他们所说的一些成功理念,但生活中的绝大多数人竭尽全力还是不能成功,何故? 因为即使每个人的理想都很丰满,但都会遇到这样或那样的盲点。往往在遇到机遇时,抓不住机遇,或者看到了机遇却由于准备不足,或基本功太差与机遇失之交臂。 所以要不断学习、不断丰富、不断完善自己,也唯有这样,当面对机遇时,才能准确判断、全力拼搏、抓住机遇。 社会不相信眼泪、职场也不同情弱者。发展迅速的IT行业更是如此,同行竞争日益激烈,不少人已经在一波寒流之中被淘汰。 无论你是自学也好,培训也罢。现在的市场已经成为共同竞争过度的市场,胜者为王,败者为寇。互联网经历了一波寒冬期,身边的多数同行因辞职后找不到工作,转到了销售、饮食等传统行业之中。我并没有因为自己能够坚持在这个行业继续打拼下去而沾沾自喜,更多的是在思考如何在这个自己并没有特长的行业中生存下去。 大部分人因为互联网工资优越而选择了进入这个行业,愿景是很美好的,但现实又是如此残酷。尤其是身处在一个高速发展的技术行业中,如果一直停滞不前,便如逆水行舟,不进则退。 有朋...
# Goroutine的使用 ## go语句与Goroutine ## Goroutine的运作过程 ## runtime包与Goroutine ## Happens Before ### 下一节:[输入链接说明](http://)
伴随着深圳的下雨天,日OSC深圳源创会圆满落幕,了解本次活动详情,嘉宾分享PPT下载,注意文末链接。
1.购买配置狗爹的虚拟主机,并建立相应的站点此处不做赘述 ### & 我的站点地址是,这个域名是在狗爹上买的不需要做太多的配置。 & & & 2.购买腾讯云的域名,我买的是3年的.com顶级域名 步骤如下: & 首先认证腾讯云的域名 & 在腾讯云的dns管理中心做如下的配置 ![输入图片说明](https://static.oschina.net/uploads/img/24048_EGZY.png "在这里输入图片标题") 配置完了之后我们发现可以跳往狗爹 & 但是仅仅如此还是不够我们需要在狗爹里面做相应的配置如图 & ![输入图片说明](https://static.oschina.net/uploads/img/23617_h3po.png "在这里输入图片标题") & 到这里就大功告成了是不是很简单 我也这么觉得
摘要 本文探讨了磁共振成像(MRI)系统的工作原理,系统利用氢原子在磁场作用下的运动形成清晰的医学图像。文中介绍了典型的磁场类型和当前高分辨率MRI系统所依赖的超导磁铁。本文还讨论了通过适当排列梯度线圈形成3D图像的过程以及它们与RF信号之间的相互作用,给出了MRI的系统原理框图。
概述 磁共振成像(MRI)系统能够提供清晰的人体组织的图像,系统检测并处理氢原子在强磁场中受到共振磁场激励脉冲的激发后所生成的信号。 氢原子核的自旋运动决定了它自身的固有磁矩,在强磁场作用下,这些氢原子将定向排列。简单起见,可以把静态磁场中的氢原子核看作一条拉紧的绳子。原子核具有一个共振频率或“Larmor”频率,具体取决于本地磁场强度。如同一条绳索在外部张力作用下发生共振。在典型的1.5TMRI磁场中,氢原子的共振频率近似为64MHz。 适当的磁共振激励或者是RF脉冲激励(频率等于氢原子核谐振频率)能够强制原子核磁矩部分或全部偏移到与作用磁场垂直的平面。停止RF激励后,原子核磁矩将恢复到静态磁场的状况。原子核在重新排列的过程中释放能量,发出共振频率(取决于场强)的RF信号,MRI成像系统对该信号进行检测并形成图像。 MRI成像系统原理框图。关于M...
本文通过几个例子,介绍了几种下载MaxCompute SQL计算结果的方法。为了减少篇幅,所有的SDK部分都只举例介绍Java的例子。 SQLTask SQLTask是SDK直接调用MaxCompute SQL的接口,能很方便得运行SQL并获得其返回结果。 从文档可以看到,SQLTask.getResult(i); 返回的是一个List。用户可以循环迭代这个List,获得完整的SQL计算返回结果。不过这个方法有个缺陷,可以参考这里这里提到的SetProject READ_TABLE_MAX_ROW的功能。目前Select语句返回给客户端的数据条数最大可以调整到1万。也就是说如果在客户端上(包括SQLTask)直接Select,那相当于查询结果上最后加了个Limit N(如果是CREATE TABLE XX AS SELECT或者用INSERT INTO/OVERWRITE TABLE把结果固化到具体的表里就没关系)。 Tunnel 如果需要导出的查询结果就是某张表的全部内容(或者是具体的某个分区的全部内容),可以用Tunnel来做。官网提供了命令行工具和基于SDK编写的Tunnl SDK。为了简单起见,这里就只提供一个命令行导出数据的例子,Tunnel SDK的编写是在有一些命令行没办法支持的情况下才需要考虑。具体需要用的时候看下文档好了。 &tunnel d wc_out c:\wc_out.
new session: 201...
实现思路:在spring中配置多个数据源,然后在service层通过注解方式标明方法所要使用的数据源,利用springAOP在service方法执行前根据方法上的注解明确所要使用的数据源。如下图
以上分析可得出,需要抽象出一个DynamicDataSource数据源,在spring中关于数据源的配置都是基于DynamicDataSource,在运行时根据service上的注解从DynamicDataSource选取需要的数据源进行实际的持久化操作,下面开始上代码 首先,介绍spring 的AbstractRoutingDataSource 类   
AbstractRoutingDataSource这个类 是spring2.0以后增加的,我们先来看下AbstractRoutingDataSource的定义: Java代码
public abstract class AbstractRoutingDataSource extends AbstractDataSource implements InitializingBean
public abstract class AbstractRoutingDataSource extends AbstractDataSource implements InitializingBean {
private Map&Object, Object& targetDataS
private Object defaultTargetDataS
private DataSourceLookup dataSourceLookup = new Jnd...
1 在oracle10g和oracle11g中从启动到关闭都有一定的生命周期。基本上如下: nomount-》mount-》open-》close-》dismount-》shutdown 这个生命周期不能逆转,例如不能从open 到nomount状态,但是可以跳转,比如从nomount直接到open 或者从close 直接到shutdown。
如果我们安装了grid产品,则启动和关闭可以用一下命令完成
srvctl status database -d orcl --这个orcl 是实例名
srvctl start database -d orcl
srvctl stop database -d orcl
3 oracle 的实例恢复
oracle的实例恢复基本上都是在自动完成的。
例如把数据库强制关闭后再打开归档日志,这个时候是不能打开的,因为强制关闭数据库是是需要实例恢复的 SQL& show parameter log_archive_s
------------------------------------ ----------- ------------------------------
log_archive_start
SQL& alter
alter database archivelog
ERROR at line 1:
ORA-00265: instance recovery required, cannot set ARCHIVELOG mode
# 已经被警告不能打开归档,需要实例...
Recyclerview 学习系类之ItemDecoration(一)
hibernate配置好了,要进行操作,步骤对新手来说,就像学jdbc那会一样,什么先加载Class.forName() 什么getConnection()的比较麻烦对吧?下面我们看看hibernate怎么搞!
o使用 Hibernate 进行数据持久化操作,通常有如下步骤: –编写持久化类: POJO + 映射文件 –获取 Configuration 对象 –获取 SessionFactory 对象 –获取 Session,打开事务 –用面向对象的方式操作数据库 –关闭事务,关闭 Session 这是一个示例: //1.創建sessionfactory
SessionFactory sessionFactory =
Configuration configuration = new Configuration().configure();
//sessionFactory = configuration.buildSessionFactory();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
//2.session
Session session = sessionFactory.openSession();
//3.open transaction
Transaction transaction = session.beginTransaction();
//4.save data
User user = new User("liyanlin","li...
/lxf/category/565688.html
系统架构师的工作是复杂设计总体解决方案以及领域对象的逻辑和物理布局,这是一项在复杂环境中高风险、高影响力的活动。 1、软件架构的定义:软件架构(Software Architecture)也称之为软件体系结构,它是一组有关如下要素的重要决策:软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化元素和行为元素组合成粒度更大的子系统方式的选择,以及指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。换句话说,软件架构实际上是对系统整体结构设计的刻划,系统架构师是做全局的、整体的把握工作。架构的组成与决策是架构设计的两个基本概念。架构=&蓝图+规则+解决方案 软件架构是一个认识事物的过程:原型、发现、改进、再发现、再改进,这是软件开发的必由螺旋。 2、架构师成长路线图:系统架构师已经不仅仅是技术精湛的技术专家,他需要与业务团队紧密合作,并且精通市场、业务与管理。从上升趋势来说,可以有三个层面的路线图:第一个层面,要关注系统思考。在这个层面,重要的不仅仅是掌握设计的知识点,而是更重视分析能力、创新思维能力的提升,需要更广阔的思路,这方面的空间相当非常大。这是第一层面的能力基础。第二个层面,要...
##### 我应该是一个什么注册中心? ``` ```
下载python3.5.2 wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 安装 解压:tar -zxvf Python-3.5.2.tgz 进入解压目录: cd Python-3.5.2 创建安装目录: mkdir /usr/local/python3.5.2 编译: ./configure --prefix=/usr/local/python3.5.2 安装: make && make install 备份原有python:mv /usr/bin/python /usr/bin/python_2.7.5 创建软连接:ln -s /usr/local/python3.5.2/bin/python3.5 /usr/bin/python 查看版本 python --version 输出 Python 3.5.2 至此,python升级成功。
##SlidingTimeWindowReservoir ``` /** * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made * in the last {@code N} seconds (or other time unit). */ public class SlidingTimeWindowReservoir implements Reservoir { // allow for this many duplicate ticks before overwriting measurements private static final int COLLISION_BUFFER = 256; // only trim on updating once every N private static final int TRIM_THRESHOLD = 256; private final C private final ConcurrentSkipListM priva private final AtomicLong lastT private final AtomicL /** * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time. * * @param window the window of time * @param windowUnit the unit of {@code window} */ public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) { this(window, windowUnit, Clock.defaultClock()); } /** * Creates a new {@link SlidingTimeWindowReservoir} with the give...
Maven 私服 Linux安装
原因:wayland启动时环境变量的设置方式和X不同。 处理: 通用的方法是在``` /etc/environment```里配上JAVA_HOME、JDK_HOME等环境变量。 如果跟我一样用的gentoo系统,可能有多个java共存的情况,可以考虑在pycharm的启动脚本里加上X的java环境脚本。 编辑/opt/bin/pycharm.sh ``` source /etc/profile.d/java-config-2.sh # --------------------------------------------------------------------- # Locate a JDK installation directory which will be used to run the IDE. # Try (in order): PYCHARM_JDK, pycharm.jdk, ../jre, JDK_HOME, JAVA_HOME, "java" in PATH. ``` 注:/etc/profile.d/java-config-2.sh是gentoo下java的环境变量脚本。...
Today, I woke up feeling awesome. I turned to face the sunrise in the window, and as I stretched and let out a big yawn. Only for my boyfriend to say "Baby, turn back over. Your breath smells like turds." FML 晚上跟我男朋友一起睡的,他靠近窗户,此为前提,清晨醒来的时候感觉全身舒坦就对着初起的阳光伸了伸懒腰然后深出了一口浊气,还没等我懒腰深完就看到我男朋友一脸惊恐的看着我“亲爱的,你是吃屎了么?”。
Today, it was the last day of school, and I said goodbye to one of my students. She then told me how to correctly pronounce her name. I'd said it wrong all year. FML 楼主是老师,要转去别的学校了,然后跟我的学生们告别,到最后一个学生很认真的告诉我她的名字该怎么念,我念错了一年。。。。。FML
Today, my younger sister said that she was going to pray for her brother's HIV. I have Primary Immune Disease (PID) not HIV. School will be very interesting tomorrow. FML 我估计我在我们学校马上要火了,就在刚才我看到我妹妹子在twitter上面发了一条消息,呼吁她的朋友为我的艾滋病祈祷,我患有的是...
写出一手漂亮的代码,利人利己。 1、单一职责原则 小到一个方法,大到一个类,不求多但求职责清晰,复用性强。 2、开闭原则 模块、类、函数对于扩展是开放的,但对于修改是封闭的。 3、里氏替换原则 所有引用基类的地方必须能够透明的使用其子类的对象。 4、依赖倒置原则 依赖接口而不是具体实现。便于扩展,复用。&view& 5、接口隔离原则 将反复使用的代码统一管理,依赖接口而不是具体实现。从而容易重构,更改,重新部署。&static& 6、迪米特原则 一个对象应该对其他对象有最少的了解。&附庸的附庸,不是我的附庸&。
构造函数模式 1.按照惯例,构造函数始终都应该以一个大写字母开头,而非构造函数则应该以一个小写字母开头 2.任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数 原型模式 1.1)每个函数都有一个 prototype(原型)属性,这个属性是一个指针,指向一个对象
2)所有原型对象都会自动获得一个 constructor(构造函数)属性,这个属性包含一个指向 prototype 所在函数的指针 function Person(){
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function(){
alert(this.name);
}; 2. 1)isPrototypeOf()方法来确定对象之间是否存在关系 2)Object.getPrototypeOf() 获取原型 3)delete 删除某个属性 4)hasOwnProperty() 检测一个属性是存在于实例中 不是原型 5)in 操作符 检测一个属性是存在于实例或原型中 function Person(){
this.name="wdw";
this.age="27";
var Proto = new Object();
Proto.status="OK";
Person.prototype = P
var p1 = new Person();
console.log(Proto.isPrototypeOf(p1));//true
console.log(Object.getPrototypeOf(p1) ...
位运算是一种比较特别的数学运算。一般情况下,位运算的运算效率比加减乘除等常规数学运算要高得多。此外,位运算具备一些常规数学运算所没有的特点和规律,我们可以利用位运算的相关特性来完成一些非常巧妙的程序设计。
近年来,云计算开源技术逐渐成为云计算发展的重要支撑和导向,改变了以往的信息技术进化模式,引领软件技术标准的发展和创新,深刻影响着整个信息技术产业的发展格局。为进一步探索我国云计算开源技术发展模式,加速云计算与各行业的深度融合,更好地发挥云计算在经济社会创新发展中的支撑和引领作用,促进我国云计算产业快速、健康发展。
本文会对Tomcat进行简单说明,作为后续配置web.xml的铺垫。说明主要围绕server.xml这一配置文件进行。
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过`JSON.stringify`后的字符串是怎样的?**先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有误记得看完全文并评论,哈哈。** ```javascript var friend={ firstName: 'Good', 'lastName': 'Man', 'address': undefined, 'phone': ["1234567",undefined], 'fullName': function(){ return this.firstName + ' ' + this.lastN } }; JSON.stringify(friend);//这一行返回什么呢? ``` 第二个问题,如果我想在最终JSON字符串将这个'friend'的姓名全部变成大写字母,也就是把"Good"变成"GOOD",把"Man"变成"MAN",那么可以怎么做? 基于以上两个问题,我们再追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?JSON和JS对象的区别?JS中`JSON.parse`、`JSON.stringify`和不常见的`toJSON`,这几个函数的参数和处理细节到底是怎样的? 欢迎进入本次“深挖JSON之旅”,下文将从以下几个方面去理解JSON: - 首先是对“JSON是一种轻量的数据交换格式”的理解; - 然后来看经常被混为一谈的JSON和JS对象的区别; - 最后...
mod_expires&mod_headers可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。 在使用之前,首先要确认一下”mod_expires”模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的”httpd.conf”设定档来处理
首先我要说,开源托管,必须得 @红薯 家的。 上一次本人写过一篇博客《长URL转短连接的简单设计与实现》,由于写得比较仓促,是缺少设计的,因此方案也是不完整的,看到大家非常有热情,阅读的阅读收藏的收藏,我就深深的为写了这么不够深入的博客而感到不安,于是就有了这一篇博客,以及背后的开源代码。 确实,这次花费时间比较多,大概有大半天的时间设计并写代码。 需求 首先说明一下这次的主要关注点: 可以满足多种场景下的短链接生成需求 可以满足多重序列号机制 可以满足多种短链接生成方式 自由&可扩展性--秉承一贯的设计原则,觉得框架实现的好就用,觉得不满足就替换之 主要接口说明 字符串生成接口 package org.tinygroup.
* 随机字符串发生器
* Created by luoguo on .
public interface StringGenerator {
String generate(String url);
void setLength(int length);
} setLength用于指定生成的长度,generate用于生成对应长度的短链接字符串。 上片文章里面被人喷说生成逻辑不够好,这次好了,随便你写你喜欢的。 当然,为了满足懒人,也有一个默认的实现,大致就是把上次的算法挪下来了 /**
* 随机字符串发生器的默...
本人 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...
  上篇《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...
优秀应用算法都大量用到位运算,而位运算在工作中很少用到,所以借助其算法,我们看一下位运算的优势以及应用,但是大多数教材只会教大家二进制和十进制如何互换,都是死记硬背式的,并没有去讲解真正含义,换一个进制之后,依然不会,我们回到最根本的一些计数方法上,从10进制来推算,希望用一种更简单的方式介绍其原理
想使用微服务,却不知从何入手的同学或者有如下疑问的,可以看看这个项目实例。 参考我在解决如下问题的思路,这里只是简单的介绍,更多的内容靠源码表达了。有时间再单独就微服务的每一块写博客。
非常多的时候,我们不想在分享的时候采用长长的链接,主要的原因有: URL太长占显示空间、难于输入,转成二维码点点小,难于识别 长的URL提供的信息太多,不利于信息安全,甚至容易造成倒库 其他理由...... 今天的理由不是重点,重点是如何用一点点代码实现这个短链接的生成。 我们的注意点有: 生成的短链接地址长度可调整,毕竟不能因为4位、5位、6位的长度变化就让我们重新写一套程序 要有防冲突处理机制,不能因为算法导致两个长链接地址生成的短地址一样就把前一个覆盖掉 有时候,一个地址用过之后觉得不需要使用了,哪么这个地址失效之后,短地址可以有效收回。 首先设计接口 /**
* Created by luoguo on .
public interface UrlShortener {
* 设置产生短链接长度
* @param length
void setLength(int length);
* 返回短链接长度
int getLength();
* 返回指定地址对应的短链接
* @param url
String get(String url);
* 存储对应关系
* @param url
* @param shortUrl
前言 这个世界从来都不缺变革,从工业革命到晶体管和集成电路,从生活电器到物联网,从简陋人机到精致体验,我们在享受技术带来的便捷的同时,也在为复杂设计而带来的挑战和生产力下降而痛并快乐着。而迫切期盼的,就是趁手的工具。曾几何时,Visual Studio 一直就是软件开发的高效的标杆,从VB的简洁语法和简单的拖拽开始,Visual Studio 不断的完善,不断的适应快速变化的,加上成熟的生态,让微软世界里的各个伙伴们活的有滋有味。 近年来,微软开始了拥抱开源,投资云技术,在开发工具领域有明显的减持,这也让很多追随者感到不安。如今 Visual Studio 2017 的发布,给了开发者几点很明确的信号: 移动开发前景无限,解决方案多样化 跨平台服务器支持和服务器轻量化 开发过程标准化和开发效率持续提升 服务优于产品 作为微软工具的受益人,我们相信这是一个好的变化,有了变化,才有提升,才能提供更好的服务。
回顾 那么,在 Visual Studio 的20年发展历程中,都经历了哪些历程和技术变革呢?
根据微软的资料,第一个使用 Visual Studio 品牌销售的是 Visual Studio 97,后续版本(VS6)成为一代经典,即使今日依然还有企业和公司在使用;之后 Visual Studio 携...
一:工厂模式 工厂模式类似于现实生活中的工厂可以产生大量相似的商品的流水线,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。 简单的工厂模式可以理解为解决多个相似的问题;这也是它的优点;如下代码:
function CreatePerson(name) {
var obj = new Object();
obj.name =
obj.sayName = function(){
return this.
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);
console.log(typeof p2);
console.log(p1 instanceof Object); // true
如上代码:函数CreatePerson能接受一个参数name参数,可以无数次调用这个函数,每次返回都会包含一个属性和一个方法的对象。 工厂模式是为了解决多个类似对象声明的问题;也就是为了解决实列化对象产生重复的问题。 优点:能解决多个相似的问题。 缺...
万丈高楼平地起,学习任何东西我们都离不开扎实的基础知识。本编文章通过对Handler相关知识的全面回顾,给Android开发者重新夯实基础。
相信很多在linux平台工作的童鞋, 都很熟悉管道符 '|', 通过它, 我们能够很灵活的将几种不同的命令协同起来完成一件任务.就好像下面的命令: echo 123 | awk '{print $0+123}'
# 输出246 不过这次咱们不来说这些用法, 而是来探讨一些更加有意思的, 那就是 管道两边的数据流"实时性" 和 管道使用的小提示.
其实我们在利用管道的时候, 可能会不经意的去想, 我前一个命令的输出, 是全部处理完再通过管道传给第二个命令, 还是一边处理一边输出呢? 可能在大家是试验中或者工作经验中, 应该是左边的命令全部处理完再一次性交给右边的命令进行处理, 不光是大家, 我在最初接触管道时, 也曾有这么一个误会, 因为我们通过现象看到的就是这样.
但其实只要有简单了解过管道这工具, 应该都不难得出解释: 管道是两边是同时进行, 也就是说, 左边的命令输出到管道, 管道的右边将马上进行处理.
管道的定义 管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循...
长江后浪推前浪,如果你能花 30 分钟读完我 6 个小时翻译的内容,相信你不会被后浪拍死在沙滩上,对 2017 该学什么有个清晰的认识。
最近在搞一个直播项目需要聊天服务器,之前是以小打小闹来做的,并没有想太多就只有一台服务器。前几天一下子突然来了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 =&
好用!!!
实验:MySQL使用JDBC执行批处理性能测试
CheungSSH Web3.0 虽然不优秀,但衷心希望能给予支持和理解 项目地址:http://git.oschina.net/CheungSSH_OSC/CheungSSH 建议您使用git命令下载,因为文件比较大,如果用浏览器,和可能下载不完整 [root@CheungSSH ~]# git clone https://git.oschina.net/CheungSSH_OSC/CheungSSH.git 讨论QQ群:
在当今互联网的发展大势下,云计算和大数据已经成为主导。在两大趋势下,企业的服务器数量日益增多,如何有效的管理众多的服务器,已经成为了各大公司考虑的问题。在传统的人工管理模式下,已经很难做到高效的维护,是人管理服务器?还是服务器管理人?
为了解决这个问题,我痴迷于运维自动化研究,目前后端使用的Python语言+Django的Web框架,前端使用Bootstrap+Javascript+jQuery框架开发的CheungSSH Web3.0自动化运维系统,通信协议采用Linux系统自带的SSH协议,无Agent。并通过Paramiko库完成自动化登录,本系统可以基本满足日常的自动化运维需求。系统全程由我自主研发,不采用任何第三方工具和接口。
系统设计不足之处请各位朋友指出,也感谢大家的支持和信任,如果在使用过程中遇到任何问题,或者有任何的意见和建议...
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...

我要回帖

更多关于 http www.gyggzy.cn 的文章

 

随机推荐