之前发过一个cygwin编译出来的轻量级下载工具,这里想把自己平常开发和分析问题过程中常用的小工具发一下,在Linux下,这些工具很容易获取,但是Windows下却不是太好找,今天搜集了一些,集中介绍一下。
DNS类的:
之前发过一个cygwin编译出来的轻量级下载工具,这里想把自己平常开发和分析问题过程中常用的小工具发一下,在Linux下,这些工具很容易获取,但是Windows下却不是太好找,今天搜集了一些,集中介绍一下。
DNS类的:
6月于硅谷举行的Velocity 2014大会上,Google首席科学家Jeff Dean做了一场题为《Achieving Rapid Response Times In Large Online Services》的主题演讲,分享了让大型系统运行更加流程以便改善用户体验的种种方法。
Jeff首先以Google的搜索服务为例,说明了何为大扇出服务(Large Fanout Service),即一个搜索请求需要有大量子系统(Web、新闻、图像、视频、博客等等)参与其中,以便提供更丰富的搜索结果。在Google,基本不会为特定的服务提供特定的机器,而是将服务都部署在一个机器池中,这被称为共享环境(Shared Environment),Google的共享环境大致会包含以下几个部分——Linux、调度系统、文件系统ChunkServer、多种其他系统服务、Bigtable Tablet Server、随机MapReduce任务、CPU密集型任务以及随机应用。它的好处是可以极大地提升利用率,但同时也会带来诸多无法预测的问题,比如网络拥塞等等。尤其是响应时间的长尾现象比较明显,一次请求的平均响应时间是10毫秒,但是却有99%ile的响应时间大于1秒,在大扇出服务中,如果需要调用100台服务器获得最终结果,那有63%的请求耗时会大于1秒。
最近发现购买的“乞丐”版网站空间的流量不够用了。尽力把较大的分享资料文档都放在网盘上面,但是网盘的分享功能实在太不稳定了,说禁用就禁用,说变化分享规则就变化规则,根本不靠谱。当然这也不能怪BAT们,也许是国内的政策不能允许大规模的分发。
想起了曾经关注过的七牛云存储,只知道七牛是按照亚马逊的S3功能点来实现的,而且专注于网站静态资源托管,在这一块下了很多功夫。一直没有将站点的数据迁移过去,总觉得迁移太麻烦,还有迁移之后,又担心不能长久使用,说不定哪一天一声不响的就不再提供服务了,到时各种麻烦。
最短路径是图论算法中的经典问题。图分为有向图、无向图,路径权值有正值、负值,针对不同的情况需要分别选用不同的算法。在维基上面给出了各种不同的场景应用不同的算法的基本原则:最短路问题。
针对无向图,正权值路径,采取Dijkstra算法。
如上图,是求a到b的最短路径,这里并不限定b节点,修改为到任意节点的路径,问题是完全一样的。
今天看到有文章介绍Visual Studio C++有一个编译选项:/d1 reportAllClassLayout,用来输出所有的类型信息,比较有趣。如下图,在工程,属性,编译的命令行中,增加一个“其他选项”,填写/d1 reportAllClassLayout即可。在编译类时,就会生成类的内存结构图。包括虚函数指针表。
从6月份开始,Google,DropBox等网站已经全部被禁用,与YouTube和BlogSpot不一样,这次不是彻底禁止连接,只是禁用了域名解析。使用OpenerDNS即可访问这些DNS禁用的网站。更改你的DNS配置为OpenerDNS即可正常访问Google。注意:这里OpenerDNS不仅仅是提供的简单的域名解析,实际上OpenerDNS做了Google网站的代理,数据是先提交到OpenerDNS指定的地址上面,然后再转发到Google的服务器的。因此OpenerDNS返回的并不是真正的Google服务器的IP地址。
更改DNS配置有多种方法,对于普通的PC设备,可以修改本机的网络适配器。而对于移动设备,没有直接修改设备DNS配置的人口,那么可以通过修改修改拨号设备(路由器)的设置来实现。任何终端首先都是从路由器上面拨号获取DNS服务器的地址,而路由器一般是可以指定DNS地址的。下面会分别介绍这两种配置修改方法。
对于DNS的基本原理,可以参见这篇文章:DNS原理、架构和配置详解。DNS服务器本身能获取到的隐私信息并不多,也就是终端访问了哪些主机(网站域名),并不能获取终端提交和获取的网页数据,但是如果DNS服务器将域名查询请求的返回结果指向恶意网站的地址,那么终端就会将数据发送到该恶意网站,这样是很危险的,也就是与常说的“DNS劫持”产生一样的破坏性。所以建议在敏感数据,如支付、网银等时,还是使用运营商提供的默认DNS。