纪念第1个sd丹炉

  • 当然, 这仅仅是训练一个sd的微调模型

  • 想训练个画风, 但素材不多, 可预见的效果不会好到哪去

  • 主要的几个训练参数如下:

  • 毫无意外的过拟合了


阅读更多

go源码阅读:TLS handshake

  • tls/handshake_server.go: serverHandshakeState

  • tls/common.go: Conn.PeerCertificates

  • tls/handshake_client.go: doFullHandshake:

  • tls/handshake_client.go: clientHandshake

    • makeClientHello
    • loadSession : 会生成sessionID
    • writeRecord : 将ClientHello发送给server
    • readHandshake: 等server回复
  • tls/handshake_server.go: serverHandshake

    • readClientHello
    • processClientHello
    • pickCipherSuite
    • doFullHandshake
    • establishKeys
    • readFinished
    • sendSessionTicket
    • sendFinished
  • tls.Conn: handlePostHandshakeMessage/handleKeyUpdate: KeyUpdate指的就是tls最后的那个对称密钥(变量名叫trafficSecret)

  • tls.Conn实现了net.Conn接口, 在Write和Read包裹了一层handShake, 后面的读写也是带了加密的(readRecordOrCCS)
阅读更多

mongodb官方备份工具, MongoDump源码分析

  • 备份逻辑就在MongoDump的Dump方法 (mongodump/mongodump.go/MongoDump.Dump)

  • Dump主要分4步:

    1. 各种初始化工作
    2. 备份metaData, index, users, roles, version 等基础数据
    3. 备份collections
    4. 备份oplog
  • 后面会经常提到Intent, 这是MongoDump自己的一个抽象概念, 可以简单理解为备份任务单元, 例如一个collection的备份对应一个Intent, oplog的备份对应一个Intent等等; 在阅读源码时你可以将Intent在脑海里替换成Task. 关于Intent详见本文后面章节

  • 核心逻辑见以下源码及注释(为了方便阅读, 这里我删减了些不关键的逻辑):

阅读更多