号外!CentOS 宣布加入红帽公司!

来自 CentOS 邮件列表的消息:CentOS 项目已加入红帽公司,作为红帽公司开源和标准团队( http://community.redhat.com/ ) 的一部分,培养快速创新平台之外的下一代新兴技术。将于 Fedora 和 RHEL 生态系统一起工作,我们希望通过新的平台进一步扩大社区服务。

我们已经发布了全新的 CentOS 网站:http://www.centos.org/

新计划将由新的 CentOS 管理董事会管理。最初的董事会由现有CentOS的核心团队成员包括:

– – Ralph Angenent
– – Tru Hyunh
– – Johnny Hughes JR
– – Jim Perrin
– – Karanbir Singh

此外还包括新成员:

– – Fabian Arrotin, 来自社区董事会提名
– – Carl Trieloff, Karsten Wade, and Mike McLean 红帽提名

董事会工作方针:公开、开放和包容。http://www.centos.org/about/governance/

CentOS 加入红帽后不变的是:

1. CentOS 继续不收费
2. 保持赞助内容驱动的网络中心不变
3. Bug、Issue 和紧急事件处理策略不变
4. Red Hat Enterprise Linux 和 CentOS 防火墙也依然存在

变化的是:

1. 我们是为红帽工作,不是为 RHEL
2. 红帽提供构建系统和初始内容分发资源的赞助
3. 一些开发的资源包括源码的获取将更加容易
4. 避免了原来和红帽上一些法律的问题

此新闻在 CentOS 和红帽官网上都已发布:

http://lists.centos.org/pipermail/centos-announce/2014-January/020100.html
http://www.redhat.com/about/news/press-archive/2014/1/red-hat-and-centos-join-forces

谷歌Adsense博客:关于制作高质量网站的提示

Google Adsense中文博客今日发布博文,针对发布商关注的利用AdSense拓展业务的做法问题给出了相关解答。官方建议发布商需将重点放在制作精彩网站内容及提供最佳的用户体验上,构建高质量的网站,而不是不投机取巧,这样才能通过谷歌广告网络实现长期的收入增长,并取得成功。

以下是Adsense中文博客提出的关于制作高质量网站的提示

不要制作多个包含重复内容的网页或网站。

我们建议您制作高质量的网站,而不是简单堆砌网站数量。将精力集中投入一个网站,制作一个信息丰富、内容可信的网站,不但让用户从中受益,也可以帮助您赢得更多客户。用户在网上浏览时,总是希望能轻松快速地找到他们需要的内容,而不是在内容泛泛或重复的网页、子域或网站中找来找去,却一无所获。如果您的某些网页或网站具有类似的内容或模板设计,不妨考虑将这些网页或网站合并成一个。

提供能够吸引用户访问并回访您网站的内容。

制作网站内容时,您有必要问问自己,与主题相似的其他网站相比,自己的网页有价值吗?能提供重要的服务吗?制作能够使您的网站从其他网站中脱颖而出的原创内容,这样可以提供有用的搜索结果,吸引访问者再次访问,最终让您受益。

提供承诺的信息或服务。

有些发布商制作的网站看似可以提供某种产品或服务,但实际上只是诱使用户浏览多个网页并观看广告。这会带来负面的用户体验,导致用户将您的网站视为不可信的网站。请谨慎使用与网站内容相关的适当关键字,确保用户能够轻松地浏览网站,找到所承诺的产品、商品或服务。

来源:站长之家(chinaz.com)4月27日报道

duilib 开源界面库

Duilib界面库是一款由杭州月牙儿网络技术有限公司开发的界面开发库,她可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。Duilib界面库使用XML来描述界面风格和界面布局,可以很方便的构建高效、绚丽、易于扩展的界面。从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明、动画等。

Duilib界面库的出现解决了使用传统MFC界面库开发软件不美观、界面细节处理不好、使用硬编码、开发效率低下、生成程序体积大等问题。而且传统MFC界面美化库大都使用HOOK等对系统影响比较大的技术,可能会导致系统不稳定或者引发其他错误。而Duilib界面库完全基于GDI在窗口上自绘,无其他依赖,未使用特殊或危险的系统调用,能够很好的解决传统MFC界面的一系列问题。

Duilib界面库完全兼容ActiveX控件(如常见的IE控件和Flash),也可以和MFC等界面库配合使用,用户完全可以不用担心切换到Duilib界面库上面会带来额外的成本或者Duilib界面库会出现功能不够用等情况。

Duilib界面库可广泛用于互联网客户端、工具软件客户端、管理系统客户端、多媒体客户端(如KTV、触摸屏)、车载电脑系统、gps系统和手机客户端软件等。

Duilib界面库可以广泛运行在windows98、Windows2000、WindowsXP、Windows2003、Windows Vista、windows7、WinCE5、WinCE6、Windows Mobile6等平台上,目前支持的开发工具包括vc6、vc2003、vc2005、vc2008、vc2010。

Duilib界面库基于viksoe的DirectUI项目[1],并且以BSD协议开源。

技术特点

1、界面与业务逻辑分离

2、 使用XML配置界面

3、 界面布局方式灵活多样

4、 内置常用的控件

5、 支持自定义控件

6、强大的控件组合能力,复杂功能可通过简单控件组合完成

7、强大的事件处理机制

8、基于GDI和脏矩形的高效绘制技术

9、支持多种资源方式,支持多种图片格式

10、支持alpha混合,支持窗口透明

11、强大的图片绘制描述方式

12、类html字符串绘制技术

13、支持动态变换色调

14、支持动态切换资源位置方式换肤

15、支持ansi和unicode,支持多国家语言

16、支持插件系统

17、内存占用小

18、无第三方库依赖

19、提供可见即所得的ui编辑器

20、丰富易上手的demo例子

21、可以非常容易和mfc、wtl结合使用

参考资料
扩展阅读:

android,安装和卸载软件

安装程序的方法:
 
1、  通过Intent机制,调出系统安装应用,重新安装应用的话,会保留原应用的数据。
 
String fileName = Environment.getExternalStorageDirectory() + apkName;
Uri uri = Uri.fromFile(new File(fileName));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri, application/vnd.android.package-archive");
startActivity(intent);
 
2、  直接调用安装接口。
 
Uri mPackageURI = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + apkName));
int installFlags = 0;
PackageManager pm = getPackageManager();
try
{
    PackageInfo pi = pm.getPackageInfo(packageName,
    PackageManager.GET_UNINSTALLED_PACKAGES);
    if(pi != null)
    {
        installFlags |= PackageManager.REPLACE_EXISTING_PACKAGE;
    }
}
catch (NameNotFoundException e)
{}
PackageInstallObserver observer = new PackageInstallObserver();
pm.installPackage(mPackageURI, observer, installFlags);
 
安装应用权限:android.permission.INSTALL_PACKAGES
 
系统应用(安装在/system/app下面)可以采用该方式,第三方应用无法申请安装卸载权限。
java.lang.SecurityException: Neither user 10039 nor current process has android.permission.INSTALL_PACKAGES.
 
3、  执行install命令。
 
install –r 更新安装,默认新安装;如果不附上-r参数,则会清楚原应用的数据,版本一致则无法安装。
(1)am start …
(2)Runtime.exec(String[] args)
(3)Class<?> execClass = Class.forName("android.os.Exec");
 
4、  执行cp / adb push命令。
 
由系统检测到应用程序有更新,自动完成重新安装。
 
5、  通过第三方软件实现。
 
Market,EOE,eTrackDog均采用第一种方法实现更新。
优点:由系统核心应用程序控制安装程序;
缺点:无法控制安装过程;安装完成后,也无法立刻启动应用,需要用户确认;无法扩展。
 
实例:Market查找安装程序
Intent intent =
new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:your.app.id"));
startActivity(intent);
 
卸载程序的方法:
 
1、  通过Intent机制,调出系统卸载应用。
Uri packageURI = Uri.parse("package: your.app.id");
Intent intent = new Intent(Intent.ACTION_DELETE);
startActivity(intent);
 
2、  直接调用卸载接口。
 
PackageInstallObserver observer = new PackageInstallObserver();
pm.installPackage(mPackageURI, observer, installFlags);
 
卸载应用权限:android.permission.DELETE_PACKAGES
 
3、  运行rm apk安装文件,由系统检测后调用卸载应用。