首页
在线工具
搜索
1
Kuboard与KubeSphere的区别:Kubernetes管理平台对比
2
ShardingSphere使用中的重点问题剖析
3
Flowable工作流引擎源码深度解析
4
用AI生成的原型设计稿效果还可以
5
如何将Virtualbox和VMware虚拟机相互转换
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
Search
标签搜索
Angular
Docker
Phabricator
SpringBoot
Java
Chrome
SpringSecurity
SpringCloud
DDD
Git
Mac
K8S
Kubernetes
ESLint
SSH
高并发
Eclipse
Javascript
Vim
Centos
Jonathan
累计撰写
86
篇文章
累计收到
0
条评论
首页
栏目
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
页面
搜索到
20
篇与
的结果
2018-12-31
Mounty for NTFS:Mac 用户轻松挂载 NTFS 磁盘的利器
Mounty for NTFS:Mac 用户轻松挂载 NTFS 磁盘的利器 在 Mac 设备上使用 NTFS 格式的移动硬盘或 U 盘时,默认情况下只能读取,无法写入,给许多用户带来了极大的不便。今天要推荐一款轻量级且免费的 macOS 软件——Mounty for NTFS,它能够帮助你轻松挂载 NTFS 磁盘,实现读写功能,是 Mac 用户不可或缺的工具之一。 Mounty 是什么? Mounty for NTFS 是一款专为 macOS 设计的 NTFS 挂载工具,它利用 macOS 内置的 NTFS 读写支持,通过简单的方式启用对 NTFS 设备的写入权限,从而无需安装复杂的第三方驱动。 主要功能 轻松挂载 NTFS 设备 允许 Mac 用户读写 NTFS 格式的硬盘、U 盘等存储设备。 操作简单 无需复杂配置,安装后自动检测 NTFS 设备,一键启用写入权限。 系统资源占用低 相比 Paragon NTFS 等商业软件,Mounty 体积小,不影响系统性能。 完全免费 开源软件,无需付费,无广告干扰。 支持最新 macOS 兼容 macOS Monterey、Ventura 及更高版本。 如何使用 Mounty? 1. 安装 Mounty 访问 Mounty 官网 下载并安装。 你也可以通过 Homebrew 安装: brew install --cask mounty 2. 挂载 NTFS 磁盘 连接 NTFS 格式的硬盘或 U 盘。 Mounty 运行后,会自动检测并提示“重新挂载为可写模式”。 点击“挂载”按钮,即可启用 NTFS 设备的写入权限。 3. 复制、修改文件 挂载完成后,NTFS 设备可在 Finder 中正常读写。 你可以像操作普通磁盘一样拖拽文件、创建文件夹等。 4. 安全弹出设备 使用 macOS 的“推出”功能,确保数据安全。 Mounty VS 其他 NTFS 解决方案 方案 价格 易用性 兼容性 资源占用 Mounty for NTFS 免费 ⭐⭐⭐⭐ ⭐⭐⭐⭐ 低 Paragon NTFS 付费 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 中 Tuxera NTFS 付费 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 中 手动修改系统设置 免费 ⭐ ⭐ 低 为什么选择 Mounty? ✅ 免费,无需购买额外软件 ✅ 操作简单,适合小白用户 ✅ 轻量级,不影响系统性能 ✅ 官方支持 macOS 更新,稳定可靠 适用人群 需要在 Mac 上读写 NTFS 移动硬盘的用户 经常在 Windows 和 Mac 之间传输文件的人 不想花钱购买 NTFS 读写软件的用户 结语 如果你正在寻找一款简单、高效且免费的 NTFS 读写解决方案,那么 Mounty for NTFS 绝对是你的最佳选择。它能够让你的 Mac 轻松管理 NTFS 设备,而不必花费额外费用或进行复杂设置。快去试试看吧!
2018年12月31日
2018-12-29
Git 提交的正确姿势:Commit message 编写指南
Git提交的正确姿势:Commit message编写指南 第一行不超过50个字符 第二行空一行 第三行开始是描述信息,每行长度不超过72个字符,超过了自己换行。 描述信息主要说明: 这个改动为什么是必要的? 这个改动解决了什么问题? 会影响到哪些其他的代码? 最后最好有一个相应ticket的链接 摘要:Git每次提交代码,都要写Commit message(提交说明),否则就不允许提交。 Git每次提交代码,都要写Commit message(提交说明),否则就不允许提交。 $ git commit -m "hello world" 上面代码的-m参数,就是用来指定commit mesage的。 如果一行不够,可以只执行git commit,就会跳出文本编译器,让你写多行。 $ git commit 基本上,你写什么都行(这里,这里和这里)。 Nov 12, 2013 Tenth Commit N nishugames authored 3 months ago Oct 27, 2013 Ninth Commit N nishugames authored 4 months ago Oct 26, 2013 Eighth Commit N nishugames authored 4 months ago Seventh Commit nishugames authored 4 months ago Sixth Commit N nishugames authored 4 months ago Fifth Commit N nishugames authored 4 months ago Oct 24, 2013 Fourth Commit ... N nishugames authored 4 months ago Third commit N nishugames authored 4 months ago 但是,一般来说,commit message应该清晰明了,说明本次提交的目的。 Commits on Jan 5, 2016 docs(error/SrootScope/inprog): add missing "Stimeout" wytesk133 committed with petebacondarwin 10 days ago docs(tutorial/2): add e2e test missing filename monkpit committed with petebacondarwin 3 hours ago revert: feat(Scompile): Allow ES6 classes as controllers with bindTo... petebacondarwin committed 3 hours ago fix(SanimateCss): only (de)register listeners when events have been a.. Narretz committed 25 days ago fix(loader): use 'false' as default value for transclude' in compone... sarod committed with petebacondarwin 18 days ago Commits on Jan 3, 2016 feat(Scompile): Allow ES6 classes as controllers with bind ToControl.. Igalfaso committed 21 days ago chore(*): Updated year in licence leuanG committed with Igalfaso 3 days ago Commits on Jan 1, 2016 docs: reorganize information about interpolation Narretz committed on Dec 6, 2015 docs: add docs for ngPattern, ngMinlength, ngMaxlength Narretz committed on Sep 24, 2015 docs(SinterpolateProvider): remove superfluous ng-app attribute Narretz committed 4 days ago 目前,社区有多种Commit message的写法规范。本文介绍Angular规范(见上图),这是目前使用最广的写法,比较合理和系统化,并且有配套的工具。 一、Commit message的作用 格式化的Commit message,有几个好处。 (1)提供更多的历史信息,方便快速浏览 比如,下面的命令显示上次发布后的变动,每个commit占据一行。你只看行首,就知道某次commit的目的。 $ git log <last tag> HEAD --pretty=format:%s fix(ng-bind-html): watch string value instead of wrapper (4 days ago) chore(sce): remove unused function (4 days ago) <Chirayu Krishnappa> fix(ngInclude): don't break attribute bindings on ngInclude-ed element fix(ngView): IE8 regression due to expando on non-element nodes (4 days docs(ngClass): fix grammar (4 days ago) <Dave Peticolas> docs(ngCloak): fix grammar, clarity (4 days ago) <Dave Peticolas> docs(ngModelController): clarify issue with isolated scope directive docs(input): fix spelling error and reword for clarity(5 days ago) doc(ngApp): fix grammar(5 days ago)<Dave Peticolas> (origin/g3_v1_2) docs($exceptionHandler): add an example of overriding docs(FAQ): update jQuery compatibility (5 days ago) <Pete Bacon Darwin) docs(guide/services): rewording of explanation (5 days ago) <Pete Bacor docs(guide/services): explain services in plain 1anguage (5 days ago) docs(guide/i18n): change non-existent de-ge to de-de (5 days ago) <Maax docs(ngForm): fix grammar and improve explanation (5 days ago) <Dave Pe docs: update sticker ordering info in FAQ (6 days ago)<naomiblack> docs(ngResource): fix typo (6 days ago) <Tim Statler> docs(ngShowHide): fix typo (6 days ago) <Roberto Bonvallet> docs(guide/$location): describe workaround for collocated apps (6 days docs(tutorial/step_03):add info about karma-ng-scenario plug-in (6 day fix(scenario): include "not "in error messages if test is inverted (6 fix($parse): disallow access to window and dom in expressions (7 days (2)可以过滤某些commit(比如文档改动),便于快速查找信息 比如,下面的命令仅仅显示本次发布新增加的功能。 $ git log <last release> HEAD --grep feature (3)可以直接从commit生成Change log Change Log是发布新版本时,用来说明与上一个版本差异的文档,详见后文。 0.0.4 (2015-07-21) Bug Fixes ·glossary: fix bad things in the glossary (9e572e9) ·intro: fix issue with the intro not working (6de0d8a) Features ·part2: add better veggie lorem ipsum text (06912f4) ·part2: add much better lorem ipsum text (7aaf238) BREAKING CHANGES ·Adding better veggie lorem ipsum text is great and all but it breaks all the other meaty components. Be mindful of this when you test. 二、Commit message的格式 每次提交,Commit message都包括三个部分:Header、Body和Footer。 <type>(<scope>): <subject> <空一行> <body> <空一行> <footer> 其中,Header是必需的,Body和Footer可以省略。 不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。 2.1 Header Header部分只有一行,包括三个字段: type(必需)、scope(可选)和subject (必需)。 (1) type type用于说明commit的类别,只允许使用下面7个标识。 feat: 新功能(feature) fix: 修补bug docs: 文档(documentation) style:格式(不影响代码运行的变动) refactor: 重构 (即不是新增功能,也不是修改bug的代码变动) test:增加测试 chore:构建过程或辅助工具的变动 如果type为feat和fix,则该commit将肯定出现在Change log之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入Change log,建议是不要。 (2) scope scope用于说明commit影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。 (3) subject subject是commit目的的简短描述,不超过50个字符。 以动词开头,使用第一人称现在时,比如change,而不是changed或changes 第一个字母小写 结尾不加句号(.) 2.2 Body Body部分是对本次commit的详细描述,可以分成多行。下面是一个范例。 More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. Further paragraphs come after blank lines. - Bullet points are okay, too - Use a hanging indent 有两个注意点。 使用第一人称现在时,比如使用change而不是changed或changes。 应该说明代码变动的动机,以及与以前行为的对比。 2.3 Footer Footer部分只用于两种情况。 (1)不兼容变动 如果当前代码与上一个版本不兼容,则Footer部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。 BREAKING CHANGE: isolate scope bindings definition has changed. To migrate the code follow the example below: Before: scope:{ myAttr: 'attribute', } After: scope:{ myAttr: } The removed inject' wasn't generally useful for directives so there should be no code using it. (2)关闭Issue 如果当前commit针对某个issue,那么可以在Footer部分关闭这个issue。 Closes #234 也可以一次关闭多个issue。 Closes #123, #245, #992 2.4 Revert 还有一种特殊情况,如果当前commit用于撤销以前的commit,则必须以revert:开头,后面跟着被撤销Commit的Header。 revert: feat(pencil): add 'graphiteWidth' option This reverts commit 667ecc1654a317a13331b17617d973392f415f02. Body部分的格式是固定的,必须写成This reverts commit <hash>.,其中的hash是被撤销commit的SHA标识符。 如果当前commit与被撤销的commit,在同一个发布(release)里面,那么它们都不会出现在Change log里面。如果两者在不同的发布,那么当前commit,会出现在Change log的Reverts小标题下面。 三、Commitizen Commitizen是一个撰写合格Commit message的工具。 安装命令如下。 $ npm install -g commitizen $ npm install -g cz-conventional-changelog 创建初始化package.json { "name": "yjauth", "version": "0.0.1", "description": "Description for yjauth", "private": true, "config":{ "commitizen":{ "path": "cz-conventional-changelog" } }, "dependencies":{ }, "devDependencies":{ }, "engines":{ "node": ">=0.12.0" } } 然后,在项目目录里,运行下面的命令,使其支持Angular的Commit message格式。 $ commitizen init cz-conventional-changelog --save --save-exact 以后,凡是用到git commit命令,一律改为使用git cz。这时,就会出现选项,用来生成符合格式的Commit message。 ng-poopy master x git add. ng-poopy master X git cz All commit message lines will be cropped at 100 characters. ? Select the type of change that you're committing: (Use arrow keys) > feat: A new feature fix: A bug fix docs: Documentation only changes style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) refactor: A code change that neither fixes a bug or adds a feature perf: A code change that improves performance test: Adding missing tests chore: Changes to the build process or auxiliary tools and libraries such as documentation generation 四、validate-commit-msg validate-commit-msg用于检查Node项目的Commit message是否符合格式。 安装: npm install ghooks --save-dev 接着,把这个脚本加入Git的hook。下面是在package.json里面使用ghooks,把这个脚本加为commit-msg时运行。 "config":{ "ghooks":{ "commit-msg": "./validate-commit-msg.js" } } 然后,每次git commit的时候,这个脚本就会自动检查Commit message是否合格。如果不合格,就会报错。 $ git add -A $ git commit -m "edit markdown" INVALID COMMIT MSG: does not match "<type>(<scope>): <subject>"! was: edit markdown 五、生成Change log 如果你的所有Commit都符合Angular格式,那么发布新版本时,Change log就可以用脚本自动生成(例1, 例2, 例3)。 生成的文档包括以下三个部分。 New features Bug fixes Breaking changes. 每个部分都会罗列相关的commit,并且有指向这些commit的链接。当然,生成的文档允许手动修改,所以发布前,你还可以添加其他内容。 conventional-changelog就是生成Change log的工具,运行下面的命令即可。 $ npm install -g conventional-changelog-cli $ cd my-project $ conventional-changelog -p angular -i CHANGELOG.md -s This will not overwrite any previous changelog. The above generates a changelog based on commits since the last semver tag that match the pattern of a "Feature", "Fix", "Performance Improvement" or "Breaking Changes". If you first time use this tool and want to generate all previous changelog, you could do $ conventional-changelog -p angular -i CHANGELOG.md -s -r 0 上面命令不会覆盖以前的Change log,只会在CHANGELOG.md的头部加上自从上次发布以来的变动。 如果你想生成所有发布的Change log,要改为运行下面的命令。 $ conventional-changelog -p angular -i CHANGELOG.md -w -r 0 为了方便使用,可以将其写入package.json的scripts字段。 { "scripts":{ "changelog": "conventional-changelog -p angular -i CHANGELOG.md -w -r 0" } }
2018年12月29日
2018-12-11
Vimium:提升浏览效率的终极 Chrome 插件
Vimium:提升浏览效率的终极 Chrome 插件 在日常浏览网页时,我们往往依赖鼠标进行点击、滚动、切换标签等操作,但这些动作有时显得低效,特别是对于习惯键盘操作的用户来说。今天要推荐的 Chrome 插件——Vimium,能够帮助你实现高效的无鼠标浏览体验。 Vimium 是什么? Vimium 是一款基于 Vim 快捷键的 Chrome 浏览器插件,它允许用户通过键盘快捷键完成网页导航、标签管理、页面滚动等操作,大大提升浏览效率。Vimium 适合那些喜欢 Vim 编辑器或者希望减少鼠标使用的用户。 Vimium 主要功能 快速跳转链接 按 f 键后,每个可点击的链接都会标注一个快捷键,输入相应的字符即可访问该链接。 标签页管理 J / K:切换到左/右侧的标签页。 t:打开新标签页。 x:关闭当前标签页。 X:恢复最近关闭的标签页。 高效的页面滚动 h / l:左右滚动页面。 j / k:上下滚动页面。 gg / G:跳转到页面顶部/底部。 d / u:向下/向上滚动半屏。 网页搜索 / 进入搜索模式,输入关键词并按 Enter 进行搜索。 n / N:跳转到下一个/上一个匹配结果。 复制与打开 URL yy:复制当前页面 URL。 p:打开剪贴板中的 URL。 Vimium 配置与自定义 Vimium 允许用户自定义快捷键,以适应个人习惯。在 Vimium 的选项页面,你可以修改默认的键位绑定,还可以添加黑名单,防止 Vimium 在某些特定网站上生效。 为什么选择 Vimium? 极大提升浏览效率:使用键盘操作比鼠标更快,尤其是在处理大量网页时。 降低鼠标依赖:减少手部移动,提高使用舒适度。 高度可定制:可以根据个人习惯调整快捷键。 结语 如果你是 Vim 爱好者,或者希望提升网页浏览的效率,那么 Vimium 绝对是一个值得尝试的 Chrome 插件。安装后可能需要一定的时间适应,但一旦掌握,就能大幅提升工作和学习效率。快去 Chrome 网上应用店搜索 "Vimium" 下载体验吧!
2018年12月11日
2018-11-12
FireShot:Chrome 上最强大的网页截图插件推荐
FireShot:Chrome 上最强大的网页截图插件推荐 在日常浏览网页的过程中,我们经常会遇到需要截图的场景,比如保存网页内容、制作教程、分享信息等。而 Chrome 自带的截图功能较为有限,无法满足各种复杂的需求。今天推荐一款功能强大的网页截图插件——FireShot,它能够帮助你轻松截取完整网页,并支持多种格式保存。 FireShot 是什么? FireShot 是一款强大的 Chrome 插件,专门用于捕捉网页截图。它提供比浏览器自带截图工具更丰富的功能,比如截取整个网页、选定区域、可视区域,甚至支持直接编辑和标注截图。 FireShot 的主要功能 1. 多种截图模式 捕捉整个网页:一键截图整个网页,无需手动滚动。 捕捉可见部分:只截取当前屏幕可见的区域。 捕捉选定区域:自由框选需要截图的部分。 捕捉特定元素:自动识别网页上的元素,如图片、文本框等。 2. 强大的编辑功能 FireShot 内置编辑器允许你对截图进行裁剪、标注、添加文本、绘制箭头等操作,方便后续处理和分享。 3. 多种导出格式 截图可以保存为 PNG、JPEG、PDF,还支持直接复制到剪贴板或发送至电子邮件。 4. PDF 转换功能 FireShot 允许用户将整个网页直接转换为 PDF,并且可以选择是否保留超链接。 5. 云存储和分享 截图可以直接上传到 Google Drive、Dropbox、OneNote 或发送到邮件,非常适合团队协作。 FireShot 为什么值得推荐? 一键截图整个网页,无需滚动拼接。 支持多种截图模式,满足不同需求。 内置编辑器,方便直接修改截图。 支持多种格式导出,适用于不同应用场景。 云端同步与分享,适合办公和团队协作。 如何安装 FireShot? 打开 Chrome 浏览器,进入 Chrome 网上应用店。 搜索 "FireShot",找到官方插件。 点击 添加到 Chrome,并按照提示完成安装。 结语 如果你经常需要截取网页,FireShot 绝对是不可或缺的 Chrome 插件。它的全页面截图、编辑功能和多种导出格式,让网页截图变得更加高效便捷。快去安装 FireShot,提升你的截图体验吧!
2018年11月12日
2018-09-18
图片助手(ImageAssistant):强大的 Chrome 批量图片下载插件
图片助手(ImageAssistant):强大的 Chrome 批量图片下载插件 在日常浏览网页时,我们经常需要保存图片,但遇到大量图片时,手动一张张下载就显得极为低效。今天要推荐的 Chrome 插件——图片助手(ImageAssistant),是一款高效的批量图片下载工具,可以帮助你一键提取网页上的所有图片,并提供多种筛选、下载功能。 ImageAssistant 是什么? 图片助手(ImageAssistant) 是一款功能强大的 Chrome 插件,它能够快速解析网页中的所有图片,并支持用户按需筛选、批量下载,甚至还能提取 CSS 背景图片。这使得它成为设计师、研究人员、素材收集者以及日常用户的得力助手。 主要功能 批量提取网页图片 一键提取当前网页中的所有图片,包括普通图片、隐藏图片、CSS 背景图片等。 智能筛选与过滤 允许按照尺寸、格式、地址等条件筛选所需图片。 过滤掉不相关的图标、小图片,避免下载无用文件。 支持多种图片格式 可识别并下载 JPG、PNG、GIF、SVG、WebP 等多种格式的图片。 快速预览和选择下载 插件提供图片预览功能,用户可以在下载前检查图片是否符合需求。 多种下载方式 可单独下载某些图片,也可以一键打包 ZIP 下载所有选中的图片。 高级模式 允许深入解析 Ajax 动态加载的图片。 适用于社交媒体、在线图库等平台。 使用方法 安装插件 在 Chrome 网上应用店搜索 ImageAssistant,或点击这里下载安装。 提取网页图片 打开需要下载图片的网页,点击浏览器工具栏上的 ImageAssistant 图标。 筛选和选择 通过筛选功能选择需要下载的图片,避免下载无用的内容。 批量下载 选择图片后,点击“下载”按钮,可选择单张下载或打包下载 ZIP。 为什么选择 ImageAssistant? 批量下载,提高效率:无需逐张保存,节省时间。 智能筛选,精准获取:避免下载垃圾图片。 支持各种格式,适应性强:适用于各种图片网站。 轻量化、无广告:不占用过多资源,使用体验流畅。 适用人群 设计师:快速下载素材,提高工作效率。 图片采集者:批量抓取网站图片,方便整理。 研究人员:提取图片数据,辅助研究分析。 普通用户:下载心仪的壁纸、商品图片等。 结语 如果你经常需要从网页中批量下载图片,图片助手(ImageAssistant) 绝对是一个值得安装的 Chrome 插件。它不仅功能强大,而且简单易用,让你的图片采集工作变得轻松高效。快去 Chrome 网上应用店下载试试吧!
2018年09月18日
1
2
3
4