当前位置: 首页 > news >正文

这两个大龄程序员,打算搞垮一个世界软件巨头!

大家都知道,Adobe是多媒体和数字内容创作者的绝对王者,它的旗下有众多大家耳熟能详的软件:Photoshop、Illustrator、Premiere Pro、After Effects、InDegign、Acrobat、Animate等等。

6f44f40e243ba3f816e0a4db33fdc010.jpeg

这些软件使用门槛很高,价格昂贵,安装繁琐,并且非常“吃”硬件配置。

有些程序员就不爽了,他们决定“揭竿而起”,给大家提供免费版的软件。

1

年入百万的网页版PS

Photopea是捷克小伙儿Ivan Kutskir(今年34岁了,按国内标准快要被裁了)开发了Photoshop的替代品,它的界面长得和Photoshop几乎一模一样。

不同的是,你不需要掏钱购买昂贵的软件,也不需要安装什么东西,只需要打开网站https://www.photopea.com/,就可以像Photoshop那样去处理图像。

2ec3131189821936261784aa581e54ed.png

由于无需注册,完全免费,Photopea受到了全世界的欢迎。

有流量就会有生意,Ivan Kutskir也通过广告等方式,早在2021年就年入百万美元。

8c75f489e47c12eeed53715a058414ad.png

更牛的是,在运营上Photopea几乎没有什么成本,一台普通的服务器就够了,因为代码都是下载到用户的浏览器中执行的。

它不需要后端,不需要支持高并发,不需要数据库。

所以单打独斗的Ivan Kutskir只需要专注开发就好,过得非常滋润。

2

网页版AE

看到Photopea,很多人就会想了,图象处理被搞定了,那么视频处理呢?

在Adobe的武器库中,有个大杀器叫AE(After Effects),可用于2D和3D合成、动画制作和视觉特效,通常用于影片制作、电视演播和视频游戏的后期处理工作。

32e2dd1e09bf4f79a32230cd0b77569b.png

能不能把AE也搬到浏览器中?

今年1月份,法国人Clément Cordier就萌发了这个念头。

349cf12f3be9151538678f2441b331bf.png

作为一名每天在 Linux 机器上工作的创意开发人员,他经常需要做一些视频合成、图层、关键帧、蒙版等操作,但是Adobe 的AE却无法在Linux上运行。

于是在业余时间,他开发了一个叫做Pikimov的软件,理念和Photopea非常像,无需注册、无需下载、完全免费,在浏览器中使用AE的替代品。

3e0a0efe47e0d86f4d0c393ba764a718.png

Pikimov尽可能地实现了AE的界面和使用体验:

基于图层的编辑系统

支持关键帧和动画功能

支持导入图像、视频、音频文件和GLB格式的3D模型

提供各种视频效果,色彩校正、模糊、蒙版

Pikimov还有一个响亮的口号:No AI ,就是说文件都保留用户的本地机器上,不用被厂商用来训练AI模型。

Pikimov非常小,只有5M,下载到浏览器中就可以运行了,完全不需要高速网络。

唯一可惜的是Pikimov现在只支持Chrome、Edge,不支持Firefox和Safari,因为它们缺乏一些Pikimov的Web API。

Pikimov用到了这些技术:

Threejs:2D/3D 组合渲染引擎

Emberjs:UI框架

WebGL GLSL:渲染视频效果

jQuery : 管理一些零零碎碎的东西

没有什么高大上的东西。语言、框架、类库都是工具,能做出什么样的产品,能发挥多大的威力,完全取决于使用工具的人。所以不要随随便便Dis这个Dis那个。

Clément Cordier是个什么样的高手?能用看起来普通的工具开发出这么复杂的Web程序?

其实他大学学的是数字艺术,2005年毕业于历史悠久的卡昂瑟堡艺术与媒体学院,获得硕士学位。

637d02430d4a7f76afba27b900c234e6.png

所以他的计算机编程知识,全部来自自学。

在LinkedIn上他的个人描述是“Web全栈程序员”,擅长JavaScript、HTML5、Three.js、Ember.js和PHP。

值得注意的是,在开发Pikimov之前,他已经创立了一个叫做XR+的工作室,自任CTO,开发AR/VR相关的产品,看起来更加惊艳:

但是销售也许并不好,要不然,他就不会Pikimov网站上找工作了:

6e92b21beace86c53a48504ede060939.png

如果Pikimov能快速发展起来,Clément Cordier也许就能像Photopea的Ivan Kutskir那样,光靠广告费就过得非常滋润了,根本不需要找工作了。

3

写在最后

网页版PS有了,AE有了,PR呢?Illustrator呢? Acrobat呢?

也许就在路上吧!

这是个艰难的路程,因为无论是网页版PS还是网页版AE,靠一个人单打独斗,工作量是极其吓人的。

如果不是真的热爱这个东西,并且也在这个领域有经验(PhotoPea是图像处理,Pikimov是视频处理),想做出网页版的XXX,是很难的,漫长的开发过程,根本坚持不下来。

不过世界很大,总会有某个地方的程序员突然冒头儿,带给我们惊喜。

希望再过几年,我能再写一篇文章:中国程序员实现了一个网页版的XXX,期待这一天早日到来。

全文完,觉得不错的话点个赞或者在看吧!

最后,欢迎大家到码农翻身公众号的“小密圈”逛逛,这是个和大家直接交流的地方,公众号没有发的东西,我也会放到这里,完全免费,欢迎加入!

993a123a985fd317602c61a536cd98fc.png

相关文章:

这两个大龄程序员,打算搞垮一个世界软件巨头!

大家都知道,Adobe是多媒体和数字内容创作者的绝对王者,它的旗下有众多大家耳熟能详的软件:Photoshop、Illustrator、Premiere Pro、After Effects、InDegign、Acrobat、Animate等等。 这些软件使用门槛很高,价格昂贵,安…...

LabVIEW放大器自动测量系统

开发了一个基于LabVIEW平台的多路前置放大器自动测量系统的开发与实施。该系统集成了硬件控制与软件编程,能够实现放大器各项性能指标的快速自动测量,有效提高了测试的精确性和效率。系统设计采用了虚拟仪器技术,结合了先进的测量与控制策略&…...

全面整理人工智能(AI)学习路线图及资源推荐

在人工智能(AI)飞速发展的今天,掌握AI技术已经成为了许多高校研究者和职场人士的必备技能。从深度学习到强化学习,从大模型训练到实际应用,AI技术的广度和深度不断拓展。作为一名AI学习者,面对浩瀚的知识海…...

react antd upload custom request处理多个文件上传

react antd upload custom request处理多个文件上传的问题 背景:第一次请求需要请求后端返回aws 一个link,再往link push文件,再调用另一个接口告诉后端已经上传成功,拿到返回值。 再把返回值传给业务api... 多文件上传一直是循环…...

ALB快速实现IPv4服务的负载均衡

阿里云应用型负载均衡ALB支持HTTP、HTTPS和QUIC协议,专门面向网络应用层,提供强大的业务处理能力。 为了实现IPv4服务的负载均衡,需要快速创建一个ALB实例,并将来自客户端的访问请求转发至后端服务器。 操作流程 第一步&#x…...

【LLM】-12-部署Langchain-Chatchat-0.3.x版本

目录 1、0.3与0.2的功能对比 2、0.3.x支持多种部署方式 2.3、源码安装 2.3.1、项目源码下载 2.3.2、创建conda环境 2.3.3、安装poetry 2.3.4、安装依赖库 2.3.5、项目初始化 2.3.6、配置文件 2.3.7、初始化知识库 2.3.7、启动服务 2.3.8、配置说明 2.3.8.1、basic_…...

优化网络接收缓存减少数据丢包

视频领域,网络udp数据丢包会引起视频解码花屏。 1、修订单个socket的缓冲区大小:通过setsockopt使用SO_RCVBUF来设置接收缓冲区,该参数在设置的时候不会与rmem_max进行对比校验,但是如果设置的大小超过rmem_max的话,则…...

数据透视——判别分析

文章目录 判别分析简介常用的判别分析方法距离判别贝叶斯判别线性判别分析(LDA)支持向量机(SVM)总结 补充 在数据科学的丰富领域中,判别分析扮演着至关重要的角色。它是一种统计方法,用于预测样本数据的类别…...

书生大模型学习笔记 - 连接云端开发机

申请InternStudio开发机: 这里进去报名参加实战营即可获取 书生大模型实战营 InternStudio平台 创建开发机 SSH连接开发机: SSH免密码登录 本地创建SSH密钥 ssh-keygen -t rsa打开以下文件获取公钥 ~/.ssh/id_rsa.pub去InternStudio添加公钥 …...

Python操作符的重载

目录 1、操作符重载的基本概念1.1、常用的操作符重载方法1.1.1、算术操作符1.1.2、比较操作符1.1.3、比其他操作符 1.2、例子 2、应用场景2.1、增强代码的可读性2.2、 实现类的数学运算2.3、支持自定义的数据结构2.4、简化 API 设计2.5、实现链式操作和流式接口 3、总结 Python…...

redis面试(三)Hash数据结构

HASH 哈希,在redis底层实现的时候,数据的结构叫做dict 这个Dict就是一个用于维护key和value映射关系的数据结构,与很多语言中的Map类型相似。 本质上也是一个数组链表的形式存在,不同的点在于,每个dict中是可以存在…...

Java基础语法

注释 注释就是在程序指定位置添加的说明性信息 简单理解,就是对代码的一种解释 注释有三种: 单行注释 格式://注释信息 多行注释 格式:/*注释信息*/ 文档注释 格式:/**注释信息*/ 注释的注意事项…...

Qt | QChart+QChartView+QLineSeries(折线图)+QBarSeries(柱状图)实战

点击上方"蓝字"关注我们 01、QLineSeries QLineSeries 是 Qt 中的一个类,用于在图表中表示一系列的数据点。它继承自 QAbstractSeries 类,提供了绘制折线图所需的基本功能。 常用的方法包括 append(x, y):向序列中添加一个新的数据点,其中 x 和 y 分别表示横坐…...

公布一批脸书爬虫(facebook)IP地址,真实采集数据

一、数据来源: 1、这批脸书爬虫(facebook)IP来源于尚贤达猎头公司网站采集数据; ​ 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“facebook”和IP核实。…...

Package.Json 参数配置理解用途

"dev": "SET NODE_OPTIONS--openssl-legacy-provider & vue-cli-service serve --open" 这行命令首先设置环境变量NODE_OPTIONS,添加了--openssl-legacy-provider标志。这个标志用于解决某些情况下Node.js在Windows系统上使用OpenSSL时可能…...

k3:增加触发器,当外协单和报料单新增时,更新生产任务单的“说明”栏

外协单新增时 CREATE TRIGGER [dbo].[t_BOS257800018Entry2_update]ON [dbo].[t_BOS257800018Entry2]AFTER insert AS BEGINSET NOCOUNT ON; ------实现当外协时,生产任务单的说明有标识(240731 BY WK) declare fid_souce as int; declare…...

神奇海洋养鱼小程序游戏广告联盟流量主休闲小游戏源码

在海洋养鱼小程序中,饲料、任务系统、系统操作日志、签到、看广告、完成喂养、每日签到、系统公告、积分商城、界面设计、拼手气大转盘抽奖以及我的好友等功能共同构建了一个丰富而互动的游戏体验。以下是对这些功能的进一步扩展介绍: 饲料 任务奖励&a…...

分享几个适合普通人的AI副业变现思路

最近很多人问:看你做AI也做了有一两年了,也没见有什么产出啊?其实很多事情是长期主义,并不是一时半会儿马上就看到收益了。 正如董宇辉出名前也只是新东方默默无闻的一位老师,李佳琪曾经也只是一个化妆品销售。抱着长…...

如何使用CANoe自带的TCP/IP Stack验证TCP的零窗口探测机制

如果想利用CANoe自带的TCP/IP协议栈验证TCP的零窗口探测机制,就必须添加一个网络节点并配置独立的CANoe TCP/IP协议栈,作为验证对象。而与它进行TCP通信的对端也是一个网络节点,但不要配置TCP/IP协议栈,而是使用CAPL代码在底层组装TCP报文模拟TCP通信过程。这样可以尽量减少…...

二进制搭建 Kubernetes v1.20(中)

一、部署 CNI 网络组件 目录 一、部署 CNI 网络组件 1.flannel简介 1)UDP模式 2)VXLAN 模式 2.部署flannel ​编辑 3.Calico简介 1.flannel简介 K8S 中 Pod 网络通信:●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff0…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...