2021-02-06
使用 calibre-webserver 一段时间后,发现它更新不太活跃,而另一个项目 Calibre-web 更新活跃,于是考虑迁移到后者。因为两个项目都是对 Calibre 进行套壳,底层数据库是一样的,理论上是可行的。在本文中通过实践探索,成功实现迁移。
2021-01-31
NAS 搭建起来之后,接下来想开发一些后端服务运行在上面。对于后端应用来说,持续集成是一个很麻烦的东西,需要由自动化工具来解决。因此自然想到了 Jenkins,本文介绍如何在 OpenMediaVault 上通过 Docker 部署 Jenkins。
2021-01-24
蜜獾的噪声有些大,更换横益 7025B 电源后噪声下降不明显,发现机箱风扇也是噪声源之一,因此又对风扇进行了更换。在本文中记录了更换风扇过程中的踩坑与心得。感谢 @karminski-牙医 老师指导并推荐风扇,静音效果非常棒,噪声问题彻底解决。
2021-01-16
随着硬盘陆陆续续到手,在本篇中进行储存方案的搭建。整个方案采用3块硬盘,两块 4t 机械硬盘,一块 SSD 固态硬盘。没有采用常见的 RAID 方案,而是采用定时任务加 rsync 的方式。记录了如何在 OpenMediaVault 中实现这个方案。自己并非这个领域的专家,这个方案也不成熟(气氛民科了起来),还请各位大佬批评指正。最后通过 Docker 部署了一个个人书库,将 NAS 正式利用起来。
2021-01-09
最近想添置一台 NAS,本来打算选择品牌 NAS,架不住微博老铁 @Funarp 的安利,进入矿渣这个神奇领域。
2020-03-21
在家办公憋着太无聊,想找个手游解闷。找了一个放置类手游,名字就不说了,以免被误解是软文。让我意想不到的是,这种游戏对人性的见解很深刻,蕴含了很深的人生哲理。其中有些道理,甚至是我经过多年奋斗打拼,走过一些弯路才换来的。于是,我在一个无脑手游里,开展了对人生哲学的探索之路……
2019-12-31
RayInfo 是一款资讯阅读 App,帮助我们高效获取资讯。
2019-12-12
最近忙装修,忙工作,忙到飞起,生活节奏被打乱。我发现自己更成熟了。
2019-09-07
现在手机发展很快,每隔几年就会换手机。迁移 App 的数据是一个痛点,尤其是像心动这种单机 App。因此在本文中,我来示例如何迁移心动的数据。
2019-08-29
韭生是一款 roguelike 人生模拟器游戏。在游戏中,你将扮演一个初入社会的青年,要靠自己规划去谋生,并通过努力过上自己理想的生活。
2019-08-10
MaxieeRNLab 是我在学习 RN 过程中的沉淀,它是一个综合类的示例 APP,我将学到的各种功能、最佳实践都总结在其中,它就像一个资源宝库,掌握了 MaxieeRNLab,就有能力快速开发任何 APP。
2019-07-23
React Native 是一个我非常热爱的项目,我也希望自己能够成为这个领域的专家。因此我准备开战一个 React Native 365 计划,具体内容是:连续 365 天每天专注于学习 React Native,并将每天的学习进展与心得以博客的形式进行更新。在这 365 天我将只专注于 React Native,闭关修炼。
2019-06-06
Maxiee 的 5 月份总结。
2019-05-14
已经是 5 月中旬,才想起来 4 月份的总结还没有写,赶忙补上。4 月份工作和生活上事情都很多,用于学习的业余时间相对少了一些,不过收获还是令人满意的。
2019-04-19
虽然官方尚未公布,但在最新的 React Native 0.59 中,新架构的 JSI 核心特性已经落地。我第一时间翻译了这篇文章,强烈推荐给大家。RN 憋了一年的大招开始揭开帷幕,未来已来!
2019-04-15
在本文中,我们深入重构的重头戏,几乎每个 React Native 开发者都听说过它:Fabric 和 TurboModules。
2019-04-13
在上一篇中,我设计了一个基于移动硬盘的备份方案。本文是我对这个方案的初步实践。通过实践,我发现这个方案的成本没有想象中那么高,还算可以接受。
2019-04-12
在我的 React Native APP 架构中,我选择 Redux 作为状态管理器。同时我使用 redux-persist 进行数据持久化,使用 immutable.js 进行 Redux 状态更新。所遇到的问题是这两者的兼容,需要进行额外的设置。
2019-04-11
CxxModule 是 React Native 中一个很少被提起的特性,你可以直接使用 C++ 编写 Native Module。
2019-04-10
本文是系列的第二篇文章,我们会深入分析 React Native 是如何解析你编写的代码的,以及新重构是如何改变这个过程的。
2019-04-10
本文是第一篇文章,我们会讨论新架构中会实际影响到你所编写的代码的部分——新的 React 特性,以及一个名为 CodeGen 的工具。
2019-04-09
React Native 的 0.59 版本发布了!在这个版本中有来自 88 个贡献者中的 644 个提交(Maxiee 注:其中一个是我提交的~)。React Hooks、Android 64位 JSC、提高启动速度、瘦内核、CLI 增强。
2019-04-09
UIManagerModule 是 React Native 中视图展示的核心模块,通过挖掘 UIManagerModule,又发现了 JS 侧的 ReactNativeRenderer,最终将整个渲染流程串联起来。
2019-04-03
在本文中将实现 React Native 的 Bundle 懒加载技术,会深入 Metro 和 React Native iOS 代码库的内部实现。这篇关于懒加载的文章写得非常好,强烈推荐!
2019-03-29
时间过得飞快,2019 年的第一季度过去了,这一个月里我在技术上学到很多,在生活中也经历了很多,下面是我这个月的收货总结。这个月一共写了 23 篇博客!使出了洪荒之力!三月的我就像一双滑板鞋,在这现实的地上摩擦、摩擦,是爪牙,是魔鬼的步伐。
2019-03-28
如果你不熟悉 React Native 的 Flexbox 布局机制的话,编写 React Native 布局会十分痛苦。虽然你也可以用 JavaScript 写布局,但是理解和使用 Flexbox 布局是 React Native UI 开发的必备技能。在本文中,我们将使用 React Native 开发一个落地页。
2019-03-27
在上一篇中我们学习了 Yoga,这为分析 React Native 的视图层打了很好的基础。在本篇中我们分析一个 View 在 JavaScript 中写下,是如何被展示成 Android 原生的 View 的。
2019-03-26
我发现没有太多讲怎么把 React Native 组件发布到 NPM 上的材料。因此我希望这篇文章能帮助别人让这个过程变得容易一些。
2019-03-26
React Native 并没有使用 Android 原生的布局引擎,而是使用了 Facebook 的 Yoga 布局引擎。Yoga 引擎是跨平台的,它实现了 Flexbox 布局模式。在本文中,我们就来看看如何使用 React Native 的底层布局引擎 Yoga。
2019-03-25
在本文中,我们将展示如何通过 DeltaFetch 插件来改善爬虫。
2019-03-22
在本文中,我们以 react-native link 命令为起点,通过深入挖掘,了解到原来 React Native 中还有 React Native Package Manager 项目,同时也分析了 react-native link 的实现原理,打开了它的神秘面纱。
2019-03-20
在本文中我们将介绍 React Native 核心团队成员,以及团队超高质量的在线 Q&A,收录了 51 个高质量问题,包括:是否迁移 TypeScript、React → RN 学习成本、推特网站是用 RN 写的、RN vs Flutter、重构计划、Fabric、啥时候发布1.0、学习方法、心路历程、Fabric/TurboModule/Codegen。
2019-03-19
ReactRPG 是一个用 React 开发的地牢探险游戏,这是一份很好的 React、Redux 学习资源。在本我中我们学习它的 Redux 数据结构实现。通过游戏学习 Redux,是很好玩的体验。
2019-03-18
经过前面两篇文章,相信大家已经对静态博客和 react-static 有了充分的认识。在本节我们来一个实战环节,手把手教你如何用 react-static 搭建一个静态博客。
2019-03-17
在本篇中我们来看系列的主角——react-static 静态网站生成器。在本文中,我们将对它进行一个全面的介绍。
2019-03-16
在 GUI 泛滥的今天,我们能从命令行中学到什么呢?让我们重温 UNIX 哲学。如果你是 neovim、tmux、zsh 用户,也能在本文中找到有价值的使用经验。
2019-03-12
maxiee.github.io 是一个基于 react-static 的 React 静态网站。它与传统的静态博客有很多异同。在这个系列中,我准备介绍 react-static,它是一个非常优秀的 React 静态网站生成器。本文是第一篇,我们先来看看 React 静态网站。
2019-03-11
Image 组件是 React Native 中的最常用组件之一,在本文中我们来看它在 Android 下的实现原理。
2019-03-10
几个月前,我开始用 React 和 Redux 开发一个开源的角色扮演游戏,名称为 React RPG。
2019-03-08
在前面的文章中,我们知道 Native 侧与 JavaScript 是通过 Bridge 进行通信的。那么,在 JS APP 启动时到底进行了哪些通信呢?我把它记录在了本文中。
2019-03-07
在本文中,我们来看看 JavaScript 与 Native 之间的通信,通过 Bridge 的 debug 功能,将通信可视化是可能的。
2019-03-07
React Native 看起来像是黑魔法,为了理解其中原理,让我们看看 React Native 的架构与内部工作方式。
2019-03-07
在本文中,我回顾了自己学习方法发展的心路历程,以及其中的一些心得与教训。应试教育把我坑惨了,好在最后我又把自己救回来了。
2019-03-05
Christoph Nakazawa 2019.3 React Native 开源进展汇报!强烈推荐!
2019-03-05
将一个 React Native APP 发布到 iOS AppStore 上,需要一些额外步骤,将在本文中进行说明。
2019-03-04
我们仔细研究了 React Native,必须重新编译 React Native,我想跟大家分享一下我的经验,使用同样的方法,你也可以开始 Hacking React Native,并向其贡献代码!
2019-03-04
React Navigation 是 React Native 开发中常用的导航库,它默认提供了多种底部导航栏实现。目前流行一种在中间加按钮的样式,需要通过自定义组件来实现,在本文中介绍实现方法。
2019-03-03
React Navigation 为我们提供了许多开箱即用的 navigators。但是文档并没有告诉你,如何添加一个函数,来验证路由跳转时的有效性。也没有告诉你,如何添加一个特殊的 UI(比如在 Tab Bar 中央添加一个添加按钮)。这些事情通过自定义 Tab Bar 都可以实现。
2019-03-02
二月份我走了不少地方,既回家过年,又去了深圳香港。学习时间变少了,但是人生经历丰富了。下面看看我这个月的收获吧~
2019-02-25
了解 React Native 内部是如何运作的,以及它在你不知情的情况下为你做了什么。
2019-02-22
React Native 底层是由消息队列机制来驱动的,消息队列是 React Native 中一个非常重要的组成部分。在本文中,我们开始对消息队列的梳理。
2019-02-21
作为一个互联网从业者,每天不论是工作还是生活都活在电脑、手机上面。这样,就有大量的电子数据需要进行备份。如何能够可靠、井井有条地进行呢?在本文中我设计了一个满足我个人需求的备份方案。
2019-02-19
CatalystInstanceImpl 是 React Native 中很重要的一个类。因为它横跨 Java、C++ 两侧(这在 React Native 中称为 Hybrid),所以它的创建过程有点复杂。在本文中我们一探它的创建过程。
2019-02-19
Instance 是 React Native 在 C++ 侧非常重要的一个类。初始化 Bridge、加载 Bundle 都通过它完成。在本文中,我们先来分析它在整个 React Native 框架中的位置。
2019-02-18
在创建 NativeModule 或 ViewManager 时,我们都得将它们添加到某个 ReactPackage 下。这是怎样的一种设计思想呢?从本节开始,我们由浅入深地分析 React Native 是如何使用 ReactPackage 的。
2019-02-18
Context 在 Android 开发中是一个很重要的概念,用于提供各种上下文服务。在 React Native 中,它对 Context 进行了扩展。在本文中我们来梳理 React Native 中的各种 Context(ReactContext,ReactApplicationContext)。
2019-02-16
年前的时候我会将每周收藏的资源梳理成一篇博客。但是当进行了四周之后,我觉得这种形式既繁琐又低效,有很大的改进空间。下一步我打算再做一个资源导航板块,来解决这个问题。
2019-02-02
明天我要回家过年了,结束了一整年的忙碌,开始我的春节假期。在这样一个特殊的时刻,我来回顾下自己 1 月份的成长。
2019-02-01
React Native 代码阅读系列第三篇,在学习 React Native 代码的时候,我发现他实现了一种机制,给 Java 对象添加了析构函数的机制。在本文中我们一探究竟。
2019-01-31
React Native 代码阅读系列第二篇,JS Bundle 在 React Native 中是如何加载运行的呢?在本文中,我们通过 JSBundleLoader 类作为切入点,对这个过程一探究竟。
2019-01-29
React Native 代码阅读系列第一篇,从集成 React Native 框架入手,深入分析 RN 的启动流程。
2019-01-27
201901W4 网络资源收集
2019-01-26
小马过河的童话家喻户晓,我是上小学低年级的时候学到这篇课文。那时自己太小,不懂其中的寓意,直到二十多年后,通过不断品味,才体会出它深刻的思想。
2019-01-19
201901W3 网络资源收集
2019-01-13
记录我在 2019 读过的书籍,持续更新
2019-01-12
201901W2 网络资源收集
2019-01-11
在这两年半的时间里,我都是在互联网公司的纯业务部门,负责软件开发。大型互联网公司拥有细致的专业划分、职责划分,细致到每个小组、每个人负责一摊事,并有明确的绩效考核。在这种框架下,每个人如同巨大机器中的一颗螺丝钉。我根据自身经验,总结了这种方式的利弊。
2019-01-05
201901W1 网络资源收集
2018-12-30
本文是我 12 月份的月度总结,我先不着急往前看,先给 12 月做一个负责任的了结。
2018-12-30
Pyppeteer is a Python-porting of Puppeteer. It's a perfect tool for web crawling. Most articles on pyppeteer crawling are focusing on extracting data from the rendered pages. In this article, I'll show you another approach: crawling by intercepting web requests from the page.
2018-12-25
如果你希望有一个工具能离线保存网页并实现统一管理,那么 POLAR 就是为你准备的神器。
2018-12-21
在之前的文章中我们编译了供 Android 平台使用的 JavaScriptCore。在本文中,我们的目标是创建一个 Android 工程,导入编译的 JavaScriptCore,并进行 JavaScript 脚本解析。
2018-12-21
如何编译在 Android 上用的 JavaScript Core 呢?React 社区提供了一个 jsc-android-buildscripts 项目,专门用于构建编译供 Android 使用的 JavaScriptCore。由于 Hybrid 移动开发技术的发展,编译 JavaScript Core 的过程已经得到了大大简化。
2018-12-17
Emacs 搭建 C/C++ 开发环境时如何配置代码补全呢?我选择使用 irony-mode,它是一个 C/C++ 的 minor mode,作用是代码补全。其内部基于 libclang 实现。在本文中,我将介绍 irony-mode 的配置方法。
2018-12-15
用 Matplotlib 绘制图表时,如果 x 轴的坐标是中文,会很容易出现 x 轴文字重叠的问题。Matplotlib X 轴文字重叠了该怎么办呢?其实解决的方法很简单,通过一个方法调用即可。
2018-12-14
我是一个特别贪睡的人,从小就特别能睡。随着年龄增长,我意识到睡觉浪费了太多的时间,应该省出时间来做有意义的事。我隔一段时间就会尝试早起,每次都失败。但是这个礼拜不同,我成功养成了早起的习惯了!
2018-12-13
心动 APP 隐私策略
2018-12-10
最近我反思自己的工作经历,发现自己犯了一个错误。就是随着对自我不断提出更高的追求,逐渐开始对那些最基础的东西不屑一顾了。比如最近,我开发一个技术难度很低的项目(APP 撸页面),由于自己的骄傲,导致最终的结果并不让人满意。我开始反思自己,对于工程师而言,对自己有更高的追求是没错的,但是不能够因为高追求而荒废掉基础。
2018-11-12
对数据添加 Tag(标签)是一种常见的功能,Tags 使用简单高效的分类方式,由 Tag 生成的 Tag Cloud 更是一种酷炫的可视化方式。在 Django 中改如何添加 Tag 呢?我们不需要从头开始,直接使用现成的扩展包就可以了。
2018-11-09
我的笔记用 Org Mode 编写,而我的博客使用 Markdown,如何在 Org Mode 中导出 Markdown 语法呢?
2018-11-09
在后端开发中,最核心、最基础的事情是定义数据结构,定义好数据结构后,需要对外提供增删改查(CRUD)的接口,CRUD 是个苦力活。有没有可能开发者只关心数据结构定义,由网络框架自动提供一系列 CRUD 方法呢?答案是肯定的。虽然如此,我在工作中还是看到人们一遍遍、一层层、反反复复地写这些重复代码,以至于占用了工作中的想当一部分精力。后端工作的核心不应该浪费在反复刷胶水上,而是应该放在更深层次的架构设计和商业模式思考上。在本文中,我选用 Django 网络框架,结合它的 RESTframework 扩展,来介绍这种技术。本文假设读者有后端开发基础,并熟悉 Django 框架的使用,不是一个 Step by Step Tutorial。
2018-11-08
Metro 整体上采用 C/S 结构,它对外暴露一个 Metro Server 类。Server 会在构造的时候接受一个结构,用于配置它内部的行为,这个结构是我们操纵 Server 内部行为的主要途径。因此想要正确控制打包器的话,首先要创建正确的配置结构,这个结构在 Metro 中称为 ConfigT。它定义于 metro-config 包的 configTypes.flow.js 中。
2018-11-06
Metro 是 React Native 的打包器,在公司中我们通常要在它的基础上进行二次开发,最常见的技术项目就是 React Native 分包拆包技术。对于 React Native 工程师来说,对 Metro 的深入理解是在这一领域技术成长的进阶。在这个博客系列中,我将分享我在 Metro 学习过程中的心得。本文是系列的第一篇,我们从 local-cli 这个入口展开探索之旅。
2018-11-04
最近在物色给我的博客 maxiee.github.io 寻找 markdown 引擎,最终找到 MDX 这个库正式我需要的,它支持在 Markdown 中添加 React JSX,既满足了 Markdown 的快捷,又满足了 React JSX 的强大扩展。
2018-10-27
maxiee.github.io 是一个 React SPA,我通过 react-adsense 为 APP 添加了广告。
2018-10-27
maxiee.github.io 有代码高亮啦~
2018-07-08
平时我需要使用多台设备,每台设备都有各自的 terminal,因此我需要对它们的设置文件进行统一管理。
2018-07-04
对 JSX 高亮和补全的支持
2018-06-30
将 Expo 项目恢复为普通项目
2018-06-28
React Native 中几个基本概念的学习
2018-06-26
想在 WKWebView 里拦截请求该怎么做呢?
2018-06-25
了解到苹果的 ATS 政策
2018-06-25
Gatsby Component 学习笔记
2018-06-23
使用 gatsby 搭建了个人博客
2018-06-23
一个 Android Support 版本不一致导致的编译错误
2018-03-05
electron-react-boilerplate 是一个流行的 Electron-React 脚手架.在本文中记录了如何使用它来创建一个 Electron-React 工程.
2018-03-04
React 和 D3 都是十分出色的框架, 如何在 React 中使用 D3? 若有 D3 相助, React 应用的表现力将会更上一个台阶.
2018-03-01
Data binding 已经不是什么新技术了. 这是一个大趋势, 能让我们少写不少代码, 同时代码更加美观.
2018-02-22
本站是一个单页应用 (SPA), 它的跟踪方法与传统方法有所区别, Google Analytics 支持跟踪单页应用, 本文是对接入过程的记录与总结.
2018-02-10
Hello World! 这是我的第一篇文章! 这是一个实验性站点, 我在上面尝试了一些有趣的新技术.
2017-07-25
在上一篇中介绍了 RxBinding 的常见用法和实现原理. RxBinding 封装的控件远不止上一篇中介绍的那些, 因此这一篇中我们继续探索 RxBinding, 学习它对其他控件封装的使用.
2017-06-21
从这一篇我们开始对 RxBinding 库的学习, 主要学习它对按钮的封装, 以及它内部的实现原理.
2016-12-18
当一个App用户量级大到一定程度,能够触达到每一个用户、唤醒更多沉默用户、留住更多新用户,成为每一个产品运营每天最为头疼和烦恼的事情。在众多目前可知的方法中,成本最低,见效最快的,可能就是消息推送(push)。
2016-12-11
在写作实践(二)一文中, 我已经意识到了博客是个人精华的展示, 学习是一个去粗取精的过程, 在将外界的知识转化为自己的知识的过程中, 我总结出了三个过程: 信息 → 笔记 → 博客. 因此我创建了记笔记的艺术这个分类, 专门记录我对于做笔记方面的心得. 我又进一步创建了用 LibreOffice 记笔记这个系列, 打算从用 LibreOffice 做笔记这个点启程.
2016-12-04
Arch 通过安装 Yaourt 能够访问到 AUR 中的软件包, 扩充了 Arch 可安装的软件的数量.
2016-12-04
Dukto 是一款跨平台局域网传输软件.
2016-12-04
博客是什么? 博客应该是一个人技术的精粹, 是他对外展示自我的窗口.