Skip to content

Understand 5.0——强大的阅读代码的奇计淫巧

 

 

 

  • 强大的编码图形化分析工具

    Understand offers graphs that allow you to see how your code connects (dependencies), how it flows (control flow graphs), what functions call other functions (call graphs), and many more. There are many customization options to easily allow you to display only what you are interested in seeing so the graph is best suited to what you need.(摘自官网)

 

  • 支持编程语言不算多,但目前够用:

 

  • 多平台:MacOS、Windows、Linux

 

  • 所有版本下载地址:https://scitools.com/download/all-builds/(页面上的zip包只是安装包压缩了一下……不懂为什么要这么做)

 

  • 中文版下载地址:https://scitools.com/download/chinese/ (换了个软件名字?还是只是中文翻译补丁?not sure)中文版Build944不支持用Code离线注册,还是用英文版吧

 

  • XX注册很easy

林奕含

——去TM的蓝绿。

听说这个名字是因为凤凰卫视《锵锵三人行》的一期节目。

看过之后,我自然也去搜了节目里提到的专访视频,看到视频的第一眼,当然是被林本人深深吸引,不单单是外表的美丽,更是让人惊叹不已的才华。视频中,我看到的是一个有信仰、有学识的女子,只是这样一个美丽的女子经历了一段不太美丽的路程。我看到的是一个才女在受到“欺骗”之后,在信仰被颠覆之后,对这个世界表达着自己最深切的困惑。

整个访谈看似平静,但是这样的平静背后,不知林本身承受了多少挣扎。她也许是想呐喊的,但她知道她的痛苦和能发出的声音根本不在一个量级,即使发出吵闹的声响,在一些人看来可能也只是噪音,所以只好委曲求全,暂先“按下不表”。

这是林辞世前8天的采访,采访的视频经过了剪辑,删去了很多影响观看的停顿、哽咽。即使如此,依然可以看到林不时的呼吸困难,甚至略有语无伦次(而后又有采访的删减部分放出,可以从更多的角度看到林的困难)。

林本是一才女,高中入读的是国立台南女子高级中学数理资优班;高三学测获得“满级分”的佳绩;第一次“高考”,大概是顺从了家长的意见,考入台北医学大学医学系;休学后,第二年又考入国立政治大学中国文学系,也算圆了自己的一个梦想。作为一个经过高中考验的人,不难发现其文理皆优是多么难得的一件事。

但是后来,随着事情发酵,不知道台湾的媒体或者舆论怎么地就把这事和蓝绿政治联系起来,和统独联系起来。争论从林几岁与陈姓老师发生性关系,到了林家人如何深绿,如何炒作利用此事。

在我看来,我们首先要搞清楚的是林为何抑郁。台湾16岁就算成年,但如果发生的是诱奸,或者事后仍对林产生不良影响的性关系,那又和年龄有什么关系呢?

换个角度来看,16岁成年的界限也不一定对每个人都适用。一个人,不可能在过生日的那天一夜长大。更何况中产家庭中的子女,更多地被寄予“好好念书”的期望。在学校的埋头读书的时间越多,阅历可能就相对越少,越趋不谙世事。当一个单纯美丽的孩子暴露于这个丑陋的世界中,素手无策和毫无还手之力也是可以遇见的必然。

不管怎样,不论如何,林的悲痛我是可以体会的,什么蓝绿政治,统独博弈,在一个弱者的悲痛经历上大作文章之人,其居心我不知该如何看待。林在采访中也说,她关心的不是大的体系,大的结构,不想说大的词句,因为在一个个鲜活的生命面前,这些都是空洞乏力的,每个生命都容不得99%之外的那1%的疏忽。没有谁就该注定下地狱。

斯人已逝,其志长存。

————————————————————————————————————————————————

图片来自 https://static.ettoday.net/images/78/d78343.jpg

Kickstart 无人值守安装

——本文以本地ISO镜像为例,说明Kickstart安装

 

Kickstart 给用户提供了一种自动化安装红帽企业Linux 的方法。Kickstart 文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取。这个安装方法可以支持使用单一Kickstart 文件在多台机器上安装红帽企业版Linux。

Kickstart 安装可以使用本地光盘、本地硬盘驱动器,或通过NFS、FTP、HTTP 来执行。使用原版光盘内的文件即可制作一张Kickstart无人值守光盘。

 

  1. 安装kickstart 软件
#yum -y install system-config-kickstart

 

  1. 打开kickstart 工具配置ks 脚本

#system-config-kickstart &

  1. 基本配置

指定root密码、安装方式、bootloader配置、分区配置、网络配置、认证配置、SELinux及防火墙、显示配置、安装的软件包、安装前脚本、安装后脚本。

配置完成后保存为文件即可(我在附录中附上了一个示例)。

 

  1. 配置isolinux

以/local/为本地光盘拷贝的根目录为例,进入修改/local/isolinux/isolinux.cfg,将第一行改为

default ks

在文件末尾添加

label ks

kernel vmlinuz

append ks=cdrom:/ks.cfg initrd=initrd.img

 

  1. 生成ISO镜像

将保存的Kickstart配置文件复制到/local/下,运行iso.sh脚本。脚本内容如下:

#/bin/sh!

 

 

mkisofs -v -R -J -joliet-long -ucs-level 3 -input-charset utf8 \

-V”rhel6.2_x86_64″ \

-c boot.cat -hide boot.cat -b isolinux/isolinux.bin \

-no-emul-boot -boot-load-size 4 -boot-info-table \

-o /root/myrhel6.2.iso /local/

其中,-o后的参数为输出文件,最后的目录为制作ISO镜像的源目录。

 

  1. 使用Kickstart光盘

使用镜像或刻录好的光盘引导启动主机,即可完成系统部署。

 

  1. 其他使用方法

制作好的Kickstart光盘或者原版光盘,在anaconda引导界面按ESC进入boot:提示符,输入linux ks=<kickstart config path>也可以按照所给的Kickstart配置进行无人值守安装(比如使用存放在可匿名访问的FTP服务器上的Kickstart配置文件),这样即可免去制作光盘的麻烦。

 

附录

ks.cfg

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall –disabled                                                                     //防火墙设置

# Install OS instead of upgrade

install

# Use CDROM installation media

cdrom                                                                  //安装源是否使用CDROM

# Root password

rootpw –iscrypted $1$FqrifQqR$n4.1vXH9d7z558nswOKVh1                  //root密码(加密或明文)

# System authorization information

auth  –useshadow  –passalgo=sha512

# Use graphical install

graphical

firstboot –disable

# System keyboard

keyboard us                                                                                               //键盘布局

# System language

lang en_US                                                                                            //系统语言

# SELinux configuration

selinux –disabled                                                                                 //SELinux设置

# Installation logging level

logging –level=info

# Reboot after installation

reboot –eject                                                                                        //安装后重启,弹出光盘

# System timezone

timezone  Asia/Shanghai                                                                        //时区设置

# System bootloader configuration

bootloader –location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart –all –initlabel

# Disk partitioning information

part /boot –fstype=”ext4″ –size=200                                                          //分区配置

part swap –fstype=”swap” –size=10240

part / –fstype=”ext4″ –grow –size=1

 

%packages                                                                                                   //软件包

@base

@basic-desktop

@chinese-support

@client-mgmt-tools

@debugging

@desktop-debugging

@desktop-platform

@directory-client

@fonts

@general-desktop

@graphical-admin-tools

@input-methods

@internet-browser

@java-platform

@legacy-x

@network-file-system-client

@perl-runtime

@print-client

@remote-desktop-clients

@server-platform

@x11

 

%end

Dell Latitude 11 3160 出厂磁盘分区分析

圣诞节大半夜的搞这个也是醉了,过两天再去把Cylinder-Head-sector的wiki页面翻译了就算功德圆满了23333333

左边可以看到这个硬盘的分区有:

  • WinRE
  • ESP
  • MSR
  • OS(C:)
  • 分区4
  • Image

基本可以确定Dell没有特地为此款机型采用自家的恢复备份软件。常规的WinRE之后是ESP分区,再就是OS系统安装分区了(让我们忽略那个MSR——微软保留分区 :D)。

比较奇怪的是OS分区之后,又有一个450M的WinRE分区,内容和第一个WinRE分区差不多。

最后一个Image分区很显然就放着出厂的系统wim镜像,内部文件如下图:

So, still 看不懂

部署ns-2

ns-2是USC和其他几个机构开发的,目前由 USC/Information Sciences Institute维护。是一款基于linux平台的离散事件网络模拟器。

ns-2主页http://www.isi.edu/nsnam/ns/

ns-2 Tutorial http://www.isi.edu/nsnam/ns/tutorial/ns.html

ns-2由许多部件组成,所以下载all-in-one包安装会比较简单。

以ns-2.35为例,理论上下载解压后运行其中的可执行文件install即可,但是在运行之前我们还有工作要做。

如果你使用的是Ubuntu等Debian系的操作系统,那么很简单:

sudo apt-get update
sudo apt-get install build-essential autoconf automake libxmu-dev

执行以上两条命令之后,就已经完成了依赖包的安装(坑爹的ns-2,为毛老子没看到任何关于依赖关系的说明)

如果你用的是CentOS或者Fedora之类的RedHat系,那么下面几个包我也不知道哪几个是必须的,哪几个是不必要的,反正我都装了(哦,你至少需要gcc-c++这个包和libX11-devel, libXmu-devel:

有人只装了这几个包

libX11-devel*
xorg-x11-proto-devel*
libXt-devel*
libXmu-devel*

也有人装了一大堆

yum install tkinter python-imaging python-tools libXmu-devel* libXt-devel* xorg-x11-proto-devel* libX11-devel*  gcc-c++

233333

反正这些包很多都互相依赖,多装也没事,少装了如果编译不了、运行不了你也会知道的。

装完依赖包还是不能装,编译还是会有问题,有个地方要小改下:

ns-2.35/linkstate/ls.h,在这个文件中找到

void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
T* findPtr(Key key) {
iterator it = baseMap::find(key);
return (it == baseMap::end()) ? (T *)NULL : &((*it).second);
}

将它修改为

void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
T* findPtr(Key key) {
iterator it = baseMap::find(key);
return (it == baseMap::end()) ? (T *)NULL : &((*it).second);
}

搜索erase(baseMap会快一些,只要将erase改成this->erase就行

然后退到ns-2.35-allinone目录,执行./install 就可以了,编译安装会有一会儿,但也不算很长。

Screenshot from 2016-03-07 04-40-22

如果你看到类似上面的提醒,那么说明你已经成功安装了ns-2。

但这个界面也在提醒你需要设置一些环境变量,打开你的shell变量配置文件,一般在主目录下,以Bash为例,打开.bashrc文件,在末尾添加以下几行:

export PATH=”$PATH:/home/UserName/ns-allinone-2.35/bin:/home/UserName/ns-allinone-2.35/tcl8.5.10/unix:/home/UserName/ns-allinone-2.35/tk8.5.10/unix”
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/UserName/ns-allinone-2.35/otcl-1.14, /home/UserName/ns-allinone-2.35/lib”
export TCL_LIBRARY=”$TCL_LIBRARY:/home/UserName/ns-allinone-2.35/tcl8.5.10/library”

将/home/UserName替代为你的主目录即可。

退出编辑器,更新环境变量:

source .bashrc

现在你可以试试了,运行ns会得到%的运行符,exit退出。

在ns-2.35目录下有validate文件,可以运行来测试可用性,这是官方的测试脚本,我们可以不做这一步,直接进入ns-allinone-2.35/ns-2.35/tcl/ex,这里有很多例子,运行ns simple.tcl就会有两个图形化窗口蹦出来,这就是nam了。

纠结

你问我:你总不会还在纠结以前的事吧?

我说:没有

其实我错了

每一件事都值得后悔一阵子

加起来的总和就会是一辈子

我的理性说没有

只是我不想有

没有给自己一个交代的事情太多

情感这东西就是这么理不清

Which one do you like?

image

一张图前后可以有天壤之别,但有人就喜欢假的,喜欢被骗。我反正喜欢原图,你呢?

我的逻辑

手套不错,看到那缝在里面的塑料感颇强到碍手的标签,就想把它剪了。但看到上面的品牌,我想了想还是不剪:好品牌还是值得尊重的。

我又想了很多。我想我爸妈会怎样说某件东西的好:“嗯,这手套用了这么久还没破,蛮好的。”

不错,这的确是一种感恩的心态,也是很容易满足的心态。但我可能不会为此感到庆幸,而把这当作应得的。如果花了钱还要庆幸没买到经不起考验的东西,那实在是有失基本的尊严,活得不免有点卑微。关于品牌这件事,我是这样想的:一个号品牌是可以让人无需劳心劳碌地顾虑的。质量问题是out of question的。我的体会是,我们买东西的时候总希望以10年前的物价买到相同的商品,可是通货膨胀的速度也许超乎了我们的想象。国家统计局已经好几年没公布CPI(上一次好像是在2009年,更多情况请参阅第一财经日报评论部主任的文章http://money.163.com/09/1222/08/5R4GBRIG002534M5.html)。好,有需求就有产业,于是很多购物经历告诉我“便宜没好货”是真的。我们的消费水平有落差,市场供应的商品自然也有落差。这不意味着最低价的商品也是合格的商品。想买到“物美价廉”的商品,几乎是白日梦。回想起几天前和朋友开玩笑说起为安卓手机上的Google服务买VPN,最后得出的玩笑结论是:“花钱变身高级公民”。

我对某些东西的追求是从一而终的,或者用余秋雨在《行者无疆》里评论北欧某国人的话说:没有可以快速转移的热情。我以认真负责的态度这个世界,对他人几乎有求必应,这一切是从小被教育的今天看来现实却是残酷得荒唐!讽刺!

义务教育阶段的思想品德课我没少上,但这世界并非书上那般美好。于是你们选择在教育上片面地矫枉过正。但那些写教材的家伙们,你们想过没有如果真有如书中描述般的人的话,他们能否生存?又该如何生存?我以我的经历和教训告诉你们:不能!!!你们掌握着教化大权,指挥着“人类灵魂的工程师”教“祖国的花朵”、“未来的接班人”如何“花样作死”。却从来没教过英国SAS生存手册里那样的内容,也没有《荒野求生》式地科普着娱乐。象牙塔里的景色总是美好,井底蛙的天空总是不大。

当然也有传统暴力至上的崇拜式家长专制主义的功劳。“棍棒底下出孝子”的确是对的,但也只是满足了家长在道德上对自己的要求,没有考虑孩子和人的可持续发展。由此树立起来的崇拜、信仰,在市场竞争激烈的今天有何价值可言?“我爸是李刚”这句话可能在你们看来没什么问题,但它背后的逻辑和你们教我的东西实在有着黑与白的反差,矛盾冲突不言而喻。试想下,若在竞标时喊出“我爸是李刚”会有什么效果?是会赢得加分?还是让人笑掉大牙?可能会赢得加分,但那只限于mainland,目前的mainland。世界上十大适宜投资的地区包含了HKSAR,但不包括mailland,原因在于mainland复杂的人际关系不利于投资,发展商业。对此我觉得悲哀之外,也有些心累。

说得多了,扯得远了,难免心力交瘁,该睡了。

我本天真

我本自觉自信是年轻的,走路用跑的,吃饭掐表的,时间精确到秒的。现在却连能去较近的食堂吃饭都能感到庆幸。不得不感慨年月催人,懂得了很多,也失去了很多。得到了什么,又丢掉了什么。于我,老天总在这样的事情上显得好像公平。

可我本天真啊。

朋友说我的生日快到了

-朋友说:黄,生日快到了呢。

-我:<Smiling face>

-就是问你想要什么

-我要个女朋友

-太贵了买不起,有没有在我能力范围之内的?

-我开玩笑的,你的心意我收到啦,礼物什么不送也罢

朋友问我

生日想要什么

我说,女朋友

他回,办不到

我说我开玩笑的,你的心意我收到

其实有很多话我没说

其实我想要的有很多

我希望上Google不用翻墙

我希望我的布洛格不用放在Hong Kong

我想要我的智商不被浪费

我想要市场足够开放

我还想要历史不再被“教”

我想要 the one whose name named the street before China consulate in US 得到释放

我想要世界不再面向对象(而是面向过程)

我想要环境不再被污染

世界不再有战争

动物不再被灭绝

气候不再恶化

人们不再沉默

……

 

我……

 

More
More