SAE代码部署新增SVN方式,部署代码更简单方便

一、概述

  SAE自2011-7-10日起,将全面支持SVN代码部署,用户不仅可以通过任何SVN客户端部署代码,而且SAE现有的代码部署方式也已经对接应用的SVN仓库,即使不使用SVN客户端部署代码,也保证了代码版本。
  如:通过桌面SDK或在线SDK代码编辑器(http://sdk.tools.sinaapp.com)等方式对代码的修改、部署等操作 也会像svn commit一样,产生一个新版本。通过SVN客户端svn update可以获取最近的更新,也可以通过svn客户端回滚代码。
 

    SVN仓库地址:  https://svn.sinaapp.com/your_app_name    (您可以通过直接访问)

    SVN用户名:  SAE安全邮箱    

    SVN密码:  SAE安全密码

    注:SVN用户名和密码为安全邮箱和安全密码,不是微博账号和微博密码!

 
 

SAE代码部署分为三步:
  登陆SAE在线管理平台,“创建新应用”(http://sae.sina.com.cn/?m=myapp&a=create)时,如果创建成功,系统会自动为该应用创建一个SVN仓库。假设新创建的应用名为newapp,那么仓库地址为:
  https://svn.sinaapp.com/newapp/
  此时,可以通过本地SVN客户端检出(checkout)该应用的本地工作目录。
 
  SAE提供了不同的代码部署方式,可以分为两类:
  一是通过SVN客户端部署,这是SAE推荐的代码部署方法,使用方法参见:http://sae.sina.com.cn/?m=devcenter&catId=33&content_id=128
 
  另一个是通过非SVN客户端部署,即SAE之前提供的代码部署方式,如桌面SDK(winodws, linux)、在线SDK(即代码在线编辑器)和推荐应用安装。
  这两类代码部署方法都会更新应用的SVN仓库版本,但必须注意的是非SVN客户端部署方式无法提供版本管理功能,只能看到最新版本的代码,也无法回滚代码。
  因此,强烈建议仅使用SVN客户端方式部署代码,如果同时使用非SVN客户端方式部署,为避免代码版本冲突,请及时在本地SVN工作目录下执行svn update操作,保证本地工作目录与线上代码保持一致。
 
  代码更新后,通过svn update或直接通过浏览器访问应用查看代码是否已经更新到线上。

【转】已经拿到Delphi Delphi Pulsar beta7 内测版 64位!ios开发全部支持!非常猛料

各位,我已经拿到Delphi下一个版本,代号Pulsar的测试版,刚才安装完毕 

目前最新版本是Delphi / C++Builder Beta Seven Build 16.0.4203.41037 昨晚才出现在服务器的

现在可以郑重地告诉大家:

1 完成度已经很高,启动界面很搞笑,进入后界面和XE几乎一样,完全支持64位,XE几乎所有控件在64位下都能用 当你写好程序,打开任务管理器时,那个该死的*32已经没了, 显然就是64位的!! C++族别再拿64位说事了,想原生,弄你们的MFC,VS去,又或者是realbasic,o(︶︿︶)o ,我也知道你们的痛苦~~

2 更厉害的是,支持ios程序开发,而且是直接在windows 7里面就能调试,不需要mac或者小白小黑,在新建project时,发现已经多出FireMonkey 2D,3D ios Application的选项,选择后,写ios程序基本上就和写普通delphi程序一样,也是拖拉控件,敲代码,我写了几个小程序,代码完全一样,不用改!! 编译速度依然一流~~~~

什么??你问我iso程序是不是64位的? 我一看,是32的。这个重要吗??? 嘻嘻

C++ builder们请做好心理准备

以上两点C B都没有,至少目前的测试版还不支持。我不是内部人士,不知道正式版会不会有。但是目前的版本是支持创建FireMonkey 2D,3D 程序的(没有ios选项)

Delphi玩家们能回帖告诉我你们有多兴奋吗????幸福的感觉有木有有木有!!!

不回帖我不发图片!!回帖不够不考虑泄漏给大家玩玩(需要高手帮忙破解,激活方式和XE一样,要有Key)

其实现在没图片是因为我刚出来工作,出租屋6MB拉了10条线,下载还好,上传图片都发不出去,压缩了也不行

但是明天傍晚前我一定发出图片,谁赞助我2块网费去网吧??

请大家顺便说说自己的感受吧,大家觉得Delphi还会火起来吗?

 

http://topic.csdn.net/u/20110708/14/570b94c5-8ed8-47cc-a59c-a7e419e2792f.html?73824


【转】查看httpd进程数 请求数

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):

Linux命令:

     ps -ef | grep httpd | wc -l

查看Apache的并发请求数及其TCP连接状态:

Linux命令:

     netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

说明:  
   SYN_RECV表示正在等待处理的请求数;
    ESTABLISHED表示正常数据传输状态;
   TIME_WAIT表示处理完毕,等待超时结束的请求数。

netstat -nat|grep -i “80″|wc -l命令
#netstat -nat|grep -i “80″|wc -l
4341
netstat -an会打印系统当前网络链接状态,而grep -i “80″是用来提取与80端口有关的连接的, wc -l进行连接数统计。
最终返回的数字就是当前所有80端口的请求总数。

netstat -na|grep ESTABLISHED|wc -l命令
#netstat -na|grep ESTABLISHED|wc -l
376
netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。
最终返回的数字就是当前所有80端口的已建立连接的总数。


【转】512M VPS 性能和内存优化

最近廉价的VPS有越来越流行的趋势,但是很多廉价的VPS很多只有512M,甚至更少的内存,而Apache和MySQL这些建站必备的软件,又偏偏都是内存消耗大户,所以如何优化本来就不多的内存空间,就显得额外重要了。

注:本文是抓抓自己的经验之谈,没有什么权威性,欢迎理性的讨论和评价,拒绝出现诸如Nginx比Apache牛X很多之类的口水仗,谢谢。

虽然抓抓最喜欢和最熟悉的Linux发行版是Gentoo,但是通常在使用VPS时,我还是会安装主流的CentOS 5 32Bit版本。选择CentOS是因为CentOS是从Redhat演变而来,所以对大多数服务器软件的兼容性还算不错,比如Kloxo就可以在CentOS下面进行简易的一键安装,等等。而32Bit是因为可以避免使用64Bit的发行版而造成的诸多稀奇古怪的问题,相当稳定而且性能几乎没有什么差别,并且因为内存不超过4G而无需用到64Bit的寻址。

好了,言归正传。对于低端的VPS来说,因为内存本来就不是非常充足,所以如果你对Linux服务器平台的架设非常熟悉的话,完全可以不用什么控制面板;如果是一个初学者,出于方便的考虑,可以安装轻型的Kloxo控制面板,功能强大,内存占用少(大约4M~8M),除了功能排版有些混乱之外,其他该有的功能都有,不该有的功能也有,非常实用。

在优化Apache/MySQL之前,首先可以关掉一些不必要的后台守护进程,比如ClamAV(一个杀毒软件),你可以运行chkconfig –list查看哪些后台守护进程是不必要的,当然很多东西取决于你的具体应用。比如如果你不是经常登陆Kloxo,可以把Kloxo关闭;如果不发邮件,可以关闭QMail,等等。如果碰到一些自己不熟悉的进程,千万别忙着下手,先去Google一下,以免出现其他预料之外的问题。关闭自动启动可以使用chkconfig 守护进程名 off,但是内存中已经运行的守护进程不会被关闭,需要运行service 守护进程名 stop进行关闭。

接下来是Apache的优化。这个东西在VPS高效运行的时候,会占去至少一半以上的内存。通过修改/etc/httpd/conf/httpd.conf配置文件,用户可以进行内存占用和服务性能之间的微调以达到一个平衡的状态。

httpd.conf里面的几个关乎内存占用和性能的价格重要参数如下(仅用于常见的Apache Prefork模式):
StartServers Apache启动时创建的子进程数量
MinSpareServers 最小空闲子进程数量
MaxSpareServers 最大空闲子进程数量
ServerLimit (此参数只要不比MaxClients小就可以了)
MaxClients 最大同时能够处理的请求数
MaxRequestsPerChild 每个子进程处理多少请求之后自动结束,并且释放内存
KeepAlive 是否保持连接
MaxKeepAliveRequests 并发保持连接的最大数量
KeepAliveTimeout 保持连接超时设置

在Prefork工作模式下,Apache在启动之后会先创建StartServers设置的子进程数量,然后每隔一秒以指数形式(2^)创建更多的子进程,直到子进程的总数达到MinSpareServers设置的数量为止。在Prefork模式下面,Apache无需等到连接请求时才生成新的子进程,所以在响应速度上会有更好的性能。同时MaxSpareServers参数规定了Apache最多能够存在的空闲进程数量,在空闲进程数量超过MaxSpareServers设置后,Apache会自动关闭部分空闲进程,以避免过多的空闲进程占用大量的内存。所以将MinSpareServers和MaxSpareServers的参数改小,会减少VPS内存的占用,但同时也会降低VPS的性能。但是对于只有512M内存的低端VPS来说,服务器的稳定性远比性能更为重要,性能再好,打不开网站也是白搭。

MaxClients参数是对性能和内存占用影响最大的参数,直接关系到并发访问的数量,超过MaxClients设置的额外连接请求,需要等待现有连接断开之后,才能进行正常的连接。所以MaxClients如果设置的太小,会造成长时间的等待,进而会严重影响访问者的心情;但是如果设置的太大,在有大量并发访问的情况下,Apache会很快用光所有的VPS内存,导致VPS宕机。所以MaxClients参数需要进行仔细的计算。对于一台512M的VPS来说,通常CentOS启动后,加上Kloxo和MySQL,会占用大约80~100M的内存,所以能够供apache使用的内存不能超过400M。而通过top命令,可以看到一般一个httpd进程会占用大约4M的内存(在Prefork模式下面),所以在这样的情况下,MaxClients的设置不宜超过150。150个并发连接,对于普通的网站来说,已经是足够了,如果你的网站访问量非常之大,那么,直接入手高端服务器即可。

MaxRequestsPerChild参数同样会影响性能和内存。影响性能的地方在于,如果将MaxRequestsPerChild的值设置的太小,那么Apache需要不停的创建新的子进程来替代因为请求数达到限额的旧进程,而结束旧进程和创建新进程都需要消耗CPU时间,所以大量的结束、创建动作会让一个VPS消耗不少的CPU,而通常一个VPS的CPU也是有限制的,所以过多的CPU消耗会明显影响VPS的性能;反过来说,如果MaxRequestsPerChild设置成太大,或者干脆设置成0(不限制),那么如果在进程寿命结束前,碰到内存溢出之类的错误,VPS也会很快因内存消耗完毕而宕机。

KeepAlive参数,是否保持链接,通常设置成On(打开)会提高性能,但是同时将KeepAliveTimeout超时设置的小一点,比如5s,会让整个VPS显的更有效率。因为当KeepAliveTimeout设置的过大的时候,一个子进程在超时之前将无法服务更多的用户,这样势必Apache需要打开更多的进程,进行会消耗本来就不充裕的VPS内存。

附抓抓的512M VPS的httpd.conf相关参数供参考:
StartServers 5
MinSpareServers 5
MaxSpareServers 20
ServerLimit 128
MaxClients 128
MaxRequestsPerChild 1000
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 5

在设置完参数之后,还需要精简一部分的模块(LoadModule)以减少不必要的内存占用。根据俺目前在用的经验,除了下面这些模块,其他都不是必须的:
mod_authz_host.so
mod_log_config.so
mod_expires.so
mod_deflate.so
mod_headers.so
mod_setenvif.so
mod_mime.so
mod_autoindex.so
mod_negotiation.so
mod_dir.so
mod_alias.so
mod_rewrite.so
mod_proxy.so(网上其他人的经验是可以不加载这个模块,不过抓抓试过启动apache会出错。。。)

保存httpd.conf,重启Apache即可生效。

在优化完Apache之后,还需要进行MySQL的优化,主要是修改/etc/my.cnf来达到降低MySQL内存占用的目的。

在/etc/my.cnf的[mysqld]段里面添加:
skip-locking
skip-bdb
skip-innodb

同样,保存后重启MySQL生效。


【转】查看httpd进程数 请求数

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):

Linux命令:
     ps -ef | grep httpd | wc -l

查看Apache的并发请求数及其TCP连接状态:

Linux命令:
     netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

说明:  
   SYN_RECV表示正在等待处理的请求数;
    ESTABLISHED表示正常数据传输状态;
   TIME_WAIT表示处理完毕,等待超时结束的请求数。

netstat -nat|grep -i “80″|wc -l命令
#netstat -nat|grep -i “80″|wc -l
4341
netstat -an会打印系统当前网络链接状态,而grep -i “80″是用来提取与80端口有关的连接的, wc -l进行连接数统计。
最终返回的数字就是当前所有80端口的请求总数。

netstat -na|grep ESTABLISHED|wc -l命令
#netstat -na|grep ESTABLISHED|wc -l
376
netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。
最终返回的数字就是当前所有80端口的已建立连接的总数。


WxWidgets编译脚本

@echo off
cd buildmsw
title 编译wxWidgets
echo 开始编译
echo ---------------------------------------------------------------------
echo 编译发行版本
mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=0 UNICODE=1
echo 编译调试版本
mingw32-make -f makefile.gcc BUILD=debug SHARED=1 MONOLITHIC=0 UNICODE=1
echo ---------------------------------------------------------------------
echo 编译结束
pause


Kylix 3在Red Hat AS 3.0上的安装和使用

一、序
   记得几天前从一个叫做www.rescn.net的网站上下载了一个破解的Kylix3,于是就安装到机房的一台名字叫做ibm7的机器上(内位说了: 有什么特别的吗?没什么特别,之因为这台机器的位置和空调离的比较远。)这是一台IBM IntelliStation M Pro 6230型号的高性能PC,比我自己的杂牌机强多了,可惜这是企业的,上面跑的也是我亲手安装的Red Hat Enterprise Linux AS 3.0。而这个Kylix呢,是一个iso格式的文件,已经制成了光盘,这就很好安装了;还可以用winimage解压,保存到硬盘上(如C盘),然后在 linux中挂盘安装。
  于是我在一个这个没有睡午觉的下午把它安上了,并成功编译和发布了。

  二、安装

  我习惯性地使用了root身份运行:

  # sh setup.sh -m

  否则,据Kylix论坛(kylix.linuxaid.com.cn)上的一些兄弟说,Kylix 3的安装程序会把数据都塞到系统的根目录上,就算卸载,它也会留下许多的空目录的,手工删除可是很麻烦的。
  安装过程中涉及到路径选择和组件选择,路径默认为/usr/local/kylix。
  三、运行Kylix 3
  1,早就听说Kylix难装,所以就没抱着直接运行的希望。
  注意:此时的桌面环境为GNOME,屏幕是1024*768/256色的。
  打了一下startdelphi,出现了一个什么a call of os function failed,随后又出现这样的信息:
  Warning: Missing charsets in String to Fontset Conversion.
  费了九牛二虎之力,愣是没直到哪儿出的错!
  后来,下午睡了一觉,醒来之后,就忽然想道到KDE了,于是就切换了过去。
  运行startdelphi之后,显示:
  Warning: Missing charsets in String to Fontset Conversion.
  然后出现错误提示:Error Creating Images: Xpm Color Failed.
   Delphi主界面出现了,可是不能出现默认的Project窗体,New Application不成功。想想是不是显卡设置的问题呢?据说要颜色位低一些才行,可是我那个屏幕已经是1024*768并且是256色的,觉得别 扭,就决定反其道而行之,调成1280*960的,颜色调成了百万像素,想不到熟悉的Delphi界面在屏幕上出现了。
  2,解决在RH9下Kylix3的IDE不能编译调试程序的方法

  Kylix3的IDE(包括BCB和Delphi)在RH9下不能进行程序的运行调试,一启动调试程序就会挂起,这是因为RH9里包含的Native POSIX Thread Library (NPTL)和Kylix3不大兼容。

解决的方法是编辑Kylix3的启动脚本(startbcb和startdelphi)在倒数第二行加入环境变量设置

  export LD_ASSUME_KERNEL=2.4.1

让Kylix3不使用NPTL,这样Kylix3就可以顺利的按F9进行程序的编译调试了。

  但是往往引起其他问题。

  3,安装完后在中文下界面不能正常显示的问题

  (1),方法一:

  就是编辑你的Kylix符号链接目录下的:

  就是/usr/local/bin/下的

  startbcb、startdelphi、startkylix三个文件脚本,分别在其脚本的倒数  第三行(就是还没开始执行程序的地方)加插下面一句:

  export LANG=zh_CN

  export LC_ALL=zh_CN

  保存。再用startbcb、startdelphi或 startkylix执行Kylix就行了。

  这个方法的缺点是,不能解决汉字输入问题。

  (2),方法二:

  修改/etc/sysconfig/i18n,把其中的zh_CN.GB18030替换为zh_CN.GBK即可。这个方法修改简单,而且可以解决大部分软件不能输入汉字问题,其中就包括Kylix的汉字输入问题。

  4,如果用的是英文XWIN,可以这样显示出中文

   只要装了中文字库,虽然用的是英文XWIN(用LANG=zh_CN.GB2312 ./程序名)来运行程序也可使你的程序显示出中文。CLX中的Font属性可以不对应字体名的,只不过是字体不好看;但汉字是出来了。同时这个方法也可以 用于在非中文XWIN中显示汉字用

如编辑程序kwirte等,但是不能输入中文;
  5、启动以后基本可用,但是菜单字体特别大,工具栏字体特别小。
  使用Linux公社提供的Xft2补丁包或者台湾firefly网友提供的 RedHat 补丁包。安装以后不要修改KDE中的字体设置。就不会出现这个问题了。

  四、编译程序

  1,Kylix 3调用console window 的命令

   在 Kylix IDE 环境中 ,主选单 "Run"->"parameters"中 有个"Use Launcher Application" 选项,将其打勾则以后自己写的Kylix程序一执行就会带出一个"console window";而在程序代码中撰写system("ls"),就会在"console window"列出目录及档案,但该 "console window"好像关不掉,需跟着主程序一起结束。

  2,决kylix3的C++ builder不能正确编译的问题,其实根本不用改头文件,只需要正确设置一下就可以了:

  project->Options->Directories/Conditionals->include path:

  中的$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include

  改为/usr/include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl

  就可以了正确编译了

  3,有的汉字输入法在Kylix中输入时,输入栏会不停闪烁,很难输入。

  解决方法:会出现这种情况的输入法有Chinput,miniChinput 和 SCIM,推荐你换个输入法,除非你情有独钟。因为这些输入法还和 FlashPlayer 6 的浏览器插件有冲突,会让 mozilla 内核的浏览器崩溃。

  4,换了输入法以后无法输入汉字,汉字输入法无法激活。

   解决方法:修改/etc/sysconfig/i18n,把其中的zh_CN.GB18030替换为zh_CN.GBK即可。这个方法应该对所有的支持 GBK编码的输入法都管用。而且这个方法可以解决用Wine运行的程序输入汉字的问题。Kylix可能就是在一个特殊的Wine上执行的。

  5、Kylix3-BCB在MandrakeLinux9.1和RedHat9.0等新版Linux不能编译的问题。

  解决方法:

  补丁:http://kylix.linuxaid.com.cn/xoops2...visit.php?lid=9

  此补丁解决Kylix3-BCB在MandrakeLinux9.1和RedHat9.0等新版Linux不能编译的问题。

使用方法:

  (1)、解压:tar zxvf kylix3libpatch_mdk9.1_rhl9.tar.gz

  (2)、将解出来的3个文件:crt1.o,libc.so,libpthread.so拷贝到$(BCB)/lib/obj中($(BCB)指你的Kylix3的安装目录)

  (3)、新建一工程,点击菜单Project->Options...->Directories/Conditionals,将Include Path:设为/usr/include行头,

  如:/usr/include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl

  6,Kylix编译出的程序脱离IDE运行的问题

  因为Kylix编译出的程序需要一些动态运行库的支持,而这些动态运行库不在默认搜索路径下面路径,所以会出现无法执行的错误,解决的方法有两个:

  方法一:

  在运行你的程序前,先设定 LD_LIBRARY_PATH 的值。

  export LD_LIBRARY_PATH=/usr/local/kylix3/bin:$LD_LIBRARY_PATH

  如果每次都设定觉得麻烦可以建一个脚本(像startdelphi那样的脚本)。不过说实话,这样还是麻烦,下面有个一劳永逸的方法。

  方法二:

  修改文件/etc/ld.so.conf,把路径/usr/local/kylix3/bin加入其中,然后用root用户执行一下/sbin/ldconfig就可以了。

  7,Kylix3编写ApacheDso不能使用的问题。

  解决方法:同解决在IDE中不能运行的方法相同,降版本号。

8,发布问题:如果单纯拷贝可执行文件到目标机器上,不可运行。总不能在目标机器上也安装一套Kylix吧?
  方法一:首先把/usr/local/kylix3/bin下的某两个链接库(目前还不确定,就都拷贝了)拷贝到目标机器的某个文件夹,如ibm05上的/home/pg3/delphi下面。
  然后设置/etc/ld.conf.so,后面加上一行/home/pg3/delphi,并运行ldconfig;
  修改/etc/profile,设置
  PATH=/home/pg3/Delphi:PATH
  export LD_LIBRARY_PATH=/home/pg3/dlphi:$ LD_LIBRARY_PATH,然后就可以运行了。
  方法二:据说用KInstallBuilder为你的应用程序打个安装包,就可以在大部分Linux上正确安装运行。