自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(244)
  • 资源 (11)
  • 收藏
  • 关注

原创 保持学习,持续进步

在近些年来,程序员这个职业越来越广为大众所知,这一方面是一些互联网企业的迅速发展让很多人看到了这个方向的希望,另一方面程序员的工资普遍高。因此报IT方向的大学学生越来越多,除了主修这个专业的之外,还有很多别的专业的学生会通过自学学习编程,或者通过社会上的培训机构学习。每年毕业、就业的程序员越来越多了呢。而且除了竞争加大,技术的更新换代也越来越快,早些年会一些PHP、jee就能谋生,而近两年大家都在...

2018-12-28 11:03:13 5200 1

原创 godis 运行原生redis命令

我们可能会遇到需要运行的某些命令在godis中不存在的情况,这个时候我们可以使用其原生的方式运行命令,为了方便使用,封装了一个方法,用于简化这个过程。需要注意的是,执行命令的返回结果返回的是interface{},需要对其进行解析成可读的实体结构。传递的参数logger是用来打印日志的:// RunRedisCmd 运行redis命令func RunRedisCmd(redis *godis.Redis, logger *log.Logger, cmd string, args ...string)

2022-05-01 10:50:29 488

原创 idea、goland泛型语法报错解决|go1.18泛型初体验

go在1.18正式推出了泛型,你是否和博主一样好奇其语法呢?快啊来看看吧1. 版本更新&插件更新go如何更新到最新版本,可以查看https://www.hengyumo.cn/momoblog/detail/20220417102155idea插件更新:setting >> plugin >> installed全部更新之后idea版本更新(可能要更新多次,直到更新到不能更新为止):help >> check update在此处勾选上泛型支持

2022-05-01 10:33:01 3906

原创 go更新最新版本

最近go1.18出了泛型,趁着周末有时间,赶不及要尝尝鲜呢。那如何更新我本地go到最新版本到1.18呢1. 下载安装包https://go.dev/dl/2. 执行安装点击打开安装程序,点击next选择卸载之前版本同意,下一步选择安装目录点击安装安装完成3. 验证版本cmd 输入go version可以了,已经更新到了最新的1.18.1版本...

2022-05-01 10:29:58 1150

转载 Redis是如何实现高性能的?

Redis作为应对高并发场景的利器,它是如何实现高性能的呢?IO多路复用传统对于并发情况,假如一个进程不行,那搞多个进程不就可以同时处理多个客户端连接了么?多进程是可以解决一些并发问题,但是还是有一些问题,上下文切换开销,线程循环创建,从PCB来回恢复效率较低。随着客户端请求增多,那么线程也随着请求数量直线上升,如果是并发的时候涉及到数据共享访问,有时候涉及到使用锁来控制范围顺序,影响其他线程执行效率。在学NIO之前得先去了解IO模型(1)同步阻塞IO(Blocking IO):即传统的IO模型

2022-05-01 10:26:53 674

转载 在面对一些亿级流量场景,消息队列届的排头兵kafka是如何保证高性能的呢?

在面对一些亿级流量场景,消息队列届的大哥kafka是如何保证高性能的呢?Kafka Reactor模型架构Kafka客户端和服务端通信采取的是NIO的reactor模式,它是一种事件驱动模式。reactor模型天然支持高并发,可以充分利用多核心多线程。https://blog.51cto.com/u_15067229/2573746页缓存技术+磁盘顺序写2.1 操作系统每次从磁盘读写数据的时候,需要先寻址,也就是先要找到数据在磁盘上的物理位置,然后再进行数据读写。如果是机械硬盘,这个寻址需

2022-05-01 10:21:48 234

原创 linux系统或者windows WSL安装redis最新版本

概述因为windows的最新版本redis已经在16年就停止更新了,目前最新的版本只到redis3,很多redis新增的特性都无法使用。例如redis5的stream,windows版本就没有。这篇文章通过使用wsl来为windows提供最新版本redis的支持,而免于去启动虚拟机的麻烦事了。主要安装的流程和linux上一般无异。1、下载redis打开 https://redis.io/download/ 查看可用版本。截至这篇文章写作时,redis目前的稳定版本是6,预计今年会更新7,目前还在

2022-04-27 18:58:33 1277

原创 redis实现消息队列的几种方式及其优劣

概述常用的消息队列有,rabbitMq、kafka、RocketMq、ActiveMq等。这些消息队列需要独立安装部署,作为一个中间件来提供服务,虽然有着高性能、高可靠的优点,但是额外部署这些中间件也会增加运维成本,和服务器成本。本篇文章探讨了一下如何使用redis实现消息队列。使用redis无需额外的部署,如果原先就有使用redis的话。此外redis更为轻量也更容易维护。但是redis实现消息队列有多种方案,这些方案有其优点也有其缺点,适用于不同的应用场景。以下从“实时性”、“可靠性”、“功能性”这

2022-04-27 18:45:56 18590 4

原创 使用gomail发送邮件

概述为了实现一个邮件验证码功能,特意了解了一下go如何发送邮件。本来以为会很麻烦,没想到其实很简单。工具类实现的工具类如下:package mailimport "gopkg.in/gomail.v2"// MailConfig 邮箱发送配置type MailConfig struct { Account string // QQ邮箱填写授权码 Password string // QQ:POP/SMTP 587 Port int // QQ:smtp.qq.com Host

2022-04-27 18:36:07 1125

原创 Gin路由算法模拟

概述Gin的路由算法是采用压缩字典树实现的,基数树(Radix Tree)又称为PAT位树(Patricia Trie or crit bit tree),是一种更节省空间的前缀树(Trie Tree)。对于基数树的每个节点,如果该节点是唯一的子树的话,就和父节点合并。下图为一个基数树示例:https://www.cnblogs.com/randysun/p/15841366.html算法模拟结构体组成:// TrieNode 压缩字典树节点type TrieNode struct {

2022-04-27 12:23:26 634

转载 PowerDesigner导入sql脚本

1.依次点击File->Reverse Engineer->Database…2.弹出弹窗对模型进行命名,同时在DBMS下拉选择框中需要选择自己对应的数据库类型,点击确定新的弹窗,选中Using script files,再点击红圈中,选中你的sql脚本位置,点击确定结果图如何让Name里面的值显示的是comment里面的值在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中

2022-04-25 16:13:48 3523

原创 gin 框架原理

Gin的路由原理Gin的路由基于Trie树和压缩字典树算法,什么是Trie树?其实很好理解,看下图:单词at,bee,ben,bt,q组成的Trie树如下:每个字母的父亲节点就是它的前一个字母Trie树的三个性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串每个节点的所有子节点包含的字符都不相同也就是按照各个词的前缀,将所有的词拆解组成一颗树的结构。那么有了这样的一颗树,查找单词就变得很简单,从根节点开始向下

2022-04-25 16:12:07 1222

原创 go sync.Pool 深入

new函数的调用时机和pool的内存释放规则以下代码调用了四次Get函数,但是并不是每次都会new第一次,是a := pool.Get().([]byte),首次Get,在pool的private私有池没有对象,在共享池也没有对象,不存在victim cache,所以会new。第二次,是b := pool.Get().([]byte),因为a取出后,pool的私有池又成为了空。在共享池也没有对象,不存在victim cache,所以会new。第三次,是c := pool.Get().([]byte

2022-04-25 16:09:08 352

转载 tcp黏包问题

服务端代码如下:package mainimport ( "bufio" "fmt" "io" "net")func process(conn net.Conn) { defer conn.Close() reader := bufio.NewReader(conn) var buf [1024]byte for { n, err := reader.Read(buf[:]) if err == io.EOF { break } if err != nil

2022-04-25 16:08:10 207

转载 go 编写tcp和udp服务端和客户端

TCP协议TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。TCP服务端一个TCP服务端可以同时连接很多个客户端,例如世界各地的用户使用自己电脑上的浏览器访问淘宝网。因为Go语言中创建多个goroutine实现并发非常方便和高效,所以我们可以每建立一次链接就创

2022-04-25 16:07:06 475

转载 网络协议概述

互联网协议介绍互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite),正是这一些协议规定了电脑如何连接和组网。我们理解了这些协议,就理解了互联网的原理。由于这些协议太过庞大和复杂,没有办法在这里一概而全,只能介绍一下我们日常开发中接触较多的几个协议。互联网分层模型互联网的逻辑实现被分为好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。用户接触到的只是最上面的那一层,根本不会感觉到下面的几层。要理解互联网就需要自下而上理解每一层的实现的功能。

2022-04-25 16:05:26 395

转载 TCP和UDP的区别

TCP协议与UDP协议的区别首先咱们弄清楚,TCP协议和UDP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的,UDP只是其中的一个, 之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,传输层,网络层,网络访问层。其中应用层包括:1、超文本传输协议(HTTP):万维网的基本协议;2、文件传输(TFTP简单文

2022-04-25 16:01:27 353

转载 UDP协议

UDP 概述(User Datagram Protocol,用户数据报协议)用户数据报协议 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及查错检测的功能UDP 的主要特点UDP 是无连接的,即发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延UDP 使用尽最大努力交付,即不保证可靠交付,主机不需要维持复杂的连接状态表UDP 是面向报文的,发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UD

2022-04-25 15:58:54 3079

转载 TCP协议

TCP 基础https://www.jianshu.com/p/ef892323e68fTCP 使用固定的连接TCP 用于应用程序之间的通信。当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。TC

2022-04-25 15:55:46 2238

转载 TLS协议/SSL协议

历史背景SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层,最初是由网景公司(Netscape)研发,后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFCRequest For Comments 请求注释),RFC里包含了很多互联网技术的规范!起初是因为HTTP在传输数据时使用的是明文(虽然说POST提交的数据时放在报体里看不到的,但是还是可以通过抓包工具窃取到)是不安全的,为了解决这

2022-04-25 15:53:05 2357

转载 http协议原理

HTTP工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。以下是 HTTP 请求/响应的步骤:客户端连接到Web服务器一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP

2022-04-07 15:29:02 2909

原创 GO GC垃圾回收

垃圾回收(Garbage Collection,简称GC),是编程语言运行时自带的内存管理功能,例如Java、python、js、ruby、Erlang等语言都有其GC功能。一个进程拥有的资源包括栈和堆,栈通常存储临时变量,在函数返回时就自动释放。堆则存储程序动态申请的内存,例如c中的malloc。这一部分申请的内存需要程序员手动进行回收,否则将存在内存泄漏的风险。但是将回收内存交给程序员,显然是很容易犯错的。后续的很多语言都加上了GC功能,在程序运行时,由虚拟机或者Runtime进行垃圾回收,减轻了程序

2022-04-07 15:16:45 304

原创 go并发3-定时器、select、锁、atomic、sync

time.Ticker定时器// 定时器,延迟一秒func Test_15(t *testing.T) { ticker := time.NewTimer(1 * time.Second) start := time.Now() now := <-ticker.C fmt.Println(now) fmt.Println(time.Since(start))}time.Timerfunc Test_16(t *testing.T) { // 每隔一秒 timer := ti

2022-04-07 15:01:51 612

原创 go并发-协程池优化及性能测试分析

相比前一个版本优化了代码:/* 有关Task任务相关定义及操作 *///定义任务Task类型,每一个任务Task都可以抽象成一个函数type Task struct { Run func() error //一个无参的函数类型}/* 有关协程池的定义及操作 *///定义池类型type Pool struct { // 协程池最大worker数量,限定Goroutine的个数 workerNum int // 协程池内部的任务就绪队列 jobsChannel chan *Tas

2022-04-07 14:38:13 736

原创 go并发-协程池

协程池虽然go的协程设计已经非常完美。但是无休止的开辟Goroutine依然会出现高频率的调度Groutine,依然会浪费很多上下文切换的资源。所以设计一个Goroutine池限制Goroutine的开辟个数在大型并发场景还是必要的。/* 有关Task任务相关定义及操作 *///定义任务Task类型,每一个任务Task都可以抽象成一个函数type Task struct { Run func() error //一个无参的函数类型}//通过NewTask来创建一个Taskfunc N

2022-04-07 14:33:53 514 2

原创 go并发2-go并发基础使用

启动一个goroutine启用go关键字即可启动一个goroutinefunc Test_1(t *testing.T) { ch := make(chan int) go func() { for i := 0; i < 10; i++ { ch <- i } close(ch) }() for v := range ch { fmt.Println(v) }}WaitGroup 等待多个goroutine完成var wg1 = sync.Wai

2022-04-07 14:31:52 341

原创 go 并发1-基础原理

进程和线程A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。进程与线程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但

2022-04-07 14:27:13 234

原创 go 单元测试

基础Go语言中的测试依赖go test命令。go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。在*_test.go文件中有三种类型的函数,单元测试函数、基准测试函数和示例函数类型格式作用基础测试前缀为Test测试程序的逻辑是否正确性能测试前缀为Benchmark测试程序的性能提供示例前缀为Example为程序

2022-04-07 14:14:17 6191

原创 go 压力测试

基础Go语言中的测试依赖go test命令。go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。在*_test.go文件中有三种类型的函数,单元测试函数、基准测试函数和示例函数类型格式作用基础测试前缀为Test测试程序的逻辑是否正确性能测试前缀为Benchmark测试程序的性能提供示例前缀为Example为程序

2022-04-07 14:09:06 1227

原创 go 异常处理

panic-recover机制go中不像其它语言有try catch语法,同样也不推荐捕获异常而是推荐采用将异常返回的方式。但是对于一些会导致程序崩溃的严重异常,直接退出也会比层层返回方便的多。因此go中实现了panic-recover机制,专门用于对这些异常进行抛出和恢复。在语义上,try catch更像尝试性的去做一些事,在这期间如果发生错误,则如何如何。而panic则是告诉你程序奔溃了,发生了特别严重的故障,到了难以恢复的程度。recover则是看看能不能救回来,如果不是极其致命,那么就继续服务吧

2022-04-06 16:17:59 2748

原创 go 面向对象

概述go的面向对象和其它的面向语言并不太相同。首先,go是没有类的概念的,在go中数据是数据,方法是方法,二者比较独立。其次go对继承的实现更像是“组合”。go的接口是鸭子类型:只要你像个鸭子,那么我就认为你是个鸭子,而不需要显式的实现接口,像java的implements XXX在go是不存在的。面向对象的三个特征:继承、封装、多态 go都可以实现。(多态需要基于接口实现)基础语法type User struct { name string}func (u User) introduceM

2022-04-06 16:11:32 2512

原创 go defer使用

defer 用于延迟调用关键字 defer 用于注册延迟调用。这些调用直到 return 前才被执。因此,可以用来做资源清理。多个defer语句,按先进后出的方式执行(类似于栈)。defer语句中的变量,在defer声明时就决定了。defer的理解defer和很多语言的finally关键字有点相似,都是在执行完某段代码之后必须会执行到的,finally块即使catch块有return他还是会被执行的。defer声明了一个在函数返回时需要执行的函数栈,每次声明都是将对应的函数压入栈中,等到r

2022-04-06 15:24:47 281

原创 go 函数

go 函数声明go 的函数声明规则和类C语言有较大的不同,它的返回值写在最后。其实这样会更符合人类的思维方式,先想到函数名称、再想到函数需要传的参数,最后才想到函数的返回值:func testFunc1(name string) (string, error) { if name == "" { return "", errors.New("name is empty") } else { return fmt.Sprintf("hello, %s!", name), nil }}

2022-04-06 15:21:25 104

原创 go 流程控制

if … else if … else 语句golang的if 条件中不需要加括号,并且if支持写声明语句import "fmt"func testIf1(c int) { a := 1 // if 可以写声明语句 if b := 4; a < c && c > b { fmt.Println("c") } else if a = 3; a == c { fmt.Println("a") } else { fmt.Println("b") }}

2022-04-06 15:17:38 205

原创 go map使用和原理

go map使用和原理

2022-04-06 14:58:41 778

原创 go数组和切片

go数组和切片

2022-04-06 14:54:20 707

原创 go 基础

1、go关键字 break(和c一样用于退出循环) default(当 select 中的其他条件分支都没有准备好的时候,`default` 分支会被执行。) func(声明函数) interface(声明接口) select select 是 Go 中的一个控制结构,类似于用于通信的 switch 语句。每个 case 必须是一个通信操作,要么是发送要么是接收。 select 随机执行一个可运行的 case。如果没有 case 可运行,它将阻塞,直到

2022-04-06 14:29:13 826

原创 Go 环境变量、go env

1、常用环境变量GOROOT 指的是go的安装路径,导入go内部库时会去goroot寻找。GOARCH 表示目标机器的处理器架构,它的值可以是 386、amd64 或 arm。GOOS 表示目标机器的操作系统,它的值可以是 darwin、freebsd、linux 或 windows。GOPATH 存放第三方库的路径不同于其他语言,go中没有项目的说法,只有包, 其中有两个重要的路径,GOROOT 和 GOPATHGOROOT是安装目录,GOPATH是我们的工作空间, 用来存放包的目录GOP

2022-04-06 14:11:31 7407 1

原创 Go语言的前景、优点

Go语言的前景、优点go是google开源的编程语言,诞生于2006年,2012年发布稳定版。有道是背靠大树好乘凉。作为大厂设计开发的语言,它拥有更好的背景以及发展。go自带GC,因此程序员不需要操心内存的释放与回收。相比java、c++,它的语法更加精简,less can be more的思想得到了完美的体现,因此go语言上手更快。它的基础语法和编程范式和c语言相差不大,如结构体、指针

2022-04-06 11:18:07 4699

原创 docker 删除某个镜像创建的所有容器

命令如下:docker rm $(docker ps -a | grep cae5f8e9bd47 | awk '{print $1}')其中 cae5f8e9bd47 是镜像的ID主要利用了awk '{print $1}'来打印第一行的容器ID,然后将结果当作参数传给docker rm命令。

2021-08-06 21:08:03 519

puTTY汉化工具包大全,包含有putty, pageant, plink pscp, psftp, puttygen, puttytel

puTTY汉化工具包大全,包含有putty, pageant, plink pscp, psftp, puttygen, puttytel的汉化版,只要1积分

2019-01-04

MTracerFree_2.1 正则表达式验证工具

则表达式工具 Match Tracer 是一款用来编写和测试正则表达式的工具软件。 本软件通过可视化的界面,可以协助你快速、正确地写出复杂的正则表达式。 主要功能: 根据正则表达式语法,彩色显示表达式,使表达式便于阅读。 同步将正则表达式的组成显示在 "树结构" 和 "分组列表" 中,使正则表达式结构一目了然。 详细记录每一个匹配结果,包含分组结果以及所花费的时间。 可进行 "忽略大小写","单行模式","多行模式","全局模式","从左向右","扩展模式" 等模式下的正则表达式测试。 可单独测试表达式中的一部分,有利于分段调试复杂的正则表达式。 您可以设置一个匹配起始点,方便排查表达式错误。 支持高级正则语法,例如递归匹配等。 可以保存文本片段,例如表达式或者其他文本,也可以跟任意其他编辑器之前相互拖动。 可以保存当前表达式为一个‘快照’,使您可以放心改写表达式。

2018-10-20

ssh-tectia-client 6.3.2

SSH-tectia Client是Windows下一款最佳的SSH连接工具。有了它,连接Linux系统,执行命令,浏览文件等将变得异常轻松。

2018-10-13

notepad++7.33

Notepad++是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。 Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组

2018-10-13

django-docs-1.11-en

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

2018-10-13

DeskPins 1.30

还在为桌面某个窗口无法置顶无法置顶而烦恼吗》?? 一款小工具:DeskPins帮你搞定。。 使用方法:打开DeskPins.exe 会在桌面右下角生成图标,左键点击,然后在点击你要置顶的窗口即可使用。

2018-10-13

Chrome安装(2018最新)

Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。 软件的名称是来自于称作Chrome的网络浏览器GUI(图形使用者界面)。软件的beta测试版本在2008年9月2日发布,提供50种语言版本,有Windows、OS X、Linux、Android、以及iOS版本提供下载。 [1] 谷歌将在谷歌浏览器Chrome上推出“小程序”增强型网页应用( Progressive Web Apps,简称 PWA)

2018-10-13

NppFTP_0.26.3

支持FTP、FTPS、FTPES和SFTP通信的记事本+插件 使用 若要开始使用插件,请使用显示NppFTP窗口选项从插件菜单,或使用记事本+工具栏按钮。若要查找有关插件的一些信息,请使用关于NppFTP菜单中的选项。那里有一个链接到NppFTP站点的按钮。 配置 NppFTP有两个配置对话框。可以通过单击NppFTP工具栏(COG图标)中的“设置”按钮来访问这些文件。 一般配置 在常规配置对话框中,可以输入默认的缓存位置。有关更多细节,请参见[缓存路径]。它将映射到服务器上的根目录(/)如果配置文件没有提供其他缓存位置,则这将始终是目标。 轮廓配置 在配置文件配置对话框中,可以创建、修改和删除配置文件。最初,不存在配置文件,也无法建立连接。若要创建新配置文件,请单击“添加配置文件”按钮并输入新配置文件的名称。请为您自己的使用提供一个独特的名称。使用相应的按钮重命名和删除配置文件。 在“连接”选项卡中,可以输入每个连接的设置。至少提供主机名(地址)和端口。在“传输”选项卡中,可以编辑FTP传输的设置。在缓存选项卡中,可以为所选配置文件添加特定的缓存映射。有关更多细节,请参见[缓存路径]。

2018-10-13

bootstrap-3.3.7-dist

Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。 [1] Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 [2] 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。

2018-10-13

bootstrap-3.3.7源码

Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。 [1] Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 [2] 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。

2018-10-13

SSHSecureShellClient-3.2.9

SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。

2018-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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