全文搜索引擎有许多,其中最出名的是elasticsearch,无论是性能还是体验都是最顶尖的,但是对小应用来不友好,因为小应用的硬件资源比较少,所以能够通过库/模块的方式内置在应用中会是比较好的选择,就像sqlite3一样。鉴于此,本文选择bluge,一个go语言的全文搜索库bluge还有一个历史版本bleve,如果搜索bluge相关问题找不到的话,可以搜索bleve,不过两者的接口还是会有些不同
无论什么项目只要涉及到多个用户的操作都会开始考虑权限控制,权限管理是一个很常见部分,所以出现了单独处理这个部分的开源项目,即本文要介绍的casbin项目。casbin支持很多的编程语言,本文选择golang作为使用语言。认证还是授权?在大型项目中认证(Authentication)和授权(Authorization)一般是分开的,前者用于甄别用户是谁,而后者用于判断用户有什么权限,授权不管认证,认
创建SSL证书是一个很无聊的过程,偏偏有时候它又很重要,但是无聊的事情实在让人乏味,以后一定会忘记,那就写一篇比较完全的文章留作以后复制粘贴吧。虽然TLS跟SSL不是同一个东西,但是就当下的语境而言,两者基本没有什么区别。CA证书为了保证数据的完整性,加密性,所以设计了对称加密,对称加密虽然可以加密,但是密钥泄露了就全部暴露了,并且还要保证这个密钥的传输是可靠的,怎么保证密钥的传输是可靠呢?再次生
如果你对自己的DNS有更高的要求那么你或许可以打造一个专属于自己的DNS,并且利用这个DNS做一些反广告的操作,又因为这个DNS是用的DNSOverTLS(DOT)协议,所以可以反毒化,因为TLS的加密特性可以防止数据在传输过程中被篡改.打造自己的DNS有两种办法,一是做一个公网可访问的DNS服务器,二是仅局域网可访问的DNS服务器。第一种方法需要一个域名,一个公网云主机。第二种方法需要一个本地的
本文实现的apix网关代码结构基本上是借鉴了APISIX的源代码,可以看做APISIX的一个极度缩减版本。本文的实现只依赖openresty镜像已有的库,不依赖额外的库,所以路由的实现非常简陋,也没有实现路由的持久化,但是大致实现了动态路由更新和转发,插件机制。如果你认真计算代码行数之后会发现代码行数超过了500行,但是笔者认为去掉注释,以及将一些代码压缩之后是可以降到500行以内的,之所以取这个
如果你厌倦了那些老古董的DNS服务,那么可以试试Coredns,因为Caddy出色的插件设计,所以Coredns的骨架基于caddy构建,也就继承了良好的扩展性,又因为Go语言是一门开发效率比较高的语言,所以开发一个自定义的插件是比较简单的事情,但是大多数使用都不需要自己编写插件,因为默认的插件以及外部的插件足够大多数场景了。本文主要分为四个部分源码阅读自定义插件编写一些非常有用的工具函数源码阅读
apisix主要是lua脚本跟openresty(或者说nginx)的组合,流量具体转发由nginx承载,但是按照什么规则转发用lua脚本定义.apisix在nginx之上封装了非常多功能强大有用的特性,提供丰富的流量管理功能,比如态调整upstream,灰度发布,流量熔断,认证,观测性等。代码可分为两个部分启动前启动前主要是检查环境是否符合要求(比如openresty版本,luajit版本),加
如果你厌倦了多线程,不妨试试python的异步编程,再引入async,await关键字之后语法变得更加简洁和直观,又经过几年的生态发展,现在是一个很不错的并发模型。下面介绍一下python异步编程的方方面面。在python异步编程中,可能出现很多其他的对象,比如Future,Task,后者继承自前者,但是为了统一,无论是Future还是Task,本文中统一称呼为协程。与多线程的比较因为GIL的存在
由于众所周知的原因,电视上不能直接观看电视节目的直播,需要额外买一个电视xx用于播放,但是这样就多了一套遥控器和系统,有点麻烦并且占地方,所以是否可以通过安装一个APP来解决这个问题呢。但,也是因为众所周知的原因,也没有可以一直使用的APP, 即使有,也属于不合法,随时有被封的可能。
分享一些用Python处理yaml和嵌套数据结构的的一些技巧,首先从修改yaml格式文件的问题出发,演变出了各个解决办法,又从最后的解决办法中引申出了普适性更强的嵌套数据结构的定位方法。1.保留注释修改yaml文件2.定位嵌套数据结构3.定位嵌套数据结构2保留注释修改yaml文件yaml比之json文件的其中一个区别就是可以注释,这些注释有时候是很重要的内容,就像代码中的注释一样,如果是手动编辑自
kubernetes源代码版本:1.22commit:fba7198a2cc81c4602f358c7b77ee4e733d20aa2阅读一个项目的源代码带着问题去阅读是一个不错的选择,下面是我之前存在的问题,答案在最后。为什么理论上ipvs的转发性能高于iptables却默认是iptables而不是ipvs?kubeproxy怎么保持规则的同步和生成对应的规则,第一次全量数据是怎么拿到的?ipt
只要运维成了一定的规模就一定需要一个平台来集成自己的工具链以及自己的管理方法,将自己的经验全部抽离出来变成一个个接口,方便自己也方便他人,可以更便捷的管理自己的工作,管理的东西有很多,比如资产管理(或者说CMDB),比如运维自动化平台的封装,比如监控,比如日志平台,如果我们做了一个完整的平台往回看,会发现很多东西是比较通用的,并且在编写代码的过程中发现很多没有意思的事情,那就是数据的增删改查,用户
本章的任务主线任务如下1.kubectl怎么启动2.kubectlapplyfdeployement.yaml发送了什么3.kubectllogsfdeplyment/redisleader发生了什么4.kubectlexecitredisleaderxxxxyyyy发生了什么5.kubectldescribedeployment/redisleader发生了什么25暂时不展开了其实kubectl
在k8s集群内部,或者说在集群的任一节点上执行命令,访问任何资源都是没什么障碍的,但是,在集群外部呢?我们并不能直接访问pod的IP,或者service的IP,这些IP是一些内部地址,一般在外部是不会设置路由的,那么如何在集群外部访问这些资源呢?最简单的解决方式是hostPort及nodePort,通过hostPort可以在运行pod的节点监听指定接口,好处是没有端口限制,但是外部访问需要知道po
做一个视频网站应该最终要的就是视频源,至于视频源从哪里来这是一个问题,不过这里提供一个很小的数据集,不要问我怎么来的,问就是网上来的所有资源来源于网路,仅做技术交流,如有侵权,请联系我删除。技术栈如下:后端:Python+FastAPI前端:uniapp+videojs部署:deta/dockercompose+traefik在线地址:https://u8hfyf.deta.devhttps://
研究了一下搜索引擎的大概原理,一个可以商用的搜索引擎是比较复杂的,但是搜索引擎的内核(自认为的)还是可以写写的。 > What i cannot create, i do not understand 一个全文搜索引擎应该至少解决两个问题: 1. 快速的定位到有关键字的内容(比如说网页,比如说文章文本) 2. 将定位到的文章排序,与关键字相关性最高的文章应该排在最前面(最相关的不应该是谁出钱最高嘛\doge 也许会有人说 :) )
想尝试写一个web框架,不是因为Django, Flask, Sanic, tornado等web框架不香, 而是尝试造一个轮子会对框架的认识更深,为了认识更深自然不应该依赖第三方库(仅使用内置库)。
吾生也有涯,而知也无涯。以有涯随无涯,殆已!入市有风险,投资需谨慎,本文不作为任何投资参考依据。前面通过形态和一些基本面的数据进行了选股,这篇文章就来研究一下相似度选股以及趋势选股吧。相似度我们一般比较在意股票的收盘价,比如均线或者各种指标如果需要计算一段序列值,我们一般选择收盘价作为序列中的值,就像5日均线计算的是五日的收盘价的均值一样。那么每天的收盘价就是一个个数字,一年的收盘价就是一串大概2
人的精力是有限的,所以将目光聚焦在更小的范围内,也许能够得到性价比最高的效果。
最近使用了不少通讯工具的接口,比如企业微信机器人,钉钉,微信公众号的接口(未认证的订阅公众号),相对于邮件来说,它们的表现形式太弱。比如没有更丰富的版本方式。当然了,并不是说表现形式越棒就是约好的通知手段,这个依个人情况而定,而我恰恰需要比较丰富的表现形式,最终还是回到了邮件,邮件真香!而个人微信号的接口我没有合适的微信号可以登录,如果网页版微信没有被封的话,我想这个是表现形式与消息时效性结合的最
这里的数据流指数据从前端流向后端的过程中途径的所有组件或者说服务,比如用户的http请求先到Nginx,再到后端服务1,再到发现服务,再到缓存服务,再到后端服务2,然后是数据库,以及其他调用,总的来说就是一个请求进入的路径,如果将这样的一个过程可视化出来,我想是不错的,而这样的一个可视化也就可以做成一个监控的可视化,监控测试的连接是否可以完成的完成相应以及发现那个组件出现了问题。而这里的前端后端并
前言如果你会编译原理,对其中的词法分析算法,语法分析算法足够了解,那么用什么语言来做这样的一件事情都是可以的,之所以使用Python只是因为本人会的编程语言中,Python的使用时间最长,也最得心应手。所谓性能什么的不在本文的考虑范围内,本文主要重点是语法分析的表达式的解析,语法解析使用的是普拉特分析法,一种自顶向下的语法解析方法。文章目录如下:四则运算的问题词法分析语法分析与解释执行参考链接这有
由于各种各样的原因,你可能需要离线安装,至于为什么不是通过apt或者yum安装,这个原因就看具体情况了。这里主要指rpm包的操作系统,比如centos,fedora之类的。环境环境说明这里安装v1.14.1版本的kubernetes,cni选择flannel.安装系统依赖yuminstallconntrack-toolssocatebtables系统环境配置groupadddockeruserad
一个完整的量化交易策略指考虑到交易的方方面面,但是能不能赚钱,谁知道呢 :)
通过纯Python完成股票回测框架的搭建。
前言虽然同花顺之类的金融理财应用的数据足够好了,但还是有自己定制的冲动,数据自然不会不会比前者好很多,但是按照自己的想法来定制还是不错的。目标通过免费的数据接口获取数据,每日增量更新标的历史交易数据,然后通过Kibana做可视化及数据分析.其实自己通过echarts之类的可视化框架做可视化也是个不错的选择,不过前期成本太大。还有就是pandas+matplotlib已经足以应付大部分需求了,可是交
在深度学习训练的时候使用GPU而不是CPU我想已经是不争的事实了,虽然MX150并不在下面的官网列表,但是其实MX150也是支持CUDA的。https://developer.nvidia.com/cuda-gpus环境小米笔记本Air13OS:win10CPU:I77500UGPU:MX150GPU驱动:425.25tensorflow:1.13.1tensorflow-gpu:1.13.1vi
不知道大家是否有关门后又回到门口检查门是否关了的经历,反正我有,作为一个懒人应该采取一些措施,在不往回跑的前提下检查门是否关了。几乎没有忘记关过门,但是强迫症逼死人:(解决方案远程控制联网手机在房内对门口拍照,然后查看图片检查是否关门.远程方面使用web方式.这里放一张截图:如图所示,如果关门了,通过照片能看出是否关门了,这里拍摄的是打了小锁的情况。实施方案硬件:时刻联网的旧手机这里使用的红米no
termux安装包安装填坑指南必要更新aptupdateaptupgrade大多数安装包的依赖库aptinstallpythonpython-devclangfftwlibzmqlibzmq-devfreetypefreetype-devlibpnglibpng-devpkg-configzlibzlib-devlibiconvlibiconv-devcurl补充软件仓库$curl-Lhttps:
前言本文着重于回测相关得模块。由于上一篇文章实在是写得太烂了,这一篇文章重新开始写。Pyalgotrade业务逻辑及实现原理以官方教程示例为例下载数据python-c"frompyalgotrade.toolsimportyahoofinance;yahoofinance.download_daily_bars('orcl',2000,'orcl-2000.csv')"构建策略并运行frompya
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号