CodeSnippet

问答

有些话、适合烂在心里 提交于 2020-11-20 05:04:26
开始下面的内容之前,这里先说一下吧,这篇文章是自己的第62篇输出文章,也是自己在写java基础性文章的最后一篇了,即自己理解的java基础性文章和想要写的基础性文章结束了,后面看自己如何去写接下来的文章了。 我觉得我需要写的基础性文章应该结束了,翻看了历史文章真正开始输出文章是在10月份初,那个时候觉得我要输出文章,我应该去做到日更,接下来面对最大的困难就是自己该要怎么去写?然后我就坚持了用自己的理解去按照自己写作风格进行来写了,写作风格就是配上示例程序加以易于理解的文字说明。 有的人或许会有这样的疑问,你在这期间想要放弃吗,是的,我想过放弃,我或许因为工作任务而焦虑不安,因为在每日工作下还要去思考我想要输出的技术点,完成一篇文章多则几个小时,少则也要一到两个小时,是的,我想要放弃,后面自己想想自己为啥要输出文章的初衷就坚持了这么久了,保持日更我做到了,至少目前我是做到了。 有的或许会有疑问,你在输出文章的这段期间有什么收获吗,是的,收获了很多,我学会了如何通过文字的形式将自己理解的进行输出成一篇篇文章来帮助自己和需要的人,同时,它也无形中帮助了我的工作等等吧。 接下来,你有什么打算,或许说你接下来想要输出什么样的文章,其实,自己没有刻意去想要写技术点,每篇文章出现在你面前之前我都会构思一个自己喜欢的点去写,所以不刻意去写文章。 或许日后更新文章不会那么频繁了

小师妹学JVM之:JIT中的PrintAssembly

北城余情 提交于 2020-11-09 00:59:08
点击 上方的 蓝字 关注我吧 程序那些事 简介 想不想了解JVM最最底层的运行机制?想不想从本质上理解java代码的执行过程?想不想对你的代码进行进一步的优化和性能提升? 如果你的回答是yes。那么这篇文章非常适合你,因为本文将会站在离机器码最近的地方来观看JVM的运行原理:Assembly。 使用PrintAssembly 小师妹:F师兄,上次你给我介绍了java中的字节码,还有JIT中的LogCompilation和PrintCompilation的用法。虽然都非常有用,但是能不能更进一步,让我能以机器的眼光来看待JVM的执行? 小师妹,如果要探究JVM的运行本质,那就应该是机器码了。难道你要去读懂机器码?虽然我不是机器码的专家,但我猜那应该是个非常复杂的过程。 小师妹:F师兄,当然不是机器码,有没有比机器码更高级一点点的,我记得上大学的时候学过汇编语言,好像就是离机器码最近的语言了,JVM有没有相应的汇编语言呢? 必须有的,我们可以使用 -XX :+PrintAssembly 来将assembly打印出来。 但是打印assembly是有条件的,它就像一个高傲的姑娘,不是你想追求就能追求得上的。 我们使用下面的命令来查看系统对PrintAssembly的支持程度: java -XX :+UnlockDiagnosticVMOptions -XX :+PrintAssembly

手把手教你使用Python抓取QQ音乐数据(第三弹)

拥有回忆 提交于 2020-10-30 07:09:00
点击上方“ IT共享之家 ”,进行关注 回复“ 资料 ”可获赠Python学习福利 【一、项目目标】 通过 手把手教你使用Python抓取QQ音乐数据(第一弹) 我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。 通过 手把手教你使用Python抓取QQ音乐数据(第二弹) 我们实现了获取 QQ 音乐指定歌曲的歌词和指定歌曲首页热评。 此次我们在项目(二)的基础上获取更多评论并生成词云图,形成手把手教你使用Python抓取QQ音乐数据(第三弹)。 【二、需要的库】 主要 涉及的库有:requests、json、wordcloud、jieba 如需更换词云图背景图片还需要numpy库和PIL库(pipinstall pillow) 【三、项目实现】 1.首先回顾一下,下面是项目(二)获取指定歌曲首页热评的代码; def get_comment ( i ): url_3 = 'https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg' headers = { 'user-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari

使用代码片段的正确姿势,打造高效的vscode开发环境

霸气de小男生 提交于 2020-10-29 04:53:25
全文3928字,阅读时间 10分钟,未来节约时间 15分钟/每天 代码片段(code snippet) 相信大家都或多或少有接触过。 在完成一个项目以后,往往都会写出许多有价值的代码,或是 绞尽脑汁解决的难题 ,或是 灵光一现的小技巧 ,又或是需要给组里的人 分享经验,分享代码 。 对于我而言,我有时确实会把足够酷炫或者自豪的项目封装成一个包(例如npm或者是nuget等等),但面对粒度再小一点的一个function甚至是一行代码就不太合适了。 我自己遇到困难的几个场景 electron-builder 打包后,为了修改electron国内镜像下载地址,往往会配置vue.config.js。这个地址很长一段时间都不会变,包括这个配置的结构等主要内容其实都不太会变,每次要写的时候都会忘记,在找了好一会之前写的代码后,终于找到了之前的配置文件, 复制-粘贴 我的vue项目中会使用vuetify,而vuetify的各种配置都会写在一起,说复杂也不复杂,但我没有记,每次都是用到的时候打开官网然后, 复制-粘贴 还有一些其他配置文件,例如 axios,echart,signalr等配置文件,大部分情况下都不需要修改,直接, 复制-粘贴 .... 为了能够减少以上重复工作,提高效率,我也尝试过不少办法 制作 项目模板 ,使用vue init 来初始化项目 使用 github gist

一线大厂在用的反爬虫方法,看我如何破了它!

眉间皱痕 提交于 2020-10-28 17:41:34
作者|韦世东 来源|NightTeam 本篇内容摘自出版图书《 Python3 反爬虫原理与绕过实战 》 第 6 章中的第 3 小节 SVG 反爬虫, 本周将给阅读与分享榜单读者赠送此书 。 SVG 映射反爬虫 SVG 是用于描述二维矢量图形的一种图形格式。它基于 XML 描述图形,对图形进行放大或缩小操作都不会影响图形质量。矢量图形的这个特点使得它被广泛应用在 Web 网站中。 接下来我们要了解的反爬虫手段正是利用 SVG 实现的,这种反爬虫手段用矢量图形代替具体的文字,不会影响用户正常阅读,但爬虫程序却无法像读取文字那样获得 SVG 图形中的内容。由于 SVG 中的图形代表的也是一个个文字,所以在使用时必须在后端或前端将真实的文字与对应的 SVG 图形进行映射和替换,这种反爬虫手段被称为 SVG 映射反爬虫。 6.3.1 SVG 映射反爬虫绕过实战 示例 6:SVG 映射反爬虫示例。 网址:http://www.porters.vip/confusion/food.html。 任务:爬取美食商家评价网站页面中的商家联系电话、店铺地址和评分数据,页面内容如图 6-15 所示。 图 6-15 示例 6 页面 在编写 Python 代码之前,我们需要确定目标数据的元素定位。在定位过程中,发现一个与以往不同的现象:有些数字在 HTML 代码中并不存在。例如口味的评分数据,其元素定位如图

使用代码片段的正确姿势,打造高效的vscode开发环境

跟風遠走 提交于 2020-10-22 15:56:16
全文3928字,阅读时间 10分钟,未来节约时间 15分钟/每天 代码片段(code snippet) 相信大家都或多或少有接触过。 在完成一个项目以后,往往都会写出许多有价值的代码,或是绞尽脑汁解决的难题,或是灵光一现的小技巧,又或是需要给组里的人分享经验,分享代码。 对于我而言,我有时确实会把足够酷炫或者自豪的项目封装成一个包(例如npm或者是nuget等等),但面对粒度再小一点的一个function甚至是一行代码就不太合适了。 我自己遇到困难的几个场景 electron-builder 打包后,为了修改electron国内镜像下载地址,往往会配置vue.config.js。这个地址很长一段时间都不会变,包括这个配置的结构等主要内容其实都不太会变,每次要写的时候都会忘记,在找了好一会之前写的代码后,终于找到了之前的配置文件,复制-粘贴 我的vue项目中会使用vuetify,而vuetify的各种配置都会写在一起,说复杂也不复杂,但我没有记,每次都是用到的时候打开官网然后,复制-粘贴 还有一些其他配置文件,例如 axios,echart,signalr等配置文件,大部分情况下都不需要修改,直接,复制-粘贴 .... 为了能够减少以上重复工作,提高效率,我也尝试过不少办法 制作项目模板,使用vue init 来初始化项目 使用 github gist 在vscode 中使用code

Unity采用Forge Networking Remastered数据的远程传输 Basic RPC Example

寵の児 提交于 2020-08-20 02:09:39
目录 Setting up the contract option 1 Extending Generated Classes Code if option 1 was selected Scene Setup Test 关键操作图示 In this example we are going to go over how to use the built in RPC methods inside of Forge Networking Remastered. In this example we are going to make a scene that already has a cube in it, then if anyone presses the up arrow key it will move the cube up, if anyone presses the down arrow key, it will move the cube down. Setting up the contract option 1 In this option, we will create 2 RPC methods with no arguments. One RPC is to move the cube up and the other is to move the

SQL Server 全文搜索/全文索引

隐身守侯 提交于 2020-08-13 19:53:50
概述 全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询。全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中。全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的。生成全文索引的过程不同于生成其他类型的索引。全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒排、堆积且压缩的索引结构。 全文索引是针对数据表,只能对表创建全文索引,不能对数据库创建全文索引。 每个数据库可以不包含全文目录或包含多个全文目录,一个全文目录可以包含多个全文索引,但一个全文索引只能用于构成一个全文目录。 一个数据表只能创建一个全文索引,一个全文索引可以包含多个字段。 创建全文索引的表必须要有一个唯一的非空索引,并且这个唯一的非空的索引只能是一个字段,不能是组合字段。 每个表只允许有一个全文索引。 可以对以下类型的列创建全文索引: char 、 varchar 、 nchar 、 nvarchar 、 text 、 ntext 、 image 、 xml 、 varbinary 和 varbinary(max) ,从而可对这些列进行全文搜索。对数据类型为 varbinary 、 varbinary(max) 、 image 或 xml 的列创建全文索引需要您指定类型列

Asp .Net Core 2.0 登录授权以及多用户登录

喜欢而已 提交于 2020-08-11 07:09:13
原文: Asp .Net Core 2.0 登录授权以及多用户登录 用户登录是一个非常常见的应用场景 .net core 2.0 的登录方式发生了点变化,应该是属于是良性的变化,变得更方便,更容易扩展。 配置 打开项目中的Startup.cs文件,找到 ConfigureServices 方法,我们通常在这个方法里面做依赖注入的相关配置。添加如下代码: public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o => { o.LoginPath = new PathString("/Account/Login"); o.AccessDeniedPath = new PathString("/Error/Forbidden"); }); } 这段代码的大概意思就是,添加授权支持,并添加使用Cookie的方式,配置登录页面和没有权限时的跳转页面。 再找到 Configure 方法,添加 app.UseAuthentication(),使用授权:

动态构建Lambda表达式实现EF动态查询

北城以北 提交于 2020-08-08 18:44:11
在使用Entity Framework做数据查询的时候,查询条件往往不是固定的,需要动态查询。可以通过动态构建Lamda表达式来实现动态查询。 Lamda表达式 使用Lamda表达式可以很方便的按条件过滤数据。Entity Framework也是将Lamda表达式转换成对应的SQL语句执行。 比如下列代码,输出年龄大于1的人的名字: namespace ConsoleApp { public class Person { public string Name { get ; set ; } public int Age { get ; set ; } } class MyDbContext : DbContext { public DbSet<Person> People { get ; set ; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer( " Server=(local);Database=TestDB;User Id=sa;Password=sa; " ); } } class Program { static void Main( string [] args) { MyDbContext