最详细的国画兰花画法教程

  categories:儿童画教程  author:

一般画上见到的兰花是蕙而不是兰,兰与蕙的区别主要在于一茎一花与一茎多花。

1

兰: 一根花茎只开一朵花

2

蕙:一根花茎开多朵花

 

兰有梅瓣、荷瓣和尖瓣之分。梅瓣,是说它的花片形圆近似于梅,点法上起笔也同于点梅瓣,行笔至末端向里出锋收笔;荷瓣,其形短肥而头尖近似荷花瓣,点法是用露锋笔尖朝上,先朝左点再向右折笔,后拖然后出锋;尖瓣,其形瘦长而尖,点法是露锋点入然后下按,再轻轻提笔至末端收笔出锋。

 

第一部分 画叶

3

画兰以叶为先,起首一笔,有钉头、鼠尾、螳螂肚之法。二笔交凤眼,三笔破凤眼,四笔、五笔宜间折叶。

4

成丛多叶,宜俯仰生动、交加而不重叠。

5

画兰叶切忌叶叶相匀、随意涂抹,每一笔都要蕴含着轻重缓急、起伏转折、浓淡虚实。要有“笔断意连”、“意到笔不到”之笔。

6

提笔与按笔的方向不同,叶子走势也不一样。

7

画丛兰要注意不要三笔交于一点。

8

画叶有顺笔、逆笔,由左至右为顺,由右至左为逆。初学宜先顺后逆,最后顺逆兼备。

9

画兰叶根部宜聚不宜散。

10

倒垂式应体会用笔变化。

 

第二部分 画花

 

写意兰花多使用水墨,墨色不宜过深、过重。一般兰叶深一些,兰花浅一些。要掌握花的正侧、向背、偃仰、含放、呼应以及在风、晴、雨、露条件下的变化。

11

画丛兰要注意不要三笔交于一点。花苞一般由一笔或两笔画成,半开的花由两到三笔组成,全放的花朵用五笔画出,用笔应由外向内一气呵成。

12

画叶有顺笔、逆笔,由左至右为顺,由右至左为逆。初学宜先顺后逆,最后顺逆兼备。点兰花苞要注意用笔的顿挫和连贯性。

13

画兰叶根部宜聚不宜散。

 

写意兰花花心要以重墨点出,一般为三点,下笔要干脆利落,犹如写草书的“心”、“山”、“上”、“下”字。古人云:“兰之点心,犹美人之有目。”

14

倒垂式应体会用笔变化。

15

是用草书的画法点兰花。

16

以楷书的笔法点兰;上两幅用笔虽不同,但道理是相通的。

17

花头的姿态变化。

 

兰花双钩法

18

 

19

双钩兰花法大致分为上两幅工笔、意笔两种,意笔双钩较之工笔轻重起伏变化大一些。然此法又较之工笔画法难度要大,需要具备一定的书法功底和写意画的能力。

 

本篇幅就兰花的叶和花的画法作了阐述,下篇针对花、叶组合来讲解。谢谢。

 

以下是兰花作品欣赏:

20

21

 … 阅读全文

dubbo分布式系统链路追踪_zipkin

  categories:资料  author:

基础知识储备

分布式跟踪的目标

一个分布式系统由若干分布式服务构成,每一个请求会经过多个业务系统并留下足迹,但是这些分散的数据对于问题排查,或是流程优化都很有限,要能做到追踪每个请求的完整链路调用,收集链路调用上每个服务的性能数据,计算性能数据和比对性能指标(SLA),甚至能够再反馈到服务治理中,那么这就是分布式跟踪的目标。

分布式跟踪的目的

zipkin分布式跟踪系统的目的:

  • zipkin为分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监控跟踪;
  • zipkin通过采集跟踪数据可以帮助开发者深入了解在分布式系统中某一个特定的请求时如何执行的;
  • 假如我们现在有一个用户请求超时,我们就可以将这个超时的请求调用链展示在UI当中;我们可以很快度的定位到导致响应很慢的服务究竟是什么。如果对这个服务细节也很很清晰,那么我们还可以定位是服务中的哪个问题导致超时;
  • zipkin系统让开发者可通过一个Web前端轻松的收集和分析数据,例如用户每次请求服务的处理时间等,可方便的监测系统中存在的瓶颈。

ZipKin介绍

  • Zipkin是一个致力于收集分布式服务的时间数据的分布式跟踪系统。
  • Zipkin 主要涉及四个组件:collector(数据采集),storage(数据存储),search(数据查询),UI(数据展示)。
  • github源码地址:https://github.com/openzipkin/zipkin。
  • Zipkin提供了可插拔数据存储方式:In-Memory,MySql, Cassandra, Elasticsearch

brave 介绍

Brave 是用来装备 Java 程序的类库,提供了面向标准Servlet、Spring MVC、Http Client、JAX RS、Jersey、Resteasy 和 MySQL 等接口的装备能力,可以通过编写简单的配置和代码,让基于这些框架构建的应用可以向 Zipkin 报告数据。同时 Brave 也提供了非常简单且标准化的接口,在以上封装无法满足要求的时候可以方便扩展与定制。

本文主要介绍springmvc+dubbo下的brave使用。

dubbo项目下快速搭建zipkin、brave追踪系统

1、zipkin安装使用

此处主要介绍linux下的安装使用,zipkin官网地址 http://zipkin.io/pages/quickstart.html

 wget  
阅读全文

使用 Zipkin 和 Brave 实现分布式系统追踪(基础篇)

  categories:资料  author:

Zipkin

一、Zipkin

1.1、简介

Zipkin 是一款开源的分布式实时数据追踪系统 (Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据,用来追踪微服务架构下的系统延时问题。

应用系统需要进行装备 (instrument) 以向 Zipkin 报告数据。Zipkin 的用户界面可以呈现一幅关联图表,以显示有多少被追踪的请求通过了每一层应用。

瀑布图

Zipkin 以 Trace 结构表示对一次请求的追踪,又把每个 Trace 拆分为若干个有依赖关系的 Span。在微服务架构中,一次用户请求可能会由后台若干个服务负责处理,那么每个处理请求的服务就可以理解为一个 Span (可以包括 API 服务,缓存服务,数据库服务以及报表服务等)。当然这个服务也可能继续请求其他的服务,因此 Span 是一个树形结构,以体现服务之间的调用关系。

Zipkin 的用户界面除了可以查看 Span 的依赖关系之外,还以瀑布图的形式显示了每个 Span 的耗时情况,可以一目了然的看到各个服务的性能状况。打开每个 Span,还有更详细的以键值对形式呈现的数据,而且这些数据可以在装备应用的时候自行添加。

Span 详细信息

从图中可以读出如下的调用关系:整个调用链中有两个微服务 service1 和

阅读全文

scribe、chukwa、kafka、flume日志系统对比

  categories:资料  author:

1. 背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1) 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;(2) 支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统;(3) 具有高可扩展性。即:当数据量增加时,可以通过增加节点进行水平扩展。

本文从设计架构,负载均衡,可扩展性和容错性等方面对比了当今开源的日志系统,包括facebook的scribe,apache的chukwa,linkedin的kafka和cloudera的flume等。

2. FaceBook的Scribe

Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统 (可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。

它最重要的特点是容错性好。当后端的存储系统crash时,scribe会将数据写到本地磁盘上,当存储系统恢复正常后,scribe将日志重新加载到存储系统中。

chukwa

架构

scribe的架构比较简单,主要包括三部分,分别为scribe agent, scribe和存储系统。

(1) scribe agent

scribe agent实际上是一个thrift client。 向scribe发送数据的唯一方法是使用thrift client, scribe内部定义了一个thrift接口,用户使用该接口将数据发送给server。

(2) scribe

scribe接收到thrift client发送过来的数据,根据配置文件,将不同topic的数据发送给不同的对象。scribe提供了各种各样的store,如 file, HDFS等,scribe可将数据加载到这些store中。

(3) 存储系统

存储系统实际上就是scribe中的store,当前scribe支持非常多的store,包括file(文件),buffer(双层存储,一个主储存, 一个副存储),network(另一个scribe服务器),bucket(包含多个 store,通过hash的将数据存到不同store中),null(忽略数据),thriftfile(写到一个Thrift TFileTransport文件中)和multi(把数据同时存放到不同store中)。

3. Apache的Chukwa

chukwa是一个非常新的开源项目,由于其属于hadoop系列产品,因而使用了很多hadoop的组件(用HDFS存储,用mapreduce处理数据),它提供了很多模块以支持hadoop集群日志分析。… 阅读全文

从锦囊妙计想到的07

  categories:资料  author:

前面几个, 我们都先回顾了很多内容才开始讲东西, 我们今天变化一下形式, 先讲个故事在说明事情。

着急的关羽

话说关羽写 完  烙饼的锦囊, 然后就同众兄弟一边喝酒, 一边等 张飞 烙好的 大饼, 等呀等, 这四百张饼, 都两个小时也没烙好。

关羽等等 肚子咕咕叫了,  心想 我这个三弟 是个 急脾气, 这次 干事情怎么这么慢, 关羽实在 等地不耐烦了, 迈步不厨房而来。

关羽同学一边走, 一边 大声说着, 三弟,三弟, 这饼烙的  如何这么时间长呀!

张飞听到了, 哭着脸说,  我就一个人, 两双手,已经忙的 不可开交了, 才烙了100张饼

一个人烙饼--累呀

 … 阅读全文

AndroidVideoCache:实现视屏播放边下边播

  categories:资料  author:

前言

现在在Android上实现视频播放已不是什么难事,这方面的轮子已经很多,不管是Google的 ExoPlayer、B站的 ijkplayer,还是一些其他的,基本上都能满足我们的需求。

但现在视频播放我们追求的是更好的用户体验:播放流畅,没有卡顿,不跳帧。因此,如何优化体验是一件十分重要的事情。

另外,做过视频播放的小伙伴都知道:在CDN的情况下,实现视频边缓冲边播是不可能的。而只有在P2P下才能实现视频边下边播。如果,产品经理让你实现边下边播的功能,你心里肯定一万只草泥马奔腾而过~,然后,还得耐心给她介绍:这功能实现不了,因为xxx实现不了,云云……

上面的问题真的就解决不了吗?在CDN下就真的不能边下边播吗?

其实,不然,AndroidVideoCache就能满足你的需求,解决上述问题

简介

AndroidVideoCache是国外大神Alexey Danilov写的一个android开源库。一个视频/音频缓存库,利用本地代理实现了边下边播,支VideoView/MediaPlayer,    ExoPlayer ,IJK等播放器的边下载边播放。集成简单,与业务无关。

代码的架构写的也很不错,很值得研究阅读和学习借鉴。网络用httpurlconnect,实现了文件缓存处理,文件最大限度策略,回调监听处理,断点续传,代理服务等功能。

目前 1.9k star,491个fork,最新版本2.7.0

特性

AndroidVideoCache是一个音视频边下边播缓存库,按照github列出支持的特性如下:

1、支持边下边播

2、流媒体磁盘缓存

音视频播放的时候会将多媒体数据存储于磁盘上面

3、资源离线缓存

如果播放的数据已经缓存,支持离线播放

4、局部加载

支持部分加载

5、缓存限制

可以设置缓存配置,如缓存的大小,允许最大的缓存文件数量

6、支持多客户端

对于同一个url地址请求源,允许有多个请求客户端链接

7、封装简单,容易集成到自己的项目,与业务无关

8.、采用本地代理模式实现边下边播

注意,AndroidVideoCache只对媒体文件使用直接url,它不支持任何流技术,如DASH,平滑流,HLS。

原理

项目的原理其实就是将url链接转化为本地链接 h t

阅读全文

从锦囊妙计想到的06

  categories:资料  author:

知识回顾

1. 分支结构

前面我们已经了解了 分支的情况, 分支做啥?  就是某些不确定的事情,若是甲事情发生,就做同甲相关的事情, 若是乙发生就做同乙相关的事情。

造成不确定的原因是, 在写锦囊的时候 没办法确定“将来” 执行锦囊(指令)的人(计算机)遇到到底啥情况, 因此 做锦囊时(写程序)时, 要考虑到不同情况发生

如下图:

分支结构

 

图中, 我们明确看到了, 两个分支, 分支1, 分支2, 同时在执行分支前, 有个 判断的 东西

上面过程(流程)  用通俗语言可以描述为

 

如果  xxx   情况发生    就做下面的事情

 锦囊x1

  锦囊x2

   等等

否则(就是没有发生上面的情况)就执行下面的事情

  锦囊y1

  锦囊y2

  锦囊y3阅读全文

分组密码模式: CBC模式(密码分组链接模式)

  categories:资料  author:

块加密

块加密,英文Block Cyper,又称分组加密,是一种常见的对称加密,具有代表性的块加密有DES,AES,3DES等。块加密的工作模式允许使用同一个分组密码密钥对多于一块的数据进行加密,并保证其安全性。

 

CBC模式是将前一个密文分组与当前明文分组的内容混合起来进行加密的,这样就可以避免ECB模式的弱点。

在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密,如下图所示:

c1

如果将一个分组的加密过程分离出来,我们就可以很容易地比较出ECB模式和CBC模式的区别,ECB模式只进行了加密,而CBC模式则在加密之前进行了一次XOR,如下图所示:

c2

 

当加密第一个明文分组时,由于不存在“前一个密文分组”,因此需要事先准备一个长度为一个分组的比特序列来代替“前一个密文分组”,这个比特序列称为初始化向量,通常缩写为IV。

 

CBC模式优点:

1. 不容易主动攻击, 安全性好于ECB, 适合传输长度长的报文, 是SSL、IPSec的标准

 

CBC模式缺点:

1. 不利于并行计算
2. 误差传递
3. 需要初始化向量IV

 

对CBC模式的攻击,截图来源自图解密码技术一书:

c3

 

c5

CBC模式的加密:

#include <STRING.H>

#define IN
#define OUT

//假设加密分组为4字节一组

/**************************************************************************
*功  能:    加密算法 (与Key异或)
阅读全文

ZipKin的原理的介绍

  categories:资料  author:

结构概述
  跟踪器(Tracers)存在在你的应用程序中生存,记录时间和关于操作的元数据。他们经常使用库,因此他们的使用对用户是透明的。例如,当它收到一个请求并发送一个响应时,一个感应器(instrumented )的web服务器记录。所收集的跟踪数据称为Span。

  在生产过程中,instrumention是安全的,并且没有太多的开销。由于这个原因,他们只在带内(in-band)传播id,告诉接收方有一个正在进行中的跟踪。完成的跨度被报告给Zipkin的“外带(out-of-band)”,类似于应用程序如何异步地报告指标。

  例如,当一个操作被跟踪,它需要发出一个传出的http请求时,会添加几个头来传播IDs。header不用于发送诸如操作名称之类的细节。

  将数据发送给Zipkin的应用程序的一种组件被称为Reporter。记者(Reporters)通过几个传输器(transports )中的一个传输跟踪数据到Zipkin收集器(collectors),这些收集器将跟踪数据保存到存储(storage)中。稍后,通过API查询存储,以向UI提供数据。

  下面是一个描述这个流程的图表:

  Zipkin architecture           

  要查看一个工具库是否已经存在于您的平台上,请参见清单

  existing instrumentations.

  示例流

 正如在概述中提到的,标识符被发送到带,而细节则被发送到Zipkin。在这两种情况下,跟踪工具都负责创建有效的跟踪并正确地呈现它们。例如,一个跟踪程序确保了它在带(下游)和带外(异步)的数据之间的奇偶性。

  下面是http跟踪的一个示例序列,其中用户代码调用资源/foo。这就产生了一个单一的Span,在用户代码收到http响应后,异步发送给Zipkin。

   

跟踪工具报告的范围是异步的,以防止延迟或故障与跟踪系统延迟或中断用户代码有关。

  Transport

   由测试库发送的数据(Spans)必须从追踪到Zipkin的collectors的服务中传输。有三种主要的传输方式:HTTP、Kafka和Scribe。

  Components  

 

  • collector
  • storage
  • search
  • web UI

 

  Zipkin Collector

    一旦跟踪数据到达了Zipkin Collector守护程序,就会被Zipkin的收集器进行验证、存储和索引。

  Storage

    Zipkin最初是为了存储Zipkin的数据而建立的,因为Cassandra是可扩展的,有一个灵活的模式,在Twitter上被大量使用。但是,我们使这个组件可插拔。除了Cassandra之外,我们还支持弹性搜索和MySQL。其他的后端可以作为第三方扩展来提供。

 Zipkin Query Service阅读全文

android x86安装

  categories:资料  author:

Android x86 即运行于 x86 PC上的Android操作系统,目前已经支持大部分安卓程序。Android X86平台是由Beyounn和Cwhuang主持设计的。项目的主要目的在于为X86平台提供一套完整的Android 系统解决方案。这个项目提供了一套完整的可行源代码树,配套文档以及Live CD与Live USB。

软件名称 Android x86 开发商 Google 软件平台 Android x86 PC 软件版本 Android x86 7.1 更新时间 2017- 软件语言 Linux

Android x86版在部分机型上网本上已经趋于完美,但在其他机型的兼容性适配上还有很长的路要走。另外随着 Intel 对 Android 向x86系统移植的进一步深入,Android x86 计划也在日趋完善。
跑分
2013年12月,Google Android开发团队公布了Ice Cream Sandwich (Android … 阅读全文



快乐成长 每天进步一点点