自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的天空 我的梦

自由翱翔在追求理想的浩瀚天空当中

  • 博客(235)
  • 资源 (10)
  • 收藏
  • 关注

原创 UbutnuServer 20.04手动部署Kubernetes

Kubernetes是Google开源的容器引擎,由于单词很长,常常简称为k8s,8代表k和s之间有8个字母。k8s包含很多组件,用来对容器进行组织,可以对容器进行编排,自动管理容器的运行,实现滚动更新,进行负载均衡等。由于k8s集群搭建非常复杂,出现了很多部署k8s的工具,但是由于国内网络环境的问题,使用这些工具,我们依然很难获取到k8s搭建需要的镜像文件,因此需要采取一些手段来获取搭建环境需要...

2019-03-24 09:56:07 981

原创 docker环境变量使用

docker是目前使用很广泛的容器技术,它不同于虚拟机,docker使用了Linux内核提供的命名空间和cgroups等技术,利用沙箱机制,将不同容器的运行环境进行了隔离,保证了软件系统在部署上的封装和安全。docker在提供部署安全性的同时,也在改变着我们开发的方式。在以前的系统中,为了方便对系统的配置进行修改,我们常常将系统可配置的参数放置在配置文件或者数据库中。但是,有些配置,比如数据库...

2019-03-10 07:58:35 7052

原创 为什么要学习多种编程语言

新的一年开始了,先祝大家猪年诸事顺利。过年期间文章停更几周,今天正式回归。今天的文章可能是一个老生常谈的问题,软件工程师到底是否需要掌握多种编程语言?如果一直看我博文的人应该了解,我掌握的编程语言就不少,系统编程的C/C++,Web开发的Java和JavaScript,脚本语言Python和Shell,最近非常喜爱的全能语言Golang,迫于Android开发使用的Kotlin,iOS开发的O...

2019-02-23 11:51:38 14937 13

原创 软件中的通信之道

一个软件系统总是由很多不同功能的子系统组成的,每一个子系统又会采用不同的设计方式,会包含不同的模块,会编写不同的代码,有不同的函数和变量。我们今天的文章将目光放在软件中存在的各种通信上,从宏观的角度看看软件系统。百度百科对通信的定义是这样的:通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法,任意媒质,将信...

2019-01-13 09:53:05 1382

原创 2018年终个人总结

转眼间2018年马上就要结束了,又到了写个人总结的时候。回头看看去年的个人总结,自己大部分目标都实现了,还是很欣慰的。2018年总的来说就是一个字:新。这个新让我经历了很多,也让自己重新认识了自己。新年新问题2018年1月到2月,新的一年开始了,这两个月,自己好好学习了机器学习的相关知识,了解了一些新的技术。本以为努力追求技术,就可以让自己忘记心中的种种矛盾,可是却恰恰相反,自己更多的开始...

2018-12-30 23:35:49 4874 1

原创 软件技术中的道与术

说起专业基础课,编程语言和各种库和框架在软件开发中的地位,大家可能会有不同的看法,关于深入学习什么,也存在着各式各样的看法。有的人认为,只要熟悉一门编程语言,然后深入学习这门语言实现的各种框架,就可以做好相关领域的开发;还有一些人认为,我需要广泛的学习各种编程语言,做一名语言专家,这就好比是编程领域的翻译;也有深钻专业基础课和各类算法的人,这类人内功深厚。总之,每个人对自己喜欢和关注的领域可能都不...

2018-12-15 13:14:14 6926 11

原创 我的软件修习之路(三)——实践出真知

研究生毕业以后,我的职业之路正式拉开序幕。为了能够接触更多的软件牛人,我选择了到北京工作。也因此和老婆开始了异地生活。生活虽然苦,但是为了将来,我认为还是值得的。初到北京,工资不是很高,为了能够给家里多节省一些钱,选择了在离公司比较远的回龙观租了房子。在北京工作的人应该了解,北京北面的回龙观,天通苑,西二旗等地都是我们北漂一族租房的首选,所以地铁13号线的人流量一向是很大的,站着人挤人基本上是...

2018-12-01 12:11:02 800 1

原创 我的软件修习之路(二)———柳暗花明

离开了本科校园,2010年9月新的旅程开始了。刚进入研究生阶段,一切都很新奇,自己选课,自己安排时间。导师徐老师也非常开明,研一让我们尽可能学好研究生阶段的课程,并没有安排很多的研究任务。正是有这一年的时间,让我想清楚了很多问题,也让我研究生三年的时间没有白白浪费。徐老师非常看重数学,直到现在我还记得老师当时的教诲。大学阶段最有用的课程可能就是数学,当你工作时间越长,越会发现数学的强大。对照上...

2018-11-17 11:15:08 402 2

原创 我的软件修习之路(一)——迷茫

2006年,高考结束,出于对物理的喜爱和未来就业的考虑,我选择了机械设计制造及其自动化专业。当时喜欢用电脑玩游戏,也曾考虑过是否能写出自己的程序,可是我并没有考虑计算机相关专业。回想当时的情形,可能是自己觉得这些专业比较高端,自己选择的几所高校的这类专业也非强项,就放弃了。机械设计及其自动化专业,被定位为宽基础的工科专业。因为机械是所有工业的基础,所以机械的学生就应当了解除去机械本专业之外的其...

2018-11-04 20:21:33 673

原创 Golang使用WebSocket通信

使用Golang能够创建WebSocket通信,只需要使用golang.org/x/net/websocket包即可,该包有可能被墙,无法使用go get下载,但是我们可以从golang中国提供的地址下载,然后将包放在对应的路径下。WebSocket是一种通信协议,旨在改善HTTP作为无状态协议通信的效率问题,WebSocket是客户端与服务器之间的全双工连接,客户端和服务器只需要建立一次连接...

2018-10-27 12:52:03 31625 9

原创 Golang如何优雅地提取JSON数据中需要的字段数据

JSON数据是我们开发中经常遇到的一种数据格式,一般通用的做法是,我们通过建立实体类,然后利用一些框架将JSON数据转化为对应的实体类对象,这样我们就可以方便地访问JSON数据了。但是有些时候,一个JSON对象很大,字段很多,而我们可能只需要其中的几个字段值,这在调用第三方API时可能经常发生,我们完全没有必要为了访问几个字段而创建一个很大的实体类对象,使用过C#的开发者会很自然地想到LINQ...

2018-10-13 10:12:02 22752

原创 Golang对excel进行处理

国庆节祝我们的祖国更加繁荣昌盛,想必大家在国庆期间也好好放松了一下,中秋节过节停更了一次,家里面有孩子了,放假期间希望能好好陪陪孩子,请大家谅解。今天发一篇技术文章,帮助大家逐渐回归到正常的工作状态。之前有关Golang的文章主要是基于Golang的标准库来讲解的,今天我们来看看Golang的一个开源库,它可以用来处理xlsx文件,首先下载包go get github.com/teale...

2018-10-06 09:59:58 15090

原创 利用golang通道优化TCP Socket服务器

前面的几篇文章分别介绍了UDP和TCP进行Socket编程的方法,在TCP的文章中,我们除了传统的阻塞型服务器,还给出了多线程服务器的实现方式。今天我们利用golang的通道,给出一种更加高效的服务器设计。package mainimport ( "fmt" "net" "os" "strconv" "strings" "go-study/socket/config&quot

2018-09-15 10:25:10 9310 3

原创 golang TCP Socket编程

上一篇文章介绍了golang进行UDP编程的方式,本篇文章继续golang的网络编程,我们看看如何实现TCP编程。UDP传输的是数据包,传输时不会建立实际的连接,UDP传输数据不会保证可靠性。TCP则不同,它会维持客户端和服务器之间的连接,并且保证数据传输的可靠性,服务器和客户端之间会维护连接,使用流的方式进行数据传输。因此,UDP客户端接收的是一个个数据包,而TCP客户端接收到的是流,因此会存在...

2018-09-09 09:54:55 7413

原创 golang使用UDP进行网络通信

golang提供了网络编程使用net包,使用net包可以进行很基础的socket编程,如果希望了解socket的一些基础知识,可以参看我之前的文章,虽然是Java示例,但是前面的原理说明不会因为语言的差别而不同。今天我们一起看看使用golang如何实现UDP编程。代码分为server端和client两部分,实现的功能与Java版的类似。他们共同使用一份config.go文件。config.go...

2018-09-02 16:21:14 53692 1

原创 Golang如何正确的停止Ticker

Golang可以利用time包的Ticker实现定时器的作用,最近使用Ticker时,发现调用Ticker的Stop方法无法正确的停止Ticker,协程会阻塞在等待Ticker的C通道处,精简后的代码如下:func UseTickerWrong() *time.Ticker { ticker := time.NewTicker(5 * time.Second) go func(ticke...

2018-08-25 10:44:27 16792

原创 Golang并发以及通道的使用

Golang最擅长的就是并发编程,使用Golang可以很方便的进行并发编程。先看一段普通的代码package mainimport ( "fmt" "time")func Foo(i int) { fmt.Printf("%d will sleep\n", i) time.Sleep(5 * time.Second) fmt.Printf("%d wake up\n", ...

2018-08-18 11:30:06 3979

原创 Golang方法不同类型接收者的区别

Golang中对方法和函数进行了区分,函数就是传统意义上的函数,定义方式如下:func 函数名(参数列表) (返回值列表) {}方法在函数的基础上添加了一个接收者,接收者可以是结构体类型的变量或指针,也可以是slice或者map,也就是说,无法将基本类型的变量或指针作为方法的接收者,只有复合类型的变量或指针才可以作为接收者,定义方法的方式如下:func (接收者) 方法名(参数列表...

2018-08-05 11:41:25 2957 2

原创 《区块链技术驱动金融》读书笔记

一、密码学及加密货币概述1.加密数字货币需要去中心化,通过安全规则保证安全,而不是依赖于中央机构2.密码学可以防止对系统的干扰,还能避免混淆,将新货币创造的规则编码到数学协议中3.哈希函数有三个特性:(1) 输入为任意长度字符串(2) 产生固定大小的输出(3) 在合理的时间得到输出,一般为O(n)4. 哈希函数满足三个附加特性:抗冲突能力,隐秘性,谜题友好5. 哈希...

2018-08-02 08:41:58 2950 1

原创 Golang结构体中Tag的使用

Golang中可以为结构体的字段添加tag,这类似于Java中为类的属性添加的注解,Golang本身的encoding/json包解析json使用了tag,一些开源的ORM框架,也广泛使用了tag,那么,我们如何通过代码自己实现tag的解析,从而简化结构体字段的使用方式呢?下面看一个例子。假设有一个Person结构体定义如下type Person struct { Name ...

2018-07-28 13:50:09 12614

原创 Golang基本程序结构

今天的文章,我们来了解一下Golang的程序结构,只有知道Golang的组成,才能够在使用时有的放矢,选择合适的方式。包和包的初始化Golang中的包是按目录结构组织的,下面假设是一个GOPATH下的src中的目录结构src    folder1        folder2            foo1.go            foo2.go则我们的包引用路...

2018-07-21 13:36:44 1203

原创 docker-gitlab配置

最近gitlab使用docker配置遇到坑,官方要求修改/etc/gitlab/gitlab.rb如下:external_url 'http://docker宿主机IP:将docker的80端口映射出的端口号'gitlab_rails['gitlab_shell_ssh_port'] = 将docker的22端口映射出的端口号除此之外,还要修改一个配置# nginx['listen...

2018-07-20 15:08:12 418

原创 闲聊Golang对C语言的改进

看到标题,大家可能会奇怪,为什么将Golang与C语言进行比较?这里主要有三方面的原因,一方面,可以说Golang和C都是源于同样的理念设计的编程语言,上一篇文章有说过,UNIX创始人之一Ken Thompson是Golang的设计者,同时,他也是C语言设计者之一,他深知C语言存在的问题和影响其开发效率的因素,希望在Golang上得以改善;其次,Golang设计之初就希望成为和C/C++一样的系统...

2018-07-14 12:04:25 4645

转载 VMWare12 安装ubuntu18.04无法显示共享目录

在安装VMTools时有一个选项Would you like to enable VMware automatic kernel modules?      [no] yes一定要输入yes

2018-07-09 14:47:08 1538

原创 初识golang

go语言是Google于2009年发布的一款编程语言,设计者之一的Ken Thompson名声显赫,他是图灵奖获得者,同时是UNIX创始人之一。go语言语法简洁,运行效率高,由于之前有很多语言的经验可以借鉴,go语言尽可能解决以前的编程语言存在的问题并引入了自己的优势。最近学习了go语言,总的来说,go语言解决了很多C语言开发中的痛点,同时保留了C语言的语法简洁的特点,与Java,C++等语言形成...

2018-07-07 11:00:40 635

原创 老汤回味——C语言与面向对象编程

今天的文章我们来看看如何结合面向对象的思想使用C语言写出结构良好的代码。直接看代码,然后我们来分析一下代码中的含义。首先是头文件user.h:#ifndef USER_H#define USER_H#define USERNAME_LEN 255#define PASSWORD_LEN 255typedef struct { char username[USERNAME...

2018-06-30 09:03:42 3835

原创 老汤回味——C语言结构体和联合

C语言的结构体是不同数据类型的组合,可以实现对数据的整合,可以定义自己的数据集,结构体的定义如下struct 结构体名 {        类型 成员名1;        类型 成员名2;        ......};例如我们定义一个结构体代表用户struct user {        char username[255];        char password[255];        i...

2018-06-23 10:18:20 616

原创 老汤回味——C语言函数

函数是C语言的重要组成部分,通过函数我们可以将复杂逻辑进行封转,缩减程序员在编码和维护中的关注点数量,提高代码质量,方便对代码进行维护。函数声明用来说明我们的代码中包含一个什么样的函数,函数声明可以放在头文件(.h)或者源文件(.c)中,函数声明的格式如下:返回值类型 函数名(参数表);函数定义是函数的实现,函数定义的格式如下:返回值类型 函数名(参数表) {        C语言语句}函数声明不...

2018-06-09 11:09:52 418

原创 树莓派3b安装teamviewer问题总结

1.安装teamviewer时,使用命令sudo apt-get -f install安装依赖失败自己更换了阿里的国内下载源,但是配置文件/etc/apt/source.list写错了deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contribdeb-src http://mirrors.aliyun....

2018-06-03 10:22:15 5764 2

原创 老汤回味——C语言指针,数组及动态内存分配

了解过C语言的人,都会知道C语言有一种独特的变量,那就是指针。指针是一把双刃剑,它为我们提供了操作内存的手段,但同时不恰当的使用,会为我们带来很多麻烦。如何理解指针呢?如果把一个个内存单元看做一个个房间,指针就好像一个个指示牌(内存地址),通过指示牌,我们也可以找到房间(内存单元),查看房间里面的东西。比如现在有一个整型变量a,我们可以理解为一个门牌号为a的房间,我需要拿到这个房间的指示牌,只需要...

2018-06-02 12:11:00 9563 1

原创 老汤回味——C语言运算符及类型转换

今天的文章一起来看看C语言的运算符,而和C语言运算符直接相关的一个问题就是类型转换。下面先来看看C语言有哪些运算符。算数运算符算数运算符包括:加(+),减(-),乘(*),除(/),取余(%),自增(++),自减(--),下面上代码,直接看例子。#include <stdio.h>int main(void){ int a = 10; int b = 2; printf("...

2018-05-26 09:49:12 817

原创 老汤回味——C语言基本数据类型及printf打印

C语言是一种强类型语言,也就是说,C语言的变量使用要严格符合定义,所有变量都必须先定义后使用。另外,printf必须使用对应的转换说明符才能打印对应的数据类型数据,下面我们整体了解一下。有符号整型有符号整型可以用来定义正整数和负整数,有下面几种类型:int:最常使用的类型,是系统的基本类型,C语言标准规定,int类型至少16位长。printf中使用%d进行打印。short或short int:C语...

2018-05-19 11:17:37 9239

原创 老汤回味——C语言基本介绍

在软件世界,有很多东西像陈年老酒一样,时间越久越香醇,C语言就是其中之一。C语言伴随着UNIX系统而产生,却一直居于编程语言排行榜前列,最近几个月的TIOBE编程语言排行榜,C语言的涨幅惊人,再一次焕发了活力。C语言在现阶段,主要用于操作系统和嵌入式系统开发中,物联网行业大量硬件设备的对接,也需要C语言的参与,这也是C语言复苏的原因之一。C语言语法轻巧简洁,但是和硬件有很好的亲和力。自己以前一直在...

2018-05-12 11:32:15 540

原创 Arduino简单抢答器DIY

今天的文章继续玩板子,利用Arduino,DIY一个抢答器,需要的元器件:Arduino板子;1k电阻一个;开关一个;红色LED一个;蜂鸣器一个;面包板;导线若干;接线如图所示:开关单独连接,我们观察开关的按下抬起状态,然后控制LED点亮,控制蜂鸣器发声。开关接GPIO13,LED和电阻串联接在GPIO12,蜂鸣器接在GPIO11,其他原件引脚全部接地。接好线,我们开始编写代码,代码如下:cons...

2018-05-05 11:22:55 10459 6

原创 树莓派接入USB摄像头

前面的文章有提到过树莓派,作为卡片电脑,树莓派可以连接许多外设,今天就来看看如何使用树莓派连接USB摄像头。现在市面上的USB摄像头基本上都是免驱的,不过要注意,我们要确认摄像头在Linux下也是免驱的。说明一下自己使用的摄像头,注意不是做广告XD,五一期间京东买的奥尼狼魔,仅售49元,买回来接在树莓派上玩玩。准备工作在开始下面两项工作前,树莓派应该已经设置了静态IP,或者路由绑定了IP,否则每次...

2018-04-30 10:39:29 69724 17

原创 Arduino点亮LED

本周入手一块Arduino UNO,Arduino是一款便捷灵活、方便上手的开源电子原型平台。虽然硬件配置方面不如树莓派强大,但是Arduino提供了数字接口和模拟接口,更加适合于进行设备和传感器的控制以及数据的获取。一般上手使用开发板,都要先点亮LED,Arduino数字引脚输出电压为5V,直接接LED会将LED烧坏,我们串联一个1kΩ的电阻,电路图如下所示,使用fritzing绘制。另外需要注...

2018-04-21 10:59:52 14607

原创 k-means聚类算法

之前介绍的几种算法,都是监督学习算法,我们需要对数据进行预处理,也就是在使用数据前,需要对数据集的样本数据进行标记。今天我们看一种无监督学习算法——k-means。k-means算法用来实现聚类,什么是聚类?打一个比方,我们在袋子中放着各种水果,我们事先并不知道有哪几种,通过一些算法,我们可以借助于特性将水果聚集为几个类别,然后我们再去看这几个类别分别代表了什么水果。k-means算法的思想非常简...

2018-04-14 09:54:58 2593

原创 线性回归算法原理及实现

我们之前介绍了几种机器学习算法,这些机器学习算法都是用来进行分类的。今天换换口味,我们来了解一下如何进行回归,回归是基于已有的数据对新的数据进行预测,比如预测产品销量。我们来看看最简单的线性回归,基于标准的线性回归,可以扩展出更多的线性回归算法,比如基于核函数的局部加权线性回归,lasso等。希望了解的可以查阅相关的资料。下面来看看最基本的线性回归的原理。根据线性代数,我们可以定义线性方程组Xw=...

2018-04-05 16:32:15 27844

原创 sklearn中的Logistic回归

上一篇文章,我们简单介绍了Logistic回归算法进行二分类的原理,并通过代码了解了Logistic回归算法的实现。Logistic回归算法理论上只可以处理二分类问题,实际应用中,如果需要处理多分类问题,有两种改进方式。这里推荐一篇博文.sklearn中本身提供了Logistic回归算法,而且可以处理多分类问题,今天的文章真的很简单。from sklearn import datasetsimp...

2018-03-30 09:39:28 1747

原创 Logistic回归算法

今天的文章看一下《机器学习实战》中提到的Logistic回归算法。虽然是名称是回归,但Logistic算法并不用来进行拟合,主要用来处理分类问题。对于二分类问题,我们假设正类的标签值为1,反类的标签值为0,我们可以寻找一个函数,在给定输入(样本特征值)下,可以输出0或者1。最好的函数应该是单位阶跃函数,如图所示:但是,单位阶跃函数存在一个问题,在0处,函数不连续,这会给我们的后续的数学运算带来很多...

2018-03-24 10:54:59 559

Android录像,拍照,连拍,定时拍照

代码实现了Android的录像,拍照,连拍,定时拍照等功能,并提供了相应的Demo

2016-12-07

virtio-win-0.1.204.zip

virtio镜像,用于在openstack上安装windows使用

2022-01-05

Android拍照,连拍以及自动拍照

Android拍照,连拍以及自动拍照

2016-12-05

Android利用MediaRecorder录音

Android利用MediaRecorder录音

2016-12-06

OneClickRecoveryV9-4.0.0.8

刷机用的Recovery,很好用,在手机上安装运行后就可进入recovery模式

2013-07-20

UNP配套源代码

UNP配套的源代码,配合书本可以让你很好地掌握网络编程。

2013-03-13

APUE配套源码

APUE源代码,包括了全书的所有代码,具体的编译可以查看README,或从网上查找。

2013-02-25

Android拍照

Android拍照

2016-12-02

PIL for python3.4

PIL for python3.4 内附修正报错无法安装的时的脚本

2015-11-25

python3.4 64位的PIL

python3.4 64位的PIL,可以cmd输入python查看python版本及位数

2015-11-25

空空如也

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

TA关注的人

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