主页

理解 Nsq (二)初体验

Overview上一节已经把 Golang 环境搭好了,这一节可以正常开搞。这一节我打算把 nsq 从源代码编译,然后简单试用下。 Compile第一步是下载源代码进行编译。 12345678910$ git clone [email protected]:nsqio/nsq.git $GOPATH/src/github.com/nsqio/nsq$ cd $GOPATH/src/github.com/

理解 Nsq (一)设置 Golang 开发环境

Nsq 是一个 Golang 实现的消息队列,现在应该特性已经比较稳定了。 本系列文章共分为三篇,会分别从环境搭建、基础使用、基础概念三个方面分析 nsq。 开始倒腾之前,先把环境搭好,那么我来在我的两个主要工作环境上把 Golang 环境搭好。 macOS首先我在公司的电脑的 macOS 系统装上 Golang 吧,直接最新版本开怼: 1brew install go 可以说安装是相当傻瓜化了。

求一个数组的波峰

三个月前被问到一个有趣的算法题,当时想了很久才想出来,现在写篇博客记录一下。 给定一个很长的数组 arr,已知数组的长度 length 且 length >= 3,已知数组的第一个元素不比第二个元素大,最后一个元素不比倒数第二个元素大。那么求这个数组中 任意一个 波峰的数组下标。PS:不比前一个元素小而且不比后一个元素小的元素称为波峰。 arr[1] >= arr[0],那么只需要

构造函数需要加锁吗

我们在写 Java 的时候,经常会使用到 synchronized 关键字。synchronized 是一个相对重量级的锁,它有两种使用形式。 对一个具体的变量加锁。 12345678Logger l = LoggerFactory.getLogger(getClass().getName());synchronized (l) { // do something}sy

双向链表和哈希表实现 LRUCache

背景LRUCache 是一个很常用的缓存实现,本文会首先介绍一下 LRUCache 的定义,然后尝试用 Python 实现它。 定义LRUCache 首先是一个 Cache,那么对于一个 Cache 而言,肯定需要提供 get 和 set 两个方法,而且,这两个方法的时间复杂度越低越好,最好达到 O(1) 级别。 LRU 是 Least Recently Used 的缩写,近期最少使用策略。LRU

JavaScript 面向对象编程

JavaScript 面向对象编程构造函数构造函数的特点 内部对this对象进行了赋值 调用的时候需要在前面添加new关键字 一般没有返回值 忘记使用new关键字,this会指向别的对象。 new命令的原理 创建一个空对象,作为将要返回的对象实例 将这个空对象的原型,指向构造函数的prototype属性 将这个空对象赋值给函数内部的this关键字 开始执行构造函数内部的代码 Object 对象

【译】写下你的第一个 Django 应用 part 2

设置数据库现在,编辑你的 mysite/settings.py,这是一个课业设置模块级别的变量的普通 Python 模块。 Django使用SQLite作为默认的数据库,如果你只对Django感兴趣,这是最好的选择。SQLite包含在Python里,所以你不需要安装任何东西来支持你的数据库。当你真正开启你的项目的时候,你可能需要更加鲁棒的数据库,例如PostgreSQL,来避免一些在数据库中令人头

【译】写下你的第一个 Django 应用 part 1

让我们从例子学起 通过这个教程,我们就可以简单地完成一个投票应用 应用。 这包含两个部分: 一个关于投票的公共的网站,用户可以查看可以投票的项目,也可以对项目进行投票。 一个后台管理界面,管理员可以增加,修改,删除公共网站里的待投票项目。 我们这里假设你已经在你的电脑中安装了 Django 。如果你不确定是否已经安装,可以在 Terminal 中输入这行命令: 1python -c "im

两道算法题

前言昨天参与了某个互联网公司的在线笔试,里面有两道算法题,无奈时间不够只写了一道。 更糟糕的是,今天醒来才发现自己花了好大心思写的那道题,却由于粗心把题意弄反了。 遗憾之余,今天用现代化的编程工具写一遍,弥补自己悲伤的情绪。 题目第 k 大数描述输入两个数 n 和 k ,给出一个长度为 n 的数组,参考快速排序,输出出数组里第 k 大的数并换行。多组数据,当输入的 n 为 0 时结束。 诡异的是,