All posts by 龙生
22条日常技巧助程序员提高工作效率、节约时间
我一直在测试和调整各种生产效率的技术,在过去的五年中,阅读了大量的书籍(其中大多数是重复的) ,这里是我的一些结论: 这不是一个关于时间的问题,而是关于精力。 为了“有效率”,我们试图在一个工作日内塞进尽可能多的小时,但最终一切都更多地取决于你的注意力,积极性和良好状态(这些都是直接与精力等级联系在一起)而不是工作时间 。 我最近在葡萄柚的一个内部演示上提及了我提高效率的想法,结果性的演示是在Slideshare上的:producitivity porn. 其中一些关键结论: 1. 决定什么是重要的事,因为在5年之内,你现在做的80%的事情都不会有任何结果。那只是无用功,没有有用的结果。 2. 睡眠,饮食和运动可以让你的成果提高到三倍,因为他们可以帮助你增强你的注意力,动力和精力水平。 3. 两分钟法则:如果你可以在两分钟内做完一件事(比如回复邮件或是一个家务),那就现在做。计划着一会儿完成它,记着它,并在未来完成它会花费五分钟甚至更多的时间。 4. 五分钟法则:治疗拖延症最好的办法不是定目标去完成一个可怕的大任务,而是只在那件事上花五分钟。你会发现在大多数情况下,它在超出五分钟的时候依旧很顺利,因为你进入了平坦期。 5. Seinfeld生产链:如果你想做好一件事,那就每天去做。包括圣诞节,复活节和审判日。没有例外。 6. 微小的生活习惯:与五分钟法则高度结合起来,你可以很快地形成好习惯。这个很有用,我测试过的。 7. 你的记忆力烂透了。 即使你是一个天才也要把每件事都从你的脑子里清出来。把他们写在一个笔记本上,放进待办事项列表的应用程序里,记在手机里,或是告诉Siri,我不在意你使用的方法。 8. 尽量少使用工具。我曾经测试过大多数代办事件管理器,并最终保持使用Cultured Code的Thing app和谷歌日历(iCal 是不错,但是谷歌日历和我的默认客户端Gmail结合得很好)。如果你了解了下一条规则,你用什么就并不重要了(铅笔或是钢笔都是可以的)。 9. 规则强于工具。你需要纪律,这对我来说意味着两件事:我每天早晨做得第一件事是计划我的一天,并且我每天都写一个简短的工作日志。这有助于帮助我保持清醒,有良好的优先级排序,去掉无用的任务,并且做有意义的事情。这节约了我很多时间。 10. 番茄计时器,这是一个时间盒。在30分钟内只做手头的事情,不做任何其他的事情:没有电话,邮件,不和别人说话,没有社交网站。除了记得在发生火灾时从楼里跑出来外,没有别的了。 11. 总是带着耳机。 你没必要在听音乐,但是这会阻碍别人接近你。 12. 邮箱调度和收件箱清零。不要把查邮箱当做你一天里的第一件事,也不要在晚上看它(这件事毁掉了我的很多 个晚上),试着一天只查三次:早上十一点,下午两点和下午五点。你的收件箱并不是一个待办事项列表。把它清空:每一封邮件都应该是一个可操作的任务(把它 和待办列表连在一起),或是一个参考文献(把它发到Evernote或存档),或是现在就应该删掉。 13. 对手机来说也是一样的。不要总是能被联系到,我总是把手机静音,并分批回电话。 14. 把小事情分批,比如邮件,电话,或是facebook等等。 15. MI3,最重要的三件事(或是改成一件必做的,3件应该做的,或是五件可以做的)。早晨开始做最重要的一件事。 16. 意志力是有限的。不要认为在你遇到麻烦的时候意志力会帮你。把最重要的事情放在早晨做,并且尽可能地让所有事情自动化(委托,分批等等)。美国总统不需要每天选择他们的菜单和衣服颜色,否则他们的意志力会在晚些他们需要按下(或不按)红色按钮时耗尽。 17. 最有驱使力的事情。总是问问自己,你现在能做的最有驱使力的事情是什么,然后应用规则14。 18. 经常推出新产品。不要过分地润色它。就像他们在创业公司圈所说的,“如果你不因你的产品感到难堪,你已经推出得太晚了。” 19. 压力会带来奇迹。使用奖励或是社会承诺。我们最近在新的葡萄柚网站上实施了这一点。之前的那个网站投入使用花了两年半的时间,而新的这个只花了两天半,我们用了一个周末进行编程马拉松(外加周一)。 20. 有计划的拖延。你的大脑需要休息,并且有时候新一期的绿箭侠可以比最好的TED演讲创造更大的奇迹。 21. 删除,说不,忽略,不要坚守日程表。我喜欢最后一点,它来自于马克·安德森,因为这样可以让他立即见任何他想见的人。这样很多人会恨你,但是你有时间做相关的事情。你认为你会在20年后后悔这样做吗?或是为了一些人做一些你不在意的事情,只是为了表面上的赞赏。 22. 假装无能。这是一个应用之前规矩的很有策略的方法。 这次就到这里,我的拖沓休息结束了,我要回去工作了。 【补充】: Colin Shillingford 在他的回复中认为,“节约”时间的最好方法是充分利用我们的时间。我们无法创建之前不存在的时间。我们所能做的,改变任务的优先级,或者调整任务的顺序。 我们中的大多数,正是在这方面出问题了。此外,Colin 在回复中也推荐了他认为很不错的番茄时间管理方法。 稿源:程序师 from:http://www.oschina.net/news/56502/what-are-the-best-day-to-day-time-saving-hacks
View Details任意美化你的文件域
第一种方法: 样式: .fileInput{width:102px;height:34px; background:url(http://images.cnblogs.com/cnblogs_com/dreamback/upFileBtn.png);overflow:hidden;position:relative;} .upfile{position:absolute;top:-100px;} .upFileBtn{width:102px;height:34px;opacity:0;filter:alpha(opacity=0);cursor:pointer;} HTML: <div class="fileInput left"> <input type="file" name="upfile" id="upfile" class="upfile" onchange="document.getElementById('upfileResult').innerHTML=this.value"/> <input class="upFileBtn" type="button" value="上传图片" onclick="document.getElementById('upfile').click()" /> </div> <span class="tip left" id="upfileResult">图片大小不超过2M,大小90*90,支持jpg、png、bmp等格式。</span> 第二种方法: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>更改文本域的样式-用input模拟文本域</title> <style> *{margin:0;padding:0;} input{border:none;border:1px solid #CCC;vertical-align:middle; } .input {height:24px; line-height:24px; border-right:none; width:200px;} .liulan {width:100px;height:26px;background:url(/jscss/demoimg/201206/bgimg.jpg) no-repeat; cursor:pointer;} .files{ position:absolute; left:202px; top:52px; heigth:26px;cursor:pointer; filter: Alpha(opacity=0); -moz-opacity:0; opacity:0; } </style> </head> <body> <BR> <BR> <BR> <form method="post" action="" enctype="multipart/form-data"> <input type="text" id="txt" name="txt" class="input"><input type="button" onmousemove="f.style.pixelLeft=event.x-60;f.style.pixelTop=this.offsetTop;" value="浏ff览" size="30" onclick="f.click()" class="liulan"> <input type="file" id="f" onchange="txt.value=this.value" name="f" style="height:26px;" class="files" size="1" hidefocus> </form> <BR> […]
View DetailsASP.NET伪静态实现
1.什么是伪静态?使用伪静态的作用是什么?
定义:动态网页通过重写URL的方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面。
View DetailsC#操作IIS7程序池新建站点站点配置
最近在做一个WEB程序的安装包;对一些操作IIS进行一个简单的总结;主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对IIS7程序池的托管模式以及版本的操作;首先要对Microsoft.Web.Administration进行引用,它主要是用来操作IIS7; using System.DirectoryServices; using Microsoft.Web.Administration; 1:首先是对本版IIS的版本进行配置:
1 2 3 |
DirectoryEntry getEntity = new DirectoryEntry("IIS://localhost/W3SVC/INFO"); string Version = getEntity.Properties["MajorIISVersionNumber"].Value.ToString(); MessageBox.Show("IIS版本为:" + Version); |
2:是判断程序池是存在;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/// <summary> /// 判断程序池是否存在 /// </summary> /// <param name="AppPoolName">程序池名称</param> /// <returns>true存在 false不存在</returns> private bool IsAppPoolName(string AppPoolName) { bool result = false; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); foreach (DirectoryEntry getdir in appPools.Children) { if (getdir.Name.Equals(AppPoolName)) { result = true; } } return result; } |
3:删除应用程序池
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/// <summary> /// 删除指定程序池 /// </summary> /// <param name="AppPoolName">程序池名称</param> /// <returns>true删除成功 false删除失败</returns> private bool DeleteAppPool(string AppPoolName) { bool result = false; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); foreach (DirectoryEntry getdir in appPools.Children) { if (getdir.Name.Equals(AppPoolName)) { try { getdir.DeleteTree(); result = true; } catch { result = false; } } } return result; } |
4:创建应用程序池 (对程序池的设置主要是针对IIS7;IIS7应用程序池托管模式主要包括集成跟经典模式,并进行NET版本的设置)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
string AppPoolName = "LamAppPool"; if (!IsAppPoolName(AppPoolName)) { DirectoryEntry newpool; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); newpool = appPools.Children.Add(AppPoolName, "IIsApplicationPool"); newpool.CommitChanges(); MessageBox.Show(AppPoolName + "程序池增加成功"); } #endregion #region 修改应用程序的配置(包含托管模式及其NET运行版本) ServerManager sm = new ServerManager(); sm.ApplicationPools[AppPoolName].ManagedRuntimeVersion = "v4.0"; sm.ApplicationPools[AppPoolName].ManagedPipelineMode = ManagedPipelineMode.Classic; //托管模式Integrated为集成 Classic为经典 sm.CommitChanges(); MessageBox.Show(AppPoolName + "程序池托管管道模式:" + sm.ApplicationPools[AppPoolName].ManagedPipelineMode.ToString() + "运行的NET版本为:" + sm.ApplicationPools[AppPoolName].ManagedRuntimeVersion); |
运用C#代码来对IIS7程序池托管管道模式及版本进行修改; 5:针对IIS6的NET版进行设置;因为此处我是用到NET4.0所以V4.0.30319 若是NET2.0则在这进行修改 v2.0.50727
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//启动aspnet_regiis.exe程序 string fileName = Environment.GetEnvironmentVariable("windir") + @"\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"; ProcessStartInfo startInfo = new ProcessStartInfo(fileName); //处理目录路径 string path = vdEntry.Path.ToUpper(); int index = path.IndexOf("W3SVC"); path = path.Remove(0, index); //启动ASPnet_iis.exe程序,刷新脚本映射 startInfo.Arguments = "-s " + path; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; Process process = new Process(); process.StartInfo = startInfo; process.Start(); process.WaitForExit(); string errors = process.StandardError.ReadToEnd(); |
6:平常我们可能还得对IIS中的MIME类型进行增加;下面主要是我们用到两个类型分别是:xaml,xap
1 2 3 4 5 6 7 |
IISOle.MimeMapClass NewMime = new IISOle.MimeMapClass(); NewMime.Extension = ".xaml"; NewMime.MimeType = "application/xaml+xml"; IISOle.MimeMapClass TwoMime = new IISOle.MimeMapClass(); TwoMime.Extension = ".xap"; TwoMime.MimeType = "application/x-silverlight-app"; rootEntry.Properties["MimeMap"].Add(NewMime); rootEntry.Properties["MimeMap"].Add(TwoMime); rootEntry.CommitChanges(); |
7:下面是做安装时一段对IIS进行操作的代码;兼容IIS6及IIS7;新建虚拟目录并对相应的属性进行设置;对IIS7还进行新建程序池的程序;并设置程序池的配置;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
/// <summary> /// 创建网站 /// </summary> /// <param name="siteInfo"></param> public void CreateNewWebSite(NewWebSiteInfo siteInfo) { if (!EnsureNewSiteEnavaible(siteInfo.BindString)) { throw new Exception("该网站已存在" + Environment.NewLine + siteInfo.BindString); } DirectoryEntry rootEntry = GetDirectoryEntry(entPath); newSiteNum = GetNewWebSiteID(); DirectoryEntry newSiteEntry = rootEntry.Children.Add(newSiteNum, "IIsWebServer"); newSiteEntry.CommitChanges(); newSiteEntry.Properties["ServerBindings"].Value = siteInfo.BindString; newSiteEntry.Properties["ServerComment"].Value = siteInfo.CommentOfWebSite; newSiteEntry.CommitChanges(); DirectoryEntry vdEntry = newSiteEntry.Children.Add("root", "IIsWebVirtualDir"); vdEntry.CommitChanges(); string ChangWebPath = siteInfo.WebPath.Trim().Remove(siteInfo.WebPath.Trim().LastIndexOf('\\'),1); vdEntry.Properties["Path"].Value = ChangWebPath; vdEntry.Invoke("AppCreate", true);//创建应用程序 vdEntry.Properties["AccessRead"][0] = true; //设置读取权限 vdEntry.Properties["AccessWrite"][0] = true; vdEntry.Properties["AccessScript"][0] = true;//执行权限 vdEntry.Properties["AccessExecute"][0] = false; vdEntry.Properties["DefaultDoc"][0] = "Login.aspx";//设置默认文档 vdEntry.Properties["AppFriendlyName"][0] = "LabManager"; //应用程序名称 vdEntry.Properties["AuthFlags"][0] = 1;//0表示不允许匿名访问,1表示就可以3为基本身份验证,7为windows继承身份验证 vdEntry.CommitChanges(); //操作增加MIME //IISOle.MimeMapClass NewMime = new IISOle.MimeMapClass(); //NewMime.Extension = ".xaml"; NewMime.MimeType = "application/xaml+xml"; //IISOle.MimeMapClass TwoMime = new IISOle.MimeMapClass(); //TwoMime.Extension = ".xap"; TwoMime.MimeType = "application/x-silverlight-app"; //rootEntry.Properties["MimeMap"].Add(NewMime); //rootEntry.Properties["MimeMap"].Add(TwoMime); //rootEntry.CommitChanges(); #region 针对IIS7 DirectoryEntry getEntity = new DirectoryEntry("IIS://localhost/W3SVC/INFO"); int Version =int.Parse(getEntity.Properties["MajorIISVersionNumber"].Value.ToString()); if (Version > 6) { #region 创建应用程序池 string AppPoolName = "LabManager"; if (!IsAppPoolName(AppPoolName)) { DirectoryEntry newpool; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); newpool = appPools.Children.Add(AppPoolName, "IIsApplicationPool"); newpool.CommitChanges(); } #endregion #region 修改应用程序的配置(包含托管模式及其NET运行版本) ServerManager sm = new ServerManager(); sm.ApplicationPools[AppPoolName].ManagedRuntimeVersion = "v4.0"; sm.ApplicationPools[AppPoolName].ManagedPipelineMode = ManagedPipelineMode.Classic; //托管模式Integrated为集成 Classic为经典 sm.CommitChanges(); #endregion vdEntry.Properties["AppPoolId"].Value = AppPoolName; vdEntry.CommitChanges(); } #endregion //启动aspnet_regiis.exe程序 string fileName = Environment.GetEnvironmentVariable("windir") + @"\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"; ProcessStartInfo startInfo = new ProcessStartInfo(fileName); //处理目录路径 string path = vdEntry.Path.ToUpper(); int index = path.IndexOf("W3SVC"); path = path.Remove(0, index); //启动ASPnet_iis.exe程序,刷新脚本映射 startInfo.Arguments = "-s " + path; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; Process process = new Process(); process.StartInfo = startInfo; process.Start(); process.WaitForExit(); string errors = process.StandardError.ReadToEnd(); if (errors != string.Empty) { throw new Exception(errors); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
string entPath = String.Format("IIS://{0}/w3svc", "localhost"); public DirectoryEntry GetDirectoryEntry(string entPath) { DirectoryEntry ent = new DirectoryEntry(entPath); return ent; } public class NewWebSiteInfo { private string hostIP; // 主机IP private string portNum; // 网站端口号 private string descOfWebSite; // 网站表示。一般为网站的网站名。例如"www.dns.com.cn" private string commentOfWebSite;// 网站注释。一般也为网站的网站名。 private string webPath; // 网站的主目录。例如"e:\ mp" public NewWebSiteInfo(string hostIP, string portNum, string descOfWebSite, string commentOfWebSite, string webPath) { this.hostIP = hostIP; this.portNum = portNum; this.descOfWebSite = descOfWebSite; this.commentOfWebSite = commentOfWebSite; this.webPath = webPath; } public string BindString { get { return String.Format("{0}:{1}:{2}", hostIP, portNum, descOfWebSite); //网站标识(IP,端口,主机头值) } } public string PortNum { get { return portNum; } } public string CommentOfWebSite { get { return commentOfWebSite; } } public string WebPath { get { return webPath; } } } |
8:下面的代码是对文件夹权限进行设置,下面代码是创建Everyone 并给予全部权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/// <summary> /// 设置文件夹权限 处理给EVERONE赋予所有权限 /// </summary> /// <param name="FileAdd">文件夹路径</param> public void SetFileRole() { string FileAdd = this.Context.Parameters["installdir"].ToString(); FileAdd = FileAdd.Remove(FileAdd.LastIndexOf('\\'), 1); DirectorySecurity fSec = new DirectorySecurity(); fSec.AddAccessRule(new FileSystemAccessRule("Everyone",FileSystemRights.FullControl,InheritanceFlags.ContainerInherit|InheritanceFlags.ObjectInherit,PropagationFlags.None,AccessControlType.Allow)); System.IO.Directory.SetAccessControl(FileAdd, fSec); } <strong>from:http://www.cr173.com/html/19444_1.html</strong> |
CORS, IIS and WebDAV
The most common problem encountered when trying to get CORS working in IIS is WebDAV. WebDAV is installed as both a module and a handler. It wants to process OPTIONS requests but doesn’t know what to do for CORS (especially if you’re using the CORS support fromThinktecture.IdentityModel). The fix is to remove both the module and handler in web.config. The other common problem when using the CORS support from Thnktecture.IdentityModel is that the handler for .NET code (the ExtensionlessUrlHandler) by default only allows GET, POST, HEAD and DEBUG […]
View DetailsMac截图快捷键
Shift+Command+3 截取全屏幕至桌面 Shift+Command+4 截取部分屏幕至桌面 Shift+Command+4+空格 截取窗口或原件至桌面 Shift+Command+4 然后Esc 退出截屏 Shift+Command+Control+3 截取全屏幕至剪贴板 Shift+Command+Control+4 截取部分屏幕至剪贴板 Shift+Command+Control+4+空格 截取窗口或原件至剪贴板 Shift+Command+4 拉出选框 然后 空格 移动选框 Shift+Command+4 然后 Shift 保持选框高度(宽度),修改宽度(高度) Shift+Command+4 然后 Option 保持选框中心,修改半径 快捷键功能修改:打开“应用程序-》实用工具-》终端”,输入以下命令完成不同的功能: 1、截屏时不带阴影:defaults write com.apple.screencapture disable-shadow -bool true 2、恢复默认:defaults write com.apple.screencapture disable-shadow -bool false 3.改变文件格式:defaults write com.apple.screencapture type <format> format可选择的格式有:png (默认)、pdf、jpg、jp2 (JPG2000)、gif、tif (TIFF)、bmp、pict、tga 4、改变截图路径:defaults write com.apple.screencapture location <path> 注意:默认的路径是桌面:~/Desktop 5、改变文件名方式:defaults write com.apple.screencapture name <string>
View Details查询一个ip上有多少个网站的方法
查询一个ip地址上面绑定了多少个域名,一般是不进行二级域名的查询的。 主要用途是: 1、租用主机前的查询,比如查询oversales的情况 2、针对某些感兴趣的网站进行查询,可以方便的查询出同一人的多个网站来 3、满足八卦心理 4、其它 目前可提供服务的包括: 1、myipneighbors,有认证码,无其它查询限制; 2、iwebtool,没注册的情况下,1小时可以查询5次; 3、whosonmyserver,无限制;使用的是discountedscripts的代码,也可以使用discountedscripts demos查询; 4、http://www.domaintools.com/reverse-ip/,有限制查询,可以给出数量和前三个域名; 5、ip-domain,连界面都是1是一致的,估计是用的同一程序或者是clone的; 6、webhosting info, 7、yougetsignal, 查询质量分析: 这些脚本都无法保证查询结果的完整性,即会有部分结果被遗漏。以本blog域名为例,以上查询的数字为: No. name numbers 1 myipneighbors 14 2 iwebtool 1 3 whosonmyserver 14 4 domaintools 22 5 ip-domain 14 6 webhosting 33 7 yougetsignal 14 此外,针对国内虚拟主机的查询,因国内IP数量有限,相对有效;针对国外虚拟主机,因技术、ip丰富等原因,查询的有效性相对不高,仅供参考。 from:http://www.cnblogs.com/top5/archive/2011/08/01/2124242.html
View Details最最常用的 100 个 Java 类
大部分的 Java 软件开发都会使用到各种不同的库。近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库,也有第三方库。每个类在同一个项目中只计数一次,下面的列表中显示前 100 名的类。 以下列表中按使用最多的类进行排序,第三个数值表示 10000 个项目里使用到该类的项目数,而完整的列表请看 here. java.util.ArrayList (6958) java.io.IOException (6866) java.util.List (6784) java.util.HashMap (5590) java.util.Map (5413) java.io.File (5097) java.io.InputStream (4234) java.util.Set (3915) java.util.Arrays (3884) java.util.Iterator (3856) java.util.Collections (3643) java.util.Date (3461) java.util.HashSet (3278) java.io.BufferedReader (3257) java.util.Collection (3192) java.net.URL (3168) java.io.FileInputStream (3044) java.io.InputStreamReader (3023) org.junit.Test (3008) java.io.FileOutputStream (2843) java.io.FileNotFoundException (2669) java.io.OutputStream (2563) java.util.regex.Pattern (2469) java.io.Serializable (2437) java.util.LinkedList (2372) java.text.SimpleDateFormat (2245) java.util.Properties (2190) java.util.Random (2171) java.lang.reflect.Method (2141) java.io.ByteArrayOutputStream (2112) java.util.regex.Matcher (2012) android.os.Bundle (2007) java.util.logging.Logger (1999) java.io.UnsupportedEncodingException (1968) org.junit.Before (1920) java.util.Comparator (1896) java.io.ByteArrayInputStream (1868) java.io.PrintWriter (1862) java.util.Calendar (1854) android.app.Activity (1843) java.net.MalformedURLException (1828) android.content.Context (1780) android.view.View (1731) java.util.Locale (1719) java.util.Enumeration (1709) java.util.Map.Entry (1705) java.io.FileWriter (1677) java.io.FileReader (1651) android.util.Log (1614) android.content.Intent (1601) java.lang.reflect.InvocationTargetException (1594) java.util.logging.Level (1557) java.lang.reflect.Field (1499) java.io.StringWriter (1499) android.widget.TextView (1442) java.util.LinkedHashMap (1409) java.io.Reader (1390) java.net.URI (1377) java.io.Writer (1339) java.text.ParseException (1318) junit.framework.TestCase (1318) java.io.OutputStreamWriter (1295) java.io.StringReader (1279) java.io.BufferedWriter (1265) java.util.Vector (1254) java.util.StringTokenizer (1251) java.text.DateFormat (1246) java.util.concurrent.TimeUnit (1237) java.io.BufferedInputStream (1235) java.util.TreeMap (1227) org.xml.sax.SAXException (1218) javax.servlet.http.HttpServletRequest (1175) java.io.PrintStream (1168) […]
View DetailsIllustrator CS6 简体中文正式 完美破解版 支持Retina屏
详细的介绍不用多说了,相信大家都知道自己要下载的软件是什么,下面苹果会将为大家介绍一下安装与破解的方法: 1、安装前先断网 如果不断网的话还需要先申请一个Adobe ID,是免费申请 2、开始安装,选择“试用”,然后就开始安装了,一直等到安装完毕。 3、联网,打开Illustrator,点击“帮助”,然后点“更新”,在线下载Retina补丁然后安装。 4、下载破解补丁,解开压缩。 5、在“应用程序”文件夹,找到Illustrator CS6文件夹,在里面找到Illustrator CS6.app,右键,选择“显示包内容”,如下图所示: 6、然后找到contents/framework文件夹,把刚才下载并解压的amtlib.framework拷贝进去,替换原文件。 7、支持Retina屏的Illustrator CS6 MAC版破解就完成了。 如果提示关闭对8号字体和更小字体的文本平滑处理,请点击:系统偏好设置-通用。 按上图设置就ok了。 到此就完成了,如下图: 下载地址 百度云盘 迅雷快传 ADOBE CS6 破解补丁 FROM:http://www.nowmac.com/soft/design/graphic/Illustrator-CS6.html
View Details谈谈Visual Studio的缺点,比较Eclipse
3. 跟踪活动项不方便 Visual Studio有这样一个功能叫做Tracking Active Item,有时候我需要它,有时候又希望关闭它。Visual Studio把它放在选项里面,每次修改的时候都要重复点菜单-》选分类-》点CheckBox-》点OK这样一个重复的动作。 Eclipse把这个功能叫做Link with Editor, 放在主界面的Package Explorer的工具按钮里,打开和关闭都只需要点击一次鼠标就行了。 4. 设置代码格式不够灵活 看上去Visual Studio也提供了不少代码格式选项,可还是缺少很多高级设置,比起Eclipse只能算小巫见大巫了。比如,我很喜欢Eclipse把字段对齐这个功能,但Visual Studio压根没有这个选项。 5. 代码行定位功能不如Eclipse Eclipse编辑器右侧有个特殊区域代表了整个代码文件,断点、错误、警告、书签都会在这里标识出来,不论代码有多长,点击一下就可以定位,非常的方便。 在Visual Studio里面定位代码,要么用鼠标滚轮上下翻动直到找到内容,要么从成员列表的组合框里选择,不论哪一种,都没有Eclipse来得简洁方便。 6. 设置文件编码太过麻烦 Visual Studio既不能指定文件的默认编码,也不能批量设置文件编码,只能通过Save As对话框下面一个很小的箭头手工一个一个指定,麻烦到文件多的时候我有一种想砸了它的冲动。 Eclipse可以从文件类型、工作区、项目、单个文件四个级别设置文件编码,而且允许手工输入编码名称,这比Visual Studio从一个长长的列表里选择要快捷得多。 7. 错误信息不够人性化 Visual Studio如果编译出错,错误信息只是简单的列在输出窗口里,要你去一个一个点开来看。而Eclipse的错误信息同时会在Package Explorer里显示成Overlay Icon,从而清楚的了解到项目的哪些部分受到了错误的影响。 8. 添加新类过于简单 Visual Studio在创建新文件时唯一允许你指定的选项是文件名,剩下的只能手工修改。Eclipse在创建新类时提供诸多选项,比如要求实现某个接口,那么所有接口方法的存根也会一并生成,节约了很多时间。 9. 同一文件的导航功能不够一致 在Visual Studio的代码文件中如何导航?使用成员下拉框。 在可视化编辑器里怎么导航?用Document Outline窗口。 在引用的程序集里又如何导航?用Object Browser窗口。 在Eclipse中,上述所有内容都可以通过Outlilne窗口完成,操作也完全一致,不像Visual Studio那样每个窗口都有不同的界面和操作方法。 10. 管理引用 我们创建项目的时候总有一些库是经常要用到的,比如数据项目引用NHibernate,Silverlight项目引用Toolkit,等等。Visual Studio引用哪些程序集只能由我们手工查找,而Eclipse提供了User Library的管理功能,能够让我们将常用的库引用一次性导进来,比Visual Studio的Add References不知方便几许。 11. 重构功能比较初级 Visual Studio支持代码重构,Eclipse也支持,但是你比较一下两者的菜单就知道,它们对重构的支持程度完全不是同一个级别的。 12. 代码提示不够清楚美观 Visual Studio的代码提示同样只有单一的文字格式,大段的文字看下来,很难抓住重点。 Eclipse的代码提示格式是富格式内容,能突出显示重点,可导航的部分会显示成超链接,同时还提供附加的功能按钮,比Visual Studio要细致体贴得多。 13. 缺少本地历史记录功能 Eclipse有一个非常强大的功能是将最近的编辑历史记录保存在本地,这样即使你没有使用版本数据库也能跟踪修订信息、比较版本、还原历史记录,对一些实验性的项目或者不需要签入的开源项目来说是非常有用的,并且你也可以用它来记忆内容,整理思路。Visual Studio则完全没有这种功能。 14. 缺少智能化的快速修复 这是我最爱的Eclipse功能!Eclipse不仅找出编译错误,还能够为许多种类型的错误提供修复选项。这个修复选项确实相当的智能,对很多常见的编译错误都能找到合理的解决方案,比如下面的错误它就能猜到getMessge()实际上是getMessage()拼错了,我只需要在这一项上按回车就万事OK。 Visual Studio的只能机械的显示一些错误信息。有时候错误提示也会附带一些关于如何修正错误的提示,但大多比较死板,需要程序员靠自己的经验来修复错误。 15. 最后一个不得不说的地方是,Eclipse是完全免安装的。 这意味着什么呢?如果我哪天重新安装了系统,那么打开Eclipse马上可以再次使用,以前设置的所有选项和更新内容全部立即可用。而Visual Studio就不得不重新安装、打补丁、设置各种选项,如果运气不好安装过程中突然出了什么错,那你所有过程重来一遍吧,一整天就这样没了。更让人讨厌的是,VS2010安装过程中竟然要重启两次,就算你非重启不可的话,难道不能把所有内容准备好然后一次性解决吗!? from:http://www.cnblogs.com/younggun/archive/2010/11/05/1870026.html
View Details