有道云笔记数据导出

0x00 引言       首先,为什么要干这么蛋疼的事呢?我也很无奈啊.       从2011年开始使用云笔记,那会带云同步的笔记还不多,主要就是evernote(印象笔记,大象),有道和为知(wiz),用了一段时间大象,每月几十兆,客户端庞大,然后试用了有道和wiz,当年也不知道为什么会选择有道而不是wiz,可能有一部分原因,有道和大象之间相互迁移很方便吧,然而多年后的今天,啪啪打脸.       要说网易吧,真是有能力好好做产品,偏要干点跌档次的事情.有道词典当年做的多好,非要插一大堆广告,弄的越来越臃肿,现在勉强电脑用用,手机上用欧陆,但是词典源首选的是有道,谁让有道有柯林斯的资源呢.网易邮箱也是广为使用,但是用网易发邮件,邮件末尾非要附上点小广告(我从来不用126,163,但收到的个人发给我的邮件最下面有小广告,也是蛮迷的).网易云笔记也是,PC上的界面做的很不原生,没有win应用的设计感,后来加了云协作,后台一个YNoteCefRender.exe的进程疯狂吃CPU,亏得是单线程,我 […]

numpy.argsort返回值的理解

函数声明 numpy.argsort(a, axis=-1, kind='quicksort', order=None) 功能说明 Returns the indices that would sort an array. 返回数组排序的索引. 问题说明 实际使用过程中,会对返回值的解释产生疑问. 如manual中给的示例: x = np.array([3, 1, 2]) np.argsort(x) 运行结果: array([1, 2, 0]) 整理为表格: 元素1 元素2 元素3 数组元素 3 1 2 返回值(索引) 1 2 0 像我这样第一次接触的人就误认为 [3,1,2]对应的排序是(1,2,0),也就是排序后的数组为2,3,1. 很显然这种理解是错误的. 正确理解 正确的理解也很简单,毕竟是通用库里的函数,不会搞的很复杂. 正确的理解是返回值返回的是原数组元素的索引,如上例,[3,1,2]对应的索引分别是(0,1,2).换一种表达方式,把索引用带有括号的形式表示: 元素 索引 3 (0) 1 (1) 2 (2) 那么上例中返回值记为:(1), (2), (0) […]

C#应用程序开机自启动

自己之前写了个校园网自动登陆的工具(戳我戳我),设置成了开机自启动。不过我的设置方法比较繁琐,先右键exe文件,生成快捷方式,再从开始菜单中找到“启动”文件夹,把这个快捷方式放进去。想到对于绝大多数人来说,这个方法十分复杂,甚至是不可完成的,还是在应用中加个开机自启动的选项比较方便~ 想到shadowsocks客户端有个设置自启动功能,并且是开源的,源码托管在github,哦不,准确说是“曾经”。由于某些原因,有关当局下令让作者删除了源码,不过还是可以在long-live-shadowsocks项目中找到(https://github.com/Long-live-shadowsocks)。 代码使用C#,自启动的相关代码在\shadowsocks-csharp\Controller\System\AutoStartup.cs可以找到。 具体如下: using System; using System.Windows.Forms; using Microsoft.Win32; namespace Shadowsocks.Controller { class AutoStartup { p […]

C# async await 并行执行多任务

.NET 4.5之后版本提供了async 和 await关键字,让多线程的实现优雅了许多.尤其是网络通信时,妈妈再也不用担心我的程序界面会假死啦!~ 最近我一直在做一个网页抓取的程序,已经采集到了一大批要抓取的url存在了数据库中,目前单线程吭哧吭哧一天也抓不完几个. 便想到让await并行执行,在C#圣经上看了这一章,但是并没有提到如何让await并行执行,只好自己动手测试.   经过几番尝试,最终可用的demo代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Threading; namespace MultiAsyncTest1 { public partial […]

C# WinForm 文本框自动滚动

方案一: textBox1.AppendText("要显示的文本" + Environment.NewLine);     方案二: textBox1.Text += "要显示的文本" + Environment.NewLine; //下方将进度条滚动到最后,应当在每一次textBox1.Text +=后都要添加下方语句 textBox1.SelectionStart = textBox1.TextLength; textBox1.ScrollToCaret(); 总体来说,第一种比较简单方便. 第二种方案由于使用了 += 运算,可能每次都将光标(Caret)移动到了文本的开头,使用第二种方法在实际过程中会看到垂直滚动条突然跳到最前的位置,然后立即跳到最后. 建议采用第一种方案 原创文章,转载请注明: 转载自张哲的博客本文链接地址: C# WinForm 文本框自动滚动

C# System子空间无法使用(解决方案)

首先,这个题目起的我也不知所云,但是作为一个初学者,确实不知道该怎么表述。 具体情况是在学习使用System.Net.Http.HttpClient的时候,需要使用System.Net.Http命名空间,可是我在实操的时候,根本找不到Http这个子空间(我也不知道有没有子空间这个术语,反正就这么个意思吧)。 检查了使用的.Net的版本,是4.5无误,为保险起见又切换成了4.5.1了,依然没有。   解决方法: 项目-->添加引用-->见下图   (喵了个咪的,原来System空间的一些功能还要自己添加引用的,我果然是新手啊。。) 原创文章,转载请注明: 转载自张哲的博客本文链接地址: C# System子空间无法使用(解决方案)