Google - OR-Tools 使用指南

img

一. 前言

OR-Tools | Google for Developers

OR-Tools is fast and portable software for combinatorial optimization.

About OR-Tools

OR-Tools is an open source software suite for optimization, tuned for tackling the world's toughest problems in vehicle routing, flows, integer and linear programming, and constraint programming.

After modeling your problem in the programming language of your choice, you can use any of a half dozen solvers to solve it: commercial solvers such as Gurobi or CPLEX, or open-source solvers such as SCIP, GLPK, or Google's GLOP and award-winning CP-SAT.

or-tools, 相比于其他的规划求解器, 其优点:

  • 开源(免费), Apache-2.0 license
  • 易用, 属于采用数学自然语言的风格
  • 集成多种求解器(支持调用第三方开源以及商用求解器, 商用求解器需要持有许可)
  • Google出品(大厂背书, 品质保证?)
阅读全文 »

FastAPI使用基础-性能篇

img

一. 前言

在局域网内部署了一个 web/api 服务, 基于性能和websocket使用的考量, 选择了fastapi, 借此探讨一下fastapi为何fast的原因.

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.

Round 23 results - TechEmpower Framework Benchmarks

Web Framework Benchmark - Sharkbench

A 2024 benchmark of main Web API frameworks - Okami101 Blog

阅读全文 »

VBA高阶系列3: "原生"调用JavaScript脚本

img

一. 前言

对于爬虫有过较为深入了解的用户, 应该多少和JavaScript到过交道, 在爬虫的逆向很多时候都需要将目标页面的 js 文件存取到本地, 修改使之能够用于破解页面反爬. 通常这种脚本较为繁琐, 改成目标语言, 如python, 是相当麻烦, 虽然现在有ai的辅助, 可以将一些简单的js脚本转换为指定的语言, 但考虑到转换后的各种问题, 直接运行原脚本获取到需要的信息更为可靠和直接.

阅读全文 »

贝叶斯文本分类算法的JavaScript实现

一. 前言

img

img

( < 黑客与画家 >, Paul )

JavaScript(浏览器端)分词 | Lian (kyouichirou.github.io)这篇文章中提及js分词的实现. 本文则是js版本贝叶斯分类算法的实现, Kyouichirou/BiliBili_Optimizer: enjoy and control bilibili (github.com).

使用统计方法来实现垃圾内容过滤, 很早就想写的了, 但是由于在js端没有好的分词方案(), 一直没捣鼓, 直到发现原来js原生就支持分词, 这个想法马上付诸实现.

以下是对贝叶斯和文本分类算法的简单回顾, 逐步从基础推导出整个数学公式, 并根据python sklearnnative_bayes进行代码的修正, 给出了普通方式计算的代码.

由于需要在毫秒内实现, js脚本使用的分词方案是js原生分词api.

阅读全文 »

JavaScript进阶指南

一. 前言

img

[图: Copyright reserved by Mozilla]

JavaScript 的核心语言是 ECMAScript, 是一门由 ECMA TC39 委员会标准化的编程语言. " ECMAScript " 是语言标准的术语, 但" ECMAScript " 和" JavaScript " 是可以互换使用的.

个人相对青睐于JavaScript的语法结构和代码风格, 相对于Python.

阅读全文 »

MySQL使用指南

'''
    @author: HLA
    @github: https://github.com/Kyouichirou
    @version: 1.0
    @description: mysql基础与进阶; 基础, 查询, 配置, 管理.
    @license: MIT

    -- make thing better and simpler.
'''

一. 前言

MySQL更新到8.0之后, 很多内容发生较大的变化, 而搜索引擎/书籍查询到的大量信息还是基于5.x, 例如查询缓存这个机制在8.0就发生大的变化, 对于一些相对晦涩难懂的部分, 如日志, 锁, 事务, mvcc等更应注意, 这部分内容可查询到的信息相当混乱(陈旧, 错误), 大量混杂着各个时期MySQL的一些特性在其中, 遇到难以理解的部分应多查阅官方文档.

阅读全文 »

MySQL窗口函数(Window Function)详解

一. 前言

ppnYa7R.png

窗口函数(window function), 也称作OLAP, Online Analytical Processing,实时分析处理.

They can help boost query performance as an alternative to achieving the same result using more complex non-OLAP SQL code.

简而言之, 窗口函数大大强化了MySQL在数据分析上的能力, 通过窗口函数可以以相对简单的方式实现较为复杂的常态化数据输出, 例如经典的多层级汇总, topN问题, 多个区间之间得运算等.

以下内容, 先以简单的例子展示窗口函数的使用, 后使用相对复杂的内容来对窗口函数进行较深入的应用.

由于是在8.0后才增加的新特性, 搜索引擎/相关书籍提供的介绍较为简单和粗略, 相关参考主要以官方文档为主.

阅读全文 »

从一个非常简单的问题看MySQL另一面

一. 前言

事情是这样的, 一位数据从业人员问了这样的问题:

数据库有一张表, 表里面存储了大概六百万行的数据, 有十余个字段, 但是运行已经很慢, 该如何提高执行sql语句的速度,

由于是单表, 这种规模的数据, MySQL是可以轻松handle的, 所以第一时间想到的问题大概率是字段乱设数据类型, 或者是某些字段数据太长, 简而言之, 就是表的数据太大了.

阅读全文 »