我在Windows和Mac上使用Visual Studio Code(VSC)0.10.11.出于这个问题的目的,我有一个小的JavaScript代码段:
'use strict';
const os = require('os');
console.log(os.homedir());
Run Code Online (Sandbox Code Playgroud)
我在Visual Studio Code(博客条目和Pluralsight Visual Studio代码JavaScript智能感知 - 对于那些拥有帐户的人)上关注了John Papa ,因此我希望VSC在打字时提供Intellisense和Quick fix选项.
在VSC上面的片段中识别console和log()(我使用胡佛,但它与Intellisense相同):
但不是os和homedir():
但所有4种类型都可用typings/main/ambient/node/index.d.ts.我知道不同之处require在于os,但在John Papa的视频课程中,VSC还为所需的模块提供了IntelliSense.不同之处在于John Papa tsd在我使用时使用typings.
所以我的问题是
我正在使用Phonegap开发移动应用程序,我需要国际化 - 显示不同语言的html页面.我现在明白这不是Phonegap问题 - 我必须将Web应用程序国际化.
亲切的问候,基督徒
--- 编辑 -
Phonegap自2.2.0以来有一个很好的Globalization插件.它涵盖了很多i18n功能.查看文档http://docs.phonegap.com/en/edge/cordova_globalization_globalization.md.html#Globalization
我将实现具有多个移动客户端和基于Web的服务器应用程序的分布式应用程序.因此,允许每个客户端和服务器生成表条目.因此,我需要所有参与者的唯一主键,我希望能够离线生成密钥.
生成在分布式环境中使用的主键的最佳方法是什么?对于类似的问题,请参阅使用SQLite和Azure SQL数据库作为中央存储的在线/离线多客户端移动应用程序的最佳主键策略是什么?
我知道UUID密钥生成对于这种情况来说是一个很好的方法,但是我想坚持使用名称为_id的密钥并按照Android平台的建议输入.
我不希望具有设备(也是服务器是设备)id和本地ID 的复合 ID.这种方法无论如何都不会很好,因为服务器应该能够为某个客户端生成条目.在这种情况下,我还必须在服务器上使用设备ID.
因此,我目前最喜欢的是使用数据类型long构建我的密钥(我之前在另一个项目中执行了此操作).我想我将使用高/低方法(例如参见这里的Hi/Lo算法是什么?)并且有一个键包括:
必须在首次启动移动应用程序时从服务器获取客户端ID.所以第一次启动需要网络连接.这可能是这种方法的缺点.在设备上拥有客户端ID时,我可以在没有网络连接的情况下生成密钥.
通常,高id是数据库的唯一值.当用户卸载应用程序并再次安装它时,我必须将他视为新客户端,并且必须给他一个新的客户端ID.否则我将不得不在服务器上保存当前的高ID,以便能够在丢失或重新安装时恢复它 - 不值得努力.
在Android上获取高ID的最佳方法是什么?自动增量键不是解决方案.我需要类似发电机功能的东西.它必须在自己的事务中执行(而不是"用户"事务).有没有人在Android上体验过这种方法,有人能指出我正确的方向吗?(我只找到了这个答案).
您在多客户端应用程序(在线和离线)中使用了哪些关键策略?
我正在使用Gradle和IntelliJ IDEA.通常我apply plugin: 'idea'用来生成IDEA项目文件.使用IDEA 12,我习惯使用JetGradle工具视图.
现在我更新到IDEA 13并且JetGradle工具视图消失了.当我使用旧的运行配置时gradle:run,IDEA告诉我:
Error running gradle:run:
Module 'X' is not backed by gradle.
Run Code Online (Sandbox Code Playgroud)
如何在没有工具视图的情况下激活IDEA 13中的gradle构建?我在CédricChampeau 发现了这条推文,但仍未能解决.我是否必须将简单的gradle项目转变为多模块项目或者什么?
更新
随着File - Import Project ...我可以导入的build.gradle文件,比我可以选择View - Tool Windows - Gradle,这是以前隐藏.这是要走的路吗?
我通过GPS定期收到位置更新,问题是第一次位置更新发生的时间 - 它只是很长.当用户在建筑物内时,这个时间甚至更糟.
因此,我正在寻找一些改善启动时间的策略(目前我不使用,getLastKnownLocation但我会).我开始阅读A Deep Dive Into Location以获得一些想法,并且现在有一些想法,我想和你讨论.
首先,上面提到的博客文章会通过设备上的每个位置提供程序进行查询getLastKnownLocation,但只会在它们不旧时并且在允许的准确度内时对它们进行查询.
这是我的第一个问题:我希望基于网络的位置立即可用,所以我会请求一个新的基于网络的位置,然后我会getLastKnownLocation从GPS提供商那里获得,如果最后的GPS位置是在由基于点网络的位置和半径精度然后我将采用GPS位置,无论它多大年纪.你怎么看?
在检查了最后一个已知位置后,我将开始GPS位置跟踪,因为我每2秒只需要它10米,我会使用
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2 * 1000, 10, this);
然而,我发现了一个模式(在幻灯片95和96的演示文稿内部是Epic:Android开发的最佳实践,首先他打开粗略和精细的位置(时间和距离变化为0,0)然后,当第一个事件发生时收到后,他切换到真正需要的更新频率.那么,当间隔设置为0时,第一个gps-update会更快吗?
与此模式相反,我将保持粗略更新,直到收到第一个GPS更新.你怎么看?
希望得到一些有趣的答案!
----------------更新----------------
我做了一些调查:我打开GPS并等待修复.然后我关掉GPS并开了50公里(31英里).然后我使用了A Deep Dive Into Location中的代码来获取所有内容getLastKnownLocation.我尝试了两次,首先关闭GPS,然后打开GPS,但没有修复:
1)关闭GPS我得到
- 提供商:网络,正确位置,准确度680m
- 提供商:被动(mProvider =网络),上述位置相同,同时如上
- 提供者:gps,位置null
所以我了解到当gps关闭时你就得不到了getLastKnownLocation.
2)打开GPS后
- 提供者:网络,正确位置,准确度652m
- 提供者:被动(mProvider =网络),与上面相同的位置,同上时间
- 提供者:gps,位置,因为它是2h之前的准确性12米,时间也早2小时
在这里,我了解到旧消息不会失效,即使它们显然是错误的.
在这种情况下算法运行正常,因为我在关闭GPS时移动了.但是如果我进房子怎么办?在那种情况下,即使它过时,2小时的GPS结果也会非常好.
我正在使用以下构建步骤开发一个打字稿项目:
我使用Gulp 4.0作为构建工具,并希望有一个监视任务,它应该触发测试(这意味着先前触发了lint和构建任务).目前,当发生错误(例如lint错误)时,监视任务终止.
这个问题是众所周知的并且易于解决.典型的解决方案是a)防止错误或b)修补管道行为.
a)对于gulp-tslint,我可以在他们的主页上使用这个配置:
gulp.task("invalid-noemit", () =>
gulp.src("input.ts")
.pipe(tslint())
.pipe(tslint.report("prose", {
emitError: false
}))
);
Run Code Online (Sandbox Code Playgroud)
但是当我包含该emitError标志时,会记录lint错误并执行所有后续gulp任务(构建,测试).
b)我也可以gulp-plumber手动使用或捕获错误(参见此处),但所有这些已知解决方案的行为都是相同的,执行以下gulp任务(构建,测试).
我想要的是任务链在发生错误后停止(在lint错误之后没有构建和测试),但是watch任务应该永远不会停止.我该怎么解决这个问题?观察者任务看起来像这样:
// watcher
gulp.task('watch', gulp.series('test', function doWatch() {
gulp.watch([
config.paths.sourcePattern,
config.paths.testPattern,
'gulpfile.js'
], gulp.parallel('test'));
}));
Run Code Online (Sandbox Code Playgroud)
你可以在gulpfile.js 这里找到完整的.
是否有Spring Roo插件的公共目录?
我只知道这个论坛主题Spring Roo社区AddOns,但我知道有很多其他插件可用,无论如何我没有找到一个列出它们的页面.例如,Grails有自己的插件门户.
我使用Spring 3.2与基于Java的配置,并在我的单元测试(JUnit 4.8.1)有一些问题.所以这是一个测试运行者:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={TestConfig.class})
public class ManualTest
{
@Autowired
...
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
Caused by: java.lang.IllegalStateException: CGLIB is required to process @Configuration classes. Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [testConfig]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:327)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:222)
Run Code Online (Sandbox Code Playgroud)
正如Spring博客所述,Spring 3.2正在内联CGLIB 3.那么为什么我会收到此错误?
我使用Gradle 1.3作为构建管理工具,使用STS作为IDE.当调用gradle eclipsegradle拉入依赖项两次时:一次作为普通jar,一次作为库:
首先作为普通罐子:

而不是作为图书馆:

在普通jar部分我仍然配置了Spring 3.1,而在库部分则有Spring 3.2.所以我删除了普通罐子,一切正常.
这是我的项目build.gradle
configurations
{
driver
}
dependencies
{
driver 'com.oracle:ojdbc6:11.2.0'
compile "org.springframework:spring-jdbc:$springVersion"
testCompile 'com.oracle:ojdbc6:11.2.0'
testCompile "org.springframework:spring-test:$springVersion"
testCompile "commons-dbcp:commons-dbcp:$dbcpVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.slf4j:slf4j-log4j12:$slf4jVersion"
}
sourceSets
{
main …Run Code Online (Sandbox Code Playgroud) 我爱上了Groovy,并试图越来越多地使用它.现在我必须使用Oracle Forms Jdapi库.使用这个库时,你写了很多这样的代码:
JdapiIterator progIterator = getWorkForm().getProgramUnits();
while(progIterator.hasNext()) {
ProgramUnit currProgUnit = (ProgramUnit) progIterator.next();
...
}
Run Code Online (Sandbox Code Playgroud)
和cource我想写
getWorkForm().programUnits.each {
...
}
Run Code Online (Sandbox Code Playgroud)
但是,我从未在现有Java库中编写Groovy接口,需要一些帮助.我知道Groovy 2.0的扩展方法,但在这种情况下,我正在考虑在不同的命名空间中具有相同名称的类,它只委托我想保留的函数.
提供each功能的最佳方法是什么,还有适用于集合的所有其他闭包?如果你指出我正确的方向,我将不胜感激!
什么:
使用jenkins我想定期处理来自SVN的已更改文件,并将处理的输出提交回SVN.
原因:
我们将二进制文件提交到SVN(我们正在使用Oracle Forms并提交fmb-Files).我创建了一个脚本,它将fmb导出到xml(使用Oracle的原始Fmb2XML工具),而不是将XML转换为我们也想提交的普通源.这让我们可以欣赏,查看变化,....
问题:
目前我只能检查所有内容,转换整个目录并将整个目录提交回SVN.但由于所有纯文本文件都是新生成的,因此它们在SVN中显示为已更改.我只想提交更改后的内容.
谁能帮我这个?