golang WebAssembly

golang WebAssembly https://github.com/golang/go/wiki/WebAssembly https://tutorialedge.net/golang/go-webassembly-tutorial/ package main import "fmt" func main() { fmt.Println("Hello, WebAssembly!") } gOOS=js GOARCH=wasm go build -o main.wasm cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" . go get -u github.com/shurcooL/goexec goexec 'http.ListenAndServe(":8080", http.FileServer(http.Dir(".")))'

2019-05-10 · 1 min · 32 words · -

maven-shade-plugin

maven-shade-plugin maven build fat jar

2019-05-09 · 1 min · 5 words · -

命令行, curl 查询公网 ip

‘命令行, curl 查询公网 ip’ curl ifconfig.me curl whatismyip.akamai.com curl https://ip.cn curl icanhazip.com curl ident.me curl tnx.nl/ip curl myip.dnsomatic.com https://blog.csdn.net/liu0808/article/details/80769810 curl http://members.3322.org/dyndns/getip # 保存到文件 wget http://ifconfig.me/ip wget http://members.3322.org/dyndns/getip http://blog.csdn.net/teddy17/article/details/12618035 curl http://myip.ipip.net/ curl cip.cc curl ifconfig.me curl myip.ipip.net curl http://members.3322.org/dyndns/getip

2019-05-07 · 1 min · 38 words · -

Theme, epic,feature,user story

Theme, epic,feature,user story 在敏捷项目的估算或计划时,我们常提到以下几个概念。talent.mypm.net · Epic Storyservice.mypm.net · Feature项目经理圈子 · Minimal Marketable Feature (MMF)项目管理者联盟 · Theme项目管理者联盟 · User Story项目管理培训 · Tasktalent.mypm.net 本文将说明这几个概念的意义和他们间的关系。项目管理者联盟 FeaturePgMp.mypm.net Feature是可以为顾客提供价值的东西,它代表一个产品可以做什么,或提供什么服务;是可以满足用户的需求,为客户服务,为用户带来真正的价值的成果物的特性。PgMp.mypm.net Feature相对复杂,可由一组动宾结构的句子表达,如一个超市的交易可以描述为: blog.mypm.net · 扫描条形码项目管理者联盟 · 显示单价PgMp.mypm.net · 计算总价项目管理者联盟 · 计算税额项目管理者联盟 · 打印清单项目管理者联盟文章 因此,一个Feature是很难进行估算的,它需要被分解成一个个更小的单位,这就是下面要讨论的User Story。Feature一般在Release Plan的层次,一个Feature可能需要几次迭代才能完成。项目管理者联盟 由于Feature是满足用户需求的交付物,因此每次交付的对象应该是一个或多个Feature。可以说Feature就是敏捷宣言中的"Working software"。转自项目管理者联盟 Minimal Marketable Feature (MMF)项目管理者联盟 了解了什么时Feature后,我们再来讨论MMF。顾名思义,MMF就是一组最小的,可以市场化的机能。首先,它是Feature,其次,它强调的是市场化这个概念。市场化意味着它能够提交到用户手中使用,并可以从用户那里得到相应的回报。MMF可以使得投资提前取得收益,这对于一个企业来说,是非常重要和实用的。blog.mypm.net User Story项目管理者联盟 在Feature的讨论中提到了,Feature是由一组动宾结构的句子组成的。这些动宾句子描述的就是一个个User Story。一个Feature可以分解成多个User Story,每个User Story不能单独被使用,而是一起构成一个Feature。PgMp.mypm.net 一个User Story必须是清晰的,可以为客户增加价值,而且更重要的是能够被估算。因此User Story通常是进行估算的基本单位,通常使用Story Point来进行估算。User Story是在迭代的层级,一个User Story要在一个迭代内完成。项目管理者联盟文章 另外,User Story也是进行需求分析的工具。通过询问谁、做什么、为什么,能够简单明了地扑捉客户的需求。因此User Story通常写成以下形式: 项目经理圈子 As a , I want , so than .项目管理者联盟 ...

2019-05-05 · 1 min · 147 words · -

hyper -v 端口映射

hyper -v 端口映射 https://www.cnblogs.com/cnxkey/articles/7815434.html hyper -v 如何实现端口映射 如果你是想由虚拟机来提供相应的服务,比如虚拟机里安装web服务,将物理主机的web端口映射到虚拟机,可以使用如下命令进行设置即可,我已经成功了。 一、查询端口映射情况 netsh interface portproxy show v4tov4 查询这个IP所有的端口映射。 netsh interface portproxy show v4tov4|find “192.168.1.1” 二、增加一个端口映射 netsh interface portproxy add v4tov4 listenport=外网端口 listenaddress=主IP connectaddress=私网IP connectport=私网IP端口 例如: netsh interface portproxy add v4tov4 listenport=8888 listenaddress=118.123.13.180 connectaddress=192.168.1.10 connectport=2222 三、删除一个端口映射 netsh interface portproxy delete v4tov4 listenaddress=主IP listenport=外网端口 例如: netsh interface portproxy delete v4tov4 listenaddress=118.123.13.180 listenport=8888 在关闭Hyper-V虚拟机的情况下,选择Hyper-V管理界面中的"虚拟交换机管理器" 在弹出的对话框中"新建虚拟网络交换机",选择"内部",点击"创建虚拟交换机"。 在IP网卡 切换到"共享"标签下,勾选"允许其他网络用户通过此计算机的Internet连接来连接"并在下方"家庭网络连接"中选择刚刚创建的虚拟交换机——vEthernet (Hyper-V Switch),点击"确认

2019-05-05 · 1 min · 63 words · -

Product Backlog

Product Backlog Product Backlog由所有的功能特性,包括业务功能,非业务功能 (技术、架构和工程实践相关) ,提升点以及缺陷的修复等组成。这些内容也是将来产品版本发布的主要内容。 一个完整的Backlog是一个蓝图,可以根据它来把产品改造成为我们期望的样子。 但是在Scrum中,Backlog是根据产品和产品使用环境的演化而不断演化的。所以Backlog是动态的,我们会持续的改变它去确保我们的产品是最合理的,最有竞争力的,最有价值的。 当我们去看产品的Backlog的时候,优先级是一个重要的视角,优先级越高的Backlog需要越清晰,越详细。对于优先级低的Backlog,详细程度会越低,直到几乎我们不能认为它是一个Backlog项 (非常低的优先级,只相当于一个占位符,来用做提醒) 。 评算(Esitimate) 对每个backlog项做估算 (包括成本,复杂度,风险,功能点) 。优先级越高的Backlog估算要越精确,在估算的过程中可能会导致backlog的优先顺序有可能随之发生变化 (对于那些很重要,并且可以快速解决的问题可以先做) 。 我们要经常做估算。 创建者(Creater) Backlog内容的来源是多样化的. 产品营销部门会分析产生产品的特性和功能点,销售也会有很多反馈可以使产品更具有竞争力或者取悦某些特殊的客户。产品的架构师或者设计人员也会提出一些技术架构方面或者工程实践方面的需求使得产品更加灵活,更具扩展性,可复用性,开发更高效等等。产品实施或者技术支持部门也会有许多产品缺陷的反馈被放入Backlog。 重要程度(Importance) 每个Backlog项都有优先级,这些backlog项按照优先次序排行队列放在Backlog列表中。在评估的过程中 我需要在"什么样的产品特性,技术架构,缺陷的修复才会给产品公司和它的客户带来带来最大的收益? " 和"什么样的技术架构,工程方法使我们可以更快,更高质量的交付版本"之间做出抉择。不论是对内部技术环境或者外部市场,我们都需要不断筛选和评估什么是最重要的。 版本发布(Release) 规划接下来的几个版本,包括版本的目标,及可能包含的内容。 (我们可能需要在发布内容,开发成本及发布周期之间做出抉择) 。 产品Backlog要按照Release分组,要让开发团队的所有成员都全部的了解总体开发目标,并且确保所有的技术问题都做了充分的考虑并且放入了产品Backlog. 负责人(Product Owner) 我们需要指定一个负责人来管理Backlog。这个人的职责是管理和控制Backlog列表,对于商业产品的开发, Backlog的负责人也许会是产品经理,对于内部项目的开发Backlog的负责人有可能是项目经理或者它指派的人。这个负责人的职责是调整产品Backlog的优先级和工作量估算,同时决定哪些内容包括在Sprint中。这是一个各个相关的组织协作的过程。 优先级(Priority) 只有一个人来进行排序的工作,这个人的职责是确保达成产品的愿景,提高产品投资回报率。这个人的职位一般是产品经理或者产品营销经理。如果任何人需要改变优先级,他们必须说服这个负责人去改变。 可视化(Visualization) 产品的Backlog需要能够让开发团队,利益相关者等相关的人能够很容易的看到它的内容,状态,进展等等。 以下是引用《硝烟中的Scrum和XP-我们如何实施Scrum (Henrik Kniberg著) 》 中讲述他们如何编写Product Backlog: Product Backlog是Scrum的核心,也是一切的起源。从根本上说,它就是一个需求、或故事、或特性等组成的列表,按照重要性的级别进行了排序。它里面包含的是客户想要的东西,并用客户的术语加以描述。我们叫它故事 (Story) ,有时候也叫做Backlog条目。 我们的故事包括这样一些字段: ID——统一标识符,就是个自增长的数字而已。以防重命名故事以后找不到它们。 Name (名称) ——简短的、描述性的故事名。比如"查看你自己的交易明细"。它必须要含义明确,这样开发人员和产品负责人才能大致明白我们说的是什么东西,跟其他故事区分开。它一般由2到10个字组成。 Importance (重要性) ——产品负责人评出一个数值,指示这个故事有多重要。例如10或150。分数越高越重要。 o 我一直都想避免"优先级"这个说法,因为一般说来优先级1都表示"最高"优先级,如果后来有其他更重要的东西就麻烦了。它的优先级评级应该是什么呢?优先级0?优先级-1? Initial Estimate (初始估算) ——团队的初步估算,表示与其他故事相比,完成该故事所需的工作量。最小的单位是故事点 (story point) ,一般大致相当于一个"理想的人天 (man-day) “。 o 问一下你的团队,“如果可以投入最适合的人员来完成这个故事 (人数要适中,通常为2个) ,把你们锁到一个屋子里,有很多食物,在完全没有打扰的情况下工作,那么需要几天,才能给出一个经过测试验证,可以交付的完整实现呢?“如果答案是"把3个人关在一起,大约需要4天时间”,那么初始估算的结果就是12个故事点。 o 不需要保证这个估值绝对无误 (比如两个故事点的故事就应该花两天时间) ,而是要保证相对的正确性 (即,两个点的故事所花费的时间应该是四个点的故事所需的一半) ...

2019-05-01 · 1 min · 143 words · -

database DDL > puml

database DDL > puml https://github.com/wangyuheng/ddl2plantuml java -jar ~/apps/ddl2plantuml.jar foo.sql er.puml docker run \ -e DDL='/mnt/data/ddl.sql' \ -e PLANTUML='/mnt/data/er_by_docker.puml' \ -v ddl2plantuml-data:'/mnt/data' \ wangyuheng/ddl2plantuml:latest

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

golang开发目录结构

golang 开发目录结构 https://github.com/golang-standards/project-layout 在实际的项目中发现大家的目录结构都比较凌乱,基本每个人都有每个人的风格,一个项目在不断地变大,一些新的文件或目录又不断地被添加进来,从这里面去找到自己需要的信息的成本越来越高,一个统一的通用的目录结构非常有必要。 以下内容来自于github上的这个项目 (https://github.com/golang-sta…) /cmd main函数文件 (比如 /cmd/myapp.go) 目录,这个目录下面,每个文件在编译之后都会生成一个可执行的文件。 不要把很多的代码放到这个目录下面,这里面的代码尽可能简单。 /internal 应用程序的封装的代码,某个应用私有的代码放到 /internal/myapp/ 目录下,多个应用通用的公共的代码,放到 /internal/common 之类的目录。 /pkg 一些通用的可以被其他项目所使用的代码,放到这个目录下面 /vendor 项目依赖的其他第三方库,使用 glide 工具来管理依赖 /api 协议文件,Swagger/thrift/protobuf 等 /web web服务所需要的静态文件 /configs 配置文件 /init 服务启停脚本 /scripts 其他一些脚本,编译、安装、测试、分析等等 /build 持续集成目录 云 (AMI), 容器 (Docker), 操作系统 (deb, rpm, pkg)等的包配置和脚本放到 /build/package/ 目录 /deployments 部署相关的配置文件和模板 /test 其他测试目录,功能测试,性能测试等 /docs 设计文档 /tools 常用的工具和脚本,可以引用 /internal 或者 /pkg 里面的库 /examples 应用程序或者公共库使用的一些例子 /assets 其他一些依赖的静态资源 https://www.jianshu.com/p/1c47d99f33ed

2019-04-28 · 1 min · 64 words · -

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 · -

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 · -

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 · -

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 · -

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 · -

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 · -

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 · -

linux nm

linux nm nm 目标文件格式分析 nm 命令显示关于指定 File 中符号的信息,文件可以是对象文件、可执行文件或对象文件库。如果文件没有包含符号信息,nm 命令报告该情况,但不把它解释为出错条件。 nm 命令缺省情况下报告十进制符号表示法下的数字值。 nm nm命令主要是列出目标文件的符号 (说白了就是一些函数和全局变量等) 。 如果你编译出来的程序没有经过 strip ,那么 nm 命令可以挖掘出隐含在可执行文件中的重大秘密。它可以帮你列出文件中的变量及函数,这对于我们进行反向操作具有重大意义。 下面我们通过一小段简单的程序来讲解 nm 命令的用途。在编译这个程序时,我们加上了 -g 选项,这个选项可以使编译出来的文件包含更多有效信息。 nm /path/to/foo nm命令 功能:列出.o、.a、.so中的符号信息,包括符号的值,符号类型及符号名称等。所谓符号,通常指定义出的函数,全局变量等 https://blog.csdn.net/mayue_web/article/details/115919693 使用: nm [option(s)] [file(s)] 1 示例: 查看静态库或动态库定义了哪些函数 nm -n –defined-only xxxx.a nm -g -C –defined-only xxxx.so nm -D xxxx.so 显示hello.a 中的未定义符号,需要和其他对象文件进行链接 nm -u hello.o 在 ./ 目录下找出哪个库文件定义了close_socket函数 nm -A ./* 2>/dev/null | grep “T close_socket” ———————————————— 版权声明:本文为CSDN博主「mayue_csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/mayue_web/article/details/103879976 https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/nm.html

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

hyperv archlinux

hyperv archlinux hyper v 禁用安全启动 虚拟机>设置>安全>启用安全启动(去掉勾选) network 在虚拟机栏中右键点击虚拟机>设置>添加硬件 选择"网络适配器" 点击添加按钮 添加 Default switch. Default switch默认会做nat,添加 后虚拟机可以正常访问网络.但Default switch的ip/网段每次重启会变,如果 需要 固定ip,需要另外手动新建一个交换机sw0 新建虚拟交换机 Hyper-V 管理器>右侧操作栏>虚拟交换机管理器>新建虚拟交换机>内部>新建虚拟交换机 名称: sw0 连接类型: 内部网络 在windows中打开网络适配器设置,手动设置sw的 ip为 192.168.80.1 网关可以不填 dns: 192.168.1.xxx linux里 手动测试sw0的ip : 192.168.80.2 Gateway 不要设置, 两个网卡 对应default switch的设置默认网关,sw0不设置 DNS: 192.168.1.xxx 问题 遇到过一次虚拟机不能访问外网, 确认linux网络 配置没有问题, 重启windows解决了. install VcXsrv GUI VSOCK + x410 https://x410.dev/cookbook/hyperv/using-x410-with-hyper-v-linux-virtual-machines-via-vsock/ 卸载 xrdp yay -R xrdp 修改win10注册表,配置vsock x410-display-0-only.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\GuestCommunicationServices\00001770-facb-11e6-bd58-64006a7986d3] "ElementName"="X410 Display 0" 启动x410 并 开启vsock x410 /listen hyperv /desktop xfce4 桌面启动脚本 sudo vim /usr/bin/start-xfce4-desktop.sh export XDG_SESSION_TYPE=x11 export XDG_CURRENT_DESKTOP=“XFCE” exec startxfce4 ...

2019-04-01 · 2 min · 262 words · -