祭奠那些年,我弃坑的开源轮子
谨以此篇纪念我那些已经弃坑的轮子。
作为一个有理想、有追求的程序员,我造过许许多多的轮子。不幸的是,大部分轮子都死在沙滩上了,只有用 markdown 写的项目还活着。就这么着,我成为了 a famous MD programmer
。
我从 2010 年开始接触到 GitHub,不过真正活跃的时间是在 2014 年之后了。这些年来,陆陆续续也造了许许多多的轮子。造过的轮子很多,火起来的框架可是一个都没有,物联网框架 Lan 倒可以算得上,不过只有 200+ 个 star。 当然 star 很多的应用倒也有几个,如成长应用 Growth 也有 2k 个 star 了,然并卵。
不过,我倒还是造了很多『自用』的日常小工具,markdown 微信排版工具 mdpub、伪锁屏工具 ss,定制 badge 的 brand 等等。
趁着清明这个节日,我把这些弃坑的轮子,再拿出来鞭尸一下。
JavaScript 游戏引擎 Chinaware
这个名字听上去很霸气,中文翻译就是『瓷器』。弃坑的主要原因是,这个坑挖得太大了,我发现需要造的东西太多了,并且也已经有太多现成的方案了,如:
在对一个 jQuery 的 Tile Map 插件使用纯 JavaScript 重写之后,我就滚了~~。
还盗了别人的 Tile 图,2333
Lumia.css
很早以前,我是一个诺基亚用户,先后用了 Lumia 920,Lumia 1020。
当时想造一个纯 CSS 的框架,可以用在自己的开源项目上。于是我开了个坑:
然后不知道什么原因,也就没有然后了。。。
前端框架 Lettuce
在 Angular、React、Vue、Ember 还没有几分天下的时候,还是应该自己去造轮子。所以,我想自己想办法造了一个前端框架,还有一个对应的 Logo:
后来,这个框架只在我的几个小项目中出现过,这也算是值了。它让我有了造框架的快感~~。
下一代技术Blog/Presentation 框架 EchoesWorks
写这个轮子的时候,当时正值我需要做各种技术分享的时候。在今天看来,这个框架算是功能已经完成了,但是我都没有在正式的场合里用过。它是一个网页版的 PPT 工具,使用 Markdown 编写。并且支持一些『奇怪』的特性。
如:
- 直接显示 Github 代码
- 全屏背景图片
- 左/右侧图片支持
- 自动播放
- 『字幕』
- 分屏控制
这里的『字幕』我适配就比较奇特了~~,这个创意简直了。当你想分享一下视频的技术分享时,你只需要分享一下 PPT 和 录音,再搭上字幕,就相当于是一个高清版的视频。因为 EchoesWorks 可以支持:自动及定时播放 PPT、按时间显示字幕。
基于Virtual DOM 的测试代码生成 Luffa
这又是我当时想到的一个酷炫的 Idea。当我们编写功能测试的时候,我们需要监测页面 DOM 的变化。而有了 Virtual Dom 之后,我们可以轻松地 Diff 出修改的 DOM,并且还可以高亮这些修改的元素。
通过这个原因,我们就可以轻松地生成测试了。
哪知道:国内的大部分前端都是不会写测试的。
微信小程序 兼容框架 WINV
这个故事就有点长了。在微信小程序出来的那段时间里,我发现小程序是一个封闭的世界。于是便想着做一个框架,来让大部分小程序可以运行在浏览器上。于是就做了一个框架来做这件事:
- 兼容微信小程序的语法——它并没有多少复杂的语法。只是简单的Virtual DOM操作,以及事件绑定
- 尽可能兼容大部分的微信API,兼容所有的微信API几乎是不可能的。
- 提供一个Virtual DOM转换的混合应用插件。
你呢?
你造过哪些没人用的轮子了呢?
更多弃坑见:https://github.com/phodal/ideas
- 前十一个网络游戏业务收入1341亿 同比增22.1%
- ASP.NET MVC Model元数据及其定制:一个重要的接口IMetadataAware
- 使用Docker 1.12.x构建多容器Web应用程序
- 基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用
- 深度解剖dubbo源码
- .NET Core采用的全新配置系统[6]: 深入了解三种针对文件(JSON、XML与INI)的配置源
- 基于 vue2 构建和后台真实交互的 管理系统
- ASP.NET MVC的Model元数据与Model模板:模板的获取与执行策略
- python3.6抓取100知乎用户头像详解(四)
- 从运营商小广告到HTTPS
- .NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]
- 区块链:为什么它不仅仅是比特币?
- Java Mail(二):JavaMail介绍及发送一封简单邮件
- ASP.NET MVC Controller激活系统详解:总体设计
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 面试字节两轮后被完虐,一份字节跳动面试官给你的Android技术面试指南,请查收!
- 3分钟短文:说说Laravel模型中还算常用的2个“关系”
- iOS音视频接入 - TRTC实时屏幕分享
- 如何维护爬虫代理
- LoRaWAN 帧计数机制及典型问题分析
- ffmpeg mp4解码管道输出的问题
- 机器人运动控制仿真:Matlab机器人工具箱和Simmechanics
- 使用HTMLTestRunner实现HTML测试报告
- Jmeter五步实现性能测试
- 测试工程师必须要掌握的linux命令
- Python之pip使用详解|附第三方库安装总结
- Python基础之数据类型详解
- 编码效率提升之Pycharm活动模板(Live Templates )
- crictl调试Kubernetes节点
- leetcode哈希表之好数对的数目