Piwik现已改名为Matomo,这是一套国外著名的开源网站统计系统,类似于百度统计.Google Analytics等系统.最大的区别就是可以看到其中的源码,这正合我意.因为我一直对统计的系统很好奇,很想知道里面的运行原理是怎么样的,碰巧了解到有这么一个系统,因此马上尝试了一下.国内关于该系统的相关资料比较匮乏,大多是分享怎么安装的,并没有找到有关源码分析的文章.下面先对其做个初步的分析,后面会越来越详细,本人目前的职位是前端,因此会先分析脚本代码,而后再分析后台代码. 一.整体概况 Piwi…
Linux系统重启的最底层函数是arch_reset,这是一个全局的函数指针变量,定义在 arch/arm/mach-rk30/include/mach/system.h中: extern void (*arch_reset)(char, const char *); 注意,这是一个变量声明,类型为函数指针.并不是函数的声明!它的实现在mach-rk30/reset.c中: static void rk30_arch_reset(char mode, const char *cmd){    u…
在第一篇文章中,重点介绍了脚本需要搜集的数据,而本篇主要介绍的是服务器端如何处理客户端发送过来的请求和参数. 一.设备信息检测 通过分析User-Agent请求首部(如下图红线框出的部分),可以得到相关的设备信息. Piwik系统专门有一套代码用来分析代理信息,还独立了出来,叫做DeviceDetector.它有一个专门的demo页面,可以展示其功能,点进去后可以看到下图中的内容. 它能检测出浏览器名称.浏览器的渲染引擎.浏览器的版本.设备品牌(例如HTC.Apple.HP等).设备型号(例如i…
系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.system,智能合约,name类型,native.hpp,newaccount,bidname,core token init,onblock,更新已入选生产节点 eosio.system 概览 笔者使用的IDE是VScode,首先来看eosio.system的源码结构.如下图所示. 本文分析的源码来自于…
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Spring Boot 版本:2.2.x 最好对 Spring 源码有一定的了解,可以先查看我的 <死磕 Spring 之 IoC 篇 - 文章导读> 系列文章 如果该篇内容对您有帮助,麻烦点击一下"推荐",也可以关注博主,感激不尽~ 该系列其他文章请查看:<精尽 Spring B…
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2.4.RELEASE 寻找遗失的 web.xml 在开始 Spring MVC 的分析之前,先来聊一聊 Java 初学者接触的最多的 Java Web 基础.还记得我的第一个 Web 工程是由 Servlet.Velocity 和 Filter 来完成的,那时几乎所有人都是根据 Servlet.JSP…
分享一个百度智能手环开源项目的设计方案资料. 项目简介 百度云智能手环的开源方案是基于Apache2.0开源协议,开源内容包括硬件设计文档,原理图.ROM.通讯协议在内的全套方案,同时开放APP和云服务的免费使用.这套方案不仅能实现运动记录.睡眠记录检测.时间显示.来电提醒等常规功能,还整合了百度健康云服务,为用户提供基于数据整合的衍生健康服务.百度智能手环基于Nordic公司nRF51822芯片开发,芯片集成BLE蓝牙4.0协议.使用LIS3DH作为加速度传感器,进行运动和睡眠监测. 百度智能…
转载自 http://www.limerence2017.com/2018/09/02/eos1/#more eos基于区块链技术实现的开源引擎,开发人员可以基于该引擎开发DAPP(分布式应用).下面搭建在windows环境下的虚拟机,并且安装eos引擎,以及配合vscode实现断点调试. 创建vmware虚拟机安装ubuntu系统 去下载vmware虚拟机,然后安装.vmware虚拟机链接地址ubuntu系统下载16.04版本以上的,下载地址ubuntu下载地址下面创建虚拟机,选择创建一个新的…
一 : 修改Android系统默认时间 源码路径:frameworks/base/services/java/com/android/server/SystemServer.java 主要变量EARLIEST_SUPPORTED_TIME // The earliest supported time. We pick one day into 1970, to // give any timezone code room without going into negative time. pri…
一.简介 ABP vNext 在 v 2.9.x 版本当中添加了 BLOB 系统,主要用于存储大型二进制文件.ABP 抽象了一套通用的 BLOB 体系,开发人员在存储或读取二进制文件时,可以忽略具体实现,直接使用 IBlobContainer 或 IBlobContainer<T> 进行操作.官方的 BLOB Provider 实现有 Azure.AWS.FileSystem(文件系统存储).Database(数据库存储).阿里云 OSS,你也可以自己继承 BlobProviderBase 来…