冰洁的技术博客


搭建一个Chainlink节点并发送交易(上)

前言

Chainlink是一个去中心化的预言机网络,它可以让区块链中的智能合约安全地访问外部世界的数据。在这个教程中,你将学习到如何最快自建Chainlink的节点,并发送一笔交易请求。

什么是Chainlink节点

Chainlink 基于ETH 链,但并不是ERC20,而是 ERC677 合约。 它是 ERC20 合约的一个扩展,兼容 ERC20 协议标准,可以在转账时携带数据,并触发接收合约的业务逻辑,扩大了智能合约的应用场景。 目前,Chainlink已经能实现的包括但不限于:

  1. 分布式价格推送
  2. 随机函数,链上随机数
  3. 外部适配器连接链外资源
  4. 其他预言机网络服务 丰富的节点与合约市场使得Chainlink成为了各大DEX交易所接入预言机的首选。

搭建Chainlink节点有什么好处

成为Chainlink认证的节点提供商,将会获得节点运营奖励。

怎么搭建

我们先从Chainlink的测试网kovan上开始,你需要:

  1. 一台linux云服务器,以ubuntu为例
  2. 一个postgresql数据库
  3. 一个eth节点


Read on →

圈内人看区块链——十年是一个轮回

周六在票金所的演讲ppt:

image
部分目录。

可以下载我的ppt 文档 《圈内人看区块链》 pdf版本链接


Read on →

defi时间线及总结

Defi时间线

免信任是 DeFi 的金字招牌。

   超额担保这一设计由 Maker 引入,然后不断被应用在诸多 DeFi 产品的设计中。作为借贷平台,
Compound 可以让用户无门槛借贷,贷方永远不用担心借出去的钱收不回来,这是因为借方锁定了至少价值 1.5 倍的担保品。
dYdX 更进一步,将超额担保延续进了保证金交易的设计中,只需维护 115% 的抵押率,你就可以开启全仓保证金交易。

超额担保 + AMM + 收益自动化 + work token + 流动性挖矿

</font>


Read on →

一些作品和地址的整理

一些作品和地址的整理

作品地址整理:

微信主题色:已上架xposed商店。基于xposed框架的插件,大量使用kotlin开发,动态修改微信主题。
地址:https://github.com/chaojimiaomiao/wechat_top_highlight

信息雷达:VR周边二手信息,虚拟3D(android)
地址:https://github.com/chaojimiaomiao/NearAds

注解库:api annotation库(java)
地址:https://github.com/chaojimiaomiao/NetworkAnnotation

Google 举办的第一届全国大学生安卓应用大赛优胜奖:
Tarot_droid,一个塔罗牌游戏
www.google.cn/university/androidchallenge/2010/gallery-apps.html#tab=d1-56

Google 举办的第二届全国大学生安卓应用大赛华东区二等奖:
魔镜MagicMirror,一个3D虚拟现实的穿衣应用(解析3D建模完的格式) https://github.com/chaojimiaomiao/MagicMirror

谷歌女性开发者大会:

http://www.10tiao.com/html/191/201703/2652042778/1.html

image

总结一下这次演讲对我演讲水平的提高很有帮助,全场时不时爆发出默契的笑声(太幽默了没办法

演讲完的总结:

爆笑1: 今天很荣幸在这里为大家演讲。自从高中以后,我还没有见过那么多女生呢!

爆笑2: 高中时候我就读于一所女中,但自从上了大学后,班上只有四个女生。

爆笑3:大学时候走在走廊里,迎面走来一群男生和我打招呼,我不记得他们叫啥,只能笑笑。

爆笑4:乔帮主还在世的时候,学院里苹果俱乐部人员非常壮大。

爆笑5:2010年我买了第一台安卓旗舰机,那时候三星手机还不会boom。

爆笑6:提问,当你开发安卓遇到瓶颈的时候你是怎么办的? 回答: 好问题,我转去做了iOS开发.


Read on →

GitHub Pages 上的 Jekyll

GitHub 与 Gitee 提供的 Pages 服务中,均内嵌了 Jekyll 支持(Gitee 还提供了 Hugo 与 Hexo 支持)。所谓「支持」,即指这些生成工具挂在云端;你只需要提供原始代码(如 Markdown 文档、Sass/Stylus/Less 样式表),再由 Pages 服务自动编译、部署即可。这样,搭建网站的技术门槛进一步下降,你只需要会两件事就能搭建网站了:

  1. 会写 Markdown 文档:
  2. 注册 GitHub 或 Gitee 账号,点点鼠标,在你的代码仓库中启用 Pages 服务。

   因为技术门槛如此之低,导致不少用户压根就意识不到 Pages 服务内置了 Jekyll 工具,甚至以为每一个 Markdown 文档理所当然地就能变成一个网页。此外,另一个常被忽视的问题是:由 Pages 服务调用的 Jekyll 工具,并非最新版本,而且隐性地增添了许多插件,这可能使用户在本地使用 Jekyll 或迁移平台时碰上「不协调」的问题。最常见的一个问题就是:在 GitHub Pages 上正常生成的代码仓库,到 Gitee Pages 上就变得一团糟。这不是因为 Gitee Pages 的功能「不如」GitHub Pages,而是因为:
   GitHub Pages 没有告诉你它们为自己的 Jekyll 多加了几个插件,Gitee Pages 也没有告诉你它们的 Jekyll 并没有这些插件。
这里对 GitHub Pages 与 Gitee Pages 所使用的 Jekyll 进行一个简单的分析(后面姑且简称为 GitHub Jekyll 与 Gitee Jekyll),以说明它们隐性地附加了哪些功能,需要特别注意。


Read on →

三十道android开放题(初稿)

为姗姗来迟的安卓面试题表示抱歉。
大家可以先思考一下这些问题,答案会过一阵在后文放出。

一、基础题:

1、Activity生命周期和启动模式,以及使用场景

2、Service的生命周期,如何启用/停用Service

3、可能导致OOM内存溢出的情况有哪些,怎么解决

4、Android中的动画有哪几类,它们的特点和区别是什么

5、注册广播几种方式

6、如何自定义View

7、程序crash的所有可能原因

8、android动画

9、Android操作系统分层

二、中级题:

1、Android事件处理机制

2、内存泄露的案例

3、图片加载库的使用及比较,内在逻辑分析

4、网络库的使用和比较

5、android线程间通信

6、android进程间通信。Binder源码与Looper关系等

7、设计模式在android中的应用,手写几个典型模式

8、annotation 以及java反射机制

9、Java虚拟机

10、 Java几种线程池

三、高级题:

1、热修复技术,原理及其应用

2、react native

3、几种架构模式

4、新建一个工程,需要加入哪些库和模块,该怎么设计

有关测试: 1、DDMS + MAT; 2、monkey test和logcat命令的常用过滤参数 3、android作优化有哪些可以考虑的方向?

四、开放题:

1、当我在浏览器中输入一个url,世界发生了什么。

2、http和https的区别

3、几种加密方式区别,对称与非对称。

4、你还了解什么其他的语言?和Java对比一下。


Read on →

【飞得更高】扫清Android面试障碍--面试前的准备


有的时候我们在职场上会碰到各种各样的坑…… 不管是创业公司倒闭啦,新同事合不来啦,氛围太差受不了啦。如果说女人的安全感来自于独立,那么程序员的安全感就是手中有技术,心中有源码。想飞得更高,有哪些是你平时可以做的呢?

本篇接上一篇 扫清面试障碍。上篇主要抛砖引玉,提到了许多技术和非技术相关的面试技巧等。本篇讲述面试前的准备,这不仅是技术实力的积累,还有相当一部分软实力的积累。即使是暂时没有跳槽想法的技术人,也应当生于忧患之中。行业的发展非常迅速,逆水行舟不进则退。危机意识很重要,厚积薄发才能更上一层楼。

友情刺激大家: 《高二Android大牛是这样炼成的》

面试前的准备可分为长期准备,和短期准备。首先声明,文中提到的书籍以及公众号,博客等,都是我自己觉得特别优秀的,绝没收任何广告费。。。


Read on →

扫清Android面试障碍

  怎样快速突破初级瓶颈,变身高级开发?怎样在短时间内提高自我身价,月薪提高50%?你是否是个代码高手,面试中却发挥不出来,想进阶却摸不着头脑。博主在互联网行业摸爬滚打,百面成钢。特来总结与分享自己面试的心路历程和经验。

  本系列将分为四大部分切入,包括第一部分面试前的准备:从长期来看要做点什么来提高自己的身价,短期内怎样迅速进入面试状态,以及如何准备简历才能吸引HR的眼球。第二部分是安卓初级中级高级面试题,大概会有几十个问题,基本覆盖了小白到大牛进阶的所有会被问到的问题。第三部分是除了安卓经验,你还会被问到哪些问题。第四部分是关于 offer的选择,以及一起探讨未来的职业规划。从这四部分看来,已经涵盖了一个程序员的方方面面。我一直觉得面试也是一种考试,只要是考试就有套路,有套路就能被总结,能被总结就能被练习,就好比高考模拟卷或者培训班,能教你的也就是反复练习。   


Read on →

深入浅出MVP

讲清MVP

:   将业务逻辑、数据处理从界面中抽离出来。增加了Presenter处理业务逻辑,总的控制 Model数据层与 View视图层的通信。

目的:  使每个类尽可能简单,避免了大量“胖”类的存在。

用到了: 单一职责的思想、面向对象的设计原则。(抽象,封装,继承,多态)

好处:  将各个组件进行解耦,带来了良好的可维护性,可扩展性,可测试性,稳定性;使每个模块能够独立地进行演化。

举例

首页刷新与路由逻辑


Read on →

Android 内存泄漏实战

我们知道,一些不好的代码习惯会造成 android 内存泄漏,从而影响应用性能。然而,这是怎么发生的呢?本文不会老生常谈地告诉你应该怎么做;或是人为地制造泄漏代码,并在控制台打印出来等等。而是另辟蹊径,以一个曾经实际碰到的真实场景,从回收机制上深入图解为何会产生这种泄漏。力求让人“弄个明白”。

=== 本文还未完成,先占坑 ====


Read on →

自己动手写个api annotation库

自己动手写个api annotation库

  1. 目前封装的okhttp api库
  2. retrofit 示例与缺点
  3. 期望的代码
  4. annotation分类与实现
  5. 原理解析


Read on →

一篇文章带你深入 REST

##一篇文章带你深入 REST

###什么是软件架构,和软件结构的区别

软件架构是软件系统在运行时的抽象,而软件结构则是静态源代码的属性。

核心:抽象原则

####元素

处理、数据、连接元素,元素属性与关系的定义形式。

=== 本文还未完成,先占坑 ====


Read on →

开发完iOS应用,接下去你该做的事

iOS专项总结

  一个应用经过多次迭代后告一段落,接下去我们在技术上还可以做些什么呢?答案是提高代码的整体质量。关于这方面,除了我们常喊的 重构,测试也非常重要。

  博主近期给我们的 iOS客户端代码来了一次专项测试。主要从常规的 辅助测试 入手,来了次代码大清理,找到代码中的问题,并一一改掉它们。惊喜的是,这对于提高本人的代码水平有很大的帮助。其实,这套代码的质量本身已经很高了,也非常整洁。而这主要得益于严格的代码规范和pull request机制。

  关于测试,App常关注的往往是一些功能性的,包括单元测试,用monkey在界面上点击看页面表现是否正确等等。 我以前还搭过一个 aspectJ + robotium。(这是Java上的) 然而,测试更应该覆盖代码质量,性能检测等等。
  下面给出一副我理解测试的结构图:

  点击图片可放大缩小。


Read on →

react优化编译器-JSX语法进阶


  博主在学习react native的时候接触了JSX。JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。React 可以用来做简单的 JSX 句法转换。

  在我看来,前端语言纷繁复杂,Html、css、js。有没有一种统一的语法将它们整合起来,包含在一个共同的作用域中,写起来既像标签语言,又有 namespace 的概念;并且当我们在学习的时候,只需学习统一的格式,类定义等等就能写好native应用。可以说,JSX 就是这样的一种语法。

  如果你对 react native还不了解,想先有一个总体上的认识,可以下载我的ppt 文档 《React Native全接触》 pdf版本链接。点击直接在浏览器中查看,你可能需要一点时间打开此文档。

  以下学习自facebook 的 github issue里。大部分翻译自 RN官方的问题中。   


Read on →

react-native android配置中的坑

Nov 25, 2015

简单记录下配置react-native android碰到的坑。

  1. 网上的中文版配置都有坑。
  2. 一定要仔细看命令行告诉你的话。
  3. ANDROID_HOME 要加在本机的环境变量中。有这几个文件都可能是,都写一遍:
    • .zshr
    • .bashrc
    • .bash_profile
      注意这些都在Macintosh底下
  4. 一定要去官网:React Native Doc


Read on →

android-iOS区别记(上)——从语言的特性说开去

这篇文章写起来挺艰难的。因为网上很少有人提到过这种对于android和 iOS的横向比较。因缘际会之下博主同时接触了这两种语言这两个平台。也把我的一些体会分享给大家。

语言的特性

1. 划分

  首先,OC是编译型语言,Java是混合型语言;OC是动态语言,Java是静态语言。它们又都是面向对象的静态类型语言。前者的区别造成了它们在代码形式风格上的诸多不同;后者又使它们在写法上诸多类似。 这里补充一点:动态类型语言和动态语言是两个概念。动态类型语言指的是运行期间才去做数据类型检查的语言,类似一些脚本语言,重点是数据类型。而动态语言指的是运行期间可以改变代码结构的语言,比如Object-C、C#、JavaScript、PHP;反之则如Java、C、C++。所以在这一点上,Java和OC显露出了分歧。


Read on →

OC中aspect切面编程

打点纪

每一个技术变化都要从PM的一个需求讲起。对于一个ios应用来说,当第一版的功能完成得差不多以后,我们就必不可少地要为应用中用户的各种行为记录log或track。市面上有不少的应用统计第三方库,类似:umeng,GA,mixpannel & etc.. 当用户在信息页点击拨打电话按钮时,记录一下拨打事件。我们也许会这样实现:

// InfoViewController.m

- (void)onCallButtonPressed:(UIButton *)button
{
    [self call];
    [Track event:eventCall];
} 

这个需求就这样轻松搞定了。可是PM又说:我要的不止是点击拨打按钮,我还需要点击购买按钮,发送短信按钮,私聊按钮,发布按钮,设置按钮,求购按钮……

一开始,你或许会尝试在PM所说的每一个buttonPress方法中加上[Track event:kSomeEventYouDefined];这行代码。这时候一部分优秀的程序员已经开始抓狂了,因为到处散落着相似的代码。另一部分或许会有些不安,但还是勉强接受了这种写法。

可是最近有一天碰到这样一件事。PM一拍脑袋说:我们这个设计已经落伍了,这个版本我们要给所有的UI换上新衣服。另外,以前记的许多log都不需要了,并且增加了新的log。

苦逼的程序员这下崩溃了。他发现不仅要在新的UI中加入track,还需要找到并删除旧的track。然而旧的track散落在程序的各个角落,他不得不ctrl+F一个个搜到再看下是否有用。这种情况下,漏删与少加很可能发生

为什么会产生这样的情况,还是最初的设计出了问题。如果一开始我们能找到一种合适的架构,使得这些log在同一处被记上,就不会发生这样的情况。此时我们引入 Aspect Oriented Programming (AOP)。


Read on →

OC中的runtime与Java反射机制对比

iOS中的运行时编程,类似Java的反射。

Java是一门静态语言,类和方法都有严格的public, private之分。而反射机制却可以实现动态性,获取类的私有方法等。

runtime VS reflection
1. 相同点

都可以实现的功能:获取类信息、属性设置获取、类的动态加载、方法的动态调用等。

ios中相关方法使用:

类的动态加载:NSClassFromString(@“className”)

方法的动态调用:NSSelectorFromString(@“doSomethingMethod”)


Read on →

欢迎来到Jekyll的世界!

这篇文章将会出现在_posts目录底下。它遵循markdown的语法,并可以嵌入任意的Html标签。上一篇文章已经详细介绍了markdown的语法,这篇文章将着重讲解构建个人博客的又一利器:jekyll

jekyll是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如Disqus。最关键的是jekyll可以免费部署在Github上,而且可以绑定自己的域名。

jekyll常用的命令只有两条,剩下的都是其变种。

jekyll serve

在mac终端的网站根目录底下运行这行,将启动jekyll默认的localhost:4000端口。于是你可以在浏览器中查看本地的网页。如果你不想一直开着这个终端,你可以使用jekyll serve --detach在后台运行。

jekyll build

这会对你的更改重新生成一遍,包括你对_config.yml文件的更改。


Read on →

markdown常用语法记录

1.字体和颜色:

 红字

 我是黑体字

 我是微软雅黑

 我是华文彩云    


Read on →

云计算技能图谱

以下内容主要是转载给同学看,方便同学选择方向的。


Read on →

大数据技能图谱

以下内容主要是转载给同学看,方便同学选择方向的。


Read on →