canvas
引言
近期,工作中有一个功能,需要在页面上展示在图片上面绘制区域的功能,在网上找了找,发现了这个canvas。
另外,通过资料的查询,发现这个canvas可以替代flash,常见的flash应用场景可以用canvas配合audio。
canvas特点
无需浏览器安装插件
性能高
使用JavaScript操作Canvas
依赖像素,适合动态渲染和大数据量绘制
更适合移动端
安全性更好
canvas能做什么
游戏,游戏在HTML5领域具有举足轻重的地位。HTML5在基于Web图像显示方面比Flash更加立体、更加精巧,Ohad认为运用Canvas制作的图像能够令HTML5游戏在流畅度和跨平台方面发挥更大的潜力。
图表制作,图表制作时常被人们忽略,但无论企业内部还是企业间交流合作都离不开图表。现在一些开发者使用HTML/CSS完成图表制作,但Ohad认为大家完全可以用Canvas来实现。当然,使用SVG(可缩放矢量图形)来完成图表制作也是非常好的方法。
Banner广告,Flash曾经辉煌的时代,智能手机还未曾出现。现在以及未来的智能机时代,HTML5技术能够在banner广告上发挥巨 ...
群晖nas为PHP配置Redis扩展
首先,介绍下我的环境
机器:群晖920+
PHP版本:7.4(套件安装的)
系统:群晖7.2
接下来,进入正题
首先要使用ssh进入到群晖,账户要切换到root用户
接下来,看下目前PHP7.4有哪些扩展,根据你安装位置的硬盘不同,volume1可能有所区别,命令如下:
ll /volume1/@appstore/PHP7.4/usr/local/lib/php74/modules
从上图中,我发现套件版的PHP7.4默认已经有了Redis扩展,接下来,再看看配置文件中是否配置了Redis,当然我这边是没有配置
打开配置文件php-fpm.ini,我这边喜欢用vi命令,当然也可以使用vim,具体用哪一个看你系统支持已经个人喜好了,下面的volume1一样有区别的自行修改
vi /volume1/@appstore/PHP7.4/misc/php-fpm.ini
将下面的代码放到配置文件php-fpm.ini末尾,然后保存退出
[Redis] ...
P5学习笔记01-Java核心-数据结构
常用的数据结构:
数组
链表
树
数组
特点:
内存地址连续
可以通过下标的成员访问 , 下标访问的性能高
增删操作带来更大的性能消耗 ( 保证数据越界的问题 , 需动态扩容 )
链表
特点:
灵活的空间要求,存储空间不要连续
不支持下标的访问,支持顺序的遍历搜索
针对增删操作找到对应的节点改变链表的头尾指向即可,无需移动元素存储位置
树
包括:
二叉树
红黑树
二叉树
特点:
某节点的左子树节点值仅包含小于该节点值
某节点的右子树节点值仅包含大于该节点值
左右子树也必须是二叉查找树
顺序排列
不平衡二叉树:
查询效率不高
红黑树
是一个自平衡的二叉查找树,树上的每个节点都遵循下面的规则:
每个节点要么是黑色,要么是红色
根节点是黑色
每个叶子节点是黑色
每个红色节点的两个子节点一定是黑色
任意一节点到每个叶子节点的路径都包含数量相同的黑节点
deepin中steam的配置
deepin中steam的配置
本人的deepin系统已经更新到20.9,文章仅供参考,可能会与你的情况有所出入
下载安装
在deepin的应用商店中下载安装steam
中文设置
我这边安装完默认是英文界面,可以依次点击左上角是steam–》settings
在弹出的页面中点击左侧Interface,右侧按照红框内容选择简体中文
然后在点击重启按钮即可
重启后界面已经是中文的啦
兼容大多数的游戏
依次点击左上角的steam–>设置(英文版setting)–>弹出页面的兼容性,将红框的内容都设置完在一起重启,Proton那个下拉框选择最新的就好,我现在是8.0-2最新,也许你的并不一定是。
重启后,你就发现之前不能玩的大多数游戏都可以玩了
浏览器不走代理Proxifier问题解决
环境需要用到代理软件Proxifier,但配好后chrome浏览器访问对应代理的应用却不行,之前还明明可以的,今天就突然不行了,于是乎,我去排查了原因,本篇文章就是我排查的记录吧,最后问题是解决了。每个人的情况不同,可能我的办法不一定适用于你的,因此,本篇文章仅做参考。
确认Proxifier设置
打开Proxifier,选择菜单栏的“Profile” - “Proxification Rules”。
在“Proxification Rules”中,确认走代理的应用程序包含浏览器。如果不包含,可单击右键选择“Edit Selected Rule”,在“Edit Rule”中,设置“Any”为“Applications”后点击OK。
确认系统代理设置
首先,说明一下,本人是Win11的系统,可能会与你的有出入,下面是详细步骤:
点击电脑的开始菜单,打开设置。
点击左侧的“网络和Internet”,再点击右侧的代理。
确认页面中红框的内容全是关闭状态,如果不是,改为关闭状态
使用xlsxwriter和openplxl库操作Excel文件
Excel文件是一种广泛使用的电子表格格式,用于存储和处理各种数据。在Python中,有多个库可以用于处理Excel文件,其中包括xlsxwriter和openplxl两个库。本文将介绍这两个库的使用方法以及如何使用它们来操作Excel文件。
1、xlsxwriter生成Excel文件
xlsxwriter是一个用于生成Excel文件的Python库,支持多种格式的Excel文件(如.xlsx、.xlsm、.xltx、.xltm等),并且支持自定义样式和格式。下面将以一个简单的示例,来逐步介绍如何使用xlsxwriter库创建一个Excel文件并写入数据
1.1、导入库并创建Excel文件
Excel文件名为:xlsxwriter插入数据和折线图.xlsx
import xlsxwriter, random
wb = xlsxwriter.Workbook('xlsxwriter插入数据和折线图.xlsx')
1.2、创建一个sheet页
sheet标签页名字为:sheet1
worksheet1 = wb.add_worksheet('s ...
如何使用Python操作Excel文件?看这篇博客就够了!
前言
如何使用Python操作Excel文件?看这篇博客就够了!
在工作中,我们经常需要处理和分析数据。而Excel作为一种广泛使用的数据分析工具,被很多人所熟知。但是,对于一些非技术背景的用户来说,如何操作Excel却可能有些困难。这时候,Python就成为了一种非常有用的工具。
本文将介绍如何使用Python对Excel文件进行读写操作。首先,我们将介绍Python中可以使用的第三方库xlrd、xlwt和xlutils,并通过示例来展示“如何使用xlwt库来将数据写入到Excel文件中”、“如何使用xlrd库来读取一个Excel文件的数据”和“如何使用三个库的配合来进行一边读取一边写入的操作”。
通过本文的介绍,你将会了解到:
如何获取单元格的值;
如何遍历整个工作表;
如何创建新的工作表和单元格,并将数据写入到单元格中;
如何使用save()方法保存Excel文件到磁盘上。
如果你想学习如何使用Python操作Excel文件,那么这篇文章就是为你准备的。希望它能帮助你更好地理解和应用这个工具。
1、写入Excel文件
首先来学习下,随机生成数据,写入一个Excel文件并保存, ...
从前端到后端:如何在 URL 参数中传递 JSON 数据
引言
在 Web 开发中,我们经常需要将数据作为 URL 参数进行传递。当我们需要传递复杂的数据结构时,如何在前端将其转换为字符串,并在后端正确地解析它呢?本文将介绍如何在前端将 JSON 数据进行 URL 编码,并在后端将其解析为相应的数据类型,同时提供 Java 语言的示例代码。
在前端使用 URL 参数传递 JSON 数据
有时候我们需要在前端将 JSON 数据传递给后端,例如通过 AJAX 请求或者页面跳转。URL 参数是一种常见的传递数据的方式,但是由于 URL 参数只支持字符串类型的数据,而 JSON 数据是一种复杂的数据类型,因此需要进行编码和解码操作。
在 JavaScript 中,我们可以使用 JSON.stringify() 方法将 JSON 对象转换为字符串,然后使用 encodeURIComponent() 方法对字符串进行 URL 编码。以下是一个将 JSON 数据作为 URL 参数发送 AJAX 请求的示例:
const data = { name: 'John', age: 30 };
const encode ...
选择哪种Web服务器?WebLogic vs Undertow vs Tomcat vs Nginx对比分析!
前言
WebLogic、Undertow、Tomcat和Nginx是常用的Web服务器和应用程序服务器。它们具有不同的功能、应用场景、优缺点等方面的特点,本文将对它们进行详细的比较。
功能比较
WebLogic是一个完整的JavaEE应用程序服务器,它具有强大的功能和灵活的配置。WebLogic支持分布式应用程序部署、负载均衡、高可用性、安全性等特性,适用于大型企业级Java应用程序。
Undertow是一个轻量级的Web服务器和应用程序服务器,它具有高性能和可扩展性的特点。Undertow支持HTTP、HTTPS、AJAX、WebSockets等协议,适用于构建高性能、低延迟的Web应用程序。
Tomcat是一个轻量级的Web服务器和应用程序服务器,它具有简单易用的特点。Tomcat支持Servlet、JSP等Java Web开发技术,适用于中小型Web应用程序。
Nginx是一个高性能的Web服务器和反向代理服务器,它具有高并发能力、低延迟和高可靠性的特点。Nginx支持负载均衡、反向代理、HTTP缓存等特性,适用于构建高性能、高并发、低延迟的Web应用程序。
应用场景比较
Web ...
Firewall vs iptables:什么是最好的Linux防火墙工具?
前言
作为一名Linux管理员,保护服务器免受网络攻击是最重要的任务之一。Linux操作系统提供了许多防火墙工具,其中最常用的是iptables和Firewall。本文将比较Firewall和iptables之间的不同之处,并探讨哪个防火墙工具更适合您的需求。
Firewall和iptables是什么?
iptables是一个Linux防火墙工具,它通过对网络数据包进行过滤和修改来控制网络访问。Firewall是新一代的Linux动态防火墙,它基于D-Bus消息系统,采用了Zone和Service的概念来管理网络访问。
iptables使用命令
查看当前的iptables规则:iptables -L
清除当前的iptables规则:iptables -F
允许指定端口的流量通过:iptables -A INPUT -p tcp --dport [端口号] -j ACCEPT
阻止指定端口的流量通过:iptables -A INPUT -p tcp --dport [端口号] -j DROP
允许某个IP地址的流量通过:iptables -A INPUT -s [IP地址] -j AC ...
Nacos:1.0 vs. 2.0,你需要选择哪个版本来管理你的微服务?
引言
Nacos是一个开源的分布式配置中心和服务发现平台,它可以帮助开发者轻松管理微服务架构中的配置和服务注册。在Nacos的不断发展中,1.0版本和2.0版本都是非常重要的版本,本篇博客将对这两个版本进行介绍和比较。
一、Nacos 1.0版本
Nacos 1.0版本于2019年3月发布,它是Nacos的第一个正式版本,也是经过多次测试和优化后的稳定版本。相较于之前的beta版本,Nacos 1.0版本有了很大的改进和优化,主要包括以下几个方面:
1. 功能完善
Nacos 1.0版本在功能上相对完善,包括了配置中心、服务注册与发现、命名空间、健康检查等核心功能。此外,Nacos 1.0版本还增加了可插拔的扩展能力,可以方便地扩展各种插件,例如自定义的服务发现协议。
2. 性能提升
Nacos 1.0版本在性能上也有很大的提升,通过优化网络通信协议和数据存储方式,大大提高了系统的并发处理能力和吞吐量,可以满足更高的性能需求。
3. 稳定性改进
Nacos 1.0版本在稳定性方面也进行了不少改进,通过增加监控和自动修复机制,可以更快地检测和修复系统故障,从而提高了系统的稳定性和可靠性。 ...
当数据遇上响应式编程:Java应用中如何使用R2DBC访问关系型数据库?
在当今的大数据时代,关系型数据库仍然是最常用的数据存储方式之一。Java是一种广泛使用的编程语言,也是访问关系型数据库的主要语言之一。在Java应用程序中,通常使用JDBC(Java Database Connectivity)API来访问数据库。但是,JDBC使用的同步/阻塞模型在处理高并发和大数据量的情况下可能会成为瓶颈,因此R2DBC(Reactive Relational Database Connectivity)在此时显得更加合适。
R2DBC是Java应用程序访问关系型数据库的一种新方式,它采用了响应式编程的思想,提供了异步、非阻塞的API,能够提高Java应用程序在高并发场景下的性能和可伸缩性。
在本文中,我们将介绍R2DBC的基本概念和原理,并提供一些使用R2DBC的示例。
R2DBC的基本概念和原理
R2DBC(Reactive Relational Database Connectivity)是一种基于异步、响应式编程模型的标准化关系型数据库连接API。R2DBC允许您使用响应式编程模型访问关系型数据库,这种编程模型通常用于处理大量并发请求、高吞吐量和低延迟场景。 ...
当分布式遇上一致性:Raft、SofaJRaft和Distro协议大比拼
前言
今天,我学习nacos的源码,看到了distro协议,于是本篇博客就由此而来了,通过网上查找的资料我大体整理了下,下面是整理后的结果。
引言
分布式系统是由多个计算机节点组成的系统,这些节点通过网络相互连接,并协同工作来实现一个共同的目标。在分布式系统中,数据的一致性是一个非常重要的问题。分布式一致性算法可以帮助我们解决这个问题。本文将介绍三种分布式一致性算法:distro协议、sofajraft协议、raft协议,并讨论它们的适用场景和特点。
Raft协议
Raft是一种分布式一致性算法,由Stanford大学的Diego Ongaro和John Ousterhout于2013年提出。Raft算法的主要目标是提供一种易于理解和实现的分布式一致性算法。Raft算法具有良好的可读性和易于理解的特点,使得它容易被人们理解和实现。Raft算法通过领导选举、日志复制、一致性检查点等基础功能,保证了分布式系统中数据的一致性。
SofaJRaft协议
SofaJRaft是一种基于Raft协议的改进版本。SofaJRaft在Raft协议的基础上增加了一些特性,例如动态配置、快照等,以适应更加复 ...
详细的Python Flask的操作
本篇文章是Python Flask 建站框架入门课程_编程实战微课_w3cschool微课的学习笔记,根据课程整理而来,本人使用版本如下:
Python
3.10.0
Flask
2.2.2
简介
Flask是一个轻量级的可定制的web框架
Flask 可以很好地结合MVC模式进行开发
Flask还有很强的很强的扩展性和兼容性
核心函数库
Flask主要包括Werkzeug和Jinja2两个核心函数库,它们分别负责业务处理和安全方面的功能,这些基础函数为web项目开发过程提供了丰富的基础组件。
Werkzeug
Werkzeug库十分强大,功能比较完善,支持URL路由请求集成,一次可以响应多个用户的访问请求;
支持Cookie和会话管理,通过身份缓存数据建立长久连接关系,并提高用户访问速度;支持交互式Javascript调试,提高用户体验;
可以处理HTTP基本事务,快速响应客户端推送过来的访问请求。
Jinja2
Jinja2库支持自动HTML转移功能,能够很好控制外部黑客的脚本攻击;
系统运行速度很快,页面加载过程会将源码进行编译形成python ...