https://media.tidechoir.cn/image/avatar.jpg

消失在彩霞里的Blog

部署技巧——内网穿透

内网穿透 ngrok快速穿透 优点:简单,新手上手很快。 缺点:依赖别人的服务器,每次生成的url不同。 frp自由配置 frp可快速实现端口代理,可将本地和服务器、服务器之间端口转发。 下载对应的frp版本,windows或linux版。 配置文件 frp的目录如下 -frp -frpc -frps -frpc.ini -frpc.toml -frps.toml s代表服务端,也就是提供端口服务的主机,c代表客户端,也就是需要转发的主机 下面以frpc.ini为例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [common] server_addr = xx.xx.xx.xx server_port = bind_port [ssh] ;配置ssh端口,用于在其他服务器上访问该服务器 type = tcp local_port = xxx ;本机端口 local_ip = 127.0.0.1 remote_port = xxx ;远程端口 [http] ;配置http type = tcp local_port = xxx ;本机端口 local_ip = 127.0.0.1 remote_port = xxx ;远程端口 frps.

爬虫技巧

爬虫技巧 抓包 F12查看网络请求,复制cURL(Bash) 点击爬虫代码生成器,生成多种变成语言爬虫代码 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 headers = { 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42', } params = { 'tn': 'resultjson_com', 'word': query, 'pn': pageNum } response = requests.get('https://image.baidu.com/search/acjson', params=params, headers=headers).json() info = response['data'] parsed_info = parse_info(info) for url in parsed_info: save_image(url['url']) Bs解析 直接requests.

后端杂谈(二)

Java开发 上期我们主要讲述了后端springboot开发规范和一些基本配置,现在阐述一些常用技巧。 如发邮件、微信配置等,这些都十分简单但易忘,故集中整理。 微信接口集成 调用微信官方api即可。 核心要素为api_key和api_secret,配置在yaml中。 accessToken的获取 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public static String getAccessToken() throws Exception{ HttpClient httpClient = new HttpClient(); String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; GetMethod getMethod = new GetMethod(url); getMethod.addRequestHeader("accept", "*/*"); //设置Content-Type,此处根据实际情况确定 getMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded"); String result = ""; try { int statusCode = httpClient.

后端杂谈(一)

Java开发 开发规范 使用dto封装类实现数据传输,少用Map。 使用@RequestBody和@RequestParam接收请求参数。 接口类型一般为GET、POST、DELETE。 统一使用{“code”: “”, “msg”: “”, data: “"} 的规范返回数据。其中200代表正常,500代表错误。 统一使用全局异常处理,少用try catch,保证代码简洁性。 数据具有关联性时,使用逻辑删除代替物理删除。 统一使用jwt token,从中读取用户信息。防止平行越权漏洞。 加入必要的注释,便于多人合作。 开发者更新后上传jar包至服务器,同时将最新代码commit到github上。 变量名统一小驼峰,类名大驼峰 全局异常处理 GlobalExceptionHandler SSL的配置 笔者在之前的博客中阐述了nginx部署ssl证书的方式。与此同时,后端也务必加上ssl证书。因为微信小程序等平台校验域名合法性。 与之前稍有不同的是,springboot部署ssl证书要求的是jks格式证书。可采用线上工具将证书合成为jks。 配置过程非常简单,简述如下。 application.yaml 1 2 3 4 5 6 7 server:port:8083# 示例ssl:enabled:truekey-store:classpath:ssl/api.xxx.cn.jkskey-store-password:passwordkey-store-type:JKS HttpsConfig.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 @Configuration public class HttpsConfig { @Value("${custom.

前端杂谈

前端杂谈(一) 前端项目集锦 原生 叮当葫芦-认知障碍数据分析平台 “认知障碍数据分析平台” Jquery Vue vue-element-admin “水果电商后台服务端” uniapp React “智问领航” ant-design-pro 函数封装思维 API接口封装 封装request.js用于ajax请求 利用Promise的特性,封装axios、ajax、uni.request、taro.request等等 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 export const request = ({ url, method, data, headers }) => { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); // 如果是 GET 请求,将 data 转为查询参数 if (method.

面试经验

简历面试 绩点 本科最擅长什么科目,最不擅长什么科目? xxx课为什么分数不高? 项目经历 服务外包大赛中,你作为队长在合作过程中有没有困难,如何解决? 国家级大创项目做了什么?现在处于什么阶段?你将负责什么? 项目有没有正式上线? 科研经历 这篇论文主要的创新点是什么?为什么会想到这个idea?你参与的工作是什么? 为什么会写这篇论文?论文的形成过程有没有老师的指导? 你什么时候开始参与科研?为什么只发表了CCF C论文?这篇完成用了多久? 为什么用GAT传播,GAT和GCN有什么区别? 冷启动问题 你为什么选择了这个方向?有何研究价值? 专业技能考察 pytorch中如何实现维度改变?如何互换维度? 如何实现学习率调度器 batch_size的作用是什么?请讲出两类分批方法 滑动窗口法、分段法 num_workers的作用是什么? 用于指定在加载数据时要使用的子进程(worker)数量。它的主要作用是通过多线程或多进程来并行化数据加载,从而提升训练效率,尤其是在处理大型数据集时。 如何在 PyTorch 中实现模型的梯度累积?这种方法适用于什么场景? 时间序列预测中能否使用交叉验证划分训练集和测试集? 不能。时间序列具有时序依赖,如果交替划分,没有意义。一般把前面的作为训练集,后面的为测试集 是否了解RAG框架?讲一下RAG和微调的区别,和各自的优势。 专业课知识 算法题 其他 本科期间你是如何平衡学业、学生工作和竞赛科研? 作为一名双非学生,你认为自己有什么特点? 你认为自己有什么缺点? 你为什么会选择直博?未来有何职业规划?