数独背后的数学

今年第一篇也是最后一篇献给数独吧 ...

首次发布时间:2023-12-28 · 最后修改时间: 2023-12-28 · 1 min · codest

如何隐藏Edge浏览器的“在侧边栏搜索”菜单

新的基于Chromium的Edge浏览器是不错,可是微软老是往里塞乱七八糟的的东西,好在大部分都可以关闭。今天发现了关闭侧边栏搜索右键菜单的方法 快捷方式目标后边追加 1 --disable-features=msSidebarSearchAfterSearchWebFor,msSidebarSearchBeforeSearchWebFor 确定重启即可

首次发布时间:2022-09-08 · 最后修改时间: 2022-09-08 · 1 min · codest

如何撤销一个 git rebase

上次说了通过git rebase 合并多个提交,那如何撤销呢? ...

首次发布时间:2022-07-29 · 最后修改时间: 2022-07-29 · 1 min · codest

如何合并多个git commits

git的工作区、暂存区、版本库的区分,让我们在编码的时候以渐进的方式稳步的把代码写出来。 我的习惯是先在工作区和暂存区迭代,某个部分写好了用添加到暂存区,进行下一步;发现工作区太乱了或者这样写不行,可以丢弃工作区的更改。 工作区达到一定的阶段,就提交一下。整个功能完成后可能是下面这样: 1 2 3 4 5 6 7 * 7e7af1b - (HEAD -> feat/addUser)完成 * 215353c - 修改自测bug * 5fcfa4f - 完成功能 * 34024f7 - 完成界面设计 * 288ebcb - 开始添加用户功能 * b36071d - (origin/main)登录功能 <----远程 * 25b848d - init 直接合并到main稍显杂乱,先用git rebase把提交合并一下: 要合并的是最后5个提交,使用命令 1 git rebase -i HEAD~5 git 弹出编辑器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pick 288ebcb 开始添加用户功能 pick 34024f7 完成界面设计 pick 5fcfa4f 完成功能 pick 215353c 修改自测bug pick 7e7af1b 完成 # Rebase b36071d....

首次发布时间:2022-07-29 · 最后修改时间: 2022-07-29 · 3 min · codest

如何让MsBuild自动拷贝和更新System.Data.SQLite的运行时文件夹X64和X86

问题 假设一个工程有如下的结构 —-Demo sln ——–WPF ——–DataAccess WPF 引用 DataAccess 项目 DataAccess项目引用nuget包System.Data.SQLite, 编译后 DataAccess输出文件夹存在System.Data.SQLite文件和X646和X86,内含SQLite.Interop.dll WPF输出文件夹仅存在System.Data.SQLite文件,需要手动从DataAccess输出文件夹拷贝X646和X86文件夹 而且每次升级System.Data.SQLite nuget包后都需要重新拷贝一次,否则会因为版本不匹配而出现异常。 解决方法 在DataAccess.csproj 中添加 1 2 3 4 5 6 <PropertyGroup> <ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles> <CopySQLiteInteropFiles>false</CopySQLiteInteropFiles> <CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles> <CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles> </PropertyGroup> 参考 SQLite.Interop.dll files does not copy to project output path when required by referenced project Change nuget build targets to use ‘Content’ rather than ‘Copy’ and ‘Delete’

首次发布时间:2022-06-21 · 最后修改时间: 2022-06-21 · 1 min · codest

重装操作系统备忘录

缘起 公司电脑升级到Windows 10 21H2后出现了各种问题: 加密软件每天不定时失效,需要重启电脑才能解决 电脑无法休眠 WinCvs 闪退 Visual Studio 2019 & 2022 拷贝文本经常出现卡死 于是决定重装操作系统。由于之前吃过亏,我是先安装Windows 10 1607,安装加密软件和WinCvs后又升级到21H1,经过几天的使用,没有出现上述的问题,以后就在这一版本养老了。 备份 1、IP及DNS设置 钉钉聊天记录 C:\Users\Administrator\AppData\Roaming\DingTalk 2、微信聊天记录 3、桌面快捷方式 4、环境变量 5、浏览器的UserData 5.1 Edge * AppData\Local\Microsoft\Edge\User Data * AppData\Local\Microsoft\Edge Beta\User Data * AppData\Local\Microsoft\Edge Dev\User Data * AppData\Local\Microsoft\Edge SxS\User Data 5.2 Google Chrome * AppData\Local\Google\Chrome\User Data * AppData\Local\Google\Chrome Beta\User Data * AppData\Local\Google\Chrome dev\User Data * AppData\Local\Google\Chrome SxS\User Data Warning 由于Google的安全限制,基于Chromium的浏览器无法做到完全的Portable,重装系统后原来的userdata里的扩展会全部丢失,最好开启同步设置里的同步扩展选项。 6、浏览器扩展的设置 浏览器的同步扩展功能不会同步扩展的配置,因此需要备份某些扩展的配置 uBlackOrigin uBlacklist (有Dropbox、Google Drive网盘同步功能) Proxy SwitchyOmega 7、油猴脚本配置 知乎编辑器 Note 暴力猴有云同步功能,可以将所有脚本及配置备份到Dropbox或者Google Drive...

首次发布时间:2022-04-20 · 最后修改时间: 2022-04-20 · 1 min · codest

修复Windows 10 更新错误0x800f0922

上个月操作系统(Windows 10 21H1)无法启动,自动进入戴尔的恢复操作也没能恢复,最后提示分区表丢失,找了个winpe,修复了分区表,进入系统后发现只有操作系统所在的C盘了。下载DiskGenius,搜索分区,找回了丢失的数据分区,最后保存的时候提示此功能需要标准版,付费,保存。 可是之后系统更新总提示失败,错误0x800f0922。原因在于Windows的 系统恢复分区变成了基本数据分区,可使用下列命令将分区改回EFI分区 硬盘使用的GPT分区表 1 2 3 4 5 6 7 管理员运行CMD diskpart list disk sel disk 0 #这里选择你WIN10的系统所在硬盘(EFI分区所在硬盘) list part sel part 1 (选择实际的EFI分区ID,卷标为WINRETOOLS) SET ID=c12a7328-f81f-11d2-ba4b-00a0c93ec93b 之后操作系统就能正常更新了。

首次发布时间:2021-12-17 · 最后修改时间: 2021-12-17 · 1 min · codest

我常用的软件 (2021版)

整理记录一下自己常用的一些软件 ...

首次发布时间:2021-12-15 · 最后修改时间: 2021-12-15 · 1 min · codest

VLSM与CIDR的区别

VLSM (Variable Length Subnetwork Mask 可变长子网掩码) VLSM(Variable Length Subnet Mask 可变长子网掩码),这是一种产生不同大小子网的网络分配机制,指一个网络可以配置不同的掩码。开发可变长度子网掩码的想法就是在每个子网上保留足够的主机数的同时,把一个网分成多个子网时有更大的灵活性。如果没有VLSM,一个子网掩码只能提供给一个网络。这样就限制了要求的子网数上的主机数。 VLSM技术对高效分配IP地址(较少浪费)以及减少路由表大小都起到非常重要的作用。但是需要注意的是使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIP2,OSPF,EIGRP和BGP。 CIDR Classless Inter.Domain Routing 无类别域间路由) 1992年引入了CIDR,它意味着在路由表层次的网络地址“类”的概念已经被取消,代之以“网络前缀”的概念。Internet中的CIDR Classless Inter-Domain Routing 无类别域间路由 的基本思想是取消地址的分类结构,取而代之的是允许以可变长分界的方式分配网络数。它支持路由聚合,可限制Internet主干路由器中必要路由信息的增长。IP地址中A类已经分配完毕,B类也已经差不多了 剩下的C类地址已经成为大家瓜分的目标。显然 对于一个国家、地区、组织来说分配到的地址最好是连续的 那么如何来保证这一点呢?于是提出了CIDR的概念。CIDR是Classless Inter Domain Routing的缩写 意为无类别的域间路由。“无类别”的意思是现在的选路决策是基于整个32位IP地址的掩码操作。而不管其IP地址是A类、B类或是C类,都没有什么区别。它的思想是:把许多C类地址合起来作B类地址分配。采用这种分配多个IP地址的方式,使其能够将路由表中的许多表项归并 summarization 成更少的数目。 区别 CIDR是把几个标准网络合成一个大的网络 VLSM是把一个标准网络分成几个小型网络(子网) CIDR是子网掩码往左边移了,VLSM是子网掩码往右边移了

首次发布时间:2021-11-04 · 最后修改时间: 2021-11-04 · 1 min · codest

Windows 10 解决端口被占用问题

前几天启动hugo server时提示1313端口被占用,给分配了一个随机端口,打开自己写的程序,mqtt默认的1883端口也被占用,使用 1 netstat -ano | findstr 1883 没有任何返回 一番Google后得知某些端口被Hyper-V保留了。 解决方法: 关闭Hyper-V 1 dism.exe /Online /Disable-Feature:Microsoft-Hyper-V 重启后设置你想保留的端口,这样Hyper-V就不能再占用 1 2 # 排除ipv4动态端口占用 startport 起始端口 numberofports 端口数 netsh int ipv4 add excludedportrange protocol=tcp startport=<your port> numberofports=1 对于1313和1883端口,我执行了两次此命令: 1 2 3 netsh int ipv4 add excludedportrange protocol=tcp startport=1313 numberofports=1 netsh int ipv4 add excludedportrange protocol=tcp startport=1883 numberofports=1 重新启用Hyper-V,需要重启 1 dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All 再次查看端口排除范围(被系统或者我们自己保留的端口) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 λ netsh int ipv4 show excludedportrange tcp 协议 tcp 端口排除范围 开始端口 结束端口 ---------- -------- 80 80 1313 1313 * 1883 1883 * 1899 1998 1999 2098 2108 2207 2208 2307 2308 2407 2422 2521 2522 2621 2622 2721 2722 2821 2822 2921 5357 5357 45000 45000 50000 50059 * * - 管理的端口排除。 带*就是我上面添加的。...

首次发布时间:2021-10-28 · 最后修改时间: 2021-10-28 · 1 min · codest