跳至主要内容

博文

Living in Hardy Heron (3)

创世纪 神说,要有光,于是就有了光。 神看光是好的,于是就把光暗分开了。 神称光为昼,称暗为夜。有晚上,有早晨,这是头一日。 在Ubuntu Live DVD安装完毕之后,马不停蹄地继续安装必备的系统软件。众所周知,在Linux系统下,即便有了Debian一族的dpkg、apt-get,或是Fedora/Redhat所打造的rpm、yum,软件还是有无法安装的可能。开放源代码的好处就是source code compilation,这才是王道~ 默认的情况下,基本的内核源代码和编译工具是不被安装的。所以必须使用apt-get直接安装: sudo apt-get install build-essential automake linux-headers-`uname -r` 这里linux-header-`uname -r`的uname -r是获取系统的内核版本号。虽然并不经常用到,不过在这个时候``命令还是非常很有用的。 有了基于C/C++构建的编译系统,当然也不能缺少跨平台的Java。由于版权原因,linux下默认提供的java实现并不是Sun的java实现,而是OpenJDK。安装Sun的JDK需要自行到”升阳“的站点去下载bin文件。而我一直偏爱IBM的JDK,以前在Windows下作class obfuscation的时候就发现Sun出品的JDK的性能的确要稍逊IBM一筹。同样的,如果要使用IBM的JDK,也需要自行下载。下载的地址就不多写了,google一下就有了,重要的是看清32bit还是64bit再下载。 chmod +x sun-java-1.6.0r6.bin . sun-java-1.6.0r6.bin 安装后实际上就是解压缩一个目录出来,需要移动到系统的jvm目录中。 sudo mv -t /usr/lib/jvm/ ~/java-6-sun-1.6.0.06/ sudo mv -t /usr/lib/jvm/ ~/ibm-java-x86_64-60 sudo update-alternatives --config java 最后的这个命令是用于设定默认的JDK。当然,手动修改文件/etc/jvm也是可以的。 参考资料 APT/YUM Server 出自鸟哥的私房菜 OpenJDK Project in java.net

Living in Hardy Heron (2)

混沌初开 ia32 shared libraries for use on AMD64 and ia64 systems. This package contains runtime libraries for the ia32/i386 architecture, configured for use on an amd64 or ia64 Debian system running a 64-bit kernel. 本本(Acer 4520G 551G16M)的硬件配置大体如下: CPU: AMD Turion 64x2 Mobile TL-62 HD: 160GB RAM: 2048MB DDR2 Bluetooth: 2.0+EDR Graphics: NVIDIA Geforce 8400M G 802.11b/g Wireless 安装的时候一切都挺不错,分区用了ext-3格式,其结构如下: /boot: 为了提高启动的效率,该分区单独分配180MB。 /home: 个人目录,分配了40GB。 /: 根分区分配了106GB,没有对/usr, /var等作细分。 登录之后check了一下,以太网卡工作正常,可以直接使用“网络”工具来配置IP、子网掩码、网关和DNS等;蓝牙可识别且LED灯工作正常;无线网卡无法正常工作且LED灯完全不亮;大部分特殊键都可以正确工作,例如WEB键、音量控制键、屏幕开关键和鼠标触摸板开关键等;声卡正常工作且音量可控,但是内置麦克风无法识别。 为了开始安装软件,将大量使用apt-get而非“新立得软件管理工具”。ia32-libs是比不可少的。因为有不少的软件缺少在AMD64平台的编译版本,要通过 apt-get install --force-architecture 来安装32位的版本并通过ia32库来确保运行时环境。

Living in Hardy Heron (1)

序幕 Hardy Heron is the code name for Ubuntu 8.04 LTS, released on 2008-04-24. 我的一台老PC上装的是Ubuntu 7.10,因为硬盘上有点坏道,Windows XP一直没法正常工作,自从交给Linux打理之后,使用地很顺利,没有遇到过太多的麻烦。这次Ubuntu 8.04刚发布没多久,还是个LTS版本,我就想在笔记本上体验一下。 没想到由于分区的错误(强烈建议要装双系统的朋友现在Windows下面将空余的分区做好再用LiveCD来安装Ubuntu,血淋淋的前车之鉴阿……),导致原有的Vista系统的分区表被破坏了……反正我的主要开发环境是Java的,IDE用的是强大且跨平台的Eclipse,Editor一直是原生于Linux的VIM。于是决定一不做二不休,将整个本本交给Ubuntu来控制。 这个决定,带来了随后几周的崭新体验——于是,就有了这个《Diving in Hardy Heron》系列。

关于代码缩进的思考

在 PEP8 读到了关于代码缩进的指导建议: Code lay-out Indentation Use 4 spaces per indentation level. For really old code that you don't want to mess up, you can continue to use 8-space tabs. Tabs or Spaces? Never mix tabs and spaces. The most popular way of indenting Python is with spaces only. The second-most popular way is with tabs only. Code indented with a mixture of tabs and spaces should be converted to using spaces exclusively. When invoking the Python command line interpreter with the -t option, it issues warnings about code that illegally mixes tabs and spaces. When using -tt these warnings become errors. These options are highly recommended! For new projects, spaces-only are strongly recommended over tabs. Most editors have features that make this easy to do. 在此之前我也仔细考虑过缩进应该使用哪个比较好——tab vs. white space.最终我觉得使用tab比较适合我,主要是基于以下几点考虑: 在行首的所有缩进都是用tab,在行内和行末只适用white space,这样无论代码使用哪一种IDE或是editor打开,无论设置的tab width是4或是8或是其他什么奇怪的数,每一行的缩进关系都可以正确的显示出来,差别只是宽度而已,不影响可读性。 我使...

Fixed width within display:inline

根据老板的需求修改web page中的footer的时候发现了<span>的宽度有问题,HTML的结构大致如下: <div style="margin: 0pt 260px; width: 380px;">     <span class="footTag">About</span>     <span class="footTag">Partners</span>     <span class="footTag">Advertise</span> </div> <div style="margin: 6px 0pt; clear: left;">   © 2008 Company-Name </div> 其中样式footTag指定了width,但是尝试了很久发现span的宽度无论如何也不能按照CSS的定义显示…… 但是如果换成DIV或是用 display: block 就可以。在Google了不少keyword之后终于发现了一篇 相关的解释 。到W3C的CSS 2.1规范里具体找了一下,果然发现: 10.3.1 Inline, non-replaced elements The 'width' property does not apply. A computed value of 'auto' for 'left' , 'right' , 'margin-left' or 'margin-right' becomes a used value of '0'. 有空一定要仔细看看规范~做WEB开发的至少先将CSS、JavaScript和DOM混个脸熟,然后再研究不同browser的特性。

Ubuntu下的nvidia硬件加速

在老PC里装上Ubuntu 7.10已经有一段日子了,平时上班主要用ACER的laptop,回家有时候开着PC下aMule或是Azureus。本来也曾经试着用PC来看片,可惜有时候CPU占用率偏高,遇到解码率较高的片子,如HD的片子就会卡…… 今晚在google是否有linux的土豆加速器版本,无意中看见了一个安装nvidia驱动的帖子——打开菜单『系统』|『系统管理』|『受限驱动管理器』,启用nvidia驱动程序即可。打开了nvidia驱动之后的视频果然强悍了不少:Firefox里头的控件多了shade;Flash看土豆的CPU使用率降低了不少;整个desktop的view变得更细致了,估计是抗锯齿打开了的好处。 看来以后买硬件还是大牌比较好,至少linux下面驱动的支持找得到~

File Mode in Linux (1)

Linux中的文件具有三种访问权限:read(读)、write(写)和execute(执行)。每一个文件都属于一个指定的user(用户)和group(群组)。对于文件访问的控制是依据user、group和other来分开定义的。所谓的other,指的是既不是拥有该文件的用户(owner),也不是属于拥有该文件的群组的用户。 使用命令 ls -l 可以列出文件的长列表,在有的linux主机上,定义了该命令的alias别名为ll。其中以10个字符来标记一个文件的类型和权限——drwxrwxrwx。其中,第一个字符标识的是文件的类型,如d表示目录,-表示普通文件,c表示字符设备,b表示块设备,l表示符号链接,p表示管道文件,s表示套接字文件等;后面的九个字符每三个为一组,一次表示owner、group和other的权限;每一组的三个字符又一次表示read、write和execute的权限。此外,s表示setuid,该标志位仅对可执行的文件有效。如果ll命令显示的权限中有'-',则表示对应该位的权限没有被授予。 提到文件的权限,就必须要说到chmod。这个命令就是用于改变一个文件的模式(change mode)的。具体的用法参考man chmod,这里只介绍几个常见的用法: chmod g+x [filename] # grant the Execute privilege to Group chmod g+s [filename] # set the group id to the executable file chmod 755 [filename] # set the mode as rwxr-xr-x