srt,ass,ssa 字幕

srt,ass,ssa 字幕 srt,ass,ssa三种字幕的区别 ass > ssa > srt 流行的字幕一共有三种就是 ass、ssa、srt。 srt 全称是 SubRip Text, 最常见的文本字幕,制作起来简单,时间代码+字幕。 ssa 全称是 S Station Alpha, 功能上比src更强大支持各种颜色、字体等特效。 ass 全称是 Advanced SubStation Alpha, 包含ssa所有的功能并在ssa原有功能的基础上还进行了扩展。 视觉角度上讲ssa和ass视觉效果更好一些。 扩展: 字幕常见的标识 chs、cht、GB、Big5、eng。 chs是Chinese Simplified的缩写,表示简体中文。 cht是Chinese Traditional的缩写,表示繁体中文。 GB既"国标"的汉语拼音的缩写,中华人民共和国国家标准的意思,简体中文。 Big5是在台湾和香港等地广为使用的计算机汉字编码方案,繁体中文。 eng是English的简写,也就是说表示英文。 https://blog.csdn.net/wuhao91/article/details/50454051

2019-04-27 · 1 min · 39 words · -

outlook 导出邮件, 备份, archive, import, export

outlook 导出邮件, 备份, archive, import, export 菜单: File > Options > Advanced > Export > Export to a file > 选择 Outlook Data File (.pst) > Next 展开树状列表,选择要备份的目录, 勾选 “include subfolders” 点击 Next 选择存放导出的 pst 文件的目标目录 (Save exported file as:) 点击 Finish 不设置 密码 点击 确定 等进度条走完 ( 备份文件比较小的时候可能看不到进度条 ) 在 outlook 里删除已经备份的目录. 导入 解压 导入 File> Open & Export> Open Outlook Data File 然后到 Outlook 窗口左侧的树状菜单底部的 Outlook Data File 下面就能找到了. ...

2019-04-24 · 1 min · 97 words · w1100n

alpine basic

alpine basic alpine mirror vi /etc/apk/repositories # b. 将里面 dl-cdn.alpinelinux.org 的 改成 mirrors.aliyun.com ; 保存退出即可 sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories # alpine install telnet apk update apk add busybox-extras busybox-extras telnet localhost 6900 apk add drill apk add tcpdump apk add curl 明明镜像中有对应的二进制文件,但是执行时却提示 not found 或 no such file¶ 有时可能会遇到明明镜像中存在相应的二进制文件,但是执行对应的二进制文件时却提示 not found 或 no such file 错误,类似下面这样: ls /usr/bin/grep /usr/bin/grep /usr/bin/grep /bin/sh: /usr/bin/grep: not found 常见原因:该二进制文件是使用动态链接方式编译了一个使用了 GLIBC 库的程序生成的,但是 alpne 镜像中没有 GLIBC 库而是用的 MUSL LIBC 库,这样就会导致该二进制文件无法被执行。 ...

2019-04-23 · 1 min · 149 words · -

Scrum的5个核心价值

Scrum的5个核心价值 什么是5个Scrum的核心价值? 什么是5个Scrum的核心价值? (英文原版) (日本語版) Scrum是敏捷软件开发的一个非常流行和众所周知的框架。几年前,Scrum在框架中添加了5个值,团队中的每个成员都使用它来指导他的决策。并不是很多人都知道并理解这些价值观,但它们对于scrum的成功实施至关重要,值得在这里详细阐述它们的含义。 Scrum值 那么Scrum值是什么?下图描绘了5个值: 五个Scrum值 (来源: Scrum.org – Scrum价值海报) 勇气 在Scrum团队成员有勇气做正确的事和棘手的问题的工作。团队成员在做正确的事情和承担明智的风险时相互支持,以便我们可以沿着我们的伟大道路学习和改进,包括: 承认没有人是完美的 提供撤消版本的产品 共享所有可能的信息以帮助团队和组织 承认没有完美的要求捕捉和面临快速变化是现实 焦点 每个人都关注Sprint的工作和Scrum团队的目标。当我们处理复杂性和不可预测性时,重点是必要的,以便做出任何有意义的事情。因为我们一次只关注一些事情,所以我们会尽快提供最有价值的物品。Scrum框架包含有助于促进关注的元素。 团队应该至少在每个Sprint结束时专注于"完成增量"。 每个Scrum 角色都有一个独特的问责制,可以帮助个人知道要关注什么作为他们的优先事项。这最终有助于团队成果。 Scrum团队专注于Sprint目标,以指导团队提供什么 该产品积压是一个优先顺序,以及创建专注于下一个是什么做的最重要的事情。 时间限制的冲刺事件创造了一种紧迫感,并帮助我们专注于事件的目的。 在Scrum的事件和文物帮助建立重点检查的进展和新的信息,让球队能够以足够频繁的间隔适应。 承诺 Scrum团队成员必须致力于成功,并愿意创建切合实际的目标并坚持下去。每个Scrum角色都致力于团队的成功,而不仅仅是关注我们的个人成就,通过以下方式创建信任,高效解决问题和高团队标准的环境: 该产品负责人演示了通过进行最佳决策,以优化产品的价值,而不是简单地试图取悦每一个利益相关者的承诺。 在Scrum Master的通过坚持Scrum的框架,这意味着我们不延长冲刺或其他时间盒压力去下演示的承诺"完成"。 在Scrum Master的证明通过删除Scrum团队不能自行解决的障碍,而不是容忍在组织现状的承诺。 该开发团队通过创建一个符合他们的"做,“不是东西,几乎是做了定义的增量演示的承诺。 尊重 作为自组织团队,我们不能没有彼此尊重,因此我们将为所有人培养一个参与,富有成效和人性化的环境。Scrum框架包含有助于促进尊重的元素。 整个Scrum团队参加Sprint Planning,Sprint Review和Sprint Retrospective。这促进了对每个角色,责任和不同观点的尊重。 开发团队是跨职能的,这意味着它具有提供"完成"产品增量所需的所有技能。这促进了对每个人的经验,技能和想法的尊重。这也促进了学习和成长。 该代办冲刺是由开发团队拥有。由于他们是做这项工作的人,他们决定他们在Sprint中可以做多少以及如何做这项工作。这表明了对他们的知识和技能的尊重,以及对以可持续的速度工作的尊重。 通过仅审查Sprint评审中的"完成"产品,我们为我们的真实进步带来了透明度。这体现了对利益相关者的尊重。 产品负责人寻求利益相关者的意见,合作并为利益相关者设定切合实际的期望。这是对利益相关者的尊重的另一种表现。 Scrum Master的重点是Scrum团队的健康状况以及Scrum的有效使用。担任教学,促进和辅导的角色表明了对人员和团队及其成长能力的尊重。 Scrum专注于提供价值,通过不花钱购买低价值功能或可能永远不会使用的东西来表达对我们组织的尊重。 在Sprint结束时具有潜在可释放的增量,通过不强迫更多投资实现价值,表明了对我们组织的尊重。它使组织可以灵活地做出投资决策。 透明度 Scrum的经验主义要求透明,开放,通过了解我们的工作安排,我们的进步,我们的学习和我们的问题。团队应该开放,跨学科和技能进行协作,与利益相关者和更广泛的环境协作,分享反馈和相互学习。Scrum框架包含有助于促进开放性的元素。 将Sprint限制在30天或更短时间,可以根据新信息促进对改变方向的开放性。 Sprint目标是固定的并提供指导,但是根据开发团队正在学习的内容,满足Sprint目标的计划是可以改变的。 透明的产品待办事项向我们的利益相关者展示了对产品计划内容 (以及未计划的内容) 以及下一步可能的内容的开放性。 Sprint Retrospective专注于持续改进我们团队的互动,流程和工具,这使我们能够开放反馈,反思和改变我们的工作方式。 Sprint Review展示了与利益相关者分享进展的开放性,以及对他们的反馈和协作的开放性。

2019-04-22 · 1 min · 61 words · -

chrome extension

chrome extension content script, 只能访问 dom, 不能访问页面 js 变量和函数 Injected Script, 被插入到页面里的 js 代码 chrome://extensions puzzle button: chrome extension 图标后面的拼图按钮 develop chrome extension doc https://developer.chrome.com/docs/extensions/mv3/ javascript web api: https://developer.mozilla.org/en-US/docs/Web/API chrome api: https://developer.mozilla.org/en-US/docs/Web/API html: https://web.dev/learn/html/ css: https://web.dev/learn/css/ javascript: https://developer.mozilla.org/en-US/docs/Learn/JavaScript chrome extension development overview: https://developer.chrome.com/docs/extensions/mv3/devguide/ chrome extension 的构成 The manifest, manifest.json, 唯一一个必须要存在于 extension 根目录的文件 The service worker, service worker 监听 chrome 的各种事件, 可以调用 Chrome api, 但是不能直接操作页面内容 Content scripts: content script 可以直接在页面中执行 js 代码, 可以直接操作 DOM, 还可以跟 service worker 通信 The popup and other pages crxjs, react https://crxjs.dev/vite-plugin ...

2019-04-21 · 1 min · 90 words · -

Scrum Master

Scrum Master Scrum 主 管 (Scrum Master, 简称 SM) 解惑 Scrum 系列一: 什么是 Scrum Master? 不久前,我们在帮一家颇具规模的银行做组织级敏捷转型时,经常被问到这样的问题: “Scrum Master 究竟是干什么的?什么样的人适合当 Scrum Master?” 要回答这个问题,我们需要先了解 “什么是 Scrum Master” ?这是个在 Scrum 框架中,最让人困惑的角色。目前为止,Scrum Master 一直没有很好的中文译名 (不像 PO 翻译成产品负责人那般自然) 。如果要一定要翻译 Scrum Master,似乎只有直译成 Scrum 大师最为贴切。按照经典 Scrum 的定义,Scrum Master 是 Scrum 三个角色之一,是负责帮助团队理解接受 Scrum 的价值观,原则和实践。 曾经有一位在业界颇具影响力的敏捷专家曾提到,Scrum Master 这个词本身充满了矛盾的色彩。一方面,这个词暗示 Scrum Master 是团队内部唯一的权威;而另一方面,Scrum Master 并没有任何行政上被赋予的权力。他不像部门经理,或是以往的 team leader,原则上他并不对项目的成功负责 (现实中确实有一些 Scrum Master 沿袭了 team leader 或 manager 的权力) 。所以这些经常导致 Scrum Master 究竟是不是权威的争论。除此,还有人提出,Scrum Master 是否表现出色,可以用团队是否需要 Scrum Master 来衡量 (这方面可以参照 Spotify 的组织内没有 Scrum Master) 。于是我们面临的悖论是" 好的 Scrum Master 就是不存在的 Scrum Master"!! ...

2019-04-21 · 2 min · 347 words · -

Scrum

Scrum scrum guide https://www.scrumguides.org/scrum-guide.html Scrum是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程。 Scrum is a simple yet incredibly powerful set of principles and practices that helps teams deliver products in short cycles, enabling fast feedback, continual improvement, and rapid adaptation to change. Scrum是一套简单但功能强大的原则和实践,可帮助团队在短周期内交付产品,实现快速反馈,持续改进和快速适应变化。 Scrum是一个遵循敏捷宣言价值观,基于12条敏捷原则的敏捷过程,它是一种采用迭代式、增量开发的软件开发过程。Scrum在英语的意思是橄榄球里的争球。 Scrum是一个框架,它定义了高层次的管理流程,如下图所示。它并不涉及具体开发方法或者人员的有效沟通技巧等。这些没有涉及的领域需要和其他理论和技能互为补充,以确保项目的成功。 https://desert3.iteye.com/blog/1693360 Scrum是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程。Scrum在英语是橄榄球运动中列阵争球的意思。 https://zh.wikipedia.org/wiki/Scrum 处理复杂的事情,要用框架 处理复杂的事情,如果有框架指导,就能保证最终结果的完整性、系统性及正确性。另外,通过框架,将复杂的事情切分成较小块、把工作流程标准化,从而将大问题变成一个个小问题,大大减少工作难度。 软件开发是一项复杂的活动,敏捷开发也有自己的一种框架: Scrum。 Scrum是什么? Scrum是基于敏捷思想的开发框架,用于迭代式增量软件开发过程。 它基于经验型流程控制理论,所以Scrum框架的坚信: 知识源于经验 决策基于已知的事物 透明性、检视、调整是经验型流程的三大支柱 采用迭代增量式的方法来优化可预测性和管理风险 https://www.jianshu.com/p/fff49687ebf2 Scrum概述 按照Scrum官方联盟的定义,Scrum是一个完成复杂项目的敏捷框架。最初是用以指导软件开发,目前已经延伸到更多复杂和创新的工作领域中。 Scrum为软件开发提供了一个迭代增量的过程框架: 在Scrum中,整个开发周期包括若干个小的迭代周期,这样的小迭代周期称为Sprint,每个Sprint的建议长度2到 4周。 Product Owner(产品负责人)会创建一个具有优先级的需求列表,称之为Product Backlog (产品待办事项) 。产品待办事项的表现形式通常为User Story(用户故事)。 Scrum开发团队通过Sprint Planning (Sprint计划会) ,从Product Backlog中挑选最有价值的需求进行开发。经过Sprint计划会议上的分析、讨论和估算得到任务列表,称为为Sprint backlog 。 ...

2019-04-21 · 2 min · 249 words · -

敏捷 Agile

敏捷 Agile 敏捷宣言 个体和互动 高于 流程和工具 工作的软件 高于 详尽的文档 客户合作 高于 合同谈判 响应变化 高于 遵循计划 也就是说,尽管右项有其价值, 我们更重视左项的价值。 # Kent Beck, James Grenning, Robert C. Martin # Mike Beedle, Jim Highsmith, Steve Mellor # Arie van Bennekum, Andrew Hunt, Ken Schwaber # Alistair Cockburn, Ron Jeffries, Jeff Sutherland # Ward Cunningham, Jon Kern, Dave Thomas # Martin Fowler, Brian Marick 著作权为上述作者所有,2001年 ,此宣言可以任何形式自由地复制, 但其全文必须包含上述申明在内。 Agile 12 Principle Our Highest Priority Is To Satisfy Customer through Early and Continuous Delivery Welcome-Changing Requirements Even Late In Development. Agile Processes Harnesses Change for Customer Competitive Advantage Deliver Working Software Frequently (Weekly or Monthly) With Focus on Shorter Timescale Business People and Developers Should Work Together Daily Build Projects around Motivated Individual. Provide Them the Environment and Support They Need and Trust Them The Most Efficient Way to Convey Information to Your Development Team is Face To Face Conversation Working Software Is a Primary Measure of Success Agile Process Promotes Sustainable Development. Sponsors, Developers and Users Should Maintain a Constant Pace Continuous Attention to Technical Excellence and Good Design Boosts Agility Simplicity—The Art of Maximizing The Amount of Work Not Done but Is Essential The Best Requirements, Architecture, and Design Emerge From Self Organizing Teams At Regular Interval, Team Reflects on How to Become More Effective and Tweak Behavior Accordingly 敏捷开发十二原则 我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。 欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。 要不断交付可用的软件,周期从几周到几个月不等,且越短越好 项目过程中,业务人员与开发人员必须在一起工作。 要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。 无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。 可用的软件是衡量进度的主要指标。 敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。 对技术的精益求精以及对设计的不断完善将提升敏捷性。 要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。 最佳的架构、需求和设计出自于自组织的团队。 团队要定期反省如何能够做到更有效,并相应地调整团队的行为。 敏捷的核心可以归纳成四个字: “渐进增强”。 ...

2019-04-21 · 2 min · 277 words · -

Apache HttpClient 4.5 How to Get Server Certificates

Apache HttpClient 4.5 How to Get Server Certificates package com.memorynotfound.httpclient; import org.apache.http.HttpResponseInterceptor; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.DateUtils; import org.apache.http.conn.ManagedHttpClientConnection; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; import org.apache.http.protocol.HttpCoreContext; import javax.net.ssl.SSLSession; import java.io.IOException; import java.security.cert.Certificate; import java.security.cert.X509Certificate; /** * This example demonstrates how to obtain server certificates {@link X509Certificate}. */ public class HttpClientGetServerCertificate { public static final String PEER_CERTIFICATES = "PEER_CERTIFICATES"; public static void main(String... args) throws IOException { // create http response certificate interceptor HttpResponseInterceptor certificateInterceptor = (httpResponse, context) -> { ManagedHttpClientConnection routedConnection = (ManagedHttpClientConnection)context.getAttribute(HttpCoreContext.HTTP_CONNECTION); SSLSession sslSession = routedConnection.getSSLSession(); if (sslSession != null) { // get the server certificates from the {@Link SSLSession} Certificate[] certificates = sslSession.getPeerCertificates(); // add the certificates to the context, where we can later grab it from context.setAttribute(PEER_CERTIFICATES, certificates); } }; // create closable http client and assign the certificate interceptor CloseableHttpClient httpClient = HttpClients .custom() .addInterceptorLast(certificateInterceptor) .build(); try { // make HTTP GET request to resource server HttpGet httpget = new HttpGet("https://google.com"); System.out.println("Executing request " + httpget.getRequestLine()); // create http context where the certificate will be added HttpContext context = new BasicHttpContext(); httpClient.execute(httpget, context); // obtain the server certificates from the context Certificate[] peerCertificates = (Certificate[])context.getAttribute(PEER_CERTIFICATES); // loop over certificates and print meta-data for (Certificate certificate : peerCertificates){ X509Certificate real = (X509Certificate) certificate; System.out.println("----------------------------------------"); System.out.println("Type: " + real.getType()); System.out.println("Signing Algorithm: " + real.getSigAlgName()); System.out.println("IssuerDN Principal: " + real.getIssuerX500Principal()); System.out.println("SubjectDN Principal: " + real.getSubjectX500Principal()); System.out.println("Not After: " + DateUtils.formatDate(real.getNotAfter(), "dd-MM-yyyy")); System.out.println("Not Before: " + DateUtils.formatDate(real.getNotBefore(), "dd-MM-yyyy")); } } finally { // close httpclient httpClient.close(); } } }

2019-04-18 · 2 min · 251 words · -

reveal.js, markdown > PPT

‘reveal.js, markdown > PPT’ 快捷键 全屏 f , 退出全屏 Esc 上一页 p, 下一页 n/空格 首页 Home, 末页 End 缩略图 Esc 或 o 黑屏 b 演讲提示模式 s vi导航键: h, j, k, l 帮助页面: ? 字号 reveal.js的markdown支持4种字号#,##,###,#### 安装nodejs sudo pacman -S nodejs 安装npm sudo pacman -S npm git clone reveal.js git clone https://github.com/hakimel/reveal.js.git cd reveal.js npm install mv index.html index.html.bak ln -s scrum/index.html index.html npm start npm start – –port=8001 ```xml 内容左对齐 .reveal .slides { text-align: left; } .reveal .slides section>* { margin-left: 0; margin-right: 0; } </style> 插入图片并控制样式 路径是相对于index.html的路径 ...

2019-04-16 · 1 min · 91 words · -

idea config, 配置

idea config, 配置 intellij idea 设置显示空格 View>Active Editor>show whitespaces 在IDEA里输入中文,fcitx vim /sbin/idea export XMODIFIERS="@im=fcitx" export GTK_IM_MODULE="fcitx" export QT_IM_MODULE="fcitx" https://blog.csdn.net/shiyibodec/article/details/73549501 java compiler File > Settings > Build, Execution, Deployment > Compiler > Java Compiler Change Target bytecode version to 1.8 of the module that you are working for. https://yangbingdong.com/2017/note-of-learning-idea-under-ubuntu/ font JetBrain推出了一个新的字体 JetBrain Mono. 号称是最适合程序员的编码的字体 terminal 字体 Setting->Editor->Color Scheme->Console Font openjdk source Go to Project Structure dialog, select the “SDKs” node, select your JDK, ...

2019-04-14 · 1 min · 161 words · -

docker btrfs

docker btrfs 镜像分层与Btrfs共享 Docker利用Btrfs subvolumes和快照来管理镜像和容器数据层的硬盘组件(on-disk components)。Btrfs subvolumes看起来像一个正常的Unix文件系统。因此,他们可以有自己的内部目录结构,挂钩到更广泛的Unix文件系统。 subvolumes更新文件时涉及写时拷贝操作,写入新文件时涉及从一个底层存储池来按需分配空间的操作。它们既能嵌套也能做快照。下图显示了4个subvolumes。“subvolume 2″和"subvloume 3″是嵌套的,而"subvolume 4"显示它自己的内部目录树。 使用btrfs驱动的Docker主机创建镜像和容器的过程如下: 1.镜像的基础数据层存储在/var/lib/docker/btrfs/subvolumes的Btrfs subvloume中。 2.后续的镜像数据层存储为subvolume或快照的父级数据层的一个Btrfs快照中。 https://www.centos.bz/2016/12/docker-and-btrfs-in-practice/

2019-04-14 · 1 min · 16 words · -

btrfs command

btrfs command # 安装 btrfs 的用户空间工具 pacman -S btrfs-progs # 像 df 这样的用户空间工具可能不会准确的计算剩余空间 (因为并没有分别计算文件和元数据的使用情况) 。推荐使用 btrfs filesystem usage 来查看使用情况 btrfs filesystem usage / #列出当前路径 (path) 下的子卷: btrfs subvolume list -p path # 碎片整理 btrfs filesystem defragment -r /

2019-04-14 · 1 min · 38 words · -

linux 查看 SATA 速度, 版本

linux 查看 SATA 速度, 版本 https://www.cyberciti.biz/faq/linux-command-to-find-sata-harddisk-link-speed/ sudo pacman -S smartmontools sudo smartctl -a /dev/DEVICE-NAME-HERE sudo smartctl -i /dev/DEVICE-NAME-HERE sudo smartctl -a /dev/sda | grep "^SATA" sudo smartctl -i /dev/sdb | grep "^SATA" sudo smartctl -a /dev/sda sudo smartctl -i /dev/sdb dmesg | grep -i sata | grep 'link up'

2019-04-14 · 1 min · 49 words · -

SSD

SSD TRIM #检查 SSD 是否支持 TRIM lsblk --discard # 或者用 hdparm sudo pacman -S hdparm sudo hdparm -I /dev/sda | grep TRIM Linux 文件系统对于删除操作,只标记为未使用,实际并没有清零,底层存储如 SSD 和传统机械磁盘并不知道哪些数据块可用,哪些数据块可以 Erase。所以对于非空的 page,SSD 在写入前必须先进行一次 Erase,则写入过程为 read-erase-modify-write: 将整个 block 的内容读取到 cache 中,整个 block 从 SSD 中 Erase, 要覆写的 page 写入到 cache 的 block 中,将 cache 中更新的 block 写入闪存介质,这个现象称之为写入放大( write amplification)。 SSD中提供了一个TRIM命令,操作系统在删除文件时可以通过向SSD发送TRIM命令告诉它哪些数据块中的数据已经不再使用了。SSD在收到TRIM命令后,通常会在定期的垃圾收集操作中重新组织这些区块,为将来写入数据做好准备,不过每一款SSD在底层对TRIM命令的执行机制都不尽相同,但无论如何,通过TRIM能够显著改善SSD的性能和寿命。 https://www.guokr.com/blog/483475/ https://zhuanlan.zhihu.com/p/34683444 SSD 检测工具 Crystal Dick Info Crystal Disk Mark Samsung_Magician_Installer_Official_7.0.1.630 https://semiconductor.samsung.com/consumer-storage/support/tools/

2019-04-14 · 1 min · 67 words · -

GraphViz

GraphViz pacman -S graphviz GraphViz是什么? GraphViz是一个开源的图像可视化的软件,是贝尔实验室开发的一个开源的工具包,它使用一个特定的 DSL(领域特定语言): dot 作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。graphviz 提供丰富的导出格式,如常用的图片格式,SVG,PDF 格式等。 Graphviz由一种被称为DOT语言的图形描述语言[3] 与一组可以生成和/或处理DOT文件的工具组成: dot 一个用来将生成的图形转换成多种输出格式的命令行工具。其输出格式包括PostScript,PDF,SVG,PNG,含注解的文本等等。 neato 用于 sprint model 的生成 (在Mac OS版本中称为energy minimized) 。 twopi 用于放射状图形的生成 circo 用于圆形图形的生成。 fdp 另一个用于生成无向图的工具。 dotty 一个用于可视化与修改图形的图形用户界面程序。 lefty 一个可编程的(使用一种被EZ影响的语言[4])控件,它可以显示DOT图形,并允许用户用鼠标在图上执行操作。Lefty可以作为MVC模型的使用图形的GUI程序中的视图部分。 作者: 疯狂的小托马斯 链接: https://www.jianshu.com/p/8e88b2a5dc03 来源: 简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

2019-04-13 · 1 min · 41 words · -

win10 onedrive cpu

win10 onedrive cpu https://mingjiejian.github.io/2017/09/15/onedrive/ 推荐且不怎么伤的办法 从解决方法来说原因应该是Onedrive的log出错了,一直以为没有更新所以卡在更新/安装上,所以一个比较简单的解决办法就是删掉错误的log。这两个log是 C:\Users\用户名\AppData\Local\Microsoft\OneDrive\setup\logs\userTelemetryCache.otc C:\Users\用户名\AppData\Local\Microsoft\OneDrive\setup\logs\userTelemetryCache.otc.session 在Onedrive打开而且用户没有注销登录的情况下在任务管理器中结束OneDriveSetup.exe进程 将上述的两个log文件删除 运行C:\Users\用户名\AppData\Local\Microsoft\OneDrive\Update\OneDriveSetup.exe 应该就可以了 有的时候可能自己觉得太烦想重装,已经将Onedrive卸载了 (我就是这么做的) ;这个时候只需要做上面的第2步然后双击安装文件就行了,不会再卡在安装那。不过之后要重新登录一下自己的账户。

2019-04-11 · 1 min · 15 words · -

bspwm

bspwm https://wiki.archlinux.org/title/bspwm https://zhuanlan.zhihu.com/p/568211941 mkdir ~/.config install -Dm755 /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/bspwmrc install -Dm644 /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/sxhkdrc 快捷键 win + enter: 打开 urxvt win + space: dmenu_run

2019-04-10 · 1 min · 23 words · -

TProxy

TProxy net.ipv4.ip_forward 这条命令的作用是开启 Linux 系统的 IPv4 协议栈的数据包转发功能。 sudo sysctl net.ipv4.ip_forward = 1 ip_forward = 0 如果目标 IP 地址是本机拥有的某个 IP 地址,系统就会接收并处理这个数据包(例如,交给某个正在监听端口的应用程序)。 如果目标 IP 地址不是本机的,系统会默认将该数据包丢弃。这是普通主机(Host)的正常行为。 ip_forward = 1 如果目标 IP 地址是本机的,处理方式不变。 如果目标 IP 地址不是本机的,系统不会丢弃它。而是会查询自己的路由表,根据路由规则将这个数据包从合适的网络接口转发出去,发送给下一个路由器或者目标主机。这时,这台机器就扮演了路由器(Router)的角色。 TPROXY 的作用 TPROXY(Transparent Proxy)用来做 透明代理,可以拦截特定的流量,并强制把它交给本地某个 socket(通常是代理进程),而 不改变包的目标地址/端口(和 REDIRECT 不一样,REDIRECT 会改成本机 IP)。 TPROXY 依赖内核的 nf_tproxy_core 模块,它会在路由决策阶段之前决定:这个包是否交给本地 socket TPROXY 能拦截哪些流量 来自外部的流量 在 mangle/PREROUTING 链,TPROXY 可以截获所有进入本机的包 —— 不论目标 IP 是本机,还是本来应该转发出去的其它主机,都可以“强行”转给本地代理进程。 这就是它相比 REDIRECT 的强大之处: REDIRECT 只能改成本机 IP,所以只适合本机为目标的流量; TPROXY 不改变目标 IP,能“假装”这个包还是发往原地址,同时又让本地代理进程接收。 本地产生的流量 在 mangle/OUTPUT 链,TPROXY 可以截获本机应用发出的连接,再转交给代理进程。 哪些流量不能被 TPROXY 拦截? 内核绕过 Netfilter 的流量:例如某些特殊协议或 raw socket 直接发出的包。 ...

2019-04-10 · 3 min · 458 words · -

golang, cgo, CGO_ENABLED

golang, cgo, CGO_ENABLED go build CGO_ENABLED=0 GOOS=linux go build -v -a -o name0 main.go cgo CGO 提供了 golang 和 C 语言相互调用的机制。某些第三方库可能只有 C/C++ 的实现,完全用纯 golang 的实现可能工程浩大,这时候 CGO 就派上用场了。 可以通 CGO 在 golang 在调用 C 的接口,C++ 的接口可以用 C 包装一下提供给 golang 调用。 被调用的 C 代码可以直接以源代码形式提供或者打包静态库或动态库在编译时链接。 推荐使用静态库的方式,这样方便代码隔离,编译的二进制也没有动态库依赖方便发布也符合 golang 的哲学。 CGO_ENABLED=0 的情况下,Go 采用纯静态编译; CGO_ENABLED=1 go build 编译时会添加一些动态库链接 如 glibc cgo,允许你在 Go 代码中调用C代码 我们以os/user为例,在 CGO_ENABLED=1,即 cgo 开启的情况下,os/user 包中的 lookupUserxxx 系列函数采用了 c 版本的实现,我们看到在 $GOROOT/src/os/user/lookup_unix.go 中的 build tag 中包含了 build cgo。这样一来,在 CGO_ENABLED=1,该文件将被编译,该文件中的c版本实现的lookupUser将被使用 ...

2019-04-05 · 1 min · 87 words · -