2021

微信已经成为大家平常生活中离不开的一个工具,今天TJ君就给大家分享一个可能是效果最像的微信复刻项目 TLChat TLChat,使用iOSAppTemplate代码重构,此版本TLChat基于TLKit、 ZZFLEX实现。使用到的第三方库包括: Masonry:自动布局框架,简洁高效 FMDB:sqlite数据库管理框架 AFNetworking:网络请求 SDWebImage:网络图片下载、缓存 MJExtension:JSON - Model互转框架,高效低耦合 MJRefresh:下拉刷新,上拉加载更多,继承简单 CocoaLumberjack:日志分级、本地化 MWPhotoBrowser:图片选择器 SVProgressHUD:进度提示框 为什么说他可能是最像的? 让我们一起来看看这些效果截图: 这跟微信有什么区别呢?简直就是一毛一样好不好!如果不告诉你你是不...

相信这几天,很多小伙伴都因为Log4j2的史诗级漏洞忙翻了吧? 看到群里还有小伙伴说公司里还特别建了800+人的群在处理… 好在很快就有了缓解措施和解决方案。同时,log4j2官方也是速度影响发布了最新的修复版本。各应用方也可以执行较为稳定的修复方案了。 不过我看到群里发出来的各种修复方法,还真是不好看… 所以这里也提一下Spring Boot用户怎么修复最简单吧。 如果您正在学习Spring Boot,那么推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/ 最简修复方式 有些小伙伴其实想到了直接通过Spring Boot的Starter去解决,所以还给Spring Boot提了Issue,希望spring-boot-starter-log4j2可以支持最新的2.15版本(提Issue的时...

1、漏洞简介Apache Log4j 2是一款优秀的Java日志框架。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。由于Apache Log4j 2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。 2、漏洞危害漏洞利用无需特殊配置,攻击者可直接构造恶意请求,触发远程代码执行漏洞。 3、漏洞编号暂无 4、影响范围Apache Log4j 2.x <= 2.14.1 5、修复措施建议排查Java应用是否引入log4j-api , log4j-core 两个jar,若存在使用,极大可能会受到影响,强烈建议受影响用户尽快进行防护 。 升级Apache Log4j 2所有相关应用到最新的 log4j-2.15.0版本 升级已知受影响的应用及组件,如: spring-boot-strater-log4j...

关于SaaS和Serverless,相信关注我的很多读者都已经不陌生,所以这篇不会聊它们的技术细节,而将重点放在SaaS软件架构中引入Serverless之后,能给我们的SaaS软件带来多大的收益。 在开始下面的内容之前,不妨先给自己半分钟时间,思考下:你认为Serverless的引入,对你现有的SaaS软件架构带来多大的提升? 先说一个大部分人都可以想到的:从Serverless简化运维的角度去思考,站在软件平台的运维方,能够降低运维复杂度。这个收益显而易见,我开始也只想到了这一点,直到这几天看了AWS re:Invent中几个关于SaaS架构与Serverless的演讲,才有了一些更高维度的思考。 下面我们就来一起看看在SaaS遇到Serverless,可以迸出怎么样的火花。 背景SaaS软件和Serverless服务,在国内的发展,一直有种难兄难弟的感觉。虽然做的事情不一样,...

更新到Intellij IDEA 2021.3之后,Maven出问题了!无法从Maven私有仓库下载依赖了。 提示要从maven-default-http-blocker下载,难道不应该去私仓下载吗? 原因原来IDEA更新到2021.3后内置Maven的版本提升到了3.8.1。 Maven3.8.1发布一个变更(CVE-2021-26291): 由于使用 HTTP 的自定义存储库可能导致中间人攻击。现在越来越多的存储库使用 HTTPS,但情况并非总是如此。这意味着 Maven Central 包含带有自定义存储库的 POM,这些存储库通过 HTTP 引用 URL。这使得通过此类存储库下载的内容成为攻击目标。开发人员可能没有意识到某些下载使用了不安全的 URL。由于上传到 Maven Central 的 POM 是不可变的,因此需要对 Maven 进行更改。 为了解决这个问题,从3...

Java 13在2019年9月发布,这个版本引入的正式可用特性几乎没有,是我认为最无聊的版本之一。所以我们跳过Java 13直接来看Java 14吧。 Switch表达式我觉得switch表达式在日常中开发被使用的太少了,不是因为这个关键字和if比起来太“难”,而是因为它很冗长,而且这种视觉上的噪声容易掩盖那些难以调试的错误,特别是那些break语句,就像下面这样: switch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println(6); break; case TUESDAY: System.out.println(7); break; case THURSDAY: case SATURDAY: ...

上一篇文章Git Worktree 高级使用 整体反应不错,这完全是日常开发中可以用到的奇淫技巧。微服务环境下,通常我们都会有多个 repo,高级用法好归好,但每个 repo 都按照高级用法进行配置,还是比较麻烦的,你看这不就有同学发声了嘛 说者有心,听者有意,那就写个脚本吧 Git Worktree 脚本个人不是很擅长写 bash script,磕磕绊绊写了一个 worktree.sh,完全执行上一篇文章的整个过程 #!/bin/bash -erepo=$1dir="${repo##*/}"dir="${dir%.*}"echo $dirbranch=$2defaultBranch="${branch:-main}"mkdir -p $dircd $dirgit clone --bare $repo .bareecho ...

前言上一篇文章 Git Worktree 大法真香 带大家了解了 git worktree 是如何帮助我同时在多个分支工作,并且互不影响的。但是创建 worktree 的目录位置不是在当前项目下,总感觉创建好的这些 worktree 不属于当前项目,这对于磁盘管理强迫症的我来说是十分难受的,今天就带大家了解一种高级用法来解决这个痛点 准备知识在使用高级用法之前,你需要知道一点 bare repo 知识,我们先从你熟悉的命令开始 git initgit clone https://github.com/FraserYu/amend-crash-demo.git 这两个命令就会生成一个 non-bare repo,我们通常都在这样的 repo 中进行日常工作, 你可以在这里面 add/commit/pull/push 要想生成一个 bare repo 也很简单, 只需在上面两个命令的基础...

美国时间12月2日,Spring Cloud 正式发布了第一个支持 Spring Boot 2.6 的版本,版本号为:2021.0.0,codename 为 Jubilee。 在了解具体更新内容之前,先提个最重要的点:2021.0.0版本对应的Spring Boot是从2.6.1开始的,所以如果在升级的时候不要用2.6.0版本。 好了,下面就跟DD一起来看看这个版本的内容吧! 更新内容Spring Cloud Commons 支持为每个负载均衡进行配置,该特性也同样适用于Gateway、Contract和Openfeign。 Spring Cloud Config 增加与AWS Secrets Manager、AWS Parameter Store和GCP Secret Manager的集成。 Spring Cloud Gateway 支持基于Redis的动态路由 支持HTTP 2...

昨天刚刚跟大家聊了Jetbrains即将推出轻量级编辑器Fleet,以挑战 VS Code的消息,今天又收到了IntelliJ IDEA 2021.3正式发布的推送。 不说废话,下面就跟我们一起来看看这个版本带来了哪些惊艳的功能! 远程开发 在这个版本中的远程开发还不是一个正式版本,而是BETA版,但通过这个BETA版本,也可以体验IDEA“远程开发”给我们带来的全新体验。 通过该功能的支持,我们可以从世界任何地方轻松连接到运行 IntelliJ IDEA 后端的远程计算机。所有处理都将在这台强大的远程计算机上进行,您将能够像在本地计算机上一样无缝地处理项目。 如何使用呢?如下图,我们只需要在 IntelliJ IDEA 的欢迎屏幕或通过 Toolbox App 中新增的 JetBrains Gateway 应用程序启动此功能。 该远程开发功能除了完成我们日常的编码之外,还能与...

多年来,我们一直被问到:“JetBrains 什么时候会创建一个轻量级编辑器?” 今天,我们很高兴宣布—— Fleet,一个有一点不一样的轻量级编辑器! 🔗 https://www.jetbrains.com/zh-cn/fleet/ 当您第一次启动 Fleet 时,它会作为一个功能齐全的编辑器启动,具有语法高亮显示、简单的代码补全以及您对一个编辑器期待的所有功能。 但还不止如此! Fleet还是一个功能齐全的 IDE具有智能补全、重构、导航、调试以及 IDE 中一直存在的所有功能。更重要的是,点击一键即可使用所有这些功能。 Fleet 是从头开始构建的,拥有全新的架构和用户界面。让我们深入了解 Fleet! Fleet是适用于多语言的开发者通常在不同的项目中会使用到不同的技术,有时在单个项目中也会使用不同的技术。在 JetBrains,我们一直致力于充分利用用户所使用的环境...

11月29日 Spring Boot 2.6.1 正式发布,主要是为了支持本周即将发布的 Spring Cloud 2021。 此版本包括 11 个错误修复和文档改进。 Bug修复 模式分析 PatternParseException 的操作消息中的 matching-strategy 属性的名称不正确#28839 修复 ErrorPageSecurityFilter 部署到 Servlet 3.1 的兼容问题#28790 QuartzDataSourceScriptDatabaseInitiializer 不提供 MariaDB #28779的映射 “test” 和 “Inlined Test Properties” 属性源顺序不正确#28776 在没有 spring-security-web 的 Servlet 应用程序中使用 Spring Security 时出现 Array...

作为程序员的我们应该都有一个感受,一旦进入某个项目,从开发,到发布,到生产,到 hotfix,到后期维护,那基本都有你的份。 正在开发某个 feature,老板突然跳出来说让你做生产上的 hotfix 更是家常便饭,面对这种情况,使用 Git 的我们通常有两种解决方案: 草草提交未完成的 feature,然后切换分支到 hotfix git stash | git stash pop 暂存工作内容,然后再切换到 hotfix 第二种方式较第一种还好很多,可是面对下面这些场景,stash 依旧不是很好的解决方案。 我们面对的场景 正在 main 分支上跑长时间的测试,切换到 hotfix 或 feature, 测试就会中断 项目非常大,频繁的切换索引,成本非常高 有几年前 release 的旧版本,设置和当前不一样,IDE restructure 适配切换也会带来很大的开销 切换分...

这两年,随着疫情的出现,很多人的生活习惯都被逐渐改变了。例如在十年前,很多人说起上课、说起开会,一定是要面对面才能完成的事情,但是如今更多的都是云教室、在线会议,TJ君当然要与时俱进,今天跟大家分享一个功能强大的前后端完全开源的简约美观的互动教室项目 Agora Flat Agora Flat,支持MAC、WONDOWS不同平台,并且有手机版、电脑版、网页版各种不同的实现形式。可以轻松创建丰富多样的在线互动房间,实现多场景灵活切换,完成高质量的互动,例如教学或开会。 特点既可以用于大型多人授课或会议,由主持人进行课程或会议的讲解,参加者举手发言在线互动;又可以进行一对一的私人定制化互动。 同时项目内置多种经过专业设计的精美主题,无需专业设计经验就可以使用各种不同效果的UI风格。 语言与功能项目主要实现部分都是运用TypeScript语言进行实现,辅以小部分的JavaScript...

昨天,是人人影视粉丝们悲伤的一天,人人影视字幕分享官微宣布:人人影视不可能再恢复或重启。App的尸体可以删了,我们不可能解决的了版权问题。 人人影视,可能是许许多多喜欢追剧的小伙伴最初打开那扇追剧大门的启蒙老师,如今官方的正式宣布,可以说是一个时代的告别、缩影。 为了纪念我们曾经喜欢过的用过的人人影视,TJ君今天跟大家分享一款基于Material Design + MVP + RxJava + Retrofit + Realm + Glide + Dagger2 实现的在线视频App: 微影 微影的主要特点有: 使用RxJava配合Retrofit2做网络请求 使用RxUtil对线程操作和网络请求结果处理做了封装 使用RxPresenter对订阅的生命周期做管理 使用AndroidEventBus来方便组件间的通信 使用Material Design控件和动画 使用MVP架构整个...