据财新网报道,本已渐渐平静的斯诺登泄密事件在9月6日再掀波澜.英国<卫报>.美国<纽约时报>和美国非盈利调查新闻机构ProPublica联合报道称,根据斯诺登提供的大量文件,美国和英国情报机构近年来利用机密项目破解了大量互联网加密技术,借此对互联网用户进行窃听. 该报道称,美国国家安全局(National Security Agency,下称NSA)通过多种方式,实现对互联网加密内容的监控和窃听.作为美国的盟友,英国政府通信总部(GCHQ)也共享了大量相关技术和项目资源. NSA破…
从DOS时代至移动互联网的技术路线回顾 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-styl…
所有东西都是难者不会,会者不难,Android开发中有很多小伙伴觉得自定义View和事件分发或者Binder机制等是难点,其实不然,如果静下心来花点时间把这几个技术点都研究一遍,你会发现其实这些东西都很简单.OK,废话不多说,今天我们就来看看View的测量.View的测量纷繁复杂,不过如果能够做到提纲挈领,其实也不难.那么今天,我们就来扒一扒View的测量.本文主要涉及如下知识点: 1.View的测量 2.在父容器中对View进行测量 3.LinearLayout测量举例 4.最根上容器测量 如…
扒一扒EOS的前世今生 EOS是什么?   EOS可以认为是Enterprise Operation System的缩写,即商用的一款分布式区块链操作系统,EOS主要为了解决百万级用户的使用问题,为企业提供一种分布式的区块链架构解决方案,相比比特币和以太坊,有人认为EOS是区块链3.0的标志. 好,在开始学习EOS之前,我们先来说说EOS的创始人BM的故事.   Daniel Larimer,江湖人称BM(Bytemaster),他的github账号就是Bytemaster.BM是目前世界上唯一…
你好呀,我是歪歪. 前几天我 Review 代码的时候发现项目里面有一坨逻辑写的非常的不好,一眼望去简直就是丑陋之极. 我都不知道为什么会有这样的代码存在项目里面,于是我看了一眼提交记录准备叫对应的同事问问,为什么会写出这样的代码. 然后... 那一坨代码是我 2019 年的时候提交的. 我细细的思考了一下,当时好像由于对项目不熟悉,然后其他的项目里面又有一个类似的功能,我就直接 CV 大法搞过来了,里面的逻辑也没细看. 嗯,原来是历史原因,可以理解,可以理解. 代码里面主要就是一大坨重试的逻辑…
大家好,我是三友~~ 这篇文章我准备来扒一扒Bean注入到Spring的那些姿势. 其实关于Bean注入Spring容器的方式网上也有很多相关文章,但是很多文章可能会存在以下常见的问题 注入方式总结的不全 没有分析可以使用这些注入方式背后的原因 没有这些注入方式在源码中的应用示例 ... 所以本文就带着解决上述的问题的目的来重新梳理一下Bean注入到Spring的那些姿势. 配置文件 配置文件的方式就是以外部化的配置方式来声明Spring Bean,在Spring容器启动时指定配置文件.配置文件…
大家好,我是三友~~ 最近我在整理代码仓库的时候突然发现了被尘封了接近两年之久的Sentinel源码库 两年前我出于好奇心扒了一下Sentinel的源码,但是由于Sentinel本身源码并不复杂,在简单扒了扒之后几乎就再没扒过了 那么既然现在又让我看到了,所以我准备再来好好地扒一扒,然后顺带写篇文章来总结一下. Sentinel简介 Sentinel是阿里开源的一款面向分布式.多语言异构化服务架构的流量治理组件. 主要以流量为切入点,从流量路由.流量控制.流量整形.熔断降级.系统自适应过载保护.…
在2.6.24内核中链路层接收网络数据包出现了两种方法,第一种是传统方法,利用中断来接收网络数据包,适用于低速设备:第二种是New Api(简称NAPI)方法,利用了中断+轮询的方法来接收网络数据包,是linux为了接收高速的网络数据包而加入的,适用于告诉设备,现在大多数NIC都兼容了这个方法. 今天我的任务是扒一扒网络数据包在传统方法也就是低速路径中如何传入链路层以及如何将其发送给上层网络层的.下面先来看看这条低速路径的简略示意图: //当产生硬件中断时,此中断处理例程被调用.例程确定该中断是…
最近研究了linux内核的网络子系统上的网络分组的接收与发送的流程,发现这个叫sk_buff的东西无处不在,内核利用了这个结构来管理分组,在各个层中传递这个结构,因此sk_buff可以说是linux内核网络子系统的基石,所以我决定在这篇文章中好好扒一扒这个sk_buff. 下面列出我我认为比较重要的sk_buff中的成员变量: 内核是利用一个双链表来管理sk_buff的,不过不使用内核的标准双链表而是自己实现了双链表: struct sk_buff *next; struct sk_buff *…
提到JAVA加锁,我们通常会想到synchronized关键字或者是Java Concurrent Util(后面简称JCU)包下面的Lock,今天就来扒一扒Lock是如何实现的,比如我们可以先提出一些问题:当我们通实例化一个ReentrantLock并且调用它的lock或unlock的时候,这其中发生了什么?如果多个线程同时对同一个锁实例进行lock或unlcok操作,这其中又发生了什么? AQS ReentrantLock 羊群效应 摘要 提到JAVA加锁,我们通常会想到synchroniz…