在当前路径打开管理员 PoweShell 窗口,以及在既有普通 Shell 提升创建管理员 Shell,维持当前目录不变

Title: "Open PowerShell (Admin) Window Here" from Explorer, and A Ease Way to Start (Elevate) A New Admin Shell from An Normal Shell with Current Working Directory Unchanged.
- Article in Chinese only -

很多人也许知道,Windows 资源管理器打开文件夹,在窗口的空白区按住 shift + 右键单击,这样会弹出“扩展”右键菜单,这个扩展菜单相比普通菜单多出一些菜单项,如 "在此处打开 Powershell 窗口(S)" (Open PowerShell window here) —— 它以当前目录为工作目录打开 PowerShell,而不必我们亲自 cd (Set-Location) 切换,很方便。

不过这样打开的这个 PowerShell 运行在普通非管理员用户身份下,只有普通权限。然而我们有时候想在当前目录下执行一些高权限操作,需要 UAC 开管理员身份的 Sh...

阅读全文>>

Rust 在 Windows 上 Release 编译彻底去除调试符号信息

本文介绍如何让 Rust 在以 Windows 为目标平台的 Release 编译的基础上,通过配置链接参数进一步彻底去除多余的调试符号信息,针对的工具链包括 GNU 和 MSVC。


去除额外的符号信息能减小最终生成程序的体积。如果是在 Windows 上使用 GNU 工具链,那么这一点会很明显。

一个 Rust 的 Hello World 程序,在 Windows 下,使用 GNU 工具链,即便是 Release 编译,最后生成的程序体积也有 3 MB 多。其中调试符号信息占了大部分体积;如果去除,程序体积可以下降至 600+ KB。好在如果使用的是 MSVC 工具链编译,调试符号会另存于 .pdb 文件,程序本体没有这样的体积问题。

在 Linux 下,如果编译时带上了符号信息,编译完还可以用 strip 工具解决这个问题,但是 Windows 下呢?


去除符号信息可以减小 Rust 程序体积,但本文不打算探讨减小 Rust 程序体积的各种技巧,本文只打算纯粹地介绍在 Windows 目标平台上编译 Rust 程序时如何去除额外的调试符号信息

读者如果想进...

阅读全文>>

831 次浏览 1 条评论 标签:Windows debug Rust strip symbol gnu msvc

关于 Win10 UWP 邮件应用代理设置

本文假定您已经知道 UWP 应用需要解除回环访问(Loopback)网络隔离从而支持本地代理。

如果您不是很了解该内容,请查看 EnableLoopback Utility – 让 UWP 应用也能使用系统代理[Windows]

如果只将 邮件和日历 添加到 Loopback 限制排除名单,在邮件应用内添加其他账户/邮箱的 SSO 登录页面仍无法使用代理。可能提示:

当前无法连接到你所需的服务。请检查网络连接或稍后重试。

经过排查,还需要放行名称开头为 microsoft.windows.authhost 的几个应用才能使得 SSO 登录也支持代理。(其实只是其中的某一个放行就可以了,但是如果懒得测试,就全部放行)

以 AppContainer Loopback Exemption Utility 为例,示意图:

在 EnableLoopback Utility 中放行 microsoft.windows.authhost.*
在 EnableLoopback Utility 中放行 microsoft.windows.authhost.*


阅读全文>>

600 次浏览 0 条评论 标签:Windows 邮件 UWP SSO 代理 Loopback

Python 3.8 上 ctypes 加载 DLL 库抛出异常 FileNotFoundError: Could not find module 'node.dll'

本文原发于笔者在 Github 上的项目 Issue 讨论中 (https://github.com/ynyyn/Miniblink-Python-SimpleDemo/issues/4),系笔者在 Python 3.8 上测试项目兼容性时觉察到的 Python 行为(与兼容性)变更。

现象

使用 Python 3.8 ctypes 加载 DLL 库,采用相对路径加载,如下写法所示:

mb = ctypes.cdll.LoadLibrary("node.dll") 

启动时抛出 FileNotFoundError 异常,提示 Could not find module 'node.dll'. Try using the full path with constructor syntax.

Exception in thread Thread-1:
Traceback (most recent call last):
  File "...\Python38\lib\threading.py", line 932, in _bootstrap_inner
 ...

阅读全文>>

1251 次浏览 0 条评论 标签:Windows Python ctypes dll

CLion 远程调试控制台`pretty printers setup`错误

背景:CLion 项目的 Toolchains 配置为 Remote Host,即远程编译、远程运行、远程调试。(CLion 2019.2.x)

在运行调试时,调试控制台输出提示:

Error during pretty printers setup: Error while executing Python code.

Some features and performance optimizations will not be available.

虽然不是什么关键性问题...

----

根据

https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000098784-Python-error-when-debugging

为 CLion debugger 模块启用调试级别的日志记录具体看看错误内容。

关键词:#com.jetbrains.cidr.execution.debugger (详见上方链接)


得到相关日志如下:

DEBUG - brains.cidr.exe...

阅读全文>>

Windows 会对 SSD 关闭 Superfetch 吗

【本文状态:草稿】

有很多说法称,如果 Windows 安装在 SSD 上,那么 Windows 默认不会启用 Superfetch 功能。

但我观察到我自己所使用的 Windows 10 却发现,尽管系统安装在 SSD 上,但似乎仍启用着 Superfetch 功能。

于是继续了解了一下。


首先是这则问答:

https://zhidao.baidu.com/question/96522455.html

在固态硬盘上会禁用SuperFetch么?

会,但不是绝对。

微软最初打算完全在固态硬盘上禁用SuperFetch,但在部分系统上碰到了大幅度的性能衰退,后来发现第一代固态硬盘的随机写入和擦除操作过于频繁,最终导致读取速度变得极慢,而开启了SuperFetch和其它预取技术后,性能明显回升。

这则问答的回复时间是 2016 年。


这则问答的内容和下面这篇发表于 2010 年 10 月的帖子里的陈述很接近:

https://forum.51nb.com/thread-1008519-1-1.html

用了SSD的兄弟注意,不是所有Win7都默认关闭...

阅读全文>>

1198 次浏览 0 条评论 标签:无

[更新中] 跟着官方指引文档入门 Hadoop —— 官方指引节选翻译

本文由 Apache Hadoop 官方入门文档(https://hadoop.apache.org/docs/stable/index.html)节选翻译而成。

译:一年又一年

声明:谢绝任何经营性、营利性用途转载或编辑,仅允许开放式转载,但敬请保留译者署名。(行为人包括企业、个人,经营性、营利性用途包括但不限于运营平台公开账号、因流量而间接获利)

英文原文修订时间:2018-11-13;版本: 2.9.2

入门综述

本文档将向您介绍如何入门使用 Hadoop。通过从 建立单节点(Single Node Setup)出发,展示如何以单节点建立 Hadoop 安装;随后进一步介绍 建立群集(Cluster Setup) 以了解如何以多节点建立 Hadoop 安装。

Hadoop: 建立单节点集群.

目标

本章将介绍如何建立和配置单节点 Hadoop 安装,以便能快速地实现运用 Hadoop MapReduce 及 Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)执行简单操作。

运行要求

支持的平台

  • G...

阅读全文>>

977 次浏览 0 条评论 标签:Hadoop 入门 翻译 Linux

关于 FFmpeg 合并 HLS/m3u8 流 TS 切片时出现 Non-monotonous DTS in output stream 的问题

这个问题是由 FFmepg 的缺陷导致的,至今(2019年)仍未解决。

引发问题的根源在于 HLS/m3u8 流文件列表中,存在两个相邻切片之间的 TS 包计数不连续。(TS 包计数不连续的情况,可在 直播过程中存在推流中断后重推 的 直播流/回放流列表 中出现)

对于这种情况,HLS/m3u8 流文件列表会在与前者计数不连续的文件前加上 EXT-X-DISCONTINUITY 标签来显式地告诉播放器留意。

但遗憾的是,FFmpeg 的 HLS 处理模块不支持该标签,进而导致遇到计数不连续的 TS 时,无意识地强制合并两个计数不连续的 TS,导致 Non-monotonous DTS in output stream 警告,再加上其他一些缺陷,最终导致合并后时间码不正确。


说明

本文结论由我本人在参阅了大量相关问题汇报、社区提问后得出;部分参阅的文章链接见文末。

其中,最有价值的是

阅读全文>>

4626 次浏览 1 条评论 标签:FFmpeg 解决方案 HLS m3u8 合并 ts

关于 C++ 标准文件流 fstream 对 UTF-8/Unicode 编码文件名的支持的参考文章

一年又一年 | C/C++ | 2019-06-02

参考文章:

https://stackoverflow.com/questions/30829364/open-utf8-encoded-filename-in-c-windows

https://stackoverflow.com/questions/821873/how-to-open-an-stdfstream-ofstream-or-ifstream-with-a-unicode-filename

https://stackoverflow.com/questions/6975267/c-saving-file-with-unicode-name-problem-how-to-save-utf-8-filenames-correctl


阅读全文>>

1061 次浏览 0 条评论 标签:无

对网易云音乐将云盘上传/本地播放的音乐关联匹配到曲库相应条目行为的观察

从他处下载的歌曲A,上传云盘后,匹配成曲库中对应的歌曲A条目。

将歌曲A中间几秒静音,上传云盘后,依旧能匹配成歌曲A。
查看曲库的歌曲A条目,出现云盘标记,播放听到的是做过静音处理的版本。

歌曲A,meta 信息全部被故意修改成歌曲C的,但是依旧能匹配成歌曲A,但仍可确定匹配受到了 meta 的影响,测试中发现带有错误 meta 的歌曲A的日文版,被匹配成歌曲A的英文版拉取了歌词。(错误的 meta 是英文的,但并不是歌曲A英文版的 meta)

首先播放歌曲A,匹配到了歌词。之后将歌曲A文件换成与歌曲A完全不同的歌曲B,保持路径相同文件名相同。再次播放,呈现的依旧是上次匹配到的歌曲A的歌词。

首次频谱分析拉到结果后会将匹配结果按文件路径缓存。重启可使缓存失效,重新进行频谱分析匹配。

meta 会影响频谱分析(听歌识曲)匹配结果,但 meta 对匹配结果的影响仅作用于由频谱匹配相似决定的歌曲范围之内。

换言之,在 meta 中把曲名设置成 Hop 并不能使得一首不是 Hop 的曲子匹配结果为 Hop,
而当这首曲子在匹配到一堆频谱相似的不同版本时,曲名为 Hop 会影响最终选择哪个版本作...

阅读全文>>

3059 次浏览 1 条评论 标签:无

在解决安卓 QQ 聊天记录因故乱码时,有关其加密密钥和纠错重建逻辑的新发现

※本文旨在描述笔者自己遇到的情况和一些新发现,供您作为预案参考,而非任何面向大众的方案。

现在网络上介绍安卓 QQ (手机QQ)聊天记录数据库基本情况(比如异或加密和表结构)的文章和资源已经相对很丰富了,本文就不再赘述。相关技术此前笔者也略有些了解,但没有实际复现研究细节。

直到近日,笔者因一些原因,不慎搞炸了手Q的聊天记录(历史聊天信息乱码),于是终于有机会(被迫)将这方面的技术拿出来检验是否依旧可行,并尝试用其挽回。

※ 切勿模拟复现以下描述所对应的情况,除非您知晓这其中的高风险度。数据无价,意外丢失追悔莫及。


在过程中,笔者参考历史文章公开的技术情况,基本确认了既往的技术到目前(手机 QQ 7.8)为止,依旧适用和有效,进而复现了相关操作。

由于笔者的个人情况的特殊性,在此过程中走了些苦路,不过也观察和发现了一些似乎还没有人公开发表的新技术,主要是关于安卓手机 QQ 对待聊天数据库加密密钥选取、保存和异常重建的一些基本逻辑和现象。大纲如下:


聊天数据库异或加密存在密钥文件 —— 一般情况下密钥为 IMEI 已经不是什么新闻,但因为密钥文件(手机QQ应用数据目录/f...

阅读全文>>

易语言组件字体属性的陷阱

一年又一年 | 易语言 | 2019-02-25

陷阱 1:

当你在易语言 IDE 的窗口属性栏里对组件设置字体字号时:

你选择了一款字体,字体大小为 9 号。

❌ 你以为易语言会做的事情:

  • 存字号,也就是存数字 9.

✔ 易语言实际做的事情:

  • 按照当前的 DC_DPI[1],计算并存这个字号所对应的逻辑大小[2],9 号在 96 DPI 下的逻辑大小是 -12 (0xfffffff4),在 101 DPI 下的逻辑大小 -13 (0xfffffff3).

[1] DC_DPI 指:对屏幕 DC 取 GetDeviceCaps 得到的 LOGPIXELSX/LOGPIXELSY[3].
[2] 逻辑大小的计算方式是 -MulDiv(fontSize, DC_DPI, 72),MulDiv(a, b, c) 等价于 四舍五入(a*b/c).
[3] 通常该值为 96,但笔者的桌面环境设置了自定义缩放,缩放比例是 105%,因为这个比例较小,Windows 不会对不支持 DPI 缩放的程序强行拉伸缩放,而是通过类似调整屏幕 DC 的 DPI 到 96*缩放系数(96*105%=101,即对应的 DPI 为 ...

阅读全文>>

1280 次浏览 1 条评论 标签:无

Ubuntu Firefox 无法播放音视频

症状

Ubuntu Firefox 无法在线播放 mp3、mp4(H.264) 等媒体。例如,使用网易云音乐网页版无法播放音乐,观看 YouTube 的部分视频提示无法播放,在 YouTube 的 HTML5 播放器兼容检查页面上 H.264 和 MSE & H.264 两者为叉,即不支持。


Ubuntu Desktop 预装的 Firefox 或 使用 apt 直接安装的 Firefox 对于 AVC/H.264、mp3 等一部分媒体的解码需要动态链接到一些外部解码器。

这些外部解码器因编码专利或许可协议的限制,需要自行安装这些限制性包(restricted packages)。

ubuntu-restricted-addonsubuntu-restricted-extras 整合了 Ubuntu 常用的限制性包(包括但不限于一些编解码器)。

关于这两个包的更多信息,可以分别参考 https://packages.ubuntu.com/bionic/ubuntu-restricted-addonshttps://packag...

阅读全文>>

一种下载 HLS(m3u8) 视频并无压制合并封装为 mp4 的方法 (FFmpeg)

通常情况下,一则 HLS 视频由 .ts 分段和 .m3u8 分段索引构成。本文将介绍一种使用 FFmpeg Tool 实现 HLS 视频下载、无压制合并封装成 mp4 的方法。

ffmpeg -i "http://website/.m3u8" -c:v copy -c:a copy -bsf:a aac_adtstoasc 1.mp4 

使用 FFmpeg 以 HLS 视频作为输入(-i "http://website/.m3u8"), FFmpeg 将自动解析 m3u8 并下载 ts 分段视频,随后复制视频流与音频流(-c:v copy -c:a copy),重新混流封装成 mp4,并输出到文件1.mp4

阅读全文>>

FFmpeg tool 下载/转推 HLS (.m3u8) 直播流媒体速度慢

Slow HLS Stream Download FFmpeg

I can successfully download a HLS stream from a .m3u8 link. However, the 
problem that I am facing is extremely slow download speeds. When using 
Streamlink...

阅读全文>>

6049 次浏览 0 条评论 标签:FFmpeg HLS m3u8
Ɣ回顶部