自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 Actix-Web构建一个简单的HTTP服务器

Actix框架是目前性能上数一数二的rust的web框架,它的性能远超gin,spring等目前流行的框架。仅仅是返回hello,wold,我发现actix的性能就已经是gin的3倍。但是使用actix-web的缺点也非常明显,就是写出正确的代码并不简单,rust的语法复杂,编译器非常严格。...

2022-04-08 12:16:30 5104 1

原创 记一次对易班前端解密的经过

受到了来自HACK学习的一篇博客的启发,同时也得益于Chrome强大的调试功能和南师易班拙劣的技术。

2022-03-13 19:39:18 4020 2

原创 Kotlin改善java swing使用体验

kotlin完全兼容java,而且表达能力比java强很多,我今天尝试了使用kotlin编写java swing,可以使用kotlin将其包装为声明式UI,这将大大改善原生java swing的使用体验.将GridBagConstraint改造为GBC,可以链式调用,详细内容见https://editor.csdn.net/md/?articleId=108300061接着对原来的JFrame,JButton做一些扩展函数import java.awt.BorderLayoutimport java

2022-03-02 17:50:39 2477

原创 创建一个可以复制百度文库的Chrome插件

具体如何编写Chrome扩展,可以查看Google提供的API文档。本次我打算编写一个简易版本,右键提供一个上下文菜单,复制文本。一些文本屏蔽的内容较少,也有方法查看。如下图所示。准备图标新建文件夹CopyText,这将是我们的插件目录。前往iconfont选择一个合适的图标,尺寸准备16,32,48,64,128想要获得代码提示,需要在WebStorm中导入库。点击download,找到chrome现在,你就可以获得代码提示功能。编写清单文件(manifest.json){

2022-02-26 14:35:03 2158 1

原创 尝试Compose for Desktop UI Framework

Compose for Desktop UI Framework是Jetbrains提供的用构建界面的工具集,使用kotlin编写。使用起来很爽的,可以考虑作为swing的替代品。

2022-02-10 17:59:06 1847

原创 Scriptable入门——创建知乎热榜的小组件

最近笔者被IOS上的一个软件迷上了,那就是Scriptable.这款软件提供了一些易用的API,使用户可以使用Javascript快捷的构建自定义的小组件。Scriptable可以做什么根据笔者观察,Scriptable主要有两个用途:使用小组件API构建优美的小组件。笔者抱怨快捷指令稀少的API,不能使用JS脚本来进行数据的处理。这在处理字符串的时候十分明显。Scriptable可以执行行内脚本,而无需打开APP,这一点将大大提高快捷指令的可玩性。准备工作首先获取知乎热榜的API,这一

2021-10-07 20:40:38 13425 11

原创 Rust编写文件和文件夹删除的命令行工具

首先允许使用通配符,需要判断文件名是否符合通配符fn match_filename(filename: &str, pattern: &str) -> bool { // Rust访问字符是比较繁琐的,通过字符串切片访问是不能够获得正确的字符的;这里我选择通过chars()方法 let f_chars: Vec<char> = filename.chars().collect(); let p_chars: Vec<c

2021-09-23 11:41:09 904

原创 Rust编写命令行解压工具

windows11虽然自带了unzip工具,但是使用起来还是很不舒服,于是决定自己一个解压的命令行程序命令行解析的包使用clap解压所用的库为zip解压函数为use std::path::Path;use std::fs;use std::option::Option::Some;use std::io;// zip_file是文件的路径,target是目标文件夹的路径pub fn extra(zip_file: &Path, target: &Path) { .

2021-09-22 20:09:23 840

原创 易班打卡——自动填写健康日报

使用Python提交日报日报

2021-08-27 09:51:19 4464 10

转载 理解 JavaScript 函数调用和“this”

理解 JavaScript 函数调用和“this”耶胡达·卡茨|2011 年 8 月 10 日| 5 分钟阅读多年来,我看到了很多关于 JavaScript 函数调用的困惑。特别是,很多人抱怨thisin 函数调用的语义令人困惑。在我看来,通过理解核心函数调用原语,然后将所有其他调用函数的方法视为该原语之上的糖,可以消除很多这种混淆。事实上,这正是 ECMAScript 规范的想法。在某些方面,这篇文章是对规范的简化,但基本思想是相同的。核心原语首先,让我们看看核心函数调用原语,一个函数的cal

2021-08-17 11:15:51 86

原创 校园网自动登陆(南京师范大学,迅捷网络)

学校的校园网每次隔一段时间需要手动登陆,十分繁琐,为了解决这个问题,我决定研究一下校园网的登陆过程,然后实现校园网的登陆。整个过程比较容易,需要使用Fiddler抓包。我们学校使用迅捷网络。过程如下:当你未登陆时,当任意打开一个网址,服务器会返回一段js代码,将你重定向到认证界面。<script>document.location.href='http://*******'</script>经过对登陆过程的抓包,发现发送密码过程也没有加密。其他的参数,service.

2021-05-08 08:42:14 1494 2

原创 一道水群中问题的解答(最短路径问题)

在QQ水群中传来这样一个问题这是一道最短路径的问题,我打算采用弗洛伊德算法,寻找起始点到每一个点的最短路径及对应的最小过路费。package com.stack.dfs;import java.util.Arrays;import java.util.Scanner;public class Path { public static void main(String[] args) { int N, M, S, D; Scanner scanne

2021-05-05 21:47:17 99

原创 八皇后问题的解决

八皇后问题八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当n = 1或n ≥ 4时问题有解。这是栈的一个典型应用。我们先将皇后放在(0,0)点的位置,然后在第二行依次试探,依次进行,如果在某一行没有位置了,弹出前一行,将x的位置加1,再进行试探。...

2021-05-04 22:49:28 423

原创 Go的GUI库Walk——布局

go 的gui库比较多,但许多缺乏官方文档,学习起来有一定的困难。经过再三考虑,本人选择了其中的walk库进行学习,这个库只能运行在windows平台上。walk库的语法风格像JavaScript,可以快速构建gui程序,同时界面也美观。本人学习是通过github上给的例子。按照一般gui库的学习思路进行整理。创建基本的窗口可以在GitHub上找到例子...

2021-03-22 00:45:03 3422

原创 kotlin爬虫——利用lambda减少代码重用

kotlin爬虫——利用lambda减少代码重用kotlin中很多的语句结构都是表达式,比如try{ … }catch(){ … }、if … else …在书写上比Java简单许多。Java的句法较为啰嗦,在制作爬虫程序时远不如Python和nodejs简单。在爬虫程序中,nodejs和Python有健全的库,如node的puppeteer模块,可以爬取动态网页。相比之下,Java就显得十分费力。kotlin吸收的许多语言的语法糖,而kotlin的lambda表达式有点类似Js的回调函数,使得写法上比

2021-01-09 17:05:47 912

原创 Java/Kotlin实现对成员变量的监听

一般的做法如下:1.创建一个类PropertyChangeAware,,在其中创建成员变量changeSupport并初始化这个成员变量,它可以记录下其他类成员变量的变化2.将需要监听的类继承于PropertyChangeAware,这样这个类就含有的这个changeSupport3.写成员变量的set方法,将值的变化记录在changeSupoort中。3.对需要监听类添加监听器,实际在向changeSupoort添加监听器,并且实现propertyChange方法。这样每当成员变量调用set方法时

2020-11-30 17:19:31 1895 1

原创 Matplotlib绘制条形图和误差折线图

Matplotlib的绘图功能文章目录Matplotlib的绘图功能1.条形图绘制其他样式的柱形图水平的条形图2.误差线坐标轴参数plot方法errorbar方法3.文字注释text方法figtext方法annotate方法1.条形图import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar(range(len(data)), data)plt.show()bar(left, height, width=0.8, b

2020-11-18 00:13:18 4228

原创 你好,世界

我收集的各种语言版本的HelloWorld程序,快来康康你最爱哪一个?B语言main(){ extrn a, b, c; putchar(a); putchar(b); putchar(c); putchar('!*n');}a 'hell'b 'o, w'c 'orld';C语言#include <stdio.h>int main(void){ printf("Hello, world!\n"); return 0;}C++#includ

2020-10-25 00:10:09 269 3

原创 C++容器的泛型算法总结

C++泛型算法1.概述泛型算法位于algorithm,numeric等头部文件内只读算法:accumulate(beg,end,start)count(beg,end,n)vector<int> ve{1,2,3,4,4,5,6,43,2,1,23,4}; auto beg=ve.cbegin(); auto end=ve.cend(); int sum=accumulate(beg,end,0); cout<<sum<<end

2020-10-20 12:37:19 291

原创 Chrome扩展中的界面

图标弹窗(popup)注册:在清单文件的浏览器行为(browser_action),添加默认弹窗(default_popup) { "name": "My Extension", "version": "2.1", "description": "Gets information from Google.", "icons": { "128": "icon_16.png", "128": "icon_32.png", "128"

2020-10-05 11:53:41 885

原创 Makdown编辑器——Typora使用说明

Typora编辑器支持Markdown语法,还支持少量html语法。如果会使用mermaid,flow,还可以用它来画流程图,时序图众所周知,CSDN的博客就是有Markdown语法写的,希望这篇文章可以让你写博客时应用自如,写出更加美观的博客标题可以这么来写这是一个二级标题也可以这么来写我是一级标题格式:标题在下面加上这两横线===============(这是一级标题)-------------------------(这是二级标题)或者是使用####,一个#代表一级标.

2020-10-03 14:04:54 341

原创 一个极其简单的Chrome Extension

chrome的插件可以说是chrome的灵魂,它极大的拓展了chrome的功能。基于拓展,可以过滤广告,可以美化页面。chrome的插件开发过程类似于Android,在清单(manifest.json)注册界面(html),并使用JS实现功能。苦于找不到素材,正好知乎把我禁言了,OK,素材来了。学习Chrome插件的全部内容,访问https://developer.chrome.com/extensions/我们使用Extension将知乎的恶心提示删除。效果如下首先需要创建清单(manifes

2020-09-22 19:11:06 243

原创 使用Jsoup包抓取豆瓣Top250电影信息

Java制作爬虫程序主要用到的网页解析工具Jsoup,而在Python使用的是漂亮汤,Jsoup能向JS和JQuery一样获取网页文件的模型(dom),是解析网页文件的有力工具,使用方法见:Jsoup详解(一)——Jsoup详解Jsoup的使用方法和JS基本相同,进入豆瓣Top250界面:找到链接地址:String[] url=new String[25]; //进入Top250的界面,抓取单个电影的网址 Document document=Jsoup.connect("https://m

2020-09-12 15:24:23 659

原创 【Java】高级Swing——JTable

相比JList,JTable显然要复杂很多。JTabel同样继承了java一贯的设计风格,将数据模型与表格的绘制分离。即有默认的样式,也提供了很多接口。这不仅使Java的表格设计思路清晰,而且几乎所有的个性化需要也可以得到满足。缺点是:Java库中封装了过多的方法,为了使其尽可能通俗易懂,方法名和常量名非常长,这让Java代码看起来十分啰嗦,并不优美。但这在强大的IDE中可以用代码提示功能解决。1.根据构造放发创建JTabel;可以传表的内容(二位数组),和表头(一维数组)下面是我校的小图丁志愿者录取

2020-09-04 20:31:54 356

原创 猴子选大王问题(约瑟夫问题)的数学和代码解决

n个猴子围成一圈,从编号为k的开始报数1-2-m-1-2-m-……报“m”的猴子就被淘汰,游戏一直进行到圈内只剩一只猴子它就是猴大王了。想了很长时间不会,问了@Spider-gty,得知用两个一维数组模拟圈可以解决,下面是代码:class MonkeyProblem { public static void main(String[] args) { int k=17; int[] last=new int[k+1]; int[] next=new int[k+1]; last[

2020-09-02 20:43:29 1057 2

原创 【爬虫基础】java用正则表达式处提取网页信息

在网络爬虫这一方面,java并不如Python好用。本文只用正则表达式提取信息,如果想要更精确地从html文件中提取信息,必须使用网页地解析器。可以通过第三方库,比如Jsoup等。我们提取出豆瓣的Top250电影名没由网页解析器,这是一件比较困难的事情。我们首先获得网页。JDK9开始新增的net.http包,这比原来的方式要简单许多package newHTTP;import java.io.IOException;import java.net.URI;import java.net.URLE

2020-08-31 23:11:44 930

原创 【Java】高级Swing——JList

Java中广泛采用一种接口式的设计,这使得Java的Swing组件的表现上十分灵活。Jlist究竟是如何设计的呢?事实上:Jlist把图形和数据进行的分离。JList中可以T可以是字符串数组。String[] text={A,B,C,D};JList<String> list=new JList<String>(text);如想要自由地添加列表元素,可以获得一个DefaultListModel,它实现了ListModel接口DefaultListModel<Stri

2020-08-30 00:33:14 1189

原创 【Java Swing】Java复杂的布局管理——网格组布局(GridBagLayout)

网格组布局是Java较为复杂的布局,虽然这又背于Java简单的初衷。网格组布局十分优雅,组件可以随着窗口的调整自动放大或缩小。要有效地使用网格组布局,必须自定义GridBagConstraints与其组件关联的一个或多个对象。您可以GridBagConstraints 通过设置一个或多个实例变量来自定义对象:GridBagConstraints.gridx, GridBagConstraints.gridy每个格子都有自己的单元格坐标(gridx,gridy),并不以长度为单位,左上角的原点单元格,

2020-08-29 22:06:31 1067

原创 简单的AIO通讯模式

相比于BIO(堵塞的IO,B是Blocking的意思),NIO(同步非堵塞IO)和AIO(异步非阻塞IO)的性能要比其高很多。异步通讯不以反复轮询为方式,主程序不会阻塞在死循环内,而是会继续的执行下去。如果收到消息,会自动调用回调函数,完成指定的操作。而NIO和AIO的复杂性显然大于BIO前几天笔者写了一个NIO的通讯窗口,本次写一个AIO的窗口。主要用到AsynchronousServerSocketChannel、AsynchronousSocketChannel。向server.accept方法中

2020-08-27 18:38:51 469

原创 Java正则表达式在流中的使用

正则表达式在匹配所需要的字符时往往十分简单方便,如果使用卡但可以省去许多代码。本篇覆盖绝大多数正则表达式的内容,讲述其基本用法和处理流时的用法。下面给出几张表格,全面列出了正则表达式的内容。选自《Java核心技术》。补充说明:预搜索预搜索(位置断言)可以筛出符合位置的字符串下面给几个例子材料是大学英语三第一单元:判断是为给定模式,一般采用下面方法。Pattern pattern=Pattern.compile("\b[a-z]+\b"); return pattern.matche

2020-08-22 23:35:23 737

原创 简单NIO通讯模式的实现

NIO通讯模式的简单实现为了简化过程,在写服务器时,只能读取信息;在写客户端时,只能发送信息。当局域网下双方连接上了对方的端口,即可实现双向通信。基于Selector这个选择器,在单线程下也可以实现多方通信。主要需要:SeverSocketChannel,SocketChannel,Selector,SelectionKey代码如下:`package Message1;import java.util.;import javax.swing.;import java.awt.*;import

2020-08-22 17:35:58 248

原创 Java绘制笛卡尔心形线

Java 实现笛卡尔心形线的绘画利用心形线的参数方程描点即可,Java中没有点,可以用半径很小的圆代替,使用Thread.sleep方法,即可做到每画一次点休眠一次。代码也是比较简单,如下:import java.awt.*;import javax.swing.*;class HeartLine extends JFrame{ public static void main(String[] args) { HeartLine frame=new HeartLine("HeartL

2020-08-19 20:10:44 1650

vscode-go-tools.tar.gz

Linux的vscode的go插件工具,放在GOPATH/bin下,即可

2021-08-21

go语言VSCode插件.zip

VSCode的go语言插件,提供检查,代码提示功能,有谷歌官方开发

2021-02-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除