Blogger 主题中Widget使用

Blogger 的主题和插件有自带的一套语法,下面就是 Blogger 主题中关于 Widget 的使用说明。

Widget Tags for Layouts

标签是用来创建最基本的widget的,描述在 [Page Element Tags for Layouts](http://help.blogger.com/bin/answer.py?answer=46888) 中.而这篇是描述在widget标签中具体可以设置哪些东西的,例如你可以在widget中放置什么. 第一件事就是放置一个闭合的标签,像这样: `<b:widget [...attributes...] />` 展开之后是这样的: `<b:widget [...attributes...]>

`

接下来谈论一下可以在widget中放置什么

Includes

Widget的内容包含在”includable” section中,像这样:

<b:includable id='main' var='thiswidget'>
    [insert whatever content you want here]
</b:includable>

includable的属性有:

  • id:(必须)唯一标识符,由字母和数字组成
  • var:(可选)标识符,由字母数字组成,用来引用section中的data.(具体请见下面说的data section)

每一个widget必须有一个具有id='main'的 includable 。通常这个widget的大部分内容都包含在这个includable中.

如果你有很多具有不同id属性的includable,他们不会自动的显示出来.但是如果你有一个includable带有id='new'的属性,那么在main includable中通过<b:include name='new' />就能够引用,并显示出来.

b:include标签的属性如下:

  • name:(必须)标识符由字母和和数字组成,它必须是在同一个widget中已经存在的b:includable的id
  • data:(可选)An expression or peice of data to pass on to the includable section. This will become the value of the var attribute in the includable.

简单例子同来讲解b:includableb:include的用法.Loops和data会在后面讲述,这里主要要理解’main’ section是如何包含 ‘post’ section的.main包含了一个includable,传递了一个data叫做’i’,included section引用做’p’,使用p访问title.

<b:includable id='main'>
   <b:loop var='i' values='posts'>
      <b:include name='post' data='i'/>
   </b:loop>
</b:includable>

<b:includable id='post' var='p'>
   Title: <data:p.title/>
</b:includable>

下面这段的意思就是说如果你想重复使用代码,可以将代码放到includable中,然后用include引用.就不翻译了. Includes are most useful if you have a section of code that you want to repeat multiple times in different places. You can just write the code once, put it inside a b:includable, then use b:include wherever you want it to appear. If you don’t need to do that, then you can just stick with the single main includable and not worry about the rest. (Note that the main includable is included automically – is unnecessary.)

Data

data:标签大概是最为重要的一个标签了,因为它是获取一切事实数据的途径,一些例子如下:

<data:title/>

or

<data:photo.url/>

这个例子非常简单,他能够在几乎所有的widget中起作用,因为大多数widget有title.上面的例子就是打印出widget的title.第二个例子是一个较为复杂的变量,获取photo的url.

有很多data你能够通过data:标签来获取,查阅 comprehensive list 查询需要的data,一些data只能在特定的widget中使用.

Loops

b:loop 标签让你重复使用section中内容.通常用在打印给定的一系列post,或者每一条留言,或者每一个label,等等.通常用法,像这样:

<b:loop var='identifier' values='set-of-data'>
   [repeated content goes here]
</b:loop>
  • identifier 可以选用任何名字,用来代表list中每一个item.可以简单的设定为”i”.
  • set-of-data 可以是在 data tags article中定义的任何一系列data

例如,在blog post widget中, posts是一个list,下面的代码是遍历每一个post,打印出每一个的标题title

<b:loop var='i' values='data:posts'>
   <h2><data:i.title/></h2>
</b:loop>

注意,”i”是每一个post,在循环中使用i获取每一个post的title

if / Else

if/else像很多编程语言一样,条件判断,这里是选择哪些显示和哪些不显示.通常如下:

<b:if cond='condition'> 
   [content to display if condition is true]
<b:else/>
   [content to display if condition is false]
</b:if>

b:else tag是可省略的. 而</b:if>是不可省略的. 如果没有else子句,那么只有满足if条件才会执行if子句中代码,不然什么都不执行

条件语句中你可以放置任何结果是true或者false的语句,有一些data本身就表示true/false,像post中allowComments.其他data,你可以用来比较得到结果.一些例子:

<b:if cond='data:post.showBacklinks'> True if the current post is set to show backlinks.
<b:if cond='data:blog.pageType == "item"'> True if the current page is an item page (post page).
<b:if cond='data:displayname != "Fred"'> True if this is not Fred's display name.
<b:if cond='data:post.numComments > 1'> True if the current post has more than one comment.

翻译自:Blogger Help Widget Tags for Layouts


2014-02-04 Google , Blogger , Knowledge

HAProxy 转发 shadowsocks

HAProxy is free, open source software that provides a high availability load balancer and proxy server for TCP and HTTP-based applications that spreads requests across multiple servers. It is written in C and has a reputation for being fast and efficient.

简单的来说 HAProxy 就是一个负载均衡,TCP 和 HTTP 的代理程序,开源,高可用,C 写成。他原本的作用是将前端的大量流量分发到后端的服务器中,用于负载特别大的 WEB 网站的,这里被大材小用了。

使用 HAProxy 中转 SS 流量至少需要两台 VPS,国内一台,国外一台,SS 客户端直接连国内的 VPS,而通过国内的 VPS 转发流量到国外的 VPS 上。

安装

sudo apt install -y haproxy

配置

HAProxy 的配置文件在 /etc/haproxy/haproxy.cfg 下:

global
    ulimit-n  51200

defaults
    log global
    mode    tcp
    option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000

frontend ss-in
    bind *:8888
    default_backend ss-out

backend ss-out
    server server1 [VPS]:8888 maxconn 20480

主要的配置就是 frontendbackend,也很好理解,将入站的 8888 端口中的流量转发到 VPS 的 8888 端口。然后重启 HAProxy 即可

sudo /etc/init.d/haproxy restart

启动之后,本地的 SS 客户端直接连国内的 IP 即可,需要注意的是配置用的是 ssserver 的配置。

reference


2014-02-03 haproxy , shadowsocks , ss , tcp , load-balancer , proxy-server , proxy

Linux Mint 下开机自启动应用

在 Cinnamon 桌面环境下有一个开机启动应用的管理程序叫做 startup applications,用该程序来管理开机启动应用是非常方便的。更准确的来说应该是 login 到桌面环境中启动的应用程序管理。

使用

命令行是

cinnamon-settings startup

同样在 gnome 的桌面环境下也有一个相似的 gnome-session-properties 但是这个应用没有 Cinnamon 提供的方便友好,一个很大的差别就是 Cinnamon 提供的 startup 工具允许用户直接选择已经安装的应用,而 gnome 提供的只允许用户自己选择执行脚本(命令),自己选择图标,标题等等。Cinnamon 帮我们做了很多友好的工作。

实际上所有开机自启动的配置都在 ~/.config/autostart 目录中,每一个启动项都以自己名字开头,叫做 goldendict.desktop 这样的名字,包含如下内容。

[Desktop Entry]
Type=Application
Terminal=false
Categories=Office;Dictionary;Education;Qt
Name=GoldenDict
GenericName=Multiformat Dictionary
Comment=GoldenDict
Encoding=UTF-8
Icon=goldendict
Exec=goldendict
X-GNOME-Autostart-enabled=true
NoDisplay=false
Hidden=false
Name[en_US]=GoldenDict
Comment[en_US]=GoldenDict
X-GNOME-Autostart-Delay=100

其中定义了常见的配置,包括启动命令,图标,名字等等。

reference


2014-02-02 linux , linux-mint , cinnamon , startup , application

manual guide tutorial 区别

manual 一般翻译为手册,指南。通常是制造商提供的一份详细的操作指示,更具体来说一般为官方提供的。

guide 向导,指南。是一个比较宽泛的词,鉴于 manual 可能是一份文档,游戏的小册子,或者更加复杂的汽车的手册,但是 guide 可能就是一个卡片,或者介绍的视频。guide 可能是一个比较细节的说明,但也可能是一个简单的介绍或者说明。

tutorial 通常翻译为教程,通常是针对无经验的初学者提供 step-by-step 每一步详细的说明。

cookbook 直译是食谱,在 鉴别 Mastering Cookbook xxx in Action 系列图书 文章中就已经解释了,通常指的是比较实用的一些用例。

reference 一般译作参考,引用,这个 reference 倒是不会产生什么歧义。我的文章中也经常使用。

reference


2014-02-01 document , guide , difference

Java 查漏补缺之:赋值语句的返回值

在看 JDK 源码 HashMap 时发现在 put 方法实现过程中使用了下面的语句

if ((tab = table) == null || (n = tab.length) == 0)
    n = (tab = resize()).length;

能够看到在判断语句中使用了赋值语句的结果来和 null 和 0 比较,再比如读写文件时会有

while ((line = reader.readLine()) != null) {
    out.append(line);
}

就能发现 Java 中的赋值语句是有返回值的,并且也不是简单的 boolean 。事实上赋值语句返回的是左侧变量的引用值,也就是右侧的结果

@Test
public void testAssignment() {
    int i;
    System.out.println(i=0);
    System.out.println(i=1);
}

输出分别是 0 和 1.


2014-01-20 java , jdk , programming

学车记

学车到现在已经接近尾声,拖了两年之久的事情终于要有点眉目了。现在只剩下最后的理论—-科目四的考试了,这个考试应该也和科目一的理论差不多,只是最后多了五道多选题而已。现在回想起来,暑假,寒假,寒假,多少时间花在这个上面。断断续续不知道是福还是祸,考试从人监考一直到现在红外线考,变化多多,训练的方法也变化多多。

之前一个寒假我记得当时考试,倒桩和小路考是分开考的,而今年寒假回来就变成一起考了。以前小路考还考单边桥,而现在不见了。以前小路考是一次性,如果通过就通过,现在是有两次机会,第一次不过还有第二次机会。总之里面的变化任谁也搞不清楚。反正这些也不管了,都是过去的事情了。

下面就做一些记录,这是我一边学车,一边记录下来的:

##小路考 上车,安全带(安全带不能带反,因为车上有感应装置,如果安装反了感应不到就是不及格) 起步(不能停顿超过30秒),左方向灯 侧方停车位,开车到看到左边后视镜看见库一角,一圈方向,倒档,车身与库对角线齐平,返回一圈方向,看右后轮胎,快进库时,反方向打死方向盘,进库,出来时方向灯 s路,直着进弯道,看黄线到车头三分之一处一圈方向,车走正了,返回一圈方向,然后 坡上定点停车与坡道起步,车尽量往右边靠30cm,车头要在停止范围内,起步方向灯 直角转弯,反光镜到黄线齐平,打死方向 倒车入库,到黄线打死方向,看左反光镜,车声0.5米,返回半圈方向,看车身与黄线平行,将方向放正

##大路考

上车,安全带,座椅,踩离合,空档发动,大车灯,方向灯切换一下(后来分完车,车上教练教了一个好办法:上车1.空档 2.发动 3.大灯 4.方向 下车1.方向 2.大灯 3.熄火 4.挂一档,正好完全相反) 报告考官,灯光仪器正常,请求起步 方向灯,远近大灯,左右反光镜,挂一档,松离合,松手刹。 挂二档 靠边停车,转向灯,减速 下车,右转向,空档,手刹,关大灯,关方向,熄火,挂一档,松安全带,看反光镜,后面车,下车

总之上面就是这些天反复练习的东西,就这么多。考试也就这么多。


2014-01-13 学车 , beginner

电视机投影仪接口知识

之前东拼西凑写了一篇《投影仪选购指南》,今天再凑一篇配套接口知识。纯为自己了解,当然如果帮到其他人,那就更好了。先来随便看看一款投影仪的最简单的接口。

从左到右接口依次为:音频接口,S端子,VGA接口,HDMI,RS232,USB projector interface

从左到右依次是HDMI×2,色差分量接口Component,MINI USB B型,VAG,RS-232,S-端子,AV复合视频接口(RCA),音频输入输出接口 W750

然后看看平面解释的图 projector port

以下涉及到的接口可能有些在投影仪里面有,而有些投影仪不一定是要具备的,必备是对于电视来说的。

##必备接口

###HDMI HDMI是新一代的多媒体接口标准,全称是High-Definition Multimedia Interface,中文意思为高清晰多媒体接口,该标准由索尼、日立、松下、飞利浦、东芝、Silicon image、Thomson (RCA)等7家公司在2002年4月开始发起的。其产生是为了取代传统的DVD碟机、电视及其它视频输出设备的已有接口,统一并简化用户终端接线,并提供更高带宽的数据传输速度和数字化无损传送音视频信号。 HDMI cable

  • 2002年12月,7家公司正式推出了HDMI 1.0规格。
  • 2004年5月,HDMI 1.1规格发布。
  • 2005年8月,推出了HDMI的1.2版,为了更好的兼容PC系统,1.2版增加了若干条非常重要的改进,以方便PC连接和数字音频流等的传输。
  • 2005年12月,推出HDMI 1.2a标准增加了CEC功能,并且完善了测试规范,CEC功能可以通过一个遥控器对所有家庭娱乐设备进行控制。
  • 2006年5月22日,制定HDMI标准的7家企业共同宣布了HDMI 1.3,新标准将带宽和速率都提升了2倍以上,达到了340MHz的带宽和10.2Gbps速率,以满足最新的1440P/WAXGA分辨率的要求。

HDMI details

传统的AV复合和色差接口都需要独立分开音频和视频数据线来传输信号,同为数字接口的DVI接口则并不支持音频传输,目前唯有HDMI具备了在一条数据线上同时传送影音信号的能力,因此人们也习惯把HDMI称为高清一线通。

###DVI接口 DVI(Digital Visual Interface)接口,即数字视频接口。DVI接口标准是1999年由Silicon Image、Intel(英特尔)、Compaq(康柏)、IBM、HP(惠普)、NEC、Fujitsu(富士通)等公司共同组成DDWG(Digital Display Working Group,数字显示工作组)推出的接口标准。 DVI cable

DVI接口是以Silicon Image公司的PanalLink接口技术为基础,基于TMDS(Transition Minimized Differential Signaling,最小化传输差分信号)电子协议作为基本电气连接。TMDS是一种微分信号机制,可以将象素数据编码,并通过串行连接传递。显卡产生的数字信号由发送器按照TMDS协议编码后通过TMDS通道发送给接收器,经过解码送给数字显示设备。

DVI to HDMI DVI转HDMI视频连接线

目前常见的DVI接口有两种,分别是DVI-Digital(DVI-D)与DVI-Integrated(DVI-I),DVI-D仅支持数字信号,而DVI-I则不仅支持数字信号,还可以支持模拟信号,也就是说DVI-I的兼容性更强。 DVI-I插口是兼容数字和模拟接头的,所以,DVI-I的插口就有24个数字插针+5个模拟插针的插孔(就是旁边那个四针孔和一个十字花)。

DVI-D插口是纯数字的接口,所以,DVI-D的插口只有24个数字插针的插孔(没有模拟的那个四针孔和一个十字花)。

因此,DVI-I的插口可以插DVI-I和DVI-D接头的线,而DVI-D的插口只能接DVI-D的纯数字线。

###色差分量接口 色差分量接口

色差分量接口Component

色差分量线材

色差分量线材

色差分量(Component)接口采用YPbPr和YCbCr两种标识,前者表示逐行扫描色差输出,后者表示隔行扫描色差输出。色差分量接口一般利用3根信号线分别传送亮色和两路色差信号。这3组信号分别是:亮度以Y标注,以及从三原色信号中的两种——蓝色和红色——去掉亮度信号后的色彩差异信号,分别标注为Pb和Pr,或者Cb和Cr,在三条线的接头处分别用绿、蓝、红色进行区别。这三条线如果相互之间插错了,可能会显示不出画面,或者显示出奇怪的色彩来。色差分量接口是模拟接口,支持传送480i/480p/576p/720p/1080i/1080p等格式的视频信号,本身不传输音频信号。

###AV复合视频接口(3路RCA接口组成) 复合视频接口

复合视频接口

复合视频线

复合视频线

AV复合(Composite)视频接口是目前在视听产品中应用得最广泛的接口,属模拟接口,该接口由黄、白、红3路RCA接头组成,黄色接头传输视频信号,白色接头传输左声道音频信号,红色接头传输右声道音频信号。AV复合视频接口实现了音频和视频的分离传输,这就避免了因为音/视频混合干扰而导致的图像质量下降,但由于AV接口的传输仍然是一种亮度/色度(Y/C)混合的视频信号,仍然需要显示设备对其进行亮/色分离和色度解码才能成像,这种先混合再分离的过程必然会造成色彩信号的损失,色度信号和亮度信号也会有很大的机会相互干扰从而影响最终输出的图像质量。

###RF输入接口 RF输入接口

RF射频端子是最早在电视机上出现的,原意为无线电射频(Radio Frequency)。它是目前家庭有线电视采用的接口模式。

RF 的成像原理是将视频信号(CVBS)和音频信号(Audio)相混合编码后,输出然后在显示设备内部进行一系列分离/ 解码的过程输出成像。

由于步骤繁琐且音视频混合编码会互相干扰,所以它的输出质量也是最差的。带此类接口的显卡只需把有线电视信号线连接上,就能将有线电视的信号输入到显卡内。

##实用接口

###光纤音频接口

光纤音频接口TosLink,全名Toshiba Link,这是日本东芝(TOSHIBA)公司较早开发并设定的技术标准,在视听器材的背板上有Optical作标识。现在几乎所有的数字影音设备都具备这种格式的接头。TosLink光纤曾大量应用在普通的中低档CD、LD、MD、DVD机及组合音响上。光纤连接可以实现电气隔离,阻止数字噪音通过地线传输,有利于提高DAC的信噪比。但是,时基误差是影响音质的重要因素,所以衡量数字音响设备传输接口性能的好坏,应以引起时基误差的大小为标准。光纤连接的信号要经过发射器和接收器的两次转换,会产生严重影响音质的时基抖动误差(Jitter)。制造光纤常用的材料有塑料、石英、玻璃等,玻璃光纤(ST)是最昂贵的一种。

###RS-232C接口

RS-232C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。RS-232C标准(协定)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(Recommeded Standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前有RS-232B和RS-232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。RS-232C接口最大传输速率为20Kbps,线缆最长为15米。RS-232C接口通常被用于将电脑信号输入控制,当通信距离较近时,可不需要Modem,通信双方可以直接连接,这种情况下,只需使用少数几根信号线。

###VGA接口 VGA

VGA(Video Graphic Array)接口,即视频图形阵列,也叫D-Sub接口,是15针的梯形插头,分成3排,每排5个,传输模拟信号。VGA接口采用非对称分布的15针连接方式,其工作原理:是将显存内以数字格式存储的图像(帧)信号在RAMDAC里经过模拟调制成模拟高频信号,然后再输出到显示设备成像。

VGA支持在640×480的较高分辨率下同时显示16种色彩或256种灰度,同时在320×240分辨率下可以同时显示256种颜色。VGA由于良好的性能迅速开始流行,厂商们纷纷在VGA基础上加以扩充,如将显存提高至1M并使其支持更高分辨率如SVGA(800×600)或XGA(1024×768),这些扩充的模式就称之为视频电子标准协会VESA(Video Electronics Standards Association)的SVGA(Super VGA)模式,现在显卡和显示设备基本上都支持SVGA模式。

此外后来还有扩展的SXGA(1280×1024)、SXGA+(1400×1050)、UXGA(1600×1200)、WXGA(1280×768)、WXGA+(1440×900)、WSXGA(1600×1024)、WSXGA+(1680×1050)、WUXGA(1920×1200)、WQXGA(2560×1600)等模式,这些符合VESA标准的分辨率信号都可以通过VGA接口实现传输。

###S端子接口

S端子,即分离式影像端子S-video(Separate Video),它实际上是一种五芯接口,由视频亮度讯号Y和视频色度讯号C和一路公共遮罩地线组成。S端子将亮度和色度分离输出,避免了混合视频讯号输出时亮度和色度的相互干扰,它只能输入输出视频。

##可选接口

###USB接口 Universal Serial Bus(通用串行总线)简称USB,是目前电脑、数码、平板电视等产品上光方应用的一种接口规范。USB接口是一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB有两个规范,即USB 1.1和USB 2.0。二者主要的却别是USB 1.1的最高传输速度是12Mbps(折算为MB为1.5MB/s);USB2.0标准传输速率在25Mbps-400 Mbps (最大480 Mbps,折算为MB为60MB/s),二者相差最高40倍。同时,USB1.1版本接口对外的输出电源的负载能力很低,其最大输出电流只有250毫安,而USB2.0协议,其输出电流达到500毫安以上。USB1.1接口和USB2.0接口相比,USB2.0接口具有明显的优势,但产品价格相对也要比USB1.1接口的产品贵一些,2003年以后1.1版本逐渐被2.0版

USB(通用串行总线)将网络、计算机和家庭数码产品的媒体资源进行共享,是3C融合的一个趋势。具有流媒体功能的电视实现了让MP3、摄像机、照相机、移动硬盘、U盘以及各种各样存储卡的内容在电视机上直接播放,做到信息共享。流媒体电视与普通电视相比,最大的不同在于后者仅能收看电视节目,节目内容固定的,而流媒体电视不仅可以收看更清晰的电视节目,还可以播放数码相机、移动硬盘等数码设备里的图片、音乐、电影,使原来只能在电脑上播放的内容可以在更大、更清晰的平板电视上观看,让全家人共同欣赏。而流媒体这些美妙功能的实现必须依仗 作为中间媒介的“USB”接口。

目前市场销售的平板电视还有部分产品依然为了降低成本采用低速的USB1.1接口作为流媒体接口,而这个接口根本不能满足海量流媒体设备的供电和传输需要。目前家用数码设备,例如MP3已经向G容量过渡,数码相机也已经开始千万像素的换代,大容量的流媒体文件必须依靠可靠的高速接口才能流畅演示,因此购买流媒体电视,一定要先确定是否采用了USB2.0高速接口本所替代。

###蓝牙接口 蓝牙(Bluetooth)是由东芝、爱立信、IBM、Intel和诺基亚于1998年5月共同提出的近距离无线数据通讯技术标准。它能够在10米的半径范围内实现单点对多点的无线数据和声音传输,其数据传输带宽可达1Mbps。通讯介质为频率在2.402GHz到2.480GHz之间的电磁波。

蓝牙接口(BlueTooth)与其它同样具有蓝牙接口的设备连接同样可以实现无线连接,它具有无方向性限制,有效连接距离达10米,一般的传输速度都有1M,快速的高达10M甚至更快等优点,但目前配置蓝牙接口的电子设备却不是很多,与红外线接口的普及率有很大的差距,这是比较遗憾的一个地方。

不过,没有蓝牙接口的电脑可通过加装蓝牙适配器来实现蓝牙接口功能,这些蓝牙适配器一般都是USB接口的,可以插在电脑的USB接口上使用,而且只有闪盘大小,携带远比数据线要方便。

##趋势接口

###DisplayPort接口 1.高带宽 在高清晰视频即将流行之际,没有高带宽的显示接口是无法立足的。DisplayPort问世之初,它可提供的带宽就高达10.8Gb/s。要知道,HDMI 1.2a的带宽仅为4.95Gb/s,即便最新发布的HDMI 1.3所提供的带宽(10.2Gb/s)也稍逊于DisplayPort 1.0。DisplayPort可支持WQXGA+(2560×1600)、QXGA(2048×1536)等分辨率及30/36bit(每原色10/12bit)的色深,充足的带宽保证了今后大尺寸显示设备对更高分辨率的需求。

2.最大程度整合周边设备 和HDMI一样,DisplayPort也允许音频与视频信号共用一条线缆传输,支持多种高质量数字音频。但比HDMI更先进的是,DisplayPort在一条线缆上还可实现更多的功能。在四条主传输通道之外,DisplayPort还提供了一条功能强大的辅助通道。该辅助通道的传输带宽为1Mbps,最高延迟仅为500μs,可以直接作为语音、视频等低带宽数据的传输通道,另外也可用于无延迟的游戏控制。可见,DisplayPort可以实现对周边设备最大程度的整合、控制。

3.内外接口通吃

目前DisplayPort的外接型接头有两种:一种是标准型,类似USB、HDMI等接头;另一种是低矮型,主要针对连接面积有限的应用,比如超薄笔记型电脑。两种接头的最长外接距离都可以达到15米,虽然这个距离比HDMI要逊色一些,不过接头和接线的相关规格已为日后升级做好了准备,即便未来DisplayPort采用新的2X速率标准(21.6Gbps),接头和接线也不必重新进行设计。

除实现设备与设备之间的连接外,DisplayPort还可用作设备内部的接口,甚至是芯片与芯片之间的数据接口。比如,DisplayPort就“图谋”取代LCD中液晶面板与驱动电路板之间主流接口——LVDS(Low Voltage Differential Signaling,低压差分信号)接口的位置。DisplayPort的内接型接头仅有26.3mm宽、1.1mm高,比LVDS接口小30%,但传输率却是LVDS的3.8倍。

##其它接口

###D端子接口 D端子中的D即Digital,也说是因为接口造型像倒置的“D”字母,其通过处理芯片将视频信号处理成符其传输标准的数码讯号,采用了类似电脑的多针D型插接头,通过数字方式传输视频信号,直接输入到具备D视频接收端子的视频显示设备,避免了通过模拟视频信号传输方式传输信号的过程中的数字-模拟的转换过程,因而更能提升数字视频还原质量。D端子依据规格的不同,分为目前有D1、D2、D3、D4、D5几个级别,分别对应480i/480p/1080i/720p/1080p视频信号,其中D5最高。目前D端子接口基本上只出现在日本的视听设备中。

###同轴音频接口 同轴音频接口(Coaxial),标准为SPDIF(Sony / Philips Digital InterFace),是由索尼公司与飞利浦公司联合制定的,在视听器材的背板上有Coaxial作标识,主要是提供数字音频信号的传输。它的接头分为RCA和BNC两种。数字同轴接口采用阻抗为75Ω的同轴电缆为传输媒介,其优点是阻抗恒定,传输频带较宽,优质的同轴电缆频宽可达几百兆赫。同轴数字传输线标准接头采用BNC头,其阻抗是75Ω,与75Ω的同轴电缆配合,可保证阻抗恒定,确保信号传输正确。也就是说在传输的线材搭配上,应该是以适用于传输高频率数字讯号的75欧姆同轴线材作为搭配标准。

###SCART接口 SCART(Syndicat des Constructeursd’ Appareils Radiorécepteurs et Téléviseurs)接口是一种专用的音视频接口,它是由法国公司Peritel开发的视听设备互连工业标准,也是欧洲强制要求用于卫星电视接收机、电视机、录像机及其它音视频设备上的互连互通接口。标准的SCART接口为21针连接器,外型呈直角梯形,俗称“扫把头”。这21针中定义了音频和视频信号,可用来传输CVBS和隔行RGB信号等视频信号,也可以传送立体声音频信号。21针同时传输21个信号,这21个信号可分为视频信号、音频信号、控制信号、地线和数据线几种。此外,SCART接口还是双向传输,实现所谓的“LOOP”循环功能。


2013-12-26 投影仪 , 接口

倚天屠龙记苏有朋版观后感

倚天屠龙记_苏有朋版

###起由 这几天把倚天屠龙记电视剧看完了,不留下点什么觉得对不起自己. 大学这几年把能够补上的电影电视剧补的都差不多了. 这几天逛豆瓣,看到小李飞刀这部电视剧,想小时候没有看过,只有个大概的印象,于是就补起了小李飞刀,可古龙的剧真心让人看不下去. 看李寻欢太纠结了, 不过倒是看剧中天机老人和他孙女小红给小李飞刀这部增添了不少乐趣. 于是就去找了演员的资料, 没想到给我看到了贾静雯,也就是天机老人的孙女在倚天屠龙记中饰演了赵敏. 我想反正苏有朋版的倚天屠龙记我也没看全过, 也不妨看看.

于是这些天空闲下来就看起倚天屠龙记来, 金庸的小说我都看过, “飞雪连天射白鹿,笑书神侠倚碧鸳”十四部,忘记多少部长篇多少部短篇了, 只是知道那时候是从图书馆一部一部书借出来看的,即使是最短篇的«越女剑»也是看了的. 而这些金庸剧中大多数都曾改编成电影电视剧, 可能有的小说还有很多的版本, 更有甚者甚至改变了书中剧情,像最近的一部笑傲江湖, 我无法是无法接受的, 所以至今新版的那部笑傲江湖我一集都没看过. 我这些天看的倚天屠龙记应该还是和原著相差无几的, 看剧的过程中还能顺带回顾书中的剧情—-张无忌掉落山崖之后遇到的白猿;剧中救了丐帮帮主独女,屠狮英雄会击败周芷若的黄衫女子—-看到这些书中有些情节渐渐在记忆中变得清晰. 金庸小说的书看了有几年了, 现在恨当时根本没有做任何形式的记录, 虽然那时在看完全部小说后还看了很多评金庸的文章书籍,现在所剩下的已经没多少了. 所以我决定现在写下些什么做记录.

看完这部剧有几个情节让我久久不能忘怀,其一就是张无忌在四个女人之间的选择.曾有一段不悔和张无忌的对话,不悔问张无忌这几个女人如何选择,张无忌没有做出正面的回答,只是说对周芷若又敬有怕,对赵敏又爱又恨,而不悔对张无忌说的,要爱就不要犹豫,不要在几人之间犹犹豫豫, 或许这就是张无忌最后毅然选择赵敏的原因之一. 爱情里面容不得犹豫. 赵敏对张无忌的爱, 自始至终, 终于可以感动张无忌. 终于张无忌可以在周芷若的逼问下高速她,他爱的是赵敏. 电视剧片尾曲,以赵敏的口吻:

让他一生为你画眉

让他的心宽容似海

再不提你曾给他伤害

你要他身边再没别的女孩

赵敏要求张无忌做的第三件事情就是画眉, 经过毛阿敏的演唱, 让我单曲循环了一阵子. 本来想写更多一点,可是真的不知道写些什么了.~

</embed>


2013-12-11 Movie , beginner

从 git 版本控制中删除文件而不删除硬盘中文件

Git 学习笔记 —- 从 git 移除文件而不删除硬盘中的文件,你可能遇到过不小心将一个不需要的文件,或者另外一个重要的包含私密配置的文件添加到了 git 版本库中,这个时候你想从版本库中将其删除,而又不想影响到本地的文件,这个时候就需要使用到本文中需要使用到的内容。

从版本库中移除一个文件,停止对该文件的版本控制

The git rm command will allows you to remove a file from git control. The –cached option to git remove allows you to leave it on your hard drive. Every once in awhile a file gets checked into git that isn’t supposed to be there. Common examples are configuration files, project files generated by your IDE with personal settings and even the occasional object file that someone decided to check in. These files are needed, so often you can’t delete them entirely and the process of copying them somewhere else, removing them from git and then replacing is painful, not to mention prone to error. By adding the –cached option to the git rm command, you are able to remote the file file from git control while keeping the file in your working tree. They command syntax is:

git rm --cached file

Git will no longer track this file even though it is still on your hard drive. After running the above command, be sure to add an entry to your .gitignore file so that ‘file’ doesn’t show up in 'git status' and that it can’t accidentally be re-added later.

from : http://www.gitguys.com/how-to-remove-a-file-from-git-source-control-but-not-delete-it/


2013-12-02 git , beginner , linux

Git 学习笔记:初级

Git 学习笔记,主要用来记忆常用命令。

.git 目录下文件

$>tree -L 1
.
|-- HEAD 			# git 项目当前处在哪个分支里
|-- config 			# 项目的配置信息,git config 命令会改动它
|-- description  	# 项目的描述信息
|-- hooks/ 			# 系统默认钩子脚本目录
|-- index 			# 索引文件
|-- logs/ 			# 各个 refs 的历史信息
|-- objects/ 		# Git 本地仓库的所有对象 (commits, trees, blobs, tags)
|-- refs/ 			# 标识你项目里的每个分支指向了哪个提交 (commit)。

Generating SSH keys

生成 SSH keys

ssh-keygen -t rsa -C "youremail@example.com"

一直回车,将自动生成id_rsaid_rsa.pub文件。使用以下命令验证连接是否成功

ssh -T git@github.com

创建 Git 仓库

创建本地新 Git 仓库

git init

克隆远端仓库

git clone ssh://user@domain.com/repo.git

git commit

提交

  • 修改上次提交 不要修改已经发布的提交记录

      git commit --amend
    
  • 创建签名提交

      git commit -sm "commit msg"
    
  • 撤销本地提交,上一次提交修改内容会添加到暂存区

      git reset --soft HEAD~1
    
  • 回退一个 commit 版本,就好像这个 commit 从来没有提交过

      git reset HEAD^
      git reset HEAD~1
    
  • 强制撤销提交,commit-id 之后的提交都会被抛弃

      git reset --hard <commit-id>
    
  • 撤销之前提交的一个 commit, revert 命令会创建一个新的 commit

      git revert HEAD
      git revert commitid
    

优雅的撰写 commit 信息

一份优雅的 Commit message 可以方便后期查看,也方便快速定位更新的内容,通常来说在标题中用简介的一行来描述更改的内容,在描述中使用更多的细节来描述具体修改内容。

更多关于 Git message 的内容可以查看这里

git checkout

  • 替换本地改动

    此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。

      git checkout -- <filename>
    
  • 分离 HEAD

    一般 HEAD 都是隐藏在 master 后面,分离 HEAD 就是让其指向一个提交而不是分支名。使用以下命令可以分离 HEAD。

    git checkout commitID

git push

  • 将本地修改发布到远端

      git push <remote> <local-branch>
    
  • 强制推送本地版本到远端库

    如果想要删除远端仓库不小心提交的 commit,可以使用这条命令,远端仓库之后的 commit 会被抹去

      git push origin HEAD --force
      git push -f origin master  # 将本地 master 分支强行推送到远端并覆盖远端修改内容
    
  • 推送到镜像 repo

    例如本地关联的远端仓库是 gitlab 的,可以使用--mirror参数将本地库提交到 github

      git push --mirror https://github.com/einverne/dotfiles.git
    
  • 删除远端分支 delete remote branch 以下命令二选一,个人推荐使用第二种,因为简单方便嘛:

      git push origin --delete <branchname>
      git push origin :<branch name>
    

git branch

分支相关命令

  • 查看远端和本地分支

      git branch -a, -all
    
  • 新建分支

      git branch <new-branch-name>
    
  • 切换到已经存在的分支

      git checkout <branchname>
    
  • 创建分支并切换到该分支

      git checkout -b <branchname>
    
  • 切换到 master 分支,合并分支

    合并不一定完全成功,可能遇到冲突

      git merge <branchname>
    
  • 删除本地分支

      git branch -d <branchname>
    
  • 强制删除未合并的分支

      git branch -D <branchname>
    
  • 重命名分支,重命名 old-name 到 new-name,如果 new-name 存在,命令失败

      git branch -m old-name new-name
    
  • 创建新的空分支

    create a New and Empty branch , without any commit. And use git rm -rf . to delete all files in the new working directory. You need to run git version 1.7.2 or higher in order for the –orphan option to be supported.

      git checkout --orphan <branch name>
    

git remote

  • 添加远端仓库

    Git 将本地 master 分支内容推动到远程新的 master 分支,并且将本地 master 分支与远程 master 分支关联

      git remote add <name> <url>
      git remote add origin https://github.com/einverne/xxx.git
      git remote add origin git@github.com:einverne/xxx.git
    
  • 将本地分支推送到远端仓库

      git push <remote name> <local-branch-name>
      git push -u origin master
    
  • 显示远端仓库地址

      git remote -v
    
  • 删除远端仓库

      git remote rm <name>
    
  • 设置远端仓库地址,修改远端仓库地址

      git remote set-url origin git@github.com:einverne/repo.git
    
  • 给已存在 origin 远端添加 URL

    如果远端 origin 存在多个 url,使用 git push origin master 可同时将本地库推送到多个远端仓库。

      git remote set-url --add origin https://github.com/einverne/dotfiles.git
    
  • 显示远端信息

      git remote show origin
    

git fetch

下载远端所有改动到本地,不自动合并到当前

git fetch <remote>

git pull

更新与合并,更新本地仓库至最新改动

git pull

git tag

打标签

  • 创建标签

    创建 <tagname> 的标签,9fceb02 为 commit id,使用git log可以查看提交的 ID,一般可以选用前 10 位,如果唯一也可少选

      git tag -a <tagname> [9fceb02]
    
  • 显示标签

      git show v1.2
    
  • 推送特定 tag

      git push origin [tagname v1.5]
    
  • 推送所有 tags

      git push origin --tags
    

git log

查看提交历史

  • 从最新提交开始显示所有提交历史

      git log
    
  • 显示指定文件的所有修改

      git log -p <file>
    
  • 谁,在什么时间,修改了文件的那些内容

      git blame <file>
    

git aliases

  • 修改 config

      git config -e
    
  • 别名

      git config --global alias.co checkout  # 设置之后 git co 就代表 git checkout 了
      git config --global alias.br branch
      git config --global alias.ci commit
      git config --global alias.st status
    
  • unstage 在 smartGit 中经常使用的命令,存入暂存区,从暂存区移出

      git config --global alias.unstage 'reset HEAD --'
    

然后我就可以使用,git add <file> 来将文件加入暂存区,使用 git unstage <file> 来将文件移出暂存。

Tips

从 git 移除文件而不删除硬盘文件

Remove file from git source control but not delete it from drive 从 git 移除文件

The git rm command will allows you to remove a file from git control. The -cached option to git remove allows you to leave it on your hard drive. Every once in awhile a file gets checked into git that isn’t supposed to be there. Common examples are configuration files, project files generated by your IDE with personal settings and even the occasional object file that someone decided to check in. These files are needed, so often you can’t delete them entirely and the process of copying them somewhere else, removing them from git and then replacing is painful, not to mention prone to error. By adding the -cached option to the git rm command, you are able to remote the file file from git control while keeping the file in your working tree. They command syntax is:

git rm --cached file

Git will no longer track this file even though it is still on your hard drive. After running the above command, be sure to add an entry to your .gitignore file so that ‘file’ doesn’t show up in git status and that it can’t accidentally be re-added later.

from : gitguys

clone into a empty directory

克隆项目到空文件夹中,在空目录中

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

NOTE: -t will set the upstream branch for you, if that is what you want, and it usually is.

合并他人分支

查看当前项目下远程
git remote
增加新的分支链接,例如
git remote add other giturl
获取他人的远程更新
git fetch other
将他人的远程更新合并到本地分支
git merge other/master
同样也可用此方法同步更新 fork 的项目

为某一个 Git 仓库单独配置提交者信息

在需要修改的仓库中运行如下语句,写入当前仓库的 config 中

git config user.name "Your Name"
git config user.email your@email.com

该配置会写入 .git/config 设置中。

网站

强烈推荐项目:https://github.com/einverne/my-git 这是我从 @xirong fork 而来的项目,以后有好的 Git 内容我也会更新到该项目。


2013-12-02 git , ssh , github , gitlab , linux

电子书

最近文章