自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 增强外投邮件的安全性 (DKIM)

增强外投邮件的安全性 (DKIM)邮件安全性的三种措施: SPF 帮助 收件服务器 验证 从一个域名发来的邮件是否是从域名所有者授权的服务器发出的 DKIM 为每封邮件添加一个电子签名,收件服务器可以通过这个电子签名,来验证 一封邮件是否是伪造的,在传输过程中是否被篡改 DMARC 加强了 SPF 核 DKIM 的验证,它允许管理员获取 邮件验证 和 邮件投递 的报告 本文主要讨论 DKIM。使用 域密钥标识邮件( DomainKeys Identified Mai.

2020-10-21 22:44:57 1444 1

原创 radis 持久化之 AOF

radis 持久化之 AOF2种方式 AOF (append only file) 指令日志 RDB 数据快照 AOF写入时机AOF 的写入是先执行指令,再记录日志 区别于 WAL : write ahead log:先记录日志,再执行写操作 因为 redis 没有单独的逻辑验证命令是否合法,先执行再记录日志,可以保证非法的命令不会被记录 而对于关系型数据库,比如 mysql ,在 server层 会有专门的分析器进行词法分析和语法分析

2020-10-10 00:25:14 163

原创 如何用C语言实现一个简单的内存分配器

Memory Allocator 101-写一个简单的内存分配器原文:https://arjunsreedharan.org/post/148675821737/memory-allocators-101-write-a-simple-memory与本文相关的代码: github.com/arjun024/memalloc可以访问译者的github ,阅读体验更佳...https://github.com/KatePang13/Note/blob/main/%E4%B8%80%E4%B...

2020-10-02 12:46:51 1455

原创 Linux页缓存基础

Linux页缓存基础在linux环境,Page Cache 可以加速对非易失性存储中文件的访问,在首次对硬盘读写的时候,同时会将数据存储在内存中的未使用区域,用做cache。当数据再次被被读取时,可以从内存中的这个cache快速地读取到。本文将介绍有关Page Cache的相关背景信息。Page Cache or Buffer Cache“Buffer Cache” 通常是指页面缓存。低于2.2版的Linux内核同时具有Page Cache和Buffer Cache。从2.4内核开始,这两个缓存

2020-09-30 16:58:40 362

原创 [ruby koan] about_proxy_object_project 对象代理

[ruby koan] about_proxy_object_project 对象代理前置知识ruby类方法的调用有2种方式,假设obj的类有一个方法 method() obj.method() 直接方法调用,常规情况下使用 obj.send(:method) 发送消息,当需要在运行时灵活地构造方法名时使用 当消息(方法)未定义时,可以使用 method_missing 进行捕获并优雅地处理。 具体内容请看上一篇: https://blog.csdn.net/liuya

2020-09-23 21:17:04 127

原创 [ruby koan] about_message_passing 消息传递

[ruby koan] about_message_passing 消息传递向对象发送消息当你给一个对象发消息时,对象从 它的方法查询表 method lookup path 中查找第一个名字匹配的方法,并执行该方法;如果未找到匹配的方法 产生 NoMethodError 异常; 除非你为对象提供了 method_missing 方法;method_missing 接收 三个参数: 未定义方法的 symbol 原始调用的参数列表 args

2020-09-23 21:15:09 153

原创 初识 Julia Pluto

初识 Julia Pluto什么是Plutohttps://github.com/fonsp/Pluto.jl写笔记不仅仅是编写最后的文档,Pluto 还提供了过程中必需的实验和探索Pluto 提供了 在笔记中 探索模型 和 分享结果 的能力 反应性-更改功能或变量时,Pluto会自动更新所有受影响的单元格。 轻量-冥王星是用纯Julia编写的,易于安装。 简单-没有隐藏的工作空间状态;友好的用户界面。 安装 Pluto 命令行下按 ] 进入REPL环境

2020-09-21 11:05:14 1671

原创 [ruby koan] about_open_classes

[ruby koan] about_open_classesopen class ruby允许打开一个已存在的类,并添加新的方法 内建的类也可以打开并添加新的方法 class Dog def bark "WOOF" end end​ def test_as_defined_dogs_do_bark fido = Dog.new assert_equal "WOOF", fido.bark end​ # ------...

2020-09-20 18:22:54 135

原创 [ruby koan] about_class

[ruby koan] about_class类的实例化instance = className.newclass Dog end​ def test_instances_of_classes_can_be_created_with_new fido = Dog.new assert_equal Dog, fido.class end实例变量 实例变量通过方法赋值 class Dog2 def set_name(a_name) ...

2020-09-20 18:22:04 118

原创 DDIA读书笔记 第十一章-1.消息队列

DDIA读书笔记 第十一章-1.消息队列消息队列一个主题多个消费者2种模式 load balance 一个消息只被其中的一个消费者使用 fan-out 一个消息被所有的消费者使用 2种模式可以配合使用,比如kafka 的消费组间和组内消费者间。对待数据的2种思维:消息传递:消息的存活应该是短暂的,在送达消费者之后,就应该立即删除数据库与文件系统: 数据的存活应该是持久的,在被显式删除之前,都应该是永久记录的2种思维的..

2020-09-18 22:55:55 175

原创 检测office的恶意vba脚本(宏病毒)——mraptor

检测office的恶意vba脚本(宏病毒)——mraptormraptor 是 oletools 工具集中的一个,用于 扫描一个文件中是否存在可疑的 vba 脚本,也就是宏病毒。在进入代码之前,我们先来看下mraptor的简单使用mraptor的使用这里只演示扫描单个文件,mraptor 还可以遍历检测 文件夹啊和压缩包[root@master ~]# mraptor 1.doc ​MacroRaptor 0.55 - http://decalage.info/python/ole

2020-09-17 21:29:56 2310

原创 [ruby koan] about_sandwich_code (三明治代码)

about_sandwich_code什么是 三明治风格的代码?先来看看下面这段代码 def count_lines(file_name) file = open(file_name) count = 0 while file.gets count += 1 end count ensure file.close if file end​ def test_counting_lines assert_equal 4...

2020-09-16 22:29:47 267

原创 [ruby koan] about_block

[ruby koan] about_blockblock 的2种形式 {...} do ... end def test_methods_can_take_blocks yielded_result = method_with_block { 1 + 2 } assert_equal 3, yielded_result end​ def test_blocks_can_be_defined_with_do_end_too yielded_res...

2020-09-16 21:39:02 192

原创 [ruby koan] about_iteration

[ruby koan] about_iterationeach each 是 array 的一个方法 each 后跟一个 block,block有2种形式 { |item| ...} do |item| ... end block 可以用 break 终止 def test_each_is_a_method_on_arrays assert_equal true, [].methods.include?(as_name(:eac...

2020-09-16 21:10:56 79

原创 [ruby koan] about_true_and_false

[ruby koan] about_true_and_false ruby 中 false,nil 是 false 除了false,nil 的其他对象,都是 true def truth_value(condition) if condition :true_stuff else :false_stuff end end​ def test_true_is_treated_as_true assert_equal :...

2020-09-14 20:57:26 123

原创 [ruby koans] about_condition_statements 条件语句

[ruby koans] about_condition_statements 条件语句if-else 语句用作值 所有的ruby 语句都会返回一个值,ruby 也不例外 如果没有分支会执行到,返回的值为 nil 注:编程语言在 statement 上分为两个阵营, 一方将语句分成 Statement , Expression, C/C++, java, python 等大多数主流语言均属于这个阵营 Statement 没有返回值,是一系列的行为描述

2020-09-14 20:43:59 110

原创 [ruby koans] about_constants 常量

[ruby koans] about_constants 常量http://www.rubykoans.com/https://github.com/KatePang13/ruby_koans_pang.git对同名常量的访问 内层常量会屏蔽外层常量 可以通过 ::constantName 来强制访问 外层 常量 可以通过 className::constantName 来强制访问某个类中的常量 C = "top level"​class AboutConst

2020-09-14 19:11:35 89

原创 [ruby koans] about_keyword_arguments 键值对参数

Learn Ruby with the edgecase ruby koansabout_keyword_arguments 键值对参数键值对参数 方法中用键来访问对应的参数,参数可以有缺省值 没有缺省值的参数,必须传参,否则会抛出 ArgumentError def method_with_keyword_arguments(one: 1, two: 'two') [one, two] end​ def test_keyword_arguments ...

2020-09-14 18:39:23 136

原创 [ruby koans] about_methods 方法

Learn Ruby with the edgecase ruby koans about_methodshttp://www.rubykoans.com/https://github.com/KatePang13/ruby_koans_pang.git函数声明def my_global_method(a,b) a + bend函数调用#calling_global_methods 调用 全局方法my_global_method(2,3)#calling_global.

2020-09-14 18:23:10 109

原创 即便是golang, 并发编程仍然不简单

origin: Even in Go, concurrency is still not easy (with an example)这是一篇最近发表的博客,提出了Go并发编程也并不简单这个观点,引发了很激烈的讨论,这里以学习的目的记录一下翻译的内容,感兴趣的可以阅读原文。Go 一个很大的特点是通过语言层面支持goroutines ,以此让并发变得简单 。我认为Go简化的仅仅是并发编程的一个方面:使你的代码可以并发的执行,并发之间通过 channel 通信;而并发地做正确的事还是取决于使用者的实现,

2020-09-09 17:08:42 204

原创 RubyKoans 内的一些思考题的记录【一】

Rubykoans 是一个 以测试驱动为方式的ruby语言学习项目(http://rubykoans.com/),整个工程预设了280多个 BUG,通过一步步fix bug的过程,学习ruby的基本语法和核心思想,工程中设定的目标是enlightenment,通过之后就 get enlightenment,哈哈。这种 通关方式的学习设计,可以给予学习者很直接的反馈,是个很awesome的形式!本文整理了 这个项目过程中留下的一些思路题的解答,由于还没有通关,持续更新中...Ruby pro...

2020-08-29 19:40:19 153

原创 python 离线部署 oletools

python 离线部署 oletools本文以 oletools 为例,记录如何在“老破小”的机器上离线部署一个python应用。Why? 为什么要离线部署yum/ apt-get 用起来多爽呀,pip 用起来多爽呀,干嘛要折腾离线部署 当在一个生产环境很糟糕的情况下,yum, apt-get 可能都失效了, pip 远程拉取也失效了... 生活太艰难了Python 离线部署准备https://www.python.org/ 上选择合适的版本这里使用 https://..

2020-08-28 23:12:53 510

翻译 Netflix在搭建可观测工具上的经验分享

Lessons from Building Observability Tools at NetflixNetflix在搭建可观测工具上的经验分享origin: https://netflixtechblog.com/lessons-from-building-observability-tools-at-netflix-7cfafed6ab17Netflix 的使命是通过提供高质量的内容和优质的体验为客户带来欢乐,为此我们的产品一直在快速的发展和创新,包括 个性化的标题建议,基础架构和应.

2020-08-26 21:22:18 447

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除