未找到

未发布 【示例教程】如何使用LEADTOOLS 的JAVA接口从护照中识别和提取数据
by Harriet666 keys 分享 1510647780810
LEADTOOLS可帮您开发出功能强大的文档图像应用程序。其主要功能包括综合图像注释,专业的黑白图像显示(例如灰度级和偏黑),以及专业的黑白图像处理。其它功能包括对黑白图像的性能和内存进行优化,文档图像清理(包括倒置文本,去边界,去打孔机和去线)以及使用LEADTOOLS Fast TWAIN和WIA进行扫描。
 
本教程会发布一个java代码片段,你可以用它读一本护照提取其中的数据。记住,为了获得最精确的结果,你需要有一个清晰的图像,这样引擎在这个过程中才能获得精确的结果。
// Set your license
RasterSupport.setLicense(licenseFile, developerKey);

try{
    if(RasterSupport.getKernelExpired()) {
    System.out.println("License NOT Set Successfully");
    }
    else {
    System.out.println("License Set Successfully");
    }

RasterCodecs rasterCodecs = new RasterCodecs();
MRTDReader mrtdReader = new MRTDReader();
String stream = "PASSPORT_IMAGE.jpg";

RasterImage rasterImage = rasterCodecs.load(stream);

OcrEngine ocrEngine = OcrEngineManager.createEngine(OcrEngineType.ADVANTAGE);
ocrEngine.startup(rasterCodecs, null, null, null);

        
mrtdReader.setOcrEngine(ocrEngine);
mrtdReader.processImage(rasterImage);        
mrtdReader.setImproveResults(true);
HashMap ar = new HashMap<>();
ar = mrtdReader.getResults();

String[] string = mrtdReader.getLines();
        
for (String string2 : string) {
    System.out.println(string2);
}
                
for (Map.Entry map : ar.entrySet()) {
MRTDField key = map.getKey();
System.out.println(key);
MRTDDataElement value = map.getValue();
System.out.println(value.getReadableValue());
}
        
ocrEngine.shutdown();
}
catch(Exception e)
{
    e.printStackTrace();
    throw new Exception(e);
}
被识别的护照如下:
 
最终输出的结果如下:

2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 多平台移动项目开发工具Elements发布v9.1,支持Visual Studio 2017
by Harriet666 keys 分享 1499676794095
Elements是一款多平台移动项目开发工具软件,它包含Oxygene、C#、Swift三种编程语言和相关工具,并且提供这三种语言丰富的开发经验以及最新的Fire开发环境,极大的方便开发人员开发软件项目。
 
Elements 9.1点击下载>>>
 


 Fire


此版本是Fire最重要的更新。

性能改进

Fire在许多方面都进行了精简和性能改进。代码编辑器的响应速度更快,例如,在构建过程中CPU占用低。100%的响应一直是Fire的首要目标。Fire的大部分工作都是在极低功耗的12“MacBook”Adorable“上完成的,而我们的基准是,即使是最低端的硬件,Fire也可以使用,9.1版本更是如此。

互动调试控制台

Fire的调试功能在许多方面得到了加强,最出色是引入了新的交互式调试控制台。当你的应用程序进入调试器时,底部控制台视图现在允许你使用调试器命令提示符与调试器进行交互。
在使用LLDB的平台(如Cocoa和一些Island targets)上,你可以使用所有功能访问LLDB的完整命令界面;在其他平台上你会收到我们的edb提示,它提供必要的命令并将随着时间的推移而扩展。
3dac7b36f7c847c484d29ce20110bdabojpg

Gradle References和EBuild

Fire(和Elements构建链)支持Java和Android项目中的显式Gradle References管理。Gradle References现在是项目的第一类成员,就像常规引用一样,它们可以通过“管理引用”表进行添加和更新。Fire还使用我们即将推出的EBuild工具链的技术预览。
9028a442e67b45839026cef980b7bcdfojpg
 

 Visual Studio中的Elements


Visual Studio是Windows上开发人员的主要IDE,Elements 9.1为Visual Studio带来了一些新功能和增强功能。

支持Visual Studio 2017

支持所有新的Visual Studio 2017 IDE。虽然没有Shell,Elements 9.1提供了与已安装的Visual Studio 2017集成,包括专业版、企业版和免费社区版。当然,VS2017中支持所有四种平台和三种语言。
 

 
 Island


我们最初在9版中引入的新版本的Island平台也是这个版本的主要重点,有许多改进和增强和修复:

在Windows 10上运行和调试Linux应用程序

针对Linux的Island开发人员现在可以在Visual Studio、Windows 10 Creators Update或更高版本的本地机器上无缝地运行和调试他们的应用程序,只需点击“ 开始 ”或按F5。
f54702d38b3c44e28301c258b27bb1f9ojpg
 
 

新的子平台:ARM上的Android NDK和Linux

Elements 9.1中Island平台支持两个新的子平台。除了支持英特尔x64之外,Linux应用程序现在可以定位armv6和更高版本的CPU。你可以开发在嵌入式设备上运行的Island应用程序,从Raspberry Pi一直运行到Bare ARM系统等。
此外,我们还添加了Android NDK作为一个brad新的子平台,允许你使用NDK、Oxygene、C#、Swift和Java语言创建Android应用程序扩展(或整个应用程序)。

支持Library

EUnit、Elements RTL和Delphi RTL都已经移植到了这个版本的Island,现在在使用这些(可选)库时,可以在所有三个平台上同步。
 

 
 Libraries


Elements RTL

Elements 9.1正式引入了新的跨平台兼容性库Elements RTL。代替“Sugar”,Elements RTL是一个可选的库。无论你是在编写一个iOS应用程序并计划移植到Android,还是要创建Mac和Windows版本的桌面应用程序,Elements RTL可以轻松共享代码。
当然,Elements RTL也支持我们新的Island平台。

Delphi RTL改进

用于将Delphi代码移植到Oxygene的Delphi RTL兼容性库得到了改进。它现在基于Elements RTL,并且也适用于Island,使其成为跨所有Elements targets的真正跨平台。
未发布 扫描识别工具Dynamic Web TWAIN使用教程:属性/方法/事件介绍
by Harriet666 keys 分享 1511947096620
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
本文为你介绍Dynamic Web TWAIN中属性/方法/事件的具体操作代码,欢迎收藏。
 
Dynamic Web TWAIN最新版免费下载>>>
 
当正确实施后,Dynamic Web TWAIN将在页面加载后自动初始化。一旦初始化,你就可以像堆任何正常的JS对象一样控制它。您可以参考我们的在线API文档来查看Dynamic Web TWAIN的所有内置属性、方法和事件。
 
这里有三种使用Dynamic Web TWAIN的方法:

属性

属性用于在运行时从Dynamic Web TWAIN中获取或设置特定的值,例如Resolution、Duplex、IfShowUI等。
1
2
3
/* Property */
/* Scan pages in 200 DPI */
DWObject.Resolution = 200;

方法

方法用于调用Dynamic Web TWAIN对象的内置函数,如AcquireImage、SaveAsJPEG、Rotate等。语法非常简单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Method
   
///
<summary> /// Rotates the image of a specified index in buffer by a specified angle.
  /// </summary>
///
<param name="sImageIndex" type="short" data-filtered="filtered">
specifies the index of image in buffer. The index is 0-based.
 
///
<param name="fAngle" type="float" data-filtered="filtered">
specifies the angle.
///
<param name="bKeepSize" type="bool" data-filtered="filtered">
specifies whether to keep the original size
///
<returns type="bool" data-filtered="filtered"></returns>
DWObject.Rotate(0, 45, false); // rotate the 1st image in the buffer by 45 degrees

事件

当达到某个触发点时触发事件。例如,OnMouseClick鼠标点击事件等。与属性和方法相比,事件是有点难度的。在这里我们再多谈一下。
 
处理事件
添加一个事件监听器
 
要添加事件监听器,可以使用内置方法RegisterEvent。请参考下面的示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
/* OnWebTwainReady event fires as soon as Dynamic Web TWAIN is initialized and ready to be used. It is the best place to add event listeners */
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", Dynamsoft_OnPostTransfer);
}
function Dynamsoft_OnPostTransfer() {
   /* This event OnPostTransfer will be triggered after a transfer ends. */
   /* your code goes here*/
}
</script>
 
在上面的代码中,我们添加了JavaScript函数Dynamsoft_OnPostTransfer()作为事件OnPostTransfer的事件监听器。另外,你可以写这样的代码:
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", function() {
    /* your code goes here*/
   });
}
</script>
 
有参数的事件
一些事件具有参数。以OnMouseClick事件为例:
1
2
/* sImageIndex is the index of the image you clicked on*/
OnMouseClick(short sImageIndex)
 
当您创建相应的JavaScript函数(AKA,事件侦听器)时,可以包含参数并在运行时进行检索。
1
2
3
function DynamicWebTwain_OnMouseClick(index) {
    CurrentImage.value = index + 1;
}

或者
1
2
3
DWObject.RegisterEvent("OnPostTransfer", function(index) {
    CurrentImage.value = index + 1;
});
 
特殊事件 -“OnWebTwainReady”
在所有的内置事件中,有一个特殊事件“OnWebTwainReady”。基本上这个事件在Dynamic Web TWAIN对象被初始化并准备好使用的时候触发。正如您在本文前面看到的那样,推荐使用它的方法是:
1
2
3
4
5
6
7
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
}
</script>

或者
1
2
3
4
5
<script type="text/javascript" data-filtered="filtered">
   Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', function() {
     DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   });
</script>

本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!

未发布 Excel组件包TMS FlexCel for VCL & FireMonkey v6.17.1.0发布丨附下载
by Harriet666 keys 分享 1507541639352
FlexCel for VCL / FireMonkey是一款处理Excel文件的Delphi XE, XE2控件套包。更有大量的API能直接读写本地Excel文件。Flexcel可完成在未安装Excel的OS-X或Windows系统的机器上读取或创建复杂的电子数据表。

TMS FlexCel for VCL & FireMonkey最新版下载
 
v6.17.1.0

修复:
  • 6.17安装包可能导致访问冲突。如果你安装了6.17,请更新到6.17.1。
 
v6.17.0.0

新增:
  • 完全支持xlsx文件中的Excel表
  • 可将自动图形添加到图表
改进:
  • 在TFlxFormulaErrorValue中支持#GETTING_DATA错误
  • 支持使用INDIRECT函数返回数组
  • 加载字体以导出到PDF时减少内存的使用
  • 现在TExcelFile.RenderObject可以在组内渲染形状,并使用objectPath参数指定对象的名称
  • 改进了包含数千个超链接的报告的性能
  • FlexCel现在将保留xlsx文件中的嵌入式OLE对象
  • Github中提供的所有示例

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月30日

未发布 屏幕录制软件ALLCapture常见问题合集(上)
by Harriet666 keys 分享 1504776846597
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没有录制系统声音?

很多笔记本厂商没有配置完整的声卡芯片驱动。这应该是录制驱动识别功能无法识别系统的声卡驱动的原因。对于台式电脑应该安装了提供这个功能的声卡,升级声卡驱动应该可以解决这个问题。
 
如果你使用的是Vista,请查看示例
 

6、我怎样可以把PowerPoint录制为视频?

使用ALLCapture新建一个项目,然后在录制前选择分辨率,例如:800x600像素,打开PowerPoint开始录制,然后开始放映PowerPoint,并立即按下CTRL+SHIFT+P使PPT填充录制窗口,PPT播放完毕即可结束录制,然后剪掉前面的录制让第一页幻灯片的画面为起始页。

提示:如果幻灯片播放太快以至于没有捕捉到第一页ppt画面,你只需在ppt开始处插入空白的幻灯片,这样当播放时点击空白幻灯片后,真正的第一页幻灯片就可以录制到了。
未发布 FILEminimizer Office,FILEminimizer Suite和FILEminimizer Server常见问题FAQ合集(一)
by Harriet666 keys 分享 1506590193036
 
1、我的序列号和注册信息都无法使用?

注册信息包括三部分:“序列号”,“字段 #1”以及“字段 #2”-要成功注册你的软件这些信息都是必须。
为了确保你的注册没有任何问题,请从发送给你的邮件中复制注册信息,然后粘贴到相应的注册字段。
请参考以下截图。
 
2、我忘记了我的注册信息和/或应用程序下载的链接,我怎么样才能重新找回它们?

请直接联系中国经销商重庆慧都科技有限公司
请提供给我们您的Cleverbridge相关信息。这些信息包含在您完成采购的确认邮件里面,和您的发票上面。
请注意如果没有这些信息的话,balesio将会收取您恢复注册信息的费用。
 
3、我可以得到技术支持吗?

每个注册的balesio用户都可以得到我们的技术支持。然后,因为我们的销售和支持团队会收到大量的提问,所有回复这些提问的优先权由以下因素决定:
  1. 拥有有效Premium Pack的注册用户(包括所有的软件升级,更新和技术支持的年费)
  2. 注册用户
  3. 提一般支持问题的非注册用户
对于提出支持请求的注册用户,请提供给我们您的Cleverbridge相关信息。这个信息可以在你完成购买后的确认邮件中找到和您的发票信息中找到。
 
4、我的支持请求需要提供什么样的信息?

当报告问题时,请提供包括以下的信息:
  1. 如果要求的话,您能重现问题吗?如果可以,怎么重现?
  2. 你在运行哪个版本的Windows操作系统(Windows XP、Windows Vista等等)?
  3. 你在运行balesio哪个版本的软件和产品(Help | “About FILEminimizer Office”)?请在你的问题报告中包括完整的“version”。
  4. 如果对话框中出现了错误的信息,请提供包括对话框和标题栏的文本信息。
5、我可以压缩什么类型的PowerPoint文件?

您能优化微软PowerPoint 97至2010创建的任何版本的PowerPoint文件。FILEminimizer完全支持Office 2010所有的新格式文件(PPTX)。即便已创建为OpenOffice或StarOffice文件,只要它们被保存为微软PowerPoint格式,也是可以被优化的。
 
6、我可以压缩什么类型的Word文件?

您能优化微软Word 97至2010创建的任何版本的Word文件。FILEminimizer完全支持Office 2010所有的新格式文件(DOCX)。即便已创建为OpenOffice或StarOffice文件,只要它们被保存为微软Word格式,也是可以被优化的。
 
7、我可以压缩什么类型的Excel文件?

您能优化微软Excel 97至2010创建的任何版本的Excel表格。FILEminimizer完全支持Office 2010所有的新格式文件(XLSX)。即便已创建为OpenOffice或StarOffice文件,只要它们被保存为微软Excel格式,也是可以被优化的。
 
8、可作为哪个微软Outlook版本的插件?

Outlook 2000以后的都可作为插件。
 
9、可作为哪个IBM Lotus Notes版本的插件?

Lotus Notes 6.0以后的都可作为插件。
 
10、我压缩了我的文件,压缩后的文件很小,是怎么回事呢?

FILEminimizer优化图表,图片和包含在PowerPoint, Word 和 Excel文件中的嵌入对象。下面的一些因素可能解释压缩成小文件的结果:
  • 你在你的PPT或PPS幻灯片中包含了音频或视频文件
  • 你在大型的Excel表格上操作,这个表格包含了大量宏,但是却没包含图像,或少量的图像
  • 你的文件被加密了和/或在优化的时候,它正在使用中
  • 你正在设法优化已损坏或被破坏的文件
  • 你正设法优化版本非常老的文件(Office 95或更早)
11、我不能通过“打包/发送”或“邮件文件”按钮来发送我的文件。

此功能是使用Windows操作系统中的MAPI接口。操作系统通过这个程序接口,进行数据的交互,并将其发送到适当的电子邮件软件。如果
您的电子邮件软件不支持此MAPI接口,您将得到一个错误信息。请检查您的电子邮件程序是否支持这个接口,并检查这个软件是否被指定
为Internet选项中默认电子邮件程序。

12、我能采用批处理方式对几个文件进行选择和优化吗?
是的,当然可以。可有不同的方式来实现:
  1. 通过Windows Explorer或FILEminimizer搜索功能对您此处的文件进行浏览
  2. 选择几个文件或直接用CTRL + A选择全部文件
  3. 右键单击选定的文件,并在菜单中选择“FILEminimizer”,将所有的兼容文件加载到FILEminimizer中
  4. 如果FILEminimizer是打开的,您可直接将文件“拖拽”到程序中
  5. 您也可以使用工具栏上的“打开”选项,在FILEminimizer中选择你的文件进行优化

未发布 网络安全工具FileAudit更新v5.5 Beta版本,新增访问事件
by Harriet666 keys 分享 1514279161521
FileAudit可用于对Windows服务器上文件和文件夹的所有访问进行主动跟踪、审核、报告和警告。
 
 
FileAudit v5.2新功能

新增:
  • 新视图 - 特定用户执行的访问事件。
  • 新视图 - 在特定路径/文件上执行的访问事件。
  • 新视图 - 通过双击事件中的细节。
  • 安装文件夹中提供的新工具(FileAuditReporter)来访问归档数据库。
  • 不通过邮件发送就能生成预定的报告。
  • 可以选择保存计划报告的文件夹。
  • 能够保存所有预定报告的历史记录。
  • 可以在更改远程连接设置时重新启动FileAudit服务。
  • 发送通知到Slack。
  • 在“设置”部分保存系统。
  • 在生成预定报告出现错误时时发出警告通知。
  • 根据用户权限,访问未被授权时,仪表板中的Tiles将变灰。
修复:
  • 如果FileAudit只有一个管理员,可能会拒绝任何人访问控制台。
  • 在用户过滤器中排除用户的语法与用于排除组过滤器中的组的语法不一致。
  • 文件访问查看器中的对象类型筛选器和法语版本中的预定报告不能正确筛选。
  • 安装.exe文件的详细信息有不正确的版权信息。
  • 程序和功能”窗口对话框中的字段是错误的。
  • 使用远程控制台访问“文件访问查看器”时没有“配置设置”权限会出现异常。

未发布 LEADTOOLS HTML5 Medical Viewer(云PACS)本地部署指南
by Harriet666 keys 分享 1517902071278

Leadtools 19总套包下载>>>

相关部署文件所在位置:C:\LEADTOOLS 19\Shortcuts\Medical Viewers\.NET Class Libraries\HTML5 Medical Viewer\Medical Web Viewer
部署步骤:
image
 
1.数据库以及PACS服务部署。
点击“01 - Run This First To Config 32-bit Demos”图标,进入数据库部署页面
image
image
 
提示保存成功后会进入PACS服务配置页面
image
配置完成后关闭即可
 
2.WEB服务相关部署。
2.1点击“02 - Run This Second to Run the Medical Web Viewer 32-bit Demo”,弹出配置窗口后点击“Fix”按钮
image
 
2.2点击Next按钮,下个界面继续点击Next
image
 
2.3确保在最后一个界面是Success提示,可以点击Test按钮对服务进行测试,确认无误后关闭该窗口,回到上一个窗口
image
 
2.4点击“Run Viewer”按钮即可在浏览器进行浏览,用户名和密码即为刚才在数据库设置时填写的字符。
image
 
2.5部署完成后可以在系统IIS管理器中看到相关的服务
image
6
未发布 Oracle正式发布Java 9,引入新的Java编程组件
by Harriet666 keys 分享 1506566182619
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是否依然能够在服务端技术中占据领导者地位尚有待观察。
更多资讯点击查看>>>



未发布 开源的跨平台移动开发利器Xamarin Studio v6.3发布丨附下载
by Harriet666 keys 分享 1492590701399

Xamarin Studio是跨平台移动开发(IDE)利器。Xamarin Studio是一个开发效率很高的移动开发工具,开发者可以轻松查看iOS、Android和OS X APIs,快速查询类型、方法和API功能,而且不会打乱你的思路。

【最新版Xamarin Studio点击下载>>>】

Xamarin Studio v6.3更新内容


苹果开发者帐户管理

此版本介绍了使用Xamarin Studio来管理Apple开发人员帐户和iOS / macOS代码签名权限的功能。新界面提供了查看与Apple ID相关联的所有开发团队的方法,并显示每个团队的签名身份和配置文件列表。
选择首选项>发布> Apple开发者帐户来添加一个Apple ID。 Apple ID验证需要在fastlane的命令行上执行。必须安装fastlane才能认证成功。有关fastlane以及安装方法的更多信息参见fastlane文档

已知的问题

登录过程不支持打开两步身份验证的帐户。
[Bug#53906]团队详细信息对话框为空。在某些情况下,即使在用户计算机上安装并且有效也不会显示签名身份和配置文件。我们会尽快发布一个解决方案。

iOS

在设备上调试App Extensions

新版本的Xamarin Studio可以在设备上调试iOS App Extensions。为了实现这一点,首先你需要编辑你现有App Extension项目的项目选项,然后更改位于iOS调试器设置页面中的调试器端口设置。建议将端口更改为10000以上的值。
新的App Extension项目将自动被分配一个随机的调试器端口,以避免将来出现这个问题。

改进执行目标

iOS加载项正在使用Xamarin Studio 6.3中引入的主工具栏的新功能来改善用户体验,例如自定义图标、工具提示和执行目标标灰的功能。
我们还改进了我们的逻辑,可以为你显示连接到Mac的设备,并告诉你为什么它们不可用于部署。
这是非常好的,因为很多类型的设备不可用:错误的设备系列,错误的功能或不符合部署目标的操作系统版本。
现在,你的设备将显示在“不可用设备”中,并在名称旁边有简要说明。如果你将鼠标放在设备名称上,则会提示更多详细信息。
以下是所有更改的列表:
  • iOS、watchOS、tvOS和macOS的主要工具栏中的新设备图标。
  • 当无法显示模拟器或设备时,在“Build Only”菜单分隔符下有Generic Simulator / Device。
  • 总是在工具栏中显示“设备”菜单分隔符,就像对模拟器一样。
  • Mac项目现在使用iMac图标显示名为“MyMac”的实际执行目标,而不是使用iPhone图标显示“Default”。

音频单元向导

新的音频单元扩展向导添加了3个选项来自定义音频单元项目模板的plist。
  • 音频单元类型
    • 仪器
    • 发生器
    • 效果
    • 音乐效果
  • 子类型代码:必须是4个字符
  • 制造商代码:必须是4个字符

删除TLS Provider选项

iOS构建选项中不需要TLS Provider,因为:
  1. AppleTLS是自C7以来的默认值,支持TLS 1.2。
  2. MonoTLS仅限于SSLv3和TLSv1:两者都已被弃用。
注意:Xamarin.iOS 10.4发行说明已经提到MonoTLS已被弃用,将来会被删除。

其他改进和bug修复

  • 现在部署到设备时会显示一个进度条。这对于watchOS来说尤其有用(需要Xamarin.iOS 10.5.0.323+)。
  • 现在使用Xamarin.iOS的已知操作系统版本来填充部署目标下拉列表。这两个优点是可以为每个App Extensions类型提供精确的最低版本,并避免显示基于Xcode的Xamarin.iOS尚不支持的操作系统版本。
  • 存在于Images.xcassets(或Assets.xcassets)目录中的* .csproj文件未导入的任何图像资源都将被忽略。

调试器

  • 在异常情况下支持HelpLink。点击异常对话框顶部的更多信息将打开默认浏览器中的链接。

微软身份

  • Xamarin Studio不再需要启动外部进程,以便在登录到Microsoft帐户时获取登录详细信息。

一般

  • “新建项目”对话框现在显示最近使用的模板列表。
  • Xamarin.UITest项目模板已更新到最新的版本。
    • Xamarin.UITest 2.0.6
    • Xamarin.TestCloud.Agent 0.20.3

 近期热门 - 点击最多
  1. ZOT 极简而强大的 Docker OCI 镜像仓库
  2. 用podman代替docker更轻量更安全的云原生容器:替换国内镜像源web窗口管理及开机自动重新启动
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Node.js 打印vite react+go项目目录树
  5. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  6. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  7. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  8. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  9. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  10. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别

  全端社区 - 最新回复
  1. 本地与云 MQTT通信:消息格式定义与配置
  2. MQTT 桥接(Bridging)介绍:解决弱网可靠传输、断网续传
  3. Mosquitto消息中间件简介与部署:本地MQTT服务器部署
  4. MediaMTX 摄像头部署与配置教程
  5. 在网页上播放摄像头RTSP视频流:实时摄像头在线播放的几种架构
  6. 让Docker在Gitea CI/CD流水线中登录http仓库:手写Docker认证信息
  7. ZOT 极简而强大的 Docker OCI 镜像仓库
  8. 用podman代替docker更轻量更安全的云原生容器:替换国内镜像源web窗口管理及开机自动重新启动
  9. 在无管理员权限的情况下,使用安装Python补全pip临时配置环境变量;即零权限使用node.js/npm
  10. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA