C语言下的错误处理的问题

C语言下的错误处理的问题

下面是三种C语言的错误处理,你喜欢哪一种?还是都不喜欢?

/* 问题: 不充分,而且很容易出错,前面成功分配的资源,后面出错需要帮助释放 */
int foo(int bar)
{
        int return_value = 0;
        int doing_okay = 1;
        doing_okay = do_something( bar );
        if (doing_okay)
        {
                doing_okay = init_stuff();
        }
        if (doing_okay)
        {
                doing_okay = prepare_stuff();
        }
        if (doing_okay)
        {
                return_value = do_the_thing( bar );
        }
        return return_value;
}

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 4.40 )
Loading...
有效编程的14件事

有效编程的14件事

下面是14件如何有效编程的方法:

  1. 计划(Plan)

    所谓Plan,其实就是对应于编程中的“设计”阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式编程前至少要考虑一下下面的问题:

    • 你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得对,做得好。
    • 需要有什么样的功能。需要你给出来个功能列表。这样可以保证我们不会遗露了什么。
    • 准备好一些技术难题的前期调查和解决方案。不要等到开始编程的时候才去想。

    下面这你因为有“Plan”而得到的好处:

    • 你能够清楚地明白你要做的东西长什么样?
    • 你能清楚知道你要开发的东西要干些什么事?
    • 你能够在开发过程中解决你所有可能发生的难题。
  2. 阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 4.80 )
Loading...
一个显示排序过程的Python脚本

一个显示排序过程的Python脚本

之前向大家介绍过《一个排序算法比较的网站》,那个网站用动画演示了各种排序算法,并分析了各种排序算法。这里,要向大家推荐一个Python脚本,其可以把排序的过程给显示出来。

下图是“冒泡排序”的一个示例,其中:

  1. 折线表示了各个元素的位置变化。
  2. 折线的深浅表示了元素的大小。越深则越大。

bubble

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (8 人打了分,平均分: 4.88 )
Loading...
如何在Google App Engine上运行PHP

如何在Google App Engine上运行PHP

Google 在一年前发布了Google App Engine (GAE) 。这是一个免费的 App Engine 主机,可以让你的每个Application(免费的最多有10个)有1GB的磁盘空间和43.6个CPU小时与10GB的上传和10GB的下载带宽,以及2000个电子邮件。如果你需要地更多,那就是付钱了。

GAE 最近发布了正式支持Java的通知。于是,互联网上开始有了各种各样的BLOG评论文章,还有一些人居然在Google App Engine 中运行PHP程序,这个太不可思议了。因为GAE目前并不支持PHP。

其实,他们使用了一个叫做 Quercus的东东, Quercus 本质上是一个 100% 的用Java 实现的一个 PHP 引擎 (需要 JDK 1.5),所以,只要你把Quercus集成到你的GAE中,你自然也可以运行PHP脚本了。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (2 人打了分,平均分: 4.50 )
Loading...
深入浅出CORBA

深入浅出CORBA

这个是一本关于CORBA技术的中文文档,原文是Ciaran McHale《CORBA Explained Simply》,我将其翻译成中文形式,并首发在酷壳之上,现在先提供一个PDF的文件形式下载,关于html形式的下载或在线阅读形式以后再慢慢整理。CORBA有可能是一门将要过时的技术,但是它的思想却仍然被当今一些流行的分布式架构所借鉴。所以通过学习CORBA,也许我们可以更好的去理解EJB,去理解Web Service,或者SOA……

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (3 人打了分,平均分: 5.00 )
Loading...
未来五年程序员需要掌握的10项技能

未来五年程序员需要掌握的10项技能

由于最近经济形势的变化,很多开发人员只关注他们短期的工作前景。与此同时,把时间和精力花在学习最能带来回报的新技术上是件非常重要的事情。这里是我们列举的10种你需要马上开始学习的技术,让你的简历在未来5年不会落伍。这个列表并不完全,有很多业界的领域(比如大型机开发人员)没有涉及。尽管如此,对通常的主流开发来说,学习其中至少7项技能肯定不会错 ——不但要达到能在面试时侃侃而谈的程度,还得能在工作中运用自如。

1) 编程语言三选一 (.NET, Java, PHP)
除非开发世界有根本的改变(类似小行星击中雷德蒙),在不远的将来,大部分开发人员将需要了解三大开发平台——.NET (VB.NET或者C#), Java, 或者PHP——中的至少一个。并且只了解核心语言也是不够的。因为项目会包含越来越多不同的功能,你需要对相关框架和库有深入的了解。(本人以为C/C++可能比这三个语言更有竞争力)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (22 人打了分,平均分: 4.27 )
Loading...
Windows下和程序员相关小工具

Windows下和程序员相关小工具

1 HOUR SOFTWARE – 很多的小工具集

.NET Memory Profiler – 可以找出.NET程序中的内存泄露问题,并找出可优化的内存。

.NET Reflector – 查看,导航,搜索.NET汇编中的类的继承关系。

Active Webcam – Webcam 视频监视软件。

ArsClip – 剪贴版管理程序,可以跟踪每次剪贴版中的内容,并可以通过设置热键,取出粘贴其中的内容。

ASP2ASPX – 转换ASP 程序页到ASP.NET

AutoHotKey – 自动点击键盘和鼠标。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (8 人打了分,平均分: 4.50 )
Loading...
Ubuntu的并行启动

Ubuntu的并行启动

如果你在使用多核处理器,那么你可以配置Ubuntu的一个参数来使用Ubuntu的启动并行,以加快其启动速度。

这个参数在文件/etc/init.d/rc中,其参数名是CONCURRENCY默认值是none,你可以把这个参数改成如下所示。于是,你就开启了Ubuntu的并行启动的功能。

CONCURRENCY=shell

但是,这个参数会导致dbus, hal和gdm的产生“race condition”竞争条件,所以,这三个程序的启动顺序非常的关键。其必需保证这个顺序:dbus -> hal -> gdm。这个顺序在Ubuntu的Hardy,Intrepid 或Jaunty中是没有问题的。但是,我们不排除在别的版本中会有问题。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (2 人打了分,平均分: 4.50 )
Loading...
Python处理中文的时候的一些小技巧

Python处理中文的时候的一些小技巧

相信第一次处理中文的朋友们可能都会对中文的encoding 和程序的报错很头疼。

如果你像我一样希望能够把事情尽快做好而不去深究,你可能会写一些异常处理的代码把 UnicodeEncodingError糊弄过去先,但当你开始怀疑有多少encoding出错的信息被你丢弃的时候,可能你会很惊奇。于是,你还是会想坐下来,(洗把脸)然后面对自己必须弄懂什么是utf-8,什么是 ‘gb2312’, 什么是 ‘gbk’ 和其中的猫腻。正如有时候猛撕小伤口上邦迪胶布的快感一样,有时候当你认真面对一些你平时一直回避的问题的时候(其实有时候需要的不是勇气), 你反而会觉得“不过如此”,并且能够一劳永逸的解决问题。

关于Python处理Unicode,我所能找到的最言简意赅的入门教程是:

Unicode In Python, Completely Demystified (揭秘Python Unicode)

简要罗列一下最重要最实用的点:

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 4.71 )
Loading...