存档

Windows 如何修改系统盘符

2018/11/13 44

在使用 Win10 开发近 5 年的时间里,我填了各种各样的坑。最近终于受不了,将办公室里的开发机器的操作系统换回 Win7 。但是在重装 Win7 系统后,发现了一个问题:Win7 系统盘符并不是 C:/ 而是 F:/ 。这导致有些软件不能使用了。在网上找了一通后,找到如下办法可以将系统盘符换回 C:/ :
修改 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevice\DosDevices\F: 的键名为 \DosDevices\C:
重启以后,发现系统盘符果然改成了 C:/ 。然而,系统无法正常使用:无法加载用户配置文件、无法打开系统应用,甚至连资源管理器都无法打开!
这个时候如果想将注册表改回去,发现
无法打开 C:/windows/regedit.exe, 找不到指定文件
经过一通谷狗之后,有如下解决办法:

1. 恢复到之前的盘符

使用 PE 引导盘,进行系统后打开 regedit.exe ,但是这个时候修改HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 是无效的,因为此时的注册表是 PE 系统的注册表,而不是 Win7 的注册表。应该想办法加载 Win7 的注册表,方法如下:
将鼠标定位在 HKEY_LOCAL_MACHINE\ 上,选择菜单 文件 -> 加载配置单元 , 在对话框中选择 F:\Windows\System32\config\SYSTEM ,在新加载的注册表项里找到 MountedDevices, 将 \DosDevices\C: 改加 \DosDevices\F: ,并重启。
因为 regedit.exe 只是注册表编辑器,真正的注册表文件存储在 F:\Windows\System32\config\SYSTEM 里。

2. 解决盘符的问题

在注册表里搜一下 F:/ ,发现实在太多了。这决定里通过修改盘符不能解决问题而只会引发更多的问题。冷静下来思考了一下,想到如果使用磁盘映射可能可以解决问题:
首先,查看是否有磁盘占用了 盘符 C,如果有,则改之。
然后,cmd 下使用 subst 命令:

此时发现 “我的电脑” 中果然出现了 C 盘且和 F 盘一毛一样。至此问题得到解决。

3. 改进

这种方法的缺点就是,该命令在重启后会失效。所以需要在启动时自动运行。我选择将其加入到 Windows 计划任务库里

附:subst 命令

  • 命令基本格式 > subst [盘符] [路径]
  • 查看所有映射 > subst
  • 解除某个映射 > subst [盘符] /D

Mathematica 的几个技巧

2018/09/14 227

绘图

画曲线的交点

有多种方法。
一是利用 MeshMeshFunction, 二是求出点,并使用 Graphics
eg.1:

eg.2:

文本偏移与旋转

文本绘制使用 Text[expr,coords,offset,dir] ,其中 offset 为偏移量,单位为一个 point(一般是 1/72 inc) 。 dir 为文本的方向

eg.1  偏移

eg.2 旋转


计算

求模等方程

 

 

如何在 Intellij IDEA 中使用 less

2018/06/27 403

1. 安装 node.js  参见这里

2. 安装 less for node.js

3. 安装 file watchers 插件:

File->Settings->Plugins->

4. 配置 File Wathcers:

File->Settings->Tools->

插件会自动寻找配置 lessc 。

至此,改动 less 并保存时会自动生成对应的 css文件

如何用一条 SQL 语句计算多个 COUNT 值?

2018/05/30 437

场景:在某个 SQL 中,得到一个中间表 m ,需要对 m 表 进行分条件的计数运算。为提高效率,不对 m 表做持久化处理。该如何做?
简单地说,即在一条语句中查询多个 COUNT 值。
一个解决方案是求助于 CASE 表达式SUM 表达式

CASE 表达式

在 SQL 语句中, CASE 表达式 具有编程语言中的 if -- else 的功能。

关键字 CASEWHEN 之间的可选表达式称为 base expressionWHENTHEN组成WHEN 表达式THEN 关键词后跟的是 WHEN 表达式的 。还可以包括 ELSE 表达式,它是可选的

  1. 在不使用 base 表达式的情况下,每个 WHEN 表达式从左到右依次计算布尔值, CASE 表达式的值为第一个为 真值 的 WHEN 表达式的值。如果没有值为真的 WHEN 表达式,CASE 表达式的值为 ELSE 表达式值。如果即没有值为真的 WHEN 表达式,也没有 ELSE 表达式,即么 CASE 表达式的结果为 NULL
  2. 在有 base 表达式的情况下,base 表达式会且仅会计算一次,然后从左到右依次与 WHEN 表达式做逻辑运算,第一个运算结果为真的WHEN 表达式的值即为 CASE 表达式的值。如果没有匹配的WHEN表达式,那么 ELSE 表达式的值即为CASE语句的值。若连 ELSE 表达式也没有,即么 CASE 表达式的值即为 NULL

SUM 表达式

啥?

实践

注:本实践使用 sqlite。

现在要计算出 tb 表中 1. 有多少男性,2. 有多少儿童 3. 共多少人。SQL 如下:

 

Django 集成 CKEditor 踩过的坑

2018/04/11 539

上一次说到了在 django 中集成 tinymce。但在使用过程中发现功能不够强大。如自定义css, 上传文件等功能缺失,所以转向功能更全的 ckeditor

该项目在github上开源。

基本按照 github 上的简介就可以将其集成到项目里。但也有一些坑:

语言设置为中文

以下设置一个都不能少:

上传图片

settings.py 中以下设置

其中 CKEDITOR_UPLOAD_PATH 必须是相对路径,相对基地址为 MEDIA_URL

在 model 中使用时,使用 from ckeditor.fields import RichTextField , 在 form 中使用时,使用 from ckeditor_uploader.fields import RichTextUploadingFormField

阅读全文…

Django 集成 tinymce

2018/04/04 565

环境

  • django-1.11.8
  • python2.7+

步骤

Install

setting

  • 在项目的 setting.py 文件中,找到 INSTALLED_APPS 节点, 添加 tinymce
  • 在项目的 urls.py 中添加以下内容:

     
  • 在项目的 setting.py 文件中,添加节点 TINYMCE_JS_URL, 指向 tinymce.min.js 文件。由于本机服务器资源有限,故使用了CDN:

阅读全文…