聊一聊AI编程助手的隐私与安全问题
各种AI编程工具虽好,但不能不考虑它们的安全性
各种AI编程工具虽好,但不能不考虑它们的安全性
Google发布了Gemma 3小参数模型,这可能是当前你个人电脑上能跑的最好的小参数模型
回顾下2024年的AI与编程
除了专有的AI大模型,来看一看开源的编程类AI大模型
想要选择一个更好的编程AI助手? DeepSeek AI也许是你可以考虑的选择.
还在使用笨重,难以使用的Docker Desktop吗,现在我们可以有更好的替代选择。
想要一个比Visual Studio Code更快的IDE吗,Zed可能是你绝佳的选择
Lima是MacOS下一款绝佳的Linux虚拟工具。
现在, 在本地部署一个大模型, 已经变更非常简单
nmon是一款开源的,聚合式的系统资源负载收集工具, 它会是你的好帮手.
跨平台桌面开发最流行的是Electron, 现在还有另一个选择新的选择 - Tauri
Postman虽然流行, 但过于笨重. 现在有了开源的更好的替代软件.
做为程序员, 要拥抱AI, 先得知道有哪编程类AI可以选择
AI时代, 只需简单几句话, 你能创造出完美的图片
Google开源了小模型Gemma, 我们又多了一个能在本地跑的能运行的优秀开源模型.
NCDU是一款高效, 简洁的无GUI磁盘分析与管理工具.
如果你喜爱Markdown, 并正在寻找一款称心如意的Markdown编辑软件, 那MarkText也许值得你关注与尝试.
用AdGurad Home搭建一个你的私有DNS服务是简单,方便的事.
Firefox发布了122版本, 同时带来了原生DEB格式安装包, 这是一个非常有趣但又值得思考的事情.
用开源的解决方案来搭建一个你的私有DNS服务, 保护你以及你的家人
Linux Mint刚刚发布了21.3版本, 和我一起来了解下它有哪些新特性吧
用Photoprism来搭建你的私有专属相册
不管我们有多喜爱CentOS或有多不舍, 2024是我们向CentOS告别的时候了
很喜欢Google Photo的相片管理能力? photoprism是一个开源的替换方案
还在用微信来在你不同设备间传输文件么? 现在,我们有了开源的更好的选择了!
想要构建更好的Docker镜像,我总结了这些经验
如果你想做一个小而美的东西, 会有比Java更好的技术值得你考虑与选择
AI时代,英语会成为最重要的语言?
Redhat系Linux中,有一个被忽略的发行版本,那就是Oracle Linux. Oracle Linux是否是一个可靠的选择?
也许你知道Linux Mint但不知道LMDE, 它们是一对双胞胎兄弟
RHEL变更了它的源代码访问策略,这对Linux生态来说意味着什么
Debian 12发布,这可能是最好最值得你关注的Linux发行版本了
让ChatGPT正确的摘要
不写单元测试,总有一个借口适合你
Google内部报告说,在AI领域,Google与OpenAI都无法记得胜利
好的Prompts来自于你持续的调整与微调
高效ChatGPT Prompt之二, 让模型去思考
编写出更高效的ChatGPT Prompt之清晰且具体的指令
Spring Boot 3已经发布了,你还在等待么?
除了Spring Boot以外,Java企业级开发还有其它很多选择
Linux桌面软件商场,究竟是应该Snap还是Flatpak?
开源的世界永远会有更多的选择,来了解下开源的Rime中文输入法吧
只需要一行简单的命令,就能瞬间瘫痪Linux系统。简单可靠
ChatGPT会成为Google Search killer么?
在Linux,你不应该再使用root,而是使用sudo
为你的网站申请免费的HTTPS,是一件非常简单并且零成本的事
坚持使用正版,并不是一种高尚的行为,而是做为程序员最基本的要有的操守
对于我们程序员来说,打造个人品牌的最佳方式就是建造自己的网站。互联网上有许多免费的优秀的工具可以帮助我们。
究竟是什么原因让Alpine Linux镜像如此之小?
对于程序员群体来说,想找到一款令自己满意的笔记软件,可能都并不是一件容易的事
最近几天,我使用了Next.js与tailwindcss对微言码道进行彻底重写, 使用Next.js搭配tailwindcss纯手工打造一个网站,是什么样的体验呢?
现在,使用Docker构建支持多平台架构的镜像,是一种必须.
在Android开发中,使用Gradle Kotlin DSL会是一种什么样的体验呢?
写代码这件事情,任何程序员都会犯错. 所以我们需要Error Prone来帮助我们
自2023年秋季开始,你需要使用notarytool而非altool来对MacOS应用进行公证
前端各种新技术层出不穷,方兴未艾 TurboPack是新出的一款构建工具,官方号称其速度是Vite的10倍,是Webpack的700倍,令人惊讶。 你想了解它是什么,它为什么能这么快吗
介绍CNCF(云原生计算基金会)官方项目 -- 安全更新规范TUF
做为程序员,很多时候我们需要虚拟机.也许用的最多的是开源的Oacle VirtualBox,现在你可以考虑另一款软件Multipass
介绍CNCF(云原生计算基金会)官方项目 -- 云存储适配器 Rook
介绍CNCF(云原生计算基金会)官方项目 -- 度量与监控 Prometheus
介绍CNCF(云原生计算基金会)官方项目 -- 规则管理Open Policy Agent
Ubuntu的Snap Store很多人并不喜欢,所以你可以把它从Ubuntu中移除掉它。
介绍CNCF(云原生计算基金会)官方项目 -- 服务网格Linkerd
介绍CNCF(云原生计算基金会)官方项目 -- 容器编排Kubernetes (下篇)
介绍CNCF(云原生计算基金会)官方项目 -- 容器编排Kubernetes (上篇)
介绍CNCF(云原生计算基金会)官方项目 -- 分布式链路追踪Jaeger
想要写出好的单元测试,正确的处理第三方依赖必不可少
介绍CNCF(云原生计算基金会)官方项目 -- 包管理器Helm
介绍CNCF(云原生计算基金会)官方项目 -- 企业级镜像管理Harbor
如果需要构建自己的Docker镜像,那使用alpine来做基础镜像,是否是合适的选择?
介绍CNCF(云原生计算基金会)官方项目 -- 日志收集器fluentd
介绍CNCF(云原生计算基金会)官方项目 -- 分布式存储etcd
介绍CNCF(云原生计算基金会)官方项目 -- 边缘代理网关envoy
介绍CNCF(云原生计算基金会)官方项目 -- DNS服务CoreDNS
介绍CNCF(云原生计算基金会)官方项目 -- 容器引擎containerd
事实上,相较于RxJava,Vert.x这一类的异步编程,更值得关注的也许是Go Coroutines,Kotlin协程以及Java正在开发中的虚拟线程 它们用另一种方式来解决同步编程占用大量线程带来的性能问题
软件的性能与软件的可维护性,究竟哪一个更重要?
响应式编程这种模式,散发着独特的魅力,使得它如美酒般吸引众多的程序员。 但软件的世界没有银弹,对于大多数情况,团队及需求来说,响应式架构带来的困境远优于收获。 稍不注意,你喝的可能只是一杯有毒的美酒。
Spring Boot是成熟,可靠并及经考验的后端开发框架,而Kotlin则是更简洁与优雅的better java,把它们结合在一起,会擦出什么样的火花呢?
为什么软件是复杂的?
Robert C. Martin在2012年就提出了The Clean Architecture,中文意为整洁架构。 笔者一直努力在各端实践ddd思想,深感Robert大叔提出的整洁架构在很多方面与ddd不谋而合。
如果你仍然在使用Java 8,那你需要关注Java 8的License相关问题
CentOS已死,有事请烧纸。 是时候寻找替换选择了。我列了一些值得你考虑的选择。
架构无它,惟权衡,取舍及决策是也。Spring Boot 2发布了它的最后一个大版本,这意味着它己经开始走向终点了。 架构师们要开始未雨绸缪了
想知道移动开发的趋势是怎么样的?原生开发,跨平台开发还是小程序? 分享与解读InfoQ关于移动开发的趋势报告2022版
今天,网站或App支持暗黑模式已经成为了一种主流,微言码道的官网也与时俱进,正式支持暗黑模式了。
MacOS过往一直使用的是Bash,但在10.15 Catalina之后,将默认Shell迁移至Zsh,你知道这什么原因么?
JDK 18在2020年3月发布,它是非LTS的JDK版本,但做为Java程序员,我们仍然需要了解JDK 18有什么新特性。 我整理了一份简报以供快速了解
Java这门语言是在1995年5月由Sun公司发布的,以这个时间点来计算,Java这门语言已经27岁了。Java一直都是一门非常流行的语言,特别是在后端,它仍然是后端最主流的选择。
抽象与继承是Java面向对象中极为关键的语言特性,它是我们能编写出复杂软件的前提 。但在Java 8的时代,抽象与继承却缺少了必在的约束与限制能力,但现在,有了Sealed Classes之后,你可以对抽象与继承进行约束与限制了。
基于KMM的业务跨平台移动开发示例项目发布
模式匹配Pattern Matching是许多语言都有的特性,而它在Java中一直缺失。不过在Java 17中,模式匹配Pattern Matching也成为了Java的一个新特性,这意味着你可以编写出更简洁的代码了。
Java程序员应该非常熟悉switch语句,因为它有个break不能忽略的问题被反复强制。 不过,是时候忘掉它了,现在Java有了更好的switch表达式了
很多Java程序员都喜欢lombok这个第三方框架,因为它能简化Java中那些让人觉得重复啰嗦的代码。 但你知道么,Java已经经进了record class,它可以让数据类代码非常简洁。
Snap包管理是Ubuntu推出的一种更具通用性的Linux软件包管理工具。 但是它却越来越受到抵制
对于Java程序员来说,NullPointerException是不可能不知道的异常。在Java 14的时候,Java引进了Helpful NullPointerExceptions以减少空指针异常信息中的可能令人困惑的信息
在编程中,网络类库是必不可少的,过往Java程序员都喜欢使用Apache Http Client等第三方框架。 但从Java 11起,JDK有了自己的更好的Java Http Client
是时候向babel说再见了,现在我们有了更快的swc以及esbuild
sfl4j,log4j基本上每一个Java程序员都知道,但它们都是第三方日志库。Java 9引进了Java System Logger日志标准,你知道它是怎么一回事么?
在过往的Java中,处理多行字符并不是个能让人感觉愉悦的过程。不过Java 14引进了Text Blocks特性,解决了这个问题。
JRebel 2022年Java开发生产力报告(极简版)
局部变量var关键字,是Java 10引进的一个特性,它能简化你的代码,阅读文章以了解更多。
Rocket Chat是一个非常有名的类似Slack的开源产品,你知道么,它的后端,前端,移动端,桌面端都是前端技术构建的。
微信发布了自己Linux上的客户端,来跟随我一起体验下吧。
跨平台桌面开发,究竟是应该选择Electron还是WebView2,一文以说清楚。
Linux在2021年有哪些值得纪念的事情,和我一起来回顾一下吧。
跨平台开发是程序员始终避免不开的话题
春节已过,收拾心情,重新出发
这些年,跨平台桌面开发技术越发成熟,那主流的electron与新兴的webview2,究竟哪个更合适? 这是上篇。
知名的框架AngularJS于2021年底正式结束支持,这篇文章中有你需要关注与知道的一些事情。
对于程序员来说,折腾是永无止境的
几天前,InfoQ发布了Java趋势报告2021版。 你想了解Java及其生态的技术趋势么?
前几天,知名开源框架Faker.js作者清空了自己的代码,这是怎么一回事?个人开发者又应当如何做开源?
今天繁荣的互联网生态,背后都离不开自由与开源许可证的保护与支持,除了知道能免费使用和开放源代码以外,我们对许可证究竟有多少了解?
2022,我们都要重新启航
整理与发布了我的2021年度阅读清单
在GUN的推荐的完全自由的GNU/Linux操作系统中,没有一个主流的Linux发行版本,这是为什么?
Either是一个非常有意思的函数式编程风格,也许你不会想错过它
在我们行业中,有一个众所周知的英雄故事: “一个芬兰的大学小伙,因没有足够的钱购买UNIX,后面就决定自己做一个类似的操作系统,在1991年的时候,他凭个人之力发布了Linux内核的第一个版本“。这就是Linux之父Linus Torvalds。 很多误认为是他创建了整个Linux操作系统,但这并不是事实。
JPA 3只是修改了个包名么?
而言之,自由软件是一种高尚的价值观,而开源软件则是一种实用主义
今年Amazon对国内跨境电商大规模的封店,其源头在于一个国内一个刷分及刷评论的elastic数据库被泄露,这个微小的安全事件,引发大量国内电商被封,对多公司来说,这种损失是难以估量的。 切记,安全无小事
开源软件的理念早已深入人心,但另外一个概念“自由软件运动”却不那么为人所知
福特公司在一百多年前,将工作时间改为8小时制,然后它们发现在流水线上,8小时工作制的出错率更低,这样做的价值反而更高了。 想要让我们的价值最大化,必须对效率与时间的关系有正确的认识,更需要对延长工作时间,也就是加班这个事要有正确的认知。 仅站在自我立场,从“政治正确”的角度简单的反对与支持它,都不是正确的行为。
Ubuntu和Debian都我们经常听到的Linux发行版本,那究竟它们有什么区别?
想要高效的完成工作,那保持积极与乐观是非常重要的。
对程序员来说,使用Linux似乎总有一种无形吸引力,你想知道在现在国内的环境下,使用Linux究竟可行性有多高么?
只有健康,才能保持效率。而身体的健康与精神上的健康同等重要,这就是为什么我们需要阅读与运动的原因所在。
一个事情,你认为是"你要做"还是"要你做",效率则截然不同。这就是为什么大多数的绩效管理效果都很勉强的原因所在。 想要高效,把要做的事变成"你要做"才是上上之策。
myddd-vertx正式宣布开源
时间与要做的事是一定会有矛盾的,因为时间是一种有限的资源,而想做的事则是无止境的。 把时间花费在正确的事情上,就非常重要了。那需要用什么标准来选择? 我们有个成语"轻重缓急"就是非常好的标准,轻重指的是事情的重要程度,而缓急则指的是事情的紧急程度。 那你究竟是急事优先,抑或是要事优先?
前段时间,Swift 5.5正式发布,这是一个相对比较重要的版本,因为它引入了一个新的特性,async/await。异步编程会成为未来的主流么?
对程序员来说,搜索是必不可少的工具之一。所以,善用搜索对提高我们的效率也会有很大的帮助。
如果仅从技术上来看,从零到一太简单了。 那简单又能提升效率的东西在国内得到普遍应了么,没有?因为这更多的不是技术问题,而是管理文化与技术文化问题,所以,从零到一,难。
如果好的工程实践没有一定的约束力,那它必然会慢慢被忽略直至再也不会产生价值了。 同理这也对持续交付,要让它闭环。
基于Jenkins Pipeline的持续交付的实现简单的令人难以置信。
如果说Java,NodeJS这些跨操作系统的语言帮助我们在开发阶段屏蔽了操作系统,那Docker这样的容器化技术则在部署与运营层面,进一步隔离了操作系统的影响。 考虑容器化技术是非常必要的方式之一。
工欲善其事,必先利其器。 来了解下如何基于Jenkins+Docker来搭建一个持续交付环境吧
好的工程实践并不一定能导致成功的产品,因为成功的要素太多了。但仅就技术而言,好的工程实践一定是好的可维护代码的根本与基础。
一个显而易见的事实就是:凡是需要人来手动操作的过程,一定是非常容易出错的。 这就是为什么我们需要持续交付的原因所在。 为什么不让计算机来帮我们做呢?
技术是日新月异的,没有高效的学习能力,一切都无从谈起。
从CentOS到CentOS Stream,到底发生什么事了?
想要变得高效,深度工作则是最关键的,而心流则为可追求的最高状态,构成心流的三大必备要素就是做喜欢做的事,做有挑战的事及持续的正向反馈
如何能让自己更有价值?
如果想用一个词来描述我们要成为一个什么样的程序员,我认为最恰当的词只有『专业』。 如何才能成为一个专业的程序员呢?
技术这种东西,如同大海一样,无边无际并且深不见底,那我们为什么还要用有限的生命去追寻这种无限的事情呢? "也许只是喜欢而已"
技术的更新永远是日新月异,但技术背后的理念几乎没有多大的变更。想要能快速跟上技术更新的步伐,理解背后的道则至关重要。
任何一个性能测试,必不可少的都需要五大要素。
使用正版是对我们本身职业的一种尊重,不是吗?
在开始我们的第一个JMeter脚本前,先对比下LoadRunner与JMeter吧。
本周,终于进入编码之道的最核心的理念与价值观,那就是: ***编码有术,术中有道***
对于程序员来说,学会理解常见的性能指标是开始学习JMeter的第一步。
行业内的一个现实是:高质量易于维护的产品非常难得,这究竟是为什么?
一个程序员,学会使用JMeter,应该是最基础并且必须要掌握的能力。
程序员大部分工作就是编码,而编码是为了产生有价值的软件。那软件的价值究竟是如何构成的? 软件包含了可见的价值与不可见的价值,一个程序员是否能够理解它,对于是否能够编码写好的代码,是至关重要的事情。
了解下关于Java的一些有趣的事实与个人的解决
做为一个程序员,你有没有一个属于自己的"圣经"呢
若干年前,一位程序员做过一个预测: Any application that can be written in JavaScript, will eventually be written in JavaScript. (*任何可以用 JavaScript 来写的应用,最终都将用 JavaScript 来写*),这个预言是对的吗?
你理解正向代理与反向代理吗?
前端的变革无颖具有巨大的意义,但这不意味着它是完美无缺的。前端也存在它需要解决的一些困境,只有跨过这些困境,前端才能走入更美好的明天。
从命令式UI到声明式UI,前端的变革是引领式的,它甚至走在了最前面
2006年 JQuery发布,2012年 Typescript发布,2013年 React发布 从JQuery到Typescript以及React,这其中前端发生了颠覆性的变革,究竟这谁引发了这一切?
经过端午三天假期的努力,在整合过往自己写的一些文档,加上自己补充的新的文档,拥有数万字文档的myddd官网正式发布了。
myddd-vert.x更新至1.1.0版本
过去数年,前端不仅是在自己的技术方向发生了巨大的变化,它试图向所有技术方向发起进攻,取代其主流技术。如今我们在移动端,桌面开发等各个领域都能见到前端的身影。
从Html到React,从JavaScript到TypeScript,从css到less等, 前端发生了怎么样的变化? 本周,前端之变继续探寻与分析背景的这一切
本周我将继续就**前端之变**阐述自己的一些思考。 在开始讲前端的技术究竟发生了哪些改变之前,先讲前端『不变』的地方。只有了解了哪些没有改变,我们才能更好的理解哪些改变了。
从本周开始,我将就**前端技术之变**做的一些思考记录下来。 这是第一篇: 技术的变与不变
在我对myddd的规划中,并不包含myddd-spring-boot,因为我已经准备使用**myddd-vertx**替换掉它了。 不过我又把它捡回来了。
经过休假这几天的努力,完成了myddd starter的第一个版本,这是一个非常早期的版本,但也已经可以使用了。
headless cms这个概念在国外已经初具生态与市场,开源及商业的解决方案都非常多。 但在国内仍处于极其早期的阶段。我认为它有很大的潜力。
Web网页有静态网页与动态网页之分,但还有另一个概念Jamstack,它介于这两者之间,你想了解么它是怎么回事么?
程序员,你做为开发者,有自己做过性能测试么?
相比较传统的基于Java的同步编程模式,基于异步的Vert.x有着巨大的性能优势
从本篇开始讲述面向对象的基本原则,本篇为序言
继续接上篇,本篇介绍一些有利于程序员编写文档的常用工具
笔者今天想谈论另一个比较普遍的现象,或许是外部不太容易关注及发现到的现象,就是:我们这个群体中很多人不愿意写文档。
"从头开始重新设计系统" 这是我们很多技术人员经常说的话,某种程度上也是技术人员心中渴望去做的事 但它对管理及付出成本的公司来说,是一个非常可怕也很糟糕的事情,但却不断的在我们行业中不断的被实施与验证,一次又一次的上演。笔者认为这也是IT行业成本一直居高不下的很重要的表现之一。
上个文章,笔者对library,framework以及toolkits三者的异同做了一些分析,这篇就接着上篇文章来继续聊一下,知道这些的区别后,对我们架构或设计系统时会有什么帮助? 我们都知道,library,framework以及toolkits三者,对于我们的系统来说,都属于**第三方依赖**,所以,本篇笔者就我们的架构中要如何正确应用与处理第三方依赖说一点自己思考
聊一聊笔者对Library,Framework以及toolkits的理解
现在很多项目都是以REST API为主流实现方式,那对于其中的业务错误或异常,应该如何设计,本文阐述笔者的一些思考
做为一个程序员,你应该要去读的那些书
本文用于记录笔者是如何实践TDD测试驱动开发的一些心得
进入2021年后,笔者决定对自己的后端技术做一次更新,在自己的一系列考察后,决定了选择Vertx与Kotlin的结合,本文简要阐述下笔者的一些思考。
对企业移动化的一些思考,本文为第二篇。着重探讨对移动开发技术的思考
对企业移动化的一些思考,本文为第一篇