🌓

Homelab 使用一段时间,有时 ssh 登陆上去会提示这样一段信息。

There were xxxxx failed login attempts since the last successful login.

这说明有不明身份的人正在尝试暴力破解我们的 root 用户密码。通常是黑客的 robot 程序在寻找容易入侵的机器。

出于安全考虑,也想避开这些烦人的警告,可以采取一些措施。

阅读全文 »

国内宽带环境个人用户很难拿到固定公网 IP。不过如果你没有公网 IP,通过联系电信运营商的客服,还是可以拿到公网动态 IP 的。

具体也要看运营商的情况。

确保公网 IP 是 DDNS 的前提。使用 DDNS,可以将 IP 动态绑定到对应的域名上,可以保证域名随时都能访问到我们的 Homelab 机器。

所以,你也知道了,要域名的。(散了散了!)

阅读全文 »

最近准备搭建一个 Homelab,用来方便生活&方便学习。在考虑购入合适硬件的同时,不妨用手头更新换代闲置的旧 PC 来先做一下尝试。我的旧 PC 当年配置尚可,相信现在还是可以胜任一个入门 Homelab 来耍耍。

首先在闲置 PC 上安装 CentOS 系统,同时移除不再使用的 Windows 系统。

阅读全文 »

高级操作符感觉通篇都让人感觉到 Awwwwwwwa,还可以这么玩。

你可以给你的类型自定义各种操作符下的实现。很棒吧。

这篇内容讲述了一些不常用但是用到就会觉得很方便的操作符。

包括位操作符,可以按位操作和位移操作。

溢出操作符,可以让数值溢出但是不报错。

自定义操作符。自定义自己的操作符。

到此语法指南就结束了。但是我仍然没看到多线程话题,Swift 没有多线程?

阅读全文 »

乍一看,好高级的话题。仔细一看,无非就是外部能访问的限制程度而已,功能和 Java 的 publicprivate 修饰符一样,无非细化程度更多。总结如下:

按照等级从高到低排序。

  • (最高)openpublic 关键字允许最少的访问限制,open 对于类来说,允许外部继承和覆盖类的属性,public 则不允许;
  • internal 模块外部不能访问;
  • fileprivate 定义文件内可访问;
  • (最低)private 定义仅两个打括号之间的代码能访问。

普遍的规则是,内部的访问权限不能高于外部,可以低于外部。比如类标注为 internal 那么类成员就不能高于 internal 比如说 public。

默认不写访问控制等级就都是 internal。

对于元组、函数来说,访问控制等级是其内部等级最低的那个。函数必须显式声明访问等级,如果 internal 不适用的话。

阅读全文 »

内存安全依然不需要我们多做考虑。本篇最大的目的还是了解什么情况下会出现内存不安全的问题,并且在编码时避免这些问题。由于目前为止没有涉及到协程或多线程的内容,要保重内存安全相对来说是简单的。

内存访问存在三个属性:操作是读还是写;操作持续多久;操作哪个内存位置。

一旦后两者出现重叠,也就是说对同一个内存位置同时进行操作,那么就会出现内存不安全的冲突情况。

阅读全文 »