教程

Spring Boot 【2】 使用 Thymeleaf 模板引擎

现在网站大致就是两种方案,服务器端渲染HTML或者单页面应用+API的方式。

服务器端渲染以前有 JSP 这样的方案,但由于 JSP 中要夹杂很多的 Java 代码,和前端开发一起工作的时候会前端可能会看不懂 JSP 的页面,不知道哪些部分可以修改。而使用 Thymeleaf 来进行开发的话,它的语法就和现在的前端框架很接近。而且 Thymeleaf 的 HTML 文件脱离了我们 Java 后端的数据,依然可以在浏览器中看到页面的效果,对前端开发比较友好。

当然,如果写习惯了 JSP,也没有使用过一些常见的前端框架的话,可能就对 Thymeleaf 的语法比较陌生了。

 

开始使用

我们这个项目是 Maven 构建的,所以先在 pom.xml 中添加所需要的依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

 

保存之后,IntelliJ 会提示我们是否导入我们添加的依赖,点击 Enable Auto-Import ,以后我们修改了 pom.xml 中的依赖它就会自动开始下载了。

打开 resources 下的 application.properties ,在里面添加一行

spring.thymeleaf.cache=false

这样子可以关闭掉 Thymeleaf 的缓存,target 中的文件改变之后不需要重启 Spring Boot 应用(Tomcat)就可以刷新看到变化。

 

打开之前创建的 HomeController ,然后我们把 index 方法改成这样

@GetMapping("/")
public String index(Model model) {
    model.addAttribute("message", "Hello Thymeleaf");
    return "index";
}

続きを読む

DisplayCAL 校色并生成 3dlut 给 madVR

最近在研究 madVR 怎么配合校色过的屏幕使用,发现过程还挺复杂的,就当作留一个笔记给下次校色用吧。

如果有什么错误的地方欢迎指出。我也在不断读文理解这个色彩矫正的整个流程。

初次校色

如果你已经用 DisplayCAL 校过色了,可以直接看下一章节了。当然想重新校一次也行

首先先下载 DisplayCAL 校色软件。从来就没用过校色仪厂家附带的软件。

上方工具栏可以改语言就不多说了。

 

在上方工具栏选择显示高级选项

 

首先选择默认(伽玛值2.2),基于这个设置做修改。

 

在同一页选择好显示器,校色仪。然后下方的输出电平,按照电脑显示器选择全范围,电视机选择电视即可。特别注意一下电视机的话显卡输出也对应改成 Limited Range ,防止与电视的设置不匹配。

続きを読む

OpenWrt下把SD卡挂载到 /overlay ,扩大软件空间

原料:Newifi D1(Newifi 2)一台

这个机子自带了一个 Micro SD 插槽,刷了 OpenWrt 之后一直没怎么用到。闲着来折腾一下把 Micro SD 卡挂载到 /overlay 分区,增加内部可用的空间。

参照 openwet 官方 wiki 上的 exroot 教程,我们要做以下的步骤。

首先要使用 Micro SD 卡槽,需要安装以下两个内核模块:

opkg install kmod-sdhci kmod-sdhci-mt7620

接下来在 /dev 下应该可以看到有 mmcblk0 的文件了,那就是我们的 Micro SD。

然后再安装一些文件系统相关的软件包。

block-mount kmod-fs-ext4 e2fsprogs fdisk

这个时候输入

block info

应该可以看到你的 SD 卡信息。

这里我们把 SD 卡格式化成 ext4 格式。

mkfs.ext4 /dev/mmcblk0p1

 

接下来,转移现有的文件到 SD 卡上。不知道 OpenWrt 中 / 目录和 /overlay 目录的意义的可以看后面。

mount /dev/mmcblk0p1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt

稍等一会,文件就复制完成了。

接下来要创建 mmcblk0p1 的挂载配置,全自动可以使用以下命令

block detect > /etc/config/fstab; \
   sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab; \
   sed -i s#/mnt/mmcblk0p1#/overlay# /etc/config/fstab; \
   cat /etc/config/fstab;

这样子就可以完成挂载点的设置。

于是现在来实际把 mmcblk0p1 挂载到 /overlay 上

mount /dev/mmcblk0p1 /overlay

查看一下挂载后的效果

df

[email protected]:/dev# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                 2560      2560         0 100% /rom
tmpfs                   126944      1308    125636   1% /tmp
/dev/mtdblock6         3756448     31236   3514680   1% /overlay
overlayfs:/overlay       28224      7976     20248  28% /
tmpfs                      512         0       512   0% /dev
/dev/mmcblk0p1         3756448     31236   3514680   1% /overlay

现在可以看到,/overlay 的空间已经增加了。

这时候就可以重启你的路由器了,看看是否成功自动挂载。

OpenWrt Software Page

看,这时候想安装什么软件都可以了。

 

附录

/overlay 是什么意思呢?

OpenWRT 一般使用的文件系统是 SquashFS ,这个文件系统的特点就是:只读。

那,一个只读的文件系统,是怎么做到保存设置和安装软件的呢?

这里就是使用一个 /overlay 的分区,overlay顾名思义就是覆盖在上面一层的意思。

虽然原来的文件不能修改,但我们把修改的部分放在 overlay 分区上,然后映射到原来的位置,读取的时候就可以读到我们修改过的文件了。

 

但为什么要用这么复杂的方法呢? OpenWRT 当然也可以使用 EXT4 文件系统,但使用 SquashFS + overlay 的方式有一定的优点。

首先 SquashFS 是经过压缩的,在路由器这种小型 ROM 的设备可以放下更多的东西。

然后 OpenWRT 的恢复出厂设置也要依赖于这个方式。在你捅 Reset 重置的时候,它只需要把 overlay 分区清空就可以了,一切都回到了刚刷进去的样子。

如果是 EXT4 文件系统,就只能够备份每个修改的文件,在恢复出厂设置的时候复制回来,十分复杂。

 

当然,SquashFS + overlay 也有它的缺点,修改文件的时候会占用更多的空间。

首先你不能够删除文件,因为删除文件实际上是在 overlay 分区中写入一个删除的标识,反而占用更多的空间。

另外在修改文件的时候相当于增加了一份文件的副本,占用了双份的空间。

Hackintosh 填坑记录

我最后一台白果是 Mac Mini 2011 ,i5 2310M 的核显版,性能太低,已经抛弃了。所以转入 Hackintosh 的怀抱。 此文用来记录目前黑果中出现的各种 bug,会保持持续更新。 目前配置如下:

Hackintosh Info

都说 1150 是运行最稳定的平台,我没有其他平台能做对比,不过日用感觉确实没有出现什么问题。 HD 6850,在 Mac 上还是免驱卡。不过显卡型号显示成 6xxx 了,InjectATI 之后能够显示正常型号,但又无法识别出我第三个屏幕了,所以还是保持现状算了。

続きを読む

系统杂谈.01 关于系统引导,从 BIOS 到 UEFI

写在开头

这是这个系列文章的第一篇,从 Windows 到 Linux 又到 Mac OS X ,与操作系统相关的各种东西我都会来聊聊。更新内容完全随我心情,估计还会有一个硬件杂谈的系列,不会特定一个特定型号的产品,主要来聊聊理论方面的知识。

前言

最初想要谈这个,是因为我想再写一篇各方面都能符合我个人美学要求的系统安装方案。具体来说,就是纯 UEFI 引导。开机时显示主板厂商的 LOGO ,以及达到最快的开机自检速度是十分重要的一件事情。这篇文章就是为了达到那个目标而需要具备的一些基础知识。

写完之后发现这个变成了一个讲历史的文章

关于BIOS

BIOS 不管怎么说,对电脑有点了解的人都应该会听说过什么是 BIOS。

BIOS 已经存在了很多年的时间。基本上,电脑开机的时候加载的第一个程序就是 BIOS。这个程序是储存在主板上的 ROM 或者 NVRAM 上的,一般来说现在的主板使用的都是可插拔式的,方便损坏的时候拿去维修。有的游戏主板甚至拥有两套 NVRAM 存储,就是所谓的双 BIOS 主板。在设置错误的时候或者刷坏了 ROM 的时候,还可以启动备用 BIOS 来修复。

平常可能还能听到一个词叫 CMOS ,其实是指一种类型的半导体,相机的那个 CMOS 也是指所用的半导体技术。不过在电脑中所说的 CMOS ,其实就是一种 RAM ,即内存。而且是易失性的内存,断电之后数据将丢失,所以主板上会有一个纽扣电池负责维持数据的保存。

其实只要知道 BIOS 芯片是用来存储 BIOS 程序, CMOS 是用来存储其设置的就足够了。

BIOS 负责各种设备的初始化和检验,以及加载引导程序。当然还有其他作用,不过不在本文范畴内。

続きを読む

在 Ubuntu 下搭建 iRedMail 邮件系统

注意,本文适用于 Clean Install ,即系统中没有安装过 Postfix、Dovecot、MySql、Apache等软件的系统。

前期配置

首先需要确认你系统的 hostname 是否已经修改成为

mail.yourdomain.com

的形式,否则 iRedMail 将不允许你安装。

输入以下命令可以查看你的 hostname 配置是否正确。

[email protected]:~$ hostname
mail
[email protected]:~$ hostname -f
mail.yourdomain.com

下载安装

首先访问 iRedMail 的官网获得下载地址:https://www.iredmail.org/

文件很小。在写这篇文章的时候所使用的版本是 0.9.8

wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.8.tar.bz2
tar xjf iRedMail-0.9.8.tar.bz2
cd iRedMail-0.9.8
chmod +x ./iRedMail.sh
./iRedMail.sh

接下来便进入了安装向导。

Welcome Screen of iRedMail

Welcome Screen of iRedMail

続きを読む