电子书epub原理剖析 EPUB是一种电子书格式规范,其文件扩展名为“.epub”。epub遵从xml的文件书写格式,几乎可以适配所有的硬件电子书阅读器。epub文件也可以作为一个zip压缩包来处理,以下是解压后的目录结构。 .epub123456789101112131415--ZIP Container--mimetypeMETA-INF/ container.xmlOEBPS/ content.opf cha 2023-03-19 技术笔记 #epub
迁移docker生产环境 镜像迁移1,本地创建好image, 将image打包 1docker save -o images.tar image1:1.0.0 image2:1.2.0 ... 2,将打包好的压缩文件上传到服务器,并在服务器端load1docker load < images.tar3,将docker-compose.yml和.env文件上传到服务器,并启动服务1docker-compose up注意 2022-11-12 技术笔记 #docker, migration
字符串查找 在编写代码时,我们时常会遇到字符串的相关操作,而字符串查找更是屡见不鲜。如图1所示查找W在S中的位置,假设我们只返回第一次匹配成功的索引值。 普通方法普通做法是一一比较,若遇到字符不一致时,指针i回到起始匹配字符的下一个字符,而指针j则回到起始位,即i=i-j+1, j=0。如此操作直到匹配成功或遍历完字符串。如图2所示 KMP算法一种比较高效的字符串匹配算法KMP,全称Knuth-Morris- 2022-10-09 算法 #算法 #algorithm #kmp #字符串
大数运算 -- 乘法 异想时刻在做数字运算的时候,常常会遇到结果溢出的情形,也就是超出了整型所能表达的最大数字。此时便不能通过整型去表达数字了,需要以字符串的形式来存储和计算数字。以下记录下几种大数乘法的运算方法以便后续应用。 普通算法采用按位相乘错位相加的方式计算结果。若针对两个n位数的整数,其时间复杂度为 O(n_2) 。以56*34为例。 123456789 5 2022-07-24 算法 #算法,大数乘法,big number multiplication #karatsuba #Schönhage–Strassen
AWS HTTPS设定 网络安全一直是一个备受关注的问题。如今,站点部署基本都要考虑使用http协议的安全版本https。市面上已经有很多免费的证书生成工具,比如letsencrypt,配合nginx可以很容易完成部署。当然,类似亚马逊这样的云服务商也都提供了相关功能以方面用户使用。 Load balancer添加load balancer的时候,选择application即可。classic版本貌似没法将http重定向 2022-07-14 技术笔记 #aws #https
矩阵分解 -- LU 应用场景LU分解可用于求解线性方程组和行列式,以及逆矩阵。 条件若矩阵A为方阵( n\times n )且可逆(行列式不为0, det(A)\neq 0 ),则可以分解为下三角矩阵L和上三角矩阵U A=LU 分解公式上三角矩阵U 12for i -> 0:nRow-1 for 2022-07-13 算法 #matrix fractorization #LU #矩阵分解 #线性代数
Django object-based permisson Fanciful momentAccording to the real needs, django model-based permission is not enough. So we need to focus on the object level. How could we do? Here is the solution. Object-based permissionThe djan 2022-07-12 django #python #permission #django #django-guardian
Different permissions for different actions with django-rest-framework Fanciful momentThe property permission_classes of an viewset controls the permission of all actions, which means all actions have same permissions. Sometimes we want to give a different permission to 2022-07-12 django #python #django-rest-framework #permission
Optional tailing slash with Django Fanciful MomentThe default urls of Django must include a tailing slash, otherwise, the framework will not recognize the url. But according to the user’s preference, the tailing slash will not be given 2022-07-12 django #python #django #url-tailing-slash
React键盘事件监听 异想时刻最近做的两个项目,相当一部分时间用在了前端编码上。在做搜索框测试时,每次输入完文本后就会下意识地按一下Enter键,然后发现没有反应,又不得不使用鼠标点击。着实懒癌发作,连手离键盘这个动作都不想做了。于是乎心生一念,赶紧给按钮添加个键盘监听事件。 处理思路其实,加个监听事件也没啥复杂的,只需要在组件相应周期装载和卸载事件即可。 Reactjs示例代码12345678910111213141 2022-03-04 技术笔记 #React #keyboard-event-listener #键盘事件监听