「编程笔记」关于Dart类构造函数

构造函数的形式 无参数构造函数 在Dart中,每一个类(Class)都有一个不包含任何参数的默认构造函数,当你调用[ClassName]()时,就会调用默认的构造函数。Dart会为每个类自动添加默认的构造函数,但你也可以显式的声明你的构造函数,例子如下 上面的构造函数被调用时,会更新实例的成员变量。 同时注意到在声明成员变量name的时候,我们使用了?符号,代表name的值是允许为空的,如果删除?符号,本段代码将会报错,编译器会提示你没有在类初始化的时候为name这个成员变量赋值,报错提示如下: 其中一个解决办法是,在声明成员变量name的时候使用late关键字:late String name; 这么做相当于你告诉编译器,我现在暂时可能没有对name变量进行赋值,但是我确定在将来我要使用它之前,肯定会给他赋值,只不过不是现在。这样,编译器就不会强制要求你在构造时立即初始化这个变量。 但这时可能有同学会问:“我明明在A的构造函数中已经为成员变量A赋值了classA,为什么说我没有为name赋值?”,这里需要注意的是,如果我们想要让Dart编译器知道我们已经在构造函数中初始化了某个成员变量,就需要另一种写法。 带参数构造函数 当然,上面代码中的构造函数已经不属于无参数构造函数了,其构造参数中包含一个位置变量。当然,你也可以为其添加命名变量。 有两点需要提及一下,Dart允许类的构造函数中,快速的对成员变量进行赋值,要做到这一点,只需要使用this关键字即可,比如上方代码中的构造函数A(this.name)就代表传入的第一个位置参数赋值给name这个成员函数。同样的,您也可以在命名参数中使用this,比如A({this.name}); 这种情况下,调用构造函数的格式变为 A(name: ‘YOUR_NAME_HERE’) 命名构造函数 我们可以发现,上方提到的两种构造函数中,构造函数都是直接使用类的名称,比如类的名称是Book,那么构造函数的名称也是Book,这在Dart中属于 unnamed constructor(未命名构造函数),这种构造函数可以直接用类名调用,比较方便,但是一个类只能有一个未命名的构造函数,这里涉及到Dart语言的设计,Dart语言的设计已经决定了Dart不支持方法/函数重载,也就是说两个名称相同但是输入的参数列表不同的函数不允许同时出现。因此,构造函数显然也不能通过不同类型的输入重载,您可以阅读关于Dart不支持方法重载的相关文章,加深理解。 这里就需要介绍Dart的命名构造函数了。就如其名字一样,命名构造函数允许你设定这个构造函数的名字,进而可以实现多个不同的构造函数,代码如下 注意,子类不会继承父类的命名构造函数,如果您想要子类在初始化的时候调用父类的命名构造函数,则需要手动进行调用super.[yourNamedConstructor]() 工厂构造函数 在实际开发过程中,有时我们希望一个类的构造函数并不是每次都返回一个新构造的示例,比如,有时我们希望从内存中读取已有的示例,或者是我们想返回该类的某个子类示例,此时可以运用factory关键字实现工厂构造函数,工厂构造函数可以返回此类或者此类的子类的示例。 值得注意的是,工厂构造函数不得访问this,也就是说工厂函数不能直接访问成员变量。如果你想在工厂构造函数中返回本类实例,可以先在工厂构造函数中构建实例,然后返回你新构建的实例。 其实在这里,目前我自己也存在着一定的疑问,比如,虽然factory构造函数可以返回内存中的实例或者是子类的实例,但是,实际操作过程中,即使返回的是子类实例,我们也无法直接访问子类实例的变量和函数,而还是只能访问父类的变量和函数。比如上述代码,即使我们可以发现最终person变量的runtimeType是Female,但是当我们尝试添加print(person.beautyIndex);这行代码的时候,编译器会报错,提示person实例没有beautyIndex成员变量。直观上来说,大概是编译器因为Person.fromSex()方法返回的是Person类的变量,所以后续的类型推断和错误检查都会以Person类为基础。这么做也有道理,因为Person.fromSex()有可能返回的是Person类自己的实例。有没有什么办法,既可以实现动态的返回子类型,同时又可以允许我们自由的读取子类型的变量呢? 以下抛砖引玉的提供两个方法,第一个,也是最直接的方法,是在父类中增加子类所用到的成员变量,同时将其标记为可空,例如,上述代码中,可以在Person类中添加一行int? beautyIndex; 然后子类重载这个变量即可。这种方法显然不是很好,当子类越来越多,我们需要添加到父类的变量也就越来越多,这就意味着每次功能更新都需要修改父类。这不符合对修改关闭原则。 另一种方法是进行类型检查(typecheck)和类型转换(type cast),也就是如果我们确定了工厂构造函数返回了某个子类的示例,我们可以将这个实例进行特定的类型转换,将其转换到某个子类。 factory实现单例模式 工厂构造函数除了上面的用法,还可以用于实现单例模式,代码如下 通过以上特点,你可以通过class实现类似于但更方便于enum的效果,代码如下: 上述代码通过首先通过static和final关键字,创建了不同的AppleDevice实例来当作不同的枚举类型使用,又通过factory函数,实现了根据不同的数据判断出需要的不同的“枚举类型”(实际上是一个AppleDevice实例)。这种方法不但实现了枚举的基本功能,后期还可以根据自己的需要不断的为其添加功能,扩展新好于Dart中的基本枚举类型。 值得一提的是,Dart2.7更新之后,已经支持使用extensions on关键字对于枚举类型的功能扩展,您可以阅读Dart枚举类型扩展的相关的文章,了解extenstions的用法。但是毋庸置疑的是,当你需要一个多功能的枚举类的时候,使用class实现应该能更好的满足你。 Dart类成员的初始化 在Dart中,类成员的初始化一共有4种方法,分别是: 需要注意,最后一种方法只适用于非final类成员。 类的声明定义中初始化 你可以在编写Dart类的时候直接指定某个变量的值,代码如下: class A{ int a = 10;} Dart构造函数的快捷用法 初始化列表 除了使用this关键字以外,Dart还允许您使用初始化列表对成员变量进行初始化,代码如下 指定父类构造函数 默认情况下,在子类的构造函数没有指定调用之前,子类会调用父类的默认未命名构造函数,如果你想让子类指定使用父类的某个构造函数,并且需要传递参数,则可以在序列化列表之后选择特定的父类构造函数,代码如下: 如上,我们不但使用了上方所讲的初始化列表的语法,同时还添加了super.fromData(…) 这一行,而这一行的实际作用便是让B中的构造函数指定使用其父类(也就是A类)的fromData构造函数

「杂谈」网上冲浪安全指南

这个世界并不是友好而安全的世界,随着近日各种数据泄露出现以及各种有关隐私的事件发生,人们对于隐私安全问题愈加重视,本篇文章即面向于所有使用TG的朋友,祝哟介绍一些冲浪的小技巧和最最基本的注意事项,如果您是IT大佬,请忽略本篇文章内容并关闭标签页,如果想开喷请轻喷,提前感谢大佬的配合()。 关于 Telegram 自由,开放,监控 最近关于 Telegram 信息方面的问题引起了相当的重视,大部份用户选择 Telegram 是因为其口碑式到高度隐私和安全。这是一把双刃剑,有时隐私和安全可以保护自己,但同时他也保护了某些坏人和坏组织。在这种环境下,最最切记的一点是要时刻保持安全意识,在获得了更大的自由的同时,我们同时也将自己暴露在了十足的危险之中。 前段时间,有消息指出,部分公司正在使用Userbot(操作一个真实的 Telegram 帐号当作机器人使用,可以绕开 Telegram 对机器人的种种权限限制,因此非常适合用来爬取 Telegram 中的信息)抓取,归类并分析 Telegram 公开群组,频道,用户的信息,并通过大数据分析构建用户关系图以及风险评估系统,并将其相关查询功能开放给相关警方部门使用。 这里需要提到一点,由于 Telegram 的开放性,只要频道和群组时公开的,任何人无需加入就可以查看其中的所有消息,甚至不需要下载 Telegram 的客户端,在网页端访问连接就可以查看信息,而这个机器人就是抓取这些公开的信息进行分析,通过分析掌握特定的人经常聊的话题,和谁共同群等等信息,推断用户是否可能存在非法活动,或者是否合非法人员有着密切联系。 再需要补充一点,Telegram 并非绝对安全,也并不是所有违法活动的避风港。Telegram 在收到数据披露请求后,将可能会像第三方机构披露包括涉及账号的IP地址以及注册手机号等信息。 比如如果您是机场主,就有可能会在一些公开群里聊到关于机场技术的话题,又或者跟部分知名机场主共同群较多,又或者发送过你机场的aff连接,而这些内容都会被该监控系统抓取并记录。这只是一个例子,可见 Telegram 并不安全。所以在公共群组发言时,请慎重。(如果是dalao当我没说) 基本信息安全 手机号信息。如果您注册 Telegram 时正在使用中国(+86)手机号,请仔细检查 Telegram 的隐私设置是否已经正确设置为“对所有人不可见”,否则陌生的 Telegram 用户将可以直接看到您注册时使用的中国手机号。值得注意的是,这一步骤应该放在注册账号之后的第一位。(你肯定不想在群里激情对线的时候突然有个电话打过来)。如果可以的话,建议在注册如 Telegram 之类的国外平台时,尽量不使用中国手机号,您可以选择使用类似于 GoogleVoice 之类的虚拟号码服务进行注册。(可以来我这买(正在打折) 同时,建议在注册 Telegram 时,使用和国内媒体以及社交帐号不同的用户名和ID,这有助于保护个人信息不被(那么快的)泄露。 意识 意识可以延展到很多方面,大概意思是指,我们在发出任何消息和做出任何决策时都需要考虑自己所做的事是否会对自己的信息安全产生影响。下面举几点例子。 聊天八卦之中,是否透露出足以暴露或者泄漏个人信息的内容。比如高考查分截图中的名次,对于同一省份考生,名次绝大多数情况下都是具有唯一性的(除非有人和你总分相同,语数英成绩相同,物理历史选科成绩相同),所以一旦暴露真实的精确排名,那么拥有相关渠道的人就可以直接锁定你的个人身份,这有可能将会成为一个定时炸弹。所以请不要随便透露类似于此可以代表个人的唯一性标志。这也只是一个例子,还有很多其他不能泄漏的标志,需要时刻注意。 发送图片时,如无特殊必要,使用照片模式发送而非文件模式。照片中除了图像信息,还可能包含拍摄地点,拍摄设备,光圈等等的拍摄信息(这里称为exif,Exchangeable image file format)。如果通过文件发送,则有可能导致照片的exif信息泄漏,对方可以通过分析你的照片获取你出行的常用地点,常用设备等信息,导致严重的个人信息泄漏。不过目前大多数主流社交平台都提供了在上传图片时抹去照片exif的功能。不过我们仍有必要注意在发送图片时需要考虑是否要对照片的exif信息进行处理。 发送截图时,请注意是否有关键信息未做恰当处理。比如发送点外卖的截图和群友八卦的时候是否记得将订单界面的电话号码打码等。 关于机场 不使用常用邮箱以及常用密码作为机场账号。这一点非常重要,因为你的邮箱账号(有时候甚至是密码)对于机场的运营人员来讲都是可见的,一般情况下这不会造成什么危险,但这个世界一直都很不一般。比如一段时间以前就出现过某机场主跑路之后将用户的邮箱数据明码标价出售的情况。你的邮箱账号就这么被出卖了。即使不是机场主故意泄露,也会存在数据库被恶意爬取的情况(比如近期的某国安),同样可以导致你的常用邮箱账号的泄露。所以这里建议所有机场都不应该使用常用的邮箱(如xxx@qq.com)进行注册。(卖Gmail!5块一个) 明确底线。虽然所谓的各种协议可以保护你和服务器之间的通信,确保信息被加密不被审查,但对于机场运营来说,你的所有浏览信息都是清晰可见的,如果TA想的话,甚至可以查到你昨晚在几点钟看了哪几部动作电影。部分机场还有有可能保存日志(Log)。所以机场和VPN并不代表着绝对隐私和安全,法律的底线在这里也并没有失效,请在快乐冲浪时明确这条底线。Continue reading “「杂谈」网上冲浪安全指南”

「杂谈」关于Telegram Premium的一些事

序 近日Telegram推出了自己的订阅会员服务 Telegram Premium,这一操作引发了Telegram用户的热烈讨论(至少中文圈确实是挺关注的)如果你存在以下问题—— Telegram Premium 是什么?Telegram Premium有什么用?要不要买Telegram Premium,那么本文章可能会对你产生帮助~ 本文章由nf原创,发布于NFのBlog,如需转载,请在转载文章开头注明原文作者和链接! 什么是 Telegram Premium? Telegram Premium 是即时聊天软件 Telegram 推出的付费会员订阅。订阅这个会员后,你可以在这个软件里获得一些独家功能和特权,下面将会介绍。Telegram 在用户数量达到7亿关口之际推出了这个订阅,是继推送频道广告之后为 Telegram 寻找新的经济收益来源的又一次尝试,旨在为 Telegram 的各种开销提供补贴。 官方表示,Telegram Premium 的推出为对 Telegram 有着高需求的用户提供了一条付费道路,允许部分有需求的用户通过付费使用一些高资源的活动(比如大文件上传下载等等)。与此同时,官方表示,Telegram Premium 付费产生的收益还可以用于保证 Telegram 在免费和好用的道路上走的越来越远,以便于为全世界用户继续免费提供这个星球上最强大的聊天软件(preserving free access to the most powerful messenger on the planet)。同时,Telegram CEO Durov 在其官方频道表示,只需要3%左右的用户愿意付费,我们就完全可以承担的起向全世界免费提供 Telegram 的成本开销。 (你付费,这样我就可以免费给大火用了)(nice) Telegram Premium 功能概述 根据官方目前公布的消息,Telegram Premium 的特权功能有: 4 GBContinue reading “「杂谈」关于Telegram Premium的一些事”

高考招生章程重点内容

高考招生章程有什么用,高考招生章程应该怎么看?高考填报志愿时又应该注意哪些内容?本文章将尝试回答以上的疑惑。 看高校基本情况 高校基本情况包括高校全称、校址、办学层次、办学类型、主管部门、学费标准等。对于设有分校及多个校区的院校,还要关注考生在哪个校区就读,其毕业证书、学位证书是否带有分校或校区的标注。 看调档比例、退档规则 调档比例是高校确定调取考生档案数量的标准,一般为当地招生计划数的100%—120%,实行平行志愿的批次调档比例一般不超过105%,实行顺序志愿的批次调档比例一般不超过120%。 很多考生关心,高校调档数大于计划数,进档后没被志愿专业录取是不是会被退档?目前,实行平行志愿投档录取模式,许多高校在《招生章程》中会进行详细说明,一般只要进档考生身体健康、服从专业调剂且满足专业录取规则,则不会退档。如:在平行志愿批次,已投档至中山大学的考生,在思想政治品德考核合格、体检合格且服从专业调剂的情况下,均不退档。 看专业录取规则 高校进行专业分配的方式主要有“分数优先”“志愿优先”和“专业级差”三种。 分数优先是优先满足分数高的考生的专业志愿,即将进档考生按成绩从高到低排序,先依次检索排序靠前考生的专业志愿,排序靠前考生被专业录取或检索完所有专业志愿后,再检索排序靠后的考生。专业志愿优先是专业优先录取第一专业志愿报考的进档考生,只有当进档考生中第一专业志愿报考该专业的考生全部录完、该专业还有剩余计划时,才录取第二专业志愿报考该专业的考生,以此类推。专业级差是指录取非第一专业志愿考生时,要减去学校规定的分数差额参与排序录取。如:华南理工大学按投档分数优先的原则从高到低进行专业录取,尊重考生所填的专业志愿顺序,不设置专业志愿级差。 看特殊类型录取办法 这里的特殊类型招生方式包括高水平运动队、高水平艺术团、高校专项计划、艺术类、保送生等。一般高校会在《招生章程》中提及,但是更详细的录取办法要参照高校针对每种特殊类型招生单独发布的《招生简章》。 看志愿专业对考生身体健康状况的要求 高校对于考生身体健康状况的要求一般执行教育部、原卫生部、中国残联制定并下发的《普通高等学校招生体检工作指导意见》和相关的补充规定。除此以外,有的高校的部分专业可能会有其他的身体条件要求,就会在《招生章程》中予以明确。 看高考专业补充要求 有一些高校的专业,对语种、单科成绩、性别等会提出要求。 除了常见的英语外,有部分学生学的是俄语、法语、日语等小语种,从目前各高校的招生情况来看,大部分高校的部分专业要求只招英语语种的学生或入校后外语公共课只开设英语。如果考生中学阶段学的是非英语语种,那么在报考相关院校及专业时,一定要仔细了解学校《招生章程》对考生语种的限制。 有的高校在录取中对考生的单科成绩也会有要求。由于某些行业工作性质、环境的特殊性,有的高校在相关专业的录取中也会对报考考生的性别提出“慎报”的建议。 看学校“奖助贷”信息 为鼓励优秀学生德、智、体、美、劳全面发展,高校都设有奖学金,并且为帮助家庭经济困难学生顺利完成学业,高校也都设有助学与贷款资助措施。但每所学校的“奖助贷”种类、政策和条件都不同,考生应仔细阅读自己所填报高校关于“奖助贷”的信息。 本文章转载于:填志愿必备!广东160所院校2022年高考招生章程大汇总! 文章推荐 如何在国外网站上氪金——中行跨境通卡办理教程 Spotify 1个月使用体验

NFのBlog 注册投稿教程

NFのBlog是一个开放性Blog,任何用户都可以在此发布自己的文章!详细请看 本站投稿开放公告 注册/登录帐号 进入主页,在右上角点击“登录” 如果您已经拥有了NFBlog帐号,则可以直接登录,否则,您可以注册按钮进行新用户注册,届时将需要您提供您的邮箱帐号(图1.2) 提示:新用户注册时需要通过邮箱验证,请及时查看您的邮箱,并通过我们发送的验证链接设置您的帐号信息,如果您无法收到我们的邮件,请检查邮箱账户的“垃圾邮件”归档。或者联系我们了解情况 开始编辑文章 注册帐号并登录成功后,即可进入账户仪表盘,您可以在仪表盘左侧导航栏中找到“文章”一栏,点击便可管理和编写您的文章(图1.3) 编写完成后,您可以联系我们发送投稿请求并附上您文章的标题,审核通过后,您的文章将出现在NFBlog中,并将会被Google抓取进入Google搜索结果,如果您不想您的文章出现在搜索引擎的搜索结果中,请在文章中添加[no_index] 的html标签(详细内容可以在网络上了解)

WordPress自动生成文章目录

在使用WordPress编写长文时,我们通常需要为文章添加一个目录,来方便读者的阅读,我们通常需要一个自动生成目录的方法,下面介绍一下WordPress如何自动生成文章目录 TOC+ 您可以通过安装 Table of Contents 插件来实现这一个功能,TOC是一个WordPress插件,可以对页面,文章等自动生成文章目录 您可以直接访问此插件的网址 安装TOC+ 您可以登录您的WordPress网站后台进行搜索安装: 首先按照上图指示,进入WordPress管理主页,在左边栏目录找到插件,并进入 安装插件 选项,输入table of contents plus 并安装该插件 然后如上图,进入TOC+的设置中,post(文章)类型的自动目录默认关闭,我们需要将其勾选 勾选后,网站中标题多于4个的文章将会自动显示目录,且目录可以点击进行跳转~如下图: 进阶设置 您可以看到图1.3中,生成的目录除了出现在文章第一个标题前之外,如果屏幕空间足够,还会出现在网页右方,实现方法并不难,只要进入Wordpress小工具设置中,添加TOC+的侧边栏小工具即可,如图1.4 另外,上方提到,只有标题数量超过4个,TOC+才会开启Wordpress文章的自动目录,如果某个文章不符合这个条件,而你却想开启该文章的自动生成目录功能,只需通过为文章添加[no-toc]的html标签即可

如何在国外网站上氪金——中行 跨境通卡 介绍

更新速览 22.1.26 非人哉、莫奈卡可网申上海分行版。 冬奥主题借记卡推出雪板异形卡。 Mora、DLsite、Pixiv 系(Booth、Fanbox 等)能够正常用卡。 根据水友 胖次 的留言提醒,Mora的乐天pay支付方式疑似404。 根据Selene Elsevier的反馈,修正了部分卡面图片。 补充了Visa御玺卡/Master世界卡的办理条件。 补充了网申的办理流程。 从2022.2.1日起,跨境通卡不收取年费(包括此前欠缴的年费)。 好久不见,我是安咕咕。今天我为大家介绍的是中行 跨境通卡 。 不知道大家有没有这样的困扰,平时自己想买一些国外周边,或者是给国外Google Play上的游戏氪金时,没有合适的付款方式,Paypal不可用,买点卡又怕被奸商讹诈……那么,接下来这个教程可能帮到你。 前排提示:请读者不要使用该卡进行各种违法犯罪活动,不要轻信各种黑产广告,打击电信诈骗和黑产人人有责! 还有,不要用我的截图去做坏事(虽然我应该是在关键个人信息部位都打了码) 全文阅读大约用时14分钟。 本文写作时为图方便,直接采用默认省市区的行政区划进行表达,若你位于直辖市、州、自治区的等特殊行政区划,还请自行匹配。 转载本文前请先联系笔者,未经许可禁止转载。 简介 长城跨境通国际借记卡是中国银行与国际上最大的两家银行卡组织(万事达、VISA)合作,在国内推出的首张搭载EMV芯片标准的国际多币种借记卡,是具有接触/非接触功能的磁条芯片复合卡。该卡专为商旅出境以及留学人员量身定制,除了创造更为安全便捷的支付体验之外,还提供“近20种交易币种无货币转换直接扣账”、“免货币转换手续费”和“境外ATM取现手续费减免”等多项创新和优惠,方便客户在境外取现和消费,让您走遍全球、畅行无忧。 以上为官方介绍。 优点 真正的借记卡,不上信报 这张卡并非某些银行以借记卡名义发行的零额度信用卡,是真真正正的借记卡。你这张卡的消费记录等信息是不会上传到人行信用中心的,不会对你的贷款造成任何影响。 多币种支持,不收手续费与年费 从简介就能看出,这张卡提供“近20种交易币种无货币转换直接扣账”、“免货币转换手续费”和“境外ATM取现手续费减免”等多项创新和优惠。而且中行的汇率价格会比其他银行稍微优惠一些。 手续简单,几乎无条件限制 这张卡只需要身份证件即可办理,无需其他繁琐的证明材料。(据说好像可以网申?但笔者没实践过) 支持3D验证服务 这个……既是优点也是缺点了,一会儿专门细说。 EMV 芯片卡,支持非接触功能 国内首张搭载 EMV 芯片标准的国际借记卡,属于磁条芯片复合卡。 支持Visa payWave和MasterCard Contactless非接触式支付功能。 卡权益和银行优惠活动 可以享受卡组织提供的卡权益和参与银行举办的各种优惠活动。 种类 卡片名称 卡组织 备注 标准 金卡 Visa/Master 标准Continue reading “如何在国外网站上氪金——中行 跨境通卡 介绍”

WordPress站点域名更换

日常运营中我们可能会遇到更换站点域名的需求,当我们同时拥有源域名和要更换的新域名时,一切都非常简单,分别在wordpress,域名提供商和服务器面板里更换新的域名便可以完成,这里便不多再赘述,这里说一说如何在失去原域名控制权情况下最小程度减小损失的域名更换方案。 下面的方法适用于您已经失去了对于原域名的任何控制权,但仍然对现有服务器拥有控制权,或者您的手中有网站目录以及数据库的备份的情况 方法非常简单,首先你需要拥有一个数据库编辑器,打开数据库之后执行下面的SQL语句即可,其原理就是将数据库中所有的旧域名全部替换为新的域名,我就拿我自己的一次网站域名更换举例,从nfblog.me更换到nfblogs.com,你只需要替换为你自己的旧域名和新域名即可。 UPDATE wp_options SET option_value = replace(option_value, ‘https://nfblog.me’, ‘http://nfblogs.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’; UPDATE wp_posts SET guid = replace(guid, ‘https://nfblog.me’,’http://www.newurl’); UPDATE wp_posts SET post_content = replace(post_content, ‘https://nfblog.me’, ‘http://nfblogs.com’); UPDATE wp_postmeta SET meta_value = replace(meta_value,’https://nfblog.me’,’http://nfblogs.com’); UPDATE wp_usermeta SET meta_value = replace(meta_value, ‘https://nfblog.me’, ‘http://nfblogs.com’); UPDATE wp_comments SET comment_content = REPLACE (comment_content,Continue reading “WordPress站点域名更换”

在CFW&CDN中通过Mixin配置Tun或Tap

本文由Telegram频道超超超超超超超超超菜的频道主编写~转载请注明出处~ 喜欢这篇文章请关注频道吧~ 本次介绍利用Clash for Windows(以下简称CFW)和Clash .Net(以下简称CDN)两个软件中的mixin功能实现TUN/TAP虚拟网卡接管流量 截至本文的修改完成,CFW的最新版本是0.15.6,CDN的最新版本是1.0.4 本次示例以便携版为示例,两种软件的便携化方法都是下载压缩包,在解压出来的文件夹中新建data文件夹,配置文件等都会保存在其中,更新只需要移动data文件夹,较为方便 1、TUN/TAP非常浅显的一点说明 (1)什么是TUN/TAP TUN是clash的premium核心专属功能,可以使用虚拟网卡接管流量 而TAP是CFW的功能,并非clash核心功能,同样可以使用虚拟网卡接管流量 (2)TUN/TAP有什么用 暂且不讨论对全局代理的理解(不知道我什么意思就当我没说好了) 本次介绍的两个客户端(CFW和CDN)都有系统代理的功能 但是系统代理并不能解决所有程序的代理问题 举例来说,当使用uwp应用的时候,默认是无法指定本地代理的;玩游戏的时候,是不经过代理的 传统方法是,对于uwp应用使用enableloopback,对于游戏使用Netch,还有人使用proxifier等 但我们可以使用TUN/TAP来建立虚拟网卡接管程序流量来达到强制代理的目的 也就是说,clash只要配置好,同样能完成别的软件可以完成的事 (3)一些杂谈 其实本次介绍的客户端中,CDN另有增强模式,使用增强模式同样能做到强制代理(效果与Netch的进程代理差不多) 增强模式与TAP一样,无法使用进程名规则PROCESS-NAME来进行分流,猜测可能是因为NetFilter在对流量进行传递的时候无法将进程名传递到Clash核心 本次暂且不对此进行讨论 2、什么是Mixin Mixin,你可以理解为临时覆写,或者可以理解为临时混合配置文件 Mixin的实质是在Clash核心读取完配置文件后对其进行临时修改而不对本地的原配置文件进行改动 利用这个特性,我们可以轻松实现TUN/TAP的临时开关(鉴于这两款软件并未原始提供默认的TUN/TAP配置和相应开关的选项) 3、CDN开启TUN的方法 (1)准备工作 目前TUN是Clash的Premium版核心专有功能,开源版核心并没有实现TUN CFW使用的是Premium核心,因此我们可以正常使用TUN 而CDN默认使用的是开源版核心,因此为了使用TUN我们应该更换核心为Premium版 我们先去Clash源仓库下载Premium核心(点此),向下翻找下载amd64(就是x64,如果你是x86或是说32位那就去下386) 注意,截至我编辑这篇教程的日期(2021/05/20),Clash的2021.05.08版Premium核心仍未修复2021.05.08版核心中TUN部分对Windows的支持的一些问题(相关链接:Github Issue),具体表现为TUN网卡无法正常地检测网络连接,网络中显示Clash网卡无法连接网络,这将导致微软系UWP应用无法正常使用,比如设置中的微软账户登录等,对此,我推荐去使用上文提到的Issue中维护者发出的包,或是选择回退2021.04.08版核心(可去旧版CFW客户端中的resource文件夹中获取) 以x64为例,我们下载到的文件解压后是这个(上图) CDN的核心文件存在于CDN目录下的/bin子文件夹,文件名是Clash.exe(下图)(由于本文从初次编写到最后修改有一段时间,此处的CDN版本并非最新,以下不作解释) 因此我们将原核心文件重命名为Clash.exebackup(以防下错核心从头再来),下载到的文件复制到该目录,并重命名为Clash.exe 然后我们去https://www.wintun.net下载wintun.dll(注:截至2021年5月20日,wintun已经更新到0.11) 由于我们是64位系统,所以打开压缩包里找wintun/bin/amd64下的wintun.dll,x86请使用wintun/bin/x86文件夹下的wintun.dll 然后我们在CDN目录建立一个data文件夹,打开CDN,过一会关闭CDN(生成目录) 然后将我们的wintun.dll复制到/data/clash中 之后我们退回到Clash.Net目录,右键Clash.Net是用管理员身份运行 UAC提示允许就完事了~ 如果讨厌每次打开都要点右键,可以右键点属性,在兼容性选项中勾选使用管理员身份运行 这边稍微介绍一下CDN的语言切换功能 只需在这个选项卡中切换语言即可。 打开后在CDN的界面的settings/config选项卡中点击编辑Mixin Content(中文混合配置内容编辑) 然后在弹出的编辑器中粘贴如下内容: 并保存(当然你如果明白参数的意思的话可以自己编辑mixin的内容,注意缩进) 在进行接下来的操作之前请务必保证你已经完成之前的准备工作 (2)开启Mixin 在进行接下来的操作之前请务必保证你已经完成之前的准备工作Continue reading “在CFW&CDN中通过Mixin配置Tun或Tap”

Spotify 1个月使用体验

全文目录 本文章由 NFのBlog 作者原创且最先发布于 NFのBlog ,转载请声明作者与出处。 NFのBlog 前言 本人之前一直使用国内音乐APP,诸如QQ音乐和网易云音乐,相信这也是大多数人的选择。随着所谓版权意识的增强,再加上某讯的接近版权垄断的存在,想听到一首自己喜欢的歌所需要的花费不断增高,同时所谓保护版权加密格式的广泛应用导致甚至连用MP3听歌都成了奢望,诸如此类各种大大小小的原因促使我寻找和尝试其他能为我带来更好体验的音乐服务提供商,而在多方打听之下,我将目光锁定在了我所熟知而又陌生的知名软上件——Spotify 二话不说,立即购买(其实是找好朋友白嫖家庭组名额)了Spotify会员后,就此开始我的Spotify体验之旅! 目录 新的开始 迁移/导入 选择会员计划 使用体验 歌曲推荐 歌单管理 音质 写在最后 总体表现 是否值得入手? 新的开始 迁移&导入 这不是Spotify官方提供的服务,但还是值得一提,现在的互联网确实越来越方便,利用在线的音乐转换工具,我们可以在不同音乐平台自由的迁移我们的歌单,虽然无法做到官方适配级的准确率和丝滑,但至少给予了各位用户在更换音乐软件是一定的自由选择的权利,而不会为收藏的音乐无法迁移而感到苦恼。 至于如何迁移这里不做展开,感兴趣的同学可以查看本站的相关教程:如何将音乐从网易云音乐转移到Spotify等其他平台。顺带一提,这个教程除了适用于网易云音乐之外,还适用于QQ音乐等其他国内音乐软件喔。 选择会员计划 Spotify的付费服务模式和国内存在一定差异:国内的付费模式一般是免费试听一部分歌曲或某个歌曲的一段,但如果你想任意听所有歌,就需要开通会员才能实现。但Spotify不同,只要注册会员,理论上您就可以任意听所在地区支持的所有歌曲! 听起来很不错对吧?不过,在免费账号下,你每个小时切换歌曲的数目是有限制的,同时,你甚至还不能自由的选择播放某个专辑里的某首歌,而只能选择随机播放。所以,如果你真的想要使用Spotify作为日常听歌软件,那么一个会员是必不可少的。 由于Spotify向全球多个国家提供服务,自然其Premium会员也是按照不同国家分区的,所以不同国家的Spotify会员价格也有不同,同时曲库的容量以及曲库包含的歌曲也会有所差异。同时所支持的功能也会有所差异(比如歌词,storyline等等),如果您希望详细了解,可以阅读 Spotify 如何选择区和付款 。 值得注意的是,这篇文章的撰写日期与现在的时间有一定的间隔,所以部分情况也会有改变,比如文章说到的日区没有米津玄师的歌。但经过nf的测试,现在的Spotify日区已经有米津玄师的版权了。所以最终情况还是根据当前实际测试结果为准,文章仅供参考。 使用体验 经过上述的准备和折腾之后,总算是用上了大名鼎鼎的Spotify,在使用了一个月之后也发现了一些亮点和不足,下面将一一讲述。 歌曲推荐 Spotify歌曲推荐机制与国内的软件大有不同,国内的软件一般有日推板块,每天都会有不同的歌曲推荐,推荐的内容一般也是基于过去的听歌记录和收藏记录。但Spotify并不存在日推,自然也就没有每天新鲜的歌曲推荐。这一点刚开始我是很不习惯的,对于我这种听歌重度患者,每天都想为我的歌单增添点新歌,而Spotify刚开始貌似并不能满足我的听歌欲望。 不知道是因为Spotify的算法不够先进,还是因为她不想把推荐功能做的太臃肿,Spotify的歌曲推荐大多基于你已经点赞的歌曲或者关注的歌手,这一点对新用户并不是非常友好。 因为新用户刚开始使用软件的时候,关注的歌手和喜欢的音乐几乎没有,这也导致了Spotify推荐的歌曲不对胃口。需要用户自己先去搜索一些喜欢听的歌加入收藏,以此来训练Spotify的推荐机制。同时遇到喜欢的歌手也最好立即关注,这样Spotify将会推荐有关这位歌手的专辑或者电台。 我个人比较喜欢听电音和日系,以下是我部分的Spotify推荐,可供大家了解Spotify的一些推荐模板。 在训练了一段时间后,Spotify的推荐很明显更加符合我的口味,算法速度还是不错的!最终来讲,个人认为Spotify的推荐机制表现的中规中矩虽然不算非常优秀,但也肯定不能算差。对于大部分人来说,满足日常对于音乐的需求,已经足矣。 歌单管理 个人认为Spotify的歌单管理着实是一个减分项,很多我刚需的功能都无法提供,相比国内的音乐APP,Spotify提升的空间还很大。 先简单列举一下我认为不好的地方,下面会一一细说: 无法自定义个人界面歌单展示的顺序 不支持将某歌单/专辑歌曲批量添加到另一歌单 “已点赞的歌曲”无法歌单化管理 无法自定义歌单顺序 就我个人而言,自定义顺序功能非常有用!因为我听不同歌单的频率是不一样的,同时有些歌单仅仅用作收藏歌曲用,平时不会经常播放。同时我喜欢的音乐也专门使用歌单来收藏,所以自定义歌单的顺序是非常必要的功能。 在Spotify的个人歌单收藏界面。提供了如上图的各种排序方式,其中也包括了自定义顺序。乍一看上去,Spotify应该也支持自定义顺序的歌单排列,但事实并非如此。 虽然在排序方式中提供了按照自定义排序显示的选项,但实际上并没有更改自定义排序的设置入口。所以所谓的自定义排序实际上是一个随机的顺序,用户并没有更改这些顺序的权利。 不知道是我并没有找到正确的打开方式去调整顺序,还是Spotify本身没有加入这个功能的入口?反正最终结果就是我不能在Spotify上面自定义我歌单的顺序,这着实令我非常苦恼,为什么就不能加入一个这么简单的功能来提升用户的体验呢? 不支持将某歌单/专辑歌曲批量添加到另一歌单 这个倒很好理解,Spotify中不允许将某个歌单中的部分或全部音乐移动到另一个专辑中。 相比于上一个问题,这个问题则更加棘手。我们经常需要批量调整歌单中的歌曲,比如别人的专辑有很多首歌是我喜欢听的,网易云音乐可以一次性选中全部歌曲移动到自己的歌单,但Spotify则不行,只能一首首来…(这得有多蛋疼自行脑补)Continue reading “Spotify 1个月使用体验”