Google Search Within opentiss.uk

2009-07-29

SLES 11之安装配置Bugzilla 3.4

昨天著名的Bug跟踪管理工具Bugzilla 3.4正式发布了,因为openJDiary项目管理的内部需要及其他一些必要的用途,我就在我的小机器上配置了一个bugzilla系统。
首先下载Bugzilla 3.4,解压缩到相应的虚拟主机目录:
dws:/srv/www/htdocs # tar xzf bugzilla-3.4.tar.gz
将目录bugzilla-3.4更改为需要的名称,如:
dws:/srv/www/htdocs # mv bugzilla-3.4 bugzilla
进行安装之前,需要检查一下是否具备了所有需要的模块及perl工具包:
dws:/srv/www/htdocs # cd bugzilla
dws:/srv/www/htdocs/bugzilla # ./checksetup.pl
一般情况下,是缺少一些软件包的,不过没有问题,按照提示,只需要运行以下命令自动下载安装所需的软件包即可,过程中可能需要若干次确认操作:
dws:/srv/www/htdocs/bugzilla # /usr/bin/perl install-module.pl --all
顺利完成后,再次执行以下命令:
dws:/srv/www/htdocs/bugzilla # ./checksetup.pl
此时如果安装条件均具备,会自动生成localconfig,提示您对MySQL数据库参数进行设置,如果建立全新的bugzilla数据库,可参考以下MySQL数据库脚本建立数据库并进行相应权限设置:
create database `bugzilla` default character set utf8 collate utf8_general_ci;
GRANT SELECT, INSERT,UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugzilla.* TO bugzilla@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
另外,因为SLES 11.0使用的Apache用户组名为www,还需要更改第25行的参数$webservergroup,由apache更改为www。
一切就绪后,再次执行以下命令,结束安装:
dws:/srv/www/htdocs/bugzilla # ./checksetup.pl
安装的最后阶段,会提示你输入系统管理员的Email,真实名字,以及登录密码。
Bugzilla 3.4安装结束后,就需要配置Apache的相应参数了,我采用了虚拟主机方式,配置文件(/etc/apache2/vhosts.d/yast2_vhosts.conf)参考如下:
<VirtualHost 10.15.76.105>
 DocumentRoot /srv/www/htdocs/bugzilla
 ServerName bugzilla.dws.cn
 ServerAdmin opentiss@gmail.com
 <Directory /srv/www/htdocs/bugzilla>
    AddHandler cgi-script .cgi
    Options +Indexes +ExecCGI
    DirectoryIndex index.cgi
    AllowOverride Limit
 </Directory>
</VirtualHost>
重启Apache,就可以使用刚才安装的Bugzilla了:
/etc/init.d/apache2 restart
Bugzilla的主页如下图所示:

以系统管理员账号登录后,请先在Parameters->Required Settings中将参数urlbase修改为正确的值。
最后,如果你想以gmail的smtp做为Bugzilla通知邮件服务器的话,可以参照BugZilla alerts using GMAIL进行如下配置:首先安装Perl模块Email::Send::SMTP::TLS,采用CPAN SHELL:
perl -MCPAN -e shell
cpan[1]> install Email::Send::SMTP::TLS
因为安装过程中需要两个模块perl-Test-Pod和perl-Test-Pod-Coverage,所以需要先在YaST中事先安装好。在安装过程中可能需要自动安装一些其他有依赖的包,直接确认安装即可。
安装完成后,备份Bugzilla/Mailer.pm,然后对其进行如下修改:
176a177,186
>     if ($method eq "SMTP::TLS") {
>         my ($smtp_server,$smtp_port) = split /:/,Bugzilla->params->{"smtpserver"};
>         push @args, Host  => $smtp_server,
>                     User => Bugzilla->params->{"smtp_username"},
>                     Password => Bugzilla->params->{"smtp_password"},
>                     Hello => $smtp_server,
>                     Port => $smtp_port,
>                     Debug => Bugzilla->params->{'smtp_debug'};
>     }
>
即添加针对SMTP::TLS的处理代码,然后以系统管理员账号登录,在Parameters->Email中修改如下设置:
mail_delivery_method > SMTP::TLS
mailfrom > username@gmail.com
smtpserver > smtp.gmail.com:587
smtp_username > username@gmail.com
smtp_password > userpassword
保存以上设置之后,您就可以通过gmail发送您的Bugzilla通知邮件了。
以上参考文章将会在维勘翻译中有中方参考译文发布(对原文perl代码错误有所修正),敬请关注。

2009-07-28

Piwik使用及推介

最近不但使用Mambo将个人网站opentiss.net进行了升级改造,而且还从sf.net寻到一个非常好的开源网站访问统计分析软件Piwik,用于对opentiss.net诸站点的访问统计分析。为了更好地宣传这一可以于Google Analytics不相上下的开源软件,还将sf.net本月月度推荐的专题文章翻译于维勘翻译(Wikan Translation)相应专题之中,大家有兴趣的话,可以阅读指正。现在将Piwik的安装过程简述如下,以供大家参考。
首先下载Piwik的安装文件,解压缩在指定的目录,我放在Apache主目录(DocumentRoot)的子目录piwik中:
dws:/srv/www/htdocs # 7z x ../latest.zip
然后在浏览器中直接安装即可,如果一切正常,应该如下图所示:
一般可能会遇到目录的写权限未正确设置的情况,如下图所示:
此时只需执行类似如下命令,将写权限设置正确即可:
chmod 777 /srv/www/htdocs/piwik/tmp
chmod 777 /srv/www/htdocs/piwik/tmp/templates_c
chmod 777 /srv/www/htdocs/piwik/tmp/cache
安装过程大概需要八个步骤,写权限正确后,刷新页面点击next进入下一步,如果需要的系统模块配置均符合要求,应该如下图所示:


一般情况下,如果默认安装的Apache和php,可能还需要安装一下php5-gd模块,安装如下图高亮选中的项即可:

点击next进入下一步,设置所使用MySQL数据库的参数:


设置好后点击next,如果一切正常,会显示数据库安装结果:


点击next,设置piwik的通用设置:

设置完成后,点击Go,安装第一个需要进行访问统计分析的网站:

设置完成后,点击Go,就可以获取到JavaScript Tag了:

最后,一切安装完成,你就可以正常使用Piwik来管理与查看您网站的访问统计分析数据了:

查看统计分析数据的界面如下图所示:

最后,需要说明的是,Piwik软件的升级非常方便,如果有软件更新了,会直接在管理界面予以提示:

点击Please update now之后,总共只需三步即可完成升级:

这一步主要是告诉你在线升级程序会如何进行升级,点击Continue to Piwik进入下一步:

这一步主要是告知数据库也需要升级,点击Upgrade Piwik以完成整个升级过程:

最后,升级成功完成。

如果大家要体验完全控制Web统计分析软件,并且不受免费Google Analytics访问量的限制,那么现在你可以试一试开源软件Piwik了。

2009-07-21

SLES 11的Ruby开发框架Rails配置

今天在我的小服务器上配置了一下Ruby的Rails开发框架,发现Ruby的确非常好用。
我的小机器上安装的是Novell SLES 11.0,参考Configuring Ruby Rails for Apache on SUSE Linux Enterprise ServerRuby on Rails 2.1.x ScaffoldingRails, Apache2 and SUSE,采用Apache的fastcgi模块访问实验虚拟主机www.dws.cn。
首先通过YaST安装必要的软件包,主要是以下几个:
FastCGI
ruby
ruby-devel
ruby-fcgi
ruby-mysql
rubygem-rails
rubygem-rake
rubygems
另外,还需要通过下载rpm安装apache2-mod_fastcgi,下载链接为:apache2-mod_fastcgi-2.4.2-39.1.i586.rpm。下载完成后直接安装即可:
rpm -ivh apache2-mod_fastcgi-2.4.2-39.1.i586.rpm
一切就绪后,准备运行第一个Rails应用:
dws:~ # cd /srv/www/htdocs/
dws:/srv/www/htdocs # rails www.dws.cn               
      create                                         
      create  app/controllers                        
      create  app/helpers                            
      create  app/models                             
      create  app/views/layouts                      
      create  config/environments                    
      create  config/initializers                    
      create  db                                     
      create  doc                                    
      create  lib                                    
      create  lib/tasks                              
      create  log                                    
      create  public/images                          
      create  public/javascripts                     
      create  public/stylesheets                     
      create  script/performance                     
      create  script/process                         
      create  test/fixtures                          
      create  test/functional                        
      create  test/integration                       
      create  test/unit                              
      create  vendor                                 
      create  vendor/plugins                         
      create  tmp/sessions                           
      create  tmp/sockets                            
      create  tmp/cache                              
      create  tmp/pids                               
      create  Rakefile                               
      create  README                                 
      create  app/controllers/application.rb         
      create  app/helpers/application_helper.rb      
      create  test/test_helper.rb                    
      create  config/database.yml                    
      create  config/routes.rb                       
      create  config/initializers/inflections.rb     
      create  config/initializers/mime_types.rb      
      create  config/initializers/new_rails_defaults.rb
      create  config/boot.rb                           
      create  config/environment.rb                    
      create  config/environments/production.rb        
      create  config/environments/development.rb       
      create  config/environments/test.rb              
      create  script/about                             
      create  script/console                           
      create  script/dbconsole                         
      create  script/destroy                           
      create  script/generate                          
      create  script/performance/benchmarker           
      create  script/performance/profiler              
      create  script/performance/request               
      create  script/process/reaper                    
      create  script/process/spawner                   
      create  script/process/inspector                 
      create  script/runner                            
      create  script/server                            
      create  script/plugin                            
      create  public/dispatch.rb                       
      create  public/dispatch.cgi                      
      create  public/dispatch.fcgi                     
      create  public/404.html                          
      create  public/422.html                          
      create  public/500.html                          
      create  public/index.html                        
      create  public/favicon.ico                       
      create  public/robots.txt                        
      create  public/images/rails.png                  
      create  public/javascripts/prototype.js
      create  public/javascripts/effects.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/controls.js
      create  public/javascripts/application.js
      create  doc/README_FOR_APP
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log
如果一切正常,第一个Rails应用就成功布置完成了,运行以下命令运行这个应用的服务器脚本:
dws:/srv/www/htdocs/www.dws.cn # ruby script/server
=> Booting WEBrick...
=> Rails 2.1.2 application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2009-07-21 12:31:22] INFO  WEBrick 1.3.1
[2009-07-21 12:31:22] INFO  ruby 1.8.7 (2008-08-11) [i586-linux]
[2009-07-21 12:31:22] INFO  WEBrick::HTTPServer#start: pid=3547 port=3000
可以通过http://localhost:3000/来访问示例页面,如果不是从服务器本机访问,请先暂时停止SLES 11.0的防火墙,否则通过其他主机无法验证刚才创建的Rails应用是否已经能够正常运行。下图为通过ip由其他主机访问刚才创建的示例页面的屏幕截图:
通过Yast启用Apache的rewite、vhost_alias服务器模块:
上图显示默认这两项是禁用的,将其状态转换为启用即可。
服务器模块fastcgi可能无法直接通过YaST启用,可以直接在配置文件/etc/sysconfig/apache2的第103行的最后添加fastcgi来启用:
上图显示添加后的结果。
可以通过YaST来添加vhost,也可以手动添加,配置文件(/etc/apache2/vhosts.d/yast2_vhosts.conf)的内容如下:
<VirtualHost 10.15.76.105>
 DocumentRoot /srv/www/htdocs/www.dws.cn/public
 ServerName www.dws.cn
 ServerAdmin opentiss@gmail.com
 AddHandler fastcgi-script .fcgi
 AddHandler cgi-script .cgi
 <Directory /srv/www/htdocs/www.dws.cn/public>
  RewriteEngine On
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
  ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly."
  Options ExecCGI FollowSymLinks
  Order allow,deny
  Allow from all
 </Directory>
</VirtualHost>
为使手动添加的虚拟主机选项生效,重启Apache:
/etc/init.d/apache2 restart
修改浏览主机的/etc/hosts文件,添加如下内容,以使其能够通过域名访问虚拟主机:
10.15.76.105    www.dws.cn
如果一切正常,浏览器的显示应该如下图所示:
这就表明通过Apache的服务器模块fastcgi访问Rails应用已经配置成功了。
下面我们来创建一个简单的MySQL数据库交互应用。首先,创建MySQL数据库脚本文件dws.sql,内容如下:
create database `dws` default character set utf8 collate utf8_general_ci;
grant all privileges on dws.* to 'dws'@'localhost' identified by 'dws' with grant option;
use dws;

create table websites (
  id int(8)  not null auto_increment,
  siteName varchar(128) ,
  domainName varchar(128) ,
  onlineDate date ,
  introduce text ,
  primary key(id)
);

insert into websites values(0, 'opentiss', 'opentiss.net', '2007-9-2',  'Opentiss\'s website.');
insert into websites values(0, 'Wikan translation', 'wikan.opentiss.net', '2009-7-11', 'Wikan translation - 维勘翻译');
insert into websites values(0, 'openJDiary', 'openjdiary.opentiss.net', '2009-7-18',  'Project page of openJDiary.');
执行此脚本文件:
mysql -u root < dws.sql
为测试方便,将原来的Rails应用更名,以生成一个自动配置好的MySQL数据库交互应用:
dws:/srv/www/htdocs # mv www.dws.cn dws
dws:/srv/www/htdocs # rails -d mysql www.dws.cn
将/srv/www/htdocs/www.dws.cn/config/database.yml中的development配置更新为刚才创建的数据库,例如:
development:
  adapter: mysql
  encoding: utf8
  database: dws
  username: root
  password:
  socket: /var/lib/mysql/mysql.sock
主要是更改了数据库名称设置database。然后创建对表websites查看、修改、删除的示例页面(scaffold操作):
dws:/srv/www/htdocs # cd www.dws.cn
dws:/srv/www/htdocs/www.dws.cn # ruby script/generate scaffold website siteName:string domainName:string onlineDate:date  introduce:text
此时在浏览器中看到的效果如下:
点击第二条的Edit,你就可以修改内容并保存到数据库了:
Ruby是一种动态的、面向对象的开源编程语言,简洁易学,如果你想到Ruby Forum注册一个用户,会被问及一个简单的Ruby问题,例如:
What does the following ruby code print out?
puts (('11' * 2).to_i/2)
Please type the answer:
其实这是Ruby Forum在确认您是否真的是Ruby爱好者,故意考考你的,这也不难,只需要将以上puts语句写入到文件rf.rb中,例如:
puts (('11' * 2).to_i/2)
然后执行:
ruby rf.rb
结果是什么呢?相信如果你是Ruby爱好者的话,已经知道结果了。Ruby就是这么简单,爱好学习新技术的你赶快加入到Ruby的行列中来吧。

2009-07-17

Mambo安装及使用简介:20090717

这几天找工作没有什么结果,就学习使用网站内容管理系统(CMS)工具了,发现Mambo挺好用的,试用了几天,建立了自己的翻译网站Wikan Translation - 维勘翻译,现将安装及使用简介分享给大家:Mambo
配置完成后,不知为什么系统管理员登录(administrator目录)出现了内部错误:

Internal Server Error


The server encountered an internal error or
misconfiguration and was unable to complete
your request.
谷歌了一下,才发现解决办法其实很简单,只需要将目录权限由775更改为755就可以了,真是神奇呀,看来还有很多内容需要学习与加强。


2009-07-14

转载:Unix-Center.Net需要您的帮助

Unix-Center.Net需要您的帮助

今天收到了unix-center.net发来的信件,觉得有必要告知一下大家,如果有能够提供帮助的,尽管伸出援手,谢谢。

...
我于2000年底硕士毕业之后,在美国工作了三年,
又在中国工作了六年。在过去的两年半中,这个系统烧掉了我大部分的工资和积蓄。购买各种服务器设备的费用,大概是70万人民币;北京赛尔机房的服务器托管和带宽费用,大概是每年30万人民币。(由于Unix-Center.Net对于推广我的雇主的操作系统有很大的帮助,我的雇主曾经在我的游说之下为Unix-Center.Net提供了半年的带宽费用。但是考虑到Unix-Center.Net同时提供其他种类的操作系统,我的雇主后来中止了对Unix-Center.Net的支持。)和我同年龄的人,现在大部分都有车有房了吧。而我最值钱的资产,是在保安严密的机房中的三个机柜。



我曾经和国家负责推广Linux和开源技术的机构取得联系,也曾经和某些教育部门取得联系,希望能够得到他们的支持。但是“有关部门”的负责人听取了我的陈述之后,不约而同地摇摇头,说:“你这个事情做得很好。很遗憾我们不能够给你提供任何帮助。”我也曾经考虑过将这个网站用商业化的模式来运作,但是这个公益性平台所服务的对象大部分是穷学生和穷教师,暂时并没有盈利的空间。并且,我自认为我是一个做事的人,而不是一个做生意的人。让我自己来运营一家公司的话,赚钱的可能性并不大。



中国是一个发展中国家,我们有很多教师、学生和工程人员希望能够学习Unix/Linux系统,却又苦于没有合适的环境和条件。Unix- Center.Net存在的目的,就是给这些爱好Unix/Linux的人一个学习和练习的条件。用一个简单的数据来说,到2009年6 月底,Unix-Center.Net的注册用户接近9 万人。我不知道这么多人都在这些服务器上做什么事情,但是我相信这些服务器对他们有用。譬如说,清华大学教授操作系统课程的一位教授告诉我说他让学生们到 Unix-Center.Net来对不同的操作系统进行比较。又譬如说,我收到中国科技大学一位博士生的电子邮件,说是他利用这些服务器完成了毕业论文中比较关键的一些计算。这些有限的证言,让我坚信这个系统是有其存在的意义的。尽管没有获得“有关部门”的支持,我从来都没有想过要放弃。



坦率地说,我现在遇到了一些困难。我所在的公司,在这次经济危机中被收购了。我不能够确定将来我是否还有能力将这个系统支持下去。但是我非常希望能够维持这个系统的运行,因为它确实对很多人有用。如果您也相信这一点的话,我希望您能够帮助我将这个系统维持下去。不管是10元、100元还是1000 元,对于Unix-Center.Net的用户来说都是莫大的帮助。



如果您在中国,您可以将您的捐款通过转帐支付给我的个人银行账号:



中国银行北京市分行清华园支行

蒋清野

4563-5101-0088-4741-228



招商银行北京市分行清华园支行

蒋清野

6226-0901-0156-8117



支付宝账户

13511026844



如果您在国外,您可以将您的捐款通过PayPal支付给我的个人账号(qjiang@ieee.org),或者是通过转帐支付到我在CitiBank的个人账号:



CitiBank

FDIC Routing #: 321171184

Account Name: Qingye Jiang

Account #: 40038862963

Debit Card #:5262-2519-8546-8207



我还恳请您在捐款之后给我发一封电子邮件(电子邮件地址qjiang@ieee.org),详细说明您的个人姓名以及捐款数目,以便我定期地整理和公布捐款情况。



如果您希望进一步了解关于我个人的情况,欢迎您访问我个人的博客http://www.qyjohn.net/



如果您希望进一步了解关于Unix-Center.Net的情况,欢迎您访问Unix-Center.Net的网站http://www.unix-center.net/?page_id=2



如果您愿意进一步帮助Unix-Center.Net,请您将这篇文章转贴到您认为合适的论坛、社区,或者是转发给您的同事和朋友。



这一件事情,纯粹是我的个人行为。但是我仍然希望我能够代表Unix-Center.Net的用户对您说一声:谢谢您的爱心,谢谢您的支持。



蒋清野

2009年7 月13日
祝愿Unix-Center.Net能够保持良好地发展,能够得到大家的有力支持,谢谢。

2009-07-10

susestudio使用及分享

正处于测试阶段的Novell susestudio已经可以构建SLE 11的Hard disk / USB image了,最近几天尝试一下,发现这个构造网站非常好用,而且非常重要的一点是可以不用登录就能够下载生成的安装文件,例如,我构造的一个SLED 11 KDE4的安装文件包opentiss_SLED_11_KDE_4.i686-0.1.0.oem.tar.gz(此链接的最新版本),大家就可以直接点击链接进行下载(注意,如果使用闪存盘安装这一Linux版本,至少需要4GB的闪存盘)。
首先介绍一下susestudio的基本功能(之前已经有一篇文章也简单介绍过了),如果要建立自己的一个appliance,首先需要选择一个模板,也就是基于哪个Novell suse的发行版本,主要的选择包括openSUSE 11.1系列(Just enough OS (JeOS)、Server、KDE 4 desktop、KDE 3 desktop等)、SUSE Linux Enterprise 10/11系列,再有就是在模板中要选择32位版本还是64位版本,最后命名你的appliance。新建完成之后,在软件选择中可以添加安装源,选择需要的软件,而且还可以上传rpm包或从链接上传rpm包(我的smplayer等软件就是直接从链接上传后添加的),如果存在依赖错误,也有相应的提示,补充需要的包即可。接下来就是进行系统配置了,第一项就是通用设置,如默认区域、时区,网络配置、防火墙及用户与组设置(可以添加自己的桌面用户、设置用户密码等)。第二项是定制系统的启动界面,第三项是设置启动的运行级别及授权文件(注意,授权在安装完系统启动后会让用户确认接受,在看完授权文件后,按q键就会出现询问你是否接受授权协议的提示,如果同意,按y回车即可)。第四项服务器设置,例如是否配置mysql数据库等(我这里就这一项内容)。第五项桌面配置,其中包括设置自动登录的账号及自动启动的程序等。第六项是存储和内存设置,主要是内存大小、虚拟磁盘大小以及是否启用大于4GB的扩展内存支持等。第七项设置客户脚本。配置完成以上各项后,下面就是上传用户文件了,如果没有,忽略即可。最后,一切准备就绪,就可以构建了(Build),这一步需要设置格式及版本号,设置完成后直接点击Build按钮构建即可。格式主要有以下几项:
Disk image (hard disk, USB stick)
Live CD/DVD (.iso)
VMware virtual machine
Xen virtual machine
版本号默认设置为0.0.1,用户可以自己进行更改。
那么这个oem disk image如何使用呢,其实很简单,下载完成后,只需要解压缩,得到一个raw文件,例如:
opentiss_SLED_11_KDE_4.i686-0.1.0.raw
然后将这一raw文件用dd命令写入闪存盘即可,例如:
dd if=opentiss_SLED_11_KDE_4.i686-0.1.0.raw of=/dev/sdb
注意:用户密码默认都是linux,有一个非root用户,用户名为tux。这些都是susestudio的默认设置。
参考资料:SUSE Studio - openSUSE


2009-07-08

Gmail转正了:20090708

Gmail终于转正了,真是千呼万唤始出来呀。
Gmail leaves beta, launches "Back to Beta" Labs feature
2009年7月7日 23:03
Posted by Keith Coleman, Gmail Product Director

We get asked all the time why Google keeps its products in beta for so long. And Gmail, five years after launch, is consistently a subject of this questioning, even of jokes.

Some people thought that once we opened sign-ups, Gmail should have come out of beta.

Others said that once we integrated chat, developed new anti-spam technology, expanded to 53 languages, shipped a mobile app, added group chat, launched an iPhone UI, added a vacation autoresponder, launched Gmail Labs, subsequently modified the vacation autoresponder with a Gmail Lab, launched 48 other Labs, launched video chat, enabled open protocols and APIs (POP, auto-forwarding, IMAP, and the Contacts Data API), let you POP mail in from other accounts, added a delete button, rearchitected our entire javascript code base, and added key functionality to get large companies, startups, universities, and many other organizations (in addition to Google itself) running on Gmail, we should have come out of beta.

Some people think we should wait until we launch < one of ongoing secret projects >.

Others say that, over the last five years, a beta culture has grown around web apps, such that the very meaning of "beta" is debatable. And rather than the packaged, stagnant software of decades past, we're moving to a world of rapid developmental cycles where products like Gmail continue to change indefinitely.

The end result (many visible and invisible changes later) is that today, beta is a thing of the past. Not just for Gmail, but for all of Google Apps — Gmail, Calendar, Docs, and Talk.

However, we realize that after five years, this leaves some of you wrestling with some tough questions. How will you ever get used to using Gmail without that familiar grey "BETA" text greeting you when you log in everyday? What example will you cite the next time you make an internet joke about perpetual betas? Don't despair... for those of you long-time Gmail-ers who might feel some separation anxiety, we've got a solution. Just go to Settings, click on Labs, turn on "Back to Beta," and it'll be like Gmail never left beta at all.