自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FlyWine的博客

Freedom means freedom, and I will stand to defend it.

原创 Ubuntu18.04安装cuDNN和Tensorflow的正确姿势

文章目录Ubuntu18.04安装cuDNN和Tensorflow的正确姿势一、检查NVIDIA驱动是否安装成功二、检查CUDA是否安装成功三、安装cuDNN1. 确定版本2. 下载安装包3. 解压安装4. 安装libcupti四、安装Tensorflow1. 确定版本2. 安装pip3. 安装Tensorflow4. 检查是否正常运行五、错误解决1. so文件找不到的错误Ubuntu18.04...

2019-07-10 14:16:42 11837 9

原创 Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡

Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡在安装显卡之前请先把ubuntu 18.04系统提前安装好。需要准备的资料:NVIDIA 驱动下载驱动驱动的下载地址,在此下载页面选择合适的显卡,目前最新的显卡驱动版本是430.26,切记选择.run文件。更新PCI ID由于目前ubuntu 18.04使用的内核版本是4.15.0,比较新的显卡还没有同步更...

2019-07-09 20:59:51 17477 8

原创 Linux升级内核的正确姿势

Linux升级内核的正确姿势很多童鞋在玩耍linux发行版的时候,都会遇到各种各样的问题,比如:网卡不能使用,亮度不能调节,触摸板不能识别,蓝牙不能使用等等,这些关系都和linux的内核有关系。什么是linux内核?Linux内核(英语:Linux kernel),是一种开源的类Unix操作系统宏内核。Linux内核最早是于1991年由芬兰黑客林纳斯·托瓦兹为自己的个人计算机开...

2018-08-20 23:41:18 46331 14

原创 Linux安装CUDA的正确姿势

Linux安装CUDA的正确姿势CUDA(Compute Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称。透过这个技术,用户可利用NVIDIA的GeForce 8以后的GPU和较新的Quadro GPU进行计算。查看显卡是否支持CUDA输入下面命令查看电脑的NVIDIA型号:v...

2018-08-20 23:12:39 73150 6

原创 Linux安装NVIDIA显卡驱动的正确姿势

Linux安装NVIDIA显卡驱动的正确姿势什么是nouveau驱动?检测NVIDIA驱动是否成功安装集显与独显的切换使用标准仓库进行自动化安装使用PPA仓库进行自动化安装使用官方的NVIDIA驱动进行手动安装Linux安装NVIDIA显卡驱动的正确姿势可能想玩Linux系统的童鞋,往往死在安装NVIDIA显卡驱动上,所以这篇文章帮助大家以正常的方式安装NVI...

2018-08-20 21:05:58 149967 77

翻译 Go信号gsignal和宿主Signal

信号gsignal和宿主Signalsignal包提供了信号处理程序,并允许我们的Go程序与输入的信号进行交互。订阅信号的订阅是通过channel来完成的,下面是一个例子,功能是监听任何终端信号或者终端退出的信号。每个os.Signal通道监听自己的事件。Go还提供了停止通知通道的功能,使用停止函数Stop(os.Signal)或者忽略信号函数Ignore(…os.Signal)。这个程序不能被CTRL+C打断,而且永远不会停止,因为在第二次从通道接收信号之前,通道就停止了对终端退出信号的

2020-06-21 19:57:17 93

原创 golang之jsonb类型的支持

golang之jsonb类型的支持jsonb是一个很好的存储方式,可以省去我们很多的数据库复杂设计,简化架构。那么我们在golang中如何使用?当然我们是不能直接使用的,所以这篇文章将指导你在golang中如何正确的使用jsonb。场景我们希望在应用程序中处理这种实体。{ id: 1 name: "test entity 1" description: "a test entity for some guy's blog" properties:

2020-06-01 00:51:39 291

原创 go之树型结构深度理解补充

go之树型结构深度理解补充在上一篇中借用了 Ilija Eftimov 文章来讲解了tree的定义和一些方法。这篇文章主要是讲解在树型结构中如何判断节点与节点之间的关系。A节点是否是B节点的直接上级A节点是否是B节点的可跳跃的上级(即中间隔开几个节点的间接上级)上一篇文章连接 go之树型结构深度理解判断A节点是否是B节点的直接上级思路大致是先在树中查到到A节点,然后在A节点的子节点集合中查找B节点是否存在,如果存在,那么A节点就是B节点的直接上级。func directUp(root

2020-06-01 00:26:54 111

原创 go之树型结构深度理解
原力计划

go之树型结构深度理解如果你是一个编程人员,或多或少对树型结构都有一定的认识,我个人对树型数据结构是又爱又恨。这篇文章主要讲解一些关于tree的数据结构以及使用。什么是树?数组、列表、队列、队列、堆栈都是以一个集合的形式存储数据,一般称它们被称为 "线性"存储结构。但当涉及到树(trees)和图(graphs)时,事情就会变得混乱,因为数据不是以线性方式存储的。树被称为非线性数据结构。事实上,你也可以说树是分层数据结构,因为数据是以分层的方式存储的。后面为了讲解方便统一叫treetree是

2020-05-29 23:04:40 219

原创 golang定时任务的使用

golang定时任务的使用由于 golang 标准库内没有比较好的定时任务包,所以这里将使用一个第三方的 cron 包,由于此包存在一些不适用的地方,所以对此做了一些简单封装。cron简介robfig/cron是一个第三方开源的任务调度库,也就是我们平时说的定时任务。Github官方文档安装只需要导入即可import "github.com/robfig/cron/v3"使...

2020-05-08 16:06:09 230

原创 Angular模板高级使用

Angular模板高级使用使用ng-templateAngular自带一个叫做ng-template的组件,它允许我们声明Angular模板的任何部分。这是给我们的模板赋予动态性的一种很好的方式,让我们能够把我们的代码传递给其他组件。在app.component.html文件中写一个ng-template组件。<ng-template #hello> Hello, Worl...

2020-04-26 00:18:47 137

原创 golang操作postgresql数据库jsonb类型

golang操作postgresql数据库jsonb类型本文以案例为主,少言,自悟。推荐一个测试sql的网站SQL操作// 创建一个带有jsonb列的表CREATE TABLE items ( id SERIAL PRIMARY KEY, attrs JSONB);// 插入一条数据INSERT INTO items (attrs) VALUES ('{ ...

2020-04-13 21:53:54 504

原创 如何更新Postgresql的Jsonb数组

如何更新Postgresql的Jsonb数组假设你决定将数据以json或者jsonb的形式存储在数据库中,然后发现你刚刚给自己制造了新的问题,而这些问题是以前没有的。jsonb是一个强大的工具,但它也有一定的代价,因为你需要调整查询和处理数据的方式。而且将整个jsonb对象加载到内存中,用你喜欢的编程语言进行转换,然后将其保存回数据库,这并不罕见。但是,你刚刚创造了另一个问题:性能瓶颈和资源...

2020-04-13 20:11:49 897

原创 使用Go和WebSockets构建实时聊天服务器

使用Go和WebSockets构建实时聊天服务器源代码连接 Go Chat现在web应用变得越来越复杂,前端开发人员的工资也是水涨船高。现在的web程序有些是可以实时更新的,用户无需主动调用服务器或刷新浏览器。在早期,开发人员需要依靠ajax请求来创建非常接近实时的应用程序,现在他们能够利用websocket的强大功能来创建完全实时的应用程序。关于什么是websocket查看这篇文章we...

2020-04-10 20:41:20 174

原创 golang代理转发基础

golang代理转发基础go标准库已经实现了一个反向代理工具,通过代理将客户端的请求转发到代理服务器。什么是反向代理?维基百科解释:”In computer networks , a reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more...

2020-04-09 20:48:34 159

原创 DeepL与有道翻译对比

DeepL与有道翻译对比近期有一个叫DeepL的翻译工具很火。DeepL Translator 是于2017年8月由 DeepL GmbH(一家由Linguee支持的创业公司)推出的翻译服务,支持汉语、英语、德语、法语、日语、西班牙语、意大利语、荷兰语及波兰语之间的翻译。其利用神经网络训练翻译能力。目前网上在疯传与Google翻译、Bing翻译及Facebook等其他主流的翻译服务相比,Dee...

2020-04-06 14:51:29 4366

原创 go validator使用教程

go validator使用教程很多时候在B/S开发过程中,经常会遇到对参数的校验工作,一般客户端需要提前验证一次提交的数据是否合理,以减少后端的压力,而后端是必须要对数据做验证的。一般验证的方式大多都是if-else,这种方式会让你掉入无底的深渊,就像下面一样。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MeVUi8eX-1586155448562)(ht...

2020-04-06 14:44:48 346

原创 go实现数组切片洗牌函数Shuffle

go实现数组切片洗牌函数Shuffle在深度学习、机器学习中,我们经常会使用到一个叫 Shuffle 函数,我一般叫打乱函数,也有人叫 洗牌 函数,就是听着高级点, 它可以帮助我们打乱数据集,那么在go中我们如何实现一个呢?Shuffle实现对于打乱函数有很多算法实现,由于我的场景并不需要实现很完美的打乱,所以对实现算法不做深入探究。如果想要实现一个洗牌函数,一般一定是需要随机算法的,或者...

2020-04-01 01:04:24 458

原创 go利用反射实现任意类型切片删除元素

go利用反射实现任意类型切片删除元素在使用Go切片的时候,我们经常会需要删除切片内的元素,但是由于类型的限制,导致我们需要写很多类似的函数,那么下面我们通过go的反射机制实现一个任意类型的切片元素删除。这里只是讲如何实现的教程,同类型还有很多函数我们可以实现,不能全部讲解,大家可以直接使用我写的一个工具库 lodago,有点lodash的味道。实现再讲之前要说明一下一般是如何删除切片中的某...

2020-04-01 01:01:25 109

原创 go反射实战之数组的查找Find过滤Filter函数实现

go反射实战之数组的查找过滤函数实现在使用的go的时候,如果想要在数组中查找一个元素每次都要写一个循环来查找,过滤也是一样,没有一个能打的函数来帮助我们干这些事情,通过前面的学习,我们可以通过反射实现Find和Filter函数。上篇文章连接 go反射机制与类型识别。在其他语言中都有类似的函数,但不仅限于这两个函数,例如javascript、java、C#等都支持。Find实现先上代码再解...

2020-03-31 00:12:07 184

原创 go反射机制与类型识别

go反射机制与类型识别在写 go 程序的时候,难免会遇到使用反射机制获取一些结构体或者变量的动态类型,java 和 C# 高级编程语言提供了很好的反射机制,但是在 C 语言中基本是不存在的,C++ 需要有很多语法糖来实现反射,但是技术要求很高,go 语言虽然没有泛型,单是基本的反射还是提供了,下面我们来看看 go 语言的反射与类型识别。什么是反射?一般我们在定义字段或者变量的时候要赋予他变量...

2020-03-30 23:26:24 90

原创 go切片窥探

go切片窥探切片(slice)是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型(因此更类似于C/C++中的数组类型,或者Python中的list类型)。这个片段可以是整个数组,或者是由起始和终止索引标识的一些项的子集。需要注意的是,终止索引标识的项不包括在切片内。切片提供了一个相关数组的动态窗口。切片是可索引的,并且可以由 len() 函数获取长度。...

2020-03-26 12:12:10 56

原创 go设计模式之装饰器模式

go设计模式之装饰器模式再写这篇文章时,我已经看了很多其他人发表的类似文章,大概看了这么多吧。亓斌的设计模式-装饰者模式(Go语言描述)jeanphorn的Golang设计模式之装饰模式七八月份的太阳的Golang装饰器设计模式(九)我个人都不是很满意,所以才自己从头开始写关于go语言的装饰器模式,由于go的特殊性质,装饰器模式也是相对复杂的,因为go是在c/c++基础上发展而来的,...

2020-03-24 20:19:38 102

原创 go设计模式之单例模式

go设计模式之单例模式在软件开发时,经常会遇到有些对象需要保证只有一个实例的,那么这种设计模式就应用而生。定义单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模式的一种。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单...

2020-03-24 14:43:27 85

原创 go设计模式之代理模式

go设计模式之代理模式代理模式的基本思想是,需要服务的代码只与代理类打交道,而实际工作的部分隐藏在代理的背后。它的主要的目的是希望隐藏实现的部分,从而消除代码的耦合。举个例子来说就是像电脑桌面的快捷方式。电脑对某个程序提供一个快捷方式(代理对象),快捷方式连接客户端和程序,客户端通过操作快捷方式就可以操作那个程序。定义代理模式(Proxy Pattern)指,一个类代表另一个类的功能。这种...

2020-03-24 10:44:48 88

原创 04-go命令使用

04-go命令使用此篇文章是基于GO 1.14.1,如果版本相差过大,还是以版本的命令为准。命令简介bug—用于提交使用过程中的bug。build—用于构建二进制可执行文件。clean—用于删除在构建过程中生成的临时文件。doc—用于生成项目文档。env—查看go的环境变量。fix—把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。fmt—格式化他们的代码到统...

2020-03-22 22:00:16 71

原创 03-go的包管理

03-go的包管理在Go 1.11和1.12版本时就已经支持了对包管理功能,但还是相对有一些小的问题,不过在后续的版本中已经陆续解决。增加包管理是必然趋势,一门好的语言,不光要有好的生态,优美的语法,包管理也是必不可缺的功能,例如大名鼎鼎 npm,就连 C++ 也要推出包管理,好的包管理会让项目更加整洁,依赖关系也相对清晰。回顾go的前世包管理在go没有支持新的包管理之前,对于项目中的包管理...

2020-03-22 20:13:31 113

原创 02-go的IDE安装

02-go的IDE安装此篇文章是在go已经安装的前提下进行的,如果go还没有安装请参考这篇文章 01-go安装。本文章使用的是vscode作为go IDE,所以需要提前安装好vscode,并且是在linux系统下。当前系统为linux mint 19,ubuntu deepin等系统类似。安装扩展插件打开vscode编辑器,在扩展中搜索 go 关键字,不出所料应该第一个插件就是了,如...

2020-03-22 18:50:36 346

原创 01-go安装

01-go安装本教程适用于linux发行版安装。当前系统使用的是linux mint 19.ubuntu deepin 等同理。下载安装包下载地址 go downloads。选择Linux包点击下载。开始安装1.设定安装目录在下载好的压缩包文件夹内打开终端,并设置安装目录环境变量,一般安装目录为/usr/local。export GO_INSTALL_DIR=/usr/lo...

2020-03-22 17:07:05 486 1

原创 Angular消息通知组件ngx-notification

Angular消息通知组件ngx-notificationIt is a flexible and usable component.DemoDemoInstallation1.You need install @flywine93/ngx-notification by npmnpm install @flywine93/ngx-notification --save2.You...

2020-03-22 13:01:12 423

原创 websocket心跳检测前后端架构

websocket心跳检测前后端架构本篇文章为初略架构websocket在前后端的心跳检测机制,实现相对毛糙。下面介绍内容参照 廖雪峰 的描述,为了切换页面麻烦,这里就直接挑简要的信息复制黏贴过来。廖雪峰 – WebSocket 教程。为什么需要 WebSocket?初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什...

2020-03-19 18:50:35 367

原创 Angular自动取消订阅RxJs

Angular自动取消订阅RxJs在使用 rxjs 时我们经常忘记调用unsubscribe()而导致内存泄露,很多时候你很难发现它,在RxJs官方有这样一段话:What is a Subscription? A Subscription is an object that represents a disposable resource, usually the execution of ...

2020-03-18 10:49:57 533 2

原创 创建自定义Tabs组件-01

创建自定义Tabs组件-01此文章用于讲解如何封装一个自定义 Tabs 组件。一步一步了解如何封装自己想要的组件。构思想象一这个组件该如何使用?一定要站在使用者的角度,大致可能这样。<tabs> <tab title="Tab 1"> Tab 1 </tab> <tab title="Tab 2"> Tab 2 ...

2020-03-16 23:02:33 103

原创 Angular添加class的正确方式

Angular添加class的正确方式很多时候我们会遇到需要给元素增加或删除指定class,从而达到某种目的。那么在Angular中我们如何添加?className属性绑定我们可以通过HTML元素的className属性进行绑定:<div [className]="'demo-class'"></div>当然也可以通过表达式进行绑定:<div [clas...

2020-03-09 13:41:46 1377

翻译 Angular 9 新功能摘要

Angular 9 新功能摘要Angular的9.0.0版本已经发布了!这是一个跨越整个平台的主要版本,包括框架、Angular Material、和Angular CLI。该版本将应用程序默认切换到Ivy编译器,并引入了改进的组件测试方法。这是Angular在过3年内对Angular做的最大更新之一,Ivy 的正式应用,就好比,忽如一夜春风来,千树万树梨花开。如何更新到Angular 9...

2020-03-09 13:20:39 2025 7

原创 开发简化版NgFor

开发简化版NgFor下面是自定义实现一个简化版本的NgFor指令,一般来说使用Angular默认的即可,但是在追求高性能的时候,或许你需要这样一个简化版本的指令,让你的程序运行流畅、纵享丝滑。直接贴出代码。import {Directive, EmbeddedViewRef, Input, DoCheck, OnChanges, SimpleChanges, TemplateRef, Vie...

2020-02-28 00:14:12 130

原创 Ubuntu LinuxMint安装微信QQ阿里旺旺

Ubuntu LinuxMint安装微信QQ阿里旺旺目前linux大部分桌面发行版都可以安装windows版本的微信、QQ、阿里旺旺等软件了,这是deepin系统的功劳,这里还要感谢一下 前深度CEO 勇哥的不懈努力和坚持。安装这里推荐一个移植好的安装方法。zq1997/deepin-wine github地址。1.添加仓库wget -O- https://deepin-wine.i...

2020-02-28 00:04:13 873

原创 Angular实现dialog对话框封装

Angular实现dialog对话框封装为什么要封装?对于Angular Material UI库中的dialog组件,实在不是很好用,所以打算简单封装一下啊。直接代码吧。封装dialog组件1.创建一个dialog组件2.dialog.component.html文件<ng-template #dialog> <!-- 对话框投射内容 --> ...

2020-02-27 23:43:42 512

原创 图片床

仅供存储图片

2020-02-10 21:39:06 261

原创 Angular之jwt令牌身份验证

Angular之jwt令牌身份验证demo https://gitee.com/powersky/jwt介绍Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,...

2020-02-10 20:39:08 1739 1

提示
确定要删除当前文章?
取消 删除