自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CodeMan

I am not a monkey but a pure super MAN

  • 博客(87)
  • 资源 (24)
  • 收藏
  • 关注

原创 goland远程调试k8s上容器

goland远程调试k8s上容器 上次也遇到过一次需要在k8s的容器里debug程序的情况,当时找了个偷懒的办法绕过去了,这回绕不过去了,老老实实整一把。主要还是用dlv配合goland的远程调试功能。

2022-09-01 20:16:10 89357 1

原创 rancher导入集群时证书报错

你猜怎么着我的老baby……

2022-06-28 20:26:42 8261

原创 一个小技巧:修改swagger源码让postman更好用

本文假设你知道swagger,并且会用go:generate swagger generate spec -o swagger.json生成json。首先生成的swagger.json是可以直接导入到postman的,其中的example会导入到postman的example。// SignInParameter// swagger:parameters SignIntype SignInParameter struct { // required: true // in: body Data

2021-01-03 11:35:00 4576

原创 5分钟用kubeadm部署k8s

kubeadm部署k8s玩了两年rke,想试试原生k8s,没想到部署起来还挺容易的,直接上干货,有问题留言。文章目录kubeadm部署k8s配置主机安装依赖kubeadmdocker配置kubeadm并拉起k8s使用kubectl添加Node添加网络插件清理排障etcd容器报错: pkg/flags: conflicting environment variable "ETCD_ADVERTISE_CLIENT_URLS" is shadowed by corresponding command-lin

2021-01-02 09:59:52 5655

翻译 Go并发模型:流水线与取消(Pipelines and cancellation译文)

Go并发模型:流水线与取消 (Go Concurrency Patterns: Pipelines and cancellation)本文不只是简单的翻译,有些地方根据自己的理解用中文习惯重新组织了语言,所以可能会有局部的顺序不同,但是读起来更通顺。所以如果对文中任何部分有疑问可以直接体温,保证知无不言。英文原版: https://blog.golang.org/pipelines简介go语言的并发机制可以使CPU及IO更高效的处理数据流。本文展示几个例子来介绍下流水线以及执行操作失败时的细节,

2020-06-23 15:27:07 7787

原创 go语言interface设计的一点思考

昨天到公司看到有人在群里把go跟java的interface做比较,提出go宣称的“非侵入式”好像也没那么好用,甚至跟java差不多。但实际上go语言的接口设计并不只是语法本身,也包含了开发流程跟思维方式在里面,下面把当时在群里的回答整理一下放出来。其实可以这样来理解:Java语言的开发风格是设计先行,即先定义规范,然后去挨个实现(就是先定义有什么方法,然后再写出来方法体)。而go语言是“先做再说”,即先把功能实现,然后抽取出接口。在实际开发流程中,早先的从文档到代码的流程,确实Java更符合。但是

2020-06-23 11:28:12 235 1

原创 Go并发实践

Go并发实践废话不多说,先来几行代检验下你是否适合本文,如果你发现看不懂建议先去看看简单点的东西。go f()go f("abc", 123)ch := make(chan int)go func() { c <- 123}()fmt.Println(<-ch)简单的例子ok,下面假设这样一个场景,有一家新闻媒体会持续向官方网站输出最新消息,刚好他们的后端提供了一个api可以获取指定分类的最新消息以及该类别预计下次有新消息的时间。我们再假设一下,他们还提供了一个SDK来帮助我们

2020-06-18 19:02:08 14023

翻译 Go并发模型:超时,继续(Timing out, moving on译文)

Go并发模型:超时,继续 (Go Concurrency Patterns: Timing out, moving on)英文原版: https://blog.golang.org/concurrency-timeouts并发编程有它自己的特点,比如超时。虽然go语言的channel没有直接支持,但是这些特点很容易被实现出来。假设我们想从一个channel读取数据,并且最多等他1秒钟,首先可以创建一个带信号的channel然后开一个goroutine先sleep1秒再往channel发数据:timeo

2020-06-15 16:07:43 2196

原创 golang从channel读数据的各种情况

文章目录用var定义channel且不make用var定义channel且make直给写操作加for直给读操作加for读写都加for读channel的第二个返回值关闭channel继续读写完然后关闭channel再开始读加个selectchannel未及时关闭总结用var定义channel且不makewg := sync.WaitGroup{}var ch chan stringread := func() { fmt.Println("reading") s := <-ch fmt.

2020-05-22 15:18:37 19801

原创 golang的map为什么不设计成同步(安全)的

map可能是其他比较大的数据结构或者算法的一部分,而这些数据结构或者算法可能已经是同步的了。这种情况下如果map本身也保证同步的话,就需要每个map本身都维护一个锁,毫无疑问这样会在同步方面多此一举的同时拖累程序。需要注意的是,正因为map采取了这样的设计,所以在用map的时候一定注意,如果异步做修改操作会导致程序崩溃。(异步读数据没问题)另外,有时候线程安全的map还是需要的,除了自己加锁之外,可以用sync.Map,具体用法源码及其注释已经介绍的很清楚了。对其实现感兴趣的可以看下它的Store方

2020-05-21 21:55:53 3025

原创 golang为什么用协程而不是线程

当协程阻塞的时候,运行时会自动将统一操作系统线程上的其他协程移动到另一个可运行的线程上,这样这些协程就不会阻塞,并且这个操作对开发人员来说是透明的。调用协程的开销很小,大概只在内存的栈区用几KB,而且通常几KB就够用了。即便不够用,运行时也会自动在栈区多分配点。每次方法调用平均只占用3个CPU指令。数据来源:https://golang.org/doc/faq...

2020-05-21 21:24:15 2367 4

翻译 GoModule:v2及新版本(Go Modules: v2 and Beyond译文)

GoModule:v2及新版本英文原版:https://blog.golang.org/v2-go-modules介绍这是系列文章的第一部分1-使用GoModule2-迁移到GoModule3-发布GoModule4-GoModule: v2及新版本(当前)随着项目中新需求的添加,之前的功能和设计可能不太合适。开发者可能移除废弃的function,重命名type、或者将package分割...

2020-03-21 11:19:37 1813

翻译 发布GoModule(Publishing Go Modules译文)

发布GoModule英文原版:https://blog.golang.org/publishing-go-modules介绍这是系列文章的第二部分1-使用GoModule2-迁移到GoModule3-发布GoModule(当前)4-GoModule: v2及新版本本文讨论如何编写和发布module,以便其他module可以依赖它们。请注意:这篇文章涵盖了v1及以下版本的开发...

2020-03-20 22:54:18 1424

翻译 迁移到GoModule(Migrating to Go Modules译文)

迁移到GoModule英文原版:https://blog.golang.org/migrating-to-go-modules介绍这是系列文章的第二部分1-使用GoModule2-迁移到GoModule(当前)3-发布GoModule4-GoModule: v2及新版本Go项目使用多种依赖管理策略,像dep和glide这种vendor模式的工具很流行,但是他们的行为有很大差异,...

2020-03-20 21:43:25 1842

翻译 使用GoModule(Using Go Modules译文)

使用GoModule英文原版:https://blog.golang.org/using-go-modules介绍这是系列文章的第一部分1-使用GoModule(当前)2-迁移到GoModule3-发布GoModule4-GoModule: v2及新版本Go1.11和Go1.12包含了初步的GoModule支持,这是一种新的依赖管理系统,它能够更简单精确地管理依赖包的版本信息。...

2020-03-20 16:35:45 2057

原创 在gitlab通过webhook触发Jenkins的job中用script获取当前分支

文章目录webhook给jenkins发了什么找对分支名了吗第一种方法调整分支第二种方法调整分支感谢webhook给jenkins发了什么gitlab触发jenkins的job是通过webhook完成的,也就是一次http请求,请求体在jenkins的job的ConsoleOutput中可以看到。长这样子(网页上的json是一坨,这里format了一下):GenericWebhookEnvi...

2020-03-18 21:13:26 3716 1

原创 【个人笔记】rancher远程调试搭建

rancher远程调试搭建文章目录rancher远程调试搭建配置主机(关防火墙,关SELinux)安装docker安装go环境下载go配置环境变量安装dlv拉代码配置goland远程代码远程调试运行docker运行rancher-ui安装nodejs安装 yarn拉代码启动访问dockerfile说句闲话:这本是一篇笔记,本来没想发出来,但是突然有道云这个坑货,将另一篇笔记的内容完全覆盖了这一...

2020-01-03 15:48:11 1463

原创 Windows10访问Ubuntu子系统(WSL)的桌面环境

Windows10下访问Ubuntu子系统(WSL)的桌面环境文章目录Windows10下访问Ubuntu子系统(WSL)的桌面环境Why Linux ?Why WSL ?开始WSLUbuntu换源更新与升级安装桌面环境xubuntu安装远程桌面服务xrdp配置xrdp端口配置xsession此时建议重启一下电脑启动xrdp远程连接汉化安装chrome安装中文输入法美化结语Why Linux ...

2019-05-14 19:44:52 70701 33

原创 当macaron的session配了redis并且遇上了websocket——一个session“不”更新的bug

文章目录排错过程解决方案上个月刚好是go语言9周年,忽然发现入坑go语言也两年了,把最近一次遇到的bug分享一下,后面有时间再把这两年的基类慢慢倒出来。着急解决问题的直接点上面“解决方案”排错过程功能描述:点击项目名称切换项目。实现逻辑:前端调用后端切换项目接口,后端更新session中的项目ID,前端收到返回后刷新页面。问题描述:点击项目名称,等待刷新后出现原项目页面。我在这首...

2018-12-03 20:35:35 1139

原创 微信小程序初步认识

微信小程序初步认识微信小程序初步认识代码结构appappjsappjsonappwxsspagewxmljs数据绑定wxssjson库写在前面:本文不是官方文档的照搬,也不是官方文档的简写。而是笔者写了几个demo后的一些感受与总结,按照笔者的思路进行介绍。例如会在介绍app与page时拿android作对比,介绍数据绑定时拿vue作对比,来方便初次接触微信小程序的开发者快

2017-07-02 18:28:47 2025 2

原创 glide包管理

glide包管理glide包管理工程根目录新建一个文本文件命名为glideyaml编辑内容大致如下字段含义工程根目录新建一个文本文件命名为glide.yaml编辑内容大致如下:package: package/nameignore:- package/name/need/ignoreimport:- package: package/name/1 version: 1.0.0- pac

2017-06-20 08:51:28 1489

原创 go基本语法

go基本语法go基本语法变量基本类型定义变量数组slicemapstruct自定义类型常量语句函数面向过程的函数定义函数函数返回值变长参数传值与传指针函数作为类型与变量方法面向对象的方法方法的继承重写继承的方法interface接口作为参数接口定义变量comma-ok接口继承代码分组规则defer并发通信channelselectrunt

2017-06-20 08:26:58 4111

原创 C#之xml操作

创建XML文档对象创建根节点读取根节点根据名称获取子节点创建普通节点给节点设置属性获取指定节点的某个属性值保存xml创建XML文档对象XmlDocument xmlDoc = new XmlDocument();创建根节点XmlElement root = xmlDoc.CreateElement("root");xmlDoc.AppendChild(root);读取根节点XmlE

2016-08-09 17:51:17 1463

原创 WPF之UI知识总结

文件夹选择框在程序集中内置资源打开新窗口弹出提示框TextBox多行文本TextBlock多行文本文本显示控件文字颜色下拉选择框控件设置背景色设置点击事件设置控件z轴顺序文本对齐方式从父控件移除文件夹选择框System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowser

2016-08-09 17:50:09 647

原创 Java语言实现六种排序算法

Java语言实现六种排序算法Java语言实现六种排序算法冒泡排序插入排序归并排序快速排序希尔排序选择排序C语言版点此穿越冒泡排序从左到右依次比较相邻两个元素,如果大的在左边则交换这两个元素。 如果在依次遍历中执行过交换操作,则再次遍历,直到不发生元素交换。public static int[] sort(int[] num){ int length=num.length;

2016-07-15 11:50:09 825

翻译 AsyncTask官网API翻译

官方API翻译AsyncTask使开发者可以更轻松的使用UI线程。这个类使开发者无需操作Thread或Handler便可执行后台操作并将结果返回到UI线程。 AsyncTask被设计为一个围绕Thread和Handler的辅助类,并且不构成通用线程框架。理论上AsyncTask应该被用于几秒钟的短作业,如果线程需要运行一段时间,强烈建议使用java.util.concurrent包下的Excuto

2016-07-14 20:15:36 1077

原创 【Android自助餐】Handler消息机制完全解析(五)鸟瞰与总结

Android自助餐Handler消息机制完全解析(五)鸟瞰与总结Android自助餐Handler消息机制完全解析五鸟瞰与总结MessageMessageQueueHandlerLooper总结Message用于发送的消息本身。常用字段有what、obj等。这里没什么好说的,无非是一些消息内容及其getter、setter。要说有点营养的就是那些botain()方法了,具体内容可以看A

2016-07-13 20:54:30 8624

原创 【Android自助餐】Handler消息机制完全解析(四)Looper解析

Android自助餐Handler消息机制完全解析(四)Looper解析Android自助餐Handler消息机制完全解析四Looper解析Looper初始化prepare提供looper获取接口myLooper处理消息队列loopLooper如果你搞过Arduino,那么你肯定知道这个loop()方法。没接触过也没关系,这个方法就是一个通过死循环来重复做某件事的方法。区别是Arduion

2016-07-13 20:53:48 10178

原创 【Android自助餐】Handler消息机制完全解析(三)Handler解析

Android自助餐Handler消息机制完全解析(三)Handler解析Android自助餐Handler消息机制完全解析三Handler解析Handler构造方法创建消息obtainMessage发送消息sendMessage移除消息removeMessage处理消息dispatchMessageHandler这便是我们平时直接使用的主角。继承Handler重写其handleMes

2016-07-13 20:53:03 8997

原创 【Android自助餐】Handler消息机制完全解析(二)MessageQueue的队列管理

Android自助餐Handler消息机制完全解析(二)MessageQueue的队列管理[toc] 关于这个队列先说明一点,该队列的实现既非Collection的子类,亦非Map的子类,而是Message本身。因为Message本身就是链表节点(见Android自助餐Handler消息机制完全解析(一)Message中obtain()与recycle()的来龙去脉)。 队列中的Message

2016-07-13 20:51:01 13697 4

原创 【Android自助餐】Handler消息机制完全解析(一)Message中obtain()与recycle()的来龙去脉

提供obtain回收recycle提供obtain()在obtain的所有重载方法中,第一行都是Message m = obtain();,即调用空参的方法。 先来看一下这个空参方法public static Message obtain() { synchronized (sPoolSync) { if (sPool != null) { Mes

2016-07-13 20:42:31 14984 6

原创 Android自助餐之大图片加载

Android自助餐之大图片加载原理使用BitmapFactory.decodeStreeam()方法,该方法会调用native层代码来创建bitmap(两个重载都会调用)使用带BitmapFactory.Options参数的方法,改参数可指定生成bitmap的大小思路根据View尺寸或Window尺寸来确定bitmap的尺寸将确定好的尺寸放入BitmapFactory.Options调

2016-07-11 19:26:00 5595

原创 C语言实现六种排序算法

C语言实现六种排序算法C语言实现六种排序算法冒泡排序插入排序归并排序快速排序希尔排序选择排序下载完整源代码冒泡排序从左到右依次比较相邻两个元素,如果大的在左边则交换这两个元素。 如果在依次遍历中执行过交换操作,则再次遍历,直到不发生元素交换。int * sortByMaopao(int * num,int length){ bool flag=true; while(f

2016-07-02 13:58:54 5173 3

原创 Android自助餐之View生命周期

Android自助餐之View生命周期直接给图,一目了然!下载可编辑UML文件

2016-06-29 20:28:16 2624 3

原创 Android自助餐之RxJava手册

Android自助餐之RxJava手册Android自助餐之RxJava手册下载完整源代码观察者被观察对象方法封装类型转换线程控制下载完整源代码观察者Observer onNext()onCompleted();onError();Subscriber 继承ObserveronStart();在开始发送事件前subscriber.unsubscribe();取消订阅被观

2016-06-23 18:53:18 1561 2

原创 Android自助餐之notification

通知栏各种玩法NotificationSample网上各种玩法的demoSimpleNotificationDemo简单的通知实现CustomNotificationDemo自定义通知栏demo,实现自定义view与动态更新通知内容知识点Notificationnotification.bigContentView = view;这么做可以自定义通知的高度,但最大为200,最小为普通通知高度。如果

2016-06-18 01:24:37 1954

原创 Android自助餐之Jni(六)NDK入门

Android自助餐之Jni(六)NDK入门Android自助餐之Jni六NDK入门Android自助餐专栏Android自助餐之Jni一最简单的运行Android自助餐之Jni二静态导入so文件Android自助餐之Jni三动态导入so文件Android自助餐之Jni四在线导入so文件Android自助餐之Jni五进阶用途步骤Androidmk文件内容ndk已定义变量modu

2016-06-18 01:12:40 1534

翻译 Retrofit官网翻译

RetrofitAndroid和Java平台下类型安全的HTTP客户端简介Retrofit将HTTP API转换为Java接口public interface GitHubService{ @GET("user/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user);}Retrofit类生成GitHu

2016-06-16 20:41:39 3069

原创 Android自助餐之解析zip

Android自助餐之解析zipAndroid自助餐之解析zip获取文件的所有节点游标遍历每个节点处理一个节点解压文件思路解压某个ZipFile到指定目标路径直接用的代码获取文件的所有节点游标Enumeration entries = zipFile.entries();//ZipFile为java.util.zip.ZipFile遍历每个节点while(entries.hasMoreEl

2016-06-16 20:40:17 5559

原创 回看当年写的数独游戏重温WPF

毕业以来一直从事Android开发,很多在学校期间自学的东西都快忘了。今天拉肚子没上班,借此机会整理一下当时做的数独游戏用到的WPF相关知识点。会过,就不能让它忘了! [toc]重温WPF下载完整源代码窗口布局文件xaml根节点为<Window>表示当前窗口 WindowStyle设置为None表示不要标题栏AllowsTransparency设置为True表示允许透明WindowStar

2016-06-12 19:19:36 1706

Java语言实现六种排序算法

Java语言实现的排序算法,共六种:冒泡、选择、插入、归并、希尔、快速

2016-07-15

六种排序算法C语言实现源代码

冒泡排序、插入排序、归并排序、快速排序、希尔排序、选择排序的C语言实现源代码。内附注释说明。

2016-07-02

AndroidView生命周期(图)

AndroidView的生命周期分析图,对比xml三种visibility和在java中new的生命周期

2016-06-29

Rx使用示例(RxJava&RxAndroid)

RxJava&RxAndroid使用示例,内附使用说明手册

2016-06-23

WPF数独游戏

使用.NET框架中的WPF技术开发的数独小游戏,其中包括数独生成算法,解题算法,WPF相关技术。

2016-06-12

Android框架EventBus实例

Android事件框架EventBus使用实例

2016-05-26

Android内容提供者ContentProvider实例

简单Android中的内容提供者实例,带数据库操作。

2016-01-20

Android插件话开发Small框架应用实例

Android插件化开发Small框架的应用实例。

2016-01-20

Android属性动画Demo及知识树

Android属性动画示例Demo,附带个人总结的属性动画相关知识树。

2016-01-14

Android补间动画demo及知识树

Android补间动画实例Demo,附带个人总结的知识树。

2016-01-14

Andorid帧动画Demo及知识树

Android帧动画基本实现,附带自己总结的帧动画知识树

2016-01-14

在线导入so库文件

导入线上so库文件。通过将so文件从apk中取出放到服务器上,运行时下载并导入,极大的减小apk的大小。本实例设定so文件在github上。

2016-01-07

运行时动态导入so库文件

运行时动态导入so库文件。用最少的代码实现动态导入本地so库文件,示例设定so放在assets文件夹下。

2016-01-07

静态导入so库文件

Android Studio下开发导入第三方so库文件示例demo,用最简单的代码实现完整导入so库文件并调用native方法。

2016-01-07

Jni最简单的实例demo

Android Studio下NDK开发最简单的JNI实例demo,最少的代码量调通完整jni。

2016-01-07

Android点击事件传递分析Demo

含图!含图!含图!重要的事说三遍!看图解析Android点击事件传递,一目了然!

2015-12-22

JavaIO实例_字节流_字符流_缓冲流_转换流IODemo

JavaIO实例,包括:字节流、字符流、缓冲流、转换流

2015-12-16

JavaIO实例|字节流|字符流|缓冲流|转换流IODemo

Java中IO流实例,包括:字节流、字符流、缓冲流、转换流的操作。

2015-12-15

Java消费者生产者|线程等待线程唤醒WaitNotifyDemo

Java写的消费者生产者模式,主要用到线程同步、线程等待和线程唤醒

2015-12-13

JavaIo流分析图

分析Java常用IO流,包括InputStream、OutputStream、FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream、Reader、Writer、InputStreamReader、OutputStreamWriter、FileReader、FileWriter、BufferedReader、BufferedWriter

2015-12-11

Java动态代理ReflectProxyDemo

Java基于反射机制写的动态代理操作实例。

2015-12-11

安卓|变脸软件

用纸盖住你的手机,然后……FaceOff!

2013-06-22

图书馆管理系统(C++)

C++编程实例 图书馆管理系统 内含源码 程序参考

2013-04-21

C语言|C++|另类表白小程序|含源码

C语也可以这样玩,另类表白让你眼前一亮!

2013-03-24

空空如也

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

TA关注的人

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