A data binding connects data from a custom element (the host element) to a property or attribute of an element in its local DOM (the child or target element). The host element data can be a property or sub-property represented by a data path, or data generated based on one or more paths. 数据绑定能够将host元素和tar 阅读全文
有两种监听器: 简单监听器,只能监听单一的property 复杂监听器:可以监听一到多个property 每个监听器都有一个或多个 依赖 ,当依赖发生 阅读全文
Polymer提供观察函数、计算属性、数据绑定三大模型功能: Observers Callbacks invoked when data changes. Computed properties Virtual properties computed based on other properties, and recomputed when the input data changes. Data bindings Annotations that update the properties, attributes, or text content of a DOM node when data changes. 阅读全文
Normal Events Polymer elements can use the standard DOM APIs for creating, dispatching, and listening for events. Polymer also provides annotated event listeners, which allow you to specify event listeners declaratively as part of the element’s DOM template. Add annotated event listeners 这个其实就是在标签上使用on-event属性。 <dom-module id="x-custom"> <template> <button on-click="handleClick">Kick 阅读全文
ShadowDOM API var div = document.createElement('div'); var shadowRoot = div.attachShadow({mode: 'open'}); shadowRoot.innerHTML = '<h1>Hello Shadow DOM</h1>'; ShadowDOM Composition 主要概念: LightDOM: 元素的实际子孙节点,浏览器不会对LightDOM做任何的修改和移动。但是渲染的时候会渲染到相 阅读全文
https://www.polymer-project.org/2.0/docs/devguide/custom-elements Custom element names. By specification, the custom element’s name must start with a lower-case ASCII letter and must contain a dash (-). There’s also a short list of prohibited element names that match existing names. For details, see the Custom elements core concepts section in the HTML specification. 自定义元素的命名规则: 按照规范,自定义元素 阅读全文

enter description here
先晒张日常桌面图。Gnome3用了半年了一直被其蹩脚的交互和层出不穷的Bug所折磨。虽然Gnome3很漂亮,很简洁,但是毕竟漂亮不能当饭吃。套餐这种东西虽然简单省事,但是终究不是为你所量身定制的,总有其中一样不合你口味。因此,我决定再次抛弃“开箱即用”的DE(Desktop Environment),在WM(Window Manager)的基础上自己打造一套适合自己的桌面环境。

阅读全文

一个比二叉堆更高效的数据结构,但是实现起来非常复杂。本科的时候看《算法导论》的时候曾经研究过,不是很明白。今天终于对它有了一个比较清晰的了解。
enter description here

阅读全文

新API采用了略微修改过的AES和RSA加密,主要用在登陆接口上,对新API进行简单的分析。

Url

估计会抓包的人都知道,Url中的api便成了weapi。比如手机登录:
原来是:http://music.163.com/api/login/cellphone/
现在是:http://music.163.com/weapi/login/cellphone/

加密算法

核心过程如下:

 aesRsaEncrypt = function (text, pubKey, modulus, nonce) {
  const secKey = createSecretKey(16);  // 随机生成16位加密密钥
  return {
	params:  aesEncrypt(aesEncrypt(text, nonce), secKey),
	encSecKey: rsaEncrypt(secKey, pubKey, modulus)
  }
}

阅读全文

enter description here
先修改Lan接口,避免在无线中继的时候发生本地Lan接口与wwan接口发生冲突导致无法登陆路由器。

网络 -> Lan -> IPv4地址, 设置为 192.168.33.1更改之后需要重新连接一下网络。

透明代理使用shadowsocks-libevChinDNS实现。使用ssh登陆路由器,安装所需软件。

ssh [email protected]
opkg update
opkg install shadowsocks-libev luci-app-shadowsocks ChinaDNS luci-app-chinadns --force-checksum

这个版本的软件源有点问题,所以直接opkg install基本上都过不了sha256sum检测,所以需要加上--force-checksum参数强制忽略。两个luci界面都有zh-cn汉化包,为了节省路由器空间,就不装了。

默认的chnroute表很老了,需要更新:

阅读全文