在Windows 10中访问玩客云Samba共享

玩客云中的 Samba 使用的是 Samba 1.0(CIFS) 协议,而微软已经在 Windows 10 Version 1709 及以上中默认关闭了这个老旧且不安全的协议,从旧版本系统升级到新版的用户可能会收到 0x80070035 的提示,无法访问玩客云的共享目录。

同时由于一些不可描述的...Bug?开启密码访问后,在 "网络" 中访问玩客云设备时会收到 0x80004005 的提示,其他版本系统遇到同样错误时也可以尝试参考修复。

继续阅读在Windows 10中访问玩客云Samba共享

在PowerShell中使用Git创建Patch

Emmm...

如果你是一个经常在多台机器之间切换写代码,又不愿意将乱七八糟还没有整理好的代码推送到仓库中的人,并且还在使用 Windows,那么你可能需要这篇文章。

由于一些众所周知的编码问题,直接在 PowerShell 中使用 git diff | Out-File changes.patch 会导致 Patch 中的中文和特殊符号乱码,并且 Patch 文件的编码是 UCS-2,不方便直接在其他应用中使用。

继续阅读在PowerShell中使用Git创建Patch

使用CoreRT编译C#项目为机器码

关于 CoreRT :

CoreRT 是一个可以将 CIL(MSIL) 中间码编译为机器码 (例如 X64, X86, ARM 架构) 的工具链,CoreRT 默认使用 RyuJIT 作为编译器(AOT),它也是 .NET Core 的默认 JIT 编译器,除了可以将代码编译为机器码可以无需运行库直接分发以外,还带来了一定的性能提升。

CoreRT 目前 (2018年8月) 仍处于 Alpha 阶段,请酌情使用。

准备工作:

要尝试 CoreRT,需要安装 .NET Core SDK,请访问 官方下载页面 根据介绍下载并安装,本文编写时已在 Windows 10 和 Ubuntu 18.04 上测试。

为了减少外部因素带来影响的概率,将使用 .NET Core CLI 默认的 Hello World 作为演示。 继续阅读使用CoreRT编译C#项目为机器码

使用 PowerShell Profile 快速设置 HTTP 代理

因为...

Windows 系统本身可以设置HTTP代理,但是由于部分应用来自 Unix/Linux,或是跨平台应用,在设计时没有考虑到专门为 Windows 系统编写获取代理地址的代码,就需要手动设置环境变量来为应用设置代理。

但是由于不同应用经常使用不同的变量,例如 http_proxy, https_proxy, 或是大写的 HTTP_PROXY 或是 HTTPS_PROXY,每次设置和取消都需要执行 4 条命令,设置起来非常麻烦,所以查了下资料写了一段脚本,方便在 PowerShell 中快速设置 HTTP 代理的环境变量 继续阅读使用 PowerShell Profile 快速设置 HTTP 代理

解决Windows 10中Surface Pro的电源选项滑块丢失

在安装了 Windows 10 的 Surface 上,电源选项中除了以往常见的 "节能"、"平衡"、"高性能" 模式以外,在电量信息界面还可以通过滑块调整设备的电源选项,从最长续航到最高性能最多有 4 个级别可供选择。
这个滑块在某些情况下可能会消失,例如第三方软件更改了电源模式设置,但点击任务栏底部的电池图标后除了滑块消失以外没有明显的特征表明出现了什么问题。
通过搜索,类似的提问在微软中文社区中没有找到可靠的答复,于是搜索了微软英文社区,得到以下解决方案:

  1. 右键单击任务栏中的电源图标,选择 "电源选项"
  2. 在弹出的界面中展开 "隐藏的附加计划"
  3. 选择 "平衡(推荐)"

完成以上的步骤之后电源选项应该会立刻出现在电量信息的界面中

WebPack / Gulp / Babel 是什么?

What the hell is WebPack / Gulp / Babel?

在 2017 年,提到 WebpackGulp 或是 Babel 大多数前端应该都很熟悉了,至少应该听过它们,这篇文章试图用最简单的方式为初学者和会用但是还不理解的人讲解这些工具的作用和使用场景。

文章的每一部分都使用了 入门成本 它是什么 使用场景 大致原理 来帮助你理解这些工具,以便更好地选择使用哪一个来进行工作。

Gulp

入门成本

★☆☆☆☆ - 非常低

任何人都可以使用它,即便你是一个新手,也可以仅通过几行代码做许多事

它是什么?

Gulp 是一个 任务/工作流 自动化工具,简单的说,就是可以将一些需要反复进行多次的工作作为脚本来自动完成。

使用场景

  • 项目可能较小
  • 代码需要编译后才能运行在浏览器之中
  • 希望在代码修改时浏览器窗口中能实时预览变更
  • 代码处理以外的工作,例如自动按 Major.Minor.Patch 的方式变更版本号,或上传到指定服务器

工作原理

启动用户选择的任务 > 根据事先定义的规则寻找要处理的文件 > 传送文件内容到插件 (Plugin) 或自己的方法中进行修改 > 重复上一步直到任务中的工作完成 > 根据事先定义的规则将文件写入目标位置

WebPack

继续阅读WebPack / Gulp / Babel 是什么?

使用acme.sh为GitLab添加HTTPS支持

GitLab是什么:

GitLab unifies issues, code review, CI and CD into a single UI

或许你可以把它理解成一个可以免费下载并搭建在自己的服务器上,类似于 GitHub 的工具,不过如果你还不知道它是什么,大概也不需要看这篇文章吧 : )

acme.sh 是一个纯 Shell 语言写成的工具,它可能是目前最好用的 Let's Encrypt 证书申请工具,一次安装,自动续期

准备

  • 一台已经配置好的 GitLab 服务器,并且拥有服务器控制权
  • 确认防火墙已经开放 443
  • 没了。

开工!

首先安装 acme.sh,嗯,对,左边这个就是链接...点击之后会跳转到 GitHub,根据 ReadMe 安装即可。安装后可能需要执行 source ~/.profile 才能使命令生效

申请证书:

将 git.orz.corp 替换为你的 GitLab 域名,如果没有域名只有 IP,是不能申请证书的,只能自签,这里不做介绍,请跳过并参考 “安装证书” 部分

继续阅读使用acme.sh为GitLab添加HTTPS支持

关于Prototype, [[Prototype]], __proto__的区别

对于初学者来说,Prototype 似乎还好理解一些,但是在进行更深入的学习研究之后或许会有点晕,一些文章中 obj.prototype 和 obj.[[prototype]] 中的两种写法区别在哪?分别指的是什么?还有 __proto__ 呢?

一句话解释:

obj.prototype 中的 prototype: 是指类型 (Type) 上的原型对象 (Prototype object)

obj.[[prototype]] 中的 [[prototype]]: 是指实例 (Instance) 中指向创建这个实例的类型上的原型对象的 "链接"

obj.__proto__: 这个属性实际和上面的 [[prototype]] 是同样的东西,在过去被各大浏览器作为非标准属性实现

In Depth:

其实你应该已经猜到了,[[prototype]] 并不是一个真正存在于 obj 或是它的原型链上的一个属性,它存在于 JavaScript 引擎的内部,这样写是为了区分类型上的 prototype 属性和这个实例上的"链接"属性。 继续阅读关于Prototype, [[Prototype]], __proto__的区别

EasyPageNavigation – 轻松创建页码导航

EasyPageNavigation 是一个可以快速生成页码导航的 NPM 模块,既可以用在后端,也可以用在前端,用在前端时需要配合 Browserify "食用"

最初考虑到这个功能并不复杂,是打算放到 Gist 上面分享给大家的,但是考虑到这样的功能还是比较常用的,以及 Don't repeat yourself 的理念,还是整理了一下并发布了出来。

使用示例:

首先需要使用 "npm i --save easy-page-navigation" 安装,然后:

上面这段代码使用了 getNavInfo(currentPage) 方法直接获取页码导航的信息,数据类型为 Object,可以自己使用 JSON.stringify() 转换为 JSON

如果你不希望拿到这样的数据,也可以通过 getNavHTML(currentPage, options) 直接获取 HTML 代码 继续阅读EasyPageNavigation – 轻松创建页码导航