几年前做网站的时候,新网站上线基本上两到三天百度,谷歌等搜索引擎都会收录,而且不需要发布推广外链接,如果关键字、产品竞争不是太强大,只要稍微做一下META头部设置就会有很好的排名。而如今网站每天都是成百上千的上线,做网站的站长一波又一波的出现,如今一个新网站被百度收录也不是那么容易。尤其是一些网络上已经充斥的产品,内容类型网站,如果你一个新域名网站希望在短期内被百度收录,不是一件简单的事情。几个星期之前,我同事的新网站,已经几个星期过去了,一直还没有收录。今天问我如何处理,我将采用我常用的几个方法促使网站收录以及有良好的排名效果。我先整理关于新网站不被百度收录的几个原因,希望大家有一个参考,可以改正我们现有网站的不足。 首先,选择域名。我们在注册域名的时候需要注意该域名是不是被用过,如果注册了一个之前被降权的域名,那是一件很悲哀的事情,如果被你注册到,以后要再次被收录,那需要一个相当长的考验期。我们在注册域名之前,先通过各种搜索引擎,查看有没有收录记录,如果有看下一是什么内容。如果内容正规的,应该没有问题,可能是企业网站到期没有续费或者换域名;如果是其他内容我们可以考虑不采用这个域名。 其次,网站空间的选择。有时候新网站不被收录,很多情况下是因为我们选择的主机商问题,如果主机商的IP被搜索引擎惩罚,蜘蛛不来爬行我们的网站,那也不会被收录。我们可以先让主机商给该主机的IP给我们看下,或者可以先使用几天不要付款。通过同IP检测网站,看其他网站是不是收录正常,如果大部分收录,快照以及site首页有问题,那我们还是换一家主机商吧。 第三,网站程序的选择。我们需要选择常规网站程序内核。不要下载或者使用有很多漏洞的,尤其是对搜索引擎不友好的网站。基本的SEO尝试我们需要知道,比如每个页面的标题需要不同,对应不同的页面内容。网站可以伪静态或者生成静态文件。如果是用的CMS,我们可以查看下用这款CMS的其他网站收录如何。 第四,网站内容。新网站对内容更为严格,从我们的网站上线到被收录,都处于被百度等搜索引擎考核阶段。我们内容千万不要采集或者是复制别人的。需要进行原创,或者伪原创更新。关于量上面,我们可以一天几篇,也可以一天一篇,根据自己的实际情况。只有等待被收录后,可以继续伪原创甚至适当转载。搜索引擎喜欢新内容。 第五,适当的外链接推广。如今网站竞争激烈,搜索引擎不会主动过来找你爬行内容,一个有外链接推广的网站,搜索引擎会顺着推广收录新的内容,尤其是收录速度上肯定比我们做好网站什么都不管挂在哪里强。对于推广的量我是这么做的,新网站一天10-20个外链接,持续每天都要去做。 第六,界面的友好程度。如今搜索引擎变得很聪明,我们在网站架构的时候需要考虑网站的“重度”,如果你网站图片或者动画太多,搜索引擎会跳过不抓取。因为他们喜欢抓取文字内容。而且在界面和代码布局上,需要有条理,减少垃圾代码的多余。 第七,不要过度优化。新网站我们站内优化要自然,不要关键字堆砌严重,因为这样搜索引擎会获悉你是一个作弊网站,新网站发展要自然,在以后收录或者权重高了后,再进行微调整。这些都是随着网站的发展,不断的提高和补充的。 第八,认真维护。往往成功就在一刹那间,不要认为几天或者几个礼拜不收录没长进,你就不更新,不维护了。往往很多站长都是这样的,做网站不会一夜成名,成功的背后都有辛酸。我们需要做的是坚持,坚持以上几点,做好了,不管我们做的什么网站,肯定有所回报。 from:http://jingyan.baidu.com/article/72ee561aa8061ae16138dfd8.html
View Details————————— Microsoft Visual Studio ————————— 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。 此问题可能是由配置更改或安装另一个扩展导致的。可以通过查看文件“C:\Users\用户名\AppData\Roaming\Microsoft\VisualStudio\11.0\ActivityLog.xml”来获取详细信息。 是否继续显示此错误消息? ————————— 是(Y) 否(N) ————————— 解决方案:"Microsoft Visual Studio 2012"->"Visual Studio Tools"->"VS2012 开发人员命令提示"->输入"devenv /resetuserdata " FROM:http://www.cnblogs.com/autumn/p/3452369.html
View Details1、 在vs2010 选择“新建项目”—-“其他项目类型”—-“Visual Studio Installerà“安装项目”: 命名为:Setup1 。 这是在VS2010中将有三个文件夹, 1.“应用程序文件夹”表示要安装的应用程序需要添加的文件; 2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe; 3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。 2、 应用程序文件夹中点右键添加文件:表示添加要打包的文件; 添加的文件一般是已经编译过应用程序的debug目录下的文件; 如果debug 下面有子文件夹则需要“添加文件夹”,例如:data 然后把对应的子文件里的内容添加到此文件夹中; 把需要创建程序快捷方式的图标也添加进来:后缀名为:ico 3、 在创建的项目名称(Setup1)上点击右键:属性 选择系统必备 然后选择.NET的版本,和Windows Installer3.1(可选项) 选择:“从与我应用程序相同的位置下载系统必备组件” 这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。 VS2010发布.NET2.0的版本,在创建安装程序时,需要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”à“启动条件”: 然后VS2010会创建如下文件: 在“启动条件”中, 点击“.NET Framework”在Version上面选择.NET Framework 2.0; 这样.NET Framework 2.0上创建的项目在安装时,就不会安装.NET3.5或其他版本, 也不会重启(解决.NET 2.0 创建的项目,安装.NET FrameWork3.5的问题)。 4、 设置安装文件的目录(路径): 创建的项目名称(setup1)点击左键(不是右键),在属性中设置参数如下图: 其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字; 例如我们设置为:BeyondKKO;Manufacturer:自由公司;ProductName:串口测试。 把InstallAllUsers 设置为True 。 (这样在“控制面板”程序中会显示公司的名称; 在安装时会默认为“任何人”,否则默认为“只有我”) 在应用程序上点击左键,如下图:第一个为系统主目录(默认C:\Programe),第二个为公司名([Manufacturer]),第三个为应用程序名称,这样在安装时就会创建两层的文件路径。需要删除DefaultLocation中的:[Manufacturer] 。删除后只有应用程序的名称。 5、 创建应用程序图标与卸载程序: A.“在应用程序文件夹”中的.exe文件中,点击右键,创建快捷方式: 重命名“串口测试程序”,然后点击右键属性:选择Icon 双击进入选择我们之前添加的“MiXer.ico” 确定后,拖动此快捷方式到“用户桌面” B. “用户的‘程序’菜单”中添加一个文件夹,命名为:“串口程序” 然后同样的方式创建TEXTCOM.exe一个快捷方式(“串口测试程序”),拖动到“串口程序”中; 然后给.NET应用程序创建一个卸载程序: 在“应用程序文件夹”中添加:C:Windows\System32\Msiexec.exe 右键创建快捷方式,重命名为:卸载,把此快捷方式拖动到“串口程序”; 点击项目名称(Setup1),在属性中找到:ProductCode 复制此ProductCode ,粘贴到“卸载”快捷方式的Arguments属性,前面加/x空格 6、 完成以上步骤,就可以生成解决方案了。 7、生成解决方案后,在debug文件夹中就是我们需要的安装包. 8、 安装完在开始菜单中有“串口程序”的文件夹,里面有我们创建的两个快捷方式; 桌面上也有快捷方式。 (完) 经过自己的测试,发现只有把Debug文件夹整个都发给别的人,别人才能正常安装,否则就会出现错误。 from:http://www.cnblogs.com/daban/archive/2012/06/27/2565449.html
View Details1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1); 2.创建文件 //using System.IO; File.Create(%%1); 3.删除文件 //using System.IO; File.Delete(%%1); 4.删除文件夹 //using System.IO; Directory.Delete(%%1); 5.删除一个目录下所有的文件夹 //using System.IO; foreach (string dirStr in Directory.GetDirectories(%%1)) { DirectoryInfo dir = new DirectoryInfo(dirStr); ArrayList folders=new ArrayList(); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); for (int i = 0; i < folders.Count; i++) { FileInfo f = folders[i] as FileInfo; if (f == null) { DirectoryInfo d = folders[i] as DirectoryInfo; d.Delete(); } } } 6.清空文件夹 //using System.IO; Directory.Delete(%%1,true); Directory.CreateDirectory(%%1); 7.读取文件 7.1.操作系统默认编码 //using System.IO; StreamReader s = File.OpenText(%%1); string %%2 = null; while ((%%2 = […]
View DetailsWhat 软件工程师的职业生涯要历经以下几个阶段:初级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。 Why 得到更多的报酬!因为你的薪水会随着你水平的提高而增加 提升你的职业生涯。成为了高级软件工程师之后,就可以朝着架构师、团队负责人、CTO 等职位前进 历经更大的挑战。随着你的成长,各种影响力也会提高。 How 软件工程是很难的。这一行业在不断变化中,所以你必须紧跟它的步伐。你必须不断地投入时间和精力,因为你需要学习的东西总是比你能吸收的多。很多新 手工程师甚至都不曾意识到他们如果想要攀登行业的高峰,要学习的东西、要付出的努力得有多少。不过,不用担心,下面我将指出一条“明路”有助于你成为一名 高级软件工程师。 步骤0:选择你的道路,坚持下去! 做一件事,就要把它做好。——Doug McIlroy《Unix Philosophy》 关于这一点,我真的是强调得不能再强调了。选择好你将与之并肩作战的专业和技术堆栈非常重要。坚持不懈,不要分心。至于应该怎么做请看下面: 选择专业。也就是你想做的事情。例如:Web 开发、移动开发、DevOps 等。 选择专业中的实用技术。例如:如果你选择了 Web 开发,那你就需要在 Ruby on Rails、Python、Django,JavaScript 和 MEAN 等之间做斟酌。如果你选择的是移动开发,则需要在 iOS 和 Android 等之间做出选择。 坚持下去,直到掌握这门技术。 我的意思并不是说除了你的主要专业以外,你就不必熟悉其他的了。那种首屈一指的软件工程师通常对其他的编程语言和技术都非常了解,当然首先他们对他 们自己的主要专业了解得非常剔透。当你确定好主要专业之后,接下来要做的就是学习,阅读所有相关的书籍、练习各种必要的技能,这可能需要很多年的时间。但 是千万不要气馁,一步一个脚印,一个一个攻克难关,量变才能达到质变。关于技术,我的推荐是:Ruby on Rails 之于 web 开发,iOS 之于移动开发。这是我是以一个过来人的身份告诉你的宝贵经验。不过我还是想补充一句,可能每个人的口味不同,我的经验也许并不适合你,你完全可以选择其他 的技术,不过这样的话,你要阅读的书籍可能就和我的推荐不一样了。 步骤1:奠定基础 《The Pragmatic Programmer 》对于我们掌握软件是一个很好的起点。该书总结了高水平的实践探索。这与我们使用的是什么语言/技术无关。无论你选择的是哪种技术堆栈,其主要原理都是一样的。 步骤2:掌握你的编程语言 你以后每天需要面对哪种编程语言取决于你今天选择的技术。但是编程语言总有主次之分。例如,Ruby on Rails 开发人员主要使用 Ruby,AngularJS 开发人员大多数时间用的是 JavaScript。确定编程语言、掌握编程语言对你的职业生涯发展至关重要。因为以后你每天都会使用它!推荐你先阅读有关书籍。 《The Swift Programming Language》之于 Ruby 开发人员,以及《Programming Ruby 》之于 iOS 开发人员。 步骤3:学习框架 选一个,然后好好学习: 对于 Rails 开发人员——《Rails Tutorial 》by Michael Hartl 对于 iOS 开发人员——《iOS programming: The Big Nerd Ranch Guide》 步骤4:掌握文本编辑器/ IDE 再选一个,然后坚持不懈地掌握这个工具。如果你选择的是 VIM,那就要成为它的主人,让它往东就往东。 步骤5:使用版本控制系统 […]
View Details基于移动端的微信和wap网站开发,日益火起来,下面贴一段智能判断分流的代码,希望对菜鸟有所帮助! <?php function isMobile(){ $useragent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "; $useragent_commentsblock = preg_match('|(.*?)|',$useragent,$matches) --> 0 ? $matches[0] : "; } function CheckSubstrs($substrs, $text) { foreach ( $substrs as $substr ) { if (false !== strpos($text,$substr)) { return true; } return false; } $mobile_os_list = array ( 'Google Wireless Transcoder', 'Windows CE', 'WindowsCE', 'Symbian', 'Android', 'armv6l', 'armv5', 'Mobile', 'CentOS', 'mowser', 'AvantGo', 'Opera Mobi', 'J2ME/MIDP', 'Smartphone', 'Go.Web', 'Palm', 'iPAQ' ); $mobile_token_list = array ( 'Profile/MIDP', 'Configuration/CLDC-', '160×160', '176×220', '240×240', '240×320', '320×240', 'UP.Browser', 'UP.Link', 'SymbianOS', 'PalmOS', 'PocketPC', 'SonyEricsson', 'Nokia', 'BlackBerry', […]
View Detailswebbrowser,居然被用作套打。。。。。。 由于是套打,格式要求很严格,页眉页脚、页边距等等等等。 在网上找到下列代码,做适当修改后基本上能满足要求了,但是由于是用JS修改注册码,因此和客户端的IE设置有很大关系,必须要求客户IE允许Activex。如果不允许,var Wsh=new ActiveXObject("WScript.Shell");将抛出一个异常。 <script language="JavaScript" type="text/javascript"> var HKEY_Root,HKEY_Path,HKEY_Key; HKEY_Root="HKEY_CURRENT_USER"; HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; //设置网页打印的页眉页脚为空 function PageSetup_Null() { try { var Wsh=new ActiveXObject("WScript.Shell"); HKEY_Key="header"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); HKEY_Key="footer"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); HKEY_Key="margin_bottom"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); HKEY_Key="margin_left"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); HKEY_Key="margin_right"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); HKEY_Key="margin_top"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); } catch(e){ //alert(e); } } //设置网页打印的页眉页脚为默认值 function PageSetup_Default() { try { var Wsh=new ActiveXObject("WScript.Shell"); HKEY_Key="header"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P"); HKEY_Key="footer"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d"); } catch(e){} } </script> 第二种方法:直接在.cs文件中写方法。 protected void Page_Load(object sender, EventArgs e) { //PageSetup("", ""); } private void PageSetup(string header, string footer) { Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Internet Explorer\\PageSetup\\", true); rk.SetValue("header", header); rk.SetValue("footer", footer); rk.SetValue("margin_bottom", 0); rk.SetValue("margin_left", 0); […]
View Details今天使用webbrowser的时候给documenttext赋值老是没用,查了半天资料才发现要先navigate一下才行 最后的使用方法如下 using (WebBrowser wb = new WebBrowser()) { wb.Navigate(“about:blank"); wb.Document.Write(content); ///需要更改的内容 el = wb.Document.GetElementById("sender"); if (el != null) el.InnerHtml = EnviromentManager.Username; string html = wb.Document.Body.InnerHtml; } from:http://blog.csdn.net/xiao_rory/article/details/6030160
View Details我老爸经常对我说,“慢点,儿子,这样事情会完成的更快。” 我曾经在旧金山湾区的多家高科技初创公司工作过。现在,我52岁了,我编码时速度慢了、思考的东西多了。 我像一个写代码的设计师;当你读这篇文章的时候你会明显地感觉到这一点:) 最近当我和一些年轻的程序员一起开发一个项目时,慢速编程对我来说是个问题,他们信仰快速实现、迭代式修改代码。开发时,我们被鼓励使用相同的代码库,它就像一大锅汤,如果我们持续地、用力地搅拌它,一个完整的东西就会出现。 然而它不会。 这些程序员中的许多相信所有的工程师都是可替代的这个谬误,以及没人应为代码的任何一方面负责的观点;任何程序员都应能在任何时间改变代码的任何一个片段。毕竟,我们有像github一样能管理、合并任意多的,来自任意数目员工的异步提交的优秀服务。只要每个人经常提交commit,且不破坏任何东西,那么一切都会工作得很好。 扯淡。 你不可能仅靠心意就取代了设计过程。它自文明的曙光以来就一直存在着。而且,即使是那些最新的灵活开发工具,不管它们有多灵活,都不能取代能建立起大教堂,铺设出铁路,拍摄出唱片电影的良好的实践与真实的合作。 同样,再怎么多的编程总量也不能产生一件能节约软件开发时间,把开发速度加快到一堆代码猴子水平的编程工具。 节奏紊乱 让我从快速编程的程序员之中脱颖而出,成为一名慢速程序员的那次意外,其实是一中形式的 节奏紊乱 – 那时候我有一个被其他的程序员笑称是机关枪式迭代的编码节奏. 我的编程风格被描述成拥有各种各样的大小和时间尺度的有机弧线, 其中每一个的开始都是探索、反复尝试以及各种错误、小伎俩,以及临时变量. 基本上,还算是感觉良好. 看上去还是像模像样的. 过段时间后,我会回过头来圈圈点点。每一段弧线的结尾都像是某种准备实现的代码. (“打扫战场”是每个回合结束后必须要折腾的事情). 我编写代码做出贡献的同时,策略、设计方案以及架构上的突发情况不断. 而有时,在一个成熟的机制出现之后, 我却会回过头去重新开始, 因为我那时候就会想到实现某个东西的更好方式. 有时候我是错的。有时候我又是对的. 除非完全成型之后让我眼见为实,否则永远都没办法知道对错. 总而言之,让我们回到一起搞大掺和的程序员们身上. 问题就成了这样: 如果整个软件生态系统没有任何的迟滞和停顿——在发展和应用设计的整个过程中按部就班风平浪静,那么一个人,或者甚至是一个快速的编程者,他是如何做出一个好的设计来的呢? 任何生成快速编程同慢速编程其实一样 (除开前者比较快之外), 都是没有真正理解设计过程的. 同样的原因,很多的神经学家现在都认为类似流体流动的神经元放电会在整个大脑有一种临时占据所有思想和意识的浑(混)响,那就是好的设计需要花费时间. 降低编程速度运动 据wikipedia所说,“降低编程速度运动”是“降速运动”的一部分。这是一种强调仔细设计、品质代码、软件测试与思考的软件开发哲学。这项运动旨在防止不成熟的组装件、有问题的代码和过快的开发周期。 wikipedia同时对“慢软件开发”有着相应的内容:“作为敏捷软件开发运动的一部分,世界上成群的软件开发者期待着具有预见性的项目,旨在获得可持续的职业生涯与工作生活的平衡。他们进行了例如结对工作、代码审查、代码重构等尝试,希望能开发出更令人信赖与强健的软件产品。” 处在旧金山湾区的,由风险投资所支撑的软件开发都是行进在热火朝天的快车道之上的. 在一个流程中资金被动态的投入到了非自然的需求上,其实应该最好是留给设计革新的自然行业节奏上去的. 快并不总是好主意. 事实上,慢一点实际上有时候就意味着更快 – 那种时候所有的东西都是讨论和做好过的. 数字科技是如何侵入我们的自然规律式的节奏的,这一个主题早就被 Rushkoff 的 现实冲击 一问所阐释. 还有另外一个问题: 对技术近乎狂热的崇拜和追求– 迷信般的迷恋着工具. 人们很想知道软件问什么这么烂(是的,它很烂). 软件很烂大都是因为纸上谈兵. 快速的编程者会围绕一些拥有小伎俩的工具去构建一些拥有小伎俩的工具来帮助他们编写代码. 这也是为什么, 我相信软件开发需要各种老人参与其中, 包括: 女性, 教育家, 艺术家. 需要更多的"人-人", 更少的"事-人". 我指的参与, 不是让他们在咨询台服务, 或是装饰下界面(UI flower arranging). 我指的是真正参与开发– 让软件更加人性化. 还好, 我不是码字员. 我的一个朋友, 一个成熟的女性软件工程师, 她有一句名言: “编程不等同于码字”. 虽说这个道理大家都知道, 不过, 常用它来提醒下自己, 也不是什么坏事. Brendan Enrick 也在讨论这方面的问题. 正是因为敲击键盘的是程序员, 才使得这项工作变成了编程, 而不是码字. 说白了, 编程其实就是, 把各种想法, 设计 语言, 逻辑和心智建构(mental construction)存入计算机记忆体中的一项活动. 我的妻子经常走到院子里问我:“你在编程吗?”我的答案常常是“是的”。我经常是在用花园剪修剪树枝或是在移动堆肥。 植物、泥土和剪刀对于编程的作用就像键盘和发光的屏幕一样。 我们正从工业与经济时代过渡到一个可持续发展的年代。是的,新的软件与生意需要生长。然而,为了可持续性,它们需要缓慢地生长,需要我们的呵护,一如我们对待美酒,对待孩子一般。 from:http://www.oschina.net/translate/the-case-for-slow-programming
View Details