Coding Husky

  • 首页

  • 关于

  • 标签

  • 归档

Linux network namespace 实践

发表于 2017-02-28 | 更新于 2017-03-06 |

Docker 中使用 linux namespace 机制来隔离不同容器的网络配置。

简而言之,一般情况下每个容器有一个独立的 network namespace,这个 namespace 和主机的网络配置是隔离的,而他们之间通过一条虚拟链路以及网桥相连。

接下来的过程通过命令行模拟了这个网络建立的过程,以便粗浅的理解 linux namespace 的原理。

阅读全文 »

用 goroutine 和 channel 搭建流水线

发表于 2017-01-25 | 更新于 2017-08-19 |

0. 将任务按不同的类型分开,例如 DiskIO,NetworkIO,CPU,能够有效地提升性能。

假设一个循环的任务由 1)下载文件、2)解压缩、3)保存到硬盘三个部分组成,总计运行 N 次。

如果one by one地做完三件事,总时间是 N * (t1 + t2 + t3) 如果组成流水线,总时间缩短到 N * min(t1, t2, t3)

阅读全文 »

解决本地 docker/minikube 没有权限拉取 AWS 的镜像

发表于 2016-12-08 | 更新于 2016-12-09 |

在本地的Docker上Pull AWS EC2 Container Services的镜像时,遇到如下错误:

Failed to pull image "url": image pull failed for url, this may be because there are no credentials on this request. details: (unauthorized: authentication required)

解决方案是用AWS CLI工具登录Docker

1
eval `aws ecr get-login`
阅读全文 »

Golang 编译最小化的 Docker Image

发表于 2016-11-28 |

普通做法

以下是引用自某开源项目的做法:

1
2
3
4
5
FROM golang:alpine
RUN apk update && \
apk upgrade && \
apk add git
RUN go get github.com/author/package

这样产生的包大约是 100MB,已经很不错了,但是还是浪费了大量空间。

比如 Golang SDK 在程序运行中根本用不到,Go Get带来的源文件同样用不到。Golang是可以编译到真二进制的的语言,只要保留程序本身和必要的动态链接库(.so)即可。进一步,如果使用静态链接,那库也可以不要。

阅读全文 »

32位程序的ROP攻击示例

发表于 2016-10-29 | 更新于 2016-10-30 |

给定的程序 readelf32 存在一个漏洞(想多了,这当然不是Linux里的readelf),它读取文件内容写入到一个局部变量,但没有正确地检查文件大小。

实验中假设 ASLR 已经关闭:

1
echo 0 >/proc/sys/kernel/randomize_va_space

阅读全文 »

Go 学习笔记

发表于 2016-10-27 | 更新于 2016-10-31 |

因为工作项目原因,跟着 tour 学习了一下 Golang。语法比较奇怪,记下备忘。

Gist link

阅读全文 »

在IntelliJ IDEA中使用Gradle的最佳实践

发表于 2016-08-16 | 更新于 2017-05-12 |

目标

在IDEA中建立一个带有Spring框架等依赖的Java工程,并用Gradle作为包管理器,该项目在Tomcat中运行

How

Step 1: 使用 Gradle 或者 IDEA 自带的向导,建立 Gradle 工程

Step 2: 向 build.gradle 中添加插件、依赖等等,例如:

阅读全文 »

天翼校园客户端逆向工程

发表于 2016-08-09 | 更新于 2017-08-31 |

本文转载自好友ZLM大神的博客 。反正几个月前离开学校的时候还能用。备个份,也许能造福后人。 如果感到正文不明觉厉请直接跳到最后的patch

阅读全文 »

九连环的解法和代码

发表于 2016-07-23 | 更新于 2016-07-24 |

今天第一次解九连环,觉得这个小玩具还是很有思想的,特把解法整理如下。

阅读全文 »

OpenCV 矩阵运算小结

发表于 2016-04-09 | 更新于 2017-08-19 |

这份总结适用于OpenCV 2 以上版本,官方详尽的文档在 这里。

概述

OpenCV 里的矩阵分静态和动态两种:

  • 动态就是 Mat 类,已经实现了引用计数,编程时几乎不用考虑内存问题;你可以将Mat看作一个头——包含矩阵内存区域的指针和矩阵的大小、类型等信息。
  • 静态以 Matx 类为代表,需要程序员自己开辟内存区域,其存储方式和数组完全一样,没有额外的存储空间,矩阵自身的信息都以模板的方式静态编译了。
阅读全文 »
1…345
Eric Fu

Eric Fu

97 日志
1 分类
32 标签
© 2015 – 2020 Eric Fu