菜菜博士

博士在网络的家

python是个渣语言

一直以来我都表达 python 是个糟糕语言的观点,但是没有深入的解释。 计算机一直都是“工具”,意味着我们是拿它干活的,也就是所谓的提高生产力。 指挥计算机干活的重要工具就是编程语言。计算机并不是训练来干活的,是编程来干活的。编程语言的效率有2个指标:编写干活指南的效率和机器人执行的效率。 在人力成本低于硬件的时候,人追捧的是执行效率。 人力成本越来越高的时候,人开始追求编程的效率...

内存管理随笔

思考一: 任何一个程序,只要不是 helloworld 那样的简单程序,必然会用到内存管理。内存管理是写程序不可避免的过程。C程序员最大的恶魔就是野指针和内存泄漏。这是每个C程序员的噩梦。C++继承了C的缺陷,基本上半斤八两。而且C++还可以自由重载new操作符,给内存管理更加重了复杂性。 我常常在想,写BASH脚本的时候,我们有管理过内存么?即便是java那样的语言,内存管理也是后台进...

C++ 王者归来

曾几何时,学会了C语言。安装了VC6这个神叉IDE。 然后被迫开始CPP路程。由于C++兼容C,所以一直在以C的方式写C++。然后慢慢的开始学写C++代码。写C++代码是从MFC开始的。慢慢的,我学会了用class,感觉是个比struct好用的多的结构体。再慢慢的,我学会了继承,还有… 多重继承。 MFC 就是我的导师。开始不停的向MFC学习。既然用了c++的继承,就认识到了继承的陷阱。...

善待笔记本,启用intel集显的节能模式

在 XP 下用的时候,用计量插座,空闲功耗大概在 13W ~ 14W 之间。 在 Gentoo 下用的时候,空闲功耗也在 20W 之上。 很头痛。 CPU 的节能已经打开,一直在 800M 最低频率运行呢! 恩,应该是 GPU 费电啊~~~ 有什么办法能让 intel 的 GPU 工作在节能模式呢? 答案是添加隐含的内核引导参数 i915.lvds_downclock=1 i91...

i7 拯救了 Gentoo

好多年以前,我开始了 Linux 之旅。 我频繁的切换发行版,从 RedFlag 5 到 RedFlag 6 再到 ubuntu 8.10 马上又切到 Fedora 8 然后是 9 10 , 期间又重回 RedFlag 7 过,间或也使用过 debian 和 puppy。 如此频繁的切换发行版,只不过是我觉得它们都没有满足我的要求。我不停的切换,企图寻找到一个可以一劳永逸的满足我的需求的...

别了 AMD . 来了 Intel.

刚开始接触到电脑的时候,正是 K8 无限风光, P4 高频低能的时候。那个时候起心里就有了 amd 的 U 便宜又好,低频高能的种子了。 到自己 DIY 的时候,就买了 AMD 的 U . NVIDIA 的芯片组。 那个时候扣肉还没有出, AMD 的 K8 余光依旧,K10 风头正好。AMD 率先推出双核,intel 还是伪双核, etc . 当时买的是入门双核 4200+ . 配合 M...

给老婆的 F41M (注意后面有个M ... M M M M (都是回音)) 升级到 T9300 CPU 和 4G 内存

上回说道,老婆大人换到 ubuntu 后突然觉得电脑好慢好慢 。。。 。。。 慢到蜗牛都吃到葡萄了这 Unity 界面还没显示出来。 嗯嗯,言归正传。 老婆大人的电脑是 08 年买的,好早(老)保护的比较好,外观还很新。不过,鲜丽的外表掩饰不了那落后的奔腾的芯。 废话不说,晒一下配置 CPU: T2330 内存: 1G 硬盘: 160G@5400RPM@50-30MB/s 芯片...

原来 Linux 已经慢到这种地步了啊

因为特别喜欢 Gentoo , 所以自从2年前的一次偶然,我用上了 Gentoo 后就在也没有换过系统。 Gentoo 的好处非常多,多到数不清。 连老婆大人的系统我都给折腾成了 Gentoo. 不过,由于疏于维护,老婆大人的 Gentoo 出了些许毛病,主要是 Gnome 3 太不稳定,太不给力,太容易崩溃。 老婆坚持下,换了 Ubuntu 一直以为老婆大人的破硬件不给力,所以进...

从 RedFlag 到 Gentoo, 多少年,一瞬间

很久很久以前,在我还认为米国人生活在水生火热之中的时候,我认识了 Linux , 于是在买了电脑前就去亚马逊买了 Fedora 8 的DVD … 等我的电脑 DIY 好了,我立刻就安装了 Fedora 8 但是… 似乎连个 mp3 都播放不了。 就在我寻找如何解决的时候,我发现了 RedFlag 6。 于是,我试试看的态度安装上了 RedFlag, 呵呵,果然 mp3 啊,rmvb 什...

定期发布 Release 不适合现代 Linux Distro

我想说,定期发布 Release 这种模式已经过时了! 想想看 ubuntu 的 LTS 版本是如何在生命周期结束前就过时的吧! 上一个 ubuntu TLS 版本,居然不包含 gtk3 , 如果要实用一点,基本上要添加一 大堆的 PPA. 而使用 PPA 基本上就和 TLS 的理念背道而驰了。 dabian 这样的发行版,基本上的发布前就过时了。 ! 没错。 glibc, cor...

为什么你应该让你的项目使用 autotools 而不是别的编译系统

编写软件离不开编译。 简单的编译,无外乎直接调用 gcc 去编译。 简单又不简单,当源文件不止一个的时候,麻烦的事情就随之而来。 当然,这个时候你可以选择 Makefile 但是,如果要求你的 Makefile 支持很多标准化操作,比如 make install DESTDIR=…. make dist-bzip2 你怎么打算呢? 自然,你需要一个自动创建 Makefile ...

BIOS 是如何访问在内存还没有的时候检测并初始化内存的

首先必须明确的一点是, BIOS 运行初期,CPU 其实是不能访问内存的。 BIOS 所在的 FLASH 是那种可以被 CPU 直接寻址的 FLASH 芯片。被都固定在 0x4FFFF (记不清具体地址了) 地址上了。类似 ARM 使用的 NOR FLASH。 uboot 就在 NOR FLASH上。 然后,BIOS 初始化代码开始通过寄存器和北桥芯片沟通。 因为 BIOS 就是版...

chroot to arm on an x86 Gentoo

在早上的邮件中,我指出 Gentoo 是如何方便的构筑交叉环境的。 现在,我要指出,我还要运行里面的arm程序! 在 chroot 环境中,真正的把它当 作一个发行版! 我使用的是 crossdev -t arm-unknow-linux-gnueabi 编译的 arm 交叉工具链。 这时候 arm 其实被安装到了 /usr/arm-unknow-linux-gnueabi/ /usr...

2.6.38.4 内核对 tq2440 支持补丁

最近折腾了很久,总算搞定了。 发个补丁,希望大家不要再折腾了,而且也不要看网上的所谓垃圾移植指南了,都是 bullshit. From 144759a9929f0858398b834a5cbfdb79ce56f077 Mon Sep 17 00:00:00 2001 From: microcai <microcai@fedoraproject.org> Dat...

GPG 签名与加密

首先密码学的模型 1) 通信双方的机器是没有问题的。没有木马,没有坏人。 2) 通信线路是不可靠的,有人监听,有人伪造信息 那么,就要解决2个问题,首先,我得确信这个信息是你发送的,不是别人伪造你 发送的,俗称数字签名, 第二,我要确保没有人知道我们之间的通信,也就是加密。 非对称加密的意思就是,同时有2个key. 用其中一个加密,只能用另一个解密。 这样,随机选一个做私钥,另一...

两种 Mem remap

安装4G内存操作系统却只报告 3.2G 是4G时代困扰我们的一个问题。 解决办法需要3个条件齐备,缺一不可 1. 内存控制器支持 > 4G 寻址 2. 操作系统支持 PAE 或者直接64位系统 3. BIOS 支持 mem remap ** > 4G 寻址的内存控制器,intel 平台的话要求至少是 945 以上的芯片组。 AMD 平台的话,内存控制器内置于 CPU, 只...

为何我们不能回到过去

我们能回到过去么? 答案是:不能。 单个原子能回到过去么? 答案是,可能。 lol 自从爱因斯坦否决了牛顿的时空观后,很多人就开始在理论上研究时空旅行。 时间是什么? 时间由运动产生,没有运动,就没有时间。如果你周围的一切一切都变慢一倍,包括你自己的新陈代谢,那么,你还能知道时间变慢了么? 决定不能。 时间就是相对的。想到这就很容易理解了。 于是,既然时间是相对的,能回到过去么?...

Size is not everything

我们买笔记本的时候,往往笔记本只标示硬盘容量,却往往不标示他所使用的硬盘的牌子和速度。 我们知道,硬盘的速度是一台电脑整体速度的瓶颈。它慢了,不管容量再大,电脑都快不起来。 希捷 7200转 500G 带 16MB 缓存的硬盘,接口速度 300MB/s , 突发数据传输率可达 160MB/s ,持续传输率平均能达到 80MB/s , 一个要卖 超过 500 同样容量的日立硬盘,54...

gnome 的对与错

gnome-shell 也用了许久了。从一开始的新鲜到习惯, 再到离不开它。 等新鲜感过去的时候,我发现我越来越不能忍受 gnome-shell 那容易崩溃的毛病了。 在没升级 gnome 其他部件的时候, gnome-shell 崩溃总是会被自动重启。 后来 , gnome-shell 崩溃虽然也会被自动重启,可是 … 如果连续崩溃两次间隔很短,则愚蠢的 gnome-session ...

OSS4 deprecated ALSA and PulseAudio

Turst me , OSS4 = ALSA + PulseAudio , and all implemented in kernel. very low latency. OSS4 have kernel level mix feature which ALSA lack for years and that’s why PuleAudio fucked to burn. OSS4 a...