Lucas定理与大组合数的取模的求法总结 – pi9nc的专栏 – CSDN博客

对Lucas定理的能力范围,我需要实验求证一下。

Lucas最大的数据处理能力是p在10^5左右,不能再大了,hdu 3037就是10^5级别的!

来源: Lucas定理与大组合数的取模的求法总结 – pi9nc的专栏 – CSDN博客

JavaScript自动复制文字到剪贴板

本来是想改oss-browser使用中的一个问题:
每次写markdown,上传单个图片,要获取图片的URL,要经过“选中刚上传的图片”->“点击更多”->”获取地址”->“等待弹出窗口”->“点击复制地址”五个步骤,真的不胜其烦。

所以在上传成功后,判断是单个文件,那么自动复制文件路径到剪贴板要方便很多。

但是限于Chromium浏览器的安全策略, 自动复制得与用户交互。

找到Electron有clipboard,很方便耶。第一次接触开发这个oss-broswer跨平台应用相关的技术栈……

编译器->框架->架构关系的一点思考

  • 机器码为了运行,编译器提供语法,语法是表达语意的元素。语言的表达变化,一本工具书一本字典可以穷尽吧。
  • 框架是在编译器层面上的又一层封装,虽然它提供的不是语法,但它提供的是比语法高一层的组织,框架组织的目的是为了简化开发、封装变化,顺带解决某点或几点非功能性需求。如果你被框架吸引,那你也应该去编译器看看。 框架就像小说故事的套路,自古深情留不住,总是套路得人心。
  • 在框架之上的高一层的组织是架构,架构的层面是业务,也是团队协作。业务虽变化多端,但也自成规律。
  • 架构之上,为智能。知识表达穷极变化。一些知识形式也许只能被计算机所理解。
  • 智能之上,为芸芸众生。

搭建存储在Windows下的Docker Registry

前言

在VMware的虚拟机中搭建Docker Registry预计需要很大的存储空间,我一直想将Registry的存储放到Windows下,就不用担心之后虚拟机扩容的问题了。我想一定有很多使用Windows系统的开发者想要这样做,我尝试了以下几种方式,并做了一些设想,希望有更好的解决方案,能告知我,感谢。

  • 方案1,通过Linux虚拟机运行Registry V2镜像,通过VMWare的VMWare Tools,设置共享目录的方式,将volume的存储指向Windows下

本以为这是很好的方案,但在实际执行中,但是不清楚是VMWare Tools的问题,还是Docker Registry的问题。一旦Docker容器的volume挂载到/hgfs/mnt/myregistry就会导致共享存储失效

这个方案有两点补救:

  • 修改Docker Registry源码,修正这个问题。得看源码改源码。
  • 挂载在内部,同步到Windows存储,有需要再恢复回来。显然很繁琐。
  • 方案2,在Windows下搭建Docker Registry,运行它,不依托容器环境启动。

题外话Docker Registry v1是Python写的,后来用Go重新实现Docker Registry v2,依赖Git下载,Go环境编译。

我找到了Registry Lab。运行

生成的独立可运行的二进制文件registry.exe。Registry Lab是在这之上又进行了包装,改造成Windows上的Docker Registry镜像。我希望配置其独立运行,毕竟Registry的访问是通过REST API访问的,理论上还是可行的。

文档不够丰富,配置样例文件,我仅做了简单的摸索,设置文件存储到Windows下的Z盘。

虚拟机指定该私有仓库,在使用中,REST API并没有预想中正常工作。

这个方案有两点补救:

  • 研读Registry代码,调试找到问题原因。得看源码改源码。
  • 由于Docker Registry HTTP API V2是公开的,可以参照官方代码,可以自己实现一个独立在Windows上运行的Registry,想来也是几千Star的。
  • 方案3,使用Docker for Windows,运行Docker Registry镜像,该方案整合了方案1、2。

我最后才试了这个方法,一是任务Docker for Windows目前兼容性不够好,二是之前尝试,发现要启动Hyper-V虚拟化,不能和VMware并存。这就违背我的初衷了。

但是随着深入,我发现,Docker for Windows可以不使用Hyper-V虚拟化,有采用VMware WorkStation驱动的,也有采用Virtual Box驱动的 Docker Toolbox。Docker Toolbox没有去尝试,参考Docker for Windows 使用 VMware WorkStation是成功了的,并参考Create a private local docker registryx509: cannot validate certificate because of not containing any IP SANs中密钥等配置,搭建存储在Windows下的Docker Registry成功。

这个方案也是本文介绍的内容。

这篇博客分为两部分,介绍了使用VMware WorkStation安装Docker for Windows,搭建存储在Windows下的Docker Registry。