0号博文-我眼中的IT

  转载请注明出处http://www.cnblogs.com/dvd0423/p/4183385.html

  我的博客初步打算只写三个系列:Linux内核、数据挖掘、分布式系统,以后可能还会扩展。至于平时用过的一些乱七八糟的但又比较牛逼的命令和工具就不写进来了,实在没难度(哈哈,其实这是我最擅长的部分)。在这里我假设读者有鉴别真伪的能力,所以文中有纰漏之处请见谅。

  既然是专注于IT的博客,那我就说说我对IT的理解,主要从我所了解的内核、数据挖掘、分布式三个方面展开。我的认识只限于我人生的前23年的经历,根据我以往的经验来看,n年以后这个认识会被我自我否定。但是目前这是我能达到的最大高度。

  态度决定了能力,因为你所从事的行业还没有达到需要比拼智力的程度。我们做任何事都是一种态度的驱动。在IT行业,对于傲慢的人我想说:你懂的很多吗?SVM、Pregel、Paxos...一个机器学习的大牛,在操作系统领域可能是个菜鸟。所以把你那咄咄逼人的傲慢改为一种温和的自信吧;对畏惧的人我想说:计算机就是一种工具,它和office没有什么区别。你觉得它难只是因为你志不在此,并不是因为别人更优秀,所以给自己点自信,K.O它。使用工具很难吗?那可是人的最大能力啊。

  程序=数据结构+算法。我把数据结构放在第一位是因为我觉得数据结构和算法就像人的肉体和灵魂,没有灵魂我们仍然可以活着,没有肉体灵魂又栖息何处?就像Linux内核源码,你要知道它就是数据结构搭建起来的大厦,本来是没有用红黑树这些华丽丽的高富帅算法的。我们看任何源码还不是首先看源码有什么数据结构,然后再看在这个数据结构基础上用了什么算法。知道了“程序=数据结构+算法”,再看Linux内核的话,剩下的就只剩态度了。

  对于数据挖掘,我们要认识到:即使我没用机器学习,照样可以挖到矿。只不过我用的是铁锹,挖的是铜矿,你用的是目前世界上最强的“蓝翔挖掘机”,挖的是金矿而已。为什么这样说?因为当数据很大的时候你随便找都能找到一群与众不同的有价值的集合。机器学习可以看作是一种数学最值问题,相同的数学问题在医学、金融等领域也以另一种形式存在,目的最终都可以划归为求“最值”。有价值的信息都在边界上,比如对于一条线段,你仔细想想什么时候应该是最值呢?没错,两个端点上。为什么?即然是“最”当然要与众不同了,而除了两个端点,其他点左右两边都有点的存在(这个问题只是便于理解,就算加了条件限制,也是条件最值问题。所以就不要咬文嚼字嘞)。“与众不同”——这就是极值的思想。

  形象的说,数据挖掘就是“没事找事”,分布式系统就是“遇事销事”。如果有一台计算机可以解决所有人的问题,谁闲的蛋疼会考虑分布式问题呢?可“如果”(这是个人哦)根本没有这样的计算机,所以就有了网络(网络就是一种分布式系统),就有了分布式计算,就有了分布式存储等等。其实分布式系统是IT的基石,是IT公司的发动机,苏宁易购网站在双十一瘫痪就是基石没打好。谷歌的三驾马车哪个不是分布式系统,不管是旧的GFS、Map/Reduce、BigTable;还是新的Caffeine、Pregel、Dremel。只要有世界上还有两台计算机,分布式都不会过时。只不过它是一个宏观的基础架构,面太宽,我们这里所说的分布式系统都是原理层面的东西,毕竟原理知道了再敲代码就只是时间长短的问题。

  分布式系统就像两个人用信鸽传情书,这个过程存在哪些问题呢?

  • 每次对方只能知道信上写的内容,不可能知道更多关于你的信息。{这难道就是异地恋(分布式)的痛苦?}
  • 信鸽途中下蛋去了,而女孩一直在大树下苦苦等待,你也在兴奋地等待她的回信。{这就是问什么TCP要三次握手}
  • 由于没有回信,你就多次写信,可这些信鸽组团下蛋去了。 {只要是有空间差就没有绝对的可靠}
  • 对女孩抱有希望的你这次换用“信使”、“信猪”、“信驴”等各种手段传递。 {这就相当于不同的协议}
  • 可这时候所有的信鸽都下完了蛋,然后信件大量投到对方手里。{这就是拥塞,可以导致瘫痪。也是一种网络攻击手段}
  • 而之前你的信鸽有一只被你的情敌截获了,他看过后就用你的笔迹写了一封你的分手信给女孩。{这是分布式系统的安全之一问题}
  • 女孩看到后不相信然后回信问你原因,而你的情敌又截获她的信,然后用女孩的笔迹给你写了谩骂信。你看到后很伤心就用很可靠的“信龟”写了最后一封诀别信,然后再也不相信爱情了。你的情敌虽然没有截获“信龟”,但是他直接伪装成你,并用他自己的信鸽开始和女孩通信。由于“信龟”速度太慢,最后结果就是路人甲和女孩牵了手,你成了他人眼中的路人甲,而你的最后一封情书正以龟速在传递的路上......{你看分布式系统就是一个悲剧}

  从以上的现象可以看出分布式系统的根本问题是:时间差与空间差的问题。如果你们面对面沟通,以上的问题就不会发生,所以如果未来有量子计算机,这些问题都不再存在(原因百度“量子纠缠”)。

  说到量子计算机,我就扯扯闲话,下面的内容不是计算机范畴,但都是事实,就算你理解不了也可以长长见识。

  在这里我想推荐大家看两本书《时间简史》和《上帝掷骰子吗》。有人说这两本书和我有什么关系?确实,学不学宇宙学和量子论我们都照样吃饭,睡觉,打球球。但是作为一种世界观,它决定了我们以什么样的态度走过我们的一生。对于那些学点皮毛就忘了自己是谁的人(我有时也会这样,在这里自我检讨),我想说世界是无限层的洋葱,在第二层上用唯物辩证法看问题是对的,但是到了第三层它就不适用了,更别说那剩下的无限层了。所以作为人类一个整体,我们都没有自负的资本,更别说作为一个脆弱的个体了。总之,一切理论都非万能,就算唯物辩证法的“客观”也是看起来客观而已,“薛定锷的猫”和“量子纠缠”告诉我们大自然太神秘,就连爱因斯坦也被她戏耍了一辈子,作为凡夫俗子的我们更应该以一种谦卑的心去认识世界,你没什么了不起。不管你愿不愿意承认,终其一生我们都会像持有“地心说”观点的人一样,成为后人的笑柄,因为我们从来没有真正的认清世界。对于这个世界我们一无所知,但也不应妄自菲薄,虽然我们没有认清过世界,但我们正向这个方向努力。量子论就像潘多拉魔盒,它带给我们困惑的同时也给了我们希望,人择原理让我们相信“世界因我而存在”。

  知不知道星星为什么会发光对我们的生活没有影响,但是知道总是好的。因为当一个女孩靠着你的肩膀,用手指着天空跟你说:“看,闪烁的星星好漂亮!”这时我想知道原因的人看到的夜空一定是另一番美丽的景象。

by 糖球

时间: 2024-11-06 15:38:52

0号博文-我眼中的IT的相关文章

0号首页,移动应用快捷门户

我们已有的应用,都将Android通知栏作为"传统的通知"用途,比如短信,微信,QQ都在这样使用.不过,同样的区域,也有创新的使用方式,比如最早的音乐播放控制,现在的360智键,百度搜索都开始占领通知栏,作为其应用的快捷入口,见附后图. 从移动应用的成功程度评价,"占领手机的前三屏",到现在安装了大量应用App后,其实除了常用的几个,其余都在沉睡冰藏,很难主动想起去"找到-点击"的使用过程. 不过,Android3.0以后,有了Ongoing(运

汇编语言:0号中断处理程序

assume cs:code code segment ;第一步:把中断向量表中0号表项的内容进行修改,使之指向我们自己编写 ;的中断处理程序的入口地址 start: mov ax,0 mov ds,ax mov word ptr ds:[0],0200h mov word ptr ds:[2],0 ;第三步,把我们刚才编写好的0号中断处理程序拷贝到中断向量表中 ;0号表项所指向的内存地址中0000:0200 mov ax,cs mov ds,ax mov si,offset int0  ;ds

汇编试验十二 编写0号中断的处理程序

要求:除法溢出的时候,在屏幕中心处显示overflow! 分析: 0号中断,对应的中断入口地址中的程序可以不用修改,放到内存0:空余位置(空余位置一般是0000::0200~0000:02FF)于是,就将显示字符串的程序放到这里: 用一个do0安装程序,将这个中断程序复制到内存0000:0200那里去:格式是:es:di 目的地址,ds:si源程序,cld复制方向,rep movsb 复制 子程序(中断程序)中,显示的字符串,不能放到一个独立的代码段,而是放到一个中断程序本身里面,因为复制程序运

poj 1611 求0号结点所在集合的元素个数

求0号结点所在集合的元素个数 Sample Input 100 42 1 25 10 13 11 12 142 0 12 99 2200 21 55 1 2 3 4 51 00 0Sample Output 411 1 # include <iostream> 2 # include <cstdio> 3 # include <cstring> 4 # include <algorithm> 5 # include <cmath> 6 # inc

解析磁盘0号扇区数据

自己写了一个简单工具,可读取磁盘扇区数据.也可下载其他工具查看.本人磁盘0号扇区数据如下 这个0号磁盘是整个磁盘的第一个扇区,称为MBR(Master Boot Record )主引导记录. 此扇区的前446个字节是引导程序,在BIOS的代码执行到最后时,BIOS会将这段程序加载到内存中并开始执行.后面的64字节是硬盘分区表. 从0x1BE~0x1FE 共64字节,是4个分区表项,0x1be~0x1cd为第一个分区表项,0x1ce~0x1dd为第二个分区表项,0x1de~0xed为第三个分区表项

【实战编程】编写0号中断处理程序

题目:编写0号中断处理程序,在除法溢出时,在屏幕中间显示字符串“hacker by admin!” 之前先补充一个rep movsb的指令知识 movsb和movsw是相反的,都是根据标志寄存器DF的值选择正向传递还是反向传递. 这两个指令都是把ds:si中的值传递到es:di的位置中去 如果df=0时,取正向移动.(inc si和di) 如果df=1时,取反向移动.(dec si和di) 由上可知,只需要改变si和di的值就可以选择正向还是反向 cld 指令 :使df=0:std 指令 :使d

分区里的inode号是0号和1号的block

分区里的inode号是0号和1号的block 我相信大家在使用Linux的时候都遇到过误删文件系统数据的情况,不管是自己误删还是帮人家恢复误删 现在用的比较多的恢复工具大概是ext3grep .extundelete 这两个 当然本文不是要说这两个工具的使用方法,而是介绍每个分区里的inode号为0或1号的block到底是什么 在使用ext3grep .extundelete 的时候,基本上都会有这样一个步骤 在Linux下可以通过“ls-id”命令来查看某分区目录的inode值,可以输入: [

Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)

日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建 前言 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) * idle进程由系统自动创建, 运行在内核态 idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_t

有17个人围成一圈(编号为0~16),从第 0号的人开始从 1报数, 凡报到 3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。 问此人原来的位置是多少号?

void main() { int a[17] = { 0 };//代表17个人,值为0代表还在,1代表离开 int baoshu = 1;//当前报数的数字,最多49 int total = 17;//当前还剩多少人在 int cur = 0;//17个人的当前人循环到的编号 while (total!=1) { if (cur == 17)//说明已经走到下一圈了,需要保证当前人的编号 { cur = 0; } if (a[cur] == 1)//说明该人已经离开圈子,报数不增加,走向下一人