成都网站建设设计

将想法与焦点和您一起共享

flutter技巧,flutter 方法

各类游泳(如蛙泳……)、体操英语表达

一. 游泳的基本词汇

公司主营业务:网站建设、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出下花园免费做网站回馈大家。

把脸埋入水中(词组): put face in water

吐气泡(词组): blow bubbles

漂浮(动词): float

游泳(动词): swim, bathe

趟水(动词):wade

池中嬉戏: play in pool

跳水(动词):dive

跳入泳池:jump in pool

技巧: technique

二. 游泳的竞技比赛用词

strokes (stroke的复数)用作表示 methods of swimming 游泳方法,包括:

1.蝶泳:Butterfly 或简称 fly

海豚式踢腿动作被称为 dolphin kick (kick=踢)

2.仰泳:Backstroke, racing backstroke, 或 back crawl

踢腿动作被称为 浅打水:flutter kick

3.蛙泳:Breaststroke

蛙式踢腿动作 frog kick, modified frog kick or whip kick

4.自由泳:Freestyle, front crawl 或 forward crawl

二十世纪初有两种提高速度的发展 Australian Crawl (澳大利亚式)与 American crawl (美国式)

5.个人混合泳:Individual Medley (IM)

指一个人连续游上述四种样式,每种姿势距离为100,200 或400米

6.四人接力:relay

每个人的赛程叫 leg,最后一位选手被称为anchor

三. 其他:知识 花絮

..侧泳:Sidestroke

剪刀式踢腿 scissors kick

..狗爬式游泳: Dog Paddle

..爬泳:Trudgen Crawl

..“溺死的蛾子” = 通常形容人们第一次尝试蝶泳的样子:Drowning moth

..踏水:Treading water 不是一种姿势。它是一套使游泳者在水中身体保持竖直的腿部动作。

水球运动员常依靠它。水球:Water polo 运动员们:players

..同游表演:Synchronized swimming 被称为 = 花样游泳:water ballet 成对表演(2-8人)

..游泳道的分界线:lane lines 有时是人的“救生索” lifelines

通常不许人靠在上面的原因有四:

1)他们不结实,会断

2)救生员会认为你有危险 救生员:lifeguard

3)真正有困难的人更不容易及时扶到了

4)把它压下去,它失去了边界警示的功能

四.大家平时都接触的(实用的:)

女游泳衣: swimsuit

男式游泳短裤: swimming trunks (永远用复数形式,因为泳裤两条腿)

游泳帽:swimcap

游泳镜: swimming google 防雾: anti-fog 防紫外线镜片: UV Protection Lens

游泳装备: swim gear

踢水板: kickboard 双手扶上面,腿来踢水

漂浮物: floats 绑胳膊上的

耳/鼻夹子:ear/nose clip

脚蹼:swim fins

秒表:stopwatch

(小孩子带到水中的)泳池玩具: pool toy

穿上泳衣 (女孩):put on swimsuit (男孩):put on swimming trunks

梳子: hairbrush

淋浴(名词): shower

香波(名词): shampoo

洗头(动词): shampoo

坐在池边: sit on edge

从池中出来: get out of pool

池边地滑: slippery by pool

擦干身体: dry off

穿上衣服: get dressed

游泳池: swimming pool

波浪池: wave pool

儿童池(浅水池): wading pool

水上滑梯:water slide

泳道: lane

把泳道分开的漂浮线:lane lines

环绕游泳:Circle Swim 是 游泳礼节:lane etiquette 两人以上在同一泳道,始终贴近身体右边的泳道线,并间隔五秒的距离

不在池中方便: don't pee in pool

救生衣: life jacket

救生圈:ring buoy

救生员: lifeguard

游泳教练: swimming instructor,coach

flutter 基于pageview 制作上下轮播文字功能

先制作一个纵轴滚动的pageview

然后我们利用time组件实现自动轮播,这里面有个小技巧,掌握了这个小技巧就可以做无缝的循环播放,比如我有 a b c三项,我们在构造pageview item的时候人为的构造成a b c a,在c的后面加上a,当c滚动到a的时候,比如每次动画变换时间是500毫秒,那么就延迟500好秒快速的跳到第一个a页面,刚好等它滚动完就快速变换

在视觉上完全看不出来,这样就造成了无缝循环滚动的假象,同理如果你想反方向也可以无缝循环滚动,那么你在构造pageview item的时候就可以 这样c a b c a构造,只要控制好逻辑,完全没有任何问题

Flutter 小技巧之优化你使用的 BuildContext

Flutter 里的 BuildContext 相信大家都不会陌生,虽然它叫 Context,但是它实际是 Element 的抽象对象,而在 Flutter 里,它主要来自于 ComponentElement 。

关于 ComponentElement 可以简单介绍一下,在 Flutter 里根据 Element 可以简单地被归纳为两类:

所以一般情况下,我们在 build 方法或者 State 里获取到的 BuildContext 其实就是 ComponentElement 。

那使用 BuildContext 有什么需要注意的问题 ?

首先如下代码所示,在该例子里当用户点击 FloatingActionButton 的时候,代码里做了一个 2秒的延迟,然后才调用 pop 退出当前页面。

正常情况下是不会有什么问题,但是当用户在点击了 FloatingActionButton 之后,又马上点击了 AppBar 返回退出应用,这时候就会出现以下的错误提示。

可以看到此时 log 说,Widget 对应的 Element 已经不在了,因为在 Navigator.of(context) 被调用时, context 对应的 Element 已经随着我们的退出销毁。

一般情况下处理这个问题也很简单, 那就是增加 mounted 判断,通过 mounted 判断就可以避免上述的错误 。

上面代码里的 mounted 标识位来自于 State , 因为 State 是依附于 Element 创建,所以它可以感知 Element 的生命周期 ,例如 mounted 就是判断 _element != null; 。

那么到这里我们收获了一个小技巧: 使用 BuildContext 时,在必须时我们需要通过 mounted 来保证它的有效性 。

那么单纯使用 mounted 就可以满足 context 优化的要求了吗 ?

如下代码所示,在这个例子里:

由于在 5 秒之内,Item 被划出了屏幕,所以对应的 Elment 其实是被释放了,从而由于 mounted 判断, SnackBar 不会被弹出。

那如果假设需要在开发时展示点击数据上报的结果,也就是 Item 被释放了还需要弹出,这时候需要如何处理 ?

我们知道不管是 ScaffoldMessenger.of(context) 还是 Navigator.of(context) ,它本质还是通过 context 去往上查找对应的 InheritedWidget 泛型,所以其实我们可以提前获取。

所以,如下代码所示,在 Future.delayed 之前我们就通过 ScaffoldMessenger.of(context); 获取到 sm 对象,之后就算你直接退出当前的列表页面,5秒过后 SnackBar 也能正常弹出。

为什么页面销毁了,但是 SnackBar 还能正常弹出 ?

因为此时通过 of(context); 获取到的 ScaffoldMessenger 是存在 MaterialApp 里,所以就算页面销毁了也不影响 SnackBar 的执行。

但是如果我们修改例子,如下代码所示,在 Scaffold 上面多嵌套一个 ScaffoldMessenger ,这时候在 Item 里通过 ScaffoldMessenger.of(context) 获取到的就会是当前页面下的 ScaffoldMessenger 。

这种情况下我们只能保证Item 不可见的时候 SnackBar 还能正常弹出, 而如果这时候我们直接退出页面,还是会出现以下的错误提示,因为 ScaffoldMessenger 也被销毁了 。

所以到这里我们收获第二个小技巧: 在异步操作里使用 of(context) ,可以提前获取,之后再做异步操作,这样可以尽量保证流程可以完整执行 。

既然我们说到通过 of(context) 去获取上层共享往下共享的 InheritedWidget ,那在哪里获取就比较好 ?

还记得前面的 log 吗?在第一个例子出错时,log 里就提示了一个方法,也就是 State 的 didChangeDependencies 方法。

为什么是官方会建议在这个方法里去调用 of(context) ?

首先前面我们一直说,通过 of(context) 获取到的是 InheritedWidget ,而 当 InheritedWidget 发生改变时,就是通过触发绑定过的 Element 里 State 的 didChangeDependencies 来触发更新, 所以在 didChangeDependencies 里调用 of(context) 有较好的因果关系 。

那我能在 initState 里提前调用吗 ?

当然不行,首先如果在 initState 直接调用如 ScaffoldMessenger.of(context).showSnackBar 方法,就会看到以下的错误提示。

这是因为 Element 里会判断此时的 _StateLifecycle 状态,如果此时是 _StateLifecycle.created 或者 _StateLifecycle.defunct ,也就是在 initState 和 dispose ,是不允许执行 of(context) 操作。

当然,如果你硬是想在 initState 下调用也行,增加一个 Future 执行就可以成功执行

那我在 build 里直接调用不行吗 ?

直接在 build 里调用肯定可以,虽然 build 会被比较频繁执行,但是 of(context) 操作其实就是在一个 map 里通过 key - value 获取泛型对象,所以对性能不会有太大的影响。

真正对性能有影响的是 of(context) 的绑定数量和获取到对象之后的自定义逻辑 ,例如你通过 MediaQuery.of(context).size 获取到屏幕大小之后,通过一系列复杂计算来定位你的控件。

例如上面这段代码,可能会导致键盘在弹出的时候,虽然当前页面并没有完全展示,但是也会导致你的控件不断重新计算从而出现卡顿。

所以到这里我们又收获了一个小技巧: 对于 of(context) 的相关操作逻辑,可以尽量放到 didChangeDependencies 里去处理 。

肚皮舞21种西米分别是什么(就是分别的名称)

你看看这个吧,比只知道西米的种类更能有启发

以下文章由台湾肚皮舞大师李梅林老师编写!

在梅林老师开始学肚皮舞技巧时,

对於Shimmy有著相当大的困惑,

看了许多网站以及文字资料,

Shimmy有著各式各样不同的名称以及派别,

说实在话,

当时我并不太清楚所学的Shimmy的由来以及派别,

直到近年,

慢慢跟著国外的老师学习,

并且看了许多相关资料,

对於Shimmy开始慢慢有了系统化的认识以及了解.

Shimmy这个动作所带来的成就,

也慢慢的在身体中形成.

虽跟国际大师的技巧来相比,

还有段距离,

但是对Shimmy的理解以及成就感,

让我有这种动力跟大家分享.

Shimmy并不是用力就可以做到的动作.

一个好的Shimmy技巧不仅是动作平均,

更是要稳定且持久.

从部落民族的生活型态演变到现代

Shimmy技巧已经远远超过最原始的动作型态,

现今舞者的Shimmy动作越来越花俏,

让人眼花撩乱,

但回归到最基本面,

Shimmy究竟可以分成多少种类呢??

Shimmy 的种类

Shimmy基本可区分成三大类 : (

第一类: Counting Shimmy(数拍Shimmy) 或 Walking Shimmy (走路Shimmy) qiuqiu注:hagallah也是此shimmy的一种

在美国,舞者多使用这种Shimmy,

Walking Shimmy的特色是由脚步(Step)搭配臀部动作,

主要使用的肌肉是臀肌,

利用重心脚的转换以及臀部上下方向的控制,

在固定的节奏下做出变化.

最常使用到的就是3/4 Shimmy ( Three Quarter Shimmy )

这种Shimmy简单的说,

即是在四拍的节奏中,

臀部以上下方向为主做出三拍动作,

在第四拍时空拍,

通常我都以”上-下-上-and” 或者 ”下-上-下-and “的指令教导学生

第四拍的and即为空拍,

舞者必须学著在第四拍时控制住臀部不动,

左右臀部相互轮流,

在速度慢时,

可以很清楚的看到舞者臀部与节奏之间的关系,

但速度加快时,

臀部的动作看起来就很类似Shimmy,

也是为何称之为Counting Shimmy.

此种Shimmy若练习的好,

看起来相当好看,

但若臀部节奏动作不够熟练,

或者脚步重心转换不够俐落,

看起来就会很糟糕.

这种Shimmy因为以臀部肌肉为主,

并搭配重心脚的转换,

让舞者可以很轻松的移动,

所以才又称之为Walking Shimmy.

有的舞者会加些变化在基本的3/4 Shimmy中,

比如会在臀部上下的同时加上臀部外推,

看起来臀部动作就相当大,

有些舞者称之为Ghawazee Shimmy,

或者加上臀部往前画圆的变化,

这个动作即为大家所熟知的Hagallah,

若臀部加入Maya的动作,

强调侧腹肌与臀部的同时使用,

即为Rachel Brice最常用的Over Shimmy,

相当有趣!!

为什麼这种Shimmy现在在美国相当受欢迎,

而非在中东国家(埃及,土耳其,黎巴嫩)呢??

在60.70年代时,

埃及的舞者是以Walking Shimmy没错,

也常常在埃及歌舞片中看到,

此种Shimmy最早是埃及传统民俗舞蹈中所发展出来的,

且仅有男性舞者会表演,

女性舞者是不会此种技巧的.

有趣的是,

埃及当地教授传统民俗舞蹈的老师并不认为这是Shimmy的一种,

会在美国开始流行,

主要是是70年代的舞蹈大师Jamila Salimpour

从埃及歌舞片中看到这种Shimmy之后,

撷取成为她个人教学系统里面的一环,

命名为3/4 Shimmy,

持续不断的指导学生练习,

这麼多年来影响相当多的舞者以及老师,

也让70年代当时没有太多教学经验的老师们开始重视系统化教学,

将此种Shimmy传承至今,

尤其是跳部落风格舞蹈的舞者,

使用的Shimmy多是此种Walking Shimmy.

也是为何美国舞者多是使用此种Shimmy的最主要原因.

顺带一提,

另外还有一种与3/4 Shimmy相当接近的Shimmy

即是2/4 Shimmy,

刚开始学生还无法掌握3/4 Shimmy技巧时,

通常都会作成2/4 Shimmy.

此动作就是四拍当中做两拍往上或者往下的动作.

不过此动作速度加快时,

美感不如3/4 Shimmy,

建议大家勤练3/4 Shimmy,

对技巧上的精进有相当大的帮助!!!

第二类: The Leg Shimmy(腿部Shimmy) 或 Knee Shimmy (膝盖Shimmy)

此种Shimmy除了上述的两种说法之外,

也有Lebanese Shimmy (黎巴嫩Shimmy)

Straight Legged Shimmy (腿部打直Shimmy)等不同的名字

但基本上都是以大腿或者膝盖为主要施力点.

严格的说,

在70年代之前历史上没有此种Shimmy.

是70年代之后才开始在埃及发展出来的,

所以通常也称之为Egyptian Shimmy,

对於此种Shimmy的起源,

目前有两种说法,

一种说法是在70年代,

由埃及三位大师- Ibrahim Akef , 以及Raqia Hassan所创,

另一种说法是90年代中,

Raqia Hassan在大师营教导授课时,

她忽略了说明Shimmy这个动作,

她的学生以为是利用膝盖的前后拍打带动臀部动作,

便一直沿用到现在.

此种Shimmy主要是由腿部的前后拍打动作带动臀部,

臀肌基本上是不必使力的,

仅透过腿部打直的大腿快速前后拍打,

臀部自然就会著腿部开始震动,

也是为何称之为The Leg Shimmy,

也有些舞者在做此动作时,

是透过膝盖前后拍打,

也会有同样的效果,

所以称之为Knee Shimmy.

如果力道大的话,

舞者不仅是臀部,

上半身至头顶甚至於头发都会随之震动,

此种Shimmy称之为Whole-Body Shimmy (全身Shimmy)

或者Earthquake Shimmy (地震Shimmy) !!

因为此种Shimmy主要是以膝盖为发动力点,

舞者比较容易练习上手,

也可以比较长时间做此动作.

但舞者在表演时很难同时移动,

也无法做出Level Change(高度)的变化,

下次观赏舞者表演时,

你会发现,

埃及风格的舞者多是停留在定点之后才做此Shimmy,

且绝对不会有高度变化.

虽没有高度以及移动变化,

此种Shimmy却加入了臀部水平绕圈的变化

" Horizontal Circle Shimmy "

也就是臀部一边水平绕圆一边Shimmy.

并搭配节奏做出不同强弱力度,

也有舞者喜欢表演One Leg Shimmy,

将重心放在单脚上,

另一只脚脚尖下压并打直,

以膝盖做出微小拍打,

让侧边身体可以作出细致的Shimmy动作,

并搭上变化多端的手势以及手臂动作

这几个动作相当的好看,

许多舞者喜欢这些技巧,

可以看出舞者在肌肉以及力道上的控制.

如果舞者的大腿或者膝盖的力道没有控制好,

又刚好穿著较短或者较紧的裙子,

那视觉效果可就大打折扣了….

此种Knee Shimmy跟Walking Shimmy比较起来,

初入门的舞者者比较容易上手,

但此种Shimmy近年来争议较多,

主要是因为长期过度使用膝盖,

对舞者的身体有相当的伤害,

不过也有些埃及的舞者强调,

即便是Knee Shimmy,

腿部也并非打直,

还是需要略为屈膝以保护膝盖,

各方说法不同,

但练习时还是以保护自己身体为主要前提.

第三类: The Hip Vibration Shimmy (臀部震动Shimmy) 或 Glutes Shimmy (臀肌Shimmy)

此种Shimmy与前两项Shimmy不一样的是,

既不用膝盖,也不用臀部上下移动来做出Shimmy变化,

仅用人类身体中面积最大的肌肉-臀肌做出来的技巧.

所以称之为Hip Vibration Shimmy.

此种Shimmy是臀部维持在同一位置

利用下臀肌(靠近大腿交界处)垂直往上提拉放松做出肌肉的变化.

也因为不需要与脚步(Step)配合,

所以做此种Shimmy时,舞者可以很轻松的移动,

也可以做出许多不同的高度变化,

有些舞者甚至可以坐在地板上展现此种Shimmy的技巧.

也因为仅使用到臀肌,

舞者也可以搭配身体其他肌肉,比如下腹肌等等,

做出各式各样的Shimmy变化.

相当好看.

此种Shimmy很多老师没有将之归类在教学中,

主要是许多老师还不清楚有此种Shimmy的存在,

甚或老师自己都还不会此种技巧,

也因为此种Shimmy的难度较高,

通常都是学习有一定程度之后老师才开始教授此技巧.

在练习Hip VibrationShimmy时,

要注意使用的肌肉区域仅在臀肌,

若直视镜子,

臀部(骨盆)从头到尾都不会有任何上下或者平移的变化,

从侧面看镜子,

会看到臀肌上提下放,

站立时需要屈膝,

大腿放松,

坐在地板上练习也是一个好方法,

但注意大腿要放松,

仅用臀肌往上提拉及放松,

身体其他部位都不动

也因为身体几乎都不动,

此种Shimmy也有人称之为Freeze Shimmy.

当左右臀肌可以跟著节奏变化时,

速度也可以跟著加快,

所以肌肉力道可以控制住时,

就可以跟著节奏速度加以变化,

但也有的舞者觉得,

因为动作太小,

所以若表演场合跟观众有所距离时,

观众可能很难察觉舞者此种细小动作.

此种Shimmy的起源也说法不一,

一种说法是从埃及,

在埃及,

部分舞者也会使用此种Shimmy,

主要是搭配Kanoon或者Oud等弦乐器,

展现小巧变化的舞蹈技巧,

埃及地区的部分舞者也称此种技巧为”Rashe”.

另一种说法是起源於非洲,

在非洲许多部落民族会模仿大自然界中的动物,

并在仪式舞蹈中呈现.

几个世纪前,

非洲裔人民大量移至美洲以及中美洲,

也将此动作带入了生活中,

若有机会到牙买加等中美洲旅游,

你将会很惊讶牙买加舞者对於Hip VibrationShimmy技巧之高超,

绝对颠覆埃及舞者以及我们的想像!!!

第四类: Other Shimmy (其他Shimmy )

除了上述三种Shimmy之外,

其实还有许多种Shimmy,

这些Shimmy或是因为动作无法自成系统,

或是因为非臀部的动作,

或是因为特定国家舞者的特色而有所不同,

但我认为,

广义的接纳以及认识才能将眼界打开,

所以也将上述这些无法自成一个系统的Shimmy整理出来跟大家分享.

Upper Body Shimmy 上半身Shimmy

在Upper Body Shimmy中,

又包含了Shoulder Shimmy(肩膀Shimmy)、

Chest Shimmy(胸部Shimmy)、

Shoulder Thrust(肩膀振动)

以及African Shimmy(非洲Shimmy)四种不同的Shimmy.

Shoulder Shimmy是透过肩膀前后摆动所构成,

通常在做此动作时,

需注意施力点是以肩膀为主,

当速度加快时即变成Shoulder Shimmy.

与Shoulder Shimmy相当接近的动作是Chest Shimmy.

这个动作与Shoulder Shimmy比较起来,

动作幅度较小,也较显优雅.

主要是以后背肩胛骨处肌肉发动,

肩膀放松不动,

手臂也不动,

仅有胸部微小的摆动,

故称之为Chest Shimmy.

上半身的Shimmy中也有一种Shoulder Thrust的变化式

是以Chest Shimmy为主,

但在动作上加上了肩膀上提的变化,

同时使用了后背以及肩膀两块不同的肌肉,

通常在教学生时,

我都以”上-前-上-后”的指令引导学生练习,

要将Shoulder Thrust练到优雅且好看,

需要花些时间以及精力,

一旦练起来,

此动作真的相当好看.

最后一种是在台湾比较少见的,

主要是利用上腹部的肌肉快速将胸部上提下放,

连著带动上半身的震动,

称之为African Shimmy.

还有一种有些老师不归类在Upper Body Shimmy中,

但我想跟大家一提的就是Flutter(腹部拍动),

这个动作是透过上腹肌快速的内收外放,

同时带动下腹肌做出有如蝴蝶翅膀快速拍动的动作,

而有Shimmy的效果.

这个动作我曾2005年在东京与Rachel Brice请教过,

依照她的方式,

需闭气练习此动作,

所以当我看到Rachel Brice可以面不改色

一边跳舞一边至少做四个八拍的Flutter,

对她可是相当的佩服.

Twist Shimmy 扭动Shimmy

许多舞者都很熟悉的Twist Shimmy,

也有人称之为Tunisian Shimmy (突尼西亚Shimmy)

此动作臀部需保持水平往右前方对角线平推之后,

再往右后方对角线平拉,

左右两侧轮流,

速度快时身体也会有些微的摆动,

在美国有些舞者称之为Washing Machine Shimmy

(洗衣机Shimmy)

但也有些人觉得这与Shimmy的文字定义不太相同,

并不将此动作归类於Shimmy.

Pelvic Shimmy 骨盆Shimmy

这可以算是Hip Shimmy中的变化式,

主要利用下腹部的肌肉提拉,

而不用到腰部肌肉以及臀部肌肉,

让骨盆自然前顷后提,

当下腹肌用力内收上提时,

骨盆自然往前,腰椎与脊椎成一直线,

但臀肌要放松,

下腹肌放松时,

骨盆即自然往后倾,

因为做这动作臀肌是放松的,

所以可以轻松加上Hip Shimmy,

即成Pelvic Shimmy.

Pelvic Drop Shimmy 骨盆下放Shimmy

这种土耳其特有的Shimmy,

与Pelvic Shimmy相当接近,

舞者同样使用下腹肌肉,

但动作较快速且小巧的让骨盆快速下放,

做出Shimmy的效果.

各位可观看下列影片,

看看舞者是怎麼做出这个漂亮的Pelvic Drop Shimmy

Bouncing Shimmy 跳跃Shimmy

这也是在土耳其舞者表演中常看到的Shimmy,

这种全身的Shimmy,

与埃及Knee Shimmy可以做到全身不太一样.

Bunching 是透过身体上下震动达到效果,

通常舞者做此动作时多透过脚踝,

上下踮带动身体垂直的震动,

虽脚部动作微小,

但却可以透过身体将震波扩大,

效果相当不错!!

现代的Shimmy种类相当多种类,

我在这边仅以我所阅读以及理解的方式加以整理,

其实还有许许多多Shimmy无法一一介绍,

但也希望这篇文章可以让不论初入门者,

或者各个舞者,

对Shimmy这个肚皮舞中,

相当重要的技巧有所认识以及了解.

flutter和ruffle的区别

使用的不同。

相比来说ruffle的使用更加的方便简单,不需要过多复杂的使用技巧,使用更加的方便快捷。


新闻标题:flutter技巧,flutter 方法
本文网址:http://chengdu.cdxwcx.cn/article/hoshcd.html