Toggle navigation
JM Blog
Home
About
Archive
Tags
Archive
「我干了什么 究竟拿了时间换了什么」
Show All
139
笔记
42
Coq
36
SF (软件基础)
36
iOS
36
Web
20
PLF (编程语言基础)
19
LF (逻辑基础)
16
知乎
10
Xcode
10
Swift
9
生活
8
Mac
8
开发技巧
7
终端
7
PWA
7
UX/UI
7
产品
6
Git
5
JavaScript
4
Slides
4
健身
3
基础
3
效率
3
译
3
阿里
3
🇬🇧
3
C
3
C++
3
Obj-C
3
Vim
3
ruby
3
函数式编程
2
开源库
2
开源框架
2
被夹
2
计算机科学
2
计算理论
2
Blog
2
CSS
2
CocoaPods
2
Debug
2
ReactiveCocoa
2
Runtime
2
Wechat
2
hUX 随想录
2
shell
2
zsh
2
博客
1
定时器
1
漫谈
1
设计模式
1
轮子
1
AsyncDisplayKit
1
CS Idols
1
Category
1
Cocopods
1
Demo
1
Design Patterns
1
Emacs
1
Facebook
1
Flash
1
Flutter
1
GCD
1
Github
1
Haskell
1
IBInspectable
1
Meta
1
Notes
1
ObjC
1
Objective-C
1
QC (Quickcheck)
1
RVM
1
RunLoop
1
Swift语法
1
iOS开发基础
1
macOS
1
2022
一文道尽Flutter最新最全的学习资料
Flutter最新最全的学习资料
KVO详解
KVO底层原理及其实现
2021
ARC 与 MRC 混合使用
MRC 库的处理
一文总结设计模式
详解设计模式
中国高等教育的系统性失败
The Systematic Failure of Higher Education in China
2020
OC 内存管理的基本概念
OC 内存管理的基本概念以及应用
Data Representation - Floating Point Numbers
「数据表示」浮点数
Data Representation - TODO
「数据表示」待写
Data Representation - Integer
「数据表示」整数
My Programming Languages Spectrum
我的编程语言光谱
2019
Peter John Landin
「计算机科学偶像」- 彼得·约翰·兰丁
My Spacemacs Workflow
From Vim to Spacemacs
把「终端下的 Vim」作为 macOS Finder 的打开方式
Open file with terminal Vim from the macOS Finder
「SF-QC」2 TypeClasses
Quickcheck - A Tutorial on Typeclasses in Coq
Xcode命令行工具管理
如何切换Xcode命令行工具
「SF-PLF」19 PE
Programming Language Foundations - Partial Evaluation
「SF-PLF」18 UseAuto
Programming Language Foundations - Theory And Practice Of Automation In Coq Proofs
「SF-PLF」17 UseTactics
Programming Language Foundations - Tactic Library For Coq
「SF-PLF」16 LibTactics
Programming Language Foundations - A Collection of Handy General-Purpose Tactics
「SF-PLF」15 Norm
Programming Language Foundations - Normalization of STLC
「SF-PLF」14 RecordSub
Programming Language Foundations - Subtyping with Records
「SF-PLF」13 References
Programming Language Foundations - Typing Mutable References
「SF-PLF」12 Records
Programming Language Foundations - Adding Records To STLC
「SF-PLF」11. TypeChecking
Programming Language Foundations - A Typechecker for STLC
「SF-PLF」10 Sub
Programming Language Foundations - Subtyping (子类型化)
「SF-PLF」9 MoreStlc
Programming Language Foundations - More on The Simply Typed Lambda-Calculus
「SF-PLF」8 StlcProp
Programming Language Foundations - Properties of STLC
「SF-PLF」7 Stlc
Programming Language Foundations - The Simply Typed Lambda-Calculus
「SF-PLF」6 Types
Programming Language Foundations - Type Systems
「SF-PLF」5 Smallstep
Programming Language Foundations - Small-Step Operational Semantics
「SF-PLF」4 HoareAsLogic
Programming Language Foundations - Hoare Logic as a Logic
「SF-PLF」3 Hoare2
Programming Language Foundations - Hoare Logic, Part II
「SF-PLF」2 Hoare
Programming Language Foundations - Hoare Logic, Part I
「SF-PLF」1 Equiv
Programming Language Foundations - Program Equivalence (程序的等价关系)
「SF-LC」16 Auto
Logical Foundations - More Automation
「SF-LC」15 Extraction
Logical Foundations - Extracting ML From Coq
「SF-LC」14 ImpCEvalFun
Logical Foundations - An Evaluation Function For Imp
「SF-LC」13 ImpParser
Logical Foundations - Lexing And Parsing In Coq
「SF-LC」12 Imp
Logical Foundations - Simple Imperative Programs
「SF-LC」11 Rel
Logical Foundations - Properties of Relations
「SF-LC」10 IndPrinciples
Logical Foundations - Induction Principles
「SF-LC」9 ProofObjects
Logical Foundations - The Curry-Howard Correspondence
「SF-LC」8 Maps
Logical Foundations - Total and Partial Maps
「SF-LC」7 Ind Prop
Logical Foundations - Inductively Defined Propositions (归纳定义命题)
「SF-LC」6 Logic
Logical Foundations - Logic in Coq
「SF-LC」5 Tactics
Logical Foundations - More Basic Tactics
「SF-LC」4 Poly
Logical Foundations - Polymorphism and Higher-Order Functions
「SF-LC」3 List
Logical Foundations - Working with Structured Data
「SF-LC」2 Induction
Logical Foundations - Proof by Induction
「SF-LC」1 Basics
Logical Foundations - Functional Programming in Coq
2018
从一道网易面试题浅谈 Tagged Pointer
浅谈 Tagged Pointer
为博客添加 Gitalk 评论插件
BY Blog 添加 Gitalk 的评论插件了
Objective-C:RunLoop
深入理解RunLoop
Vim 与中文输入法
Using Vim with non-english input method
GCD 在 Swift 中的用法
Avoiding success at all cost
Watching "Escape from the Ivory Tower: The Haskell Journey"
Swift 4 新特性
很高兴 Swift 4 不再是一门新语言了😅
利用 Debug Memory Graph 检测内测泄漏
利用 Xcode 内存表(Debug Memory Graph)检测内测泄漏
iTunes Connect 构建版本不显示
App打包上传到 App Store, iTunes Connect 构建版本不显示
Swift的HMAC和SHA1加密
swift中利用HMAC的SHA1对文本进行加密
「体能训练理论」之功能性
「健身先健脑」科学的运动需要科学的运动理论
「体能训练理论」之动力链
「健身先健脑」科学的运动需要科学的运动理论
「体能训练理论」之金字塔
「健身先健脑」科学的运动需要科学的运动理论
Xcode9 无线调试功能
zsh的快速配置
程序员中的梦想家
Dreamers among programmers
快速配置zsh
zsh的快速配置
5分钟带你看完 WWDC 2018
WWDC 2018 Keynote 全记录
给《PWA 实战》一书写的推荐序
在 Swift 中使用 IBInspectable
IBInspectable 在 Swift 中的实际应用
R.swift 的使用
在项目中引入 R.swift,更安全的获取资源
Swift 的懒加载和计算型属性
比较水的个人笔记
RVM 使用指南
RVM 常用的命令整理
iOS自动打包
利用 xcdeobulid 打包项目、上传
CocoaPods 安装和使用
安装时间 2017/04/13, 环境macOS 12.10.1, cocoapod版本 1.2.1
强化 swift 中的 print
强化 swift 中的 print 输出函数
Swift 3.1 的新变化「译」
What’s New in Swift 3.1?
AsyncDisplayKit 2.0 教程:入门「译」
AsyncDisplayKit Tutorial:Getting Started
Mac终端(zsh)下用代码编辑器打开文件或目录
更改 zsh 配置文件,在终端使用sublime、vscode、atom快速打开文件或目录
CocoaPods私有仓库的创建
继续带你创建 CocoaPods 私有有仓库
CocoaPods公有仓库的创建
手把手教你创建 CocoaPods 公有仓库
文件目录树状(tree)显示
Mac终端显示输树状文件结构
Swift 代理模式
Swift中如何使用代理模式
Xcode 控制台输出中文
在 Xcode 控制台输出中文的方法
Mac 文件的隐藏与显示
使用终端 显示/隐藏 文件
使用 .gitignore 忽略 Git 仓库中的文件
.gitignore 文件在Git中的使用
Git 代码回滚
回滚代码的正确姿势
Git指令整理
不适合阅读的整理的一些个人常用的 Git 指令
Mac 快速调出终端
在Mac下为终端设置快捷键
BYPhoneNumTF
一个电话号码格式的文本框
Objective-C Runtime 详解
Runtime 详解
Objective-C Runtime 基本使用
Runtime 使用案例
2017
ReactiveCocoa 基础
函数式编程框架 ReactiveCocoa 基础入门
Objective-C:Category
深入解析 Category 的实现原理
定时器 你真的会使用吗?
iOS定时器详解
「知乎」如何通俗地解释停机问题?
How to explain the Halting Problem?
「知乎」如何证明不可计算的函数比可计算的函数多?
Why is there more uncomputable functions?
忽略 Xcode 8 中的注释警告
Bulid Settings -> Documentation Comments -> NO
快速添加圆角和描边
iOS 为图片添加圆角和描边的几种方式
iOS噪音计
一个iOS噪音计模型、以及测量原理及分贝计算
JSON转模型 For YYModel
使用 YYModel库 快速完成 JSON 转模型
Xcode Debug 大全
iOS开发中利用 Xcode 各种调试Bug方法
iOS手势与变形
手势与变形基础知识笔记
「知乎」为什么 CSS 这么难学?
Why I dislike CSS as a programming language
Farewell, Flash. 感谢你,但这一次是真正的永别。
So long, and thanks for all the Flash
饿了么的 PWA 升级实践
Upgrading Ele.me to Progressive Web App
他是狗,你们便是苟奴隶
How does SW-Precache works?
「知乎」如何理解
document
对象是
HTMLDocument
的实例?
Why is
document
an instance of
HTMLDocument
?
Mac 文本转音频
在Mac终端上将文本文件转换为音频文件
随便聊聊
2017 情人节快乐~
下一代 Web 应用模型 —— Progressive Web App
The Next Generation Application Model For The Web - Progressive Web App
快速搭建个人博客
手把手教你在半小时内搭建自己的个人博客(如果不踩坑的话🙈🙊🙉)
Hello 2017
"Hello World, Hello Blog"
如何客观地评价「小程序」的体验?
Wechat Mini-Program vs. the Web, a UX comparison
ReactiveCocoa 进阶
函数式编程框架 ReactiveCocoa 进阶
2016
Service Worker 101「GDG DevFest 2016 北京」
🎞 Slides:Service Worker 101, Working Offline and Instant Loading (GDG DevFest 2016 Beijing)
Progressive Web Apps,复兴序章「QCon 上海 2016」
🎞 Slides:Progressive Web Apps, Make Web Great Again. (QCon Shanghai 2016)
Web 在继续离我们远去
After the release of Wechat Mini-Program
Progressive Web App 之我见
🎞 Slides:Progressive Web App, in my points of view
「译」React vs Angular 2:冰与火之歌
React versus Angular 2: There Will Be Blood
2015
都 2015 年了,CSS 怎么还是这么糟糕
🎞 Slides:CSS Still Sucks 2015
「译」iOS 9,为前端世界都带来了些什么?
iOS 9, Safari and the Web: 3D Touch, new Responsive Web Design, Native integration and HTML5 APIs
「知乎」设计师如何学习前端?
How designers learn front-end development?
「译」ES5, ES6, ES2016, ES.Next: JavaScript 的版本是怎么回事?
ES5, ES6, ES2016, ES.Next: What's going on with JavaScript versioning?
JavaScript 模块化七日谈
🎞 Slides:JavaScript Modularization Journey
聊聊「阿里旅行 · 去啊」—— 行业与战略
聊聊在线旅行行业与老东家的产品思路
JavaScript Module Loader
CommonJS,RequireJS,SeaJS 归纳笔记
See you, Alibaba
再见,阿里。
hUX 随想录(二):操作系统的浪漫主义 —— Metro 篇
信息、载体、抽象、UI 设计乱谈
Unix/Linux 扫盲笔记
不适合人类阅读,非常水的自我笔记
Definition of End to End User Scenarios
hUX 随想录(一):Digital native 数字原住民
两岁的侄女天天叫着手机手机
「知乎」如何评价 2015 年 3 月 9 日 Apple 春季发布会?
聊聊科技与新式奢侈品
Hello 2015
"Hello World, Hello Blog"
2014
「知乎」如何看待微信屏蔽快的打车事件?
恰有小感。
「知乎」你们觉得响应式好呢,还是手机和PC端分开来写?
「知乎」为什么阿里系软件体验都不好?
或许这就是所谓的企业 DNA
「知乎」对中国用户而言,Pure Android 是否比 MIUI 或 Flyme 体验更好?
「知乎」如何评价 MIUI 6?