在某些时候,我的光标从垂直条变为下划线.我必须按下一些神奇的键组合.知道怎么改回来吗?
我现在使用Apache CXF作为.NET服务的Web服务客户端来绕过NTLM身份验证.它工作得很好,但我想知道为什么我似乎无法设置Web服务目标端点.CXF似乎在运行时希望WSDL出于某种奇怪的原因 - 不确定.它需要来自WSDL的物理端点,我认为它在测试环境中工作正常,但在部署时它肯定会改变.
这里有一些代码来演示:
MyWebServices service = new MyWebServices ();
MyWebServicesSoap port = service.getMyWebServicesSoap12();
// Turn off chunking so that NTLM can occur
Client client = ClientProxy.getClient(port);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(36000);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
port.doSomethingUseful();
Run Code Online (Sandbox Code Playgroud)
同样,我无法在CXF客户端API中看到允许我设置服务端点的地方.不是我能看到的.在这种情况下,目标是http://localhost/integration/webservices/mywebservices.asmx,但我可以在任何地方.当然这个行人问题以某种方式解决了?
我写了第一个Project Euler问题的答案:
添加1000以下的所有自然数,即3或5的倍数.
我遇到的第一件事是:
(1 until 1000).filter(i => (i % 3 == 0 || i % 5 == 0)).foldLeft(0)(_ + _)
Run Code Online (Sandbox Code Playgroud)
但它很慢(需要125毫秒),所以我重写了它,只是想到'另一种方式'而不是'更快的方式'
(1 until 1000).foldLeft(0){
(total, x) =>
x match {
case i if (i % 3 == 0 || i % 5 ==0) => i + total // Add
case _ => total //skip
}
}
Run Code Online (Sandbox Code Playgroud)
这要快得多(只有2毫秒).为什么?我猜第二个版本只使用Range生成器,并没有以任何方式显示完全实现的集合,一次完成所有这一切,更快,内存更少.我对吗?
这里是IdeOne上的代码:http://ideone.com/GbKlP
我发现自己有点难题.我正在构建一个新的,现代的,基于Web的应用程序,我不仅需要选择一种技术,我必须选择一种架构.我认为现在可以说这是一个艰难的选择,因为我们有比5年前更多的选择.
首先,我已经决定Scala将成为服务器端语言.我有我的理由,这不是Scala与XYZ的帖子 - 已经做出了选择.我也已经完成了这样一个事实,即我们在网络上,在云端,所以我甚至都不会试图摆脱Javascript.也许我会使用CoffeeScript,但我将编写浏览器托管的代码.
现在,假设Scala,大多数人可能会跳到Play!或提升.可能会玩!鉴于它得到了Typesafe的支持,但我认为我还有另一个需要首先回答的更重要的问题.什么是建筑?如果我想要一个非常富有的客户端,我真的需要的不仅仅是一个简单的无状态服务层,因为我们还有大量的Javascript吗?我不确定它会是一个单页的webapp,但像BlueEyes这样的东西可能是正确的选择吗?举起并玩!更重要的是他们承担更多的责任.他们生成HTML,对于这些框架,浏览器非常愚蠢.路由,验证,Ajax和Comet支持等都是服务器端的问题.由于浏览器今天功能更强大,因此通常通过从服务器生成和注入Javascript来实现丰富的交互式功能.
我的问题归结为这个.我是否选择传统的电梯/游戏!服务器承担客户端和服务器责任的框架,还是使用富客户端+ REST风格的服务层,客户端在应用程序中扮演更重要的角色?客户端处理路由,验证,绑定等的架构.我看到像KnockOut.js,Sammy.js,Sproutcore,Backbone.js这样的框架......我不打算将它们全部列出但只需要从客户端的角度来看,他们都采用了一些这些框架功能.
如果我选择Play!,我会放弃一些丰富的UI吗?那些我想为集成/混搭/移动目的提供服务API的情况呢?玩怎么玩!在这帮我?显然BlueEyes在这里发挥得很好.我想我无论如何都需要一个服务层.
如果我选择BlueEyes,我的客户端代码是什么样的?我需要有多少基于Javascript的框架才能满足我的需求?我仍然希望在我的服务层中使用大部分业务逻辑,但路由,绑定......所有UI内容都是客户关注的问题.
我不确定答案是对还是错,但我认为这个社区可能会指出我正确的方向.
我也把它发布到我的博客http://www.andyczerwonka.com/picking-a-web-technology-isnt-as-easy-as-it-u-45228
我有以下代码:
val xs = List(('a', 1), ('a', 2), ('b', 3), ('b', 4))
Run Code Online (Sandbox Code Playgroud)
我想把它变成一张地图.例如Map('a' -> Seq(1,2), 'b' -> Seq(3,4)).所以我继续写转换:
xs.groupBy(_._1) map {
case (k, v) => (k, v.map(_._2))
}
Run Code Online (Sandbox Code Playgroud)
为什么地图后的括号需要是a {.当我开始时,我假设我可以做以下事情:
xs.groupBy(_._1).map(case (k, v) => (k, v.map(_._2)))
Run Code Online (Sandbox Code Playgroud)
但那不编译.
使用Apache POI,我能够找到一个命名范围:
XSSFName[] ranges = new XSSFName[workbook.getNumberOfNames()];
for (int i = 0; i < _wb.getNumberOfNames(); i++)
ranges[i] = workbook.getNameAt(i);
Run Code Online (Sandbox Code Playgroud)
有了它,我能够为AreaReference进行单元格化:
AreaReference area = new AreaReference(ranges[0].getRefersToFormula());
Run Code Online (Sandbox Code Playgroud)
最后我可以获得该范围内的所有单元格:
CellReference[] cells = area.getAllReferencedCells();
Run Code Online (Sandbox Code Playgroud)
一切正常.Burt我有一个用例,我必须重新定义范围覆盖的区域.有没有办法做到这一点?我注意到该range.getRefersToFormula()方法返回一个String,类似于MySheet!$A$1:$B$8.有一个range.setRefersToFormula(String formula),但我必须相信除了自己编写excel范围公式解析器之外还有其他方法.有没有办法生成一个AreaReference设置为Cell更安全类型的引用?我是否真的必须生成一个String代表新范围?我认为会有API在某处帮助我,但我似乎无法找到它.
更新
我发现了一些API,但它似乎不起作用,至少它没有正确保存.这就是我做的.
AreaReference newArea = new AreaReference(firstCell, lastCell);
ranges[0].setRefersToFormula(newArea.formatAsString())
Run Code Online (Sandbox Code Playgroud)
它似乎正确设置了公式,但是当我将工作簿流回磁盘时,范围完全错误.
这个问题涉及到euler项目的素数和Stream.view,但有一点扭曲.我想计算低于200万的所有素数的总和.我创建了一个素数生成器,定义为:
lazy val primes: Stream[Int] = 2 #:: Stream.from(3).filter(i =>
primes.takeWhile(j => j * j <= i).forall(i % _ > 0))
Run Code Online (Sandbox Code Playgroud)
我写了两个测试,一个使用Stream [Int] #foldLeft,另一个使用Stream [Int] #sum:
@Test
def testEuler010a {
primes.view.takeWhile(_ < 2000000).foldLeft(0L)(_ + _) mustEqual 142913828922L
}
@Test
def testEuler010b {
primes.view.takeWhile(_ < 2000000).sum mustEqual 142913828922L
}
Run Code Online (Sandbox Code Playgroud)
testEuler010a给我正确的答案,而testEuler010b没有回答1179908154.我希望这Stream[Int]#foldLeft(0L)(_ + _)会是相同的Stream[Int].sum,但事实并非如此.即使我用a实现了Stream toList(),我也有同样的差异.这些方法应该给出相同的结果是不正确的假设吗?
我正在使用Scala 2.9.1.final.
假设我有一个看起来像这样的列表:
List(0,5,34,0,9,0,0,0)
Run Code Online (Sandbox Code Playgroud)
我想最终得到的是:
List(0,5,34,0,9)
Run Code Online (Sandbox Code Playgroud)
我正在删除所有尾随的零.有没有一种方法,比如:
list.trimRight(_ == 0)
Run Code Online (Sandbox Code Playgroud)
会做到这一点?我可以从头开始编写它,但在我看来,这是std集合中的东西吗?
我提出了:
list.take(list.lastIndexWhere(_ != 0) + 1)
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
假设我有两张看起来像这样的地图.
val m1 = Map(1 -> "One", 2 -> "Two", 3 -> "Three")
val m2 = Map(2 -> 2.0, 3 -> 3.0, 4 -> 4.0)
Run Code Online (Sandbox Code Playgroud)
我想基于键获取交集并返回表示合并值的元组.结果看起来像这样.
Map(2 -> (Two,2.0), 3 -> (Three,3.0))
Run Code Online (Sandbox Code Playgroud)
我想我可以诉诸类似的东西
val merged = m1 collect {
case (key, value) if m2.contains(key) => key -> (value, m2(key))
}
Run Code Online (Sandbox Code Playgroud)
但是,没有"更惯用"的方式吗?我的直觉与我的相似之处Set
val merged = m1.intersect(m2)
Run Code Online (Sandbox Code Playgroud) 有没有办法将Microsoft Access代码批量导出到文件?我看到我可以一次导出一个文件,但有数百个,我会一整天都在这里.在任何地方都没有"全部导出"或多选导出?
我已经打电话了gc.setAntialias(SWT.ON);,它什么也没做。按照那个方法,它应该可以工作。
Javadoc 指出:
将接收器的抗锯齿值设置为参数,该参数必须是 SWT.DEFAULT、SWT.OFF 或 SWT.ON 之一。
它对我不起作用,我正在一个简单的画布上作画。
有相关问题,有关业务处理$ HTTP,但我想稍微详细说明.我希望我的控制器能够使用类似于Angular $ http API的API执行服务调用:
$scope.login = function(user) {
securityService.login(user).success(function(data) {
$scope.data = data;
}).error(function(data) {
$scope.error = data;
});
};
Run Code Online (Sandbox Code Playgroud)
这是一个很好的可读API.从表面上看,我在服务API中需要做的就是:
return {
name : 'User Service',
login : function(user) {
return $http.post("/api/login", user);
}
};
Run Code Online (Sandbox Code Playgroud)
太棒了,它回报了承诺success和error消息随之而来.但是......如果我想处理服务中的成功和失败案例怎么办?我想维护漂亮,可读的服务API.在这种情况下,也许我想保留用户,以便我可以公开像securityService.currentUser()`securityService.isLoggedIn()'这样的方法.
我尝试了$http.post().then(...)promise API,但那些返回整个HTTP响应.同样,我想将HTTP与服务隔离开来,并维护一个类似的具体回调API.
假设我有以下菜单结构:
<li class="dropdown"><img role="button" class="dropdown-toggle" data-toggle="dropdown" ng-src="{{avatarUrl}}" />
<ul class="dropdown-menu pull-right" role="menu">
<li ng-hide="user"><a ng-click="openLoginDialog()">Login</a></li>
<li ng-show="user"><a ng-click="logout()">Logout</a></li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
我得到了正确的菜单,但因为我正在使用ng-show/ng-hide,当我user = false;在控制器中以编程方式进行更改时,会出现登录菜单.我知道为什么会发生这种情况,但是我不确定在使用Angular来防止它时采取什么方法.我尝试了ng-repeat:
<li class="dropdown"><img role="button" class="dropdown-toggle" data-toggle="dropdown" ng-src="{{avatarUrl}}" />
<ul class="dropdown-menu pull-right" role="menu">
<li ng-repeat="action in actions"><a ng-click="{{action.command}}">{{action.name}}</li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
有:
$scope.actions = [ {
name : "Login",
command : "openLoginDialog()"
}, {
name : "Logout",
command : "logout()"
} ];
Run Code Online (Sandbox Code Playgroud)
但是使用该策略,单击菜单项时没有任何反应.我不确定适当的Angular方法对于我确定的行人用例是什么.
scala ×6
javascript ×3
angularjs ×2
java ×2
apache-poi ×1
architecture ×1
client-side ×1
cxf ×1
draw2d ×1
eclipse ×1
excel ×1
lift ×1
ms-access ×1
performance ×1
sublimetext3 ×1
swt ×1
web-services ×1