geelaw 最近的时间轴更新
geelaw's repos on GitHub
PowerShell · 92 人关注
PowerShellThingies
My PowerShell thingies.
JavaScript · 14 人关注
bio-site
Yet another academic homepage builder.
C# · 12 人关注
PreviewHost
An example `IPreviewHandlerFrame` implementation using WPF.
JavaScript · 11 人关注
SinaWeiboFansRemover
Sina Weibo 粉丝删除器,一个 Microsoft Edge 扩展。
Smalltalk · 10 人关注
Dock-PS
Archived in favour of PowerShellThingies.
TeX · 10 人关注
laomian
老面 (sourdough, lit. "old dough") is used as the starter for fermenting dough. This repository contains my digital 老面.
C# · 10 人关注
Use-RawPipeline
Archived in favour of PowerShellThingies.
TeX · 8 人关注
ahbtr
An “open-thoughts” research — Ad Hoc Broadcast, Trace, and Revoke.
PowerShell · 7 人关注
newsstand
A list of email addresses of newsletter / social update. One can build their own email categoriser with this list.
C# · 6 人关注
AcademicdataBaseChain
Academic dataBase Chain.
TypeScript · 5 人关注
bibtex-ts
General-purpose format-preserving BibTeX parser in TypeScript (JavaScript).
PowerShell · 5 人关注
psguy.me
Archived in favour of PowerShellThingies.
JavaScript · 3 人关注
strcmp.cc
An online line-based file comparator.
2 人关注
daily-restore-point
Creating a restore point every day is a good habit.
C++ · 2 人关注
onenote-object-model
Unofficial documentation of the component object model API of OneNote.
JavaScript · 2 人关注
RemoteShutdown
Remotely shut Windows down in case your Welcome Screen crashes.
C# · 1 人关注
bibtex.net
BibTeX.NET is a .NET library for working with BibTeX files.
Shell · 1 人关注
haoel-github-io
Mirror of haoel/haoel.github.io.
HTML · 1 人关注
ReproduceLiveTileIssue
PowerShell · 0 人关注
1drv-layout
OneDrive layout and file mover. Built for sorting photos. Born in the removal of On-Demand Sync for OneDrive.
SMT · 0 人关注
cse507-boolector
Forked from https://github.com/Boolector/boolector
0 人关注
fork-heshijun_v_360
见 saved 分支
TypeScript · 0 人关注
immersive-translate-backup
Backup of https://github.com/immersive-translate/immersive-translate.
C++ · 0 人关注
mem-layouts-binary-search
Forked from https://github.com/rlunding/alg_eng
Assembly · 0 人关注
microsoft-MD-DOS
Mirror of https://github.com/microsoft/MS-DOS
0 人关注
mirror-clash-verge
A Clash GUI based on tauri. Supports Windows, macOS and Linux.
C++ · 0 人关注
vecole-redux
Constructs OLE from vector-OLE. See http://eprint.iacr.org/2017/617/20170627:191617
geelaw

geelaw

🏢  UW / 博士生
V2EX 第 202505 号会员,加入于 2016-11-22 23:09:06 +08:00
今日活跃度排名 13815
Clubhouse 真的很像不久以前我测试过的一个 app
分享发现  •  geelaw  •  2021-06-25 16:12:06 PM  •  最后回复来自 nullcoder
9
C# 泛型、duck typing、高效枚举
C#  •  geelaw  •  2020-09-28 04:59:01 AM  •  最后回复来自 good1uck
1
HTML 里的“词边界”
分享发现  •  geelaw  •  2020-02-25 05:22:00 AM  •  最后回复来自 geelaw
3
如何自动化“固定到任务栏”
分享创造  •  geelaw  •  2020-02-14 19:00:25 PM  •  最后回复来自 ysc3839
4
谨慎安装 Edge (Chromium) 稳定版
分享发现  •  geelaw  •  2020-02-21 22:00:12 PM  •  最后回复来自 ericguo
13
在 Windows 上轻量地隔离 app:以百度云管家为例
  •  1   
    分享创造  •  geelaw  •  2022-11-23 15:35:11 PM  •  最后回复来自 723X
    26
    刚刚 rm -rf ~ 了
    程序员  •  geelaw  •  2019-12-30 11:19:02 AM  •  最后回复来自 doveyoung
    8
    我的静态博客 BibTeX 插件完工啦~🎉
  •  1   
    分享创造  •  geelaw  •  2019-08-19 04:17:49 AM  •  最后回复来自 Or2
    1
    用 JavaScript 解析 BibTeX
    分享创造  •  geelaw  •  2019-08-23 23:10:00 PM  •  最后回复来自 hronro
    3
    geelaw 最近回复了
    >虽然他是一个网页,但是它所有代码都是在你的浏览器里运行的,所以他是单机的。

    这个说法很怪,一般认为浏览存储在远程计算机上的静态网站也属于非单机活动。

    亲自演示即可证明楼主需要表达的,比如新建一个文件并重命名为 a.htm ,在里面写个 aaa 或者用 script 包裹一段调用 alert 的代码,然后双击这个文件,那当然就会在浏览器里打开并且看到,此时很明显是非联机。也可以用 Word 另存为 HTML 之类的。
    最后,txt 文件在默认状态下没有 IExtractImage——这可以用 IQueryAssociations 发现,或者查看注册表 HKCR\.txt 以及 HKCR\txtfile 以及 HKCR\SystemFileAssociations\text 里面都没有 IExtractIcon, IExtractImage, IThumbnailProvider 的注册。OneDrive 会提供 .txt 的缩略图。
    多嘴一句,为什么云文档需要特供的缩略图等 shell 功能?因为云文件不一定已经下载到本地,而为了显示缩略图或者文件预览下载文件是大忌,所以云文档的缩略图由云存储提供商准备。

    参考阅读 https://devblogs.microsoft.com/oldnewthing/20170503-00/?p=96105 另外提示链接里文章的 online 和 offline 的意思和当今常见的一种用法相反。
    OneDrive 有缩略图是因为是 cloud file provider API 提供的,见 https://learn.microsoft.com/en-us/windows/win32/cfapi/build-a-cloud-file-sync-engine

    Word 文档必须保存缩略图才能被 IExtractImage 接口( Word 的实现是 CLSID = {355822FC-86F1-4BE8-B5F0-A33736789641})提取缩略图,开启这个功能有两种主要方法。

    第一种:在 Word 里随便新建一个文档,点功能区 File 选项卡,再点左侧的 Info 选项卡,再点 Properties 下来列表,点 Advanced Properties ,在 Summary 选项卡选中 Save Thumbnails for All Words Documents 复选框,点 OK 。

    第二种:在 Word 里按 F12 ,在 Save As 对话框里选中 Save Thumbnail 复选框,然后保存。
    >异步方法中根本没办法使用锁, 顶多用用信号量 Semaphore 来代替锁.
    >貌似也没法仅对非异步代码进行加锁, 因为同步异步代码是混杂在一块的, 没法单独对非异步代码进行加锁.

    规则是 lock 里面不可以有 await (可以实现,但是几乎总是错误的,因此语言层面拒绝这样做),在 async 方法中 lock 是完全 OK 的。

    ConcurrentDictionary 已经确保每次访问它的成员都是原子的,然而这不代表对它的访问逻辑就已经线程安全,比如一段代码里连续访问它的成员两次,那么在中途其他线程可能已经修改过了这个字典。说这点是预防针,楼主在 #14 提到这是为了确保 Device 存在 devices 里面的引用安全。

    要保证每个 Device 实例线程安全,最简单的思路是细粒度,比如操作每个 device 的时候 lock 之。如果操作过程需要异步,那么我想象中楼主说有多个线程查看 devices 并做一些事,意思是如果 A 线程处理了 device1 则 B 线程应该跳过并处理 device2 ,这种情况下因为 device 被占用时无需等待,所以可以用 interlocked operation 实现:

    1. 在 device 上加上一个 int 字段 InUse ,表示目前是否在处理它,初始化为 0 。
    2. 要访问一个 device ,先用 Interlocked.Exchange 查看 InUse 并设置为 1 ,如果 InUse 之前也是 1 ,则跳过。
    3. 否则 InUse 之前是 0 并且被原子设置为 1 ,此时当前方法认为自己接管该 device 并开始异步硬件 API 操作,在 await 结束、处理完 device 后,重新 Exchange 把 InUse 还原为 0 。
    输入给系统还是那个(安装)程序其实区别不大,因为最终效果包括(安装)程序以高权限运行。通常来说一旦一个程序以高权限运行一次,它就可以固化这一权力,比如把自己变成高权限自启动服务,甚至修改系统。因此纠结这个问题在主流的桌面系统安全模型下意义不大,必须首先信任(安装)程序才可以(向系统)输入密码。

    主要的担忧应该是:如何识别输入密码对话框是某个特定程序(自己或者通过系统)发起的?假设有一个恶意程序反复检查是否有安装程序将要提权,发现时率先显示假的凭据窗口,则输入密码会导致安全问题。

    在受限用户下输入密码提权是很难确保安全的,即使考虑 Windows 的“要求输入凭据之前按 Ctrl+Alt+Delete”,也需要配合公钥体系才能较好解决这个问题。恶意程序可以率先发起提权请求,于是用户按了 CAD 之后再输入密码,虽然密码不能被恶意程序读取,但还是会被恶意程序截获权限。公钥体系可以确保提权对话框提示目标程序的签名,因而避免一切未经根证书间接信任的恶意程序。

    标准操作是使用快速用户切换,完全切换到已经是高权限的环境下去运行受信任的(安装)程序。登录之前,可以先按 CAD 确保是系统的登录对话框而不是别的程序假冒的。
    @drymonfidelia #5
    @zanjie1999 #6

    不算,因为开源包括任意使用的自由,对比案例是 JSON 初版要求“不得用于邪恶之事”,以及 996 ICU 协议要求“压榨工人的资本家不能使用”,以及 Meta 的 Llama 有奇怪的商业使用限制,都属于非开源且非自由。开源包括在除了对自由的保护的限制外无限制使用代码的自由,所以禁止受权人在另一软件里使用 50% 代码也属于非开源且非自由。

    软件名字是商标的问题,不是版权(软件许可)的问题,所以要求改名是 OK 的。

    “开源软件”“自由软件”是 OSI 和 FSF 定义的,除了 FSF 几乎没人会谴责非自由软件,没有必要非沾上这俩词。同时,我觉得使用这两个词的时候也应该力求准确。结论就是:可以自己写一个协议作出那些要求,不应该称之为开源,其他人会根据他们对协议的接受程度选择使用或者不使用、如何使用这些软件。
    7 天前
    回复了 dtla 创建的主题 程序员 一道 Java 八股,检测 AI 智商
    How do you deal with the error?
    How do you deal with error?
    How do you deal with the Error?
    How do you deal with Error?

    四句话意思不同:1 的意思是“如何处理那个错误”; 2 是“如何处理错误”,但 2 听起来不悦耳,应该用复数 errors 或者加不定冠词 an ; 3 的意思是“如何处理那个特定的 Error (对象或者某个子类)”; 4 的意思是“如何处理 Error (一般地,该类和子类和对象)”。在 Error 上可以用复数,3 的意思会变成特定的几个 Error/它的子类/对象,4 的意思无变化。

    4 对应楼主希望提问的八股问题,不需要冠词是因为 Error 是所指的名字(等同于 John Doe 不需要加冠词)。1 、3 单独作为一句话出现的时候是无意义的,因为没有上下文表明是哪个错误/Error 。

    在口语里面无法区分 Error 和 error ,所以需要额外说明,例如 the Error class 或者 programming errors 。即使是在 Java 的语境里,在没有其他的上下文时,发音 error 指 Error (类)还是(一般意义的)错误依然是不明确的。
    赞,不过没有许可协议的仓库包含的代码不是开源的,请参考 https://choosealicense.com/ 并给你的仓库选择一个合适的协议(如果你希望它是开源的话)
    是 Win32 禁止使用 AUX 等 DOS 设备名作为文件名,另外这个从 MS-DOS 时代就有了。关于为什么加任意扩展名、在任意目录都不行,参考 https://devblogs.microsoft.com/oldnewthing/20031022-00/?p=42073
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3686 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.