我刚刚完成了一个iPhone应用程序编程课程.作为课程的一部分,我看到了
@try
指令提供异常处理return nil
我问我是否应该对我编写的新代码使用异常处理(例如,如果我同时编写前端和逻辑代码,那么它们之间的通信就在我手中)但是我被告知不,我不应该使用新的异常码.(但他没有详细说明,然后课程继续进行,我想也许后来原因会变得清晰......)
当然例外优于return nil
?你可以捕获特定的类型,你不要忽略通常成功的函数的返回类型来忽略它们,你有可以记录的文本消息,它们允许你的代码专注于正常情况,因此更具可读性.为什么要使用例外.
所以你怎么看?我的教练是不是不使用Objective-C例外?如果是这样,为什么?
如何以编程方式将SVG文件转换为PDF?(在生成PDF之前,我需要在某些方面更改SVG,因此仅使用工具预转换它是不够的.)
理想情况下使用Java但Perl或PHP也可以.
显然我基本上考虑Apache FOP和Batik与Java.但无论我搜索多久,我都找不到如何做到的简单介绍.像SVGConverter这样的描述有"定义能够转换部分或全部GraphicContext的类的接口"的描述,但我真的不知道这意味着什么.
我有这种感觉必须有一个API来完成这个,非常简单,由FOP或Batik提供,但我现在无法找到它(或者它可能真的不存在.)
就我所需的支持的SVG功能而言,该文件有一些填充了一些线性渐变的路径.
理想情况下,如果我可以将SVG作为理想的DOM文档传递; 然后我将加载我的模板SVG文件,根据用户的指定进行更改,然后生成PDF.
我正在使用Maven和Spring Boot.我使用运行应用程序mvn spring-boot:run
.
https://flywaydb.org/documentation/plugins/springboot说应该在Spring Boot启动时调用Flyway.
所以我的pom.xml包含对Flyway的依赖.
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>4.1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我第一次运行Maven命令时它下载了Flyway的东西,所以我认为依赖是有效的.
我有以下文件:
./src/main/resources/db/migration/V123__foo.sql
./src/main/resources/application.properties
Run Code Online (Sandbox Code Playgroud)
上面的文章暗示它应该"正常工作",但我不明白它会在哪里找到数据库的JDBC URL.所以我在application.properties
文件中添加了以下内容:
flyway.url=jdbc:postgresql://localhost:5432/services?user=postgres&password=postgres
flyway.enabled=true
Run Code Online (Sandbox Code Playgroud)
当Spring Boot启动(并加载并使我的Web应用程序可用)时,Flyway没有日志.我认为Flyway被忽略了.
我能做什么?或者,更一般地说,我将如何自己调试此问题?
我有一个Web应用程序,背景图像是深色.它的大小也超过100KB.(我真的不太欣赏背景图片那么大,但这不是我能做的任何事情,或者这个问题的主题..另外它是一个JPEG!..网页设计来自客户和我尽管我有抗议活动,但还是要保持原样!)
由于背景图像主要由深色(近黑色)组成,因此文本为白色.
麻烦的是,用户第一次进入网页时,背景为白色(默认浏览器背景),文本也是白色,因此您无法阅读任何文本.只有在加载背景图像后,才能阅读文本.(该页面加载一个CSS文件,这会加载另一个CSS文件,并在此指定背景图像.因此,在UMTS移动互联网连接等高延迟连接上,这可能需要几秒钟.)
有没有办法说"这个页面的背景应该有一个特定的背景图像(如现在),但另外应该有黑色,即黑色将显示,直到背景图像已加载,或如果它没有加载"?以这种方式,用户将能够立即阅读文本.我确定我已经看到这样做了(或者是表格单元格背景?)但是唉不记得谷歌搜索也没有帮助.
目前的CSS是:
body {
background: transparent url(bg.jpg) top left no-repeat;
}
Run Code Online (Sandbox Code Playgroud)
我在"背景"属性中添加了"黑色",但这没有帮助.
在Oracle的SQL*Plus中,SELECT的结果以表格方式显示.有没有办法以键值方式显示行(如MySQL的\G
选项)?
我正在处理的数据库(模式不是由我定义的)有一堆名为eg YN_ENABLED
(YN = yes no)的列CHAR(1)
.因此,当我进行查询时,我会得到一个结果
ID_MYTABLE Y Y Y
------------ - - -
3445 Y N Y
Run Code Online (Sandbox Code Playgroud)
因此,哪些列具有哪些值(没有在另一个窗口中打开架构)并不是很清楚.
我正在 AWS 的 ECS 上通过 Docker 运行任务。该任务执行一些受 CPU 限制的计算,我想并行运行这些计算。我启动了一个线程池,其中指定的线程数Runtime.getRuntime().availableProcessors()
在我的 PC 上本地运行良好。出于某种原因,在 AWS ECS 上,即使有多个内核可用,它也始终返回 1。因此,我的计算是串行运行的,不使用多核。
例如,现在,我有一个在“t3.medium”实例上运行的任务,根据docs应该有 2 个内核。
当我执行以下代码时:
System.out.println("Java reports " +
Runtime.getRuntime().availableProcessors() + " cores");
Run Code Online (Sandbox Code Playgroud)
然后在日志中显示以下内容:
Java reports 1 cores
Run Code Online (Sandbox Code Playgroud)
我没有cpu
在 ECS 的任务定义中指定参数。我看到在 ECS 管理控制台中的任务列表中,有一列“CPU”为我的任务读取 0。我还注意到,在实例(= VM)列表中,它将“可用 CPU”列为 2048,这可能与 VM 有 2 个内核的事实有关。
我希望我的 Java 程序能够看到 VM 必须提供的所有内核。(当 Java 程序在没有 Docker 的计算机上运行时通常就是这种情况)。
我该怎么做?
我有一个奇怪的问题.我生成了一个HTML页面,托管在http://www.x.com/stuff上提供,其中包含
<head>
<link type="application/atom+xml" rel="alternate" href="/stuff/feed"/>
..
</head>
Run Code Online (Sandbox Code Playgroud)
结果是:
/stuff/feed
的源,以便按预期工作feed://http//www.x.com/stuff/feed
所以问题是,它会附加feed://
到URL的前面,然后取出:
后面的冒号http
.我知道这feed:
是HTTP,所以也许添加它不是一个大问题.
但无论如何,事实是,Firefox生成的我的<link>
标签不起作用.
我曾考虑把网址是绝对的,但我还没有发现任何证据表明,这些网址必须是绝对的,也不是我能理解为什么会是这样.由于各种原因,我的代码生成绝对URL会很不方便.如有必要,我能做到这一点,但我希望看到的证据(如规格,或Mozilla错误报告)认为有必要做我的代码之前凌乱
你怎么看?有谁知道URL应该是绝对的任何证据?或者我做错了什么?这似乎是一个简单/明显的标签,没有什么可以出错,但我无法让它工作.
在Java中,从TransformerFactory
用于创建对象到处理XSLT,它具有以下方法:
newTransformer
它创建了 Transformer
对象,可以将XML转换为结果.newTemplates
它创建了Templates
可以创建的对象Transformer
.Transformer
明确说明的文档:
变压器可以多次使用.
我的应用程序使用相同的XSLT处理各种不同的XML.在程序开始时,我用newTransformer
它创建一个Transformer
然后重新使用它来处理所有XML(确保它是同步的,所以我只在一个线程中使用它;并reset()
在每次处理之前调用它的方法.).
这样我就不会为每个XML I进程重新编译XSLT.
那么这个newTemplates
和Templates
对象的重点是什么?我应该使用它,并Transformer
为每个XML 创建一个新对象吗?
我有我的Wicket 1.4代码,有一个链接下载以编程方式生成的文件:
protected class MyWebResource extends WebResource {
public IResourceStream getResourceStream() {
.....
return new StringResourceStream(myString, "text/plain");
}
}
ResourceLink<?> downloadLink =
new ResourceLink<Object>("downloadLink", new MyWebResource());
Run Code Online (Sandbox Code Playgroud)
一切都很好.现在我升级到Wicket 1.5.现在WebResource
不再存在了.
我在网上搜索了很多年,当然这必须是一个简单的问题,有一个简单的解决方案吗?唉,我找不到.
我们有一个程序,它可以持续运行,执行各种操作,并更改数据库中的某些记录.这些记录使用Lucene编制索引.因此,每次我们更改实体时,我们都会执行以下操作:
indexWriter.deleteDocuments(..)
然后使用then 更新Lucene中的该实体indexWriter.addDocument(..)
.这很好,但随着时间的推移,indexWriter.commit()
需要越来越多的时间.最初它需要大约0.5秒,但在几百次此类交易之后需要超过3秒.如果脚本运行时间更长,我不怀疑它会花费更长的时间.
到目前为止,我的解决方案是注释掉indexWriter.addDocument(..)
和indexWriter.commit()
,并且indexWriter.deleteAll()
在一个Lucene transction/IndexWriter(大约14秒内大约250k文档)中首先使用然后重新添加所有文档来重新创建整个索引.但这显然违背了数据库和Lucene提供的事务方法,它使两者保持同步,并使我们使用Lucene搜索的工具的用户可以看到数据库的更新.
我可以在14秒内添加250k文档,但添加1个文档需要3秒钟,这似乎很奇怪.我做错了什么,我该如何改善这种情况?
java ×4
html ×2
amazon-ecs ×1
atom-feed ×1
css ×1
docker ×1
feed ×1
firefox ×1
flyway ×1
indexing ×1
lucene ×1
nserror ×1
objective-c ×1
oracle ×1
pdf ×1
performance ×1
rss ×1
saxon ×1
spring-boot ×1
sqlplus ×1
svg ×1
wicket ×1
wicket-1.5 ×1
xml ×1
xslt ×1