IP地址
地址的分类
IP(Internet Protocol国际互联网协议)的长度为32为(bit),分为4段,常用十进制数字表示,每段数字的范围是1~254,一个4字节的IP地址划分为两个部分用于标明网络端和标明具体的节点,分别对应两个ID(标识码):网络ID和主机ID,同一物理网络上的主机用相同的网络ID。
more
五类IP地址
A类
A类IP地址有1个字节的网络地址和3个字节的主机地址组成,网络地址的最高位(二进制)必须为"0"(第一段数字的范围[1-126]),地址的范围从1.0.0.1~126.255.255.254可用的A类网络有126个,每个网络可容纳16777214个主机
计算:
网段:首位为0
继续阅读 »
前奏
因为NIO并不容易掌握,所以这注定会是一篇长文,而且即便篇幅很大,亦难以把很多细节解释清楚,只能侧重于从整体上进行把握,并实现一个简单的客户端服务端消息通信框架作为例子,以便有需要的开发人员参考之。借用淘宝伯岩给出的忠告就是
- 尽量不要尝试实现自己的NIO框架,除非有经验丰富的工程师
- 尽量使用经过广泛实践的开源NIO框架Mina/Netty/xSocket
- 尽量使用最新版稳定版JDK
- 遇到问题的时候,可以先看下Java的Bug Database
Asynchronous I/O是在JDK7中提出的异步非阻塞I/O,习惯上称之为NIO2,也叫AIO,AIO是对JDK1.4中提出的同步非阻塞I/O的进一步增强,主
继续阅读 »
Universal React 这篇 Post 让我们知道了怎么在服务器端渲染我们的组件,还让我们知道了怎么在除了第一次请求之外,用 react-router 来在客户端处理路由的跳转,减少请求,不仅可以减少等待时间,还可以减轻服务器端的负担,带来更好的用户体验
继续阅读 »
文/Robin
2020 年 10 月 21 日,PayPal 在声明中表示,将推出一项新服务允许用户能够直接从 PayPal 账户中购买、出售以及持有加密货币,也将允许用户使用加密货币在平台 2600 万商户处进行购物结算。未来几周内该服务将面向美国 PayPal 账户持有者开放,上线初期将支持 BTC、ETH、BCH 以及 LTC 四种加密货币。
2020 年 10 月 29 日,PayPal 正式向 C 端用户推出了购买加密货币的功能。笔者也登陆了自己的美区 PayPal 账号,发现确实也有 Crypto 的入口。Crypto 首页展示了 BTC、ETH、BCH、LTC 4 个币种,点击 BTC 进去会有价格走势图,以
继续阅读 »
文/Robin
知识库又叫做 Knowledge Base,简称 KB,这个缩写在微软系列产品中最为常见。本文想聊聊笔者构建 Knowledge Base 都用到哪些工具,以及关于知识库的一些思考。
知识库
构建知识库对于个人而言是一件非常重要但是经常被忽略的事情。一方面,有体系的知识库方便搜索,节省时间;另一方面,知识库记录的是个人的学习、思考、成长,是一种非常有价值的沉淀。笔者对知识库软件的要求如下:
支持 Markdown;
中文搜索友好;
文档有历史版本功能;
多端同步。
很显然以上几点就抛弃了大部分软件。笔者接下来讲讲对于知识库的软件选择都是怎么演变的。
印象笔记
印象笔记是 Evernote 的本地化版本
继续阅读 »
Janus Gateway 支持 server 端录制,保存的文件格式是对 RTP 报文的一种自定义封装格式(MJR),音视频数据单独存储,官方提供了一个 janus-pp-rec 的程序,可以把 MJR 格式的文件转换为其他封装格式的文件,然后我们可以利用 ffmpeg 把音视频文件合并为一个文件,命令如下(以 H.264 和 OPUS 编码为例):
继续阅读 »
将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言。如果你忘了填写用户名,它就跳出一个警告。
如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途。程序员用它完成越来越庞大的项目。
Javascript代码的复杂度也直线上升。单个网页包含10000行Javascript代码,早就司空见惯。2010年,一个工程师透露,Gmail的代码长度是443000行!
编写和维护如此复杂的代码,必须使用模块化策略。目前,业界的主流做法是采用"面向对象编程"。因此,Javascript如何实现面向对象编程,就成了一个热门课题。
麻烦的是,Javascipt语法不支持"类"(class),导致传统的面向
继续阅读 »
Lucene 事务
有过数据库经验的人都知道ACID特性,原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。由于隔离性的存在,对于新的变更包括添加、修改、删除,如果不进行 commit 的话,那么在读端是无法看到数据的变化的,在这里简单的介绍下 Lucene 中的事务,即ACID。
原子性
当你在一次 IndexWriter 的 session 中做操作(增加,删除文档),然后 commit,要么你的所有的操作修改都是可见的(commit 成功),要么所有的操作修改都不可见(commit 失败),绝不会处于某种中间状态。有些
继续阅读 »
文/Robin
2020 年 10 月 7 日,ConsenSys 宣布推出 MetaMask Swaps,该功能允许用户基于 MetaMask 直接比较和兑换代币,并集成了多个聚合应用(例如 Uniswap、Airswap、Kyber、0xAPI、1inch.exchange、dex.ag、Paraswap、Totle 和私有做市商),可在多个去中心化的流动性来源中获取报价,允许用户访问 DeFi 生态系统中最深流动性的交易对,以确保用户以最优价格进行代币交易。最初该功能仅限于 Firefox 浏览器上的 MetaMask 扩展,将很快支持其他浏览器和 MetaMask 移动端。
笔者去 Firefox 浏览器上的 Met
继续阅读 »
lsof -i:端口号 用于查看某一端口的占用情况
bash
[root@node1 ~]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 6622 root 3u IPv4 36215 0t0 TCP *:ssh (LISTEN)
sshd 6622 root 4u IPv6 36224 0t0 TCP *:ssh (LISTEN)
sshd 31358 root 3u IPv4 122192 0t0 TCP node1:ssh->192.168.
继续阅读 »