PixelsMeasure 开发第二年总结

前年利用业余时间,开发了一款屏幕测量应用 —— PixelsMeasure,搜索 PixelsMeasure 可以下载,同时支持 macOS 和 iOS。这篇文章总结一下今年的经历和感悟。

2024/11/26
articleCard.readMore

PixelsMeasure 开发一年总结

去年利用业余时间,开发了一款屏幕测量应用 —— PixelsMeasure,这篇文章总结一下这段时间的经历和感悟。

2023/9/26
articleCard.readMore

Swift/SwiftUI 踩坑记

这里记录 Swift/SwiftUI 开发过程中踩过的坑。

2023/9/7
articleCard.readMore

为什么说 GPT 利好程序员

半年来,ChatGPT (基于 GPT 架构开发的大型语言模型) 彻底颠覆了人们对人工智能的认识,给很多行业都带来了前所未有的冲击。尤其在编码方面,能轻而易举地写出俄罗斯方块、贪吃蛇、1024 等小游戏,能写出电影推荐等可上线的应用程序。在出色完成编码任务的同时,编码质量和效率都让人震撼。以至于很多人开始焦虑,觉得程序员离下岗不远了。为了了解其能力,我深入体验了一回。惊奇地发现,GPT 十分利好程序员,尤其利好程序员。

2023/4/11
articleCard.readMore

ChatGPT 编程实现 Web 数字水印

文心一言发布后,界面的水印技术引起了我极大的兴趣。再加上想体验 ChatGPT 写代码的能力,所以借助它的能力,编程实现了类似文心一言界面的 Web 数字水印,并部署在了我的网站上。

2023/3/25
articleCard.readMore

Web 数字水印探究

文心一言发布后,除了训练数据规模、训练结果和 ChatGPT 有差异外,界面上还多了水印。这篇文章主要探究文心一言使用的 Web 数字水印技术。

2023/3/16
articleCard.readMore

Micro Frontends for Mobile

On the Web, We have seen significant benefits from including micro frontends, which break up frontend monoliths into many smaller, more manageable pieces, and make many teams work simultaneously on a large and complex product. But Micro frontends for mobile seem stuck these days. In this article, we will describe a comprehensive guide to bringing these benefits to native mobile apps, as well as cover some of the implementation options that are available for mobile. And finally, we will dive deep into a full example application to show the technique.

2022/5/25
articleCard.readMore

URL 加载系统(URL Loading System)

URL Loading System,通过 URLs,使用标准的网络协议,与服务器交换数据。本文帮助理解 URL 加载系统,并通过示例代码练习如何使用它,示例代码已开源。

2022/5/4
articleCard.readMore

Protocol Buffers

Protocol Buffers,又名 protobuf,是谷歌内部使用的一种数据交换格式,于 2008 年开源 (proto2), 2016 年发布 proto3。后被业界广泛采用发展至今。

2021/7/25
articleCard.readMore

GraphQL

GraphQL 是一种查询语言和执行引擎,通过 API 描述应用程序数据模型的功能和需求。2012 年由 Facebook 提出并实现,最初用在移动端,在 2015 年对外发布。于 2019 年成立 GraphQL 基金会发展至今。

2021/7/16
articleCard.readMore

从 0 到 1 开发一款 IOS 应用 - Swift

2021 年才做 IOS 应用开发,你觉得晚了吗?我认为时间刚刚好。Swift 发布 (2014 年) 才不到 10 年, ABI 稳定还不到两年。SwiftUI 也不到两年,势头正浓。Swift 的成熟让新人彻底抛弃 Objective-C 的历史包袱。再考虑到苹果努力打通各个平台的雄心壮志,未来无限可能,绝对值得投资。

2021/2/1
articleCard.readMore

MV* 软件设计架构

软件工程推荐设计高内聚,低耦合的程序,方便代码复用,测试和维护。除了微观上符合 SOLID 原则外,宏观上良好的分层/分类也能极大的降低实体之间的耦合。

2021/1/5
articleCard.readMore

学习一个新技巧需要多久?

还记得最近学会的新技巧,一共花了多久吗?这里记录了我学习 VS Code 设置语言命令(Change language mode)的路线图,总共花了 5 个小时。

2020/7/12
articleCard.readMore

不停机数据库迁移

已上线服务若停机,轻则影响使用者的心情,重则会造成无法估计的损失。试想如果淘宝停机五分钟,那会损失多少真金白银。但数据库表结构却不可能在一开始就设计的十分完美,需要不断迁移,不断迭代。本文尝试分析数据库迁移时可能造成的停机原因,并以 Rails + PostgreSQL 为例,提出不停机的数据库迁移方案 (Zero downtime migrations)。

2019/4/12
articleCard.readMore

Rspec 如何 mock update 方法更新自己?

Rspec 用来 mock 对象方法的语法如下:

2018/12/8
articleCard.readMore

Rails 使用 mysql2 出现的段错误

这两周做了一个 rails 项目,有重新认识 rails 之感,接着重新认识了一下自己。把其中一个有意思的 bug 拿出来分析一下。

2018/11/22
articleCard.readMore

使用 Docker-compose 部署 Rails 应用到生产环境

在上一个项目上有两年的工作经验,半年后再次使用 Ruby on Rails,还是掉进了各种坑里。踩过了坑,最重要的就是记录下来。

2018/7/22
articleCard.readMore

Cocoa troubleshooting

心心念念的《Cocoa Programming for OSX (5th edition)》终于回来了,很开心的看了一章。概念和 QT 很像, connection 更像。结果一动手,就被第一个例子给难住了。怎么都调试不通过,浪费了很多时间。写一篇博客记录 Coco 相关问题及解决办法。

2018/1/14
articleCard.readMore

独孤九剑 Dit (0x05) - 终端篇

据说一个合格的程序员看终端的时间会比看女友的时间还多。

2017/6/15
articleCard.readMore

Gem-based Jekyll theme 开发小记

Github pages 和 Jekyll 搭配,让一大批静态博客火了起来,方便了不少人,用 markdown 写文章也非常优雅。

2017/6/10
articleCard.readMore

Miscellaneous

这里记录一些小技巧

2017/6/6
articleCard.readMore

前端手记 TodoMVC 之 Redux 篇

React 将应用程序分解成不同的 component,每个 component 单独完成事件响应或者数据展示。把只负责数据展示的 component 叫做 Presentational Component,易复用。把与业务逻辑/业务处理密切相关的 component 叫做 Container Component,极难复用,通常作为 Presentational Component 的父 component 存在,比如我实现的 TodoMVC 中的 TodoApp。

2016/10/14
articleCard.readMore

前端手记 TodoMVC 之 Server 篇

在上一篇 前端手记 TodoMVC 之 React 篇 中实现了单页应用 TodoMVC,直接把数据存在前端,当刷新或者重新打开网站时,所有数据都会丢失。虽然对于 TodoMVC 这种应用,把数据缓存在前端是一个不错的选择,但以练习为目的,我还是打算特意为之,实现一个简单的 Server,提供 RESTful API,把 TodoMVC 相关的数据存储在后台。

2016/9/27
articleCard.readMore

前端手记 TodoMVC 之 React 篇

保持专注越来越难了,感觉我的注意力也上了年纪,变的花心多了,很容易被打断。能有心情、有时间静坐下来,学学 Todo list 的内容,感觉是最幸福的了。 前端的框架很多,我先从 React 开始。

2016/9/6
articleCard.readMore

前端手记 TodoMVC 之 CSS 篇

我一直以后端程序员自居,从不轻易涉足前端。有人说过,一个人最热爱的就是他所擅长的事。我没有设计师的品味和 UX 的眼力,对前端有着莫名的恐惧。这次由于工作原因,需要系统地学习前端知识,对我来说也是不小的挑战。

2016/8/27
articleCard.readMore

独孤九剑 Dit (0x04) - 测试篇

《南皮县志·风土志下·歌谣》:“兵马不动,粮草先行”。作战时兵马还没出动,军用粮草的运输要先行一步。在开发新功能之前,先编写测试代码,然后只编写使测试通过的功能代码,这种以测试驱动开发的开发模式是我非常推荐的。

2016/6/26
articleCard.readMore

独孤九剑 Dit (0x03) - 缓存篇

每个人都会变成自己讨厌的人

2016/6/19
articleCard.readMore

英语小抄

这里记录一些有用的单词,句子

2016/4/1
articleCard.readMore

LLDB debug Golang

除了 GDB,还可以使用 LLDB debug go code

2015/12/20
articleCard.readMore

Make mistakes

Do you want to know the difference between a master and a beginner?

2015/11/29
articleCard.readMore

大牛俱乐部上线啦

如果说我比别人看得更远些,那是因为我站在了巨人的肩上

2015/9/16
articleCard.readMore

独孤九剑 Dit (0x02) - 数据结构篇

穷则独善其身,达则兼济天下。一个人一旦能够喂饱自己并有个安身之所,剩下的就是该别人做点什么了。我现在所做的一切,还都是为了自己。

2015/8/5
articleCard.readMore

独孤九剑 Dit (0x01) - 总决

总诀:“归妹趋无妄,无妄趋同人,同人趋大有。甲转丙,丙转庚,庚转癸。子丑之交,辰巳之交,午未之交。风雷是一变,山泽是一变,水火是一变。乾坤相激,震兑相激,离巽相激。三增而成五,五增而成九……” —— 金庸

2015/8/1
articleCard.readMore

独孤九剑 Dit (0x00) - 我为什么要做 Dit

又挖了一个坑!不是没事专坑自己,只是想在无聊的时光里,找个乐子,找点事做。

2015/7/31
articleCard.readMore

零值强制类型转换的使用

这可能是最最基础的内容了,可是我却从来没在项目中用过。有一句话是对的,永远不能说精通哪一门语言。

2015/7/26
articleCard.readMore

终端颜色输出重定向

在用printf输出时,可加上颜色显示,让输出信息更加友好。

2015/7/23
articleCard.readMore

Go语法简略 - 正则表达式

正则表达式Regular Expression(简写regexp或者RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。用法灵活,设计完善,是值得研究的一门技术。多数流行的语言,都支持正则表达式,且用法类似。像这种一处学习,处处可用的东西,值得大家深入研究。然而对我来说,需要的时候查查就行了。

2015/7/17
articleCard.readMore

Makefile

每次到写Makefile的时候,都是Google一段代码,基本就能实现自己的需求,过后就忘(发现越来越容易忘记一些事情)。今天终于被要求解释Makefile中的特殊变量,直接就蒙逼了,被狠狠地鄙视了一回,那么还是做个备忘吧。之后涉及到Makefile的问题,我都指着这篇活了。

2015/7/13
articleCard.readMore

Go语法简略 - Duck框架探索

这个周末,《奔跑吧,兄弟》没有了,《那时那你》看完了,《万万没想到》剧组也没有新的项目,挠人的《花千骨》也要等到周日才更新,这是一个剧荒的周末,没办法,只能看看代码了。

2015/7/11
articleCard.readMore

Go语法简略 - 依赖注入

通过对web应用框架背后原理的探索,引入了依赖注入的概念。如果你需要读懂或者写一个框架的话,依赖注入的思想绝对能帮到你。本文记录对依赖注入的探索。

2015/7/5
articleCard.readMore

Go语法简略 - web应用框架

Martini是目前最流行的基于Go的web应用框架,借鉴了express和sinatra。其内核类非常简洁小巧,值得研究。

2015/7/4
articleCard.readMore

Go语法简略 - 反射

反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。 一般来说,静态语言都会经过源码—>编译->运行的过程,reflect反其道而行,在运行时访问、 检测或修改源码的行为。

2015/7/3
articleCard.readMore

Go语法简略 - 面向对象

优秀的程序员应该不限于只用一两种语言,对各种语言都要有猎涉,这样才能在合适的应用下选择最合适的语言。但优秀的程序员至少需要精通一到两种语言,在众多的编程语言中,我选择Go和Swift作为自己之后20年内的主要编程语言。

2015/6/29
articleCard.readMore

Go语法简略 - goroutine

优秀的程序员应该不限于只用一两种语言,对各种语言都要有猎涉,这样才能在合适的应用下选择最合适的语言。但优秀的程序员至少需要精通一到两种语言,在众多的编程语言中,我选择Go和Swift作为自己之后20年内的主要编程语言,并力争达到精通的境地。

2015/6/23
articleCard.readMore

Go语法简略 - 方法和接口

优秀的程序员应该不限于只用一两种语言,对各种语言都要有猎涉,这样才能在合适的应用下选择最合适的语言。但优秀的程序员至少需要精通一到两种语言,在众多的编程语言中,我选择 Go 和 Swift 作为自己之后20年内的主要编程语言,并力争达到精通的境地。

2015/6/23
articleCard.readMore

Go语法简略 - 基础篇

优秀的程序员应该不限于只用一两种语言,对各种语言都要有猎涉,这样才能在合适的应用下选择最合适的语言。但优秀的程序员至少需要精通一到两种语言,在众多的编程语言中,我选择 Go 和 Swift 作为自己之后20年内的主要编程语言。

2015/6/22
articleCard.readMore

大牛 | 轻松科研

如果说我比别人看得更远些,那是因为我站在了巨人的肩上

2015/6/6
articleCard.readMore

未来这几年

我也来展望一下未来几年科技的发展,如果不能为将来吹牛添加资本,至少可为做为笑料自嘲一下自己。

2015/4/30
articleCard.readMore

为 Android Studio 创建图标

当你在Ubuntu上满心欢喜的安装了最新版的Android Studio正准备大干一场的时候,却发现只能从命令行打开,是不是很郁闷呢?

2015/4/30
articleCard.readMore

Shell

这里记录我容易忘记的 shell 代码片段

2015/3/3
articleCard.readMore

Git

这里记录我容易忘记的Git命令

2015/3/3
articleCard.readMore

Vim

这里记录我容易忘记的vim命令

2015/3/2
articleCard.readMore

金庸答百问

这次,趁着春节,补看了《越女剑》、《白马啸西风》和《鸳鸯刀》,《金庸全集》总算一部不落的读完了。记得第一本读的金庸小说是《神雕侠侣》,从此欲罢不能。这次又重读了一部分《笑傲江湖》,常想着,金庸那匠心独运的构思,是先想好了再写,还是边写边想,终于在金庸答百问里找到了答案:

2015/2/27
articleCard.readMore

论拖延症

现在就干,立刻!马上!

2015/2/5
articleCard.readMore

Flex, A fast scanner generator

One size does not fit all

2014/12/29
articleCard.readMore

有理想的人

理想是一定要有的,万一实现了呢?

2014/12/14
articleCard.readMore

从虚拟到现实

假如你吃了鸡蛋觉得不错,何必认识那只下蛋的母鸡呢?我是一个想弄清楚下蛋过程的人。

2014/11/15
articleCard.readMore

常用视频转接口

求知若饥,虚心若愚 (Stay Hungry, Stay Foolish)

2014/11/12
articleCard.readMore

Recognizer configuration on CentOS

I usually forget some things.

2014/10/21
articleCard.readMore

整个世界清静了

除了兴趣,做什么事情都需要一个理由。

2014/10/18
articleCard.readMore

《Python源码剖析》读书笔记

从Python开始,向动态语言迈进。

2014/1/9
articleCard.readMore