恼人的 Waiting for the network configuration

相信一定有相当多用Ubuntu的人遇到过开机的时候弹出 Waiting for the network configuration,然后后面还要接着2条,使得整个开机过程要接近3分钟才能结束。这个事情在LaunchPad上有相当详细的讨论,有兴趣的可以参考LP的Bug #839595的讨论。按照本Blog在这类技术问题上向来都是出快餐的风格,这里不讨论UpStart和Plymouth的技术细节问题了,而是直接跳到解决方案层次。

这个现象通常来说是在有配置了静态IP地址的网口没有插网线的情况下出现的,网上的各种解决方案非常之多,最根本的办法如下:修改/etc/init/rc-sysinit[……]

继续阅读

发表在 软件使用与程序设计 | 恼人的 Waiting for the network configuration已关闭评论

如何修改Ubuntu的PATH环境变量

Ubuntu的PATH环境变量是写在

/etc/environment

里面的。修改这个文件就可以解决一般用户和root用户的PATH环境变量了。

而使用sudo的话,则需要使用

sudo visudo

来修改visudo的内容,从而改变sudoer的PATH环境变量。[……]

继续阅读

发表在 软件使用与程序设计 | 如何修改Ubuntu的PATH环境变量已关闭评论

关于互联网电视盒子

最近看了网上若干帖子在说某局的若干严厉的监管政策,以及互联网电视发展艰苦的相关内容。正巧赶上想在卧室再放一个能看点视频催眠的小设备,于是就去某电商买了一个华为的荣耀盒子。设备到手后,看上去很不错,体积小巧,外形设计的确是仿AppleTV的风格,连上网络,被强制升级固件,估计也是某局的要求所致。开机后发现,呵呵,只能看指定播放平台的内容,没法使用任何互联网视频内容,不论是否国内国外,就内容体验,这还不如放台笔记本电脑的说。

网上已有很多人说,某局的各种监管政策几乎把互联网电视这个领域扼杀了。而我倒觉得,这反而是一个隐匿巨大商机的事情。偶曾经不止一次的在聊天里说过,在后互联网时代,任何一个阻[……]

继续阅读

发表在 技术展望 | 关于互联网电视盒子已关闭评论

最最简单的装饰器模式

这里要说的是这个叫做“装饰器”的设计模式的最最简单的C++实现。

装饰器模式实际上是为了解决客户程序需要新功能,但是既不能修改已有类库,又不好多改客户程序的目的提出的,它通过继承并包裹既有的类,实现对已有类的功能的扩充。可以看到,这个模式很好的体现了设计模式中对修改封闭,对扩充开放的基本原则,对于原始类B和原始客户代码都没有修改,但却通过增加新的代码直接提供了新的功能。代码如下:

#include <iostream>
using namespace std;
//基类:为了能够被装饰,这个必须是个能够被继承的类
class B
{
public:
    B([......]

继续阅读

发表在 软件使用与程序设计 | 最最简单的装饰器模式已关闭评论

玩耍一道C++的编程题目吧

教C++编程课,遇到学生问了个问题,虽然题目很简单,但要写出足够有趣的代码还是可能的。题目是这样说的,写个函数delchar(char *s1, char s2),从字符串s1中删去所有s2字符。给学生的答案自然要各种规范,并且得避免教学大纲要求不讲的位运算等等内容,不过就编程玩耍而言,这个函数可以极度简单,今天午饭后闲来无事,写了写。我先写的是下面的代码,总共6行有效的函数体。当然这么玩也有缺点,要求s1至少得有1个字符,空字符串貌似是不行的。

char *delchar(char *s1, char s2)
{
    char *t = s1, *p = s1;[......]

继续阅读

发表在 软件使用与程序设计 | 玩耍一道C++的编程题目吧已关闭评论