‘其他技术’ 分类的存档

3 条评论Linode && SAE 开发者 站长 geek必备[2]

2011年11月4日

在上一篇文章给大家介绍了Linode

点此查看 http://www.iamued.com/other/2021.html

这次给大家带来的是SAE(Sina App Engine)平台的介绍

你现在访问我的blog其实就是搭建在SAE平台上面的~

为什么现在才介绍SAE不是已经出很久了么?

你说得对,不过SAE在两周年之际 升级了很多东西,应该在第一时间传达给大家

SAE是什么?

SAE是基于云计算技术实现的应用开发和运行平台

目前SAE稳定支持PHP语言 编写的Web应用程序、Python for sae 已经在内测,同时支持多个python框架(Djanjo、Flask、Bottle)等

Python for sea帮助文档:http://appstack.sinaapp.com/static/doc/release/testing/index.html

为什么选择SAE?

其实SAE与GAE(http://code.google.com/appengine/)有很大的相似度

很不幸的是GAE 在国内是无法访问的

国内的同类平台有阿里云的(ACE)、百度的(BAE)

相比之下 SAE已经相对稳定 且免费注册立即开通使用 非常的方便

SAE的服务优势?

1.基于云的架构 分布式 保障系统稳定、性能高效 不因单点故障导致应用down机

2.相关服务

SAE目前已经提供了十多种服务,整体上分为计算型和存储型,计算型又包括同步计算和异步计算,而存储型则分为持久化存储和非持久化存储。具体列表如下:

服务名称 类型 说明
HTTP+PHP 同步计算 带SAE沙盒的Apache和Zend为用户提供Web计算服务
Storage 持久化存储 提供分布式文件存储
Memcache 非持久化存储 提供分布式缓存服务
RDC 持久化存储 分布式数据库集群,提供MySQL服务
TaskQueue 异步计算 异步离线轻量级任务队列,HTTP方式调用
DeferredJob 异步计算 异步离线重量级任务队列,系统方式调用
Counter 持久化存储 计数器服务
RankDB 持久化存储 分布式排行榜服务
KVDB 持久化存储 分布式key/value存储服务
Cron 异步计算 分布式定时服务
FetchURL 同步计算 分布式抓取服务
TmpFS 非持久化存储 提供临时文件存储,文件生命周期在一个会话内,Http请求结束文件自动消失
AppConfig 提供应用配置功能,取代Apache htaccess
Mail 异步计算 邮件发送服务
Image 同步计算 图像处理服务
XHProf 同步计算 Facebook提供的强大的PHP调优工具
SVN 持久存储 用户代码部署的入口点:https://svn.sianapp.com/yourapp
Online CodeEditor 持久存储 在线代码编辑器,编辑的代码保存后入自动入SVN并部署到Web服务器

SAE如何使用?费用贵吗?

其实本文的标题已经提到了,开发者、站长、Geek必备,大家其实非常关心成本的问题

SAE的收费模式是按使用量进行计费,也就是使用多少收费多少,目前SAE有身份认证活动

身份认证成功直接赠送2000云豆、在此申请开发者认证 可以获得应用的推荐及每月高额的云豆奖励

如果你只是想尝试一下 免费赠送的云豆基本就够用了
如果你申请了开发者认证 我相信 跑一个日UV2千的网站也应该足够了 如果你不超过配额的话、也可以理解为是免费的云服务

ok~希望我的使用感受能够帮助你~如果还没有sae帐号,还等什么?立即去注册吧

也欢迎朋友们与我沟通讨论使用经验和问题

免费注册立即开通使用

http://sae.sina.com.cn/

分类: php, Python 标签: , , , ,

没有评论Linode && SAE 开发者 站长 geek必备[1]

2011年11月4日

其实之前一直没怎么研究这些东西,但是GFW太强大了啊 搞得也没办法

不过在这个个人开发者的时代,很多东西还是有必要的,所以今天给大家推荐两个近期折腾比较多的东西~

Linode

先介绍一下vps是什么?

VPS = Virtual Private Server,虚拟专用服务器。VPS提供商把一台物理主机划分为多台虚拟服务器,每一台都有独立的内存,CPU,硬盘等,使用上和完整的一台服务器没有什么差别。

有什么用?为什么我需要?

  • GFW?VPS是一台你完全独享的主机,利用它你可以翻越GFW。常见的方式有ssh和VPN,通常也需要独立购买 并且不便宜,使用VPS你可以完全自己搭建。每台VPS都有独立的ip 及相对独享的带宽和流量。
  • DIY?如果你是一名开发者,如果你热爱编程或者喜欢互联网事物,你可以使用VPS经营自己的独立博客,搭建自己的应用,搭建自己的代码仓库,代理自己的网站等等,比如你在用GAE就可以通过nginx进行反响代理让国内用户可以顺畅访问
  • 价格!Linode的VPS有多种配置,最便宜一款$19.95。年付打9折。所有VPS配置列表可以在Linode首页找到。单纯从价格来看也许你会觉得小贵,但作为开发者、站长、geek的你能够通过每月19.95美元解决你的大部分问题,我相信也很值得了

linode的优势?

  • 机房选择余地大。一共6个机房(包括最新的tokyo机房),都在国外。目前我选择在东京的机房离国内近一些。
  • 速度。Linode官方专门建立了一个速度测试页面。每个机房都提供相同的100MB大小的测试文件以供下载。用浏览器测试,对于国内用户来说是日本的Tokyo机房最快。你可以在Linode Facilities Speedtest页面自己尝试一下。
  • 服务。Linode的服务支持向来口碑非常好,遇到问题提一个ticket,一般在数十分钟内就可以回复解决。

如果你觉得本文对你有帮助,心动了 可以使用我的推荐码购买
http://www.linode.com/?r=cc06b1729093a6ad51ac9f6601c5f42fe875581b

cc06b1729093a6ad51ac9f6601c5f42fe875581b

ok~如果你有相关lindoe的使用经验和问题可以和我一起讨论分享~

Linode && SAE 开发者 站长 geek必备[2]-SAE

8 条评论本博客已经正式部署到SAE平台-相关步骤和注意事项

2011年10月24日

之前在SAE平台只是放一些临时的小工具,感觉还是满方便的

自己虽然有vps,但联路总不如国内好,陆续的SAE的服务也越来越完善及稳定、就考虑整体转移过去的事情了

最近看到Wordpress for SAE已经上线,就在考虑将博客转移过去

其实最担心的是域名绑定,谁知道比想像中的顺利的多,发过去申请表8分钟就得到了回复 “绑定成功”

当然域名必须有备案号才可以

数据转移和其它相关设置的同步是在绑定域名前就做好的,其实也不难,大概分为四个部分

给想把blog转移到sae的朋友们作为参考吧

对了,还没有注册使用过sae的朋友可以通过以下链接注册,可以获得免费云豆
http://sae.sina.com.cn/activity/invite/8168/msn 

首先将wordpress for sae 通过应用向导安装好

1.Mysql数据转移

先从现有的数据库中导出.sql文件 然后压缩成zip,直接通过SAE的DeferredJob来操作数据导入即可

要注意的是DeferredJob是需要等到系统空闲时才会运行的,所以可能需要稍等一会儿,执行成功后会在结果查询中看到



2.相关插件、皮肤转移

这部分需要通过SVN来commint到代码目录,这里不再详细阐述

3.附件的转移

SAE的上传文件是通过Storage来进行存储的,Wordpress for SAE其实已经修改了相关上传代码,上传的文件会直接存储到Storage,但之前的文件怎么办呢

分为两步

第一步,将原有数据wp-contents/uploads的文件 全部上传到Storage

第二步,通过PhpMyadmin执行sql将原有wp_posts表中的contents数据内的原有附件路径进行替换为新的Storage存储路径

参考SQL如下

update `wp_posts` set post_content=replace(post_content,’www.iamued.com/wp-content/uploads’,’http://iamued-wordpress.stor.sinaapp.com/uploads’)

4.将博客的站点路径和固定链接设置 进行域名解析即可

站点路径,固顶链接,都在wp后台内设置菜单里设置即可,最后把域名cname指向到sae就ok了~

 

刚刚切换到sae具体的性能和稳定性还有待考查,不过相信比一般的廉价idc应该好很多了

对了,还没有注册使用过sae的朋友可以通过以下链接注册,可以获得免费云豆
http://sae.sina.com.cn/activity/invite/8168/msn 

各位朋友如果有不懂得可以给我留言,很愿意与大家交流沟通

分类: php 标签: , , ,

3 条评论[原创]通过shtml实现重构页面模块化构建—实现交付物模块化

2011年10月19日

模块化思想已经不再是创新,陆续的演变成一种思维模式,在处理各种问题时都会考虑模块化思想

前端重构也已经有各种模块化的思想出现,结构模块化、样式模块化等等

今天和同事沟通视觉统一化的时候,发现流程中在产出物方面存在一个问题
如下图所示:

大家按照统一的思维过程在执行时 产出物在页面构建的环节,形成了一个聚合,从以UI组件为单位变为了以page为单位的产出物,而之后到了后端研发时,其实Template还是需要再次分拆,由于这个问题,而产生了更大的沟通成本,降低了整个团队的效率

基于这个问题 我提出了一个解决方法 还算不上解决方案,短暂的解决一下

在页面构建的环境 通过webserver的SSI Include指令 将静态页面也进行模块化,在交付产出物的时候后端研发人员是很清晰的看到module的复用代码,也降低了重构页面时对于统一的ui而产生不同html和css代码的错误率

具体实现如下:

在开发(测试环境)  建立webserver(nginx、apache均可) 然后通过配置文件开启SSI支持

Apache 开启SSI方式 http://www.uplinux.com/download/doc/apache/ApacheManual/howto/ssi.html

要使服务器允许SSI,必须在httpd.conf文件或.htaccess文件中有如下配置:

Options +Includes

告诉服务器以允许解析文件中的SSI指令。注意,在多数配置中,多个Options指令会互相覆盖,所以,可能必须对需要SSI的特定目录使用Options,以确保位于最后并起作用。

并不是所有文件中的SSI指令都会被解析,所以,必须告诉Apache应该解析哪些文件。有两种方法,使Apache解析带有特定文件后缀的任何文件,比如.shtml, 配置如下:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

在 Nginx 开启 SSI ,加入以下3行就OK了,可以放在 http, server, 和 location 段都行

ssi on;
ssi_silent_errors on;
ssi_types text/shtml;

SSI Include 指令语法,我们主要用这个语法来调用相关组件文件代码

<!–#include virtual=”文件路径” –>

在构建页面时 目录结构可以是

demoproject/ 项目文件夹
|-- aboutus.shtml  综合性页面 包含module调用
|-- index.shtml    综合性页面 包含module调用
|-- other_page.shtml 综合性页面 包含module调用
|-- module  组件文件夹
|   |-- footer.html  组件文件
|   |-- header.html  组件文件
|   `-- other_module.html 组件文件
|-- images 其他静态文件
|-- js 其他静态文件
`-- style 其他静态文件

这样 我们形成的综合性页面的代码中会包含module调用,在我们每次对通用组建修改时,只需要修改组建文件即可
如下图,因为我们之前在webserver配置了SSI支持,所以我们能够实时预览效果

这样,除了在开发时方便了我们自己,我们的交付物也能够体现模块化思想,方便后端人员处理templates

 

同时我也用python写了一个开源项目,方便使用shtml这种方式构建页面的同事 产出传统html交付物

shtml2html项目

介绍:替换shtml中include内容为真实调用内容 并在同级目录生成.html文件 给重构团队在构建页面时使用

使用方法:

必须安装python环境 2.x版本
Usage: python shtml2html.py path 支持文件和目录(递归处理)

这是我目前的解决方法,正在试行中,小团队还没那么智能化,希望能给大家提供一些思路

如果你有更好的解决方案也请告诉我,多交流

没有评论DiffNow-在线代码对比 可高亮

2011年10月18日

一个在线的代码对比工具,支持输入代码、文件上传、基于url的对比

同时支持多种语言的代码高亮

http://www.diffnow.com/