在局域网通过SSH登录Ubuntu服务器,发现很慢,10秒左右,修改SSH配置解决:
1 | $ sudo vim /etc/ssh/ssh_config |
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。
该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题。
在局域网通过SSH登录Ubuntu服务器,发现很慢,10秒左右,修改SSH配置解决:
1 | $ sudo vim /etc/ssh/ssh_config |
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。
该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题。
在是否升级的考虑上,虽然不着急升级,但是要考虑以后发展的方向,比如2.0不支持的,我们在1.x中也要少用,方便以后升级。
更详细的访问以下文章
在Spring Boot2中引入了 Reactor Netty ,不过名字叫 Webflux 。
org.springframework.boot:spring-boot-starter-webflux
->io.projectreactor.netty:reactor-netty
->io.netty:netty-all
要了解 WebFlux ,首先了解下什么是 Reactive Streams(响应式流) :
要真打算用weblux,感觉需要整体学一下Reactive响应式编程,否则很多东西不懂
所谓“锁仓合约”是指,用合约作为第三方托管资金,进行两方交易,并且有时间限制。
举个简单的例子:
一位老板雇佣一位工人工作10天,老板怕工人中途跑路,工人怕老板是奸商发不发工资,那么第三方托管是不错的选择,但是我们可以通过锁仓合约来实现,更加公正。
实现:老板创建一个锁仓合约,把钱转到合约上,10天后工人可以申请释放金额,但是没有到10天(如第9天)工人都无法把钱取出。
这个就是“时间锁”。
OpenZeppelin
项目已经实现了时间锁,我们可以基于它来修改适合我们的需求,来看看源码
Remix IDE Github – 推荐,速度快。
Remix IDE Org
基于浏览器的 IDE,集成了编译器和 Solidity 运行时环境,不需要服务端组件。
IntelliJ IDEA plugin
IntelliJ IDEA 的 Solidity 插件(可用于其他所有的 JetBrains IDE)
SublimeText — Solidity language syntax
SublimeText 编辑器的语法高亮包。
智能合约,我理解它就是程序机器码,可以在区块链上执行的代码,好比 C语言的*.o
文件,Java的 *.class
文件。
启动 私有链,我们的程序(合约)就跑在这条私有链上。
1 | $ geth --datadir data0 --networkid 1108 --nodiscover console |
查看挖矿账户
1 | > web3.eth.coinbase |
编写solidity代码
1 | pragma solidity ^0.4.0; |
编译为字节码和abi
在线编译 ,compile - Start To compile -> Details
bytecode
只要 object
的值,abi 全部拷贝。
注:Details -> web3Deploy有部署的示例,但我们自己手动来一遍。
1 | # bytecode |
创建合约对象
1 | # 赋值为本地变量。 |
预估部署合约的手续费
1 | > eth.estimateGas({data: bytecode}) |
部署
1 | # 解锁 |
合约等待挖矿,开始挖矿
合约需要有节点在挖矿才能部署成功,所以我们先启动挖矿。
1 | > miner.start() |
检查部署结果和调用合约方法
1 | > helloWorldContractInstance.address |
OK
下载工程
1 | $ git clone https://github.com/spring-io/initializr.git |
构建打包
1 | $ cd initializr/ |
运行
1 | # package打包,在initializr-service/target/下可以找到jar包 |
OK
2018年3月20日 JDK 10
发布,非LTS 版本。
新特性: http://openjdk.java.net/projects/jdk/10/
Java 10 正式发布于 2018 年 3 月 21 日,Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断。除此之外,还有其他包括垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性。
https://github.com/trending/java
类似淘宝的商品详情页,继续拖动查看详情,其中拖动增加了阻尼,并且重写了ListView,GridView,ScrollView,WebView,RecyclerView 的 dispatchTouchEvent 方法,使用的时候无须额外的代码,可以任意嵌套使用。
Github
ES非常适用于搜索,速度快,使用简单。
全文搜索——一种传统数据库很难实现的功能
非常容易进行分布式 / 集群部署。
想到再写。
本文是拷贝 google.cn ,更新时间是文章的发表时间。
搭配使用 Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本 2.2.0 或更高版本时,您可以将 C 和 C++ 代码编译到 Gradle 与 APK 一起打包的原生库中,将这类代码添加到您的应用中。您的 Java 代码随后可以通过 Java 原生接口 (JNI) 调用您的原生库中的函数。如果您想要详细了解如何使用 JNI 框架,请阅读 Android 的 JNI 提示。
Android Studio 用于构建原生库的默认工具是 CMake。由于很多现有项目都使用构建工具包编译其原生代码,Android Studio 还支持 ndk-build。如果您想要将现有的 ndk-build 库导入到您的 Android Studio 项目中,请参阅介绍如何配置 Gradle 以关联到您的原生库的部分。不过,如果您在创建新的原生库,则应使用 CMake。
本页面介绍的信息可以帮助您使用所需构建工具设置 Android Studio、创建或配置项目以支持 Android 上的原生代码,以及构建和运行应用。
注:如果您的现有项目使用已弃用的
ndkCompile
工具,则应先打开build.properties
文件,并移除以下代码行,然后再将 Gradle 关联到您的原生库:
简单分析当前主流IOT的WiFi方案Smartlink
从原理上讲,只要芯片驱动支持开启混杂模式(WiFi Promiscuous),就可以支持一键配网功能,只是各个厂家叫法及实现编码方式不同而已。
注意:本文来自chaodongyang.com,点击阅读原文
当你使用多线程来同时运行多个任务时,可以通过使用锁来同步两个任务的行为,从而使的一个任务不会干涉另一个任务的资源。也就是说,如果两个任务交替的步入某项共享资源,你可以使用互斥来保证任何时刻只有一个任务可以访问这项资源。
上面的问题已经解决了,下一步是如何使得任务彼此之间可以协作,使得多个任务可以一起工作去解决某个问题。现在的问题不是彼此之间的干涉,而是彼此之间的协作。解决这类问题的关键是某些部分必须在其他部分被解决之前解决。
当任务协作时,关键问题是这些任务之间的握手。为了实现握手,我们使用了相同的基础特性:互斥。在这种情况下,互斥能够确保只有一个任务可以响应某个信号,这样就能根除任何可能的竞争条件。在互斥上,我们为任务添加了一种途径,可以将自身挂起,直至某些外部条件发生变化,表示是时候让这个任务开始为止。
原文 :https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-cn.md
一个 宇航员指南 (现在, 程序员们都在使用GIT) 是关于出现问题过后应该怎么操作。