Ubuntu 中所包含的 Snap 为我们解决了什么问题?

在过去,想发布一个 Linux 应用程序会带来很多问题:

  • 程序文件遍布整个系统
  • 需要复杂的代码来管理安装与更新
  • 操作不是事务性的(如果操作失败,对系统的影响仍然会保留)

如今,在 Ubuntu 中已经提供了解决这些问题的方案,这就是 Snap 与 Snapcraft(https://snapcraft.io/)。它可以提高应用程序的发布频率,支持订阅渠道来控制用户风险级别(例如用户可以订阅测试版),即使发布更新失败也不需要用户参与。

Snap 同时也伴随着一些问题:

  • 理论上支持安装到任何操作系统,但目前还不支持 CentOS
  • 服务端是闭源的,需要通过 Snap 应用商店来发布你的应用,你无法运行一个私有的软件源

而 Ubuntu 自 16.04 版本开始内置了 Snap 应用程序,如果今天想发布一个 Linux 下的应用,Snap 可以算是一个还不错的方案。

阅读剩余部分

我在 2018

持续更新。

游戏:

  • 孤岛危机 / Steam
  • 孤岛危机:弹头 / Steam
  • 孤岛危机 2 / Steam
  • 杀手 6 / Steam
  • 巫师之昆特牌 / GAEA
  • 黎明杀机 / Steam
  • 凡尔登战役 / Steam
  • 太阳帝国的原罪:起义 / Steam
  • 黑客网络 / Steam
  • 模拟山羊 / Steam
  • 幽灵行动荒野 / Uplay
  • 古墓丽影 / Steam
  • 热血无赖 / Steam
  • 死神来了 / App Store
  • 特殊行动:一线生机 / Steam
  • 火炬之光 2 / Steam
  • 巫师 / Steam
  • 巫师 2 / Steam
  • 杀手:赦免 / Steam

电影:

  • 建军大业 / 优酷
  • 大话西游之月光宝盒 / 优酷
  • 起跑线 / 影院 / 差评
  • 头号玩家 / 影院
  • 寂静之地 / 影院
  • 死神来了 / 腾讯视频
  • 招魂 / 腾讯视频
  • 林中小屋 / 爱奇艺

设备:

  • 小米路由器 3G / 京东
  • 小米剃须刀 / 小米商城
  • 90 分旅行箱 20 寸 / 京东
  • 尼康 D7200

    • AF Nikkor 50mmf/1.8D
    • AF-S DX 18-200mm f/3.5-5.6G ED VR II
2017 工程实践总结

在 2017 年我没有将时间花在学习任何一门新技术上,仅仅读了《调试九法:软硬件错误的排查之道》与《代码之髓》。更多地将时间花在了在工程与业务实践:用 Laravel 及周边的生态环境来开发项目。

在这一年我参与开发了五个项目:

  • 考试系统
  • 掌上校园
  • 工资条
  • 在线表单
  • ERP

考试系统与在线表单不同于其他的业务型项目,无论是前端还是后端的逻辑都有着不同程度的复杂度,是存在技术挑战的。比如在线考试模块,分为参与考试以及预览,对于前端工程化的要求更高,需要将功能拆分成一个个小组件,同时也需要以 Vue 的思路来达到效果。还有模拟 Web 分页,Canvas / GD 图像操作,PDF 操作等问题,好在这些功能一个个算是可以使用了。

开源社区方面:

  • 在 GitHub 创建了一个新的项目
  • 用 Bulma.css 写了一个 Typecho 模板

代码之外:

  • 参与了一次 GDG China 的社区活动
  • 为 Laravel 文档的中文翻译以及 PHP 之道的中文翻译分别提交了一次 PR
我在 2017

2017 已结束,此篇不再更新。

读完的书:

  • 时生 / 实体书
  • 沉默的大多数 / Kindle
  • 1984 / Kindle
  • 从文自传 / Kindle
  • 调试九法:软硬件错误的排查之道 / Kindle
  • 代码之髓 / Kindle
  • 人间失格 / Kindle
  • Python 自动化运维 / Kindle / 差评
  • 痴心见多了,就喜欢你 / 实体书
  • 红玫瑰与白玫瑰 / Kindle
  • 游戏改变世界 / Kindle
  • 虫子的世界 / Kindle
  • 神的九十亿个名字 / Kindle
  • 让创新野蛮生长 / 实体书 / 差评

阅读剩余部分

Laravel 的 Migrations 为我们解决了什么问题?

Laravel 为我们提供了数据库结构操作功能 Migrations (数据库迁移),我们可以通过它创建一张数据库表,改变其中的结构,并在此基础上提供迁移回滚功能。

但是,我们公司在进行 Laravel 开发的时候没有用到这个功能,先谈谈我们是怎么做的:

  1. 通过数据库建模工具导出 SQL 到数据库
  2. 大家连接到服务器上的公共数据库进行开发
  3. 表结构因需求变化时用 Navicat for MySQL 直接更改

直到我发现 Django 和 Cake PHP、Ruby On Rails 也提供类似的功能,我觉得我需要重新认识 Migrations 了。

阅读剩余部分