tpl

Noark入门之极速体验

青春壹個敷衍的年華 提交于 2021-01-07 07:56:44
官方网站 www.noark.xyz 开源地址 https://gitee.com/xiaoe/noark3 简介 Noark是一个游戏服务器端框架,可快速开发出一个易维护、易扩展且稳定高能的游戏服务器,让开发者专注于业务功能的开发 实现了配置注入,协议映射,模板加载,数据存储,异步事件,延迟任务,内部指令等功能模块 从而达到了松散耦合的效果,提高了系统的可重用性、可维护性以及可扩展性 精心设计过的它大大简化了网络编程和多线程编程,众多的工具类库就是为了解决开发中那些重复劳动而产生的框架 优点: 使用简单,学习成本低 功能强大,很容易写出性能优秀的服务 十分灵活,并且可与常用技术无缝衔接 安装 Gradle implementation "xyz.noark:noark-game:3.1.18.Final" 当前需要Jdk1.8,Noark版本最新已是3.1.18了 引入Noark,按照历史惯例,先来一个Hello Kitty... 0x01Hello Kitty 第一个游戏服务器Demo,来开始我们的ABC三步走 A、Application应用启动入口 在【com.company.slg】包下创建一个入口类 package com.company.slg; import xyz.noark.game.Noark; public class

并发编程概述--C#并发编程经典实例

痴心易碎 提交于 2021-01-02 23:39:27
优秀软件的一个关键特征就是具有并发性。过去的几十年,我们可以进行并发编程,但是难度很大。以前,并发性软件的编写、调试和维护都很难,这导致很多开发人员为图省事放弃了并发编程。新版.NET 中的程序库和语言特征,已经让并发编程变得简单多了。随着Visual Studio 2012 的发布,微软明显降低了并发编程的门槛。以前只有专家才能做并发编程,而今天,每一个开发人员都能够(而且应该)接受并发编程。 1.1简介 首先,我来解释几个贯穿本书始终的术语。先来介绍并发。 并发 同时做多件事情 这个解释直接表明了并发的作用。终端用户程序利用并发功能,在输入数据库的同时响应用户输入。服务器应用利用并发,在处理第一个请求的同时响应第二个请求。只要你希望程序同时做多件事情,你就需要并发。几乎每个软件程序都会受益于并发。大多数开发人员一看到“并发”就会想到“多线程”。对这两个概念,需要做一下区分。 多线程 并发的一种形式,它采用多个线程来执行程序。 从字面上看,多线程就是使用多个线程,多线程是并发的一种形式,但不是唯一的形式。实际上,直接使用底层线程类型在现代程序中基本不起作用。比起老式的多线程机制,采用高级的抽象机制会让程序功能更加强大、效率更高因此,这里尽量不涉及一些过时的技术。书中所有多线程的方法都采用高级类型,而不是Thread或BackgroundWorker。 一旦你输入new

golang 网络框架之 gin

徘徊边缘 提交于 2020-12-19 16:52:26
golang 原生 http 库已经可以很方便地实现一个 http server 了,但对于复杂的 web 服务来说,路由解析,请求参数解析,对象返回等等,原生 api 就显得有些不太够用了,而 gin 是一个功能完备,性能很高的 web 网络框架,特别适合 web api 的开发 hello world package main import "github.com/gin-gonic/gin" func main() { r := gin.New() r.GET("/ping", func(c *gin.Context) { c.String(200, "hello world") }) r.Run() // listen and serve on 0.0.0.0:8080 } 如这个 hello world 程序所示 gin 所有的业务逻辑都在 func(c *gin.Context) 函数中实现,请求和返回都通过这个 gin.Context 传递 请求参数解析 gin 提供了丰富的请求参数获取方式 (c *Context) Query(key string) string // 获取 GET 参数 (c *Context) QueryArray(key string) []string // 获取 GET 参数数组 (c *Context) DefaultQuery(key

mysql数据库基本操作sql语言

半腔热情 提交于 2020-12-18 11:49:46
mysql的启动与关闭 启动 /etc/init.d/mysql start 多实例使用自建脚本启动 2种关闭数据库方法 mysqladmin -uroot -p密码 shutdown #优雅关闭 /etc/init.d/mysqld stop      登录mysq 命令mysql 常用参数 mysql -u -p -P -h -S #-u指定登录用户 -p用户密码 -P指定端口号 -h远程连接mysql的IP -s多实例登录时指定mysql的sock文件 -e在外部执行sql命令 mysql -uroot -p123456 -P 3306 -h 192.168 . 1.1 -S /data/ 3306 /mysql.sock 本地mysql登录只用-u -p 多实例加-S 非远程不用-P-h mysql设置密码 新建无密码用户设置密码 mysqladmin -uroot password 密码 修改密码 mysqladmin -uroot -p原密码 password 新密码 #多实例指sockt 在mysql数据库内修改密码 mysql> use mysql;     #进入mysql库 mysql > update user set password=password( " 123456 " ) where user= ' root ' ;

小cookie,大智慧

你离开我真会死。 提交于 2020-12-17 05:05:20
Cookie是什么?cookies是你访问网站时创建的数据片段文件,通过保存浏览信息,它们使你的在线体验更加轻松。 使用cookies,可以使你保持在线登录状态,记录你的站点偏好,并为你提供本地化支持。 First-party cookies or Third-party cookies 第一方cookie由你访问的站点创建。该站点指的是地址栏显示的站点; 第三方cookie是由其他站点创建的。这些站点拥有你当前访问的网页上部分资源,如广告或图像。 第一方/第三方cookie不是绝对的标签,而是相对于用户的上下文。 同一cookie可以是第一方也可以是第三方,这取决于用户当时所在的网站。 “ 为什么要提第三方cookie,这与下面的cookie的SameSite策略密切相关。 cookie的常规使用方式 web服务端发送给浏览器的cookie,浏览器会存储并在下次请求原服务器的时候回发cookie。 在HTTP请求模型中以标头的形式体现:Response中 Set-Cookie 标头种植cookie;Request Cookie 标头携带(该请求允许携带的)cookies HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookie=choco Set-Cookie: X-BAT-FullTicketId=TGT

docxtpl模块的word模板替换内容

a 夏天 提交于 2020-12-13 14:29:23
一、介绍 这个包使用两个主要的包: 用于读取、写入和创建子文档 用于管理插入到模板docx中的标记 python-docx模板已经创建,因为python-docx对于创建文档非常强大,但是对于修改文档却无能为力。 这个想法是开始创建一个你想要用microsoft word生成的文档的例子,它可以像你想要的那样复杂:图片,索引表,页脚,页眉,变量,任何你可以用word做的事情。然后,由于您仍然在使用microsoft word编辑文档,所以可以直接在文档中插入类似jinja2的标记。您将文档保存为.docx文件(xml格式):它将是您的.docx模板文件。 现在可以使用python-docx-template从.docx模板和关联的上下文变量中生成任意数量的word文档。 更多高级用法请查看文档,以下是简单示例 https://docxtpl.readthedocs.io/en/latest/#jinja2-like-syntax 二、代码 from docxtpl import DocxTemplate def temp_word(tmep_path,word_apth): tpl = DocxTemplate(tmep_path) # 需要替换内容以key:value的方式进行更换 context = { " name " : " 上海市XXXXXX公司 " , " num "

【Python爬虫】01:网络爬虫--规则

旧街凉风 提交于 2020-12-05 22:11:52
Python网络爬虫与信息提取 目标:掌握定向网络数据爬取和网页解析的基本能力。 the website is the API 课程分为以下部分: 1、requsets库(自动爬取HTML页面、自动网络请求提交) 2、robots.txt规则(网络爬虫排除标准)(合理合法的使用爬虫) 3、beautiful soup库(解析HTML页面)(提取相关项目) 4、projects项目(实战项目A/B) 5、re正则表达式库(正则表达式详解、提取页面关键信息) 6、专业网络爬虫框架scrapy*(网络爬虫原理介绍、专业爬虫框架介绍) IDE:集成开发环境,编写、调试、发布Python程序的工具。 常用的Python IDE工具有2大类: 一、文本工具类IDE 二、集成工具类IDE IDLE:自带、默认、常用、入门级。包含交互式和文件式两种方式。 使用:Python入门、功能简单直接、300+代码以内 sublime text:专为程序员开发的第三方专用编程工具、专业编程体验(专业程序员都用这个)、多种编程风格、工具非注册免费试用。 Wing:公司维护,工具收费;调试功能丰富;版本控制,版本同步;适合多人共同开发 Visual Studio & PTVS:微软公司维护;win环境为主;调试功能丰富。 PyCharm:社区版免费;简单,集成度高;适合较复杂工程。 专门针对科学计算

重磅!阿里巴巴推出国产开源的JDK

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-05 04:22:41
点击“ 开发者技术前线 ”,选择“星标🔝” 在看|星标|留言, 真爱 简介 Alibaba Dragonwell 是一款免费的, 生产就绪型Open JDK 发行版,提供长期支持,包括性能增强和安全修复。阿里巴巴拥有最丰富的Java应用场景,覆盖电商,金融,物流等众多领域,世界上最大的Java用户之一。Alibaba Dragonwell作为Java应用的基石,支撑了阿里经济体内所有的Java业务。Alibaba Dragonwell完全兼容 Java SE 标准,您可以在任何常用操作系统(包括 Linux、Windows 和 macOS)上开发 Java 应用程序, 运行时生产环境选择Alibaba Dragonwell。 特性 安全与稳定 紧密与 OpenJDK 社区保持合作,保持对社区工作的跟踪,及时同步上游更新;同时,Dragonwell 选择性的移植高版本 Java 的重要功能,这些移植功能已经在阿里内部被大规模部署,用户都可以免费使用,而不用等下一个 LTS 版本 标准兼容 OpenJDK 的下游, 完全遵循 Java SE 标准,通过 JCK 兼容性测试 性能卓越 Dragonwell 作为阿里巴巴 Java 应用的基石,支撑了阿里经济体内所有的 Java 业务,积累了大量业务场景下的实践和创新 精心打造的功能 Alibaba Dragonwell 会针对 Long

NumPy进阶修炼|基础

纵饮孤独 提交于 2020-11-24 18:31:09
点击上方“ 早起Python ”,关注并星标公众号 和我一起玩Python 大家好,我们接着更新NumPy专题 ,想学好NumPy先搞定基础 ,本文将 细致讲解一些NumPy的基础操作 ,记得启动Jupyter Notebook一边敲一边学,我们开始吧 ! 1 创建并查看数据 首先 导入并查看NumPy版本 ,我的版本是1.17.2,由于版本不同可能有些代码写法不一样 接着我们来 创建一个数组 👇 当然我们可以 将列表嵌套在列表中创建一个二维数组 👇 接下来我们 查看这两个数组的维数 👇 OK,和我们预想的一样,接着我们查看数据的 shape属性 这个shape不好翻译,有说是矩阵维数也有说是形状的,从结果来看a的shape属性为(3,)意思a是一维数组,有3个元素,b的shape属性为(2,3)说明b是二维数组,每行有3个元素,想一想np.array([[1,2]]).shape应该返回什么 (1,2)说明该数组是一个1行2列的二维数组,OK我们接着来查看在第一期中重点介绍的 数据类型 👇 可以看到,a是int64说明存储a将 消耗8个字节 ,而在第一期我们就说过,使用NumPy的好处是可以 自定义数据类型 ,因此我们可以 指定a的数据类型 为int16来减少内存占用 现在我们来看下修改前后a的大小变化(8—>2) 接着我们来获取一下 数组的元素个数 👇

python图像处理-滤镜的算法原理实现

早过忘川 提交于 2020-11-21 04:18:24
前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要 具备基本的电脑操作能力, 准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。 前言 上一篇文章我们利用PIL自带的路径方法实现了一些滤镜的效果,单纯从使用的角度来说已经够我们使用了,但是如果能够弄清楚它们背后的原理,相信应该是会对我们更有帮助的。 在正式讲解之前,有一些基本的概念还是要在重新了解一下。 图片是由一个个像素组成的,每个像素又是由RGB三种颜色数值组成的(这里指的是RGB模式图片),灰度图是由0-255单个数值组成的。所有的图片处理,本质上都是对像素值进行处理。 灰度滤镜实现 灰度图我们知道是由单一数值0-255组成的,一张RGB三种颜色组成的图片要变成灰度图,需要将它们的三种颜色值设为相同即可。由于人眼对绿色的敏感度最高,红色次之,对蓝色的敏感度最低,因此,当权值 G > R > B时,所产生的灰度图像更符合人眼的视觉感受。 所以将颜色的RGB设置为相同的值即可使得图片为灰色,一般处理方法有: 1、取三种颜色的平均值 2、取三种颜色的最大值(最小值) 3、加权平均值:L = 0.299R + 0.587G + 0.114*B 黑白滤镜实现 黑白效果实现和滤镜有点类似,只不过这里需要自己设定一个阈值,将每一个像素点的平均值与阈值100(这个不是固定的