JBoss Data Virtualization(JDV)是数据集成解决方案,在有多个数据资源的时候,把他们作为单个数据资源对待,在规定的格式传递正确的数据,在正确的时间传递给任意的应用或者用户。主要特性:敏捷开发,安全虚拟数据层,实时数据访问和配置。
谢汉嘉 发布的最新帖子
-
数据集成解决方案JDV
-
caddy服务器
caddy快速的,跨平台的HTTP/2 Web服务器。Caddy是一个强大的、可扩展的平台,可以为您的站点、服务和应用程序提供服务,它是用Go编写的。虽然大多数人使用它作为web服务器或代理,但其实他支持更多的功能:
Caddy是唯一自动且默认使用HTTPS的web服务器。反向代理sidecar代理;负载均衡器、拥有API网关、ingress控制器、系统管理器、进程supervisor、任务调度器。
Caddy可以简化基础设施。它负责TLS证书更新、OCSP绑定、静态文件服务、反向代理、Kubernetes访问等。它的模块化架构意味着您可以使用为任何平台编译的单个静态二进制文件做更多的事情。Caddy在容器中运行得很好,因为它没有依赖项—甚至libc也没有。几乎在任何地方都能运行Caddy。
Caddy是唯一自动且默认使用HTTPS的web服务器。Caddy为您的站点自动获取和更新TLS证书。它甚至会固定OCSP响应。其新颖的证书管理功能是同类产品中最成熟、最可靠的。用Go编写的Caddy提供了比用c编写的服务器更大的内存安全性。
Caddy是一个灵活、高效的静态文件服务器,也是一个强大的、可伸缩的反向代理。使用它来为您的静态站点提供压缩、模板评估、Markdown呈现等服务。或者将其用作任意数量后端的动态反向代理,包括主动和被动健康检查、负载平衡、断路、缓存等等。
-
java stream 是什么
流是一个 Node.js 中必须需要掌握的概念。流(Stream)是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理。
什么是流?流是一种抽象的数据结构。想象水流,当在水管中流动时,就可以从某个地方(例如自来水厂)源源不断地到达另一个地方(比如你家的洗手池)。我们也可以把数据看成是数据流,比如你敲键盘的时候,就可以把每个字符依次连起来,看成字符流。这个流是从键盘输入到应用程序,实际上它还对应着一个名字:标准输入流(stdin)。
如果应用程序把字符一个一个输出到显示器上,这也可以看成是一个流,这个流也有名字:标准输出流(stdout)。流的特点是数据是有序的,而且必须依次读取,或者依次写入,不能像Array那样随机定位。
简短的定义流就是“从支持数据处理操作的源生成的元素序列”。元素序列——就像集合一样,流也提供了一个接口,可以访问特定元素类型的一组有序值;源——流会使用一个提供数据的源,如集合、数组或输入/输出资源。数据处理操作——常用操作,如filter、map、reduce、find、match、sort等且支持并行。
流水线——很多流操作本身会返回一个流,这样多个操作就可以链接起来,形成一个大的流水线;内部迭代——与使用迭代器显式迭代的集合不同,流的迭代操作是在背后进行的
项目地址:
https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html -
体系化了解Nginx
Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单。
Nginx 和 Node.js 的很多理念类似, HTTP 服务器、事件驱动、异步非阻塞等,且 Nginx 的大部分功能使用 Node.js 也可以实现,但 Nginx 和 Node.js 并不冲突,都有自己擅长的领域。Nginx 擅长于底层服务器端资源的处理(静态资源处理转发、反向代理,负载均衡等), Node.js 更擅长上层具体业务逻辑的处理,两者可以完美组合。Nginx 特点:高并发、高性能;模块化架构使得它的扩展性非常好;异步非阻塞的事件驱动模型这点和 Node.js 相似;相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性;热部署、平滑升级;完全开源,生态繁荣;
-
轻金融下的体验式设计
Robinhood定义了轻量级的体验式设计思维,崇尚极简,易用交互,强化交易认知等等。这种通道“规则”在这个时代,总会有人本着以股民的名义去打破,来自斯坦福的两个数学天才Vlad Tenev和Baiju Bhatt,就做出了一款零佣金的股票交易app-RobinHood,可以零佣金购买或出售美国上市公司股票和交易所交易基金(ETF)。 从客户未投资的现金余额中获得累计利息。客户在账户的现金余额会产生利息收入,这块被RobinHood拿去,这与普通的余额模式恰恰相反,普通模式针对账户上的现金余额,往往都提供余额理财等现金宝产品,让客户获取到一定的收益,以提升留存。 从客户的保证金账户上获得证券利息收入。美帝与国内的交易所有些区别,RobinHood从像BATS这样的交易所走交易,BATS这样的交易所是需要付钱给券商来买交易量的,所以变相的获取到证券利息收入。 增值付费服务。RobinHood把客户的账户体系分为了多层,从最基础的cash account到margin account,账户服务内容是有差别的,除了公有的免佣服务还提供相应的增值付费产品,客户购买这些产品获得更高级的服务。
RobinHood是纯基于互联网基因的券商,只有移动端,没有桌面以及网页端。我们从整个体验流程来剖析它的产品设计,也知晓下未来纯互联网券商的设计思路。
从Robinhood的商业模式来看,它的优点也十分明显,零佣金、开户便捷、支持埋单交易、及时提醒、极简的体验式设计等。但是,也有其对应的缺点,没有客服体系(仅支持email联系和twitter上的问答,及时性较差),不支持稍微复杂的交易方式等。目前,Robinhood只为SSN的客户提供服务,而且Robinhood的投资者客户基本年龄平均在27岁,可能对于投资者的风险认知设计方面稍有欠缺,当然它也提供培训服务。 Robinhood定义了轻量级的体验式设计思维,崇尚极简,易用交互,强化交易认知等等
-
分布式集群缓存系统Infinispan
Infinispan 是个开源的数据网格平台。它公开了一个简单的数据结构(一个Cache)来存储对象。虽然可以在本地模式下运行Infinspan,但其真正的价值在于分布 式,在这种模式下,Infinispan可以将集群缓存起来并公开大容量的堆内存。这可比简单的复制强大的多,因为它会为每个结点分配固定数量的副本——服 务器故障的一种恢复手段——同时还提升了可伸缩性,这是由于存储每个结点所需的工作量是与集群大小息息相关的。
Infinispan提供了一种简单的机制来利用大容量的堆内存。如果对每个结点维护一个拷贝,假如集群当中有100个结点,每个结点分配2GB的堆内存, 那么网格中的任何实例都能使用多达100GB的空间,这可都是内存,显然速度会非常快。同时Infinispan还兼容于JTA,这样它就能很好地处理事务 了。我们还有一个超级强大的异步API,它可以保证同步的网络调用以及异步调用的并行性及可伸缩性。比方说:Future f = cache.putAsync(k, v) 可以阻塞线程,再调用f.get()可以让网络调用继续进行或是忽略掉f。更为重要的是,线程还可以做别的事情,这一点非常有用。然后再回来通过调用 f.get()来检查该网络调用是否能继续进行。可以将其看作是NIO与传统的阻塞性IO之间的关系。
Infinispan公开了一个CacheStore接口和几个高性能的实现,包括JDBC CacheStores、基于文件系统的CacheStores以及Amazon S3 CacheStores等等。CacheStores可用作“温启动(warm starts)”或是确保网格中的数据在重启后依然可用,同时在内存耗尽时还能将数据写到磁盘上。
Infinispan的主要特点:大量的堆体、极高的可扩展性、快速轻量级核心、不仅仅支持Java(PHP,Python,Ruby,C…)、支持Compute Grids;管理是关键:当你在grid上运行几百个服务时,实现管理是必须的。
项目地址: http://infinispan.org/
-
# 数据分析指标体系的底层逻辑
在我们日常工作中会遇到很多数据,比如在活动运营时的一些相关数据,这些数据增加后需要的数据指标也越来越多,所以建立数据分析指标体系是非常重要的。如果缺乏数据指标体系和分析方案,就会难以判断整体业务发展状况、难以衡量产品/活动效果、等等。
数据指标就是对抗不确定的,一个问题,往往有很多方面,只用一个指标不能充分说明问题。这就需要一组有逻辑的数据指标来描述,这就是数据指标体系。
数据指标体系分为五大件,第一要素:主指标(一级指标),用来评价这个事到底咋样的最核心的指标。第二要素:子指标(二级/三级指标)。第三要素:过程指标,主指标往往是最终的结果。第四要素:分类维度。第五要素:判断标准。在构造指标体系的时候,往往这些判断标准是和当前数据一起呈现的。这样在看数据的时候,可以直观的做出判断,使用起来就很方便了。基于指标体系的诊断,只解决战术问题,不解决战斗层面的细节问题。
我们通过“数据”去发现问题,分析问题,并且解决问题。而通过这套搭建基本数据分析指标体系的底层逻辑可以让这件事情变得事半功倍,从源头发现问题;借助体系化的工具,在日常工作中可以监控业务,发现问题,科学的制定业务目标,在追踪业务过程找到改进的切入点。
但是,后续的实际工作中,建立数据指标体系需要各部门紧密沟通,还需要对公司业务和各部门职能的深刻 理解,更要针对业务痛点,做细分板块的深入数据分析等等。 -
Vim-WebAssembly编译器vim.wasm
vim.wasm 是 Vim 编辑器的实验分支,该项目的目标是通过将 Vim C 源编译为 WebAssembly 来在浏览器上运行 Vim 编辑器。
使用时的注意事项:请通过桌面浏览器(Chrome / Firefox / Safari / Edge)访问。 请避免网速过慢。vim.wasm 从 DOM keydown中获取关键输入。请停用影响关键输入的浏览器扩展程序。
该项目处在非常早期的实验阶段,目前仅支持微小功能。如果输入内容无任何反应,请尝试单击页面。可以通过 :e tutor 尝试 vimtutor。可用 :quit退出 Vim,但该命令不会关闭浏览器选项卡,请手动关闭。
embed-wasm crate 允许开发者用 Rust 写端到端的应用。后端被编译为本地 Web 服务器应用程序,前端被编译为 wasm 并从后端提供给浏览器(因此将前端“嵌入”在后端中)。
Wasmtime 中的 WebAssembly Reference 类型,WebAssembly reference 类型来啦!这篇博客文章解释了 WebAssembly reference 是什么,以及如何启用从非 JavaScript 主机调用 WebAssembly 函数。对于服务端的 WebAssembly 而言,这是非常重要的进步。
Motoko, 一个能直接用在互联网的编程语言,Motoko 由 Difinity 团队设计开发,专门针对 WebAssembly 设计。这篇发表在 Stackoverflow 上的博客文章解释了发明 Motoko 的原因。Motoko 是用于 Internet of computer(基于 WebAssembly 的去中心化云计算平台)的最佳语言。
-
Qt安装包制作框架QtInstallerFramework
Qt Installer Framework 是 Qt 官方提供的安装包制作框架。
使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布。这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中。其优势是简单单一,所有的依赖库都集中在一起,其缺点也很明显,可执行程序体量较大,光Qt核心库加起来就得十多兆。(2)制作安装包发布。这种方式的原理也简单,就是将可执行程序和其依赖的库文件一起打包压缩,制作成安装包发布。
制作安装包的工具挺多,一般使用最多的是Qt官方的安装包制作框架 Qt installer framework ,广泛应用于 Qt SDK, Qt Creator 等安装包产品。第三方的如 MSYS2 也是使用的 QTIF。
制作安装包只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程。配置文件为config.xml。
Qt Installer Framework 提供了一组工具和程序来创建安装程序,并在不重写源代码的情况下将它们部署到所有受支持的桌面 Qt 平台上。安装程序具有本地化外观,并且可以感知运行的平台: Linux,Microsoft Windows,和 OS X。
Qt安装框架工具生成具有一系列页面的安装程序,页面可在安装,更新或者卸载期间引导用户。你只需要提供需要安装内容,并且指定安装信息,譬如产品和安装包的名称,以及许可协议文本。
你可以通过向预定义的页面添加小部件,或添加整个页面来为用户提供额外的选项,来自定义安装程序。你也可以通过创建脚本的方式来添加额外的操作。
项目地址: http://download.qt.io/official_releases/qt-installer-framework
-
AndroidUI组件库ByRecyclerView
ByRecyclerView 是基于 RecyclerView 的扩展,提供了上拉刷新、加载更多、 添加 HeaderView/FooterView、setStateView、item 点击/长按监听、万能分割线、粘性 header、极简 Adapter(databinding) 等功能,有效地解决了 XRecyclerView 和 BRVAH 其中的问题。
ByRecyclerView 的功能特性包括:支持 下拉刷新、加载更多;可随意切换 自带下拉刷新布局 / SwipeRefreshLayout;加载更多机制:不足一屏上拉加载,超过后触底加载;可设置自定义、下拉刷新布局和加载更多布局;可添加/移除 HeaderView、FooterView;设置空布局 EmptyView;添加item及子view的点击/长按事件。
ByRecyclerView 优化的BaseAdapter ,减少大量代码;Adapter结合DataBinding使用;可添加万能分隔线;可配置粘性header,StickyView;默认使用AndoridX,且支持Support。