除特别注明外,本站所有文章均为原创,转载请注明地址 在博主不长的工作经历中,NIO用的并不多,由于使用原生的Java NIO编程的复杂性,大多数时候我们会选择Netty,mina等开源框架,但理解NIO的原理就不重要了吗?恰恰相反,理解NIO底层机制是理解这一切的基础,由此我总结一下当初学习NIO时的笔记,以便后续复习. 以下是我理解的Java原生NIO开发大致流程: 上图大致描述的是服务端的NIO操作. 第一步,绑定一个服务的端口 这与传统阻塞IO中的ServerSocket类似,没什么好说的…
 浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从系统自带的播放器说起,一.我们可以直接播放视频,看到效果,不然搞了半天还播放不了视频,会让大家失去兴趣.二.其实对于很多需求来说,系统的播放器就能够胜任.简单介绍下 1.MPMoviePlayerController 在iOS中播放视频可以使用MPMoviePlayerController类来完成,…
浅谈|WEB 服务器 -- Caddy 2018年03月28日 12:38:00 yori_chen 阅读数:1490 标签: caddyserverwebhttps反向代理 更多 个人分类: server   Caddy Caddy服务器(或称Caddy Web)是一个开源的,使用 Go 编写,支持 HTTP/2 的 Web 服务端,说到Web 服务器,我们大多想到的是 Apache 和 Nginx,在拥有了强大的 Nginx 以后我们为什么还需要 Caddy? 官网:https://cadd…
本文中  N为点数,M为边数: EK: (brute_force) : 每次bfs暴力找到一条增广路,更新流量,代码如下 : 时间复杂度:O(NM²): #include<bits/stdc++.h> using namespace std; struct node{ int next,to,len; }edge[]; ],head[],vis[],]; ,cnt=; inline void add_edge(int u,int v,int len){ edge[++cnt].to=v; ed…
引言 今天我们来谈一下Android中布局优化常用的一些手段.官方给出了3种优化方案,分别是</include>.</viewstub>.</merge>标签,下面我们就来介绍这些标签. include标签 include标签能够重用布局文件,我们在开发中经常有一些布局是通用的,比如每一个页面的头部和尾部,我们可以将其分离到独立的文件中,然后在需要的界面使用include进行嵌入即可.下面我们通过一个示例来看一下include标签的使用.示例如下: <?xml v…
PPI 什么是PPI PPI的复杂之处在于如果他所属的上下文环境不同,意义也会完全不一样. 当我们在谈论显示设备的PPI时,它代指的屏幕的像素密度:当我们在谈论和图片相关时,我们谈论的是打印时的分辨率或者打印机的打印精度.这里我们主要描述的前一种情况. PPI全称为Pixel Per Inch,译为每英寸像素取值,更确切的说法应该是像素密度,也就是衡量单位物理面积内拥有像素值的情况. 如上图所示,在1英寸单位内面积内拥有的像素越多,密度越大,PPI值就越高.但像素密度的实际意义是什么?它表达的是…
转自http://www.ibm.com/developerworks/cn/linux/l-cn-networkdriver/ 网络设备介绍 网络设备是计算机体系结构中必不可少的一部分,处理器如果想与外界通信,通常都会选择网络设备作为通信接口.众所周知,在 OSI(Open Systems Interconnection,开放网际互连)中,网络被划分为七个层次,从下到上分别是物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.我们所讲的网络设备也包括两个层次,一层叫做 MAC(Medi…
本书是介绍怎么编写一个Web服务器,而Web服务器是基于HTTP(HyperText Transfer Protocol)协议实现的,所以要实现一个Web服务器就必须了解HTTP协议,本章主要介绍HTTP协议的相关知识,让我们对HTTP协议有个理性的认识.1.1 HTTP协议简介我们日常生活中经常会使用浏览器访问Web站点,但是大家有思考过在这个过程中到底发生了什么吗?为什么我们在浏览器地址栏上面输入要访问的URL后就可以访问到Web页面呢?浏览器与Web服务器使用HTTP协议进行通信,那么什么…
现在几乎每个it公司都在开发移动产品,我最早知道Android还是在09年成都某学院上大学的时候,从新闻上知道有这么一家公司,创始人安迪·鲁宾很有名,但安卓到底是做什么的,我并没有关注. 到2010年毕业的时候,Android已经发展到了2.2版本,百度了一下Android,知道了(应用)开发采用的是Java语言.我当时学过 C,C++,对java有些了解,从成都辗转来到北京,找到的工作正是开发一款Android应用(生活服务类).这时我有了一个HTC的安卓最新版手 机. 现在做Android移…
我个人认为前端攻城狮其实就是编程技术人员,用一句话来形容“比UI设计懂技术,比技术人员更懂交互”,当然也有人说前端工程师是工程师中的设计师,是设计师中的工程师. 好了废话不多说了,下面进入正题吧!  一.Web前端开发一般要掌握哪些技术和具备哪些条件? 会点设计,不要求精湛,处理,设计个小广告是要的: 精通HTML+CSS,并能快速处理各浏览器兼容问题:熟练掌握Javascript或Actionscript,精通加分:熟练使用JS框架,如jQuery/YUI等,并解读过源码,熟练多框架加分:精通…
前言:项目用到蓝牙开发,具体蓝牙获取硬件传感器中的数据. 因为没有蓝牙开发的相关经验,决定先了解一些蓝牙开发的知识,再去看之前同事写的蓝牙相关代码. --------------------------------------------------------------------------------------------------- 一.蓝牙开发相关类 1.BluetoothAdapter 显而易见,蓝牙适配器. 通过这个类我们进行以下操作: .开关蓝牙设备 .扫描蓝牙设备 .设置…
一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使   用WebService服务提供. 二.创建WebService 创建WebService之后,我们就可以在文件里写返回数据的方法了. 三.返回数据的四种形式 笔者水平有限,只列出这四种数据的返回形式: (1)直接返回DataSet对象 (2)返回DataSet对象用Binary序列化后的字节数组 (3)返回Dat…
因为项目中客户有一个的要求,所以这个Exchange前段时间搞的我很是头疼,没接触过这个东西,但是现在看来,纸老虎一个.希望我的经验可以帮助初次接触它的人少走一些弯路! 简单介绍一下:客户要求在自己的Exchange生产环境上创建一个传输规则,当用户邮件中包含有pdf类型的附件时,将这个附件下载到本地服务器,然后在加上可预览这个附件的链接(服务商提供的web应用程序而不是微软提供的的Office Web App Services). 环境:一台DC,一台Exchange Server 2013服…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查看方法. 一. 内核开发时LOG的使用.Android内核…
WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没有学校的正轨教育,大多数人都是靠本人自学成才.本文次要引见本人从事web开发以来(从大二至今)看过的书籍和本人的成长过程,目的是给想了解JavaScript或者是刚接触JavaScript的朋友,引见如何通过按部就班的看书来学习javascript. 一. 入门级 :就是有一定的基础(比如最常见的HTML标签及其属性.事件.方法;最常见的CSS属性;基础的JavaScript编程能力),能够完成一些简单的WEB前端需求. 推荐:<JavaS…
一.单元测试的定义与作用 单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性.一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验.单元测试使用单元测试框架编写,并要求单元测试可靠.可读并且可维护.只要产品代码不发生变化,单元测试的结果是稳定的.(百度的) 单元测试可以让你在软件开发的早期阶段发现 Bug,而不必到集成测试的时候才发…
1Web服务器和应用服务器简介 通俗的讲,Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods).确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic). 1.应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问. 2.应用服务器处理业务逻辑,web服务器是用于处理HTML文件的.web服…
枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值.枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色.方式.类别.状态等等数目有限.形式离散.表达又极为明确的量.Java从JDK5开始,引入了对枚举的支持. 在枚举出现之前,如果想要表示一组特定的离散值,往往使用一些常量.例如: package com.fhp.enumexample; public class Entity { public static final in…
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.FastDFS特别适合以文件为载体的在线服务,多图片.多视频的服务等等. 先普及一下在fastDFS的结构中的一些概念: 在fastDFS中,共分为三个部分:client.tracker Server.storage Server:→ 其中的client是用来对fastDFS发起操作的,如上传.下载:→ 其中的tracker Serv…
WebGIS是GIS与Internet相结合的产物,一般Internet的开发手段都可用于WEBGIS的开发,比较流行的有Javascript.FLash,到现在应该说市面上的WEBGIS产品和具有的功能都比较丰富.但也面临不少问题,我个人认为比较大的问题有几个方面:数据传输压力大.海量矢量数据支持.矢量数据快速渲染等.考察WEBGIS所遇到问题和现有技术方案,基于HTML5开发WEBGIS应该是最合适的解决办法.下面4个HTML5特性对WEBGIS开发最为重要: 1. 二进制数据(Native…
App混合开发(英文名:Hybrid App),是指在开发一款App产品的时候为了提高效率.节省成本即利用了原生的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用.目前App的开发主要包含三种方式:原生开发.HTML5开发和混合 开发. 原生应用开发,是在Android.IOS等移动平台上利用官方提供的开发语言.开发类库.开发工具进行App开发.比如android是利用java.eclipse.Android studio,IOS是利用Objective-C 和Xcode进行…
本文转载自:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查看方法. 一. 内核开发时LOG的使用.Android内核是基于Linux Kerne 2.36…
文章对Scrum敏捷开发流程进行系统的分析,希望借此文能够加深你对敏捷开发的认知,更好的展开产品工作. Scrum敏捷开发,是一种敏捷开发框架,是一个增量的.迭代的开发过程,具备可视.可集成和可运行使用的特征.与传统的瀑布式开发模式不同,它更倾向于对一个复杂系统的局部模块做短平快的版本迭代,快速响应预期的市场需求验证. 从图中可以看到,主要流程如下: 产品分析用户需求,按照商业价值依次排序估算,输出计划产品功能列表. 经过计划会议讨论,按照计划面板梳理功能列表,输出产品版本迭代任务. 进入开发迭…
前言 Nginx 是一个 免费的 , 开源的 , 高性能 的 HTTP 服务器和 反向代理 ,以及 IMAP / POP3代理服务器. Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名. Nginx 是一个 Web 服务器,也可以用作 反向代理 , 负载均衡器 和 HTTP 缓存 . 很多高知名度的网站都使用 Nginx ,如: Netflix , GitHub , SoundCloud , MaxCDN 等. 正文 1. Nginx的整体架构 1.1. 主进程 Ngin…
近期做SaaS应用的非常多,这样的模式是未来的一种趋势,这样的模式的最大优点就是云计算的优点--节约资源.网上有非常多人觉得SaaS非常easy,就是一个多用户租赁模式.这样的认识也不能说不正确.由于SaaS确实一般都採用多用户租赁模式.但这样的说法非常的不全面.是一种盲人摸象.并且非常多人觉得SaaS模式的架构非常easy,那就仅仅能说他没有真正做过SaaS模式或者他们做的SaaS应用是一种非常低级的模式,根本谈不上是云计算的范畴,就是一个把局域网的东西放到了公网而已. 作为一种云计算模型,一…
最近一直在做h5的项目,对h5开发有了自己的理解.首先h5开发并不是指的html5的开发,而是指无线端的web开发,至于为什么叫h5开发,我觉得一方面是因为html5近几年还是挺受关注,另一方面h5在无线端有比较好的支持. 大概从去年开始,好多人提出了pc已死的说法.其实比不是pc变弱了,反而是用户在不断增长.至于说pc已死,是因为无线实在是增长的太快了,就拿淘宝双十一的成交量来看,大部分的流量已经转向了无线.所以作为一名前端工程师,h5几乎已经成为必会技能. h5 vs pc 首先来对比一下h…
摘要 本篇文章围绕以下几个问题展开: 进程和线程的区别 何为并发?C++中如何解决并发问题?C++中多线程的基本操作 浅谈C++11中的多线程(一) - 唯有自己强大 - 博客园 (cnblogs.com) 同步互斥原理以及如何处理数据竞争 浅谈C++11中的多线程(二) - 唯有自己强大 - 博客园 (cnblogs.com) 条件变量和原子操作 Qt中的多线程应用 条件变量 一.何为条件变量 在前一篇文章浅谈C++11中的多线程(二) - 唯有自己强大 - 博客园 (cnblogs.com)…
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~). 由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人了. 说道架构设计和团队…
说到架构设计和团队协作,这个对App的开发还是比较重要的.即使作为一个专业的搬砖者,前提是你这砖搬完放在哪?不只是Code有框架,其他的东西都是有框架的,比如桥梁等等神马的~在这儿就不往外扯了.一个好的工程框架不进可以提高团队的协作效率,同时还可以减少代码的冗余度和耦合性,合理的分工与系统的架构设计是少不了的. 至于团队协作不仅仅是有SVN或者Git这些版本控制工具就行的,至于如何在iOS开发中使用SVN,请参考之前的博客(iOS开发之版本控制(SVN)).一个团队可以高效的工作,本人觉得交流是…
今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~). 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与…