我一直在使用PDFTKServer OSX pre 10.11超过一年没有任何问题在命令行上运行命令.
安装OSX 10.11 beta后,我无法再PDFTK在命令行上运行任何Server命令.它不会抛出任何错误,我尝试执行的所有命令都会无限期地挂起.
我PDFTK一直从服务器网站下载的pkg安装:
https://www.pdflabs.com/tools/pdftk-server/
我也尝试使用Homebrew从源代码安装.安装工作,但我得到相同的结果,命令只挂在终端:
我已经通过他们的反馈助手应用程序向Apple发送了投诉,该应用程序在两个月前安装测试版时安装,没有响应.
我被告知Apple反馈助理:
您可能永远不会收到回复.Apple仅通过反馈助手回复操作系统中需要其他信息的主要错误.它不是获得支持的一种方式,对第三方应用程序来说更是如此.
我还联系了包装的制造商PDF Labs,但没有回复.
在MacPorts上,他们遇到了OS X 10.11上的构建问题,这是否意味着PDFtk和10.11在软件级别存在兼容性问题?
我在网上搜索了一些线索,了解可能导致问题的原因以及解决方法,但没有找到任何实际问题.
在OS X上,我不知道如何确定升级后是否存在权限或路径甚至是Java问题.
任何有助于解决根本原因或提供修复的帮助都表示赞赏.
更新1:
我从PDF实验室的Sid Steward那里听到了回复:
只要测试版已经发布,我们就一直在努力解决这个问题.我们仍在努力.似乎与pdftk使用的一个(非Apple)库和OS X 10.11不兼容.目前我正在为Apple的开发人员工具安装另一个更新,希望它能解决问题.我会告诉你我们的进展.
更新2:
看起来有两个线程在pdftk下运行,并且它们已经死锁.这意味着每个线程都在等待另一个线程完成.我不是这里的专家,但那是我的印象.以下是来自Mac的Activity Monitor的截图,用于说明:
上面的快照来自于尝试在OS X 10.11上运行我们网站上当前的pdftk二进制文件.上面提到的libgcj库带有pdftk,其他的是OS X库.
正如我所说,我刚刚安装了Xcode 7.0.1,它于昨天在App商店发布.我现在将尝试使用这些工具来构建pdftk.
更新3:
MacPorts正在使用PDFtk解决构建问题,这是该线程的更新(注意:这与PDFtk Labs无关):
这是因为在10.11中使用Apple Clang 7重新编译了libunwind,产生了新的有效优化(根据Apple),它在FSF boehm-gc中发现了一个未知的错误.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66848
不要指望Apple有任何修复,因为他们无法触及GPLv3代码来查看FSF boehm-gc问题(除非他们使用的gcc43包应该仍然是GPLv2).这个问题是由重新编译libunwind引发的,这一事实表明,从10.10替换libunwind.dylib会消除boehm-gc和gcj失败.
请注意,这是作为radr:// 21372179提交的,"基于10.10构建的FSF boehm-gc库无法通过10.11的测试",但作为FSF boehm-gc错误关闭.
更新4:
问题:
两名员工(A&B)同时离线,同时编辑客户#123,比如版本#20,当离线继续进行更改时......
场景:
1 - 两名员工编辑客户#123并对一个或多个相同的属性进行更改.
2 - 两名员工编辑客户#123但不要做出相同的更改(他们互相交叉而不接触).
......然后他们都回到网上,第一名员工A追加,从而将客户更改为版本#21,然后将员工B更改为版本#20
问题:
我们在方案1中保留了哪些变化?
我们可以在方案2中进行合并吗?
语境:
1 - CQRS +事件采购风格系统
2 - 使用事件源Db作为队列
3 - 读模型的最终一致性
4 - RESTful API

编辑-1:到目前为止基于答案的澄清:
为了执行精细的粒度合并,我需要为一个表单中的每个字段设置一个命令?

在上面,ChangeName,ChangeSupplier,ChangeDescription等的细粒度命令,每个都有自己的时间戳,允许自动合并事件A和B都更新ChangedName?
编辑-2:根据特定事件存储的使用进行跟进:
好像我会利用@GetEventStore来保持我的事件流的持久性.
他们使用乐观并发如下:
流中的每个事件都将流版本增加1
写入可以指定预期版本,在编写器上使用ES-ExpectedVersion标头
-1指定流不应该已存在
0及以上指定流版本
如果流不在版本中,写入将失败,您要么使用新的预期版本号重试,要么重新处理该行为并确定如果您选择它就行.
如果未指定ES预期版本,则禁用乐观并发控制
在这种情况下,Optimistic Concurrency不仅基于消息ID,还基于事件#
domain-driven-design occasionallyconnected cqrs event-sourcing get-event-store
为服务器端路由验证用户的最佳方法(最安全和最简单)是什么?
我正在使用最新的Iron Router 1.*和Meteor 1.*并开始,我只是使用帐户密码.
我有一个简单的服务器端路由,将pdf呈现给屏幕:
两者/ routes.js
Router.route('/pdf-server', function() {
var filePath = process.env.PWD + "/server/.files/users/test.pdf";
console.log(filePath);
var fs = Npm.require('fs');
var data = fs.readFileSync(filePath);
this.response.write(data);
this.response.end();
}, {where: 'server'});
Run Code Online (Sandbox Code Playgroud)
举个例子,我想做一些接近SO答案建议的事情:
在服务器上:
var Secrets = new Meteor.Collection("secrets");
Meteor.methods({
getSecretKey: function () {
if (!this.userId)
// check if the user has privileges
throw Meteor.Error(403);
return Secrets.insert({_id: Random.id(), user: this.userId});
},
});
Run Code Online (Sandbox Code Playgroud)
然后在客户端代码中:
testController.events({
'click button[name=get-pdf]': function () {
Meteor.call("getSecretKey", function (error, response) {
if (error) throw …Run Code Online (Sandbox Code Playgroud) 我目前正在macOS Sierra上成功运行PDFtk Server而没有遇到@Sid Steward的更新pkg文件问题:OS X 10.11上的PDFtk服务器.
然而,由于新的Apple文件系统(APFS)在此版本中是默认的,因此我有保留转向High Sierra,因此我不知道这会破坏PDFtk服务器.
有没有人在macOS High Sierra 10.13上正确运行PDFtk Server?如果不是什么问题?
似乎在Meteor中,我们无法调用服务器端路由将文件呈现到页面,而无需从我们正常的工作流程中进行某种处理,从我读到的有关服务器端路由的内容.我希望我对此错了,并且有一种简单的方法来实现我想要做的......
**对不起,如果这有点长,但我认为在这种情况下提供更多的背景和背景是有道理的**
我正在使用最新的Iron Router 1.*和Meteor 1.*并开始,我只是使用帐户密码.
我有一个onBeforeAction,根据用户是否登录,只需将用户重定向到欢迎页面或主页:
两者/ routes.js
Router.onBeforeAction(function () {
if (!Meteor.user() || Meteor.loggingIn())
this.redirect('welcome.view');
else
this.next();
}
,{except: 'welcome.view'}
);
Router.onBeforeAction(function () {
if (Meteor.user())
this.redirect('home.view');
else
this.next();
}
,{only: 'welcome.view'}
);
Run Code Online (Sandbox Code Playgroud)
在同一个文件中,两个/ routes.js,我有一个简单的服务器端路由,将pdf呈现给屏幕,如果我删除onBeforeAction代码,路由工作(pdf呈现到页面):
Router.route('/pdf-server', function() {
var filePath = process.env.PWD + "/server/.files/users/test.pdf";
console.log(filePath);
var fs = Npm.require('fs');
var data = fs.readFileSync(filePath);
this.response.write(data);
this.response.end();
}, {where: 'server'});
Run Code Online (Sandbox Code Playgroud)
它不是重点,但是当我将上述服务器端路由添加到文件并获取路由/ pdf-server时,我得到一个例外,同时保持onBeforeAction代码到位.
可以在此处找到对异常的见解:SO异常问题
以上SO问题中答案的主要要点是"You use Meteor.user() in your Route.onBeforeAction but it has no …
我正在尝试使用装饰器构建一个将面向方面编程应用于我的项目的原型.我的项目的某些部分将使用通用存储库(对于简单的CRUD),但最终我还将包含命令和查询处理程序(这些将执行特定任务,如ProcessCustomerOrders等).另外,我想在这里举例说明的横切关注点是安全和日志记录.
另外,我知道我的示例代码不是使用Decorator模式,而只是我为此原型提供上下文的代码示例.
我知道还有其他方法可以实现AOP(或横切关注点),例如代理或代码编织模式,但我不熟悉这些模式,因此不知道它们之间的权衡.
我在这里使用一个控制台应用程序,只是为了展示如果我以链式方式"新建"它们将会是什么样子.
我的问题是:
(1)如何使用Simple Injector(在bootstrap类中)连接它并保持顺序相同?
(2)这是装饰器模式的正确使用(因为我没有使用基本抽象或接口类或装饰器基础)?
(3)在没有注入两个不同版本的情况下,是否有一种干净的方法可以在同一个存储库中使用ILogger服务的多个实现(例如DatabaseLogger和ConsoleLogger)?
(4)实际的日志记录是在Repository方法中实现的,并且ILogger服务被注入到Repository类中,但有没有比硬连接记录器更好的方法呢?仍然使用Generic Repositories?
(5)如果我根据我如何使用存储库在这个原型使用代理服务器或代码编织图案?
此外,欢迎对此设计的一般批评.
原型代码:
public class Program
{
public static void Main(string[] args)
{
var e = new Entity
{
Id = 1,
Name = "Example Entity",
Description = "Used by Decorators",
RowGuild = Guid.NewGuid()
};
Controller controller =
new Controller(
new GenericRepository<Entity>(
new ClientManagementContext(),
new ConsoleLogger()
),
new WebUser()
);
controller.Create(e);
}
}
public static class RepositoryBoostrapper
{
public static void Bootstrap(Container container)
{
container.RegisterOpenGeneric(typeof(IGenericRepository<>), typeof(GenericRepository<>));
}
}
public …Run Code Online (Sandbox Code Playgroud) aop design-patterns decorator repository-design simple-injector
我正在尝试使用Meteor软件包来连接tarang:email-ses由@Akshat构建的AWS SES .
我正在使用在AWS EC2实例上运行的Meteor @ 1.*.当我使用下面的代码运行测试时,没有发送任何电子邮件.
我已经设置了AWS访问密钥ID和秘密访问密钥,并在此处使用它:
Meteor.startup(function () {
Email.configSES({
AWSAccessKeyID: 'access-key',
AWSSecretKey: 'secret-key'
});
});
Run Code Online (Sandbox Code Playgroud)
我还验证了我的电子邮件和域名.在这里,我确保从我的经过验证的发件人SES地址发送:
Accounts.emailTemplates.from = 'Domain Name <support@domain-name.com>';
Run Code Online (Sandbox Code Playgroud)
然后在Meteor方法中,我创建一个新用户并发送和注册电子邮件(如果我部署到meteor.com,当然没有Accounts.emailTemplates.from):
if (Meteor.user() && adminUser(this.userId)) {
var accountId = Accounts.createUser({
'username': doc.name,
'email': doc.email
});
Accounts.sendEnrollmentEmail(accountId);
}
Run Code Online (Sandbox Code Playgroud)
为email-ses包设置的代码是否正确?
我认为这个包抽象出了Amazon SES API发送电子邮件(并允许本地Meteor电子邮件调用).是否需要在AWS上设置SMTP?
amazon-web-services amazon-ses meteor meteor-up meteor-accounts
meteor ×3
iron-router ×2
macos ×2
node.js ×2
pdf ×2
pdftk ×2
amazon-ses ×1
aop ×1
cookies ×1
cqrs ×1
decorator ×1
homebrew ×1
javascript ×1
meteor-up ×1
routing ×1