前几日,广州群有小伙伴遇到了这样一道面试题

1
var s = new string("abc");

关于以上语句到底创建了几个对象呢?由于印象里这种使用 string 来初始化 string 的操作并不常见,推测以下,应该是类似于 copy 的操作产生一个新的对象,所以我先盲猜,不考虑有上下文,只针对这一句语句,应该是2个。

下面来试验:

阅读全文 »

  在微软终于对 nodepad.exe 和 mspaint.exe 的界面下手,把这两个系统程序重构为UWP程序后,原有的镜像劫持替换 notepad.exe 的方法就直接失效了,经过研究,找到了亲测可行的替换方法,特此分享。

阅读全文 »

鉴于 Microsoft 官方并没有提供官方的 CentOS8 的 WSL2 包,甚至 CentOS 的官方也并没有提供对应的包(Ubuntu 是微软和官方都有提供的),联想到 WSL2 和 Docker 在某种意义上是十分类似的,rootfs 都是核心,猜测可能会有方法使用官方提供标准包更广泛的 Docker 包的 rootfs 直接建立 WSL2 应用,经过摸索,发现可以使用 LxRunOffline 搞定,遂记录。

阅读全文 »

PhantomJS Obsolete

Origin

前段时间因为一些个人爱好,想要对某网站的数据进行整站采集,其中需要对某些页面的一些区块进行截图采集,整个采集任务中还涉及一些验证码识别之类的工作。学艺不精,我当前掌握的 Scrapy 知识很难完成这样一个爬虫,就使用了 Selenium + PhantomJS 制作了一个模拟浏览器访问来爬取数据的小爬虫,完成了整套抓取任务。

阅读全文 »

公司的 GitLab 服务部署完了,但是领导出于性能方面的考虑,希望测试和生产环境不用 Docker 来部署,遂搭建了一套不基于Docker 的 GitLab CI/CD 负载均衡测试环境。

阅读全文 »

鉴于大部分免费SSL证书都是针对特定二级域名的,而 Let’s Encrypt 提供通配符证书,却需要每三个月续期一次,经过摸索,鼓捣出了一个方案,遂记录。

阅读全文 »

是时代选择了 Docker?还是 Docker 选择了时代?

本文是云原生系列的第二篇文章,主题是回顾容器的发展史。
在 PaaS 林立的时代,为什么开发者最终选择了 Docker?Docker 又是以怎样姿态给与了 PaaS 世界“降维打击”,直接宣告了 PaaS 时代的结束呢?

阅读全文 »

  上一篇,顺着云计算的发展史,我们看到了兴起于 PaaS 技术普及的容器技术,看到了容器技术通过容器镜像彻底解决了打包问题,按照连续思维,其实接下来应该讲讲 Docker 出现之后有哪些竞争对手,为什么 Docker 可以胜出,连带着让 Docker 几乎等同于容器技术本身,容器编排竞争中 Swarm 为什么输给了 Kubernetes,不过出于个人对整个云原生知识网络的感受,我觉得可以在这次开个分支,先不谈历史,讲一下 Docker 的实现原理。

本文主要是解释 Docker 沙盒的工作原理,回答诸如但不限于以下问题:

  • 为什么容器里只能跑“一个进程”?
  • 容器和虚拟机有什么区别?
阅读全文 »