小编Pie*_*ter的帖子

Objective-C中的方法重载?

据我所知,Objective-C不支持方法重载.在Objective-C中可以替代什么?或者我应该总是使用不同的方法名称?

overloading objective-c ios

128
推荐指数
3
解决办法
4万
查看次数

URL缩短程序如何在未过期时保证唯一的URL?

关于URL缩短器以及互联网上其他地方的stackoverflow,这里有很多问题,例如

如何编写URL缩短器代码?

URL缩短器如何计算URL密钥?他们是如何工作的?

http://www.codinghorror.com/blog/2007/08/url-shortening-hashes-in-practice.html

但是,有一件事我不明白.例如,http://goo.gl目前使用四个字符.但是,他们声称他们的短网址不会过期.正如关于编码恐怖的文章所述,如果他们无法回收URL,唯一可能的解决方案是在某一点上添加一个额外的角色.

好的,到目前为止一切顺利.4个字符表示大约1500万个唯一地址.对于像谷歌地图这样的东西,我认为这不是很多,如果你不能回收,我猜他们很快就用完了可用的地址.

现在对于我没有得到的部分.在分发地址时,它们开始耗尽未使用的地址.他们必须检查是否尚未发布新生成的地址.这种情况发生的可能性和地址已经在使用中增加了.当然,直接的解决方案是一遍又一遍地生成一个新的URL,直到他们找到一个免费的URL,或直到他们生成了所有150万个替代品.然而,这肯定不是他们实际上如何做到这一点,因为这将是非常耗时的.那么他们如何管理呢?

此外,可能有几个访问者同时要求一个简短的URL,因此他们也必须进行一些同步.但是当需要添加第五个角色时应该如何管理这种情况?

最后,在对http://goo.gl中的URL如何工作进行一些研究时,我当然多次在Google地图上为地图请求了一个简短的URL.它们都不会被使用.但是,当Google严格执行一旦发布的URL未到期的策略时,这意味着系统中存在大量的休眠URL.我再次假设谷歌(以及其他服务)也提出了解决这个问题的方法.我可以设想一个清理服务,它可以回收创建后48小时内未访问过的URL,或者在第一周内回收不到10次的URL.我希望有人也能对这个问题有所了解.

简而言之,我得到了URL缩短器的一般原则,但是当这些URL无法过期时,我发现了几个问题.有谁知道上面提到的问题是如何解决的,还有其他问题吗?


编辑

好吧,所以这篇博客文章揭示了一些事情.这些服务不会随机生成任何内容.它们依赖于底层数据库的自动增量功能,并对结果id应用简单转换.这消除了检查id是否已经存在(它没有)并且数据库处理同步的需要.这仍然使我的三个问题中的一个没有答案.这些服务如何"知道"链接是否在创建后实际使用?

url-shortener

17
推荐指数
1
解决办法
2万
查看次数

Fluent NHibernate将引用映射到不是ID列的列

我正在使用Fluent Nhibernate 1.0和Sharp Architecture 1.0

目前我正在尝试将引用映射到ZipCode类.我映射的当前类具有ZipCode列,但是zipcode类比基本zipcode所需的更广泛,因此这背后的原因.(基本上Zipcode类包含lat.和long.UTC时区等,所有内容都是readonly)

这是我的映射

            References<ZipCode>(x => x.ZipCodeRadius, "ZipCode")
            .Column("ZipCode")
            .Cascade.None()
            //.ForeignKey("FK_ZipCode")
            .ReadOnly();
Run Code Online (Sandbox Code Playgroud)

当我运行我的测试时,我收到了这个错误.

初始化方法CountryRepositoryTests.SetUp抛出异常.System.Data.SqlClient.SqlException:System.Data.SqlClient.SqlException:列'ZipCode.ZipCodeID'与外键'FK8C1490CB2993CD44'中引用列'Address.ZipCode'的数据类型不同.无法创建约束.查看以前的错误..

我尝试添加ForeignKey和Constrained lambdas,但它们似乎没有添加任何内容.

邮政编码表有一个ID,但我不想映射到那个,而是我想映射到zipcode表的zipcode列,回到地址表的zipcode列.

如果有人有任何想法如何解决这个问题,我将非常感激.

请注意,正如我上面所做的那样,我不能简单地引用zipcode表并删除地址上的属性,因为zipcode表是只读的.

这是ZipCodeRadius类.

[NotNullNotEmpty, Length(Max = 5)]
public virtual string ZipCodeName { get; set; }
[NotNullNotEmpty, Length(Max = 1)]
public virtual string ZipType { get; set; }
[NotNullNotEmpty, Length(Max = 10)]
public virtual string TimeZone{ get; set; }

public virtual int UTC  { get; set; }

public virtual double Latitude { get; set; }
public virtual double Longitude { get; …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent-nhibernate s#arp-architecture

8
推荐指数
1
解决办法
6676
查看次数

将标签添加到格子条形图

我想将每个条形的值放在每个条形图顶部的条形图(晶格)中.但是,我找不到任何可以实现此目的的选项.我只能找到轴的选项.

r bar-chart lattice

8
推荐指数
1
解决办法
5768
查看次数

使用nls在R中拟合曲线

我试图在下面的数据(尾部)上拟合一条曲线:

 [1]   1   1   1   1   1   1   2   1   2   2   3   2   1   1   4   3   2  11   6   2  16   7  17  36
[25]  27  39  41  33  42  66  92 138 189 249 665 224 309 247 641 777 671 532 749 506 315 292 281 130
[49] 137  91  40  27  34  19   1

我在R中使用以下函数来完成此任务:

nls(y~a x exp(-b*x ^ 2),start = list(a = 1,b = 1),trace = TRUE)

但是,我收到以下错误:

3650202:1 1

numericDeriv中的错误(表单[[3L]],名称(ind),env):评估模型时产生的缺失值或无穷大

当使用以下,x和y的人工值时,一切正常:

Y = …

r curve-fitting nls

7
推荐指数
1
解决办法
2万
查看次数

从nHibernate HiLo切换到GUID

是否可以从HiLo切换到GUID.comb?据我所知,后者结合了HiLo的优势,即管理Ids客户端而不是需要调用DB来获取新的Id,其优点是不可能耗尽Ids.

目前我们遇到的问题是HiLo生成ID如此之大,Int32(这应该是Int64,但这更像是我前任的WTF)还不够大.我们可以改为Int64,但这只是意味着我们将在以后而不是更快地遇到问题.

由于Ids不需要有意义,因此切换到GUID似乎是合乎逻辑的.然而,由于我从未尝试过这样的转换,我想知道这里是否有人可以帮助我评估这样的影响.

nhibernate guid hilo

6
推荐指数
1
解决办法
965
查看次数

将存储库注入ASP.NET控制器的最佳方法是什么?

我们有一个用ASP.NET MVC编写的项目,我们使用NInject将存储库注入控制器.目前我们正在使用属性和Inject-attribute来注入存储库,这很好用:

[Inject]
public IMyRepository MyRepos {get;set;}
Run Code Online (Sandbox Code Playgroud)

注入的另一种方法是使用以下方式"手动"执行NInjectServiceLocator:

var myRepos = NInjectServiceLocatorInstance.Resolve<IMyRepository>();
Run Code Online (Sandbox Code Playgroud)

现在我想知道以下内容:第一种方法要求所有存储库都列在控制器的顶部(当然不一定在顶部,但它是最合理的位置).每当发出请求时,NInject都会实例化每个存储库.无论是否在特定Action内实际需要所有存储库,都会发生这种情况.

使用第二种方法,您可以更精确地控制实际需要哪些存储库,因此在创建控制器时可能会节省一些开销.但是您可能还必须包含代码以在多个位置检索相同的存储库.

那么哪一个会更好?是否拥有一堆存储库属性更好还是更好地解决在您需要的时间和地点实际需要特定操作的存储库?注入"无用"存储库是否会导致性能下降?那里有(甚至;-)更好的解决方案吗?

asp.net-mvc ninject

5
推荐指数
1
解决办法
1631
查看次数

将所有 gradle 构建工件组装到一个目录中

我们正在从 Maven 迁移到 Gradle,并且正在努力解决一件事。我们有一个基于 Maven 的 POM 的多项目 Gradle 项目。大部分工作正常,但我们找不到收集 WAR 文件和 ZIP 文件的方法,这些文件是构建子项目的结果。每个子项目代表一个微服务。我们已经找到(也在 Stackoverflow 上)将所有 jar 和第三方库收集到一个目录中的方法。但是,我们正在寻找一种方法来收集每个微服务的资源和库。在 Maven 中我们做了这样的事情:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>Publish/</outputDirectory>
                        <artifactItems>
                            <artifactItem>
                                <groupId>....</groupId>
                                <artifactId>...</artifactId>
                                <version>${project.version}</version>
                                <type>zip</type>
                            </artifactItem>
                            <artifactItem>
                                <groupId>....</groupId>
                                <artifactId>...</artifactId>
                                <version>${project.version}</version>
                                <type>war</type>
                            </artifactItem>
Run Code Online (Sandbox Code Playgroud)

我希望最终得到一个可以找到的目录:

project1.war
project2.war
project3.zip
etc.
Run Code Online (Sandbox Code Playgroud)

multi-project gradle

5
推荐指数
1
解决办法
6167
查看次数

无法在 30000 的超时时间内关闭阶段值为 2147483647 的 1 个 bean:[org.springframework.jms.config.internalJmsListenerEndpointRegistry]

我正在尝试关闭运行 1 个 @JmsListener 的 Java 应用程序。我等多久并不重要,但它永远不会停止。

它永远挂在 DefaultMessageListenerContainer 的 doShutdown 上。

线程是

"DefaultMessageListenerContainer-1@6759" prio=5 tid=0x51 nid=NA waiting
  java.lang.Thread.State: WAITING
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Thread.join(Thread.java:1252)
      at java.lang.Thread.join(Thread.java:1326)
      at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:107)
      at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
      at java.lang.Shutdown.runHooks(Shutdown.java:123)
      at java.lang.Shutdown.sequence(Shutdown.java:167)
      at java.lang.Shutdown.exit(Shutdown.java:212)
      - locked <0x20a> (a java.lang.Class)
      at java.lang.Runtime.exit(Runtime.java:109)
      at java.lang.System.exit(System.java:971)
      at my.package.MainApplication.stop(MainApplication.java:124)
Run Code Online (Sandbox Code Playgroud)

我正在运行 Spring 4.3.19 和 Spring Boot 1.5.16

java activemq-classic spring-jms spring-boot

5
推荐指数
0
解决办法
1238
查看次数

Kubernetes 内高可用的 ActiveMQ

我们有一个使用面向服务的架构的应用程序。它使用 Apache ActiveMQ 作为消息总线。我们在两个地理位置不同的数据中心的虚拟机上安装了服务器应用程序。此外,安装在远程设备上的客户端应用程序通过消息总线与服务器应用程序进行通信。除此之外,还有一些 Web 应用程序允许操作员与服务器应用程序交互或控制远程设备上的操作。Web 应用程序使用 websocket 和 HTTP 的组合来与服务器进行通信。当然,所有连接都是加密的。

我们正在考虑将服务器应用程序迁移到 Kubernetes 或 Swarm 中托管的容器。这将帮助我们简化部署。大多数情况下,我们可以在各种网站和文档页面上找到有用的信息。然而,对于 ActiveMQ,我们仍然发现很难找到正确的设置。

我们当前的设置使用代理网络,因此确保高可用性和可扩展性。可扩展性(目前)并不是真正必要的。单个代理可以轻松处理流经系统的消息数量。主要是因为可用性要求,我们有多个代理(每个虚拟机一个)。

在 Kubernetes 中运行 ActiveMQ(或可能的 Apache Artemis)时,满足这些要求的好方法是什么?我们可以运行单个 POD,并让 Kubernetes 来处理 HA 功能。但是客户如何知道 ActiveMQ-POD 已失效并且 Kubernetes 已启动一个新的副本(可能在另一个数据中心)?

当然,我们可以部署多个 POD,将其配置为代理网络,类似于我们现在的网络。但是,我们可能还需要为每个 POD 生成证书,以使客户端和服务器之间的加密正常工作。

理想情况下,我们只有一个证书连接到我们的整套应用程序在其后面运行的单个 DNS 名称。证书将在 HAProxy 或类似的东西中配置。在内部,我们将仅使用自签名证书,该证书将成为可交付成果的一部分。通过这种方式,我们可以以完全相同的方式将相同的应用程序部署到每个客户视野,唯一的变量是一个 SSL 证书,用于加密从外部到入口点的流量。

activemq-classic kubernetes activemq-artemis

5
推荐指数
0
解决办法
1302
查看次数

安装Windows服务失败:服务已存在

我正在尝试重新安装我用C#编写的服务.这是第一次有效.我使用installutil来处理安装,服务列表中出现了服务,我可以启动它.然后我对代码进行了一些更新并卸载了服务.在弄清楚我必须关闭服务窗口后,服务似乎已经消失(即成功卸载).但是,在尝试再次安装服务时,我收到消息说:

System.ComponentModel.Win32Exception: The specified service already exists
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪,因为我在服务窗口中看不到它.我终于认为在删除有关我的服务的注册表项后发现了问题,但不幸的是,这并没有解决任何问题.

此外,再次卸载对解决问题没有太大作用,因为这会导致矛盾的消息:

System.ComponentModel.Win32Exception: The specified service does not exist as an installed service
Run Code Online (Sandbox Code Playgroud)

我应该相信什么?该服务是否存在?我觉得自己像一个物理学家试图弄清楚猫是死了还是活着.我希望这里有人能够帮助解决这个问题.

c# windows-services installutil

4
推荐指数
2
解决办法
1万
查看次数

字符串访谈

如果我有如下代码是否可行?

String b = "abc";
String c = "def";
for (int i=0;i<100000000;i++){
    String a = b + c; // i got a different object , ahhh!
}
Run Code Online (Sandbox Code Playgroud)

它如何影响系统?我们可以改进它吗?

不遵循字符串池的概念,因为我创建的字符串没有新的运算符我以1个对象结束,结果它创建了100000000个对象(我错了)但我没有unserstand如何(用==运算符检查))

例如

final String b = "abc";
final String c = "def";
for (int i=0;i<100000000;i++){
    String a = b + c; //same object referred again and again
}
Run Code Online (Sandbox Code Playgroud)

给出相同的对象,我能够用==运算符检查

这不是示例遵循字符串池概念吗?为什么我的String变量的最终结果会改变不同对象或同一对象的结果.

java string

2
推荐指数
1
解决办法
544
查看次数