自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 【原】编程范式漫谈

本文最早写在豆瓣:http://www.douban.com/note/341910359/ 写在前边:我们知道现有语言的编程范式有:过程式,面向对象,函数式,逻辑式。随着软件工业化程度的普及,以及软件的复杂度越来越高,编程语言的发展历程也是从最初的过程式(命令式)语言c,发展到以java语言为代表的面向对象编程语言。而逻辑编程语言(以prolo...

2014-09-09 13:22:40 167

原创 近阶段的读书

最近将《sicp》终于读完了。正在读周国平的《尼采--在世纪的转折点上》 接下来打算开始看《 Language Implementation Patterns》,《编程珠玑》《ruby元编程》 看完后开始阅读大部头《哥德尔、艾舍尔、巴赫》; ...

2012-03-17 17:28:47 132

从church numerals 理解数据抽象

现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示的对象。(数学家)不应在这里停步,有许多操作可以应用于这些符号,而根本不必考虑它们到底代表着什么东西。 --- sicp (第二章 数据抽象) 邱奇数可以帮我们充分理解上面这句话和数据抽象的含义。(我的读书笔记见:[url]http://book.douban.com/people/xulao/annotatio...

2012-03-17 17:20:34 300

原创 浮点精度

本文深入描述浮点float类型在内存的存储方式,和为什么浮点计算时精度会缺失。 1. 浮点类型如何存储和计算2. 一个小实验通过一下程序我们不断可以看到类型转换的的实质。 而且可以验证float在内存中的存储。#include <stdio.h> int main(void){        int i = 65...

2012-02-27 19:03:07 132

原创 java concurrent programming

 随着多核cpu的发展,以及线程技术的普及使用。并行编程成了必须掌握的技能。这里列出了java常用的一些并行编程API;0. 起源        最早的计算机一个cpu,并且cpu单核。某个时间只有一个进程或线程在cpu上执行。不存在某一时间有多个线程访问同一个数据的问题,也就不存在并发编程了。随着cpu上多核以及cpu上L1/L2/L3 cache技术的发展,程序员编写出并行...

2012-02-27 19:01:48 164

原创 各个层面的一些东西

    从工业革命到互联网革命,每一次的革命最终目的都是加快了信息的传递速度。-----------google黑板报《浪潮之巅》     主要从浏览器,网络带宽,负载均衡,apache,jvm,linux角度探讨下应用性能调优的一些基础知识点;站在客户的角度来说,通过浏览器请求网站,请求数据流经网络,达到web服务器以及应用服务器。web服务器返回数据又流经网络返回给浏览器为客户展示信...

2012-02-27 19:00:25 166

[原]认识DSL

           “我们应该学习那些科学家发现和解决问题的思维过程,而不应该直接灌输理论知识。”         “大学精神的本质,并不是为了让我们变得深奥,而恰恰是恢复人类的天真".----刘瑜         ”一个人的语言的世界,既是这个人的世界";                                                           ...

2012-02-24 11:32:39 115

原创 jvm性能调优

     jvm 调优。附件。

2012-02-20 09:52:30 88

原创 [转]常见加密算法简介以及如何在java上使用

本文介绍常见的算法(MD5/SHA,DSA,RSA,DES)的应用场景,以及在java上的使用方法.(1) MD5/SHAMessageDigest是一个数据的数字指纹.即对一个任意长度的数据进行计算,产生一个唯一指纹号.MessageDigest的特性:A)两个不同的数据,难以生成相同的指纹号B)对于指定的指纹号,难以逆向计算出原始数据代表:MD5/SHAJava实现:MD5:...

2012-02-20 09:50:40 132

原创 2011年读书总结2012读书计划

    总体看来,2011年主要关注计算机语言方面,尤其对动态语言的,函数式编程范式,有了更深入的认识。工作中也有幸参与开发了一个DSL(利用antlr这个开源工具生成词法,语法解析器,生成AST); 进一步用visitor进行语法分析;    最近在看《计算机程序的构造和解释》2ed这本书。此书含量丰富,甚和我胃口。在研读中也将大多练习题都做了出来。此书绝对值得我花费这么多业余时间来详读...

2012-01-13 13:52:28 125

原创 sicp第二章练习题的解答

如题。见附件;第三章已经块看完了。写了些许读书笔记见豆瓣: http://book.douban.com/people/xulao/annotation/

2012-01-13 13:40:32 213

原创 [sicp 第一章练习题]

 scheme编程环境:      DrRacket; SICP第一章讲述:过程抽象。主要训练程序员过程抽象的思维。 涉及的算法主要是:递归和迭代; 并且详细讲述递归和迭代的算法复杂度比较。 附件为我看书过程中做的第一章的练习题答案;有些参考网上一些练习题。  参考: http://mitpress.mit.edu/sicp/full-text/book/boo...

2011-12-16 10:20:25 164

原创 [emacs]emacs选择

mac平台上目前找到的emacs:  所找到的 Emacs for Mac:Emacs for Mac OS X : 号称“Pure Emacs, No Extras, No Nonsense”;atomized.org Cocoa Emacs 23 nightly CVS builds : 每天都会编译新的 CVS 版本,和原生 Emacs 极其接近;Aqu...

2011-12-15 18:18:34 165

原创 [读书]

   近期将《代码大全》《scala程序设计》《land of lisp》 《松本行弘的程序世界》这基本书读完了。并将MIT的视频教程<programming paradigm>看完了。      正在看<计算机程序的构造和解释》简称:SICP; 边看边做练习题。第二章快看完了。这本书试图逐步培养我们:过程抽象和数据抽象能力,并试图让我们真正进入计算机科学的世界。 打...

2011-12-13 20:16:21 137

原创 macport使用简介

推荐:http://www.astrobetter.com/macports-101/ 经常使用:port install xxx, port uninstall xxx . port upgrade xxx . port clean --all inactive .

2011-11-01 15:26:54 222

[lisp]Lisp语言学习资料

1. lisp方言主要有:common-lisp,scheme,clojure ,Arc...2. Lisp实现主要有:clisp,sbcl...3. Lisp IDE环境:1)自己搭建环境:emacs+clisp/sbcl+slime. (参考:http://newartisans.com/2007/10/common-lisp-on-mac-os-x/)        2)推荐LispWor...

2011-10-31 13:22:10 463

项目前期,我们在准备什么

项目前期是指由需求分析人员形成需求文档(对我们来说就是FRD) 流到开发团队时。此刻我们开发团队接受需求,并开始项目前期的准备工作了。这个过程非常重要,甚至直接决定项目的生死。需求 需求定义由客户提出。需求的分析由需分人员理出。需求分析处于项目生态树的最顶层节点。如果生态树的其他节点进行时,发现需求有问题,返工带来的代价是最巨大的。所以项目前期团队能清晰,准确理解需求至关重...

2011-10-20 15:18:32 283

再谈面向对象思想

1. 引言项目的失败大多数都是由差强人意的需求、规划和管理所导致的。但是,当项目确由技术因素导致失败时,其原因通常就是失控的复杂度。  ----《代码大全》 2.  日常生活人们解决的复杂问题的途径1)   分解复杂问题;2)团队内协作,各司其职;3)几个团队的合作,分工明确,各团队由接口人负责团队间协作。团队间交互形成协议;3.  层 或 子系统1)在软件领...

2011-10-20 15:15:17 95

【原】程序设计语言的将来

 现今主要的编程范式有:“命令式编程”,“函数式编程”,“逻辑编程”; 现今大行其道的“命令式编程语言”有c,c++ ,java,c#,ruby等等。 函数式编程语言有“lisp,haskell,scala”等;当然ruby,scala应该是混合面向对象和函数式风格的语言。命令式语言为什么称为命令式语言呢? 命令式语言其实是当今“冯·洛伊曼”计算机体系结构一个抽象;程序员按照计算机的运...

2011-09-26 11:42:48 124

原创 linux kernel的一个ppt

  内部分享写的ppt; 分享的效果不太好。 大家的提的问题很少。

2011-09-22 16:54:57 101

原创 [读书计划]

 着重编译原理的学习,将《Writing Compilers and Interpreters》 结合 龙书 。 读完后的产出为一个用java写的编译java语言为bytecode的编译器,如果可以用scala实现最好。...

2011-09-05 11:40:24 102

原创 【转】编译原理学习导论

       大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程...

2011-09-05 11:30:15 68

最近读书

   将《programming in scala 》 这本书读了1/3 ,这个语言集合了Object-orientated and functional programming. 他的compile也是将scala语言编译为java class file ,运行于jvm上的。 并且她能优雅的和java代码互调。 从这一点看scala以后肯定能优雅的在一些系统上应用。 scala集现今流行的命...

2011-08-30 16:08:47 92

[linux]进程管理,内存管理,文件系统,系统管理,网络操作概述

进程/线程    进程概念:进程/线程是计算机中最小的执行单元,是实现分时多用户操作系统的基础;那么一个进程在linux中是如何实现的呢?如果熟悉内核就知道内核就是一堆的数据结构,一个进程的所有状态就包含在task_struck这个结构中:存放进程的状态,文件/socket描述符,程序地址(stask/heap);时间片;ddl地址;权限信息等等信息;如下图:展示了进程在内存中的表示:...

2011-08-30 15:56:56 1047

原创 [linux]常用linux命令

man,info首先介绍最重要的man和info命令;linux的使用文档的强大;我们所有的命令以及使用方法都可以通过:man xxx; info xxx 的方式查看;所以linux的命令意会即可,不必全部记忆;经常使用man 或info 命令查看命令,也是一种学习方式;cat , more , vi ,less ,head ,tail都是查看文件的命令;我经常用的le...

2011-06-17 16:25:53 229

原创 读书读书

 q1的读书延误了。计划总赶不上变化。不过q1倒是读了《人工智能的未来》,《c专家编程》<c陷阱与缺陷》这三本书真是好书啊。让我如醍醐灌顶一发不可收拾。   正在读《集体智慧编程》这本好书。组里几个人也打算开发个模型用于识别恶意注册的;学校学的统计学,概率学都忘啦,这个很严重的问题。...

2011-05-04 12:40:17 169

原创 hadoop概念

 1. hadoop概念 Provide easy but general model for programmers to use cluster resources   Hide network communication (i.e. RPCs)    Hide storage details, file chunks are automatically distributed...

2011-05-04 11:29:11 80

原创 [转载]Web网站的性能测试工具

    随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生服务器响应速度变慢甚至服务中断。为了避免这种情况,需要一种能够真实模拟大量用户访问Web应用系统的性能测试工具进行压力测试,来测试静态HTML页面的响应时间,甚至测试动态网页(包括ASP、PHP、J...

2011-04-21 18:43:01 112

原创 常用命令记录下

hadoop namenode -formatstart-all.shhadoop dfs -mkdir inputhadoop fs -lshadoop dfs -rmr output/hadoop dfs -copyFromLocal ./conf/* input/hadoop jar hadoop-0.20.2-examples.jar wordcount in...

2011-04-15 19:18:50 408

原创 hbase的缺陷

      hbase 的并发读写是比较差得;原因如下: 1>顺序存储结构,而且一个机器只有一个HRegionServer来提供RPC服务;多线程写数据时:多个线程有可能会路由到同一个RegionServer上,导致竞争服务的现象;没有分布式的优势; 2>r如果内存中的memstore大于flush.size就会写到磁盘,如果磁盘文件大于filesize,就会sp...

2011-04-15 19:16:20 129

原创 读书计划

 Q4加上过年实现将《linux内核设计与实现》2ed 和《TCP/IP详解》读完了。 都解答了我很多问题。受益非浅。 计划Q1将《软件随想录》和《unix环境高级编程》读完。 计划要好好写写分享,不然光读不练,知识沉淀不下来。...

2011-02-16 16:45:25 109

探讨event based vs thread based的性能,以及apache 的MPM

    上一篇介绍了所有的I/O模型,这篇介绍一下现在流行的web server是如何利用I/O模型达到高并发,高性能的服务器的。0 . 知识回顾     从前几篇介绍,我们知道操作系统内核给我们提供了好几种I/O模型,这样我们的应用程序不用阻塞在read/write这些系统调用,而是阻塞在select/poll/epoll.当然这些系统调用帮我们检测大量的fd是否就绪,并提供非阻塞调用...

2011-01-16 21:25:33 241

深入浅出异步i/o模型

      从上篇文章的介绍(见:http://pengpeng.iteye.com/blog/875520)我们知道linux内核根据TCP/IP网络模型,给我们隐藏了传输层以下的网络传输细节,我们的网络应用程序只需要针对socket编程即可。这篇我们立足网络数据包的I/O。谈谈linux的一些I/O知识,以及Java的NIO. 1.  基础知识      我们知...

2011-01-16 00:16:14 117

浅析linux内存模型

0. 内存基本知识        我们通常称 linux的内存子系统为:虚拟内存子系统(virtual memory system),为何这样称谓呢?        其实这个是个很牛的设计。linux充分利用了程序的局部性原理,结合线性地址的概念(虚拟地址)使得运行于操作系统上的每个进程都可以使用所有用户空间主存。而且虚拟内存还解决了内存不连续和碎片的问题(因为在程序来说线性地址都...

2011-01-16 00:14:41 130

[原]客户/服务器程序设计范式

                            本篇从基于TCP/IP协议出发,探讨现代流行的应对高并发请求网络服务端设计架构; 1. TCP/IP 模型首先回顾一下TCP/IP模型,并知道各个层次在操作系统的哪一个层次;     看上图,OSI模型的底下两层是随系统提供的设备驱动程序和网络硬件。通常情况下,除需知道数据链路的某些特性外,我们不用关心这两层的情况。网络...

2011-01-16 00:13:00 119

【原】深入浅出异步I/O模型

      从上篇文章的介绍我们知道linux内核根据TCP/IP网络模型,给我们隐藏了传输层以下的网络传输细节,我们的网络应用程序只需要针对socket编程即可。这篇我们立足网络数据包的I/O。谈谈linux的一些I/O知识。 1.  基础知识      我们知道Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件...

2011-01-11 18:51:15 204

原创 近阶段读书

          《梦断代码》 以作者正在做的项目入手,开篇既以一副悲观态度铺面而来的大幅篇章介绍软件的复杂性,“软件难做”;作者慢慢以曾经参加过的一个大项目入手,从中可以体会到软件管理,设计,开发,市场的分析;详细的项目描述,好像一本软件发展史诗;让读者充分的了解到计算机软件发的历程,以及在不断复杂的软件开发;但是通读全书给我的感觉却并没有悲观,软件不如硬件发展的快,但是人们还在继续努...

2011-01-03 12:29:03 77

jvm常用诊断命令

jinfo:可以输出并修改运行时的java 进程的opts。jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。jmap:打印出某个java进程(使用pid)内存内的,所有'对象'的情况(如:产生那些对象,及其数量)。jconsole:一...

2010-11-09 10:23:27 138

原创 memcache深度分析

memcached特点协议简单基于libevent的事件处理内置内存管理memcached不互相通信的分布式交互过程memcached 的客户端使用TCP链接 与 服务器通讯。(UDP接口也同样有效,参考后文的 ;UDP协议 )一个运行中的memcached服务器监视一些(可设置)端口。客户端连接这些端口,发送命令到服务器,读取回应,最后关闭连接。鼓励客户端缓存这些连接,而不是每次需要 存取数据时...

2010-11-03 16:16:57 121

原创 网站性能测量

性能衡量指标:web server端: DB:JDK:操作系统:硬件:ab 和 nmon工具;  性能优化是一个长效的工作; 对于我们互联网网站来说,我们站在用户体验的角度出发,有这几个指标来衡量性能:1. 服务器平均请求处理时间(time per request);2. 吞吐率(request per second);3. 用户平均请求等待时...

2010-11-03 15:01:09 95

空空如也

空空如也

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

TA关注的人

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