[转载]SQL: 判断给定日期值(或时间段)所在星期的星期一和星期天的日期

mikel阅读(903)

[转载]SQL: 判断给定日期值(或时间段)所在星期的星期一和星期天的日期 – wsdj – 博客园.

最近报表要用到一项功能,需要把数据源根据记录发生日期所在的星期序列进行分组。因此就写了两个相关SQL Function进行调用。
一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据
例如给定一个日期 2010-09-01,求出它所在星期的星期一是2010-08-30,星期天是2010-09-05

Function创建如下:

USE [MSSQL]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[My_OneDay_GetWeekFirstAndEndDay](@tmpDate DATETIME)
RETURNS @tmpTable TABLE(FirstDay DATETIME , EndDay DATETIME)
AS
BEGIN
INSERT INTO @tmpTable
SELECT a.FirstDay,b.EndDay FROM (
SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 0AS FirstDAy
) a
LEFT JOIN (
SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 6AS EndDay
) b
ON a.ID = b.ID
RETURN
END

Function测试:

SELECT * from My_OneDay_GetWeekFirstAndEndDay(2010-09-01)

二、以上面单个日期搜索为基础,由用户输入两个参数,一个是开始日期,一个结束日期,根据这两个参数,求出在此时期段内的所有星期的星期一和星期天的日期表并排序。
例如开始日期是2011-09-01,结束日期是2011-10-06,我们就可以得到此星期表如下:
WeekOrder              FirstDay                                EndDay
1               2011-08-29 00:00:00.000  2011-09-04 00:00:00.000
2               2011-09-05 00:00:00.000  2011-09-11 00:00:00.000
3               2011-09-12 00:00:00.000  2011-09-18 00:00:00.000
4               2011-09-19 00:00:00.000  2011-09-25 00:00:00.000
5               2011-09-26 00:00:00.000  2011-10-02 00:00:00.000
6               2011-10-03 00:00:00.000  2011-10-09 00:00:00.000

Function创建如下:

USE [MSSQL]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[MY_Range_GetWeekFirstAndEndDays](@tmpDateSTART DATETIME,@tmpDateEND DATETIME)
RETURNS @tmpTable TABLE(WeekOrder INT,FirstDay DATETIME , EndDay DATETIME)
AS
BEGIN
DECLARE @tmpDate DATETIME
DECLARE @index INT
SET @tmpDate=@tmpDateSTART
SET @index=1
WHILE @tmpDate <=@tmpDateEND
BEGIN
INSERT INTO @tmpTable
SELECT @index,a.FirstDay,b.EndDay FROM (
SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 0AS FirstDAy) a
LEFT JOIN (
SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 6AS EndDay) b
ON a.ID = b.ID

SET @tmpDate=DATEADD(DAY,7,@tmpDate)
SET @index=@index+1
END
RETURN
END

Function测试:

SELECT * from My_Range_GetWeekFirstAndEndDays(2011-09-01,2011-10-06)

[转载]Win2003上VisualSVN Server无法使用解决方案

mikel阅读(1338)

[转载]Win2003上SVN无法使用解决方案_天真浪子的空间_百度空间.

我记得曾经在Win2003上成功配置过SVN,详见http://hi.baidu.com/braveboyx/blog/item/efd19696efe63914d31b707a.html。然而就当成功没几天时,突然发现SVN无法使用了,第次都是SVN服务启动了,但就是登陆不了SVN服务器,并且占用资源也很大,于量在研究了几天无果时选择了VSS,详见http://hi.baidu.com/braveboyx/blog/item/f813ed01b034bf82d53f7c0f.html。并且用VSS完成了上学期的一些项目实践。但是SVN那么好的一款源代码控制器不能用多可惜,但一直找不到解决方案,所以把SVN服务一直禁止了。
直到这次项目实训,又进入编码阶段,我再选择用VSS还是SVN呢。VSS用过但总觉得没有去年暑假开发时用SVN来的舒服,并且VSS只能在一台机器上签出签入,否则将永远处于占用状态,并且没有日志功能,除非自己配置,详见http://hi.baidu.com/braveboyx/blog/item/e62a40d844baebd1b7fd4808.html
昨天再次把SVN拿到实验室的XP环境下配置,一点问题也没有,为实训提供了方便。可是我双重新思考为什么在Win2003下就不行。于是研究了一下。发现症状:1.SVN Server占用CPU资源很高,2.由于SVN是开机自动启动,于是SVN日志满了,发现错误为:Too many errors in select loop. Child process exiting.
(OS 10038) 在一个非套接字上尝试了一个操作

进一步考虑到我用的SVN服务器为Visual SVN Server,它集成了Apache和Subvision,并且上学期末学习PHP时也遇到Apach服务器开不了,CPU资源占用高的问题,于是找到当时的解决方案,详见:http://hi.baidu.com/braveboyx/blog/item/a2cbad33bed243a35fdf0eca.htmlhttp://hi.baidu.com/braveboyx/blog/item/55e80c97634274037af48051.html
找到了原因,问题自然就解决了,现在在Win2003下SVN也完全恢复正常了。我的解决过程为:
第一、找到VisualSVN Server的安装目录,下面的conf文件夹下有httpd.conf文件,打开后在文件最后加入:
<IfModule mpm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
第二、运行netsh winsock reset命令,可以不重启电脑。
完成这两步后重启Visual SVN Server服务器后,发现一切正常了。
说白了就是Apache问题,Apache在Windows 2003上永远会有占用CPU高,上面方法可以解决,还有就是WinSock的问题。

[转载]Flash: 涅磐与重生

mikel阅读(1533)

[转载]Flash: 涅磐与重生 – xiaotie – 博客园.

10月3号,Flash Player 11 和 AIR 3.0正式提供下载,一片安静。最近这两年来,关于Flash的新闻一向是以负面为主,先是 Silverlight 的挑战,然后是 iphone和ipad的不支持及html5的良好预期,Flash 看似风雨飘摇,明灭不定。实则不然。我个人观点:Silverlight成不了Flash的竞争对手,主要原因是商业层面的原因。html5还是初生婴儿,需要进一步观察。这些在本文后半部具体分析,本文重心还是Flash。

下面先详细阐述:

(1)什么是Flash平台

(2)Flash平台的两次涅磐与重生

(3)Flash平台的商业策略及这种策略的优势和劣势

我个人只有3年的Flash开发经验和2个月的html5开发经验,受经验所限,本文若有事实错误还请指正。

(1)什么是Flash平台

什么是Flash平台?这个问题绝大多数人、甚至绝大多数程序员都不知道,因为Flash一直游离在主流开发人群之外,大家对它的印象:最开始是网络动画和网络广告,后来是网络视频,接着是现在的网页游戏。

下面用一句话来介绍什么是Flash平台:

Flash平台是与.Net和Java类似的运行时平台,有虚拟机、有GC、有比较成熟的快速开发语言、有比较成熟的IDE。它们之间的不同是:

· Java是从Server端起家的

· .Net是从桌面起家的

· Flash是从Web起家的

Java 现在统治了Server端的快速开发。.Net 统治了Windows下的Web开发、是桌面快速开发(还未统治)的重要选择。谁会统治Web和移动APP的快速开发?目前只有两个选项——JS和 Flash。虽然目前JS的呼声比较高,但我觉得Flash的胜机更大,或者是两者的寡头垄断,后面比较html5和flash时再详细分析。

Flash有一个运行时,现在叫avm2,相比Java和.Net的大个头来说,这个运行时很小,只有很少的功能,甚至连线程都没有。Flash Player 10的安装包为2M+,Flash Player 11的安装包为3M+。Flash 的可执行文件格式是swf,库是swc,字节码是abc(ActionScript Bytecode)。Flash 的主流开发语言是actionscript 3.0,它是一种ECMAScript语言,我私下叫它JavaScript ++。actionscript 3.0 既有静态语言的特性,又有动态语言的特性,什么属性啊、事件啊、元数据啊等都有,是一门快速的开发语言。Flash的其它的开发语言有haXe,C,C++。顺便说一句:haXe也能开发html5应用。

Web 是Flash平台的起家之地,以Flash Player为核心。在桌面上,Flash的解决方案是AIR(你可以把它看作WPF的类似物),在移动平台上,Flash的解决方案也是AIR,在 Android上,AIR是以虚拟机机制运行的,在ios上,是直接编译成二进制执行的。

也就是说,目前的Flash已经从以前的Web平台扩充到三个平台:

· Web平台

· Windows/Linux/Mac osx桌面平台(这次AIR 3.0的发布,大幅度增强了桌面平台的能力)

· 移动平台(Android,ios,黑莓)

Flash是目前唯一一个可以快速开发,然后经过简单的修改(连UI都是公用的)就可以在上面几个平台上跑的技术。就我个人的体验,actionscript 3.0的开发速度比java高得多,比C#要略低。

好吧,顺便在这里说一句,为什么我说Silverlight和Flash看似一样,却是截然不同的。

虽 然从技术上Flash能做到的,Silverlight是都可以做到,但是微软是绝对不会放纵Silverlight跨这么多平台的,因此在商业上是绝对 做不到的。随着AIR 2.7的出现,以及微软现在对win8、html5的态度,Silverlight已经提前出局了。Silverlight将是windows上的开发利 器,但,仅仅限于windows平台。这种层面的战争是商业战争,而不是技术战争。Silverlight虽然是微软自己搞得,但现在看起来是后妈养的。 Flash虽然是买来的,但和Adobe的发展习习相关,就像亲儿子一样。

Adobe有一个开源项目叫Alchemy,可以用C/C++写Flash程序,这一方面会继续增强:

We released Alchemy on Labs over two years ago as an experimental prototype that allowed developers to leverage C/C++ code in Flash Player and AIR. We have not updated the original Alchemy prototype, and while we noted from the beginning that it should not be relied upon for production content, we’ve received persistent requests from developers asking for official support in the Flash runtimes.

We’ve been listening and have decided to invest in creating an improved version of Alchemy, which we plan to release as part of a paid production offering for commercial development. We intend to make non-commercial use free of charge.

The production release will offer significantly better performance and productivity over the Labs prototype. By re-architecting major portions of the technology, we aim to enable code execution approaching native performance, scalable support for large code bases, full Debugging support, up to 75% reduction in code size, and seamless integration with ActionScript – all while reaching virtually every connected computer on the web.

出处:http://blogs.adobe.com/flashplayer/2011/09/updates-from-the-lab.html

如果这一个目标实现了,直接在Flash平台上写高性能程序不是奢望。

(2)Flash平台的两次涅磐与重生

Flash平台经过了两次涅磐与重生。

第 一次是2006年 Flash Player 9的发布。从Flash Player 8到 Flash Player 9的进步是质的飞跃,在虚拟机层面由 avm1 变为 avm2,性能的大幅度提高及由 actionscript 2 演化到 actionscript 3,使得Flash 平台具有了挑战其它平台的可能性。

第 二次就是这次Flash Player 11 及 AIR 3的发布。Flash Player 11 有一个重大的特性就是硬件加速的 3D API。虽然Silverlight 5也提供了硬件加速3D API,但是Silverlight 蜗牛般的推进速度令人遗憾。

这里再强调一下,这种战争是商业战争。Silverlight为什么安装率不高?我认为有两大原因:

(a)强行推行Silverlight 存在一定的法律风险,这个不是主要原因;

(b) 就算Silverlight占有率是99.5%,微软也得不到什么好处,反而需要花费巨大的推广费用,这个应该是最主要的原因。除非微软能够把每台机器上 的Flash 给卸载掉,那个时候才能从Silverlight获得巨大利益。能做到这一点的,只有我们天朝的周大先生,微软没有这样的人物,a8m也不会让他这样干。

再 看看Flash Player的成绩。Flash Player 10是2008年发布的,现在的占有率是99+%。我在前几个项目时还要考虑Flash Player 9,现在根本不用考虑了。而如果Flash Player 11能延续这个速度,2-3年之后,几乎每一个机器的浏览器上就有了硬件加速3D  API,这比普及浏览器还快得多。3D Web应用,3D 网页游戏的首选技术呼之欲出了。

AIR 3的意义比Flash Player 11的意义更大。

AIR 3可以调用native api了(之前,只能和可执行文件通讯),这样一来,在桌面开发就可以将界面和逻辑部分用AIR开发,而性能攸关部分用c/c++开发。

AIR3 支持桌面和移动平台。印象中,从AIR 2.6已经支持移动平台了,但是那个版本的性能表现很差劲。AIR 2.7表现还可以,这个是今年6月发布的,没几个月,目前用AIR开发的移动应用已经10000+了。并且,市面上已经有众多的Flash游戏,这些游戏 可以以很小的成本迁移到移动平台上去。而游戏,是移动平台上最主流的应用。

OO、快速开发、IDE、跨平台、3D、native invoke,这些加起来,意味着什么呢?虽然移动平台让Flash Player 插件遭到了滑铁卢,但是也给了Adobe一个崛起的契机,AIR3 就是吹响的号角。

(3)Flash平台的商业策略及这种策略的优势和劣势

总 体来说,Flash的平台策略是小运行时+类库扩展和源生扩展。这个运行时的核心是UI。UI是开发中工作量非常大的部分,能够简化这一部分的开发是 Flash的核心优势,而因为是小运行时,跨平台的工作量不大。因此Flash可以轻轻松松随随便便的跨平台,而.Net,Java这种重量级的选手跨平 台的代价就大多了。Silverlight也可以做这一点,但不会傻到真去做。

Flash平台的三个核心优势:

(a)广泛的安装基础(这个拜网络动画、视频而赐)

(b)统一的UI模型(两个层面:基于Sprite层面的和基于mxml/data bindding/style层面的)

(c)跨平台(主流平台都跨了——各大桌面操作系统、各大web浏览器(桌面)、各大移动应用平台)

Flash平台的劣势也是在于小运行时,运行时不完美,缺乏一些能力,对于大型应用不适合,只适用于中小型应用,而这类应用,恰恰是移动应用和Web应用的主流。

Flash、Silverlight和html5的比较分析

上面说了,Flash有三个核心优势:安装基础、统一的UI模型和跨平台。

对于Silverlight来说,.Net在技术上比Flash更为成熟,不过缺陷在于安装基础和跨平台,这导致了Silverlight只能是Windows平台上的移动应用和Web应用的可选方案。

对于html5,需要详细的分析:

(1)安装基础:html5在移动平台上的安装基础比较高,但是在桌面上的安装基础还很弱;

(2)UI模型:html + css + js 比较成熟,虽然浏览器兼容问题也客观存在,但注意一下还是可以解决,js的话是个短板,它和C#,Java这种现代语言来说,生产力差距是明显的,但如果要写大型应用的话,可以用haXe这种万能语言来补充;

(3)跨平台:目前主要是跨移动平台,桌面平台的话,ie7,8的消灭还需要时日,对于中国来说,还得先干掉ie6。

html5最重要的优势是它不是私有技术,受各大厂商欢迎。它的最重要的缺点有两个:

(1) 性能:这个性能有两个限制,第一个是由于是公开的技术,各种实现上的性能不一样,js在不同平台上性能差距10倍100倍是常事。移动平台不支持 Flash是因为Flash应用在移动浏览器上几乎跑不动。这并不表示Flash平台比html5 平台性能低下,反而目前,根据我的项目经验,flash平台的性能要远远高出html5平台的性能,且是数量级的差异。同等的Flash 2D应用,如果用html5实现的话,在移动平台上的性能简直不忍目睹,即使是在桌面平台上,IE9的Canvas有硬件加速,跑起来也还是显得慢。当 然,这些会随着时间发展慢慢完善,但是,想想多浏览器,等每个厂商都完善是个漫长的过程。而对于私有技术来说,AIR 2.6在移动平台上慢得像蜗牛,仅仅翻了个年,AIR 2.7在移动平台上的性能就有了数量级的提升,这是私有技术的好处。第二个限制是js,js不是强类型的,这不利于大规模开发和高性能开发,会成为瓶颈。 对于前者,由于js非常灵活,我们可以通过haXe这类语言引入强类型,但高性能,却是实打实的问题。

(2)解决方案:出于发展初期,各种解决方案欠缺。

因此,未来的RIA可能三分天下:

·50K以下的和50K以上的用户众多的非计算密集性应用,html + js统治

·50K-2M之间(Windows平台)、50K+(其它平台)Flash统治,并会在桌面和移动应用上有一块不小的领地

·2M之上的(Windows平台),Silverlight统治

IT界,新的竞争者总是出现在意想不到的地方升起。

[转载]CSS3 基本要素概览

mikel阅读(1040)

[转载]CSS3 基本要素概览 – 孟晨 – 博客园.

这篇文章将对 CSS 的几个新属性 (text-shadow,box-shadow,and border-radius) 做基本介绍。这些 CSS3 属性通常用来加强页面布局。

RGBA

前面的 3 个值是 RGB 颜色值,最后一个值是透明度的级别(0 = 透明,1 = 不透明)。

RGBA 可以应用于与颜色的任何属性,如字体颜色,边框颜色,背景颜色,阴影颜色等。

Text Shadow

文字阴影的结构顺序为:x 轴偏移,y 轴偏移,模糊,颜色。

设置一个负值的 x 轴偏移将阴影转移到左侧。设置一个负值的 y 轴偏移转将阴影转移到顶部。别忘了,你可以在阴影颜色中应用 RGBA 值。

您也可以指定一个文本阴影列表(以逗号分隔)。下面的示例使用两个文本阴影声明制作了文字凸版效果(顶部 1px 和底部1px)。

text-shadow: 0 1px 0 #fff, 0 -1px 0 #000;

Border Radius

边 界半径 (border radius) 的写法类似内边距 (padding) 和 外边距 (margin) 属性(例如:border-radius:20px)。为使浏览器渲染边界半径属性,需要在属性名称加上前缀,Webkit 引擎的浏览器为 “-webkit-”,Firefox 则为 “-moz-”。

您可以为每个边角指定不同的值。注意:Firefox 和 Webkit 的边角属性名称是不相同的。

Box Shadow

盒阴影的结构和 text-shadow 相同,x 轴偏移,y 轴偏移,模糊,颜色。

同样,您可以设置一个以上的盒阴影。下面是三个盒阴影声明示例。

-moz-box-shadow:
-2px -2px 0 #fff,
2px 2px 0 #bb9595,
2px 4px 15px rgba(0, 0, 0, .3);

英文原稿:The Basics of CSS3 | WebDesignWall

翻译整理:CSS3 基本要素概览 | 孟晨

[转载]一个Demo让你掌握所有的android控件

mikel阅读(1026)

[转载]一个Demo让你掌握所有的android控件 – qianqianlianmeng – 博客园.

有新的则更新 

属性

说明

android:orientation

horizontal/vertical

设置布局水平还是垂直,默认是垂直

Android:checked

true/false

标记默认选中,如果是单选则选中最后一个

Android:layout_gravity

center/right/left/bottom/top

位置

android:gravity

center/right/left/bottom/top

位 置(android:gravity属性是对该view内容的限定.比如一个button上面的text.你可以设置该text在view的靠左,靠右等 位置.该属性就干了这个.android:layout_gravity是用来设置该view相对与起父view的位置.比如一个button在 linearlayout里,你想把该button放在靠左靠右等位置就可以通过该属性设置.)

android:hint

@string

提示信息,当文本框为空的时候显示

android:numeric

integer/decimal

只能输入整数/小数

android:singleLine

true/false

设置单行输入,一旦设置为true,则文字不会自动换行

android:password

true/false

设置密码框

android:textColor

#ffffff

字体颜色

android:textStyle

bold/italic/bolditalic

设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

android:textSize

20dip

字体大小

android:capitalize

characters

设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到

android:textAlign

center/right/left

设置文字显示位置,EditText没有这个属性,但TextView有

android:autoText

true/false

如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。

android:editable

true/false

是否可编辑

android:textColorHighlight

#ffffff

被选中文字的底色

android:textColorHint

#ffffff

设置提示信息文字的颜色,默认为灰色

android:textScaleX

1.5

控制字与字之间的间距

android:typeface

normal/sans/serif/monospace

android:background

@null

空间背景,这里没有,指透明,将EditText自定义的背景去掉

android:layout_weight

1

权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的。

android:textAppearance

textAppearanceButton、 textAppearanceInverse、textAppearanceLarge、

textAppearanceLargeInverse、 textAppearanceMedium、textAppearanceMediumInverse、

textAppearanceSmall、 textAppearanceSmallInverse

设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。

android:autoLink

none、web、email、phone、map、all

设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。

android:cursorVisible

true/false

设定光标为显示/隐藏,默认显示。

android:digits

1234567890.+-*/%\n()

设置允许输入哪些字符。

android:drawableBottom

在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft

在text的左边输出一个drawable,如图片。

android:drawableRight

在text的右边输出一个drawable,如图片。

android:drawableTop

在text的正上方输出一个drawable,如图片。

android:drawablePadding

设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

android:editorExtras

指定特定输入法的扩展,如“com.mydomain.im.SOME_FIELD”。源码跟踪至EditorInfo.extras,暂无相关实现代码。

android:ellipsize

start、end、middle、marquee

设置当文字过长时,该控件该如何显示。有如下值设置:”start”省略号显示在开头;”end”省略号显示在结尾;”middle”省略号显示在中间;”marquee”以跑马灯的方式显示(动画横向移动)

android:freezesText

true/false

设置保存文本的内容以及光标的位置,再到相应的Activity中加上如下两个方法,实现方法网站找一下,这里不详细说明。

android:imeOptions

normal,actionUnspecified,actionNone,

actionGo,actionSearch,

actionSend,actionNext,actionDone,flagNoExtractUi,

flagNoAccessoryAction,flagNoEnterAction

设置软键盘的Enter键。可用’|’设置多个。

android:imeActionId

设置IME动作ID,在onEditorAction中捕获判断进行逻辑操作。

android:imeActionLabel

设置IME动作标签。但是不能保证一定会使用,猜想在输入法扩展的时候应该有用。

android:includeFontPadding

true/false

设置文本是否包含顶部和底部额外空白,默认为true。

android:inputMethod

为文本指定输入法,需要完全限定名(完整的包名)

android:inputType

设 置文本的类型,用于帮助输入法显示合适的键盘类型。有如下值设置:none、text、textCapCharacters字母大小、 textCapWords单词首字母大小、textCapSentences仅第一个字母大小、textAutoCorrect、 textAutoComplete自动完成、textMultiLine多行输入、textImeMultiLine输入法多行(如果支持)、 textNoSuggestions不提示、textEmailAddress电子邮件地址、textEmailSubject邮件主题、 textShortMessage短信息(会多一个表情按钮出来)、textLongMessage长讯息?、textPersonName人名、 textPostalAddress地址、textPassword密码、textVisiblePassword可见密码、 textWebEditText作为网页表单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numberSigned有符 号数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间日期、date日期、time时间。

android:linksClickable

设置链接是否点击连接,即使设置了autoLink

android:maxLines

设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示

android:minLines

设置文本的最小行数

android:lineSpacingExtra

设置行间距。

android:phoneNumber

true/false

设置为电话号码的输入方式。

android:privateImeOptions

提供额外的输入法选项(字符串格式)。

android:scrollHorizontally

true/false

设置文本超出TextView的宽度的情况下,是否出现横拉条。

android:selectAllOnFocus

如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。

android:shadowColor

指定文本阴影的颜色,需要与shadowRadius一起使用。

android:shadowRadius

设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

android:shadowDx

设置阴影横向坐标开始位置。

android:shadowDy

设置阴影纵向坐标开始位置。

android:textColorLink

#ffffff

文字链接的颜色.

android:maxHeight

设置文本区域的最大高度

android:minHeight

设置文本区域的最小高度

android:maxWidth

设置文本区域的最大宽度

android:minWidth

设置文本区域的最小宽度

android:clickable

true/false

view是否能对click事件作出反应

android:onClick

当 view被click之后,view的context的哪个方法被呼叫。通常这个context是指view所在的Activity。例 如:android:onClick=’sayHello’,则相应的Activity里面有一个方法public void sayHello(View view)方法,当这个view被click之后,sayHello方法就会被调用。

android:longClickable

true/false

view是否可以对长时间的click事件作出反应。

android:focusable

view是否能响应焦点事件

android:cacheColorHint

#00000000

滚 动时,列表里面的view重绘时,用的依旧是系统默认的透明色,颜色值为#FF191919,要改变这种情况,只需要调用 listView的setCacheColorHint(0),颜色值设置为0或者xml文件中listView的属性 Android:cacheColorHint=”#00000000″即可,滚动时,重绘View的时候就不会有背景颜色。

android:fadingEdgeLength

设置边框渐变的长度。

文章少于200个字不能发到首页,真实坑爹啊,这么好的文章,真的想跟大家分享的。

源码不会上传:给大家个地址就好 下载 AndroidBaseDemo.rar

[转载] DOCTYPE标签的深度剖析以及使用选择

mikel阅读(757)

[转载] 标签的深度剖析以及使用选择 – gumgum – 博客园.

前言:

今天被问道“有没有仔细了解过<!DOCTYPE>标签?”,愣了一下,因为一开始在W3cschool上看到过建议使用XHTML Transitional DTD, 之后就很听话地把Dreamweaver的HTML文档类型默认设置为XHTML 1.0 Transitional。之后就理所当然地一直用到现在了。人这东西还真是,越长大就越懒了,很多东西都被潜意识地当成了理所当然。既然已经被问及,就 去找了找资料,总结了一下,权当做笔记吧~~

<!DOCTYPE>的定义:

<!DOCTYPE>声明位于文档中的最前面的位置,处于<html>标签之前。此标签可告知浏览器文档使用哪种HTML或XHTML规范

该标签可声明三种DTD类型,分别表示严格版本、过渡版本以及基于框架的HTML版本。假如文档中的标记不遵循doctype声明所指定的DTD,这个文档除了不能通过代码校验之外,还有可能无法在浏览器中正确显示。)


<!DOCTYPE>的用法:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

解析:在上面的声明中,声明了文档的根元素是 html,它在公共标识符被定义为 “-//W3C//DTD XHTML 1.0 Strict//EN” 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。

:   表示组织名称未注册。Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织。

+为默认,表示组织名称已注册。

DTD : 指定公开文本类,即所引用的对象类型。 默认为DTD

HTML : 指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。默认为HTML。

URL  : 指定所引用对象的位置。

Strict:排除所有 W3C 专家希望逐步淘汰的代表性属性和元素。


三种HTML文档类型:

HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

a ) 如果需要干净的标记,免于表现层的混乱,用HTML Strict DTD类型:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” ” http://www.w3.org/TR/html4/strict.dtd”>

b )Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素. 如果用户使用了不支持层叠样式表(CSS)的浏览器以至于你不得不使用 HTML 的呈现特性时,用     Transitional DTD 类型:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” ” http://www.w3.org/TR/html4/loose.dtd”>

c ) Frameset DTD 被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” ” http://www.w3.org/TR/html4/frameset.dtd”>

三种 XML 文档类型:

XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。

a ) 如果需要干净的标记,免于表现层的混乱,用XHTML Strict DTD类型:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

b )Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素. 如果用户使用了不支持层叠样式表(CSS)的浏览器以至于你不得不使用 HTML 的呈现特性时,用     Transitional DTD 类型:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

c ) Frameset DTD 被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>


选择正确的doctype:

为了获得正确的doctype声明,关键就是让dtd与文档所遵循的标准对应。

例如,假定文档遵循的是xhtml 1.0 strict标准,文档的doctype声明就应该引用相应的dtd。

另一方面,如果doctype声明指定的是xhtml dtd,但文档包含的是旧式风格的html标记,就是不恰当的;类似地,如果doctype声明指定的是html dtd,但文档包含的是

xhtml 1.0 strict标记,同样是不恰当的。

如果没有指定有效的doctype声明,大多数浏览器都会使用一个内建的默认dtd。在这种情况下, 浏览器会用内建的dtd来试着显示你所指定的标记(不过这是页面写得太糟糕的时候的做法)。

看了一下京东、淘宝、还有博客园,用的都是这个(本人也一直都是用的这个):

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

但是发现百度跟谷歌用的是“<!doctype html>”,就再仔细查了一下资料,发现HTML5也是直接用的这个,不过是因为 HTML 5 不基于 SGML,因此不需要对 DTD 进行

引用,但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。

建议在以后都直接用“<!doctype html>”,用<!doctype html>的话就会开启浏览器的标准兼容模式,在标准兼容模式下,不能保证与其它版本(IE6之前的,直接忽略吧),的 Internet Explorer 保持兼容,文档的渲染行为也许与将来的 Internet Explorer 不同,但也请大家放心地使用吧~~


小贴士:

XHTML 1就是HTML 4.01的XML化,是一种不向前兼容的格式。

HTML 4.01 中的 doctype 需要对 DTD 进行引用,因为 HTML 4.01 基于 SGML。

SGML规定了在文档中嵌入描述标记的标准格式,指定了描述文档结构的标准方法,目前在WEB上使用的HTML格式便是使用固定标签集的一种 SGML文档。

[转载]UrlRewrite.dll实现无后缀名的地址映射

mikel阅读(861)

[转载]UrlRewrite.dll实现无后缀名的地址映射 – 哲 思 – 博客园.

1 首先在iis里配置通配符应用程序映射,如下图:

(在通配符应用程序映射中添加.net的处理程序C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,具体操作请改为自己的文件位置)

2在UrlRewrite配置文件中配置

<RewriterRule>

<LookFor>~/shop</LookFor>

<SendTo>~/product/shop.aspx</SendTo>

</RewriterRule>

3 配置以后就可以实现www.xx.com/shop  映射到   www.xx.com/product/shop.aspx了。

用哲学的头脑去思考问题!

[转载]UrlRewrite.dll实现无后缀名的地址映射

mikel阅读(865)

[转载]UrlRewrite.dll实现无后缀名的地址映射 – 哲 思 – 博客园.

1 首先在iis里配置通配符应用程序映射,如下图:

(在通配符应用程序映射中添加.net的处理程序C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,具体操作请改为自己的文件位置)

2在UrlRewrite配置文件中配置

<RewriterRule>

<LookFor>~/shop</LookFor>

<SendTo>~/product/shop.aspx</SendTo>

</RewriterRule>

3 配置以后就可以实现www.xx.com/shop  映射到   www.xx.com/product/shop.aspx了。

用哲学的头脑去思考问题!

[转载]css中px和em的战争

mikel阅读(1017)

[转载]px和em的战争 – § 薄樱 § – 博客园.

好吧。我承认我标题党了。

其实我就是想说px和em的区别,网上资料其实一堆堆,但是还不如自己试验总结的清楚。前端高手可能觉得这玩意简单,但是作为小猫,还是好好学一下。

下面一点点说~~~

px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。

任意浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。

为了简化计算,在css中的body选择器中声明Font-size=62.5%,这就使em值变为16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

就像这样:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
body{Font-size:62.5%}
.div_px{font-size:10px; border:1px red solid;width:120px; height:20px}
.div_em{font-size:1em; border:0.1em red solid;width:12em; height:2em}

</style>
</head>

<body>
<div class="div_px" >1、这里是div_px</div><br/>

<div class="div_em" >2、这里是div_em</div><br/>

<br/>
</body>
</html>

效果如下:

这两个div基本是一样的。

但是,如果仅仅是这样,那就好办了。直接替换就好了。

‘em会继承父级元素的字体大小’这条,要了亲命了。。。

比如这样的一个页面:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body{Font-size:62.5%}

.div_out{font-size:1em; border:1px red solid;width:12em; height:4em  }
.div_in{ font-size:1em; border:1px blue solid;width:12em; height:4em  }
</style>
</head>

<body>

<div class="div_out" >
    3、这是div_out
    <div class="div_in" >
        4、这是div_in
    </div>
</div>
<br/><br/><br/><br/><br/><br/><br/><br/>
<div class="div_in" >
    5、这是在外面的div_in
</div>

</body>
</html>

这里有3个div,3和4是套在一起的,5是作对比的。

现在的效果是这样的:

恩,看起来这几个div效果是一样的,div_out和div_in的设定,font-size都是1em,所以继承没有表现出来。

通过检测,3和4的字体都是10px,长度都是122px,宽度都是42px。(设置了border,所以多了2px)

现在改一下:

.div_out{font-size:1.5em; border:1px red solid;width:12em; height:4em  }

效果是这样的

很明显,前两个div变大了,说明。。。
红框的div_out,由于font-size设置了1.5em,真实字体大小是10*1.5=15px,宽度12*10*1.5=180px;高度4*10*1.5=60px (没有计算border)

样式div_in没有做更改,font-size仍然是1em,但是嵌套在3里面的4号div和5效果不一样,4继承了div_out。

再来一个:

.div_out{font-size:1.5em; border:1px red solid;width:12em; height:4em  }
.div_in{font-size:1.5em; border:1px blue solid; width:12em; height:4em  }

这次把两个样式的font-size都设置为1.5em。看看效果。


这是为什么呢。。

3号div真实字体大小是10*1.5=15px,宽度12*10*1.5=180px;高度4*10*1.5=60px (没有计算border)

5号div真实字体大小是10*1.5=15px,宽度12*10*1.5=180px;高度4*10*1.5=60px (没有计算border)

4号div真实字体大小是10*1.5*1.5=15px,宽度12*10*1.5*1.5=270px;高度4*10*1.5*1.5=90px (没有计算border)

……………………………………………………………………………………………………………………………………………………………………………………………………………………

如果都用px,那么完全没有问题,你设置多少就是多少,不会让人计算的头晕。我平时都用px作为字号,宽度,高度等的单位,唯一用到em的就是字体缩进。

关于px和em各位还有什么要注意的,如果能告诉我,感激不尽。谢谢!

[转载]创建基于HTTP协议的SVN版本控制服务

mikel阅读(1113)

[转载]创建基于HTTP协议的SVN版本控制服务 – XueM – 博客园.

说明:本文没有讨论什么技术问题,仅仅是自己在使用SVN进行版本控制时的创建过程,或许有人对此不太熟悉,希望对这个感兴趣的有帮助。

虽说现在好多人都已经使用Git作为版本控制,Git在分支管理和性能上着实不错,但是要是办公环境里依然使用SVN,这个可能对新手快速上手就有些用处了。

准备:

操作系统:Debian 6

Web服务器:Apache2

SVN服务端:Subversion

SVN工具:Subversion-tools(可选)

支持SVN的Apache模块:libapache2-svn

1.安装软件:

sudo apt-get install apache2 subversion subversion-tools libapache2-svn

2.检查Apache是否安装好:

浏览器输入:http://localhost:80/ 是否有 It Works显示

3.检查Subversion是否安装成功:

终端进入一个新建的文件夹,运行明令:svnadmin create ./(命令:在当前文件夹下创建版本控制库)

查看文件夹内容是否包含 confdavdbhookslocks文件夹以及format、README.txt文件。

4.检查libapache-svn是否安装成功:

进入/etc/apache2/mods-availables文件夹,查看是否包含dav.load dav_svn.conf dav_svn.load文件。

5.创建版本控制库:

如上(3)中的命令,我们这样就可以创建一个版本库。本文中我们在/home/meego/repo/文件夹创建。

6.配置Apache服务,使用Apache访问版本控制库。

6.1进入/etc/apache2/(Apache2配置文件所在的文件夹),首先检查dav模块以及dav_svn模块是否已经启动。

Debian中管理Apache模块是否启动的方式是:模块是否存在与/etc/apache2/mods-enabled/文件夹中,所以只需在

/etc/apache2/mods-enabled中检查dav.load dav_svn.conf dav_svn.load这三个文件是否存在就可以。

如果不存在:将其从mods-availables中拷贝过来,或是创建链接。

创建链接命令:

sudo ln -s /etc/apache2/mods-availables/dav.load /etc/apache2/mods-enabled/dav.load;

sudo ln -s /etc/apache2/mods-availables/dav_svn.load /etc/apache2/mods-enabled/dav_svn.load;

sudo ln -s /etc/apache2/mods-availables/dav_svn.conf /etc/apache2/mods-enabled/dav_svn.conf;

6.2创建Apache站点

编辑/etc/apache2/mods-enabled/dav_svn.conf文件:

<Location /svn>
  DAV svn

  SVNPath /home/meego/repo

  AuthType Basic
  AuthName "Meego SVN Repo"
  AuthUserFile /etc/apache2/dav_svn.passwd

  AuthzSVNAccessFile /etc/apache2/dav_svn.authz

  Require valid-user
</Location>

注意上面的SVNPath要设置成你创建的版本库所在的文件夹。

6.3创建SVN用户、密码、SVN权限设置:

上面的站点文件中AuthUserFile即为SVN用户密码文件,其中密码使用MD5加密,这个文件的生成需要一个命令htpasswd。

htpasswd具体使用,可man一下。

现在创建一个用户:xuem(本文中使用的用户名)

htpasswd -c /etc/apache2/dav_svn.passwd xuem

注意:上面的xuem修改成你自己要创建的用户名。

执行命令后,输入用户密码即可。可以打开dav_svn.passwd文件看一下。

-c 参数表示创建新的dav_svn.passwd,所以创建第2个用户的时候,就不要加此参数。

上面站点配置中dav_svn.authz文件,就是SVN的权限设置,可以手动创建一个。

内容设置跟Subversion中conf文件下的authz文件配置方法一样:

[groups]
admin = xuem

[/]
* = r
@admin = rw

对于Authz文件的详细设置可以参考Subversion的文档。

7.配置完毕。

现在你可以在浏览器中输入:http://localhost:80/svn来访问你的版本库文件。

8.如果访问不成功:

8.1出现403错误:

这种错误主要是你的目录权限以及你的Apache运行用户的权限问题。再此说明Apache2运行用户要有你的版本控制库所在的文件夹的权限。

Debian下的Apache2运行用户是www-data.可以在/etc/apache2/envvars中设置:

分别是APACHE_RUN_USER和APACHE_RUN_GROUP项。

这里你可以设置成你创建版本控制库的用户。

或是将你的版本库的权限赋给www-data用户:

方法是终端运行:

sudo chown -R www-data:www-data /home/meego/repo

注意上面的路径改成你的版本库所在的路径。

8.2出现errorcode=’x’的错误:

这样的错误多数在于站点设置中设置的SVNPath不对,或是你设置了SVNParentPath而不是SVNPath。

SVNParentPath用于支持多个版本库的情况,如果只有一个版本库,只需设置SVNPath就足够了。

9.如果你还没有设置好,可以查看一下Apache的错误日志。

也可以留言,大家一起谈论。这些都不是技术上的问题,花太多的时间研究这个还不如去泡MM呢,设置好能用就行了。

没必要都研究一遍,希望此文可以为你节省一点时间。

XueM:www.cnblogs.com/daydayfree