
Web/WebService
文章平均质量分 87
猛禽
Python爱好者。这个人很菜,除了BUG,什么都没有留下。
展开
-
李维的 Demo 中可以改进的地方
李维这次的内地之行(见《感受李维》一文)可以说在 Borland 的用户掀起了一场风暴,在几个比较大的程序员论坛上,这是这几最热门的话题之一,我在 CSDN 上发了一贴关于他上海之行的文字,结果成为我发过的有史以来反响最强的一个贴子。 在这次 Borland 举办的 WebService 技术研讨会上,李维做了几个 Demo 来演示 Borland 的 WebService 解决方原创 2002-04-17 09:02:00 · 3316 阅读 · 1 评论 -
nginx log_format for webalizer
换了Nginx以后Webalizer不好使了,因为日志格式不对。放狗搜了一个所谓的标准log_format,用了几天基本正常,但还是缺少 kB In 和 kB Out。查了一下文档,补全如下:log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_b原创 2012-09-07 21:26:17 · 2762 阅读 · 0 评论 -
小测几种python web server的性能
因为换了nginx就不再使用mod_wsgi来跑web.py应用了,现在用的是gevent-wsgi,效果还不错。但还是想试试别的,比如传说中超级猛的meinheld什么的。软硬件环境硬件:一台04年初购置的IBM X235服务器,CPU为Xeon 2.4G两颗,内存1G,100M网卡。软件:Ubuntu Server 10.04 LTS Apache 2.2.14 Nginx 0.7.65 Py原创 2012-10-03 19:53:15 · 14599 阅读 · 0 评论 -
Backbone笔记之二(Model/Collection)
ModelView的部分基本上就是这样了,现在开始来谈Model。Model其实就是一条数据记录。只不过它不是一般的静态数据记录,它不但可以不限定数据结构,还可以自动与后端交互,甚至还可以绑定事件以实现相应View的自动更新。最简单的Model就是这样:var Foo = Backbone.Model.extend({});// 或是初始化默认数据var Foo = Backbone.Mode原创 2013-02-10 23:00:53 · 24098 阅读 · 1 评论 -
Backbone笔记之三(Controller与集成)
Router等等,这篇标题不是说要讲Controller的吗?好吧,据说这是Backbone 0.5以前的叫法,现在都0.9了,早就改名叫Router了。Router的花头不多,一个例子就可以说明完全。var AppRouter = Backbone.Router.extend({ routes: { "index" : "index", "task/:id原创 2013-03-03 00:19:47 · 7128 阅读 · 0 评论 -
Backbone笔记之一(View)
关于Backbone是什么,就不用我多介绍了,不知道的这货是什么的话请直接忽略本文吧。本文只是作为本人学习这货的一个笔记,顺大便给其他学习者参考一下。View首先从View部分开始,第一个程序注定是从hello world开始。在开始之前,先创建一个HTML文件,在其中引用这三个JS库(注意:underscore要在backbone前面):jquery.jsunderscore.jsbackb原创 2013-02-02 21:22:12 · 16670 阅读 · 2 评论 -
Backbone笔记之四(修正与补充)
修正感谢朋友令狐虫的指出,《Backbone笔记之一(View) 》的第一个例子里原来漏掉了 initialize 部分,导致view并不能正常显示(后面的例子里都有),可能是复制代码时搞错了。因为除了在initialize里调用render方法显示以外,还有一种方法是不需要initialize,而是在new出view对象以后调用render方法。目前原文已更新修正。补充也是令狐虫提出的问题:如何原创 2013-04-01 11:29:02 · 3282 阅读 · 0 评论 -
web.py应用工具库:webpyext
缘起在前面关于Backbone的文章里提到过要谈后端的,现在就来简单说说在那个离线客户端的后端实现中用到的一些东西。用了很长时间的web.py,之所以选择web.py,是走过很多弯路的。早年主要是一些重量级框架,接触过Django、TurboGears和Pylons相当长时间,尤其是TG1用了很久,具体在《SD2C之三种Python的Web框架 》里说过。后来还有一段时间用了web2py——因为它原创 2013-05-16 10:33:01 · 4866 阅读 · 1 评论 -
用Wordpress构建App更新和反馈平台(上)
需求在国内这种奇葩生态环境下,对于Android平台的移动应用,必备的功能之一就是要自带版本更新功能——这种事情本来用GooglePlay可以做得很好的……当然这事做起来也不麻烦,开发一个后端接口就是了,或者如我之前用过的方法:通过RSS实现。另外就是要提供一个用户反馈的渠道,以快速发现问题并加以改进,这个功能GooglePlay也有,但是在国内你懂的。至于国内那些应用市场,实在是太多太乱,管不过原创 2015-05-04 20:28:24 · 3578 阅读 · 1 评论 -
支付宝接口编码不规范问题
支付宝平台接口使用了不规范的方式,导致flask不能正常处理的问题解决。原创 2016-09-14 00:07:26 · 4671 阅读 · 0 评论 -
Let's HTTPS
有了Let's Encrypt和Nginx的SNI配置,让我们像用HTTP一样去用HTTPS吧原创 2016-11-28 21:24:38 · 3092 阅读 · 0 评论 -
把Apache换成Nginx笔记
其实想把Apache换成Nginx已经很多年了,只是一直懒得弄,也可能是因为上了年纪的关系,有点得过且过的意思。当然更主要的原因是没有压力,目前我的所有应用在Apache下都跑得挺好,对Apache的配置也比较熟悉。但是Nginx 10倍的性能优势始终在那里,这是一个挡不住的诱惑。上周与令狐和帮主小聚的时候顺手在手机的Ubuntu里装了个Nginx,但是Ubuntu 9.04带的那个版本实在太老了原创 2012-08-22 14:05:19 · 11170 阅读 · 0 评论 -
OAuth1.0实践之foursquare客户端同步到饭否
上回说完了《OAuth2.0实践之foursquare客户端登录》这回还是要回来说OAuth1.0。还是我写的那个foursquare的web客户端程序。其中加上了同步到饭否的功能,原来用的是BasicAuth,不过饭否宣布从今年元旦开始关闭BasicAuth,全面改用OAuth1.0。于是我又不得不赶在截止前几天把这部分程序改写了——还好不像上次那样完全重写,改起来还是很快的。不过其中因为OAu原创 2012-03-14 15:43:23 · 4195 阅读 · 2 评论 -
C++ Builder 6 进行 SOAP 开发(2) -- 通过 SOAP 传递自定义类型数据
C++ Builder 6 BizSnap/SOAP/WebService(2) -- 通过 SOAP 传递自定义类型数据 本文将做一个略复杂的例子,实现通过 SOAP 传递自定义的数据类型。本例子的功能是在服务端通过 dbExpress 的数据访问控件取得数据表内容,然后将其通过 SOAP 传递到客户端再显示。 服务端: 1.New|WebSe原创 2002-05-02 10:25:00 · 4782 阅读 · 0 评论 -
DELPHI6抢先研究:WebService/SOAP版的Hello world
SOAP 技术号称 Microsoft 之梦,也是 Borland 给 Delphi 6 定下的最大卖点, 可惜一直没能弄明白,虽然在6月14日的 DELPHI 6 上海发布会上见识过(见 《 Delphi 6 上海发布会》 ),但因为以前从未接触过,直到 DELPHI 6 即将推出前看了她的 New Feature 才知道有 SOAP 一说, 而且在6月14日之前还一直不知道所谓的 SOA原创 2001-10-20 01:46:00 · 5442 阅读 · 1 评论 -
DELPHI 6 抢先研究-- BizSnap/SOAP/WebService 之三 -- 用 SOAP 实现三层数据库应用
DELPHI 6 抢先研究-- BizSnap/SOAP/WebService 之三 -- 用 SOAP 实现三层数据库应用 在前面的例子(见 《DELPHI 6 抢先研究 -- BizSnap/SOAP/WebService 之一 -- 一个 Hello world! 的例子》 和《DELPHI 6 抢先研究-- BizSnap/SOAP/WebServi原创 2003-12-17 23:54:00 · 5851 阅读 · 1 评论 -
C++ Builder 6 进行 SOAP 开发(1) -- 一个 Hello world! 的例子
C++ Builder 6 BizSnap/SOAP/WebService(1) -- 一个 Hello world! 的例子 作为 Delphi 的兄弟, C++ Builder 在很多方面都跟 Delphi 是如出一辙,在 SOAP/WebService 方面当然也是大同小异了。关于用 Delphi 进行 SOAP/WebService 应用开发原创 2002-05-08 17:57:00 · 10644 阅读 · 0 评论 -
C++ Builder 6 BizSnap/SOAP/WebService(2) -- 通过 SOAP 传递自定义类型数据(改)
说明:本文经过一些改动,纠正了一些问题,因为原文无法修改,只好重发。不久前我收到几位朋友发来Mail说明他们在按照本文所述进行WebService应用开发时碰到的一个问题:在用ISAPI方式编写本文例子程序时发生AV错误。根据改进后的本例子程序修改了本文,请注意文中加粗部分内容。--2002-8-17 本文将做一个略复杂的例子,实现通过 SOAP 传递自定义的数据类型。本例子的原创 2002-08-19 16:31:00 · 5660 阅读 · 4 评论 -
DELPHI 6 抢先研究-- BizSnap/SOAP/WebService 之二
DELPHI 6 抢先研究-- BizSnap/SOAP/WebService 之二 -- 通过 SOAP 传递自定义类型数据 在前一个例子(见 《DELPHI 6 抢先研究 -- BizSnap/SOAP/WebService 之一 -- 一个 Hello world! 的例子》)中我们看到,通过 SOAP 可以很方便地进行远程对象调用,虽然那个例子用的对原创 2001-10-27 00:35:00 · 5034 阅读 · 0 评论 -
DELPHI 6 Update 2# 的 Bug 及其解决方法
DELPHI 6 Update 2# 的 Bug 及其解决方法 Borland发布了对 Delphi 6 意义重大的第二个补丁,在SOAP/Web Service开发方面有了很大的增强,详见《DELPHI 6.02 抢先研究 -- BizSnap/SOAP/WebService 之四 -- 补丁2#的意义》。不过有一个方面我在那篇文章里没有说到,那就是用 SOA原创 2002-04-24 09:23:00 · 5054 阅读 · 0 评论 -
Authentication和Authrization(上)
两个案例第一个案例是几个月前,我收到一位朋友的邮件,邀请我加入一个叫ShoppyBag的网站。我去看了,没想到注册后就让我登录GMail帐号,并且GMail提示我该网站需要访问我的通讯录,于是我当即就中断了注册过程。对于这类需要访问我的邮箱通讯录的网站我都是非常厌恶的,无数的垃圾邮件就是来自于它们。它们通过访问你的邮箱通讯录,然后向你的联系人们发邮件,然后迅速扩大了用户量可以向VC骗钱原创 2011-06-11 23:32:00 · 5483 阅读 · 0 评论 -
Authentication和Authrization(下)
说明:本来想多分几篇来写的,但似乎谈太具体的话,不适合放在这样一个标题下,所以这里先简单介绍一下,之后再视情况挑一些内容重点扯一扯OpenIDOpenID是一个开放的Authentication解决方案,关 于OpenID,我在06年的文章里已经谈过,不过那时谈的是最早版原创 2011-07-22 17:19:36 · 3926 阅读 · 1 评论 -
OAuth2.0实践之foursquare客户端登录
之前谈的两篇《Authentication和Authrization(上)、(下)》以空谈为主,算是一个开头,原文最后有说要一一整些实现出来的。那么现在就开始吧,不过介绍的顺序则先从相对简单的OAuth 2.0开始。foursquare 第一版的API是基于BasicAuth的,也就是基于HTTP Authentication的一种基本验证方式,这种方式的优点是非常简单,只要在HTTP Heade原创 2011-10-24 13:26:09 · 6123 阅读 · 3 评论 -
HTTPS配置全记录
常见的部署环境和条件有以下几种情况组合:Apache+自签名证书Apache+免费或商业证书Nginx+自签名证书Nginx+免费或商业证书免费证书和商业证书本质上是一样的原创 2017-03-18 22:06:49 · 22225 阅读 · 2 评论