未发布 地图服务器控件GIS Map Server v3.6发布,新增航空影像数据集功能 GIS Map Server是一款地图服务器控件,它将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独立使用。GLG地图服务器控件将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独立使用。当与工具包一起使用时,一个综合的GIS对象将负责完成变焦、摇摄、协同转换与地图转化,还会将地图服务器整合到GLG绘图功能中。当工具包在处理地图顶端的动态图标的转换时,还能实时地对它们进行更新。
GIS Map Server更新至v3.6版本,增加了航空影像数据集等功能。
最新GIS Map Server点击下载>>>
新的地图服务器功能:
新版本增加了与大型卫星一起使用的航空影像数据集功能。
卫星数据集,如World 15m Satellite Images,在没有图像数据的海洋区域使用黑色。当显示此图像时,黑色区域应视为透明。这是通过使用TRANSPARENT COLOR OPAQUE图层类型,并将黑色指定为透明颜色来实现的。透明色彩精确度也用于消除JPEG图像有损压缩的现象。
航空数据集,例如右图所示的US 0.5m Aerial Images,使用在UTM投影中创建的tiles。要在不同的投影中显示这个图块,需要对其进行转换(未投影)以使用lat / lon坐标。由于UTM矩形在lat / lon坐标中不是矩形,因此转换的图块将在填充有黑色的边缘处具有未使用的区域。当显示此图像时,这个黑色区域也应该被视为透明的。此外,由于tiles是从UTM投影转换而来的,tiles将出现重叠并且一个tiles中的透明区域的数据将由另一个重叠的tiles提供。
US 0.5m Aerial Images示例
地图服务器已经支持透明颜色属性。添加以下列出的新层属性,能更好地渲染卫星和航空图像数据集。
【本文作者
慧都Elyn,转载请注明出处】
未发布 【315style】VMProtect正版授权低至6.9折,折后再享第二套半价! 在3.15国际消费者权益保护日到来之际,慧都科技联合全球知名厂商VMPsoft特别推出“VMProtect正版授权超低折扣”的促销活动,活动期间,VMProtect授权低至6.9折,折后再享第二套半价!
活动时间:即日起至2018.4.15
用户在购买同一版本的平台授权时,既可在原有折扣基础上享受第二套半价的优惠。
如:用户购买 Ultimate Edition Personal License for Windows平台 + for OS X平台
最终购买价为:3742+3742/2=5613元
VMProtect是一款虚拟机保护软件,是目前最为流行的保护壳之一。VMProtect将保护后的代码放到虚拟机中运行,这将使分析反编译后的代码和破解变得极为困难。除了代码保护,VMProtect还可以生成和验证序列号,设置过期时间,限制免费更新等等。
郑重承诺:慧都所售产品均为厂商授权的正版产品,在线订购安全便捷,请完全放心!
未发布 MailBee.NET Objects退回邮件教程(一):SMTP部分 MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
本文主要介绍了SMTP服务器退回邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
所有退回的电子邮件都应该到达一个邮箱地址。这里将其命名为我们的退件通知栏 - bounce@domain.com。显然,你需要确保退回的邮件能有它们的方式到达退件通知栏。
让我们看看这些邮件是如何由SMTP服务器发送的。当一封邮件提交给SMTP服务器时,它将被标记返回路径。返回路径是服务器用于与邮件的原始发送方通信的路径,因此返回路径通常是发件人的电子邮件地址(“From”地址)。
返回路径记录在邮件中。“From”用于显示发件人地址。返回路径和字段“From”中的地址不必一样。因此,您可以发送一个使用字段“From”的电子邮件显示发件人(jdoe@domain.com),但返回路径将是bounce box地址(bounce@domain.com)。有了这个技巧,所有的反弹消息都将返回到一个特殊的邮箱。
那么如何使用MailBee Objects呢?smtp.Send(senderEmail,recipient)方法向指定的收件人电子邮件地址发送电子邮件。第一个参数是发件人的电子邮件地址。如果是空引用,则电子邮件地址取自“From”属性。第二个参数包含收件人电子邮件地址的分隔列表。当第二个参数为空时,收件人列表可以由To、Cc和Bcc列表组合。正如你所看到的,第一个参数是我们组织一个退件栏所需要的。如果将退件栏地址设置为第一个参数,那么所有退回邮件将被发送到特殊地址。
注意:某些SMTP服务器不允许从“From”标头中指定的地址发送电子邮件。
代码示例:
此示例使用SMTP协议发送电子邮件。为了确保所有收件人都收到该邮件,TestSend将被调用。带有传送错误的邮件将来自指定的电子邮件地址。
C#
// Create SMTP object
Smtp mailer = new Smtp();
// Set the message fields.
mailer.From.AsString = "jdoe@domain.com";
mailer.To.AsString = "bill@domain2.com";
mailer.Subject = "Hi";
mailer.BodyPlainText = "This is test message";
// Starts logging SMTP activities into a file.
mailer.Log.Enabled = true;
mailer.Log.Filename = @"C:\log.txt";
mailer.Log.Clear();
// Specify the server to use. If your server does not require authentication,
// just omit both last parameters.
mailer.SmtpServers.Add("mail.domain.com", "jdoe", "secret");
// Attempt to connect.
mailer.Connect();
// Display the host name of the server the connection was established with.
Console.WriteLine("Connected to " + mailer.SmtpServers[mailer.GetCurrentSmtpServerIndex()].Name);
// Make sure all the recipients are ok.
if (mailer.TestSend(SendFailureThreshold.AllRecipientsFailed) != TestSendResult.OK)
{
Console.WriteLine("No recipients can receive the message.");
}// Show refused recipients if any
else if (mailer.GetRefusedRecipients().Count > 0)
{
Console.WriteLine("The following recipients failed: " + mailer.GetRefusedRecipients().ToString());
}
else
{
Console.WriteLine("All recipients are ok. Will send the message now.");
// Send e-mail. If it cannot be delivered, bounce will
// arrive to bounce@domain3.com, not to joe@domain1.com
mailer.Send("bounce@domain.com", (string)null);
Console.WriteLine("Sent to: " + mailer.GetAcceptedRecipients().ToString());
}
// Disconnect from the server
mailer.Disconnect();
VB.NET
' Create SMTP object
Dim mailer As New Smtp
' Set the message fields.
mailer.From.AsString = "jdoe@domain.com"
mailer.To.AsString = "bill@domain2.com"
mailer.Subject = "Hi"
mailer.BodyPlainText = "This is test message"
' Starts logging SMTP activities into a file.
mailer.Log.Enabled = True
mailer.Log.Filename = "C:\log.txt"
mailer.Log.Clear()
' Specify the server to use. If your server does not require authentication,
' just remove last 2 parameters.
mailer.SmtpServers.Add("mail.domain.com", "jdoe", "secret")
' Attempt to connect.
mailer.Connect()
' Display the host name of the server the connection was established with.
Console.WriteLine("Connected to " + mailer.SmtpServers(mailer.GetCurrentSmtpServerIndex()).Name)
' Make sure all the recipients are ok.
If mailer.TestSend(SendFailureThreshold.AllRecipientsFailed) <> TestSendResult.OK Then
Console.WriteLine("No recipients can receive the message.")
Else
' Show refused recipients if any
If mailer.GetRefusedRecipients().Count > 0 Then
Console.WriteLine("The following recipients failed: " & mailer.GetRefusedRecipients().ToString())
Else
Console.WriteLine("All recipients are ok. Will send the message now.")
' Send e-mail. If it cannot be delivered, bounce will
' arrive to bounce@domain3.com, not to joe@domain1.com
mailer.Send("bounce@domain.com", CType(Nothing, String))
Console.WriteLine("Sent to: " + mailer.GetAcceptedRecipients().ToString())
End If
End If
' Disconnect from the server
mailer.Disconnect()
未发布 Oracle正式发布Java 9,引入新的Java编程组件 Java SE 9.0于2017年9月21日发布。
JDK 9的核心变化就是引入了一种新的Java编程组件,也就是模块,按照Oracle的说法,它是一个可命名的、自描述的代码和数据集合。模块技术的核心目标是减少Java应用和Java核心运行时环境的大小与复杂性。为此,JDK本身进行了模块化,Oracle希望通过这种方式提升性能、安全性和可维护性。为了支持Java 9的模块,引入一种新的模块化JAR文件形式,按照这种形式会在其根目录中包含一个module-info.class文件。Oracle同时提供了工具,允许我们组合和优化一组模块,形成自定义的运行时镜像(image),这样的镜像不必将整个Java运行时包含进来。模块化所带来的其他变化包括从Java运行时镜像中移除了rt.jar和tools.jar。 Java社区进程(JCP)执行委员会的成员Ben Evans认为最急需重构的应用恰好就是最适合进行模块化的应用。如果你已经备受Lava Flow/God Class/Stovepipe System地狱的折磨,而且你的利益相关方明确知道这一点,那么你可能更容易说服他们进行一次完整的底层重构,通过渐进式的努力形成一个完成的模块解决方案(而不是简单重构并迁移至Java 8)是值得去做的。
Oracle宣布Java 8会是一个长期支持的发布版本,会一直支持到2022年,因此Evans认为很多的应用将会停留在Java 8上,根本不会升级到Java 9。Evans补充说,有些应用可能会让开发和构建工具链使用Java 8版本,而在生产环境使用Java 9的运行时。
对特定类型的应用来说,这是很有帮助的。例如,我曾经见到有的电子商务网站具有非常大的堆空间,其中包含了大约40G的字符串数据。Java 9的ompact Strings技术能够将这种类型的内存使用减半。这反过来又会对GC的性能带来积极的影响。对于有些应用来说(这可能就包括大型的Solr安装环境及类似场景),单单这一项收益就值得将运行时升级到Java 9。
Java 9使用G1作为默认的垃圾收集器,替代了之前默认使用的Parallel GC。Evans对这项变化的评论:
这项变更是很重要的,因为相对于Parallel来说,G1会在应用线程上做更多的事情,而Parallel几乎没有在应用线程上做任何事情,它基本上完全依赖GC线程完成所有的内存管理。这意味着切换到G1将会为应用线程带来额外的工作,从而直接影响到应用的性能。
在很多(甚至可以说大多数)场景中,这种额外的性能损耗都不是什么问题。但是,在这方面,我确实也曾经见过从Parallel切换到G1时,有一定比例的工作负载会引起性能的下降。对于这些应用来说,这种性能下降是无法接受的,所以他们无法切换至G1收集器。随着G1成为默认的收集器,这将会影响到升级至Java 9的每个应用。
JClarity的CEO Martijn Verburg认为大型的代码库需要重构为模块的形式。Verburg给出了一些通用的模块化建议,并且指出了开发人员在采用Java 9模块系统时,需要注意的一些事情:
- 阅读Paul和Sander的图书“Java 9 modularity”:它是本权威指南,提到了所有需要注意的地方,阐述了模块、包以及JAR之间如何运行的关联关系;
- 在模块边界的地方,使用定义良好的接口并且针对这些接口编程;
- 不要拆分包(split package),也就是说一个包不要分散到两个模块中。Adopt OpenJDK有个探测工具,我们可以用它来探测已有的代码;
- 确保不要存在循环依赖(Jigsaw不允许这样);
- 模块在源码的布局上与我们已习惯的方式有所不同,需要确保构建工具能够进行对应的处理;
- Jigsaw不支持多版本。
按照Verburg的说法,核心要点在于处理循环依赖、拆分包的问题,并确保针对接口进行编码。在尝试使用Jigsaw模块化重构之前,针对已有的代码库,这些工作需要预先完成。他还澄清了一个误解,那就是只有模块化的应用才能在Java 9上运行。
由于误解,在这方面有一种FUD(恐惧、不确定和怀疑)情绪,有人误认为在Java 9上运行的必须是模块化的应用。事实并非如此,我们可以将已有的基于类路径的应用直接在Java 9上运行。这里会有一些新的安全限制,因此我们需要设置一些特定的运行时标记(除非你重构代码,使用更安全的方式来访问Java的内部资源),即便如此,默认的行为也只是警告,而不是完全阻止我们(Java 10的限制会更严格)。
Verburg认为Jigsaw会是一个基石,会让Java的演进更快,这要归功于Mark Reinhold、Alan Bateman、Mandy Chung以及Jigsaw团队的其他成员多年来不知疲倦的工作,正是他们的努力使这一切得以实现。
Java 9还引入了jshell工具。这个命令行环境为Java平台带来了读入-求值-打印-循环(Read-Eval-Print-Loop,REPL)功能。它的目的在于以即时结果和反馈的形式,简化原型的实现并帮助我们探索语言在编码时的可选项。
Verburg和Evans看到Java 9中包含了jShell都非常兴奋,但令他们失望的是,HTTP/2只是作为Java 9的一个孵化模块(incubator module)提供的。鉴于社区对这项特性的兴趣和提供的帮助,Evans认为Oracle应该投入足够的工程资源,将HTTP/2交付为GA版本。
JDK 9完整的变更列表可以在Oracle的站点上查阅。Oracle宣布会按照每六个月一次的节奏进行发布,意味着Java 9是最后一次“keystone”特性驱动的版本发布,这反映出了Oracle目前管理Java的特点。Java下一阶段的演化将会按照更短的发布周期并且会按照更加面向特性的方式来发布。Java是否依然能够在服务端技术中占据领导者地位尚有待观察。
更多资讯点击查看>>>
未发布 企业级工具包Essential Studio Enterprise Edition 2017 v2发布丨附下载 Essential Studio企业版,一个跨越八个平台并包含433种独特控件的企业级工具包。使用Essential Studio企业版,开发者可以创建丰富的应用程序,并轻松地集成商业智能分析和报告解决方案。Essential Studio企业版是世界级的软件组件,它使得开发者能在最苛刻的环境下开发出高质量的软件。
Essential Studio Enterprise Edition 2017 v2
Essential Studio for JavaScript通过添加文本注释、Mondrian XML / A支持、列表视图中的虚拟滚动以及许多其他功能,扩展了企业Web开发界限。
文本标记
在PDF查看器中添加和编辑文本标记注释,以突出显示、下划线和删除线标记文本。
支持客户端Mondrian XML/A
通过不同版本的XML/A连接从Mondrian中检索多维数据。
虚拟滚动
在列表视图控件中启用正常或连续的虚拟滚动以提高性能。
Essential Studio for Xamarin是最好的Xamarin.Forms套件之一,新增sunburst图表控件和许多其他功能。
新的sunburst图表
以同心的方式可视化不同级别的分层数据。
自动列表项目
根据列表视图控件中的内容大小自动适应列表项。
Essential Studio for WPF是一个大型套件,新版本添加了工作簿排序和过滤、动态图表端口、Adobe X安全性和其他新的功能。
在工作簿中排序和过滤
通过使用电子表格控件过滤和排序来分析工作簿中的数据。
Adobe X加密和解密
使用带有PDF 2.0安全功能的Essential PDF(AES Revision 6)。
Essential Studio for Windows Forms 2017 v2版本,支持office 2016和主题定制等功能。
Office 2016数字量规的样式
Office 2016主题外观和主题定制支持数字、线性和径向量规形式。
Excel表格过滤器
使用Essential XlsIO,根据文本,数字和日期筛选Excel表格中的行。
Adobe X加密和解密
使用带有PDF 2.0安全功能的Essential PDF(AES Revision 6)。
Essential Studio for UWP为通用Windows平台增加了更多功能,新增甘特图控件。
新甘特图控件
通过可视化和编辑计划来跟踪项目的进度。
片段装饰
为连接器添加了一种新的装饰元素,以指示连接在另一个连接器或片段上的流动。
数据透视图注释
在透视图中添加包含图表系列元数据的注释。
Essential Studio for ASP.NET Web Forms 2017 v2版本增加大量新功能包括自定义树形网格工具栏、文本注释等。
文本标记
在PDF查看器中添加和编辑文本标记注释,以突出显示、下划线和删除线标记文本。
自定义工具栏
将自定义项目添加到树形网格控件的工具栏。
ASP.NET MVC 2017 v2版本增加了更多的功能,例如新的日期范围选择器、文本注释和PowerPoint文件的注释编辑。
新日期范围选择器
从一组预定义或自定义范围中选择一个日期范围。
文字标记
在PDF查看器中添加和编辑文本标记注释,以突出显示、下划线和删除线标记文本。
添加和编辑注释
使用Essential Presentation在PowerPoint文件中创建和修改注释。
试用、下载、了解更多产品信息请点击"咨询在线客服"
未发布 Java新版本的开发已正式进入轨道,版本号18.3 Java 9在9月21日正式发布,同时Oracle宣布将Java新版本的发布周期调整为每半年一次。目前,Java新版本的开发也已正式进入轨道。就已公开的消息来看,下一个版本的Java预计会在2018年3月发布,版本号将会是18.3,已经规划加入的特性包括JEP 286和296。
根据reddit站点上的讨论,首先更新的是JEP 296,Valhalla预计很快也会加入进来。OpenJDK的主页面则显示,已确定要在18.3版本实现的是JEP 286和296。
JEP 296主要是将JDK仓库群(JDK Repository Forest)合并为一个仓库,旨在降低管理大量仓库群的成本。根据InfoQ之前的报道,该仓库群的合并已经完成。这些软件仓库是在OpenJDK发展史上历次分裂生成的,在OpenJDK 9及以前的版本中将会继续存在。在这次合并操作之前,OpenJDK曾分裂为多个不同的Mercurial软件仓库群,这导致了许多问题,例如不能以原子方式对多个软件仓库应用漏洞修复(Bug Fixes)。在OpenJDK合并完成后,只会有一个软件仓库,并复制在三个开发线上。为了简化仓库的管理,JDK中还创建了用于在合并和未合并版本间移动更改的工具。
JEP 286提议在Java中引入局部变量的类型推断,该JEP在2016年提出,InfoQ曾经报道过该JEP的概况和相关的开发者调查结果。该JEP旨在减少编写Java代码相关的仪式性的内容,提升开发人员的体验,同时还要保证Java语言的静态性。它会减少开发人员在声明局部变量时,没有必要的变量类型声明。如果该JEP实现的话,在声明局部变量的时候,就可以采用类似如下的方式:
var list = new ArrayList(); // infers ArrayList
var stream = list.stream(); // infers Stream
这种语句只能用于带有初始化器(initializer)的局部变量、增强的for-loop中的索引以及传统for-loop中声明的局部变量。它不能用于方法声明、构造函数声明、方法返回值、字段、catch语句以及其他类型的变量声明中。
关于局部变量的类型推断,不管是JVM体系中的语言还是其他语言都提供了一定形式的支持,比如C++(auto)、C#(var)、Scala(var/val)以及Go(通过:=进行声明)。至于该使用var作为关键字,还是使用let或类似于C/C++中的auto作为关键字,之前曾经有过一个面向开发者的调查。大约84%的回答表明定义可变内容的变量用关键字var是恰当的,只有百分之几的回答者建议使用auto更合适。根据Java语言架构师Brian Goetz介绍,该功能应该使用关键词var。
关于该特性的用法,在reddit上有一些讨论。有人表示,即便在支持“auto”语法的语言中,该特性使用的也比较少,因为有些人希望一眼就能看出变量的类型是什么。也有人认为,var有它的适用空间,在小的代码块中,直接用它实例化对象是可以的。如果是作为方法返回值的话,还是希望明确声明类型,Java的类型推断并不支持方法返回值,这一点倒不必担心。如果函数或代码块比较长的话,就不建议使用var了并要考虑适时进行代码的重写。时间和经验将会让我们更加明确应该在何时使用新功能,就像Optional刚出现时,也是耗费了一些时间才明确其推荐适用场景。
Valhalla项目中包含了一些有趣的JEP,包括值类型(Value Type)、针对原始类型实现泛型功能、增强的volatile等,外界很期待这些内容最终也能添加到新版本中。
2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!
未发布 数据库解决方案Data Abstract 9发布丨附下载 Data Abstract 9是一次重要的版本更新,而更重要的是它的基础:Remoting SDK框架。查看详细的更新日志,以获得所有功能、增强和错误修正的完整列表。
未发布 屏幕录制软件ALLCapture常见问题合集(上) ALLCapture是一款实时抓取桌面的屏幕录制软件。实时、快速、轻松地录制屏幕,创建自己的屏幕录像、示例、指南、软件模拟以及无需任何编程的网络视频。制作步骤如此简单:录制-编辑-导出-播放。 使用ALLCapture遇到了问题?我们的FAQ将帮助你找到答案。
1、我的序列号和注册信息都无法使用?
注册信息包括三部分:“序列号”,“字段 #1”以及“字段 #2”-要成功注册你的软件这些信息都是必须。为了确保你的注册没有任何问题,请从发送给你的邮件中复制注册信息,然后粘贴到相应的注册字段。请参考以下截图。
2、ALLCapture对系统的最低要求是?
功能 | 要求 |
主要功能 | Windows 98或更高 最低1.2GHzPentium或兼容CPU 256MB内存 50MB可用硬盘 SVGA显卡,256色 |
对电影或视图截图 | Windows 2000或更高(文件格式为NTFS) 最低2GHz Pentium或兼容CPU 1GB内存 30GB可用硬盘 专业版SVGA显卡,最低显存256MB (非集成显卡) |
3、最大帧速非常慢,我该怎么办?
当ALLCapture显示的帧速小于10FPS(帧每秒)时,要么是显卡不支持要么是驱动过期。用户可用升级电脑的显卡驱动来增加帧速,但是显卡或显卡芯片仍然无法支持。在购买新显卡前我们还是建议先升级显卡驱动。如果驱动升级成功,你可以在ALLCapture中新建一个项目,然后在“录制选项”页中点击“帧速”,然后再点击“刷新帧速最大值”按钮。
4、为什么录制的视频是黑色的一片?
先了解一下处理机制,电影是直接从显卡解码而来,这就是造成黑色一片的原因。Windows只能同时让一个屏幕可用,这样操作系统无法获取在屏幕下面的东西,因此ALLCapture也无法捕捉到。
用户可以通过停用显卡的硬件加速来捕获画面。硬件加速可以从这里找到:“开始>设置>控制面板>显示>设置>高级>疑难解答”,滑动控制条到“没有硬件加速”。
5、为什么ALLCapture没有录制系统声音?
很多笔记本厂商没有配置完整的声卡芯片驱动。这应该是录制驱动识别功能无法识别系统的声卡驱动的原因。对于台式电脑应该安装了提供这个功能的声卡,升级声卡驱动应该可以解决这个问题。
6、我怎样可以把PowerPoint录制为视频?
使用ALLCapture新建一个项目,然后在录制前选择分辨率,例如:800x600像素,打开PowerPoint开始录制,然后开始放映PowerPoint,并立即按下CTRL+SHIFT+P使PPT填充录制窗口,PPT播放完毕即可结束录制,然后剪掉前面的录制让第一页幻灯片的画面为起始页。
提示:如果幻灯片播放太快以至于没有捕捉到第一页ppt画面,你只需在ppt开始处插入空白的幻灯片,这样当播放时点击空白幻灯片后,真正的第一页幻灯片就可以录制到了。