- 博客(171)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 软件工程师英文提高的方法分享
什么需要提高英文英文对软件工程师的效用不言而喻。对于国内的工程师来说 游览国外一手的技术分享、文档,紧跟最新的国外技术趋势等 又或是 和国外工程师的交流和合作 都需要较好的英文作为铺垫;对于在国外工作的中国工程师来说,学会如何正确的翻译 也至关重要,自己的理解和能恰到好处的翻译成中文是完全不一样的,可以说是和java 和javascript的区别差不多。个人经验分享研读技术文档的时候,找到原版文档然后找他的官方翻译, 进行对照阅读.1.1 比如: 微软Azure 官方博客 英文版 https://
2020-12-26 09:53:45 432
翻译 关于MongoDB 的一些谣言
[译文] 原文 -> https://developer.mongodb.com/article/everything-you-know-is-wrong在我加入MongoDB这小一年的时间里我学习到很多新东西。在这之前通过一些关于MongoDB的介绍,对它的使用看起来如此简单印象深刻,但是从来没有上手实操过, 仅仅在我准备面试的时候我才真正的上手玩一玩。和其他人一样,之前我也道听途说很多关于MongoDB的可怕故事. "它数据之间没有关系作为连接!" “如果你只是想存储文档(Do..
2020-12-09 00:29:07 382
翻译 北弗吉尼亚(US-EAST-1)地区的Amazon Kinesis事件总结 - 译
原文链接 -> https://aws.amazon.com/message/11201/ 总结Kinesis线程数超过了系统的限制导致关键数据遗失。因为内部实现原因导致不能被很快的重启恢复,然后介绍一些短/中期的恢复方案。紧接着,介绍了Kinesis 如何影响Cognito和Cloudwatch,并且cloudwatch怎么间接的影响reactive auto scaling/lambda/ecs/eks还有service health dashboard等。译文We wanted
2020-11-29 11:56:36 1530 1
原创 数据结构 - 字典树
字典树 TrieTrie 读 Tree 或者 Try 来自 reTrieval又称前缀树(prefix tree), 能被用来快速搜索字符串 比如查英文字典时,我们是按照单词各个字母的顺序挨个查找 - words 我们会按照顺序 w -> o -> r -> d -> s.在计算机中我们可以使用树型结构来对单词进行存储以便于在查找的时候方便。上图是在一个Trie中插入单词 {"APP", "APPLE", "B", "BI", "CA"} 得出的结构. 从上图可以看出,我们
2020-05-17 08:46:19 387
原创 Intellij 在Ubuntu/Linux 下打不开了???
今天心情大好,码力打开想多写一个数据结构。知识储备差不多了就准备开Intellij 开码!!! 但是发现,点击Intellij没有反应。我真是xxxK 了。以下是找到并解决问题的路程.1.
2020-05-17 07:57:48 2495
原创 数据结构 - 树
树树型结构是一种抽象类型,用来模拟具有树状结属性的非线性的数据结构.专业术语父节点: 父节点是相对的概念, 它被它的子节点称为父节点;他被它的父节点称为子节点.子节点: 和父节点类似.叶子节点: 无子节点的节点.线性数据结构: 数据点被连续的联系在一起比如array;queue;linkedlist etc. 相反的Tree被称为非线性,因为他是层次型结构.简单路径: 一个没有重复节点的道路.高度/深度: 对一个树来说高度和深度是一样的;对一个节点来说深度是 从该节点到根节点的边的数量(自下
2020-05-11 06:56:09 389
原创 [纯干货] Java 数据结构 - 集合(Collection) 家族之间的关系
写在前面 :写本文的目的是 将java中集合的类、接口以可视化的形式进行展示,让读者能够更直观的理解和学习到他们之间的继承、实现关系;对其中常用的数据结构进行精简的总结;通过解读部分源代码之后总结出一些深层次的问题。另一个更重要的目的是加强学习和分享。有问题欢迎指出。DataStructureHierachyWhat is this?这是什么Collection Diagram...
2019-08-27 02:27:19 1103
原创 Java 并发学习 Concurrency
前言当我们设计微服务时,微服务的用户大多数情况下是同时发送很多请求给我们。 那么就要求在我们微服务的内部需要能够有多个线程(Thread) 来处理这些请求。(我们的微服务只是对外开放一个port 但是为什么能同时接受很多request? 这个问题我会单独写一篇.) 简单来说,我们的server的主进程作为一个任务的发布者,使用线程来进行分发任务。多个任务同时进行那么就会用到Concurren...
2019-05-27 08:37:28 317
原创 创建一个Web Service项目时候,需要考虑的几个事情. 以及一些思考
纲要时间飞逝,一转眼已经工作一年有余。马上换入新组,这篇博客是我对我在旧组这一年多学习到的知识的一个复盘。正文名称: 当创建一个Web Service 的时候应该考虑的问题开发之前Starting Points了解用户的功能需求 - 从高层面到具体细节。 对需求进行评估,得出 需求的优先级。 了解用户的非功能性需求 - e.g. SLA, latency, TPS, s...
2018-12-26 04:56:29 394
原创 数学 浅入浅出 的 贝叶斯
目的最近上了 机器学习大学! 想把自己觉得有趣的知识整理下,以及看看这些基础知识能在实际上有什么应用。什么是贝叶斯我的理解是 如果两个事件相互联系那么在概率上他们也存在一种联系,这种联系能被用来更加精确的得出概率结果。比如,年龄和是否得病有关,那么知道年龄从而计算出来是否的病的概率 比 不知道年龄从而计算出来是否得病的概率要更加准确。简单的例子背景:虾图城市每天下雨的概率...
2018-10-22 13:01:19 453
原创 Linux -CLI 使用 笔记
Screen 命令 - 多窗口同步作业使用screen 命令进入screen 模式.:~ yinhua$ screen使用 Ctrl + A 然后 输入 ?- 显示所有命令 help 菜单命令的 key 为 Ctrl + A (同时按) 然后输入 命令 即可.如 Ctrl + A 然后输入 w, 会显示当前状态下一共有多少个窗口 ,如下 有 4 个窗口,当前窗口编号为30 bash 1 bash...
2018-05-18 13:33:58 2773
原创 喜欢和别人分享自己的看法和技术的朋友
工作有段时间了,在某种程度上还是“小白”,建个微信群 欢迎大家加入分享自己 在工作、学习中遇到的技术和管理方面的知识。多交友、少喝酒。 另外,为了大家的学习知识的质量,咱们整点门槛。私信我你 的微信 咱们交流下再决定来不来,...
2018-05-07 10:28:22 3852 8
原创 Design Pattern - Singleton Pattern (设计模式 - 单例模式)
什么是单例模式?我们只允许某个类存在唯一的一个实例 - 换句话说,对于某个类我们只new 一次为什么使用单例?比如线程池, Metrics Object, 或者Logging Object etc. 单例可以用来减少对资源的损耗,因为对于相同目的操作我们应该尽可能的重用而不是重建。如何使用单例?方法一package Chap5SingletonPattern;public class Sin...
2018-04-23 10:58:30 629
原创 Design Pattern - Factory Pattern (设计模式 - 工厂模式)
工厂模式工厂模式是用来封装 对象的实例化的 一种模式。通俗来说,就是有同一类对象,但是我们需要根据不同的情境 比如 输入请求类别的不同来选择不同的 对象去实例化。兄dei有什么例子没?当然有,有两个例子一个是书里面的一个是工作中实际接触到的。例子1 - PizzaStore 披萨饼店情境介绍: 我们现在需要给一个披萨饼店设计系统,系统需要能够完成点餐和制作披萨的需求。package Chap4Fa...
2018-03-25 13:43:45 994
原创 Design Pattern - Decorator Pattern (设计模式 - 装饰模式)
什么是Decorator Pattern顾名思义,decorator pattern就是一种装饰性的模式,它的应用场景是 给对象动态的添加more responsibility - 真不知道咋翻译。我的理解就是 某类对象可以被令一类对象所装饰。看下面的例子。有什么例子以咖啡店为例子,咖啡店开发一个系统 来处理咖啡消费的结帐业务。咖啡店一共有四种咖啡 1. Houseblend 2. Darkroa...
2018-03-13 13:47:19 724
原创 Design Pattern - Observer Pattern (设计模式 - 观察者模式)
什么是Observer Pattern?在一个系统中,有一个对象接收数据,其他若干对象监听来自这个对象数据的变化的这种情况可以使用design pattern,接受数据的这个对象我们称为 发送者 publisher; 监听变化的对象我么称为 观察者 observer。稍微具体的例子有一个天气的基站会接受来自三个不同感应器的数据,每当 weather 数据被改变时,weather obj就会更新 d...
2018-03-11 13:04:59 490
原创 面向对象设计 - OOD (开篇)
开篇:最近在看 , 作为自我总结写下这一系列博客,此篇为开篇。正文:第一个简单的设计:我们的主角Joe,他工作的公司制作了一个非常成功的 鸭子 游戏,这个游戏能显示 很多不同种类的鸭子,并且这些鸭子有游泳和呱呱叫的能力,现在Joe要设计一个系统来实现我们描述的需求。我的第一印象:这不很简单吗,看下面类图. Duck 类 实现: Swim() 和 Quck()
2018-02-05 14:23:11 771
原创 爬虫爬虫 - 知乎的爬虫 (Scrapy 框架)
背景: 前段时间适应了工作环境之后就寻思开始自己捣鼓点东西玩玩, 于是想啊既然网上这么多爬虫教程什么的,那咱也来凑凑热闹把,毕竟我也很喜欢搞点Data玩一玩。但是拖延了好久,这不趁着回来办签证这功夫赶紧把这个push了!开发的环境:Mac OSX, Python 3.5, Scrapy 框架 Tips: 为什么使用 Python 3.5?Python
2017-12-16 10:34:03 3722 6
翻译 Java 中的map - The Map Interface.
翻译来自The Map Interface简介Map是一个键映射到值的对象。 一个Map不能包含任何的重复的键,也就是说每个键最多映射到一个值。他模拟了数学概念中的映射。Map 接口中包括了基本的操作(put,get,remove etc)和 多元操作 (putall and clear等)还有 集合视图(keyset 等)Java 平台上包含了三种主要的Map 接口的实现。1
2017-08-24 12:58:04 1834
原创 爬虫中 header 中常见的 user agent
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.284
2016-12-11 23:09:38 8929
转载 HTTP-请求、响应、缓存
1.HTTP请求格式做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP协议传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,而消息头是必须的。每当我们打开一个网页,在上面点击右键,选择“查看源文件”,这时看到的HTML代码就是HTTP的
2016-12-10 05:44:09 2413
原创 当我们游览网页的时候, 在输入链接点击回车之后到看到新网页这中间究竟发生了什么?
1. 游览器首先解析URL, 然后检查cache, 观察该输入的URL是否在cache中。 如果不在cache中。游览器会要求 OS 根据 URL 去得到相应的IP地址, 不同的操作系统可能有不同的方法,但是简而言之就是,OS 通过 和 DNS 服务器 进行交互 取得 对应的IP 地址。 2. 游览器开始和目标服务器进行TCP连接 - 此时传输
2016-12-08 23:58:46 1518
原创 线性时间的排序 - Decision Tree Model & Counting Sort & Radix Sort & Bucket Sort
我们之前接触过的 O(nlogn) 算法如 merger sort, heap sort, quick sort 等都是通过挨个比较输入序列的大小来决定顺序的。这些算法的平均时间复杂度都是O(nlogn)的,今天要学习的都是在线性时间完成排序的算法。1. Decision Tree Model. 决策树模型是通过一系列的基于一些数量的比较直接产生结果的排序方法。- 注意:其
2016-12-05 00:21:02 1019
原创 QuickSort 快速排序
快速排序 - QuickSort 最坏情况是 O(n^2) , 平均是 O(n*logn) 但是尽管 堆排序的运行时间 是保证在 O(n*logn), 但是在实际中快速排序的运行时间往往是快于堆排序的。 快速排序也是in-place的排序。原理:快速排序 的原理就是选定一个点作为轴心点 - pivot, 初始是从 数组的第一个元素开始,一直到 倒数第二
2016-12-02 05:00:10 902
原创 Markov Model 马可夫模型 & Hidden Markov Model 隐马可夫模型
马可夫模型是什么? 是一种随机模型,这种模型假设系统将来的状态是由当前的状态转变而来的, 并且不受当前状态之前的状态影响。 - 以城市旅游为例子: 我先去纽约 然后去波士顿 最后去华盛顿, 那么我们认为 到波士顿是基于纽约而来的,同理到华盛顿是基于 波士顿而来的。马可夫链是什么? 就是系统状态转移的路径。 从以下的例子可以得出 4条 序列, 那么将这 4 条
2016-11-28 02:02:20 1995
原创 Mac 下 IDLE Python 打不开来下划线
这个问题很有意思。问题: IDLE下打不出 下划线 或者说打出来就消失。解决办法: 打开IDLE 的preference, 然后将改变字体大小。即可。
2016-11-23 03:36:47 1920 2
原创 HeapSort 堆排序
堆排序 - Heap Sort, 它和Merge Sort - 归并排序很像,但是不同于Insertion Sort - 插入排序,因为它的运行时间为 O(nlogn). 可是它又和Insertion Sort很类似,但是不同于Merge Sort, 因为它是In Place的。综上所述,heap sort是整合了insertion sort 和 merge sort的优点的算法即 In Pl
2016-11-10 02:24:48 1423
原创 Hash Tables 哈希表
在了解哈希表之前我们先来看一下什么是Direct-Address tables? 假设我们的一个应用需要存储 键值对并且能支持操作 增删改查那么我们首先最原始的方法就是使用 Direct-address table. 我们在 T 中通过对键的查找直接找到相对应的数据。这种方法看似很好,但是有很大的局限性。 首先我们需要确定Universe of keys (U), 所以当U集合很大
2016-11-07 01:31:00 837
原创 平衡树 || Red-Black Tree
红黑树 是一种 平衡二叉搜索树, 这里的平衡和我们之前说的AVL树的平衡有一点不一样,AVL的平衡是任意节点的子树 的高度差不能大于1. 但是红黑树的平衡是对于他的几点性质来说的。红黑树的性质: 1. 每个节点有两种颜色 红色或者黑色 2. 根节点是黑色的
2016-11-01 03:40:39 750
原创 平衡树 - AVL || Balanced Binary Search Tree
三个问题。 What/Why/How.什么是平衡树? 平衡树是 基于二叉搜索树的 一种自动保持它的高度最小的一种树。 通俗点说, 就是一个有着高度最小的二查搜索树. [任意节点的子树的高度差小于等于1 ]为什么要有平衡树? 请考虑一下两个树,对比来看。以下两张图都是二叉搜索树, 但是很明显能看出来当我们需要对其进行操作比如 插入删除等,左边的都会浪费更长时间。
2016-10-22 02:27:52 1241
原创 关于如何从0开始配置服务器的域名
最近捣鼓了一个服务器,弄了一个小网站,做点小生意。大家可以帮我测试测试。刚上线还没测试。。huazhemarble.com配置服务器的时候发现还挺麻烦,最后经过网上各方大神的指点终于算是能用了。以下的实验中,假设已经有一下几个条件.1. 一个Ubuntu 服务器, 并且安装好Tomcat (应用服务器) 和 Apache (网络服务器)2. 一个域名比如: www.
2016-10-20 08:57:23 5957
原创 设计模式 - Singleton in Java
遇到任何一件事情都可以使用三个单词来解决。 what / Why / How什么是Singleton?它一种设计模式,在这种模式下我们只能够对某个类进行实例化一次为什么要使用Singleton?当一个对象需要对整个系统进行操作或者监控的时候 例如 任务管理器 或者 当系统中只存在某类一个对象时,系统的效率最高等。怎么样实现singleton in jav
2016-10-20 04:47:46 763
原创 二叉树 & 二叉查找树
二叉树 ( Binary Tree ) : 一种树型结构,每个节点最多拥有两个节点。( 如下图 )几种类型的二叉树 1. full binary tree: 每个节点的孩子数 是 0 或者 2. 对高度没有要求。 如下图 2. perfect binary tree: 这个就是最完美的树,顾名思义,所有叶子节点都有相同
2016-10-17 23:51:41 454
原创 Round-robin 算法
Round-robin 是一种使用在 进程 和 网络分配 计算中的算法。 以 进程分配为例:假设我们的time slot ( 单次运行进程的最长时间) 是100 ms, 如果 job1 一共需要消耗250 ms来运行, 那么 round-robin 分配器就会暂停 job1 在其运行100 ms之后, 然后分配给其他的进程, 并且将 job1 剩下的内容放到队列中排队,直到 jo
2016-10-08 23:05:57 20861
原创 HashCode 和 Equals 的使用 - 使用自定义对象作为HashMap的Key例子
首先,通过分析 Java.lang.Object 中的源码 public boolean equals(Object obj){ return (this == obj);}发现,其实equals 比较的也是 两个 对象是否为同一对象,也就是比较的reference,比如Person p1 = new Person();Person p2 = p1;Person p3
2016-10-07 03:55:51 1907
原创 Java 面向对象基础 以及进阶知识 总结
Controlling Access to Members of a Class.private: 仅仅可以在自己的类中使用public: 哪里都可以用protected: package-private 就是在同一个包下都可以使用,并且在别的包下继承他的子类中也可以使用。no-modifier: package-private 只能在同一个包下使用( 对于同一包下 与protec
2016-10-07 01:50:59 958
原创 JAVA 程序的一生
从本科开始就一直用Java, 但是基本上只是使用IDE比如eclipse 进行敲代码而已, 然后编译、执行,程序跑通就行,但是随着学习的深入 ( 虽然还是很渣), 慢慢的想知道我们点击 编译、执行的时候,系统内部到底做了什么,今天我们就来看看是什么魔力让我们写的java 源代码 有了生命。首先来了解下一些基本的概念。JAR: jar 包, Java Archive, 就是对
2016-10-06 02:50:42 565
原创 Two Types of Error in JAVA
在 java 中有两种不同的 error, Compile-time Error 和 Runtime Error. Compile-time Error: 发生在程序compile的时候, compile-time error 不能被catch,只是error,不是exception;程序并没有运行。造成的原因: 1. 语法错误 1.1 ...expected. 括号
2016-10-05 03:20:09 566
原创 找到最长回文字符串 - Manacher's Algorithm
记得刚开始学习计算机的时候,除了输出星星就是找到最长回文字符串这样的问题, 开始以为最长回文串问题很简单,但是经过多年的学习再回头看的时候发现,它并不简单,今天就给它解个密。开始我们先来看一个时间复杂度差的算法。 1. 时间复杂度为 n^3. 空间复杂度为 1. 这个算法基本上是最简单的了,最好理解的。/** * 使用iteration * 循环三次
2016-10-03 09:22:33 449
Hadoop_The_Definitive_Guide_Third_Edition.pdf
2015-01-08
配置网络服务器虚拟域名以及部署文件问题
2016-09-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人