Firefox 开启或关闭 javascript

升级到Firefox23.0后突然发现javascript被禁用了,浏览很多网站都出问题,而且 Firefox23.0在首选项中取消了javascript的设置项。 郁闷了一天后,突然想到一个稳妥的办法,改config,步骤如下: 在地址栏中输入about:config, 然后选“我保证会小心”,进入设置项页面 在出现的搜索栏内输入javascript,在下面的列表中会看到javascript.enabled被设置为false 双击刚才看到的条目,把选项改为true! 要禁用(你确定?)javascript,则再双击一次,改为false即可! 不需要重启Firefox,现在javascript已经被启用了!

2015年4月6日 · 1 分钟 · Jid

北京城八区功能定位

第57条 城八区功能定位 (1)东城区是北京市政治中心的主要载体,全国性文化机构聚集地之一,传统文化重要旅游地区和国内知名的商业中心。 (2)西城区是国家政治中心的主要载体,国家金融管理中心,传统风貌重要旅游地区和国内知名的商业中心。 (3)崇文区是北京体育产业聚集区,都市商业区和传统文化旅游、娱乐地区。 (4)宣武区是国家新闻媒体聚集地之一,宣南文化发祥地和传统商业区。 (5)朝阳区是国际交往的重要窗口,中国与世界经济联系的重要节点,对外服务业发达地区,现代体育文化中心和高新技术产业基地。 (6)海淀区是国家高新技术产业基地之一,国际知名的高等教育和科研机构聚集区,国内知名的旅游、文化、体育活动区。 (7)丰台区是国际国内知名企业代表处聚集地,北京南部物流基地和知名的重要旅游地区。 (8)石景山区与门头沟新城共同构成城市西部发展带的重要节点,是城市综合服务中心之一,同时也是文化娱乐中心和重要旅游地区。 出自:北京市规划委员会-中心城调整优化

2015年4月5日 · 1 分钟 · Jid

Virtuoso Layout Editor快捷键归纳

首先介绍下鼠标操作: 单击左键选中一个图形(如果是两个图形交叠的话,单击左键选中其中一个图形,再单击选中另一个图形) 用左键框选,选中一片图形,某个图形要被完全包围才会被选中。 中键单击调出常用菜单命令(很少用,要点两下,麻烦。我们有快捷键的嘛) 右键点击拖放用来放大。放大后经常配合F键使用,恢复到全部显示。配合Tab键使用,平移视图。右键还有“Strokes”,就是点住右键画些图线,就能实现调用某些命令。 Shift+左键加选图形,Ctrl+左键减选图形。(Cadence菜单中大写表示+按shift,Ctrl写成^) F1显示帮助窗口。 F2保存。 F3这个快捷键很有用,是控制在选取相应工具后是否显示相应属性对话框的。比如在选取Path工具后,想控制Path的走向,可以按F3调出对话框进行设置。 F4英文是Toggle Partial Select,就是用来控制是否可以部分选择一个图形。 F5打开。 F8 Guided Path Create切换至L90XYFirst。 Ctrl+A全选。这个和windows下是一样的。 Shift+B Return。这个牵扯到“Hierarchy”。翻译成“等级”。这个命令就是等级升一级,升到上一级视图。 B键 去某一级(Go to Level)。 Ctrl+C中断某个命令,不常用。一般多按几次Esc键取消某个命令。 Shift+C裁切(Chop)。首先调用命令,选中要裁切的图形,后画矩形裁切。 C键 复制。复制某个图形。 Ctrl +D取消选择。这个也可用鼠标点击空白区域实现。这个快捷键和Photoshop中的取消选区的快捷键是一样的。还有Shift+D,和D也是取消选择。 Shift+E和E是控制用户预设的一些选项。 Ctrl+F显示上层等级Hierarchy。 Shift+F显示所有等级。 F键 满工作区显示。就是显示你所画的所有图形。 Ctrl+G(Zoom To Grid)。 G这个快捷键是开关引力(Gravity)的。Gravity我觉得和AutoCAD里的吸附Snap差不多,就是会吸附到某些节点上去。有时候这个Gravity是很讨厌的,总是乱吸附,这时可以点击G键关闭Gravity,操作完成后再打开。 I键 插入模块(Instance)。 Shift+K清除所有标尺。要清除的话总是要清除所有标尺。 K键 标尺工具。Ruler L键 标签工具。Label。标签要加在特定的text层上。 Shift+M合并工具。Merge M键 移动工具。Move。点选Move工具后,选中要移动的图形,然后在屏幕上任意一处单击一下,这个就是确定移动的参考点,然后就可以自由移动了。这个也可以通过鼠标先选中一个图形,移动鼠标当鼠标箭头变成十字方向的时候就可以拖动来实现。 Ctrl+N,Shift+N和N是控制走向的。 Ctrl+N先横后竖。L90XFirst Shift+N直角正交。Orthogonal N键 斜45对角+正交。Diagonal Shift+O旋转工具。Rotate O键 插入接触孔。Create Contact Ctrl+P插入引脚。Pin Shift+P多边形工具。Polygon P键 插入Path,翻译成“路径”。有人翻译成“管道”。这些最后都要Convert to Polygon的。 Shift+Q打开设计属性对话框,选中一个图形先。 Q键图形对象属性。这个实用。经常用来更改图形属性。也是先选中一个图形。 Ctrl+R是Redraw重画。 Shift+R是Reshape重定形。就是在原来的图形上再补上一块图形。 R键 矩形工具。Rectangle应该是用的最多的工具了吧。 Ctrl+S是Split,翻译成“添加拐点”,就是配合Stretch命令可以是原来直的Path打弯。 Shift+S是Search查找。 S键 拉伸工具。Stretch。要求是框选要拉伸图形,再拉伸。我觉得这个拉伸工具是Virtuso版图设计区别于其他绘图软件的精华所在,能在保持图形原有性质的前提下,自由拉伸。这个符合Layout布局的要求。 Ctrl+T (Zoom to Set)。 Shift+T (Tree),我觉得其实应该叫Hierarchy Tree。 T键 是Layer Tap,层切换。这个菜单命令中没有。这个快捷键其实挺方便。按过T后点击一个图形,就自动切换到刚刚点击图形的的层上去了。有了这个快捷键就不必频繁点击LSW窗口了。 Shift+U重复Redo。撤销命令后,再反悔。 U键 撤销Undo。 Ctrl+V (Type in CIW) V键 关联Attatch。这个命令要解释一下。将一个子图形(child)关联到一个父图形(parent)后。关联后,若移动parent,child也将跟着移动;移动child,parent不会移动。可以将Label关联到Pad上。 Ctrl+W关闭窗口。关闭窗口的另一种方法。 Shift+W下一个视图。Next View W键 前一视图。Previous View Ctrl+X适合编辑。Fit Edit。感觉和F差不多。 Shift+X下降一等级。Descend X键(Edit in Place)。这个比较搞,很难翻译。在Hierarchy菜单下。 Ctrl+Y叫Cycle Select试了下没成功。 Shift+Y粘贴Paste。配合Yank使用。 Y键 区域复制Yank。和Copy是有区别的,Copy只能复制完整图形对象。 Ctrl+Z视图放大两倍Zoom In by 2 Shift+Z视图缩小两倍Zoom Out by 2 Z键 视图放大。 ESC键Cancel。 Tab键 平移视图Pan。按Tab,用鼠标点击视图区中某点,视图就会移至以该点为中心。 Delete键 删除。 BackSpace键 撤销上一点。这个很有用。就不用因为Path一点画错而删除重画。可以撤销上一点。 Enter键 确定一个图形的最后一点。也可双击鼠标左键结束。 Ctrl+方向键 移动Cell。 Shift+方向键 移动鼠标。每次半个格点的距离。 方向键 移动视图。 快捷键除了cadence自带的以外,更多的还是自己写的。只要会写skill程序,就可以自己定义快捷键。其中涉及到对.cdsinit文件的修改。 ...

2015年4月4日 · 1 分钟 · Jid

Vim关闭自动备份

运行Vim,在Vim里执行::e $MYVIMRC,打开Vim配置文件后,在里面添加代码 set nobackup

2015年4月3日 · 1 分钟 · Jid

怀旧:Turbo C 英文原版 + 免安装版 下载

(一) Turbo C 的历史 Turbo C 是美国Borland 公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。 该公司在1987年首次推出Turbo C 1.0 产品, 其中使用了全然一新的集成开发环境, 即使用了一系列下拉式菜单, 将文本编辑、程序编译、连接以及程序运行一体化, 大大方便了程序的开发。1988 年, Borland 公司又推出Turbo C1.5版本, 增加了图形库和文本窗口函数库等, 而Turbo C 2.0 则是该公司1989年出版的。Turbo C2.0在原来集成开发环境的基础上增加了查错功能, 并可以在Tiny模式下直接生成.COM (数据、代码、堆栈处在同一64K 内存中) 文件。还可对数学协处理器 (支持8087/80287/80387等)进行仿真。 Borland 公司后来又推出了面向对象的程序软件包Turbo C++,它继承发展Turbo C 2.0 的集成开发环境,并包含了面向对象的基本思想和设计方法。1991年为了适用Microsoft 公司的Windows 3.0 版本, Borland 公司又将Turbo C++ 作了更新, 即Turbo C的新一代产品Borland C++问世了。 Borland公司在1981年推出的C语言程序设计集成开发环境“Turbo C 2.0”,由于其稳定的性能,一直长期工作应用在社会不同领域,得到社会各界的广泛认同。 Borland公司为了解决该软件的一些Bug,又于1989年推出了升级版 “Turbo C 2.01”,紧接着在1992年,由于功能更为强大的C++面向对象程序设计集成开发环境"Turbo C++ 3.0“的面世,导致“Turbo C 2.01”未能得到有效推广。 (二) Turbo C 的安装和使用 ...

2015年4月2日 · 1 分钟 · Jid

RHEL 5.x 将光盘指定为YUM服务器

测试了一下,确实是可以将光盘镜像作为yum的安装服务器。对于喜欢用rhel的人还是比较方便的。理论上也可以将在新版本的rhel出来后,用类似方法yum upgrade实现版本更新。 (1) mount -o loop rhel-5-server-dvd.iso /media/rhel (2) vi /etc/yum.repos.d/rhel-local.repo [Cluster] name=Red Hat Enterprise Linux $releasever - $basearch - Cluster baseurl=file:///media/rhel/Cluster enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [ClusterStorage] name=Red Hat Enterprise Linux $releasever - $basearch - ClusterStorage baseurl=file:///media/rhel/ClusterStorage enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [Server] name=Red Hat Enterprise Linux $releasever - $basearch - Server baseurl=file:///media/rhel/Server enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [VT] name=Red Hat Enterprise Linux $releasever - $basearch - VT baseurl=file:///media/rhel/VT enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release (3) mkdir -p /var/rhel/{Cluster,ClusterStorage,Server,VT} ...

2015年4月1日 · 1 分钟 · Jid

计算点集或多边形的最佳法向量

有时,我们希望从一组三个以上的点集求出平面方程,这种点集最常见的例子就是多边形顶点。在这种情况下,这些顶点绕多边形顺指针或逆时针地列出。(顺序很重要,因为要依据它决定哪边是"正面"哪边是"反面"。) 一种糟糕的方式是任选三个连续的点并用这三个点计算平面方程。毕竟所选的三个点可能共线,或接近共线。因为数值精度的问题,这将非常糟糕。或者,多边形可能是凹的,所选的点恰好在凹处,从而构成了逆时针(将导致法向量方向错误)。又或者,多边形上的顶点可能不是共面的,这可能是由数值上的不精确,或错误的生成多边形的方法所引起的。我们真正想要的是从点集中求出"最佳"平面的方法,该平面综合考虑了所有的点。 这里提供一个通用且效率较高的算法,计算一组有序点集(顺时针或逆时针)的最佳法向量。 计算公式,其中Pn+1== P1 : 算法实现代码(C++实现): #include <cstdio> #include <cmath> #include <vector> using std::vector; struct point { double x; double y; double z; point():x(0),y(0),z(0) {} point(double i, double j, double k):x(i),y(j),z(k) {} void normalize() { double len = sqrt(x*x + y*y + z*z); x /= len; y /= len; z /= len; } void display() { printf("x=%5.2f, y=%5.2f, z=%5.2f\n",x,y,z); } }; int main() { vector<point> pts; pts.push_back(point(0,100,0)); pts.push_back(point(10,100,10)); pts.push_back(point(20,100,100)); pts.push_back(point(0,100,100)); if(pts.size()<=3) { printf("oops\n exit!\n"); return 0; } point pre = *(pts.end()-1); point ans = point(); vector<point>::iterator itr = pts.begin(); while(itr!=pts.end()) { point cur = *itr; ans.x += (pre.z+cur.z)*(pre.y-cur.y); ans.y += (pre.x+pre.x)*(pre.z-cur.z); ans.z += (pre.y+cur.y)*(pre.x-cur.x); pre = cur; ++itr; } ans.normalize(); ans.display(); return 0; } PS:本算法的通用性较高,甚至可以用于不共面的点集。 ...

2015年3月31日 · 1 分钟 · Jid

二分法查找C语言实现

在对线性表的操作中,经常需要查找一个元素在表中的位置。通常最坏的办法是遍历整个线性表,以找到某元素的位置或者不在表中。 但是如果线性表是有序的,比如由小到大递增(完全可以是自定义的比较方法),那么在这种情况下使用二分查找法会是首选。当然,这么重要的函数,一般的库都会提供,比如: C provides bsearch() in its standard library. C++’s STL provides algorithm functions binary_search, lower_bound and upper_bound. Java offers a set of overloaded binarySearch() static methods in the classes Arrays and Collections in the standard > java.util package for performing binary searches on Java arrays and on Lists, respectively. They must be arrays of > primitives, or the arrays or Lists must be of a type that implements the Comparable interface, or you must specify a > custom Comparator object. ...

2015年3月30日 · 3 分钟 · Jid

向map中添加或更新元素的高效方法

向map中添加或更新元素通常有两个办法:map::operator[] 和 成员函数map::insert()。在数据量很小和元素比较简单的情况的情况下,通常两种方法不会有效率上的差异,但是,一旦数据量很大,或元素很复杂(自定义的比较复杂的类)时,就会出现效率上的差异。因此向map中添加元素通常有这么一个原则: 当向map中添加元素时,应优先选用insert(), 而不是operator[]; 当更新已经在map中的元素时,应优先选用operator[]. 首先解决一个问题:insert()更新元素?怎么用啊?确实可以用,就是看着很别扭而且效率不高。看下面的代码 map<int,double> m; m[1]=10.0; //赋值 m[2]=11.0; //赋值 m[3]=12.0; //赋值 m[2]=18.0; //更新 map<int, double> m2; m2.insert(make_pair(1,10.0)); //赋值 m2.insert(make_pair(2,11.0)); //赋值 m2.insert(make_pair(3,12.0)); //赋值 m2.insert(make_pair(2,18.0)).first->second = 18; //更新 其次,有必要定义一个函数,实现向map中高效的添加或更新元素. template<typename MapType,typename KeyArgType,typename ValueArgType> typename MapType::iterator effecient_add_update(MapType &m, KeyArgType const& k, ValueArgType const & v) { typename MapType::iterator itrLB = m.lower_bound(k); if (itrLB != m.end() && !(m.key_comp()(k,itrLB->first)) ){ itrLB->second = v; return itrLB; } else{ return m.insert(itrLB,make_pair(k,v)); } } 这个算法真的很有趣, 首先是算法的高效性, 其次是形式上的优美. ...

2015年3月25日 · 1 分钟 · Jid

PHP 实现网页压缩 — Enable compression

使用gzip压缩页面,可以使得页面载入的更快,这里提供一个解决办法压缩wordpress型博客,当然平台是LAMP。 其实,有这么两个办法: 安装插件 : wordpress gzip compress 或 gzipp 以及类似的。(用关键字gzip搜索即可) 手动修改配置文件(无需插件) 本文提供手动修改配置文件实现压缩页面(怎么看效果呢?firefox 浏览器+开发工具firebug[开启net]) 在~/wp-content/themes/YourThemes下找到functions.php文件(我用的是默认主题twentyten,如果你的不是,那么应该查找与此类似的一个功能文件),然后在文件的最后添加下面的代码: /** * Plugin Name: WordPress Gzip Compression * Plugin URI:http://tribulant.com * Description: Enables gzip-compression if the visitor's browser can handle it. This will speed up your WordPress website drastically and reduces bandwidth usage as well. Uses the PHP ob_gzhandler() callback. * Version: 1.0 * Author: James Socol * Author URI:http://jamessocol.com/ */ add_action('init','ezgz_buffer'); function ezgz_buffer () { ob_start('ob_gzhandler'); } 看到上面的注释了吗?这段代码就是从Plugin: WordPress Gzip Compression摘下来的。

2015年3月23日 · 1 分钟 · Jid