自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring Microservices in Action-Manning(2017) 读书笔记(```里的xml为什么不能显示为缩进?Markdown的bug??)

Spring Microservices in Action-Manning(2017)-ReadingNotes.mdWelcome to the cloud, Springhttps://github.com/carnellj/spmia-chapter1依赖 spotify/docker-maven-plugin 已经更新为:https://github.com/sp

2017-09-28 00:38:27 1691

原创 让我们考虑一个地图引擎系统。。。

传统的GIS数据库,如ArcGIS这种传统桌面型的软件,主要还是强调测绘模型数据的规范化输入。GIS的本质上在于多维索引,对一个最简单的平面地图来说,主要就是靠最原始的GPS芯片返回的经纬度坐标。问题是,即使静止在同一个位置,由于地球在自转(?),卫星反射返回的信号时间可能不一样,这样得到的经纬度坐标不能保持一模一样。更不用说移动中的目标(汽车)了。中国的GPS坐标还会涉及到一个非线性的加密扰乱,

2017-09-27 14:44:38 2039

原创 成熟的产品环境代码:bounded capacity(受限容量)

Java以前的容器类没有考虑这一点,导致用户可以不停地add元素,这导致内存占用大幅升高,同时也会让服务器无法正常执行,DoS。又如Thread对象,没有考虑周全的话,会很容器new一个新线程去执行,这很容易导致大量线程同时调度执行(由于某种原因它们都没有快速执行完任务干净地退出)后来的并发类库好了一点,可以有blocking queue,当queue的容量达到预先配置的上限后,添加元素的线程

2017-09-18 12:31:49 528

原创 Java的3个问题:synchronized方法、volatile关键字、及内部类

synchronized方法:当修饰类静态方法时,相当于对类的class对象(Class类型的实例)加monitor锁。当修饰实例方法时,相当于对this加锁。synchronized块建立了happens-before关系(即当前线程独占访问被synchronized的对象)。volatile关键字:非long、double的primitive类型不需要加volatile(如果是64

2017-09-17 17:29:24 535

原创 分布式大数据存储:向上索引法

在Hadoop/HDFS里,namenode负责记录datanode的文件元信息,这样当小文件太多的情况下,namenode可能存在DoS漏洞。在实际使用中,namenode的SOP问题由增加冗余备份节点解决,小文件的问题则由引入容器封装的文件格式来解决。在HBase这类基于Master/Slave架构的大数据存储系统中,当出现数据倾斜(分布不均衡)时,将根据key的range自动切分,切分后

2017-09-15 20:27:43 1191

原创 在线招聘网站的问题

本质上,在线招聘网站做的还是信息中介的生意。在线招聘网站说是帮你找工作,实质不过是提供了一个简历托管的地方而已。它本身并不能就帮你找到满意的工作作出任何承诺。与之相反的是,寻找工作的个体,则需要将自身的详细简历信息公开给招聘网站。对于用户个体隐私数据的使用等法律条款,实际上很含糊。当招聘网站收取到了足够多的简历后,则形成了规模效益,它一方面可以向企业方用人单位,及猎头等,收取信息浏览的费用

2017-09-06 16:50:33 578 1

原创 关于推荐系统(Recommender System)推荐引擎的吐槽

# 关于推荐系统(Recommender System)推荐引擎的吐槽大数据的一个最原始的使用似乎就是从推荐系统开始的。尤其是B2C电子商务网站,为了多卖点商品给用户,或者是想让用户多消耗一点内容,当然是值得做的。但是目前这些现有的推荐系统做得怎么样呢?一个字:矬。拿亚马逊来说吧,我真想告诉它(假如它是个聪明的AI的话):我喜欢的书是翻译类的计算机编程、数学物理

2017-09-04 23:44:39 1716

原创 基本算法:生成元素数组的所有排列(permute)

static void permute(int[] A, int k){ //[0, k-1] is prefix, [k, n) is for recursive call; if(k==A.length-1){//递归结束条件 for(int v : A){ System.out.print(v);

2017-09-04 23:02:35 618

原创 Cloud Native Java-OReilly 2017 读书笔记

Cloud Native Java-OReilly 2017-ReadingNotes.mdBasicsSaaS的12 Factor:Bootcamp: Introducing Spring Boot and Cloud FoundrySpring Initializr:http://start.spring.io配置好依赖后,下载得到一个demo.zip$

2017-09-03 16:58:20 2522

原创 Node Cookbook 3rd-Packt Publishing 2017 读书笔记

Node Cookbook 3rd-Packt Publishing 2017-ReadingNotes.md调试进程用DevTools调试Node $ mkdir app $ cd app $ npm init -y $ npm install --save express $ node --inspect index.js (6.3.0+,这个调试

2017-09-02 20:13:34 735

TCP/IP Sockets in Java, 2rd Edition

Contents Preface xi 1 Introduction 1 1.1 Networks, Packets, and Protocols 1 1.2 About Addresses 4 1.3 About Names 6 1.4 Clients and Servers 6 1.5 What Is a Socket? 7 1.6 Exercises 8 2 Basic Sockets 9 2.1 Socket Addresses 9 2.2 TCP Sockets 15 2.2.1 TCP Client 16 2.2.2 TCP Server 21 2.2.3 Input and Output Streams 25 2.3 UDP Sockets 26 2.3.1 DatagramPacket 27 2.3.2 UDP Client 29 2.3.3 UDP Server 34 2.3.4 Sending and Receiving with UDP Sockets 36 2.4 Exercises 38 3 Sending and Receiving Data 39 3.1 Encoding Information 40 3.1.1 Primitive Integers 40 3.1.2 Strings and Text 45 3.1.3 Bit-Diddling: Encoding Booleans 47 3.2 Composing I/O Streams 48 3.3 Framing and Parsing 49 3.4 Java-Specific Encodings 55 3.5 Constructing and Parsing Protocol Messages 55 3.5.1 Text-Based Representation 58 3.5.2 Binary Representation 61 3.5.3 Sending and Receiving 63 3.6 Wrapping Up 71 3.7 Exercises 71 4 Beyond the Basics 73 4.1 Multitasking 73 4.1.1 Java Threads 74 4.1.2 Server Protocol 76 4.1.3 Thread-per-Client 80 4.1.4 Thread Pool 82 4.1.5 System-Managed Dispatching: The Executor Interface 84 4.2 Blocking and Timeouts 86 4.2.1 accept(), read(), and receive() 87 4.2.2 Connecting and Writing 87 4.2.3 Limiting Per-Client Time 87 4.3 Multiple Recipients 89 4.3.1 Broadcast 90 4.3.2 Multicast 90 4.4 Controlling Default Behaviors 95 4.4.1 Keep-Alive 96 4.4.2 Send and Receive Buffer Size 96 4.4.3 Timeout 97 4.4.4 Address Reuse 97 4.4.5 Eliminating Buffering Delay 98 4.4.6 Urgent Data 98 4.4.7 Lingering after Close 99 4.4.8 Broadcast Permission 99 4.4.9 Traffic Class 100 4.4.10 Performance-Based Protocol Selection 100 4.5 Closing Connections 101 4.6 Applets 107 4.7 Wrapping Up 107 4.8 Exercises 108 5 NIO 109 5.1 Why Do We Need This? 109 5.2 Using Channels with Buffers 112 5.3 Selectors 115 5.4 Buffers in Detail 121 5.4.1 Buffer Indices 121 5.4.2 Buffer Creation 122 5.4.3 Storing and Retrieving Data 124 5.4.4 Preparing Buffers: clear(), flip(), and rewind() 126 5.4.5 Compacting Data in a Buffer 128 5.4.6 Buffer Perspectives: duplicate(), slice(), etc. 129 5.4.7 Character Coding 131 5.5 Stream (TCP) Channels in Detail 132 5.6 Selectors in Detail 135 5.6.1 Registering Interest in Channels 135 5.6.2 Selecting and Identifying Ready Channels 138 5.6.3 Channel Attachments 140 5.6.4 Selectors in a Nutshell 140 5.7 Datagram (UDP) Channels 141 5.8 Exercises 145 6 Under the Hood 147 6.1 Buffering and TCP 150 6.2 Deadlock Danger 152 6.3 Performance Implications 155 6.4 TCP Socket Life Cycle 155 6.4.1 Connecting 156 6.4.2 Closing a TCP Connection 160 6.5 Demultiplexing Demystified 163 6.6 Exercises 165 Bibliography 167 Index 169

2008-11-28

Advanced Data Structures

里面讲述了许多特殊的索引树结构,推荐! Preface page xi 1 Elementary Structures 1 1.1 Stack 1 1.2 Queue 8 1.3 Double-Ended Queue 16 1.4 Dynamical Allocation of Nodes 16 1.5 Shadow Copies of Array-Based Structures 18 2 Search Trees 23 2.1 Two Models of Search Trees 23 2.2 General Properties and Transformations 26 2.3 Height of a Search Tree 29 2.4 Basic Find, Insert, and Delete 31 2.5 Returning fromLeaf to Root 35 2.6 Dealing with Nonunique Keys 37 2.7 Queries for the Keys in an Interval 38 2.8 Building Optimal Search Trees 40 2.9 Converting Trees into Lists 47 2.10 Removing a Tree 48 3 Balanced Search Trees 50 3.1 Height-Balanced Trees 50 3.2 Weight-Balanced Trees 61 3.3 (a, b)- and B-Trees 72 3.4 Red-Black Trees and Trees of Almost Optimal Height 89 3.5 Top-Down Rebalancing for Red-Black Trees 101 3.6 Trees with Constant Update Time at a Known Location 111 3.7 Finger Trees and Level Linking 114 vii 3.8 Trees with Partial Rebuilding: Amortized Analysis 119 3.9 Splay Trees: Adaptive Data Structures 122 3.10 Skip Lists: Randomized Data Structures 135 3.11 Joining and Splitting Balanced Search Trees 143 4 Tree Structures for Sets of Intervals 148 4.1 Interval Trees 148 4.2 Segment Trees 154 4.3 Trees for the Union of Intervals 162 4.4 Trees for Sums of Weighted Intervals 169 4.5 Trees for Interval-Restricted Maximum Sum Queries 174 4.6 Orthogonal Range Trees 182 4.7 Higher-Dimensional Segment Trees 196 4.8 Other Systems of Building Blocks 199 4.9 Range-Counting and the Semigroup Model 202 4.10 kd-Trees and Related Structures 204 5 Heaps 209 5.1 Balanced Search Trees as Heaps 210 5.2 Array-Based Heaps 214 5.3 Heap-Ordered Trees and Half-Ordered Trees 221 5.4 Leftist Heaps 227 5.5 Skew Heaps 235 5.6 Binomial Heaps 239 5.7 Changing Keys in Heaps 248 5.8 Fibonacci Heaps 250 5.9 Heaps of Optimal Complexity 262 5.10 Double-Ended Heap Structures and Multidimensional Heaps 267 5.11 Heap-Related Structures with Constant-Time Updates 271 6 Union-Find and Related Structures 278 6.1 Union-Find: Merging Classes of a Partition 279 6.2 Union-Find with Copies and Dynamic Segment Trees 293 6.3 List Splitting 303 6.4 Problems on Root-Directed Trees 306 6.5 Maintaining a Linear Order 317 7 Data Structure Transformations 321 7.1 Making Structures Dynamic 321 7.2 Making Structures Persistent 330 8 Data Structures for Strings 335 8.1 Tries and Compressed Tries 336 8.2 Dictionaries Allowing Errors in Queries 356 8.3 Suffix Trees 360 8.4 Suffix Arrays 367 9 Hash Tables 374 9.1 Basic Hash Tables and Collision Resolution 374 9.2 Universal Families of Hash Functions 380 9.3 Perfect Hash Functions 391 9.4 Hash Trees 397 9.5 Extendible Hashing 398 9.6 Membership Testers and Bloom Filters 402 10 Appendix 406 10.1 The Pointer Machine and Alternative Computation Models 406 10.2 External Memory Models and Cache-Oblivious Algorithms 408 10.3 Naming of Data Structures 409 10.4 Solving Linear Recurrences 410 10.5 Very Slowly Growing Functions 412 11 References 415 Author Index 441 Subject Index 455

2008-11-28

空空如也

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

TA关注的人

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