上个月看了《南京》, 很震撼. 上次去南京, 站在城门上看日军突破南京城墙的突破口已经变成了一条车水马龙的路, 看着进进出出的车辆, 和旁边残破的城墙, 感慨良多… 我希望我是南京守将, 一定不会出现300000.
纪念70年前的今天.
上个月看了《南京》, 很震撼. 上次去南京, 站在城门上看日军突破南京城墙的突破口已经变成了一条车水马龙的路, 看着进进出出的车辆, 和旁边残破的城墙, 感慨良多… 我希望我是南京守将, 一定不会出现300000.
纪念70年前的今天.
1. C语言
毫无疑问, 第一门语言是C语言. 我上大一的时候一样有疑问, 为什么中国的高校那么迂腐, 都什么年代了, 外面都Java了, 我们还在C… 还不是C++. 其实, 事实证明, 后来毕业的时候, 被人称作计算机的强人都是当年C语言程序设计考试考优的那几个人. 一个人对于C语言的态度, 其实一定程度上反映了这个人对于计算机科学和程序设计的热衷程度. 我们二三年级的班主任经常讲, 从事计算机工作, 一定要对编程抱有兴趣, 否则是无论如何也学不好的. 如果你发现你对编程根本没有兴趣, 建议趁早转专业. C语言考试当中如果有超过5处地方有问题, 就是不合格. 对于谭浩强版C语言书里面的知识点, 不能有任何疑问. 这也就是为什么谭浩强版C语言教材至今仍在中国书店计算机及网络类畅销排行第二名的原因.
2. C++
C++是不能绕开的一门语言. C++是一种思想, 不学C++不知道Java或者C#的好. 苦其心志是必要的, 虽然我对于C++依然反感的很… 太复杂太混乱太危险了. 不过, 我同样认为, 对于计算机系学生来说, 经过自己的体验知道C++为什么太复杂太混乱太危险是很有必要的. 此外, C++应该是你从TC转向Visual Studio 2005的跳板. C++是一门系统编程语言, 不适合用来写应用程序.
3. HTML/XML/CSS
必须精通的技术. 迟早一天, 所有程序都被XML化. 目前的趋势是WPF已经把应用程序界面表示XML化, DBMS也以支持XML作为重要的大版本特性. 何况, 计算机专业要想挣钱, 网站是必须要做的… 之于CSS, 初学者就不要经历我们走过的那些阴沟了吧. 听W3C的没错. 说起来我做网页也有10个年头了, 初中就开始写HTML, 完全是看HTML标准成长起来的一代人, 那时候还幼稚的很, 当发现可以用表格组织网页框架结构的时候, 欣喜若狂, 自认是个天才, 四处找人想分享经验, 才发现高处不胜寒. 如今, Div+CSS已经变成了我标准的工作语言, FrontPage和Dreamweaver则是早就早就不用了的古董了. UltraEdit是我的最爱.
4. JavaScript/AJAX
如果想走网站这条路, 精通JavaScript是必要的. JavaScript是一门类C语言, 学起来比较轻松, 而且因为JavaScript出了名的难以调试, 可以锻炼程序调试技术. JavaScript技术路线走下去就是大红大紫的Ajax了. 其实没什么, JavaScript和DOM戏法而已.
5. 对Visual Basic的态度
我不建议学习Visual Basic. 将VB纳入.NET框架实际上是一个失误. 从那一刻起, VB就已经死去. 计算机系的态度是, 各科课程设计不能使用VB编写.
6. ASP或PHP
网站路线必经之路. 因为ASP是类VB的, 所以我觉得不太值得为了ASP学VB. 因此, 类C的PHP更有价值, 而且PHP这么多年还活得好好的. 有必要把PHP作为轻量级的后台编程语言.
7. Database
MySQL和SQL Server以及Oracle最好都学习一下. 重点是前两个. Oracle实在是用不起. 占用资源太大, 不适合在自己机器上做试验. MySQL是PHP支持最好的数据库, 走网站路线的建议选择.
8. WWW和Hosting
网站路线的人不可避免的要接触域名系统和托管之类的事情. 这其实是一门学问, 书上很少讲, 却是很大很深的学问. 主要包括, 域名系统, 域名怎么解析, A记录, CNAME, MX记录是怎么回事; DNS怎么工作; 什么是虚拟主机等等. 注册一个属于自己的域名, 会对你将来找工作有很大的作用的. 用网站技术建立自己的个人主页, 然后才能搞明白Google好在哪里(Apps), 什么是SEO(又是一门大学问).
9. Java和C#
Java是一头大象了. Servlet, Swing, JSF, JSP… 名称太多太多了点… 还是C#干净点… 选择那条路, 与其说是技术问题, 不如说是政治问题, 我觉得C#好一点, 必经Sun终归要被并购掉… 微软语言的成败, 不是有语言特性决定, 而是微软平台的成败决定. 因此, C#也有风险. Java路线的话, 后面有网站后台的Servlet和JSP, C#路线则是ASP.NET. 不学PHP也无所谓. 就是主机贵一些.
10. 操作系统
这也是一个政治问题… Windows 2003/2008是肯定要会玩的, 必经和XP/Vista那么近似, 如何在机器上架设Web服务器, 安装动态语言, 架设DBMS是基本功. 因此, 需要精通IIS/Apache/Tomcat. Linux肯定要学. 哪个发行版本我不在乎, 基本Shell命令要烂熟于心.
11. 计算机硬件
有了这些, 可以出去打工赚点小钱, 出去打工, 为自己配一台好电脑吧. 搞清楚CPU阵营, 显卡阵营, 主板阵营, 硬盘品种, 怎么超频. 组成原理, 系统结构, 汇编语言是要好好学的. 为了你将来的水平成长.
12. 设计模式
编程到这里, 基本已经饱受不恰当的系统设计折磨之苦了. 看看设计模式, 看看代码大全, 让自己变成一个爱干净的人, 代码里没有意义的空行甚至空格也不要有. 注释, 用英文写起来啦. 这是, 你就是别人眼里的高手了.
13. 算法
为了生存, 为了面试, 算法是必须精通的一步. 算法导论是一个不错的选择, 别问我英文版好还是中文版好, 都买下来, 随着MIT视频教程, 仔仔细细拿出一年时间来, 学好算法.
差不多了. 毕业吧.
在某些CVS中, 一个目录存在的前提是该路径下有文件. 不包含任何文件的目录是不存在的. 因此, 软件大牛们(如MSRA FTEs)建立一个项目的时候, 会建好项目的目录结构, 每个底层目录里包含一个空文件, 取名为”placeholder”. 处身这样的环境中的时候不觉得什么, 把目录所在的模块的代码实现出来, 添加到这个目录中, 删掉”placeholder”就可以了. 此其一.
工程技术中的大多数问题, 如果你能够把问题描述清楚, 问题基本也就解决了. 只要拿描述去问Google就行. 此其二.
PlaceHolder的艺术
软件系统设计是一门艺术, 设计师要在项目实现之前把项目想清楚, 模块化. 这个过程可以借助很多工具, 我觉得最好的工具其实就是Windows Explorer, 项目目录建好了, 模块也基本出来了. 实现部分, 无非是麻烦而已. 因此, 软件系统设计其实就是PlaceHolder的艺术.
记得当年注册Gmail的时候就对于Gmail的随机单词验证码生成图片比较感兴趣, 因为每次刷新, 获得的随机单词都像是一个单词, 而不是随机字符的组合, 不过就是不认识…
一度认为Google手工找了一堆难词, 然后在当中随机… 今天看Ruby Cookbook的时候极其偶然的发现一个例子, 生成可读单词的算法.
其实就是两个集合, 集合c当中保存aeiou这5个原音字母, 集合v中保存剩下的字母. 然后按照vcvcvc这样的顺序随机出字母组成一个词, 就得到一个可读的类单词.
用在验证码上不错哦~
想在Visual Studio 2008中编辑PHP文件, 可以这样添加着色, 使得PHP关键字高亮显示.
效果:
1. 注册表操作
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Languages\FileExtensions下添加一个键, 名字为”.php”, 值为”{B2F072B0-ABC1-11D0-9D62-00C04FD9DFD9}”
2. 添加文件
在C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE下添加一个名为”usertype.dat”的文件, 内容为:
and
or
xor
__FILE__
exception
__LINE__
array
as
break
case
class
const
continue
declare
default
die
do
echo
else
elseif
empty
enddeclare
endfor
endforeach
endif
endswitch
endwhile
eval
exit
extends
for
foreach
function
global
if
include
include_once
isset
list
new
require
require_once
return
static
switch
unset
use
var
while
__FUNCTION__
__CLASS__
__METHOD__
final
php_user_filter
interface
implements
extends
public
private
protected
abstract
clone
try
catch
throw
cfunction
old_function
this
注册表中添加如下键:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\<9.0>\Text Editor下(你的版本可能不是9.0, 选择你自己的版本)添加字符串值, 命名为”Guides”, 值为: RGB(128,128,128) 4
也可以用这样的值: RGB(128,128,128) 4,8,12,16之类的, 最多可以添加13条参考线. 4,8什么的含义是在第四字符, 第十二字符处画线.
效果如下:
感谢张欣(Crayon@Uruz7)同学整理的Ubuntu下工具的安装方法!
一、安装Grub
$ grub
$ find /boot/grub/stage1
(hd0,*)
$ root (hd0,*)
$ setup (hd0,*)
$ quit
$ sudo dd if=/dev/sda(*+1) of=\ubuntu.lnx bs=512 count=1
将ubuntu.lnx文件复制到Windows的根目录下,比如C:\,修改boot.ini,添加C:\ubuntu.lnx=”Ubuntu 7.10″。二、语言支持与软件更新
系统–>管理工具–>软件源–>下载自:–>其他…–>台湾–>tw.archive.ubuntu.com–>选择服务器–>关闭–>重新载入
系统–>管理工具–>语言支持(Language Support)–>支持的语言–>Chinese–>应用–>确定
$ sudo apt-get update
$ sudo apt-get upgrade三、安装nVidia显卡驱动
下载NVIDIA-Linux-x86-100.14.19-pkg1.run。登录控制台(按下ctrl+alt+F1~F6任一)。
$ sudo /etc/init.d/gdm stop
$ sudo apt-get install build-essential #或只安装libc6-dev
$ sudo sh NVIDIA-Linux-x86-100.14.19-pkg1.run
$ sudo /etc/init.d/gdm start四、安装字体
如果字体文件都保存在/home/(user_name)/fonts里
$ cd /usr/share/fonts/
$ ln -s /home/(user_name)/fonts myfonts/
#或者 $ mkdir myfonts
# $ cp /home/(user_name)/fonts/* myfonts/
$ cd myfonts/
$ sudo mkfontscale
$ sudo mkfontdir
$ fc-cache
系统–>首选项–>外观–>字体,在这里修改。五、输入法SCIM
$ sudo im-switch -s scim -z default
$ sudo apt-get install scim-qtimm
$ sudo apt-get install scim scim-pinyin scim-tables-zh im-switch scim-qtimm scim-bridge scim-bridge-client-gtk scim-bridge-client-qt scim-bridge-agent
$ gksu gedit /etc/X11/xinit/xinput.d/scim
将默认的 GTK_IM_MODULE=scim 修改为 GTK_IM_MODULE=”scim-bridge”。
另外,在scim输入法中进行了如下设定:scim设置->全局设置->将预编辑字符串嵌入到客户端中 前的勾去掉;scim设置->gtk->嵌入式候选词标的勾去掉。六、NTFS分区读写支持
UBUNTU7.10默认就支持NTFS分区的读写,可是不完美,对NTFS分区下的中文文件支持不好,你会发现找不到中文的文件。
$ sudo apt-get -y –force-yes install ntfs-3g
$ sudo apt-get -y –force-yes install ntfs-config
$ [ -x /usr/bin/ntfs-3g ] && sudo ln -sf /usr/bin/ntfs-3g /sbin/mount.ntfs
$ gksudo ntfs-config &
$ set +v七、媒体播放器的安装
$ sudo apt-get install mplayer mozilla-mplayer totem-xine libxine1-ffmpeg
下载w32codecs_20061022-0.1_i386.deb包并安装
mplayer调试(视频、字幕):启动mplayer,右键->Preferences->Video;Available drivers选择xv;然后进入Font标签 Font里选择一个中文字体,Encoding里设置为Simplified Chinese charset (CP936)。
$八、安装解码器、flashplayer、java虚拟机、微软字体
多媒体解决方案是:一般普通的播放任务使用 Totem 电影播放机,如果遇到不能播放的情况或者看大碟时就选用 Mplayer ,播放音乐使用 audacious。
装多媒体软件和相应解码器:安装audacious Ubuntu中类似千千静听的的播放器,支持播放 ogg*, flac*, mp3, wma, wav, 3gp 这些格式。安装 mplayer 和 totem (播放 xvid/divx 编码的 avi 格式视频, rm/rmvb/asf/wmv 等流媒体视频,外加 vcd/dvd和其他 mpeg2/mpeg4 视频。)
为了方便所以来个一键全媒体方案:
$ sudo apt-get install mplayer mozilla-mplayer totem-xine libxine1-ffmpeg audacious ffmpeg gstreamer0.10-plugins-ugly gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-* lame faad sox mjpegtools gstreamer0.10-* totem-xine ffmpeg lame faad sox mjpegtools sidplay-base xsidplay libggi-target-x libggi-target-emu libggi-target-monotext toolame mpeg2dec avifile-divx-plugin avifile-xvid-plugin mencoder drip libavifile-0.7c2 mpg123-el flac123 mpc mpd gmpc sonata gxine totem-xine kaffeine flac beep-media-player-* xine-ui bmpx gstreamer0.8* vlc
win32codes下载:http://archive.ubuntu.org.cn/ubuntu-cn/dists/edgy/main/binary-i386/media/w32codecs_20060611-1plf6.10_i386.deb;ftp://211.86.156.210/debian-multimedia/pool/main/w/w32codecs/w32codecs_20061022-0.0_i386.deb九、安装RAR压缩/解压缩程序
$ sudo apt-get install rar
建立软链接:
$ sudo ln -fs /usr/bin/rar /usr/bin/unrar
这样,以后只要在命令行输入unrar,就可以解压或者压缩文件了,安装完成后,归档管理器也同时集成了rar组件。十、Firefox插件
1. DownThemAll
2. Super DragAndGo
3. Fasterfox
4. MediaWarp https://addons.mozilla.org/en-US/firefox/addon/1879
5. FlashGot:https://addons.mozilla.org/en-US/firefox/addon/220
6. 更快速的打开网页,在firefox浏览器地址拦里输入about:config
找下面的选项进行修改吧:
network.dns.disableIPv6 -> true
network.http.pipelining -> true
network.http.pipelining.maxrequests -> 8(8-24这是我自己的设置)
network.http.proxy.pipelining -> true十一、安装3D桌面:Compiz Fusion,Emerald,Avant Window Navigato,Screenlets
1. 安装显卡驱动
如果是新装的Ubuntu,还没有安装显卡驱动,可以先到系统–>系统管理–>受限驱动管理器中启用受限制的驱动。
解决启动compiz后最大化、最小化、关闭按钮的标题栏消失的问题:
$ sudo nvidia-xconfig –add-argb-glx-visuals #解决没有窗口边框的问题
$ sudo gedit /etc/X11/xorg.conf
在”Module”段加入子段:
SubSection “extmod”
Option “omit xfree86-dga”
EndSubSection
在”Device”段中加入:
Option “AddARGBVisuals” “True”
Option “AddARGBGLXVisuals” “True”
Option “DisableGLXRootClipping” “True”
Option “AllowGLXWithComposite” “True”
Option “RenderAccel” “True”
在配置文件的最后加入:
Section “Extensions”
Option “Composite” “Enable”
EndSection
2. 添加密钥和软件源(步骤2使用7.04的朋友需要做的!!!而使用7.10的朋友不需要做!!因此,跳过)
3. 下载安装Compiz和Compiz Fusion
$ sudo apt-get install compiz compiz-gnome
$ sudo apt-get install compizconfig-settings-manager
$ sudo apt-get install compiz-fusion-*
4. 启动Compiz Fusion了。同时按下Alt+F2,输入compiz –replace即可启动。
5. 定位到系统–>首选项–>CompizConfig Settings Manager,打开后可以对效果进行自定义:
立方体效果: 同时按下ctrl+Alt+鼠标左键(Button 1)。这个和Beryl下是一样的。
火焰字: 在左侧类别栏目的Effect下,勾选”在屏幕上绘制火焰”.同时按下Shift+Win(Super)+B1,退出火焰字同时按下Shift+Win+C。
层叠效果: 在左侧类别栏目的Windows Management下,勾选Shift-Switcher。Win+Tab(和Vista下一样)。
桌面缩放: Win+鼠标滚轮。
屏幕飞雪: 在左侧类别栏目的Extra下勾选飞雪.同时按下Win+F3。
6. Compiz Fusion系统托盘管理图标的安装
$ sudo apt-get install git git-core compiz-dev
$ git-clone git://anongit.opencompositing.org/users/crdlb/fusion-icon
$ cd fusion-icon/
$ make
$ sudo make install
安装完毕后在主菜单的系统工具下可以找到compiz fusion icon启动即可。如果你希望在进入系统时自动启动可以系统–>首选项–>会话,新建一个新会话,填入fusion-icon就可以了。
7.其他
1、解决PDF电子文档的中文乱码
$ sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional
2、安装JAVA环境和JDK
$ sudo apt-get install sun-java6-jre
$ sudo apt-get install sun-java6-jdk
设置当前默认的java解释器
$ sudo update-alternatives –config java
输入有包含”sun”的行的前面的数字
安装浏览器的JAVA Plugin(可选)
$ sudo apt-get install sun-java6-plugin
3、安装编译工具
建议安装上 gcc,g++,make 等。
$ sudo apt-get install build-essential
4、因为经常会用到终端:所以把终端加到右键菜单:
$ sudo apt-get install nautilus-open-terminal
这就终端就在右键菜单了可以了!!有必要学会以root权限打开文件夹
$ sudo apt-get install nautilus-gksu
这样右键单击文件或文件夹,选择以管理员打开!!!查看隐藏文件是:Ctrl+ H
5、启用root(最高权限)帐户
$ sudo passwd root
输入你希望的root用户的密码