DuQi_NKU DuQi_NKU / 15 天前

vavr:让你像写 Scala 一样写 Java

本文阅读时间大约7分钟。 Hystrix是Netflix开源的限流、熔断降级组件,去年发现Hystrix已经不再更新了,而在github主页上将我引导到了另一个替代项目——resilience4j,这个项目是基于Java 8开发的,并且只使用了vavr库,也就是我们今天要介绍的主角。 Lambda表达式 既然要谈vavr,那么先要谈为什么要使用vavr,vavr是为了增强Java的函数式编程体验的,那么这里先介绍下Java中的函数式编程。 Jav......

Java Scala vavr

开发者头条 开发者头条 / 15 天前

一键生成果照,程序员又出奇葩软件

感觉最近程序员届就没消停过,前段时间搞出了非常火的换脸的技术叫做Deepfake,简单说就是利用深度学习的技术在收集到足够数据的情况下,能把一个视频中的某个人物的脸完全换成另一个人的脸。这个技术一出来,饱受争议。 后来没多久,又是程序员,又是很针对性的,搞出来一个叫做原谅宝的App。这个程序员从无数个色情网站采集了100TB的数据,采集完了之后他还做了一件事情,把这些视频拿去跟微博之类的社交......

人工智能 Deepfake

LiveVideoStack LiveVideoStack / 15 天前

5G 时代是时候全面解决 TCP 的效率问题了

回顾过去一年工业界在实时网络方面的探索,大量的篇幅留给了基于UDP的SRT、QUIC等明星协议,包括Google以及国内的B站都有令人欣喜的实践。但不可否认TCP在整个互联网依然占据统治地位,UDP并非银弹。本文由LiveVideoStack对Cascade Range Networks CTO/联合创始人范醒哲的邮件采访整理而成,作为一名研究UDP和TCP十多年的老兵,范醒哲剖析了UDP与TCP的优势与不足,并预测了5G将带来的网络协议与应用变革。在Liv......

TCP 5G

老张 老张 / 15 天前

nmon2influxdb + grafana:服务监控可视化部署

在工作中,无论是定位线上问题,还是性能优化,都需要对前端、后台服务进行监控。而及时的获取监控数据,能更好的帮助技术人员排查定位问题。 前面的博客介绍过服务端监控工具:Nmon使用方法及利用easyNmon实时监控并生成HTML报告的相关内容。但相对来说,这两种方式效率较低。 这篇博客,介绍下基于Nmon二次开发的监控插件——nmon2influxdb+grafana,实现服务端监控实时可视化的内容。。。 一、下载安装 ......

监控 部署 可视化 Grafana nmon2influxdb

y277an y277an / 15 天前

详解并发下的 HashMap 以及 JDK 8 的优化

HashMap的数据结构HashMap在并发时出现的问题1.多线程put的时候可能导致元素丢失主要问题出在addEntry方法的new Entry (hash, key, value, e),如果两个线程都同时取得了e,则他们下一个元素都是e,然后赋值给table元素的时候有一个成功有一个丢失。 2.多线程put后可能导致get死循环造成死循环的原因是多线程进行put操作时,触发了HashMap的扩容(resize函数),出现链表的两个结点形成闭环,导致死循环。下图为J......

JDK 并发 HashMap

风来风往风伤(TiAmo) 风来风往风伤(TiAmo) / 16 天前

分享 Django + Linux + Uwsgi + Nginx 项目部署文档

Django+Linux+Uwsgi+Nginx项目部署文档 WSGI 在生产环境中使用WSGI作为python web的服务器 WSGI:全拼为Python Web服务器网关接口,Python Web服务器网关接口,是项目默认会生成一个wsgi.py文件,确定了设置模块,uWSGI实现了WSGI的所有接口,是一个快速,自我修复,开发人员和系统管理员友好的服务器,C语言编写,效率高 Nginx 使用nginx的的作用主要包括负载均衡,反向代理 项目通过Django+Uwsgi+Ngi......

Nginx Linux Python 部署 Django uWSGI

涯之叶 涯之叶 / 16 天前

带你学加密之 Base64

* 前两天,某OA的RCE在圈子里炒的风风火火,在被公开的PoC的请求数据中,有一种比较怪异的编码,后来被大佬们审计出来是厂商自定义码表的Base64。Base64是一种非常简单而且流行的编码方式,今天就带大家来实现一个口算Base64的小目标。 Base64基础Base64,顾名思义,就是基于大小写英文字母、数字,以及+和/共64个字符对任意字节数据进行表示的编码算法,通常用于文本协议中二进制数据传输的场景。 它的大家族......

安全 加密 Base64

闲鱼技术 闲鱼技术 / 16 天前

面向未来的黑科技:UI2CODE 闲鱼基于图片生成跨端代码

DEMO演示 一直以来,如何从‘视觉稿’精确的还原出对应的UI侧代码一直是端侧开发同学工作里消耗比较大的部分,一方面这部分的工作比较确定缺少技术深度,另一方面视觉设计师也需要投入大量的走查时间,有大量无谓的沟通和消耗。 闲鱼团队在去年做了一个很特别的黑科技基于图片直接翻译成对应的UI侧代码,具体完成的部分,我们有一个演示的视频。 选型背景 很多人会比较好奇,为什么我会坚持使用图片做为输......

深度学习 黑科技 闲鱼 UI2CODE 跨端

LuXugang LuXugang / 16 天前

Lucene 文档的增删改(中)

文档的增删改(中)在文档的增删改(上)中,我们介绍了应用示例并给出了流程图,本篇文章承接上文,就流程图的每个流程点展开介绍,如果篇幅过长又得拖到下一篇文档啦。 预备知识在介绍流程点前需要了解以下几个知识点,下文使用到的名称都是源码中的类名。 DocumentsWriterPerThread该类实现了将文档转化为索引文件的所有需要的功能,如果你之前看过两阶段生成索引文件之第一阶段,这篇文章中描述了一篇文档......

Java Lucene 文档

Tiny_熊 Tiny_熊 / 16 天前

解读 Libra Move:一种可编程资源语言

Facebook最近发表了许可链项目Libra,其中的最大亮点是Move语言。 下面我们从技术视角解读一下“Move: A Language With Programmable Resources”这篇白皮书,供大家参考。 为了便于理解,我们拿比特币、以太坊和Libra来做一个对比。 可编程货币、可编程应用与可编程资源其实,单从白皮书的标题,就可以大概看出三个项目在设计目标上的差异。 比特币的目标是——可编程货币(Programmable Money),所以白皮书......

区块链 Libra Move

hyper0x hyper0x / 16 天前

[译] Go 中的类型转换,分配和比较规则

本文翻译自Value Conversion, Assignment and Comparison Rules in Go 类型转换规则注意:本文中的转换定义与Go规范不完全相同。Go规范中的转换意味着显式转换。本文中的转换包括显式和隐式转换。 在Go中,如果一个值v可以被显式转换为类型T,则转换可以表示为形式(T)(v)。对于大多数情况,特别是T是类型名称(标识符)的时候,形式可以简化为T(v)。 我们应该知道的一个事实是,当某个值x可以隐式转换为类型T时......

Go Golang

luoxn28 luoxn28 / 16 天前

sentinel 核心概念

戳蓝字「TopCoder」关注我们哦! 编者注:前段时间笔者在团队内部分享了sentinel原理设计与实现,主要讲解了sentinel基础概念和工作原理,工作原理部分大家听了基本都了解了,但是对于sentinel的几个概念及其之间的关系还有挺多同学有点模糊的,趁着这几天比较空,针对sentinel的几个核心概念,做了一些总结,希望能帮助一些sentinel初学者理清这些概念之间的关系。 PS:本文主要参考sentinel源码实现......

sentinel

前端小君 前端小君 / 16 天前

新产品 zblog 内测开启

分类:前端技术岁月如梭,转眼又过去三个月,文章落下了不少,github的issue以及网站的一些评论都没有及时处理,小的在这里给各位磕几个响头赔罪。但这一切都是有原因的,我花了三个月时间研发了一款名为zblog的cms系统。目前我的个人网站已经全面改版,就是用zblog创建的。这套系统是基于thinkjs、nunjucks和vue搭建的,参考了早年使用的wordpress的很多功能,灵感来源于firekylin,主题样式则借鉴了大前端(总而......

前端 zblog

吴朝晖 吴朝晖 / 16 天前

Flutter DropdownButton 简单使用及魔改源码

我们一般在写业务的时候多会用到下拉菜单, 前面讲过ExpansionPanel,ExpansionPanel大部分情况用来实现展开列表等稍微复杂的业务逻辑。 而DropdownButton则是用来实现稍微简单一点的点击选择业务场景。 简单上手按照惯例我们查看一下官方文档上的说明: A material design button for selecting from a list of items. 用于从 item 列表中进行选择的 material 按钮。 说明的下方就是一大段的 demo,我们先......

源码 Flutter

php-v php-v / 16 天前

支付宝玉伯:从前端到体验,如何把格局做大?

阿里妹导读:国内的前端行业,是一个群星璀璨,同时又有些纷纷扰扰的圈子。很多初出茅庐的年轻人怀着改变世界的梦想,谁也不服谁。不过,有一些为前端领域做出贡献的拓荒者几乎受到所有人的尊敬,玉伯就是这些拓荒者中的一员。正值毕业季,很多同学在面临新的抉择,今天就跟阿里妹一起了解玉伯的职业发展和他的一些思考,希望能给大家带来一点启发。 玉伯现在是蚂蚁金服研究员,带领着体验技术部,打造出......

前端 支付宝

WriteOnRead WriteOnRead / 16 天前

JDK 源码分析:CountDownLatch

概述 CountDownLatch 是并发包中的一个工具类,它的典型应用场景为:一个线程等待几个线程执行,待这几个线程结束后,该线程再继续执行。 简单起见,可以把它理解为一个倒数的计数器:初始值为线程数,每个线程结束时执行减 1 操作,当计数器减到 0 时等待的线程再继续执行。 代码分析 CountDownLatch 的类签名和主要方法如下: public class CountDownLatch {} 常用方法为:await()、awai......

Java 源码 JDK Countdownlatch

公众号「后端进阶」 公众号「后端进阶」 / 16 天前

Go Modules 踩坑总结

在 Java 的项目中,有 Maven 和 Gradle 这些很好用的依赖版本管理工具,简直不要太方便了,但是在 Golang 的项目中,之前的 Golang 官方并没有提供版本管理工具,我们以前用 go get 获取依赖其实是有潜在危险的,因为我们不确定最新版依赖是否会破坏掉我们项目对依赖包的使用方式,即当前项目可能会出现不兼容最新依赖包的问题。之后官方出了一个 vendor 机制,将项目依赖的包都放在该目录中,但这也并没有很好地......

Go Golang Modules

开发者头条 开发者头条 / 16 天前

开源 | Zebra:美团点评集团统一使用的 MySQL 数据库访问层中间件

点击链接或图片即可阅读 喜欢请分享到朋友圈哦 项目介绍 ebra 是一个基于 JDBC API 协议上开发出的高可用、高性能的数据库访问层解决方案,是美团点评内部使用的数据库访问层中间件。具有以下的功能点: 配置集中管理,动态刷新 支持读写分离、分库分表 丰富的监控信息在CAT上展现 异步化数据库请求,多数据源支持 GitHub 地址 https://github.com/Meituan-Dianping/Zebra 更多 GitH......

MySQL 中间件 数据库 美团点评 Zebra

冷星1024 冷星1024 / 16 天前

花椒前端基于 GitLab CI/CD 的自动化构建、发布实践

在公司搭建内部 GitLab 平台后,前端活动项目从 SVN 迁移到 GitLab。本文介绍如何基于 GitLab CI/CD 实现自动化构建及发布。 在从 SVN 迁移到 GitLab 和接入 GitLab CI/CD 的过程中,特别感谢发布系统和服务端同学的大力支持。 一、目前的构建、发布流程 在这部分,我们先给出使用 GitLab CI/CD 的收益,然后分别介绍使用 GitLab CI/CD 之前以及之后的构建、发布流程。 1. 团队收益 1. 发布时间由平......

前端 CI CD GitLab 自动化构建

为了减少您的阅读压力,首页仅提供最新的 10 页文章列表,如需查阅更多内容请点击对应的文章标签。

Top