我有一个连接到家庭 WiFi 的“亚马逊智能插头”,现在可以使用两种机制对其进行控制:
我想添加第三种打开和关闭插头的方法,第三种机制调用 Lambda 函数。
所以,我需要一个允许我进行适当身份验证的 API,然后能够通过 Lambda 执行以下操作:
这样的API存在吗?我知道 LIFX 设备等有类似的 API,但这些是直接连接的亚马逊智能插头,仅与 Alexa 本身和 Echo 设备集成。
我只需要一个指向相关 API 的指针,因为有很多 API 用于我没有寻找的东西,它们似乎掩盖了 Google 结果,例如 Alexa Skills API,它用于为语音助手设计新功能——不是我想要的。一旦找到正确的 API,我就可以找出代码。
很长一段时间以来,您需要特殊的软件来从平板扫描仪创建多页 PDF 文档,这让我很恼火。因为“扫描仪”是一个含糊不清的词(这确实使搜索变得困难!)让我澄清一下:我的意思是,例如,HP F4280 打印机/扫描仪设备以光学方式“扫描”纸质文档并创建数字表示的过程它,通常以 .jpg 或 .tif 文件结尾。
问题是我不知道没有跨平台的程序能够从平板扫描仪创建多页扫描。为此,软件必须一次存储每个扫描的页面,并询问用户是否要扫描另一页。您不能依赖驱动程序来处理多页扫描,因为驱动程序只为换页扫描仪执行此操作,这些扫描仪会不间断地“吸入”一叠纸,并在将数据交给驱动程序框架之前组合数据。
因此,我开始着手创建这样一个程序。在底层,我想在 Windows XP 或更高版本、Mac OS X 和流行的 Linux 2.6 发行版上支持 TWAIN 和 SANE 接口。2008 年或以后的年份。
这是我设想的工作方式。首先,我需要一个提供统一 API 的库,无论后端是使用 TWAIN 还是 SANE。API 必须能够提供所扫描数据的位的字节数组,无论是压缩的还是其他的。应该公开 TWAIN 和 SANE 之间共享的一些属性:例如,DPI、纸张尺寸和颜色/灰度/线性。然后应该可以明确指定、提示或查询成功扫描返回的字节数组的结果图像格式。
我不是特别关心编程环境:我熟悉所有流行的命令式/OO 语言。我更喜欢 Java 或 C# 之类的东西,但 C 或 C++ 也可以正常工作。
一旦我手头有了这样的库,我就可以构建一个只根据需要调用例程的 GUI,并使用几个可用的 PDF 渲染库之一来创建输出。我不坚持“编译一次,随处运行”,但我至少坚持“一次编写,随处编译”。当然,因为 TWAIN 和 SANE 是在互斥平台上可用的不同 API,所以在某些时候必须有一些 #ifdefs 或其他方法来区分平台以确定使用哪个 API。
我打算让我的程序和我直接链接的任何库都符合自由软件的资格(根据 FSF),但我对编程环境的唯一要求是它在 Windows XP 或更高版本、Mac OS X 和Linux 2.6。
我一直在谷歌上搜索很多这样的库,但我什至找不到专有的库,更不用说免费软件了。如果有人发现了这样的宝石,请给我一个链接——否则,任何关于开始使用我的应用程序的建议将不胜感激。如果有必要,我会自己做上述库的开发,并在 GNU LGPL 下作为一个单独的项目发布。为了应用程序,我更喜欢用 Qt4/C++、.NET 和 GTK# 或 Java/Swing 编写它,以获得最大的跨平台兼容性。
假设我有以下输入,我的实现语言是Java:
数组A,内容如下:["brown fox", "jumped over the", "lazy dog", "dog", "the", "fish", "quantum burrito", "ox jumped over the laz", "and ate", "ate pie"]
一个字符串,S,内容为:( "the quick brown fox jumped over the lazy dog and ate pie"
第一个字符索引0,最后一个字符索引55)
我需要(在典型的计算机上尽可能有效)组装一个包含(完全)在数组A的元素内的字符串S的子串列表,并按降序获取它们.我还需要知道每个匹配的字符串S中的起始和结束字符索引.......但有一些限制.
以下约束和特性适用于此问题:
我有这种情况:
我以为没有办法以自动化的方式使用Outlook发送电子邮件(在屏幕锁定的用户登录的无人值守的盒子上).我尝试了许多不同的方法,但始终会收到安全警告消息.我怎样才能解决这个问题?
我已经在这个有用的网站上尝试过所有内容并删除了每个选项,如下所示:
策略
理想情况下,自动化Outlook的应用程序应该避免触发这些安全提示的代码.
这正是我最终做的事情(请参阅下面的答案),这就是为什么该页面上的所有其他选项都无关紧要的原因.我们一个接一个地拿走它们:
发送消息
如果您的目标只是创建和发送电子邮件,则根本不需要使用Outlook对象.Microsoft提供了用于Windows库的CDO,用于使用SMTP创建和发送邮件.使用此库完全绕过Outlook和MAPI,并且不会触发安全提示.有关代码示例,请参阅...
SMTP.NO-GO.网络政策不允许.
对于可能触发安全提示的所有代码,请使用扩展MAPI而不是Outlook对象,简单MAPI或CDO 1.21.
扩展MAPI可能会起作用,但它非常繁琐且冗长,并且涉及大量C/C++代码(这个问题没有主题;见上文),并且似乎无法在不提示用户输入密码的情况下使用它.
对于可能触发安全提示的所有代码,请使用第三方库 - Redemption或MAPI33.这种方法比使用扩展MAPI更容易,扩展MAPI具有陡峭的学习曲线,几乎同样安全.这些库还提供了其他功能来帮助Outlook代码项目.
第三方图书馆的问题有四个方面: - 它们需要花钱; - 即使它们是免费的,它们也会引入许可问题(某些组织需要在允许软件进入生态系统之前对律师进行大量审查); - 大多数环境中,整个问题甚至是一个问题,用户无法在Outlook选项中禁用编程访问警告.嗯,那些可能的案例是什么?可能是...... 企业环境?在企业环境中采购软件需要花费相当长的时间,除非使用它的成本节省超过数百万美元,否则不切实际.但是,如果需要软件采购,可以进行许多实际的流程改进,这些改进不会产生高成本节省,但是如果需要软件采购,则采购第三方软件的成本和成本将比节省的总成本多. - 网络管理员可能不信任该软件驻留在系统上,因为它可能用于恶意目的.
使用您的应用程序部署一个工具来抑制安全提示.
这假设需要抑制 OMG提示,在我的情况下,它不是,只是发送一个简单的电子邮件(请参阅我的回答).
对于Outlook 2007,请确保计算机正在运行最新的防病毒应用程序,并使用Outlook对象执行所有编码,从而避免使用CDO 1.21和简单MAPI代码.
病毒扫描程序是最新的,但更改其版本或供应商完全不受我的控制,并且Outlook无法识别它.它说:"防病毒状态:无效.此版本的Windows支持防病毒检测,但未找到防病毒软件."
在Outlook自定义表单代码,Outlook VBA代码和COM加载项中,从VBA或加载项体系结构提供的Outlook.Application对象派生所有对象.例如,请参阅下面的示例VBA"运行脚本"规则过程.
有趣,可能有用,但不是必需的.这会在Outlook中设置规则以便部署软件时产生不必要的依赖性,从而使部署变得复杂.
部署"信任"某些COM加载项或允许所有应用程序对某些功能具有不受限制访问权限的Outlook安全设置,例如访问地址.在Outlook 2007之前的版本中,这需要Microsoft Exchange Server.对于Outlook 2007,请参阅下面有关特定于版本的注意事项的部分.
繁琐:安装COM加载项需要管理访问权限,而某些组织的管理访问权限很难实现.
在Exchange是电子邮件服务器的企业环境中,可以通过WebDAV API从Exchange 2000开始直接访问服务器上的数据,从Exchange 2007开始,通过Exchange Web服务.
在我的环境中禁用,可能是其他人.
在企业环境中,管理员可以选择放宽部分或全部用户的Outlook安全性.
当然,但这需要与网络团队进行沟通/协调/合作.如果管理访问权限不可用于安装COM插件,则它也可能不适用于放松组策略.
我创建了一个WPF TextBlock
内Label
的代码(XAML是不可能在我的情况),如下所示:
Label l = new Label();
TextBlock tb = new TextBlock();
l.Content = tb;
Run Code Online (Sandbox Code Playgroud)
然后我来到一个需要设置包含新行的.Text
属性的情况TextBlock
,例如:
tb.Text = "Hello\nWould you please just work?";
Run Code Online (Sandbox Code Playgroud)
我已经尝试了各种换行组合的多种编码(HTML编码,ASCII编码等)(回车,换行,回车加换行,换行加回车,双换行,双回车等等... ad nauseum).
如果这是不可能的,请告诉我如何以编程方式添加换行符,方法是将任意输入中的每个换行符动态替换String
为一个LineBreak
对象(或任何使其工作所需的内容).输入String
将具有我无法预先预测的任意(可读文本)内容,因为文本本身是动态的(用户定义的); 源字符串将具有换行符(aka LF,aka \n
)但我可以轻松地用所需的任何内容替换它.
另外,如果是更容易被做到这一点Label
直接,而不是TextBlock
在一个Label
,那也不错-我可以使用.我只需要一个带有自动纯文本换行的控件.
我有
在bin
目录中,productInfo featureInfo
返回许多内容,但其中包括:
在我的server.xml中,在下<featureManager>
有一个<feature>...</feature>
for:
在Eclipse中,我右键单击WAR项目,转到New-> Other ...,然后选择Web Services-> Web Service。点击下一步。
现在,我有一个包含以下字段的对话框:
some.package.SomeWebService
根据我的代码;它包含适当的@WebService
注释等)<my WAR project>
<my EAR project>
当我单击下一步时,收到以下警告:
该项目针对没有IBM WebSphere …
我有以下Java 11代码(我的代码中arr1
和的内容arr2
并不那么简单,而且我有超过2个数组,但概念是相同的):
String[] arr1 = new String[] {"a","b"};
String[] arr2 = new String[] {"c", "d"};
var req = Stream.of(arr1, arr2).flatMap(Stream::of).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)
此代码的目的是获取多个字符串数组中的所有值并生成一个字符串数组。它需要是一个数组,而不是一个集合,因为我无法控制的 API 稍后会在代码中接受 String 数组。
在这个简单的示例中,生成的数组应按此顺序包含以下元素:{ "a", "b", "c", "d" }
。
在 Kotlin 中将 1 深数组展平为单个数组的规范方法是什么?
我在这里陷入困境的主要原因是 IntelliJ Java 到 Kotlin 转换器在转换此代码方面做得非常糟糕,导致输出 Kotlin 中出现多个奇怪的语法错误。我的其余代码不使用方法引用之类的东西,更干净地转换为 Kotlin。
我使用 jhipster 创建了一个骨架应用程序,并使用import-jdl
. 现在我尝试运行开发配置文件并将其托管在 localhost:8080 上,这很好。但我想通过nginx将其代理到公共互联网并将其放在SSL后面。
现在,如果我使用 Tomcat 作为应用程序服务器,我可以设置 的proxyHost
属性来Connector
告诉应用程序服务器其面向公众的 URL 是什么,以便它正确地为客户端生成 URL。
但我不知道 jhipster 使用什么应用程序服务器作为开发配置文件或如何配置它。
我有以下情况:
m4.large
运行 RHEL6我有一个 Lambda 函数,用于记录 VPC 上的所有 EC2 状态更改,如下所示:
'use strict';
exports.handler = (event, context, callback) => {
console.log('LogEC2InstanceStateChange');
console.log('Received event:', JSON.stringify(event, null, 2));
callback(null, 'Finished');
}
Run Code Online (Sandbox Code Playgroud)
还有另一个 Lambda 函数,尝试根据计划启动 EC2 实例,用 Java 编写,代码量很大,但其核心是这样的:
public void handleRequest(Object input, Context context) {
final List<String> instancesToStart = getInstancesToStart(); //implementation not shown
try {
StartInstancesRequest startRequest = new StartInstancesRequest().withInstanceIds((String[]) instancesToStart.toArray());
context.logger.log("StartInstancesRequest: " + startRequest.toString());
StartInstancesResult res …
Run Code Online (Sandbox Code Playgroud)