编程随想的博客

2009年8月30日

再举几个动态语言 eval 手法的例子

›
  在前一个帖子“ 什么俺推荐Python[2] ”里面,顺便提到了动态语言中常用的 eval 手法。当时为了给大伙儿加深印象,俺举了个数字运算的例子(详见“ 原文 ”)来说明 eval 的好处。
8 条评论:
2009年8月21日

为什么俺推荐 Python[2]:作为动态语言的 Python

›
   上一篇帖子 介绍了脚本语言的优缺点,然后又拿 Python 和其它脚本语言PK了一下。今天主要是忽悠一下动态语言,捎带忽悠一下 Python。如果你看完本贴,觉得动态语言不错,那俺建议你从 Python 开始入手。
10 条评论:
2009年8月10日

为什么俺推荐 Python[1]:作为脚本语言的 Python

›
  俺窃以为,Python 的所有特征中,作为 脚本语言 (“脚本语言”的定义参见“ 这里 ”)是它的首要特征。因此,在本系列帖子中,俺首先来忽悠一下 Python 作为脚本语言,有些啥好处?
18 条评论:

为什么俺推荐 Python[0]:概述

›
  当初博客开张的时候,原计划在编程语言方面聊聊 C++、Java 和 Python。谁曾想半年多过去了,尚未写过 Python 的帖子。实在是说不过去啊!所以今天赶紧写一篇来凑数。
63 条评论:
2009年7月31日

书评:《你的灯亮着吗?——找到问题的真正所在》

›
  前几天收到读者来信,建议俺推荐一些关于方法论、心理学、管理学方面的书籍。俺当时列的第一本就是温伯格写的《 你的灯亮着吗? 》。今天俺打算来点评一下此书。
50 条评论:
2009年7月23日

从微博客被封杀说开去

›
  不懂微博客(MicroBlog)为何物的同学,先看“ 这里 ”扫盲一下。   本月初(准确说是7月7日晚)“ 饭否 ”被和谐时,大家都把这事儿和 新疆的7·5事件 联系起来。最近,随着新疆局势的缓和,饭否的粉丝都指望着早点儿解禁。谁曾想,这两天 GFW 又把另外几家微博客网...
9 条评论:
2009年7月16日

学习一下德国人民的翻墙精神

›
  最近常听到有人抱怨穿墙太麻烦,俺心里就嘀咕:你要是知道当年德国人民翻墙的艰辛和危险,或许就不会再抱怨翻GFW这堵墙的麻烦了。   说到德国人的翻墙,比较关心政治的同学应该会联想到大名鼎鼎的“柏林墙”(具体介绍见“ 这里 ”)。从某种意义上看,东德共党在60年代建造的柏林墙和...
149 条评论:
2009年7月7日

扫盲“社会工程学”[5]:你该如何【防范】?

›
  经过前面几个帖子的介绍,大伙儿应该能看出来,社会工程学的应用范围是很广泛滴。它的应用会涉及日常生活的许多领域,绝不仅限于信息安全。所以,如何防范就是一个重要的话题了。今年咱们就来聊一下如何防范。
19 条评论:
2009年7月1日

党和互联网的较量

›
  “ 伟光正 ”最近和广大网民干上了,折腾了一堆事情出来(比如:强制推广“绿霸”、打压 Google)。正好今天又赶上伟光正的88岁生日,俺就来分析一下伟光正的司马昭之心。
160 条评论:
2009年6月26日

Java 性能优化[4]:关于 finalize 函数

›
   上次的帖子 聊了垃圾回收器的调优,当时啰嗦了比较长的篇幅,就没再继续提 finalize 的事儿(其实这玩意儿和 GC 是沾点儿边的)。今天咱就把 finalize 函数相关的性能话题拿来说一下。
4 条评论:
2009年6月22日

开源点评:源代码版本控制系统介绍

›
  本文是“ 每日构建[4]:相关工具介绍 ”的第一部分。   由于源代码版本控制系统(Revision Control System,以下简称“RCS”)属于“ 每日构建流程 ”的头一个环节,所以俺在介绍每日构建的相关工具时,先来聊一聊 RCS 类的软件。
11 条评论:
2009年6月21日

软件工程进阶之每日构建[4]:相关工具介绍

›
  本来“ 每日构建系列 ”在介绍完流程之后就结束了。后来,陆续有同学在评论和邮件里咨询和每日构建相关的一些工具。所以俺就再增加点内容,介绍一下相关的工具。
7 条评论:
2009年6月14日

书评:《一九八四》——反乌托邦的代表作

›
   之前的帖子 提到了乔治·奥威尔的代表作《1984》(洋文书名《Nineteen Eighty-Four》),今天俺就专门写一个帖子,为那些没有看过此书的同学点评一下。如果你已经看过此书并能够体会奥威尔的深意,那本帖就你不必看了。
40 条评论:
2009年6月11日

是该写点技术以外的东西了

›
  本来 俺的博客 基本上是谈技术那档子事儿。当初刚开博的时候,也没准备在技术博客中抨击时政的。不过最近一个月来,发生了太多令人俺印象深刻的事情,逐渐改变俺的一些看法。
175 条评论:
2009年6月7日

扫盲“社会工程学”[4]:【综合运用】举例

›
  前面的几个帖子已经介绍了社会工程学的一些常见伎俩(主要是“ 信息收集 ”、“ 假冒身份 ”、“ 施加影响 ”这三个手法),今天俺要来举几个综合性的例子。通过这些例子,大伙儿可以见识一下那些社会工程学的老手是如何把各种伎俩有机结合起来,并达到最终的目的。
11 条评论:
2009年5月31日

开源点评:Protocol Buffers 介绍

›
  今天来介绍一下“Protocol Buffers”(以下简称 protobuf)这个玩意儿。本来俺在构思“ 生产者/消费者模式 ”系列的下一个帖子:《生产者/消费者之间的数据传输格式》。由于里面扯到了 protobuf,想想干脆单独开一个帖子算了。
8 条评论:
2009年5月26日

光环效应引发的认知误区

›
  上次聊社会工程学中关于“ 施加影响 ”的话题,其中提到了心理学上的“光环效应”。今天想把这个话题深入地八卦一下。
17 条评论:
2009年5月22日

Java 新手的通病[5]:不了解 JVM

›
   上次的帖子 讨论了Java异常机制的几种误用,今天咱们来说说 JVM(以及 Java 编译器)相关的话题。为啥要聊 JVM 捏?因为有很多 Java 程序员,由于对 JVM 缺乏了解,在碰到某些技术问题时无从下手;另外,由于缺乏对 JVM 的了解,可能导致写出来的代码性能巨...
6 条评论:
2009年5月19日

扫盲“社会工程学”[3]:攻击手法之【施加影响】

›
   上一个帖子 咱们介绍了社会工程中 包装 的技巧。按照 本系列 的计划,今天要讨论的内容是:“如何施加影响”。
11 条评论:
2009年5月16日

如何翻墙?——写在 BlogSpot 被封之后 {2018-12-26}

›
  公元2009年5月的某天,BlogSpot 又一次撞墙,被 GFW 封了。 俺在 BlogSpot 上的博客 也遭受池鱼之殃,杯具啊杯具!当时为了让俺博客的读者能够继续访问,咱特地写了这个扫盲帖,全面普及一下翻墙的各种基本“姿势”。   由于翻墙技术日新月异,本文也会不断更...
344 条评论:
2009年5月9日

扫盲“社会工程学”[2]:攻击手法之【假冒身份】

›
  在前一个帖子里,咱们介绍了“ 信息收集 ”,今天咱们来讲一讲“ 假冒身份 ”的手法。
26 条评论:
2009年5月6日

扫盲“社会工程学”[1]:攻击手法之【信息收集】

›
   上一个帖子 普及了一些基本概念和常识,接下来就得说点实在的货色:介绍一下攻击者常用的套路。攻击者的套路大致可以分为如下几个步骤: 信息收集 、 假冒身份 、 施加影响 、实施最终的攻击。由于每个步骤介绍起来都蛮长的,俺今天先来介绍“信息收集”这个步骤。
11 条评论:
2009年5月5日

扫盲“社会工程学”[0]:基本常识

›
  最近几年,信息安全方面的问题日益严重,许多同学深受其害(比如网络钓鱼、盗用银行卡、蠕虫木马泛滥、僵尸网络盛行等等)。俺窃以为,很大一部分原因在于相应的扫盲教育没有跟上。且不说普通的电脑菜鸟对信息安全一无所知,即便是很多 IT 公司的专业技术人员,对此也知之甚少。其后果就是:很...
61 条评论:
2009年4月29日

Java 性能优化[3]:垃圾回收(GC)

›
   上次的帖子 讲到引用类型和基本类型由于内存分配上的差异导致的性能问题。那么今天就来聊一下和内存释放(主要是 GC)有关的话题。
19 条评论:
2009年4月24日

开源实践:SQLite 的使用场景

›
  上次针对 SQLite 进行了扫盲,之后有同学在 评论里 问俺:如何在项目中使用它?今天咱来聊一下这个话题。
8 条评论:
2009年4月21日

Oracle 收购 SUN,会有啥影响?

›
  昨天惊悉 Sun(升阳)被 Oracle(甲骨文)买了,埃里森真是大手笔啊。IT 业界出了这么大的事儿,如果不趁机八卦一下,似乎有点说不过去啊。下面就从几个方面聊一下俺的愚见。
15 条评论:
2009年4月18日

C/C++ 中一个简单的 enum 手法(idiom)

›
★引子   今天写程序的时候,又用到这个 idiom 了,于是顺便贴出来。这个 idiom 蛮简单的,估计很多人都用过。今天主要是贴出来给新手参考(老手们就甭费时看此帖了)。
21 条评论:
2009年4月16日

架构设计:生产者/消费者模式[4]:双缓冲区

›
  “双缓冲区”是一个应用很广的手法。该手法用得最多的地方想必是屏幕绘制相关的领域(主要是为了减少屏幕闪烁)。另外,在设备驱动和工控方面,双缓冲也经常被使用。不过今天要聊的,并不是针对上述的某个具体领域,而是侧重于并发方面的同步/互斥开销。另外提醒一下,双缓冲方式和前面提到的队列...
9 条评论:
2009年4月13日

招聘的误区

›
  上次在“ 二八原理系列 ”中谈到了“ 如何找到优秀的开发人员 ”。当时主要是结合“优秀人员”的稀缺性来谈优秀人员的招聘问题。今天打算换一个角度,抨击一下当前很多软件公司在招聘方面的弊端。
18 条评论:
2009年4月10日

C++ 多线程调试和测试的注意事项

›
  在 上次的帖子 聊了 C++ 多线程的跨平台问题,后来感觉意犹未尽。今天顺便说一下开发C++多线程应用程序时,有关调试和测试的一些注意事项。下面这些注意事项主要是针对C++,不过有些对于其它的语言也适用。
6 条评论:
2009年4月5日

微软需要 Twitter 来对抗 Google

›
  最近小道消息疯传 Google 要收购 Twitter ,闹得IT界沸沸扬扬。昨天 TopLanguage 论坛 上也有同学讨论此话题(请看“ 这里 ”),我也在里面掺和了一下,发表几点随想。今天想想不过瘾,就把昨天发的评论再继续发散一下。
13 条评论:
2009年4月3日

C++ 的可移植性和跨平台开发[6]:多线程

›
  最近一个多月写的帖子比较杂,导致本系列又好久没更新了。结果又有网友在评论中催我了,搞得我有点囧。今天赶紧把多线程篇补上。 上次聊操作系统 的时候,由于和 OS 有关的话题比较琐碎,杂七杂八说了一大堆。当时一看篇幅有点长,就把多进程和多线程的部分给留到后面了。
2 条评论:
2009年4月1日

架构设计:生产者/消费者模式[3]:环形缓冲区

›
   前一个帖子 提及了队列缓冲区可能存在的性能问题及解决方法:环形缓冲区。今天就专门来描述一下这个话题。   为了防止有人给咱扣上“过度设计”的大帽子,事先声明一下:只有当存储空间的分配/释放非常【频繁】并且确实产生了【明显】的影响,你才应该考虑环形缓冲区的使用。否则的话,还...
9 条评论:
2009年3月29日

架构设计:生产者/消费者模式[2]:队列缓冲区

›
  经过前面两个帖子的铺垫,今天终于开始聊一些具体的编程技术了。由于不同的缓冲区类型、不同的并发场景对于具体的技术实现有较大的影响。为了深入浅出、便于大伙儿理解,咱们先来介绍最传统、最常见的方式。也就是单个生产者对应单个消费者,当中用【队列】(FIFO)作缓冲。
10 条评论:
2009年3月27日

架构设计:生产者/消费者模式[1]:如何确定数据单元?

›
  既然 前一个帖子 已经搞过扫盲了,那接下来应该开始聊一些具体的编程技术问题了。不过在进入具体的技术细节之前,咱们先要搞明白一个问题:如何确定数据单元?只有把数据单元分析清楚,后面的技术设计才好搞。
5 条评论:
2009年3月25日

架构设计:生产者/消费者模式[0]:概述

›
  今天打算来介绍一下“生产者/消费者模式”,这玩意儿在很多开发领域都能派上用场。鉴于该模式很重要且相关内容比较丰富,俺打算分几个帖子逐一介绍。今天先来扫盲一把。如果你对这个模式已经比较了解,请跳过本帖子,直接看 下一个帖子(关于如何确定数据单元) 。
18 条评论:
2009年3月22日

开源点评:cURL——优秀的应用层网络协议库

›
  今天来点评一下 cURL ,这是一个老资格的开源项目,使用它可以基于多种应用层网络协议进行数据传输(包括上传和下载)。它的特点是:支持的协议多、跨平台、支持多种编程语言接口。后面俺会针对这些特点作一些简单的介绍。
3 条评论:
2009年3月20日

Java 新手进阶:细说引用类型

›
  在前几天的帖子《 Java性能优化[1]:基本类型 vs 引用类型 》里,俺大概介绍了“引用类型”与“基本类型”在存储上的区别。昨天有网友在评论中批评说“引用类型变量和它所引用的对象”没区分清楚,容易混淆。所以今天专门来说一下引用类型的相关细节。
3 条评论:
2009年3月19日

Java 性能优化[2]:字符串过滤实战

›
   上一个帖子 已经介绍了基本类型和引用类型的性能差异(主要是由于内存分配方式不同导致)。为了给列位看官加深印象,今天拿一个具体的例子来实地操作一把,看看优化的效果如何。
36 条评论:
2009年3月16日

Java 性能优化[1]:基本类型 vs 引用类型

›
   在 Java 性能优化系列 中,内存管理是一个要优先考虑的关键因素。而说到内存分配,就必然会涉及到基本类型和引用类型。所以我们今天就先来介绍一下这两种类型在性能方面各自有什么奥妙(关于引用类型的其它奥妙,请看“ 这里 ”)。
13 条评论:

Java 性能优化[0]:概述

›
  考虑写性能优化系列,主要是因为之前看到了太多性能其烂无比的 Java 代码(有些代码看得俺口瞪目呆)。很多 Java 程序员在写程序时,由于不太了解 JVM 及语言本身的一些运作机制,从而导致了代码的性能出现【严重】问题(性能差一个数量级以上,我才称为“严重”)。
9 条评论:
2009年3月14日

C++ 对象是怎么死的?POSIX 线程篇(pthread)

›
   上一个帖子 聊完了 Win32 环境下和线程有关的 C++ 对象死亡问题,今天该说说 POSIX 的线程库 pthread 了。如果你对 pthread 不太了解,可以先看看 维基百科 的介绍。
3 条评论:
2009年3月13日

开源点评:SQLite 数据库扫盲

›
  今天注意到 SQLite 3.6.11(上个月发布的)增加了一个俺期待已久的“ online backup ”接口,激动之余就顺便和大伙儿聊一下 SQLite 数据库。本帖权当是 SQLite 扫盲,如果你对 SQLite 已经很熟悉,本文就不必再看了。另外,假如你想了解 ...
11 条评论:
2009年3月12日

无处不在的二八原理[4]:关于激励(如何发挥员工积极性)

›
  由于激励是除了招聘之外,又一个非常重要的管理环节。上次已经介绍了 把二八原理应用到招聘中 ,今天就该说说和激励有关的话题。
25 条评论:
2009年3月9日

书评:《人月神话》——不朽的软件工程名著

›
  已经有好几周没有写书评了,今天突然想起来要写一写。由于 上次的书评 是关于 C++ 的,今天打算写写软件工程方面的。对于软件工程而言,我个人认为到目前为止,尚未有哪本书的影响力和深刻程度能够超越《人月神话》(全名是:The Mythical Man-Month——Essay ...
11 条评论:
2009年3月5日

C++ 对象是怎么死的?Win32 线程篇

›
  在 前面的帖子 里聊完了进程终止对C++对象析构的影响。今天咱们来说一下线程对于C++对象析构的影响。   由于 C++ 03 标准【没有】包含线程的概念,而(截至写本文时)C++ 0x 尚未正式发布。所以对线程的讨论只好根据特定的操作系统平台来谈。对于操作系统自带的线程 ...
6 条评论:
2009年3月2日

无处不在的二八原理[3]:关于招聘(如何找到优秀的软件开发人才)

›
  今天咱们先来聊聊招聘的话题。为啥要先聊招聘捏?因为招聘工作是其它各项管理工作的源头(先得有人可管才能谈管理嘛)。并且招聘工作有其特殊性:招聘方面的失误传递到了后续的环节,其影响会成倍放大。这个现象非常类似于软件开发流程:如果需求阶段出了问题,该问题到设计阶段会放大十倍(设计人...
16 条评论:
2009年3月1日

无处不在的二八原理[2]:在管理方面的应用

›
  前两周由于聊了“ 每日构建 ”系列和“ C++对象之死 ”系列,把二八原理系列给搁置了一些时间。今天终于又回到这个系列上了。我估计列位看官中,可能有不少人打算将来往管理方向发展,所以在聊完“ 二八原理在软件开发的应用 ”之后,咱们就来聊聊管理方面的话题。
5 条评论:
2009年2月26日

C++ 对象是怎么死的?关于标准输入输出流(cout,cerr,clog,etc)的进一步探讨

›
  昨天的帖子《 C++ 对象是怎么死的?进程篇 》,在谈到全局对象的析构顺序史,举了一个“在析构函数中使用 cout”的例子(代码详见 原文 )。当时的本意是想说明:全局对象的析构顺序是不确定的,最好不要在程序逻辑中依赖这个顺序(免得出现移植问题)。   没成想该帖子引来热烈...
3 条评论:

C++ 对象是怎么死的?为什么要写这个系列?

›
  要说 C++ 对象是怎么死的,得先从 C++ 的析构函数说起。这玩意儿是我本人很喜欢的一个语言特性(可惜有好几个语言没有类似的玩意儿,具体就不点名了,免得引发口水战)。我们可以利用 C++ 的构造和析构函数,来实现 Guard 模式,写出比较清晰、简练和异常安全的代码。由于 ...
8 条评论:
‹
›
主页
查看网络版本
由 Blogger 提供支持.