BLOG
Enjoy when you can, and endure when you must.
初试Cisco Packet Tracer中的VoIP仿真
最近公司在组网,那对于我来说基本的计算机网络技术还是会的。不过正当这时突然向我提到一个VoIP的需求,这可给我当头一棒。虽然知道点原理,不过可还真没捣鼓过。赶紧查查资料吧,用Cisco Packet Tracer简单模拟一下。分享下过程,不得不说其中有一些东西我还不是很清楚,还需慢慢深入一下。 1. 什么是VoIP? VoIP(Voice over IP)是基于IP分组交换网络,通过对传统的模拟语音信号进行数字化、压缩、打包、封装成帧等一系列处理,使语音业务可以通过IP网进行承载。广义上讲,VoIP是指在数据网络上承载数据、语音、传真和图像等多媒体业务,而在狭义上即是指在IP...
利用head、tail和cat让文件管理变得更高效
本文转载并翻译自《Manage Files Effectively using head, tail and cat Commands in Linux》Linux中提供了多种命令和程序用于浏览文件。无论对于新手、普通用户、高级用户、开发人员还是管理员来说,与诸多文件打交道都是一项艰巨的任务。而如何做到高效更称得上是一门艺术。今天就让我们来探讨几个最常使用的命令head、tail和cat,多数人对他们都有所了解,但这其中绝大部分人在真正使用的时候恐怕就不知所措了。1. headhead命令用于获取一个文件的前10行内容。其基本的语法格式如下:head [options]&nbs...
APR 08, 2014/Python
multipart/form-data格式的POST实体封装与提交
在Python中,我们通常使用urllib2中提供的工具来完成HTTP请求,例如向服务器POST数据。通常情况下,所有的数据都会进行URL编码并将Content-Type设置为application/x-www-form-urlencoded。不过在一些特殊的情况下(例如服务器限制而不允许使用这种类型的数据提交)或者上传文件的时候,则需要用到multipart/form-data格式的POST提交。这种时候,我们可以手动对数据进行封装,如下面的代码所做的操作:def encode_multipart_formdata(fields, files):  &n...
APR 04, 2014/编程相关
OAuth2:客户端证书授权(Client Credentials)类型的开放授权
适应范围 认证服务器不提供像用户数据这样的重要资源,仅仅是有限的只读资源或者一些开放的API。例如使用了第三方的静态文件服务,如Google Storage或Amazon S3。这样,你的应用需要通过外部API调用并以应用本身而不是单个用户的身份来读取或修改这些资源。这样的场景就很适合使用客户端证书授权。 流程剖析 1. 用客户端证书交换访问令牌 应用程序需要向认证服务器申请访问令牌,而该请求则需要客户端证书进行认证。 假设现在我们正在折腾facebook,其认证URL为: https://graph.facebook.com/oauth/ac...
APR 02, 2014/编程相关
OAuth2:客户端验证授权(Resource Owner Password)类型的开放授权
适用范围 这种模式会直接将用户密码暴露给应用程序,因此应谨慎使用。一般说来,只有信任度极高的客户才应授权使用该模式,如官方移动应用、操作系统或高权限程序。 流程剖析 为了阐述该授权类型的认证过程,我们以Salesforce中基于REST的API为例进行说明。 1. 向用户索要认证信息 首先,我们必须得让用户将认证信息提供给应用程序。对于Salesforce来说,如果用户处于不可信的网络中时,除了需要输入用户名和密码外,还需要用户提供一个安全令牌作为用户的第三个输入。 2. 交换访问令牌 这里的访问令牌交换过程与授权码类型的验证授权(aut...
从15则实例细看useradd
本文转载并翻译自《The Complete Guide to “useradd” Command in Linux – 15 Practical Examples》Linux中的“useradd”或“adduser”命令可谓是家喻户晓。因为总有些时候,系统管理员会要求创建一个新的用户并赋予特定的权限。“useradd”命令是用于在Linux或UNIX中添加/创建用户。“adduser”和“useradd”实际上是一样的,它不过是指向“useradd”的符号链接。在一些其他的Linux发行版中,“useradd”可能具有一些差异。因此我建议在使用该命令来创建用户前应仔细阅读文档。当在终端下...
MAR 31, 2014/编程相关
OAuth2:隐式授权(Implicit Grant)类型的开放授权
适用范围 仅需临时访问的场景 用户会定期在API提供者那里进行登录 OAuth客户端运行在浏览器中(Javascript、Flash等) 浏览器绝对可信,因为该类型可能会将访问令牌泄露给恶意用户或应用程序 流程剖析 1. 让用户明白所做的操作并请求认证 这一步与授权码认证模式中的操作类似,即当牵涉到OAuth认证时,应首先让用户明确该操作。然后将用户引导至授权页面。 该授权接口的URL会在开发者文档中给出,以谷歌为例: https://accounts.google.com/o/oauth2/auth 在请求该页面时还需附带...
MAR 30, 2014/编程相关
OAuth2:授权码(Authorization Code)类型的开放授权
适用范围 需要得到长期授权 OAuth客户端是Web应用服务器 OAuth访问令牌不宜泄露给用户的环境 流程剖析 1. 让用户明白所做的操作并请求认证 当牵涉到OAuth认证时,首先应最好能更进一步的让用户知道该操作到底会发生什么。在用户确认之后,这时应用应将用户引导至OAuth认证页面。在该页面中,API提供者会向用户说明应用会授权访问用户数据。 该授权接口的URL会在开发者文档中给出,以谷歌为例: https://accounts.google.com/o/oauth2/auth 在请求该页面时还需附带几个参数: c...
MAR 28, 2014/编程相关
OAuth2:Authorization Flows
OAuth2.0协议定义了用于获得授权的四种主要授权类型。Authorization code标准的Server授权模式,非常适合Server端的Web应用。一旦资源的拥有者授权访问他们的数据之后,他们将会被重定向到Web应用并在URL的查询参数中附带一个授权码(code)。在客户端里,该code用于请求访问令牌(access_token)。并且该令牌交换的过程是两个服务端之前完成的,防止其他人甚至是资源拥有者本人得到该令牌。另外,在该授权模式下可以通过refresh_token来刷新令牌以延长访问授权时间。Implicit Grant该模式是所有授权模式中最简单的一种,并为运行于浏览器...
Git Push操作常见错误的解决方法
最近在使用Git时还是遇到了几个问题,而且均是缓存设置引起的,在此记录一下解决方案。 1. 411错误: 这是本地git配置引起的,上传的数据超过了配置中缓存大小的设定。使用git bush修改http.postBuffer的设定: git config http.postBuffer 524288000 这里的“524288000“以字节为单位,即这里对应512M。 2. 413错误: 411是本地缓存限制引起的错误,那413则是因为远程服务器缓存限制引起的错误。因为我是自己配置的Git服务器...
<< < 6 7 8 9 10 > >>