程序设计

专业和发烧友程序员的问答

7
序列化包含循环对象值的对象
我有一个对象(解析树),其中包含子节点,这些子节点是对其他节点的引用。 我想使用序列化此对象JSON.stringify(),但是我得到了 TypeError:循环对象值 因为我提到的结构。 我该如何解决?对我而言,在序列化对象中是否表示对其他节点的引用并不重要。 另一方面,在创建对象时从对象中删除这些属性似乎很繁琐,并且我不想更改解析器(水仙)。


5
我可以用Node.js替换Apache吗?
我有一个使用常见嫌疑犯(Apache,MySQL和PHP)在CentOS上运行的网站。自该网站最初发布以来,它已经发展了很多,现在我想用它做一些更奇特的事情-即实时通知。根据我的阅读,Apache处理得很差。我想知道是否可以仅用Node.js替换Apache(所以不是“ LAMP ”,而是“ LNMP”)。 我尝试过在线搜索解决方案,但没有找到解决方案。如果我正确地解释了我已经读过的东西,似乎大多数人都在说Node.js可以同时取代Apache和PHP。不过,我有很多现有的PHP代码,因此我希望保留它。 如果还不很清楚,我会很困惑,可以使用一些启示。非常感谢!
151 apache  node.js 

9
最佳实践:方向更改期间的AsyncTask
AsyncTask 在另一个线程中运行复杂的任务是一件很棒的事情。 但是,如果AsyncTask仍在运行时发生方向更改或其他配置更改,则电流将Activity被销毁并重新启动。并且由于的实例AsyncTask连接到该活动,因此失败并导致“强制关闭”消息窗口。 因此,我正在寻找某种“最佳实践”来避免这些错误并防止AsyncTask失败。 到目前为止,我所看到的是: 禁用方向更改。(请确保不要使用此方法。) 让任务继续存在并通过以下方式使用新的活动实例对其进行更新 onRetainNonConfigurationInstance 只需在Activity销毁销毁任务时取消该任务,并Activity在再次创建销毁任务时重新启动它即可。 将任务绑定到应用程序类而不是活动实例。 在“货架”项目中使用的某些方法(通过onRestoreInstanceState) 一些代码示例: 屏幕旋转期间的Android AsyncTasks,第一部分和第二部分 ShelvesActivity.java 您能帮助我找到最好的方法,该方法可以最好地解决问题并且也易于实施吗?代码本身也很重要,因为我不知道如何正确解决这个问题。

6
如何在不断变化的Git源代码管理下处理IntelliJ IDEA项目文件?
我们团队中的每个人都使用IntelliJ IDEA,我们发现将其项目文件(.ipr和.iml)放入源代码管理非常有用,这样我们就可以共享构建配置,设置和检查。另外,我们可以在TeamCity的连续集成服务器上使用这些检查设置。(我们在.gitignore文件中而不是在源代码管理中有每个用户工作区的.iws文件。) 但是,当您在IDEA中几乎执行任何操作时,这些文件几乎不会更改。在IDEA的问题数据库中存在一个问题(IDEA-64312),因此也许有人会认为这是IDEA中的一个错误,但是在可预见的将来,我们需要与它一起解决这个问题。 直到最近,我们仍在使用Subversion,但是最近我们切换到了Git。我们每个人都已经习惯于拥有一个被忽略并且不会检入的项目文件的更改列表,除非存在我们要与他人共享的项目文件更改。但是使用Git,真正的力量似乎是(根据我们的探索)它所鼓励的连续分支,并且在分支之间进行切换非常麻烦,因为项目文件总是被修改。通常,它只能以某种方式合并更改,并尝试处理现在应用于新分支的项目文件更改。但是,如果新分支更改了项目文件(例如,该分支正在其他分支中尚未使用的新模块上工作),则git只会抛出一个错误,即它不会 当两个分支都已更改并且您在本地进行更改时,合并在文件中没有任何意义,我可以理解它的意义。在命令行中,可以在“ git checkout”命令上使用“ -f”强制其抛出本地更改并使用分支的更改,但是(1)在IDEA(10.5.1)中使用Git Checkout GUI命令似乎没有这个选项可以找到,因此我们需要定期切换到命令行,并且(2)我们不确定是否要习惯于使用该选项标记并告诉Git放弃我们的本地更改。 因此,这是我们对必须处理的选项的一些想法: 将项目文件完全移出源代码管理。将它们放在.gitignore中,然后通过其他方式将它们分发给每个人和TeamCity,也许是通过将它们置于其他位置或使用其他名称的源代码控制中。我们的团队足够小,可以考虑这个选项,但这似乎并不好。 继续使用它,尝试确保在给定时间管理我们在哪个分支上拥有哪些文件。为此,我们可能鼓励每个开发人员在他们的系统上拥有每个项目的多个副本,以便他们可以将每个项目检出到可能包含不同项目文件集的不同分支。 尝试仅在源代码管理中包含项目(.ipr),而模块(.iml)文件不在源代码管理和.gitignore文件中。定期在.ipr中自动切换的主要问题是共享构建配置的顺序,但是也许我们可以单独共享有关如何设置这些信息的信息。我不太确定IDEA是如何处理这种事情的,尽管它只有一些文件,特别是在新结帐时。 我想我希望我们缺少一些显而易见的(或非显而易见的)解决方案,也许可以解决Git和IDEA似乎都具有的巨大可定制性。但是似乎我们不可能成为唯一遇到此问题的团队。是一种类似于Stack Overflow上的问题包括:3495191,1000512,和3873872,但我不知道,因为他们是完全一样的问题,也许有人能拿出的利弊我有不同的方法概述,这些问题的答案中列出的方法或它们建议的方法。

15
检查DBNull然后分配给变量的最有效方法?
这个问题有时会出现,但是我还没有找到满意的答案。 一个典型的模式是(行是DataRow): if (row["value"] != DBNull.Value) { someObject.Member = row["value"]; } 我的第一个问题是哪个效率更高(我已经提出了条件): row["value"] == DBNull.Value; // Or row["value"] is DBNull; // Or row["value"].GetType() == typeof(DBNull) // Or... any suggestions? 这表明.GetType()应该更快,但是也许编译器知道一些我不知道的技巧? 第二个问题,是否值得缓存row [“ value”]的值,或者编译器是否仍然优化了索引器? 例如: object valueHolder; if (DBNull.Value == (valueHolder = row["value"])) {} 笔记: row [“ value”]存在。 我不知道该列的列索引(因此查找列名)。 我在问关于检查DBNull然后分配的问题(不是关于过早的优化等)。 我对一些方案进行了基准测试(以秒为单位的时间,进行10,000,000次试用): …
151 .net  dbnull 

10
开关/模式匹配的想法
我最近一直在研究F#,虽然我不太可能很快就克服障碍,但它无疑突出了C#(或库支持)可以使生活更轻松的某些领域。 特别是,我正在考虑F#的模式匹配功能,该功能允许使用非常丰富的语法-比当前的switch / conditional C#等效项更具表现力。我不会尝试举一个直接的例子(我的F#不符合要求),但总而言之,它允许: 按类型匹配(对有区别的联合进行全覆盖检查)[请注意,这还会推断出绑定变量的类型,为成员提供访问权限等] 谓词匹配 以上(以及我可能不知道的其他一些情况)的组合 虽然C#最终会借用其中的一些功能很不错,但在此期间,我一直在研究可以在运行时完成的工作-例如,将某些对象组合在一起以允许以下操作相当容易: var getRentPrice = new Switch<Vehicle, int>() .Case<Motorcycle>(bike => 100 + bike.Cylinders * 10) // "bike" here is typed as Motorcycle .Case<Bicycle>(30) // returns a constant .Case<Car>(car => car.EngineType == EngineType.Diesel, car => 220 + car.Doors * 20) .Case<Car>(car => car.EngineType == …

5
NW.js,Brackets-Shell和Electron之间的功能区别是什么?
既然TideSDK实际上已经死了,我一直在寻找替代的“包装器”来将HTML / CSS / JS应用程序作为独立的桌面应用程序运行。到目前为止,我遇到的三个可行的选择是NW.js(以前称为node-webkit),方括号-shell和Electron(以前称为atom-shell)。 问题在于,在功能集,兼容性等方面,这三者之间似乎没有足够完整的比较。我希望根据两者之间的(客观)差异,将其转变为一个或多或少的规范线程。这三个,特别是关于: 平台支持 ; 操作系统,依赖项等 语言功能支持,就HTML5,CSS3和JavaScript而言。想一想“ HTML5视频是否可以正常工作,如果可以,可以使用哪些编解码器?” 非标准的额外功能,例如任务栏图标,弹出通知和OS渲染的菜单栏。 可扩展性 ; 例如。能够“插入”本机代码,与Node.js对话等。 建筑 ; 特别是影响每天作为开发人员使用的架构差异。 调试 ; 包括开发工具,与常用工具(如)的兼容性node-inspector等。 ... 等等。 在作为应用程序开发人员之间做出选择时,客观的,技术上的区别又有什么关系?

1
用于Delphi XE的SOAP服务器和客户端应用程序VCL + indy演示?
Delphi曾经包括用于Web服务的demos文件夹,但似乎不再包括它。 我只是尝试了Delphi 7演示项目(SOAPDMServerWAD一个完全没有UI的服务器,并且SOAPDMClient),但即使在Delphi 7中也无法使其正常运行。 如果有人曾经在Delphi XE或Delphi 2010中进行过类似的演示工作SOAPDMServerWAD+SoapDMClient,而与在Delphi XE中进行工作的旧演示相同,并且至少具有来自Delphi SOAP Server应用程序向导的最小UI,那将是完美的。 更新:该演示在Delphi 2010之前一直出现,但是使用了已经过时的WAD(web-app-debugger),我试图将其移植到新的Indy上runtime/web-app-development-harnessing-code,但是我似乎无法使其正常工作。该演示已运行,但该服务器没有用户界面,并且似乎没有运行任何HTTP服务器(已通过http://localhost:port/url 使用常规Web浏览器进行了测试。顺便说一下,尝试谷歌搜索一个演示,此URL出现,并且我不到一个小时前问,谷歌,这真是吓人。 Update2请参阅下面的我自己的答案,有关工作代码的链接即将发布。

16
最好的分布式暴力破解对策是什么?
首先,有一点背景知识:我正在为CodeIgniter实现auth + auth系统,这并不是什么秘密,到目前为止,我已经赢了(可以这么说)。但是我遇到了一个非常艰巨的挑战(大多数身份验证库都完全忽略了这一挑战,但是我坚持要正确处理):如何智能地应对大规模,分布式,可变用户名的暴力攻击。 我知道所有常用的技巧: 限制每个IP /主机尝试失败的次数,并拒绝违规者访问(例如Fail2Ban)- 由于僵尸网络变得越来越聪明,这种访问不再有效 将上述内容与已知的“不良” IP /主机(例如DenyHosts)的黑名单相结合-依赖于僵尸网络排名第一的僵尸网络,它们越来越不会 IP /主机白名单与传统身份验证结合在一起(对于动态IP用户和大多数网站上的用户流失率非常低) 在整个N分钟/小时的时间内对失败尝试的次数设置站点范围的限制,并在此之后的几分钟/小时内限制(挂起)所有登录尝试(问题是DoS攻击您成为僵尸网络的玩法) 强制性数字签名(公钥证书)或RSA硬件令牌,适用于所有没有登录/密码选项的用户(毫无疑问是坚如磐石的解决方案,但仅适用于封闭的专用服务) 强制执行超强密码方案(例如,> 25个带有符号的废话字符-再次对临时用户来说太不切实际) 最后,CAPTCHA(在大多数情况下都可以使用,但是使用户烦恼,并且对于坚定的,足智多谋的攻击者几乎毫无用处) 现在,这些只是理论上可行的想法。有很多垃圾想法使站点大开眼界(例如,对琐碎的DoS攻击)。我想要的是更好的东西。更好的是,我的意思是: 它必须具有抵御DoS和暴力攻击的安全性(+),并且不得引入任何新的漏洞,而该漏洞可能会使稍稍偷偷摸摸的bot继续在雷达下运行 它必须是自动化的。如果它需要人工来验证每个登录名或监视可疑活动,那么它将无法在实际情况下工作 它对于主流Web使用必须是可行的(例如,非程序员可以进行的高流失,高流量和开放式注册) 它不会将用户体验阻止到使临时用户感到烦恼或沮丧(并有可能放弃该网站)的程度 除非小猫真的很安全,否则它不能涉及小猫 (+)“安全”是指至少与偏执狂用户对密码保密的能力一样安全 所以-让我们听听吧!你会怎么做?您知道我没有提到的最佳做法吗(哦,请说您同意)?我承认我确实有自己的想法(结合3和4的想法),但是在让自己尴尬之前,我会让真正的专家讲话;-)

1
当两个链都在同一个包中结束时,为什么违反使用约束?
我有四个捆绑包,每个捆绑包仅包含一个清单。捆绑是 app哪个进口com.example.foo.fragment和com.example.bar foo 哪个出口 com.example.foo;uses:=com.example.foo.cfg foo.fragment这是foo该出口的一部分com.example.foo.fragment,com.example.foo.fragment.cfg;uses:=com.example.foo.fragment bar哪些com.example.bar进出口com.example.foo 捆绑级别的依赖图: app -> bar | | | v | foo | | v v foo.fragment 当我在JBoss AS 7.2中一次安装所有捆绑软件时,它们就可以正常工作。但是,如果我是在其他app捆绑软件之后安装捆绑软件,无论是第一次安装还是成功启动然后将其卸载之后,都会发生以下违反约束的情况: Caused by: org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource com.example.app [HostBundleRevision[com.example.app:0.0. 0]] because it is exposed to package 'com.example.foo.fragment' from resources com.example.foo [HostBundleRevision[com.example.foo:0.0.0]] and …

11
下载Android SDK组件以进行离线安装
是否可以在不使用SDK管理器的情况下下载Android SDK组件以进行离线安装?问题是我在无法控制的防火墙后面,并且两个站点的下载URL似乎都被阻止(引发连接被拒绝异常) https://dl-ssl.google.com/android/repository/repository.xml http://dl-ssl.google.com/android/repository/repository.xml Failed to fetch URL http://dl-ssl.google.com/android/repository/repository.xml, reason: Connection refused: connect

7
在ASP.NET MVC Html.ActionLink中包含锚标记
在ASP.NET MVC中,我试图创建一个包含锚标记的链接(即,将用户定向到页面以及页面的特定部分)。 我尝试创建的URL应该如下所示: <a href="/category/subcategory/1#section12">Title for a section on the page</a> 我的路由设置为以下标准: routes.MapRoute("Default", "{controller}/{action}/{categoryid}"); 我正在使用的动作链接语法是: <%foreach (Category parent in ViewData.Model) { %> <h3><%=parent.Name %></h3> <ul> <%foreach (Category child in parent.SubCategories) { %> <li><%=Html.ActionLink<CategoryController>(x => x.Subcategory(parent.ID), child.Name) %></li> <%} %> </ul> <%} %> 我的控制器方法如下: public ActionResult Subcategory(int categoryID) { //return itemList …
151 asp.net-mvc 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.