Howie's Notes

Machine Learning and Cyber Security

0%

在 IntelliJ 平台 IDE 中(如 PyCharm、IntelliJ IDEA 等),Ctrl+Shift+F 快捷键通常指在项目所有文件中搜索对应的关键词,这是一个常用的功能,然而近期笔者发现此快捷键莫名其妙的失效了(其他快捷键都工作良好),这很可能是与别的程序的快捷键相冲突导致的,经排查,是与 Windows 10 中微软拼音的简繁转换快捷键冲突。

解决步骤依次为:设置 ——> 时间和语言 ——> 语言 ——> 中文(简体,中国)——> 选项 ——> 微软拼音 ——> 选项 ——> 按键 ——> 简体/繁体中文输入切换,可以将其改为另一个键或者直接将其关闭。

此解决方案可能并不适应于每个人,具体还是要找到那个冲突的快捷键。

从 2020 年末开始,微软逐步向 Windows 10 用户推送了 WSL 2 更新,WSL 2 相比 WSL 1 是一个巨大的变化,最显著的改变在于 WSL 2 开始采用 Hyper-V 虚拟机来运行 Linux,这会解决之前 WSL 的很多问题,但也可以看作是 WSL 项目的失败,本文所描述的主体为 WSL 2,有关 WSL 1 的相关内容请参考 WSL 相关问题解决

Read more »

本文翻译自 https://uberpython.wordpress.com/2012/09/23/why-im-not-leaving-python-for-go/ ,原文标题为 Why I’m not leaving Python for Go,译文如下:


首先,Go 似乎是一门很棒的语言。它有一个很棒的教程,我乐此不疲地去看,发现:

  • Go 很快。
  • 在设计上支持并发。
  • 类型化(对 JIT 和 IDE 来说很重要),但不像 C 或 C++ 的螺旋形那样繁琐和丑陋。
  • 鸭子类型的接口。
  • 延迟(defer)机制真的很精巧。

但是有一个问题我不能接受。这是个遗憾,因为我很想以并发的名义进行信仰的飞跃。这个问题就是用返回值来进行错误处理。这简直像 70 年代的风格。

Read more »

本文讨论现代密码学中的对称加密。

对称加密技术有两种宽泛的类型:块密码(block cipher)和流密码(stream cipher)。块密码用在多种因特网协议的加密中,包括 PGP、SSLIPsec 等;流密码用在无线 LAN 的安全性中。

Read more »

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)允许主机自动获取(被分配)一个 IP 地址。网络管理员能够配置 DHCP,以使某给定主机每次与网络连接时能得到一个相同的 IP 地址,或者某主机将被分配一个临时的 IP 地址(temporary IP address),每次与网络连接时该地址也许是不同的。除了主机 IP 地址分配外,DHCP 还允许一台主机得知其他信息,例如它的子网掩码、它的第一跳路由器地址(常称为默认网关)与它的本地 DNS 服务器的地址。

由于 DHCP 具有将主机连接进一个网络的网络相关方面的自动能力,故它又常被称为即插即用协议(plug-and-play protocol)或零配置(zeroconf)协议

Read more »

ICMP(Internet Control Message Protocol,因特网控制报文协议)被主机和路由器用来彼此沟通网络层的信息。ICMP 最典型的用途是差错报告。

ICMP 报文有一个类型字段和一个编码字段,并且包含引起该 ICMP 首次生成的 IP 数据报的首部和前 8 个字节(以便发送方能确定引发该差错的数据报)。下表是相关的 ICMP 报文类型:

Read more »

与 DNS 类似,ARP(Address Resolution Protocol,地址解析协议)提供了将 IP 地址转换为链路层地址的机制。这两种解析器之间的一个重要区别是,DNS 为在因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址。

Read more »

vCard 是广为使用的电子名片的文件格式标准,常用于手机通讯录文件中,其后缀名常为 .vcf

一个典型的 vCard 文件内容如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testa
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testa
TEL;CELL:12345678910
END:VCARD
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testb
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:testb
TEL;CELL:12345678910
END:VCARD

每个 vCard 条目通过 BEGIN:VCARDEND:VCARD 包裹,其中 VERSION 字段表示 vCard 版本号,NFN 字段分别表示 姓名TEL 字段表示电话号码。

GitHub 上的 vCards 项目提供了类似中国黄页的功能。

CDN 全称 Content Distribution Network,即内容分发网络。CDN 管理分布在多个地理位置上的服务器,在它的服务器中存储各种类型的 Web 内容(包括文档、图片、音频和视频等)的副本,并且所有试图将每个用户请求定向到一个将提供最好的用户体验的 CDN 位置。

CDN 可以是专用 CDN(private CDN),即它由内容提供商自己所拥有;例如,谷歌的 CDN 分发 YouTube 视频和其他类型的内容。也可以是第三方 CDN(third-party CDN),它代表多个内容提供商分发内容;AkamaiLimelightCloudflare CDN 都运行第三方 CDN。

Read more »

UDP 全称 User Datagram Protocol,即用户数据报协议,它为调用它的应用程序提供了一种不可靠、无连接的服务。

UDP 无非就是对网络层协议增加了一点(多路)复用/(多路)分解服务而已。

使用 UDP 的上层协议有:

选择使用 UDP 的原因:

  • 关于发送什么数据以及何时发送的应用层控制更为精细。
  • 无须连接建立。
  • 无连接状态。
  • 分组首部开销小。每个 TCP 报文段都有 20 字节的首部开销,而 UDP 仅有 8 字节的开销。

使用 UDP 的应用是可能实现可靠数据传输的,这可通过在应用程序自身中建立可靠性机制来完成。
可参考 KCPQUIC

Read more »