上手 Visual Studio 2013 Preview

当然, 我最关心的还是对 JavaScript 的改进. 当然简单的看了下没法知道所有细节, 就说说我有看到的地方.

1. 在新建项目中发现了 Python 说是支持 IronPython 和 CPython, 不过想来单纯写脚本也应该没有任何问题? 不过不用 Python 表示不是很了解… 有点期待之后是否会有 NodeJS?
2. 在新建文件中看到了 LESS 和 coffeescript, 虽然也都不用,,, 囧…

JavaScript 相关:
1. 光标在变量名上时会高亮相关变量, 并且区分各种 scope, 但是怎么找也找不到重命名的选项, 不知道之后会不会提供.
2. 输入引号括号时会自动补全另一半.
3. 支持了 __defineGetter__ 等相关函数的实时运行.
4. intellisense 对象扩充了几个方法, 不过介于没有文档暂时懒得去捣鼓有什么用. 这里可以简单介绍下这个 intellisense 对象. 不出意外应该是在 VS 2012 的时候引入的, 可以让代码自己调整 IDE 的提示信息. VEJIS 0.5 使用专门开发的 intellisense 文件后能给出媲美 C# 的代码提示也是依赖于这个对象. 不过可惜知道这东西的人貌似并不多…
5. 有个 bug 貌似修复了… 之前如果打完第一个字母的时候, 提示还没有显示, 就打第二个字母, 那么就看不到提示了… 刚刚试了下这个问题不存在了.
6. 工具栏上多了个刷新按钮, 叫 Browser Link, 目测可以自动刷新网页, 但不幸的是,,, 可能是浏览器支持还没完成, 我试了下没有效果.

总的来说, VS 还是我心中前端开发的最佳选择, 虽然 2010 之后它变得有点那么丑了… 希望正式版崩给我们惊喜~

[Chrome 插件] 谷歌词典增强版 (Google Dictionary Plus for Chrome)

说来一直用着 Google Dictionary 浏览器里取词, 遇到生词的时候会比较方便, 不过 Google Dictionary 这个插件还真是挺简陋的. 今天花了一天的时间给它修修补补, 终于搞出了能看也更适合英文为外语的同学使用的 Google Dictionary Plus. (BTW 中间涉及到一些版权细节问题我就不过问了哈哈, Google 应该不会怎么样我的我觉得.)

主要的提升有两点, 一点是 UI, 更大气, 简约一点, 视觉细节处理也更到位. 另一点则是英文划词同时显示中英文双语翻译, 中文方便快速浏览, 英文翻译则方便了解细节等等. 先上截图.

Google Dictionary Plus v.s. Google Dictionary

项目页面 github.com/vilic/a-plus-dictionary

已改名 A+ Dictonary 上架 Chrome Web Store!
https://chrome.google.com/webstore/detail/a%20-dictionary/nbdnlnijofenjgknplpelkpmhikpangb

有建议欢迎提, 不过不赞助的话就别想我会花多少时间弄这个了哈哈. 毕竟精力有限~

就没有用 ThinkPad 的同学吐槽两个大小写指示图标同时显示嘛!!!

貌似还是上一台 ThinkPad 的时候就有这个问题了… ThinkPad 本身那个还是比较好看的, 但是!!! Win 7 的情况下为什么还会有第二个那种货色的东西!!! 见截图.

caps lock indicator

所以一定要把它干掉啊!!! 不过表示我一个搞前端的没怎么接触过桌面开发, 也一下子想不起来怎么定位这个文件, 还好有观摩黄冬冬大神调试的经验, 想起来一个叫 Spy++ 神马的工具 (Visual Studio 附带的工具). 于是拿来 Find Window, 然后乱点 (其实原来我也干过不过没找出什么可用信息来), 这次突然发现看得到进程信息, 是个叫 BTTray 的家伙! (其实一开始我以为是 Battery) 原来是个蓝牙的托盘图标应用… 还开机自动启动 (原来都选择了不显示, 但是这东西照样启动)… 结束进程, 删掉开机启动相关项, 切换大小写的时候终于清静了囧…

连接校内 WiFi 后自动连接 VPN 实践一二

自动化万岁~

所以问题是这样的, 部分可能类似于我这种不用 Dr.COM 上网而用各种 VPN 的同学经常希望局势能更乐观美好一些, 比如电脑开机自动连上 WiFi 之后能够顺道把 VPN 什么的也连上. 看似只省了一部操作, 其实省下了在诸多开机自动启动的程序上重新登录之类的操作. 关键是, 爽~

所以这里结合自己的经验介绍两种方法. 因为用的英文系统, 对应的中文名称就凭感觉啦.

1. Task Scheduler

打开 Task Scheduler, 左侧可以看到目录, 随便找一级看着顺眼的右键新建任务.

General 选项卡中填上任务名称, 比如 ConnectVPN, 下方选择 Run w (这个其实我是凭感觉选的, 你们随意, 总之好用).

Trigger 选项卡中新建一个 trigger, Begin the task 选择 On an event, 下面出现的两个下拉菜单和文本框依次选择和填写:

Microsoft-Windows-WLAN-AutoConfig/Operational
WLAN-AutoConfig
8001

确认继续. 然后在 Actions 选项卡中添加一个 Action, 不过在此之前先在电脑上比较宜人的位置新建一个 js 文件 (比如 connect-vpn.js), 内容如下 (其中的中括号是要一起替换掉的, 在进行下一步之前, 你可以先断开 VPN, 双击运行脚本看看能不能成功连上).

var shell = new ActiveXObject("WScript.Shell");
shell.run("rasdial [VPN连接名称] [用户名] [密码]");

那么就在新建的这个 Action 中选择刚刚创建的这个 js 脚本文件, 确认继续.

切换到 Condition 选项卡, 取消连接电源才执行任务的选项. 再往下有个选项可以选择依赖的网络连接, 可以试试, 我没弄过… 因为有更棒 (对我来说) 的方法.

至此基本搞定, 最后还有个 Settings 选项卡大家根据自己胃口设置啦. 确定保存, 会要求输入密码. 现在连接一个 WiFi, 就会自己连 VPN 啦~ 当然, js 脚本还可以做很多事情, 这里只是以 VPN 为例. 或者也可以不用 js, 自己随意~

1.1 Task Scheduler with Custom Trigger

但是只想在连接到某几个无线网络的时候连 VPN 肿么办? 上面提到一个我没试过的方法, 不过不尽完美, 因为换个地方, 即便是同样的 SSID, 可能也没法连了 (我 YY 的, 具体请自己测试)… 加上楼主的 WiFi 源主要有两个, 寝室自搭的 WiFi 和学校的. 这个时候就可以自定义 Trigger 啦.

回到 Trigger 选项卡, 选中刚刚新建的 Trigger 编辑, 类型由 Basic 改为 Custom, 然后 Add Event Filter. 在打开的对话框中切换到 XML 选项卡, 并且勾选 Edit query manually. 会有警告说再也回不去了, 好马不吃回头草~

<QueryList>
    <Query Id="0" Path="Microsoft-Windows-WLAN-AutoConfig/Operational">
        <Select Path="Microsoft-Windows-WLAN-AutoConfig/Operational">*[System[(Level=4 or Level=0) and (EventID=8001)]] and *[EventData[(Data[@Name='SSID']='CQUNET' or Data[@Name='SSID']='VILIC-C1539')]]</Select>
    </Query>
</QueryList>

贴上如上代码, 这里 CQUNET 和 VILIC-C1539 是我常用的两个 WiFi 的 SSID, 请更改为自己的. 里面那个 or 很明显吧~ 如果只需要一个的话就删掉后一个, 还有 Data 前后的圆括号. 如果还想要! 还想要就加!

保存搞定~

2. Intel 网卡驱动自带的功能.

装驱动的时候装一下完整包, 貌似精简包里没这个. 右键已经连上的 WiFi 连接查看属性, 在 Connection 选项卡中看有没有一个叫 Enable Intel connection settings 的选项, 没有就不用继续了 (或者考虑装驱动). 勾选后配置.

然后瞬间发现有一项可以改 MAC 有没有! 原来怎么就没有发现!

不过这里要改的是 Application Auto Launch, 勾选上之后要选中一个程序. 可以是 bat, 可以是 exe 什么的… 但是不能是 js. 于是桑心了. bat 当然还是很好用的, 不过黑框框一闪实在过不了我完美主义这关, 于是 C++ 写个小程序来拨号好了 (C# 可能更方便, 当时脑抽就用 C++ 了).

因为我 C++ 不好, 就不献丑了, 你们这些地球人用 bat 吧.

然后,,, 就没有然后了. 祝大家自动连接愉快~