在中国创业,你觉得最需要有的素质是什么?

第一,要了解自己的兴趣。

第二,要了解自己的处境;

第三,要了解自己的优势劣势。

了解自己的兴趣是和第二点分不开的,有时候处境决定自己过什么样的生活,做什么工作,首先要知道自己想要什么,这点很重要。大学刚毕业的时候,不是想做什么就能做什么,是由处境决定的。所以要对自己的处境做一个冷静的分析。一个阶段只能实现一个方向嘛。另外,当你知道自己的优势和劣势,这样才能放大优势缩小劣势。还有就是很强的执行力。不要太长时间专注在一件事上。很多时候实践中的学习是最重要的。唯有实践中碰到的事才是真正学习到本领的时候。

徐静蕾的话,转载而来!

如何更好地管理时间

经常面对一大堆工作却不知如何着手去做吗?或者经常为了赶时间而忙得焦头烂额吗?

这是因为你没有管理好自己的时间,至少这是原因之一。
这是很多管理人员普遍会遇到的问题,更为糟糕的是,工作量却还在不断地增加。在最后关头,我们经常为能否在规定时间之前完成工作而紧张不安,这反过来又会影响我们的工作品质。

加强工作的条理性,可以让你做到有条不紊。

提前计划:这显然是最基础的,但是关键是要持之以恒,并要根据情况不断修正既定计划。既要制定长期计划,又要制定每天的工作表。医疗公司Baxter(India)Pvt的人力资源总监昂姆?格姆布(Ongmu Gombu)说,把要做的事情纳入日程表内,“不要让事情左右日程表”。格姆布说,在日程表上,按照优先顺序将要完成的工作列出来,将“最紧急的工作”放在最前面。提前计划可以帮助你预先规划好周期性的任务。例如,公司财务部门的管理人员可以提前为财年年底的例行工作做准备。资讯技术解决方案提供商DesignTech Systems Ltd的人力资源部副经理莫甘娜?库卡尼(Meghana Kulkarni)说,“任务完成之后,在旁边打上勾,这样你就知道还有什么工作没有做。”。

按优先顺序排列要做的工作:接到任务之后,弄清楚首先需要做什么。如果你决定不下来的话,去问你的上司。Prithvi Information Solutions Ltd运营部主管纳拉辛哈?拉奥(P.V. Narasimha Rao)说,给任务排序的另一个办法是,弄清楚“哪件事对公司的影响更大”。正确排序至关重要的步骤是,即使在时间宽裕的情况下,也要尽量把工作往前赶。如果不给自己多留一些时间,在最后一刻才开始工作,你往往会手忙脚乱,而且工作品质一般不高。

保持冷静,调整优先顺序:经常发生这样的事:你苦心设计的日程表被你无法掌控的事情彻底打乱。这时候,不要乱了方寸。保持冷静,因为神经紧张、手足无措很可能让你彻底懵掉。做几次深呼吸,先从最紧急的工作入手。如果最紧急的工作有两个,而你不知道该先做哪一个,那么用抛硬币的办法随便选一个。拉奥说,这样做,至少可以让你立刻开始向目标迈进,而不是耽误时间去琢磨哪个工作更重要。

寻求帮助或委派别人去做:如果突然出现意外情况,但所有工作必须马上完成。这时候可以向同事求助。这个办法可以减轻你的压力,帮助你把工作做得更好。Lovely Professional University人力资源主管马尼什?古普塔(Manish Gupta)说,当然,“大多数工作还是需要寻求説明的人自己来做。”这是双向的,在同事需要你的时候你也要帮对方一把。更为理想的是,在你有时间的时候,主动去帮助同事。如果你是一位主管,你可以在平时就锻炼团队成员,授权他们自己做出决断,这样,有需要的时候,你就可以依靠他们了。

了解自己的能力:有时候,为了得到主管的褒奖,我们会额外接受一些任务。虽然自告奋勇接受额外任务是一件好事情,但要注意量力而行,不要贪多。

额外接活的时候,只选择那些不会影响你日常工作品质的项目。专家表示,关键的是品质,不是数量。

如果主管经常交给你超出你职责范围的任务,和他(或她)谈一谈。孟买都市医疗公司(Metropolis Healthcare Ltd.)的人力资源总监罗素?罗萨里奥(Russell Rozario)说,如果被动地接受这些项目而不跟主管沟通你的实际情况,“就会推高他们的期望值,进而增加你的压力”。

Google Gravity JS代码

体验:http://mrdoob.com/projects/chromeexperiments/google_gravity/

  1. var canvas;
  2. var delta = [0,0];
  3. var stage = [window.screenX,window.screenY,window.innerWidth,window.innerHeight];
  4. getBrowserDimensions();
  5. var isRunning = false;
  6. var isMouseDown = false;
  7. var worldAABB;
  8. var world;
  9. var iterations = 1;
  10. var timeStep = 1/25; 
  11. var walls = new Array();
  12. var wall_thickness = 200;
  13. var wallsSetted = false;
  14. var mouseJoint;
  15. var mouseX = 0;
  16. var mouseY = 0;
  17. var mouseOnClick = new Array();
  18. var timer = 0;
  19. var elements = new Array();
  20. var bodies = new Array();
  21. var properties = new Array();
  22. var gWebSearch;
  23. var imFeelingLuckyMode = false;
  24. var resultBodies = new Array();
  25. var orientation = { x: 0, y: 1 };
  26. init();
  27. if (location.search != "")
  28. {
  29.         var params = location.search.substr(1).split("&")
  30.         for (var i = 0; i < params.length; i++)
  31.         {
  32.                 var param = params[i].split("=");
  33.                 if (param[0] == "q")
  34.                 {
  35.                         document.getElementById(‘q’).value = param[1];
  36.                         run();
  37.                         break;
  38.                 }
  39.         }
  40. }
  41. // GOOGLE API
  42. function onLoad()
  43. {
  44.         gWebSearch = new GwebSearch();
  45.         gWebSearch.setResultSetSize(GSearch.SMALL_RESULTSET);
  46.         gWebSearch.setSearchCompleteCallback(null, onWebSearch);
  47.         if (document.getElementById(‘q’).value != ”)
  48.                 search();
  49. }
  50. function onWebSearch()
  51. {
  52.         if(imFeelingLuckyMode)
  53.         {
  54.                 location.href = gWebSearch.results[0].unescapedUrl;
  55.                 return;
  56.         }
  57.         
  58.         for (var i = 0; i < gWebSearch.results.length; i++)
  59.                 addResult(gWebSearch.results[i]);
  60. }
  61. //
  62. function init()
  63. {
  64.         canvas = document.getElementById(‘canvas’);
  65.         
  66.         document.onmousedown = onDocumentMouseDown;
  67.         document.onmouseup = onDocumentMouseUp;
  68.         document.onmousemove = onDocumentMouseMove;
  69.         document.ondblclick = onDocumentDoubleClick;
  70.         
  71.         document.onkeypress = onDocumentKeyPress;
  72.         document.addEventListener(‘touchstart’, onDocumentTouchStart, false);
  73.         document.addEventListener(‘touchmove’, onDocumentTouchMove, false);
  74.         document.addEventListener(‘touchend’, onDocumentTouchEnd, false);
  75.         window.addEventListener( ‘deviceorientation’, onWindowDeviceOrientation, false );
  76.         // init box2d
  77.         
  78.         worldAABB = new b2AABB();
  79.         worldAABB.minVertex.Set(-200, -200);
  80.         worldAABB.maxVertex.Set( screen.width + 200, screen.height + 200);
  81.         world = new b2World(worldAABB, new b2Vec2(0, 0), true);
  82.         
  83.         // walls        
  84.         setWalls();
  85.         // Get box2d elements
  86.         
  87.         elements = getElementsByClass("box2d");
  88.                 
  89.         for (i = 0; i < elements.length; i++) {
  90.                 var element = elements[i];
  91.                 properties[i] = findPos(element);
  92.                 properties[i][2] = element.offsetWidth;
  93.                 properties[i][3] = element.offsetHeight;
  94.         }
  95.         
  96.         for (i = 0; i < elements.length; i++) {
  97.                 var element = elements[i];
  98.                 element.style.position = ‘absolute’;
  99.                 element.style.left = properties[i][0] + ‘px’;
  100.                 element.style.top = properties[i][1] + ‘px’;
  101.                 // element.style.backgroundColor = ‘#ffff00’;
  102.                 element.onmousedown = onElementMouseDown;
  103.                 element.onmouseup = onElementMouseUp;
  104.                 element.onclick = onElementClick;
  105.                 
  106.                 bodies[i] = createBox(world, properties[i][0] + (properties[i][2] >> 1), properties[i][1] + (properties[i][3] >> 1), properties[i][2] / 2, properties[i][3] / 2, false);                
  107.         }
  108. }
  109. function run() {
  110.         isRunning = true;
  111.         setInterval(loop, 25);        
  112. }
  113. //
  114. function onDocumentMouseDown() {
  115.         isMouseDown = true;
  116.         return false;
  117. }
  118. function onDocumentMouseUp() {
  119.         isMouseDown = false;
  120.         return false;
  121. }
  122. function onDocumentMouseMove() {
  123.         if (!isRunning)
  124.                 run();
  125.         mouseX = window.event.clientX;
  126.         mouseY = window.event.clientY;
  127. }
  128. function onDocumentDoubleClick() {
  129.         reset();
  130. }
  131. function onDocumentKeyPress(event) {
  132.         if (event.charCode == 13)
  133.                 search();
  134. }
  135. function onDocumentTouchStart( event ) {
  136.         if(event.touches.length == 1) {
  137.                 event.preventDefault();
  138.                 if (!isRunning)
  139.                         run();
  140.                 // Faking double click for touch devices
  141.                 var now = new Date().getTime();
  142.                 if (now – timeOfLastTouch  < 250) {
  143.                         reset();
  144.                         return;
  145.                 }
  146.                 timeOfLastTouch = now;
  147.                 mouseX = event.touches[0].pageX;
  148.                 mouseY = event.touches[0].pageY;
  149.                 isMouseDown = true;
  150.         }
  151. }
  152. function onDocumentTouchMove( event ) {
  153.         if(event.touches.length == 1) {
  154.                 event.preventDefault();
  155.                 mouseX = event.touches[0].pageX;
  156.                 mouseY = event.touches[0].pageY;
  157.         }
  158. }
  159. function onDocumentTouchEnd( event ) {
  160.         if(event.touches.length == 0) {
  161.                 event.preventDefault();
  162.                 isMouseDown = false;
  163.         }
  164. }
  165. function onWindowDeviceOrientation( event ) {
  166.         if ( event.beta ) {
  167.                 orientation.x = Math.sin( event.gamma * Math.PI / 180 );
  168.                 orientation.y = Math.sin( ( Math.PI / 4 ) + event.beta * Math.PI / 180 );
  169.         }
  170. }
  171. //
  172. function onElementMouseDown() {
  173.         mouseOnClick[0] = window.event.clientX;
  174.         mouseOnClick[1] = window.event.clientY;        
  175.         return false;
  176. }
  177. function onElementMouseUp() {
  178.         return false;
  179. }
  180. function onElementClick() {
  181.         var range = 5;
  182.         
  183.         if (mouseOnClick[0] > window.event.clientX + range || mouseOnClick[0] < window.event.clientX – range && mouseOnClick[1] > window.event.clientY + range || mouseOnClick[1] < window.event.clientY – range)
  184.                 return false;
  185.         
  186.         if (this == document.getElementById(‘btnG’)) search();
  187.         if (this == document.getElementById(‘btnI’)) imFeelingLucky();
  188.         if (this == document.getElementById(‘q’)) document.f.q.focus();
  189. }
  190. // API STUFF
  191. function search() {
  192.         if (!isRunning)
  193.                 run();
  194.         
  195.         onDocumentDoubleClick(); // clean
  196.         gWebSearch.execute(document.getElementById(‘q’).value);
  197.         return false;
  198. }
  199. function imFeelingLucky() {
  200.         imFeelingLuckyMode = true;
  201.         gWebSearch.execute(document.getElementById(‘q’).value);
  202.         return false;        
  203. }
  204. function addResult(data) {
  205.         var element = document.createElement(‘div’);
  206.         element.innerHTML = ‘<div><h3 class=r><a href="’ + data.unescapedUrl + ‘" class=l onmousedown="return clk(this.href,\’\’,\’\’,\’res\’,\’1\’,\’&amp;sig2=3Ti89FTuSYfE6a-5k1jjKQ\’)">’ + data.title + ‘</a></h3><span style=display:inline-block><button class=w10 title="Promote"></button><button class=w20 title="Remove"></button></span><div class="s">’ + data.content + ‘<br><cite>’ + data.visibleUrl + ‘</cite></div>’;
  207.         
  208.         canvas.appendChild(element);
  209.         properties.push([Math.random() * (window.innerWidth / 2),-200,600,element.offsetHeight]);
  210.         
  211.         var i = properties.length – 1;
  212.         element.style.position = ‘absolute’;
  213.         element.style.left = 0 + ‘px’;
  214.         element.style.top = -100 + ‘px’;
  215.         element.style.backgroundColor = ‘#ffffff’;
  216.         element.onmousedown = onElementMouseDown;
  217.         element.onmouseup = onElementMouseUp;
  218.         element.onclick = onElementClick;
  219.         elements[i] = element;
  220.         resultBodies.push( bodies[i] = createBox(world, properties[i][0] + (properties[i][2] >> 1), properties[i][1] + (properties[i][3] >> 1), properties[i][2] / 2, properties[i][3] / 2, false, element) );
  221.         
  222. }
  223. function reset() {
  224.         for (i = 0; i < resultBodies.length; i++) {
  225.                 var body = resultBodies[i]
  226.                 canvas.removeChild( body.GetUserData().element );
  227.                 world.DestroyBody(body);
  228.                 body = null;
  229.         }
  230.         
  231.         resultBodies = new Array();
  232. }
  233. //
  234. function loop() {
  235.         if (getBrowserDimensions())
  236.                 setWalls();
  237.         delta[0] += (0 – delta[0]) * .5;
  238.         delta[1] += (0 – delta[1]) * .5;
  239.         
  240.         world.m_gravity.x = orientation.x * 350 + delta[0];
  241.         world.m_gravity.y = orientation.y * 350 + delta[1];
  242.         mouseDrag();
  243.         world.Step(timeStep, iterations);        
  244.         
  245.         for (i = 0; i < elements.length; i++) {
  246.                 var body = bodies[i];
  247.                 var element = elements[i];
  248.                 
  249.                 element.style.left = (body.m_position0.x – (properties[i][2] >> 1)) + ‘px’;
  250.                 element.style.top = (body.m_position0.y – (properties[i][3] >> 1)) + ‘px’;
  251.                 var rotationStyle = ‘rotate(‘ + (body.m_rotation0 * 57.2957795) + ‘deg)’;
  252.                 element.style.WebkitTransform = rotationStyle;
  253.                 element.style.MozTransform = rotationStyle;
  254.                 element.style.OTransform = rotationStyle;
  255.         }
  256. }
  257. // .. BOX2D UTILS
  258. function createBox(world, x, y, width, height, fixed, element) {
  259.         if (typeof(fixed) == ‘undefined’)
  260.                 fixed = true;
  261.         var boxSd = new b2BoxDef();
  262.         if (!fixed)
  263.                 boxSd.density = 1.0;
  264.         boxSd.extents.Set(width, height);
  265.         var boxBd = new b2BodyDef();
  266.         boxBd.AddShape(boxSd);
  267.         boxBd.position.Set(x,y);
  268.         boxBd.userData = {element: element};
  269.         return world.CreateBody(boxBd)
  270. }
  271. function mouseDrag() {
  272.         // mouse press
  273.         if (isMouseDown && !mouseJoint) {
  274.                 var body = getBodyAtMouse();
  275.                 
  276.                 if (body) {
  277.                         var md = new b2MouseJointDef();
  278.                         md.body1 = world.m_groundBody;
  279.                         md.body2 = body;
  280.                         md.target.Set(mouseX, mouseY);
  281.                         md.maxForce = 30000.0 * body.m_mass;
  282.                         md.timeStep = timeStep;
  283.                         mouseJoint = world.CreateJoint(md);
  284.                         body.WakeUp();
  285.                 }
  286.         }
  287.         
  288.         // mouse release
  289.         if (!isMouseDown) {
  290.                 if (mouseJoint) {
  291.                         world.DestroyJoint(mouseJoint);
  292.                         mouseJoint = null;
  293.                 }
  294.         }
  295.         
  296.         // mouse move
  297.         if (mouseJoint) {
  298.                 var p2 = new b2Vec2(mouseX, mouseY);
  299.                 mouseJoint.SetTarget(p2);
  300.         }
  301. }
  302. function getBodyAtMouse() {
  303.         // Make a small box.
  304.         var mousePVec = new b2Vec2();
  305.         mousePVec.Set(mouseX, mouseY);
  306.         
  307.         var aabb = new b2AABB();
  308.         aabb.minVertex.Set(mouseX – 1, mouseY – 1);
  309.         aabb.maxVertex.Set(mouseX + 1, mouseY + 1);
  310.         // Query the world for overlapping shapes.
  311.         var k_maxCount = 10;
  312.         var shapes = new Array();
  313.         var count = world.Query(aabb, shapes, k_maxCount);
  314.         var body = null;
  315.         
  316.         for (var i = 0; i < count; ++i) {
  317.                 if (shapes[i].m_body.IsStatic() == false) {
  318.                         if ( shapes[i].TestPoint(mousePVec) ) {
  319.                                 body = shapes[i].m_body;
  320.                                 break;
  321.                         }
  322.                 }
  323.         }
  324.         return body;
  325. }
  326. function setWalls() {
  327.         if (wallsSetted) {
  328.                 world.DestroyBody(walls[0]);
  329.                 world.DestroyBody(walls[1]);
  330.                 world.DestroyBody(walls[2]);
  331.                 world.DestroyBody(walls[3]);
  332.                 
  333.                 walls[0] = null; 
  334.                 walls[1] = null;
  335.                 walls[2] = null;
  336.                 walls[3] = null;
  337.         }
  338.         
  339.         walls[0] = createBox(world, stage[2] / 2, – wall_thickness, stage[2], wall_thickness);
  340.         walls[1] = createBox(world, stage[2] / 2, stage[3] + wall_thickness, stage[2], wall_thickness);
  341.         walls[2] = createBox(world, – wall_thickness, stage[3] / 2, wall_thickness, stage[3]);
  342.         walls[3] = createBox(world, stage[2] + wall_thickness, stage[3] / 2, wall_thickness, stage[3]);        
  343.         
  344.         wallsSetted = true;
  345. }
  346. // .. UTILS
  347. function getElementsByClass( searchClass ) {
  348.         var classElements = new Array();
  349.         var els = document.getElementsByTagName(‘*’);
  350.         var elsLen = els.length
  351.         for (i = 0, j = 0; i < elsLen; i++) {
  352.                 var classes = els[i].className.split(‘ ‘);
  353.                 for (k = 0; k < classes.length; k++)
  354.                         if ( classes[k] == searchClass )
  355.                                 classElements[j++] = els[i];
  356.         }
  357.         return classElements;
  358. }
  359. function findPos(obj) {
  360.         var curleft = curtop = 0;
  361.         if (obj.offsetParent) {
  362.                 do {
  363.                         curleft += obj.offsetLeft;
  364.                         curtop += obj.offsetTop;
  365.                 } while (obj = obj.offsetParent);
  366.         }
  367.         return [curleft,curtop];
  368. }
  369. function getBrowserDimensions() {
  370.         var changed = false;
  371.                 
  372.         if (stage[0] != window.screenX) {
  373.                 delta[0] = (window.screenX – stage[0]) * 50;
  374.                 stage[0] = window.screenX;
  375.                 changed = true;
  376.         }
  377.         
  378.         if (stage[1] != window.screenY) {
  379.                 delta[1] = (window.screenY – stage[1]) * 50;
  380.                 stage[1] = window.screenY;
  381.                 changed = true;
  382.         }
  383.         
  384.         if (stage[2] != window.innerWidth) {
  385.                 stage[2] = window.innerWidth;
  386.                 changed = true;
  387.         }
  388.         
  389.         if (stage[3] != window.innerHeight) {
  390.                 stage[3] = window.innerHeight;
  391.                 changed = true;
  392.         }
  393.         
  394.         return changed;
  395. }

复制代码 直接地址:
http://mrdoob.com/projects/chrom … _gravity/js/Main.js

织梦DEDECMS默认flash幻灯片参数修改的方法

用记事本打开首页模板文件templets/default/index.htm

源代码为
<script language=’javascript’>
linkarr = new Array();
picarr = new Array();
textarr = new Array();
var swf_width=280;
var swf_height=192;
//文字颜色|文字位置|文字背景颜色|文字背景透明度|按键文字颜色|按键默认颜色|按键当前颜色|自动播放时间|图片过渡效果|是否显示按钮|打开方式
var configtg=’0xffffff|1|0x3FA61F|5|0xffffff|0xC5DDBC|0x000033|2|3|1|_blank’;
var files = "";
var links = "";
var texts = "";
//这里设置调用标记
{dede:arclist flag=’f’ row=’5′}
linkarr[[field:global.autoindex/]] = "[field:arcurl/]";
picarr[[field:global.autoindex/]] = "[field:litpic/]";
textarr[[field:global.autoindex/]] = "[field:title function=’html2text(@me)’/]";
{/dede:arclist}
for(i=1;i<picarr.length;i++){
if(files=="") files = picarr[i];
else files += "|"+picarr[i];
}
for(i=1;i<linkarr.length;i++){
if(links=="") links = linkarr[i];
else links += "|"+linkarr[i];
}
for(i=1;i<textarr.length;i++){
if(texts=="") texts = textarr[i];
else texts += "|"+textarr[i];
}
document.write(‘<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="’+ swf_width +’" height="’+ swf_height +’">’);
document.write(‘<param name="movie" value="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf"><param name="quality" value="high">’);
document.write(‘<param name="menu" value="false"><param name=wmode value="opaque">’);
document.write(‘<param name="FlashVars" value="bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’">’);
document.write(‘<embed src="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf" wmode="opaque" FlashVars="bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’&menu="false" quality="high" width="’+ swf_width +’" height="’+ swf_height +’" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />’); document.write(‘</object>’);
</script>>

——————————————————————————–

参数设置:
高级设置: 
默认参数字符串 
0xffffff:文字颜色| 2:文字位置| 0xff6600:文字背景颜色| 60:文字背景透明度| 0xffffff:按键文字颜色| 0xff6600:按键默认颜色| 0x000033:按键当前颜色| 8:自动播放时间(秒)| 2:图片过渡效果| 1:是否显示按钮| _blank:打开新窗口 
颜色都以0x开始16进制数字表示 
文字颜色:题目文字的颜色 
文字位置:0表示题目文字在顶端,1表示文字在底部,2表示文字在顶端 
文字背景透明度:0-100值,0表示全部透明 
按键文字颜色:按键数字颜色 
按键默认颜色:按键默认的颜色 
按键当前颜色:当前图片按键颜色 
自动播放时间:单位是秒 
图片过渡效果:0,表示亮度过渡,1表示透明度过渡,2表示模糊过渡,3表示运动模糊过渡 
是否显示按钮:0,表示隐藏按键部分,更适合做广告挑轮换 
打开窗口:_blank表示新窗口打开。_self表示在当前窗口打开

修改的方法为 
在上面幻灯代码的bcastr_title=’+texts+’后面添加下面的代码相关参数可以参考上面的说明 
&bcastr_config=0xffffff:文字颜色|2:文字位置|0x0066ff:文字背景颜色|60:文字背景透明度|0xffffff:按键文字颜色|0x0066ff:按键默认颜色|0x000033:按键当前颜色|8:自动播放时间(秒)|2:图片过渡效果|0:是否显示按钮|_blank:打开窗口

正常使用谷歌邮箱和谷歌阅读器

貌似Gmail被干扰很久了,据说Gmail SSL封锁规律是每小时的0-19分可访问,20-29分被墙,30-49分可访问,50-59分被墙。听说对Gmail的封锁是在出国路由上做的手脚。解决的办法就是把域名解析到不受干扰的谷歌北京IP上。具体步骤如下:

用记事本打开C:\Windows\System32\drivers\etc目录下的hosts文件(如果没有此文件点击下载,修改hosts有些杀毒软件会报毒,允许即可)

添加以下内容到hosts文件,然后保存hosts文件,在开始菜单的附件里找到“命令提示符”打开,输入ipconfig /flushdns命令按回车键清除本地DNS缓存。然后就可以正常使用了,Google香港/Google搜索不会被敏感词重置,Google网页缓存也能正常显示,使用https://mail.google.com/访问Gmail也不会间歇性断开,使用https://www.google.com/reader/即可正常使用Google阅读器。

203.208.39.22 webcache.googleusercontent.com
203.208.39.22 mail.google.com
203.208.39.22 www.google.com.hk
203.208.39.22 www.google.com

203.208.39.22是谷歌北京的IP(可以http://tools.whois.net/whoisbyip/查证),由于是国内IP(可能受电信运营商干扰)不过安全性未知(有关人士勿用)。

如果你电脑开启了IPv6支持,最好使用Google的IPv6地址,应该也能达到类似效果而且更安全。

正常使用谷歌邮箱gmail和谷歌阅读器

貌似Gmail被干扰很久了,据说Gmail SSL封锁规律是每小时的0-19分可访问,20-29分被墙,30-49分可访问,50-59分被墙。听说对Gmail的封锁是在出国路由上做的手脚。解决的办法就是把域名解析到不受干扰的谷歌北京IP上。具体步骤如下:

用记事本打开C:\Windows\System32\drivers\etc目录下的hosts文件(如果没有此文件点击下载,修改hosts有些杀毒软件会报毒,允许即可)

添加以下内容到hosts文件,然后保存hosts文件,在开始菜单的附件里找到“命令提示符”打开,输入ipconfig /flushdns命令按回车键清除本地DNS缓存。然后就可以正常使用了,Google香港/Google搜索不会被敏感词重置,Google网页缓存也能正常显示,使用https://mail.google.com/访问Gmail也不会间歇性断开,使用https://www.google.com/reader/即可正常使用Google阅读器。

203.208.39.22 webcache.googleusercontent.com
203.208.39.22 mail.google.com
203.208.39.22 www.google.com.hk
203.208.39.22 www.google.com

203.208.39.22是谷歌北京的IP(可以http://tools.whois.net/whoisbyip/查证),由于是国内IP不受GFW干扰(可能受电信运营商干扰)不过安全性未知(有关人士勿用)。

如果你电脑开启了IPv6支持,最好使用Google的IPv6地址,应该也能达到类似效果而且更安全。

织梦dedecms全站rss输出

  织梦Dedecms建站程序并没有内置好全站RSS输出功能,需要会员、使用者自主制作,这对于初学者来说是有一定难度的,如果用织梦Dedecms搭建的网站不能全站RSS输出,将不利于搜索引擎的收录,也不利于网站被抓虾、鲜果、飞豆、飞鸽等RSS阅读网站会员的订阅。当然,织梦Dedecms具有各频道的RSS输出功能,但这是很笨的RSS功能,对于稍为迟钝点的搜索引擎来说,可能检测不到。
  
  我想,估计织梦Dedecms程序开发员,以为全站RSS输出功能是很容易制作的,于是并没有像Wordpress、ZBLOG等于内核加插整站RSS输出功能。我曾为这一功能的开设搜遍了互联网,最初都是些极为复杂的方法介绍,可行性极差。后来发现有一种方法很管用,只加插上传两个文件就实现啦。这里分享一下我开设织梦Dedecms全站输出功能的经过:
  
  第一步,你先用记事本新建一个rss.php文件,把下面的代码拷贝到其中:

<?php
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once DEDEINC."/arc.partview.class.php";
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/rss.htm");
header("Content-type:application/xml");
$pv->Display();
?> 
  
  不会建立rss.php文件的朋友,可[点此]下载已经建好的文件,将解压后的文件rss.php,直接保存该文件到站点根目录下,即可。
  
  第二步,制作一个rss.htm模板输出文件,把下面的代码拷贝到其中:

<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0">

<channel>

<title>{dede:global.cfg_webname/}</title>

<link>{dede:global.cfg_basehost/}</link>

<description>{dede:global.cfg_description/}</description>

<language>zh-cn</language>

<generator>{dede:global.cfg_webname/}</generator>

<webmaster>{dede:global.cfg_adminemail/}</webmaster>

{dede:arclist row=’60’ col=’1′ titlelen=’100′ orderby=’pubdate’}

<item>

<link>http://www.iwojie.com[field:arcurl/]</link>

<title><![CDATA[[field:title function=’html2text(@me)’/]]]></title>

<author>[field:writer/]</author>

<category>[field:typename/]</category>

<pubDate>[field:pubdate function=’strftime("%a, %d %b %Y %H:%M:%S +0800",@me)’/]</pubDate>

<guid>http://www.iwojie.com[field:arcurl/]</guid>

<description><![CDATA[[field:description function=’html2text(@me)’/] … <br /><b>文章分类</b>:[field:typename/]<br /><a href="http://www.iwojie.com[field:arcurl/]" target="_blank">阅读全文</a> | <a href="http://www.iwojie.com/plus/recommend.php?aid=[field:id/]" target="_blank">邮件推荐</a> | <a href="http://www.iwojie.com[field:arcurl/]" target="_blank">评论回复</a>]]></description>

</item>

{/dede:arclist}

</channel>

</rss>

  

  请将上面代码中http://www.iwojie.com的网址替换为你的网址,保存文件、上传到index.htm主页模板相同的目录/templets/default中

  

  完成上面步骤之后,登陆管理后台,清理一下缓存,重新生成一遍全站文件就可以实现全站RSS输出。而你的站的RSS网址是:http://你的网址/rss.php

修改模板目录中的head.htm中RSS订阅的地址指向为http://你的域名/rss.php即可。

如想让你的RSS更完美,并方便抓虾、鲜果、飞鸽等RSS阅读会员订阅的话,可以到feedsky.com上去申请一个帐号,然后添加一个管理,就可申请到一个永久的FEED地址,并把它设置指向你的rss.php链接:http://你的域名/rss.php
然后修改head.htm 中RSS订阅指向为:http://feed.feedsky.com/iwojie (这是我的网站rss,你要改成你的)

织梦DedeCms5.6默认模板更改默认颜色教程

改默认颜色教程织梦DedeCms5.6默认模板相对于织梦DedeCms5.5来说,改变不大,大至样式也是这样,只是模板颜色方面有了更多的选择,从之前只有绿色,增多了5种颜色,这6中颜色可以自由切换,但默认的颜色还是绿色,也就是说访客第一次访问的时候看到的就是绿色。

使用织梦dedecms默认模板的站长朋友可以通过这个教程把默认的绿色改为自己喜欢的颜色,以改为蓝色为例。

本篇教程以改蓝色为例,具体其它颜色的修改请自行修改一下相关的颜色参数与样式图片名!

需要修改文件目录:\templets\default\style

需要修改的文件有:DedeCms.css layout.css page.css picture.css

第一步:分别把“dedecms.css layout.css page.css”里所有的green_skin.png替换成blue_skin.png。
(具体颜色样式请查看templets\default\images)

第二步:分别把“dedecms.css layout.css page.css picture.css”里所有的#BADAA1替换成#9DBCC9。
(这里是修改首页绿色框的颜色,你可以修改成自己喜欢的颜色。)

第三步:把layout.css里所有的#316301替换成#47677B。
(这里是修改首页分类栏目下的颜色,你可以修 改成自己喜欢的颜色。)

第四步:把layout.css里所有的#596F37替换成#47677B。
(这里是修改首页分类栏目下的“更多…”那里的颜色,你可以修改成自己喜欢的颜色。)

如果以上步骤你觉得麻烦的话,你直接下载附件覆盖到你根目录下吧!
温馨提示:之前的修改过以上四个CSS样式文件的朋友就不要覆盖了,以免把你之前修改的样式搞掉了,
还是按照上面的四个步骤去一一修改吧!

打开 /templets/default/js/changeSkin.js

  1. $(function(){   
  2.       var cookie_skin = $.cookie("MyCssSkin");   
  3.       switchSkin(cookie_skin);   
  4.       addEvent();   
  5. });  

修改为:

  1. $(function(){   
  2.     var cookie_skin = $.cookie("MyCssSkin");   
  3.     if (cookie_skin) {   
  4.         switchSkin(cookie_skin);   
  5.     }   
  6.     else   
  7.     {   
  8.         switchSkin(‘dedecms_skins_1’);   
  9.     }   
  10.     addEvent();   
  11. }); 

其中dedecms_skins_1修改为你需要的默认色系。

dedecms_skins_0 绿色 

dedecms_skins_1 蓝色 

dedecms_skins_2 红色 

dedecms_skins_3 桃红色 

dedecms_skins_4 黑色 

dedecms_skins_5 褐色

由于以上方法是用js来控制,所以打开的时候会先加载默认绿色再变为修改后的颜色。
默认颜色的样式是在/templets/default/style/dedecms.css中定义,需要直接修改默认颜色的朋友直接对比dedecms_skins_x.css来修改即可,但是此方法会导致默认绿色失效。

织梦dedecms完美修改版权信息

一共17+1处:

1.搜索页面: 
/templets/default/search.htm 
/templets/plus/heightsearch.htm 
/templets/default/advancedsearch.htm

2.通用底部模板: 
/templets/default/footer.htm

3.购物车: 
/templets/plus/car.htm 
/templets/plus/carbuyaction.htm 
/templets/plus/shops_action_payment.htm 
/templets/plus/shops_buyaction.htm

4.下载地址列表 
/templets/plus/download_links_templet.htm

5.挑错页面 
/templets/plus/erraddsave.htm

6.友情链接

/templets/plus/flink-add.htm 
/templets/plus/flink-list.htm

7.列表模板 
/templets/plus/list_diyform.htm

8.留言板 
/templets/plus/plus_foot.htm 
/templets/plus/guestbook-admin.htm 
/templets/plus/guestbook-user.htm

 

9.发布模板 
/templets/plus/post_diyform.htm

10.推荐 
/templets/plus/recommend.htm

11.RSS订阅地图 
/templets/plus/rssmap.htm

 

12银行账号信息 
/templets/plus/shops_bank.htm

13.图集详细页面 
/templets/plus/showphoto.htm

14.网站地图 
/templets/plus/sitemap.htm

15.详细内容 
/templets/plus/view_diyform.htm

16.提示信息 
/templets/plus/view_msg.htm 
/templets/plus/view_msg_catalog.htm

17.投票结果 
/templets/plus/vote.htm

最后一处是PHP文件中的,重要的提示信息…

/include/common.func.php ,一共有两处,分别替换:

DEDE织梦默认模板代码优化彻底提升网页打开速度

排除主机和宽带因素,DEDE默认模板访问速度过慢,经查证这和顶部JS调用以及代码冗余有关。

 

事实上网站程序的优化多数原则是代码简练,减少JS调用等。这里分别从主页、文章列表页、文章内容页来分别介绍DEDE默认模板优化,经测试,优化后,网站速度有极大提升,如果再有一个好的主机,那你的网站也能有腾讯、网易那样的访问速度。

 

一、主页模板(index.htm)

 

下面的JS文件和JS代码可以根据需要情况看是否需要删除,最好能全部删除,但是全部删除会影响一些功能,比如会员登录状态、图文资讯的滚动等,这里个好的方法,就是把所有这里的JS写入一个单独的文件,这样调用时只需要一次就可以了,注意调用的路径。

 

JS文件解释说明

/js/jquery.cookie.js
主要的作用记录换肤功能的cookies,用于保留用户的选择;

 

/js/changeSkin.js
用于换肤功能的具体实现代码;

 

/js/pic_scroll.js
“图文资讯”滚动的地方;

 

/images/js/j.js
经过压缩后的java代码,主要作用是在默认模板中的中间部分的横向滚动的“图片资讯”的地方;
同时,换肤功能也和该功能有关联

 

/include/dedeajax2.js
引入DedeCMS 的ajax框架,作用主要是在模板中的一些特效,比如登陆后改变登陆状态、内容页顶与踩、评论列表的支持与反对等等(如果您不需要上述功能,这段代码可以删除);

 

Javascript代码

 

function CheckLogin(){   
  var taget_obj = document.getElementById(‘_userlogin’);   
   myajax = new DedeAjax(taget_obj,false,false,”,”,”);   
   myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php");   
   DedeXHTTP = null;   
}  
主要用途是判断会员是否登录,如果已经登录,则在互动中心的会员框里显示/member/ajax_loginsta.php登陆后的内容;

 

$(function(){   
$("dl.tbox dt span.label a[_for]").mouseover(function(){   
   $(this).parents("span.label").children("a[_for]").removeClass("thisclass").parents("dl.tbox").children("dd").hide();  
   $(this).addClass("thisclass").blur();   
   $("#"+$(this).attr("_for")).show();   
});   
$("a[_for=uc_member]").mouseover();   
});  
主要用途是首页右侧的互动中心中踩踩、评论、会员三个选项的切换效果;

 

function multi(pagenum,tagid)   
{   
  var taget_obj = document.getElementById(tagid);   
  var taget_obj_page = document.getElementById("page_"+tagid);   
   myajax = new DedeAjax(taget_obj,false,false,”,”,”);   
   myajax.SendGet2("/plus/arcmulti.php?mtype=0&pnum="+pagenum+’&tagid=’+tagid);   
   myajax = new DedeAjax(taget_obj_page,false,false,”,”,”);   
   myajax.SendGet2("/plus/arcmulti.php?mtype=1&pnum="+pagenum+’&tagid=’+tagid);   
   DedeXHTTP = null;   
}  
主要用途是右侧的推荐内容分页,也是DedeV5.6版的新增功能(arclist标签分页);P.s:其实默认的ajax评论也是通过此种方式制作的。

 

function check(){   
    if(document.formsearch.searchtype.value=="")   
     document.formsearch.action="http://www.google.cn/custom"  
    else  
     document.formsearch.action="{dede:field name=’phpurl’/}/search.php"  
}   
作用是顶部的goole搜索那,具体的含义,当我们选择的搜索类型(searchtype)为空,那么提交的目标地址就是http://www.google.cn/custom,否则就提交到站内搜索的地址/plus/search.php!

 

二、默认文章列表模板(list_article.htm)

 

这里顶部的JS全部去掉就可以了,这样就可以大大提高访问速度了。

 

三、文章内容页模板(article_article.htm)

 

这是目前为止最好的DEDE文章内容页因点击次数引起网页加载慢的解决方法

 

下面代码放在要显示文章点击词素的位置(红色部分是未显示广告之前显示的内容,可以是文字或是图片,当然不要也行)

 

<span id=vvclick>  加载中  </span>

 

当然“加载中”也可以替换为图片

 

下面的代码放到网页最底部最好放在</html>之前(蓝色部分是点击次数代码)

 

<SPAN class=spanclass id=span_vvclick>

<script src="{dede:field name=’phpurl’/}/count.php?view=yes&aid={dede:field name=’id’/}&mid={dede:field name=’mid’/}" type=’text/javascript’ language="javascript"></script> </SPAN>

<SCRIPT>vvclick.innerHTML=span_vvclick.innerHTML;span_vvclick.innerHTML="";</SCRIPT>

 

原理: 由于网页是由上往下执行代码,所以前面会暂时显示 "点击次数载入中…" 等到执行完整个页面后, 前面才会调用出来。所以我们把点击次数的代码这些放到最后执行让前面调用, 就不会影响站点页面中正常的内容输出的速度了。这也是网上最经典的广告最后加载代码了,提供给大家使用!

 

还有就是顶部的JS调用的处理方法同前面主页JS的处理方法相同,删除部分JS,删除的时候要特别注意是否影响了其他功能。最好的方法是写入一个文件,另存为,最后只调用一次。注意调用的路径。

1、在dedecms文章模板中的头部。放着一大堆的Javascript,浏览每个页面都需要加载…这样反复下去很浪费加载时间。应该对其优化一下,具体方法为:将这段JS提取出来,另存为一个文件,以后只要下载一次就可以了,不过注意要把JS里的路径根据自己的情况替换一下。(可以保存在模板下的JS目录下,这样就可以用 src=”{dede:global.cfg_templets_skin/}/js/*.js调用)

2、对点击次数的优化:系统默认是用<script src=”{dede:field name=’phpurl’/}/count.php?view=yes&aid={dede:field name=’id’/}&mid={dede:field name=’mid’/}” type=’text/javascript’ language=”javascript”></script>这样的方面调用的,但有时候容易卡着。 加入JS函数进行调用,具体操作如下:

找开article_article.htm,找到点击次数的代码就是上面那句:

<script src="{dede:field name=’phpurl’/}/count.php?view=yes&aid={dede:field name=’id’/}&mid={dede:field name=’mid’/}" type=’text/javascript’ language="javascript"></script>
替换成:

<span id="article_click"></span>
在页面调用的JS文件里面(可以是上面保存的那个)加入函数:

function getClick(aid,mid)
{
var taget_obj = document.getElementById(‘article_click’);
myajax = new DedeAjax(taget_obj,false,false,”,”,”);
myajax.SendGet2("/plus/count.php?ajax=yes&mid=" +mid +"&aid=" +aid); //这里要根据情况改成网站的实际路径
DedeXHTTP = null;
}3、对DIGG评论的优化:

修改plus/count.php文件,在exit()之前加入以下的代码:

if(!empty($ajax))
{
$row = $dsql->GetOne(" Select click From `{$maintable}` where {$idtype}=’$aid’ ");
if(is_array($row))
{
echo $row[‘click’];
}
}把<script language=”javascript” type=”text/javascript”>getDigg({dede:field.id/});</script>改为:

<script language="javascript" type="text/javascript">getClick({dede:field name=’id’/},mid={dede:field name=’mid’/});getDigg({dede:field.id/});</script>
其实getClick这个函数只要放在文章后面,哪里都无所谓!再试下效果~~