所有由Haoning发布的文章

Github本地和仓库删除无用配置文件

不论是 Windows 系统,还是 macOS 系统,我们总是能够碰见相关的本地设置配置文件或临时文件,而这些配置文件是我们不需要的,例如 Thumbs.db 或者 .DS_Store 文件,这些文件我们不需要上传到 Github 之上。

移除方法

移除这些临时文件到方法步骤基本上是一致到:

  1. 先 Clone 仓库到本地;
  2. 找到或创建 .gitignore 文件;
  3. 配置本地的 .gitignore 文件;
  4. 删除本地已经存在的 “无用” 文件;
  5. 提交上传即可。

1. Clone 仓库到本地

当我们 Clone 到本地后,就可以开始配置 .gitignore 文件(如无新建)。

2. 找到或创建 .gitignore 文件

对于 Windows 系统,.gitignore 文件若存在,则会在仓库文件夹根目录下可以看见。对于 macOS 系统,.gitignore 文件默认隐藏,需要使用如下指令进行显化(需要重启 Finder):

// 显示隐藏文件
faults write com.apple.finder AppleShowAllFiles -bool true

如果你想再次隐藏(需要重启 Finder):

// 再次隐藏文件
defaults write com.apple.finder AppleShowAllFiles -bool false

除此之外,你还可以参考 Apple macOS 使用手册中到 《在 Mac 上显示或隐藏文件扩展名》,查看详细方法。

3. 配置本地的 .gitignore 文件

推荐一个常用的 .gitignore 文件配置:

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

# =========================
# Operating System Files
# =========================

# OSX
# =========================

*/.DS_Store
.DS_Store
.AppleDouble
.LSOverride

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

这份配置文件,基本上排除了 Windows 系统下到缩略图临时文件,设置文件等信息,排除了 macOS 系统下文件夹配置文件等。

4. 删除本地已经存在的 “无用” 文件

打开 Terminal,使用 cd 命令 打开你需要删除无用文件的本地仓库文件夹。

再使用如下命令删除 .DS_Store 文件:

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

5. 提交上传即可

删除完成后,即可 commit 提交到云端。

继续阅读Github本地和仓库删除无用配置文件

树莓派当作局域网外接设备

树莓派可以安装 Samba 来搭建 NAS 系统,这样在家里看高清电影的时候,就不需要用 U 盘拷贝电影再插入到电视上播放,可以直接利用局域网实现秒传,秒播放。

安装 Samba

在执行安装前,还是老样子,先来一波例常更新准备:

sudo apt-get update && apt-get upgrade

更新完毕后,运行安装:

建议全部安装,如果你的树莓派 IPMac地址 没有绑定,那么我强烈建议你安装可选服务,否者你的树莓派内网地址可能会发生变化,你需要再电视每次手动更改。当然你也可以选择不安装。

sudo apt-get install samba samba-common-bin
sudo apt-get install netatalk (可选,用于支持AFP)
sudo apt-get install avahi-daemon(可选,用于支持网内的计算机自动发现)

安装过程中,可能会出现以下对话框:

你需要查看一下你的路由器是不是使用了 DHCP 服务:

其实你也可以不看,一般来说,咱们家用的宽带服务,都要开启 DHCP 服务才行;校园网的话,应该是不适用 DHCP,总之具体情况分清楚就好。

配置 Samba

我们要修改 etc/samba/smb.conf 这个文件

首先,一定要把 [homes] [printers] 这两个屏蔽(包括所有附属的内容),不然无法实现免密码。有的智能电视是不支持账户密码登陆的(比如我家的长虹),虽然能检测到,但是就是进不去。

然后在文件后面增加下面配置:

[share]
 comment = share
 path = /home/pi
 read only = no
 create mask = 0777
 directory mask = 0777
 guest ok = yes
 browseable = yes
 public = yes
 writable = yes

两种操作方法,自己选一种习惯的:

方法一(VI文本编辑):

sudo nano /etc/samba/smb.conf

方法二(手动修改):

先获取文件权限:

sudo chmod -R 777 /etc/samba

然后双击打开文件修改,然后保存。

[homes] 以及下方缩进行,都要用 # 注释掉:

[printers] 以及下方缩进行,都要用 # 注释掉:

添加用户

直接添加咱们的默认用户 pi 即可:

smbpasswd -a pi

然后再激活用户:

smbpasswd -e pi

重启 Samba

最后一步完成后,重启即可:

sudo smbd restart

电视测试

我打开电视,进入本地设备,就直接能发现树莓派。如果你没有安装可选服务,可能需要自己手动添加共享设备。

打开后,我们发现就是整个树莓派的目录,所以你把文件放在桌面,Videos 文件夹 或者其他地方都可以。

我在桌面刚刚上传了一个 晚安喵 的视频,现在打开看看:

嗯,看来没什么问题,速度也很快。

其他问题

  1. 如何将文件传到树莓派?你可以使用 FTP 或者 VNC 自带的传输工具;
  2. 播放卡顿?你看看树莓派是不是用有线连接,无线的话可能会慢;路由器是不是局域网300M传输带宽?你的 SD卡 或者 TF卡 是不是 Class 10 或者更高等级?
  3. 空间不够?你可以更换更大的 SD/TF卡 或者给树莓派插 U 盘、挂载硬盘等。

如仍有问题,可以留言并留下联系方式以便回复,或者直接给我发邮件。

继续阅读树莓派当作局域网外接设备

磁盘完全擦除数据

不知道你们是怎么处理自己淘汰的电脑的,二手交易?直接扔掉?等等有很多种方法,但是在处理掉之前,我希望你能够重视数据和隐私,将其彻底擦除后,再进行处理,已达到保护数据和个人隐私的目的。

cipher 指令擦除

机械硬盘

机械盘删除文件是直接标记 扇区数据没用,不会去物理删除,而是下次写到这块区域了直接覆盖写入,所以机械盘没覆盖写入前就可以找回数据。

所以,出售电脑之前,务必完全覆盖写入磁盘,以免个人隐私数据泄露。

对于 Windows 10 用户,你可以格式化硬盘后,使用 cipher 指令进行覆盖写入操作:

> cipher /w:D

// 覆盖写入 D 盘的示例代码

cipher 指令仅在 Windows 10 中可用,冒号(:)后表示磁盘符号,上例中是 D 盘。

需要注意的是,cipher 指令只会在磁盘的 可用空间 处覆盖写入,而不会影响 已用空间

cipher 指令会从 0x00 至 0xFF 扇区覆盖写入随机的数字,组成无用的文件信息。

固态硬盘

固态硬盘原理不同,写入前必须物理删除这块区域才能写入,不能直接覆盖写入。所以,windows 10 为固态做了优化默认开启 trim 空间回收功能,删除文件直接物理删除以便于下次写入更快。

如何查看时候开启了 trim 功能?使用如下指令:

> fsutil behavior query disabledeletenotify

返回值是 0,则默认关闭。返回值是 1,则默认开启。

如果你的固态硬盘开启了 trim,理论上删除完数据就可以出售电脑了。但是,如果心理上过不去,仍然可以使用 cipher 指令进行覆盖写入。

Windows 10 初始化

你还可以直接使用 Windows 10 自带的初始化功能,它是这样描述的:

先选择所有驱动器进行删除:

删除文件并清理驱动器的描述是:

这可能需要数小时,但会使他人不能轻易地恢复你的已删除文件。如果你要回收这该电脑,请使用此选项。Windows 10

看来,这个操作应该是自动化的使用 cipher 指令进行覆盖操作。

工具方法

最后,再来个工具方法。你可以利用例如 SeaTools 等工具进行擦出。

Seagate 快速安全擦除 (ISE) 旨在通过快速将硬盘恢复至出厂设置并修改加密密钥来保护硬盘上的数据,这样硬盘上的所有数据将会被加密地擦除。这意味着硬盘上的所有数据将会永久且快速地不可读。Seagate

你可以访问 Seagate 网站了解原理并下载工具:点击此处

继续阅读磁盘完全擦除数据

网页自定义Facebook/Twitter/QQ/微信分享预览

我们幸幸苦苦做完网站后或多或少都会分享链接,如何让我们分享的链接分享更好看呢?就需要对各主流平台一一进行内容配置。

Facebook 的 Open Graph 和 Twitter Card 想必我们都很了解,使用相应的 meta 标签,定义相关内容即可。

Facebook

挑一些重点来说,一般常用的就如下几个:

<!-- Facebook Open Graph -->

<meta property="og:site_name" content="图筑风暻" />
<meta property="og:url" content="nousbuild.org" />
<meta property="og:title" content="图筑风暻" />
<meta property="og:image" content="http://nousbuild.org/icon.png" />
<meta property="og:description" content="欢迎访问图筑风暻官网。" />

如果需要更多 meta 标签,你可以访问 Facebook 页面,或是 The Open Graph protocol 查看:

地址:Facbook Open Graph(可能需要科学上网)

地址:The Open Graph protocol

Twitter

Twitter 采用的也是 meta 标签,只是标记不同,常用的如下:

<!-- Twitter Card -->

<meta name='twitter:card' content='欢迎访问图筑风暻官网。' />
<meta name='twitter:site' content='@图筑风暻' />
<meta name="twitter:url" content="nousbuild.org" />
<meta name='twitter:title' content='图筑风暻 | Scenery Architecture' />
<meta name='twitter:image' content='http://nousbuild.org/icon.png' />
<meta name='twitter:description' content='欢迎访问图筑风暻官网。' />

用法也不用多说,大家肯定都很熟悉,如果需要更多 meta 标签,你可以访问 Twitter 页面:

地址:Twitter Card(可能需要科学上网)

QQ

咱们主流的社交软件当然是就是 QQ 和 微信了,下面先来介绍 QQ 链接自定义预览的方法吧:

<!-- QQ Sharing -->

<meta itemprop="name" content="图筑风暻" />
<meta itemprop="image" content="http://nousbuild.org/icon.png" />
<meta name="description" itemprop="description" content="Scenery Architecture" />

QQ 非常人性化,使用了通用标准,在 QQ移动Web开发平台 中可以看到示例:

也非常简单,仅仅只有 标题、缩略图、站点描述或内容,三个标签。

微信

最后一个,微信。为什么把微信放到最后一个写?是因为重要吗。当但不是!我放到最后一个仅仅是因为微信是最坑的一个!

你访问微信 JSSDK 文档会发现,仅仅只有引入 js 的方法,凭什么一个简单功能我还要引入微信的 js,不仅拖累加载速度,而且三天两头随意更改规则!气愤!!

于是我开始看看其他大企业的官网网站都是怎么设置的,直到我看到了星巴克的中文官网

让我们查看下星巴克的源代码:

星爸爸真是很良心的帮我们把注释的写好了,最底下的这个就是我们要的:

<!-- WeChat Sharing -->

<script>
  var WECHAT_TITLE = '图筑风暻';
  var WECHAT_DESC = 'Scenery Architecture';
  var WECHAT_IMAGE = 'http://www.nousbuild.org/icon.png';
  var WCHAT_NO_GA = '';
</script>

怎么样,很奇葩的使用了 js 模块来实现,而且插入 <script> 会导致此文章保存错误,真是坑。微信目前我发现了只有 标题、缩略图、站点描述或内容,三个标签。由于找不到官方资料,如果以后发现还有更多标签,我在更新此文章。

注意问题

最后说几个注意问题:

  1. 顺序。有时候你的通用 meta 标签在微信标签之前,读取时有时候会直接读取通用 meta 标签的内容,如果你的微信标签的题目与通用标签的题目不一致,很可能在分享链接时会出现内容替换。
  2. 缩略图。缩略图的链接如果使用相对链接出现问题,建议该用绝对链接。图片最好是正方形,尺寸大于等于300px。

如果你找到更多内容,欢迎评论交流。

继续阅读网页自定义Facebook/Twitter/QQ/微信分享预览

小喵心语

小喵心语 是我的原创校园漫画《那些年的校园与我们》发行的小程序平台。

小喵心语开发 v1.0

有了第一次开发小程序的经验,这一次开发起来就很游刃有余了。这一次我并不打算将漫画用网页版的形式发布与共享,而使用小程序,原因有以下几点:

  1. 因为小程序内不可以保存漫画图片(顶多就是截图,你能有我的宽2048px分片率的图片高?),达到一定程度的版权保护。
  2. 漫画故事由中学真人真事改编,向互联网所有访问者公布也不太好。再一个朋友、同学使用微信还是比较多的,也有利于仅在朋友圈范围内传播分享,这样更合适一些。
  3. 虽然小程序是个鸡肋,不看齐HTML5标准,但是坐拥10亿用户的微信,还是稍微开发练个手吧。

所需功能

作为一个小范围的漫画小程序,就需要一个不太难看的UI,和一个动态更新漫画的后台就可以了,有时间的话,还可以个彩蛋来活跃活跃氛围。

所以就需要至少2个页面就可以了,一个是主页,另一个就是漫画页面,能随着漫画的更新而更新。

我就用猫怎么了?!你管我~ 当然了,还有一个彩蛋页面,就看你能不能发现啦!!

这真的是后台吗?

没错,你没看错,后台就是这个不起眼的 .json 文件(是不是大跌眼镜),一个 .json 足够了,毕竟重点是画漫画啊!

当然,现在小程序有了云开发功能,你也可以使用小程序的云数据库作为后台开发:

当然,有个小坑,setData() 的时候注意留意一下数据有没有被写入。

与用别人的 API 不同的是,自己的 .json 完全自己定啊!想要什么类别就定什么类别,超级方便,还不用心里默默的吐槽这个 API 设定怎么会这么反人类。

小喵心语开发 v2.0

嗨!我又回来啦,现在距小喵心语 1.0 版本开发已经过去2个月啦,其实今年1月30日我就提交了 2.0 版本的小喵心语,并在过年后逐步更新并增强稳定性。那为什么等到 3 月底才继续更新这篇文章呢?原因是,懒!哈哈哈,其实是在学机器学习,并且又写了个小喵心语官网出来 cattalk.nousbuild.org,方便无微信或者讨厌微信的伙伴们看漫画的。

2.0 版小喵心语小程序与 1.0 版最大的区别就是以下两点:

  1. UI 更新,页面增加,功能分割更清晰。
  2. 更新使用 小程序云开发 可以增加更多互动功能。

UI与页面的调整

与 1.0 版的两个主页面不同,2.0 版增加到四个主页面,独立出了「表情包」页面,新增加了「个人中心」页面,整体 UI 进行了优化,并没有过大的改动。

找表情包更方便了,按人物归类,还有多人互动表情等你发现。我还专门写了表情添加教程,方便大家参考。

云开发

使用云开发,在节省服务器成本的同时,还可以与微信账户进行更多交互,例如用户登录、留言、反馈机制等等。

云开发比服务器端代码更简单、简洁,使用也非常方便。虽然功能、权限、可拓展性根本不是服务器对手,但是对于个人小型开发项目,还是很有用的。

邀你看漫画

快去看漫画吧!进入小程序或者访问 小喵心语官网

或者来看看漫画的创作中的故事,看这篇文章

继续阅读小喵心语