EarthLiveShell 在桌面从太空看地球

之前在 GitHub 上看到 bitdust 用 C# 做的一个能够获取卫星影像并设定为壁纸的程序 EarthLiveSharp (v2ex 讨论),可惜只能在 Windows 下工作。趁着会考完结花几天时间用 Bash 实现了一个能够在 Linux Gnome 下工作的版本

setsid <command> & 可以使进程直接挂在 init 下面作为新的 session 运行,EarthLiveShell 的服务进程即使用这种方法保持在后台。

附上截图

EarthLive

Time-based One Time Password Algorithm

Follow the algorithm

As implemented in Google Authenticator app, you’ll need:

  • A shared secret key K, which is base32 encoded
  • a specific time period since UNIX epoch T

I’ll use K = GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ and T = 1450235092 (which is Wed, 16 Dec 2015 11:04:52 CST) for example. In the Google Authenticator App, both K and T are passed to TOTP as hexadecimal values (or byte arrays).

Since K is a base32 encoded string, we’ll decode it to byte format. Password changes every 30 seconds, T should be divided by 30, tuncated to integer and converted to hex and padded to 16 hexadecimal digits.

Continue reading Time-based One Time Password Algorithm

Systemd Timers小结

分析

Linux上的守护进程cron能够根据配置好的crontab定时地执行某一个动作,现在用上systemd了想要找一个替代品,于是找到了timertimer和其他的配置单元结构差不多,只是有一个[Timer]段,在这里可以定义它的行为。基本的写法是Name=Value。

作为一个timer必须要有

[Install]
WantedBy=timers.target

[Unit] Description=Value

这个字段允许添加对配置单元的描述

[Timer] Unit=Value

用于指定该timer触发时要启动的配置单元,如果不写的话,example.timer触发时会执行同名的example.service

[Timer] 绝对触发时间

OnCalendar=Value可以指定在系统时钟的某一特定时刻触发timer。懒的话可以直接使用hourlymonthly这样的词语,也可以输入DAY YYYY-MM-DD HH:MM:SS。比如hourly*:00:00等价,Wed *:00:00就是每个星期三隔一个小时触发一次。 Continue reading Systemd Timers小结

未闻花名

有一次,我梦见大家都是不相识的。我们醒了,却知道我们原是相亲相爱的。——《飞鸟集》

看起来已经改变但却依旧没有改变的大家。故事不禁使人想起昔日很要好的朋友,现在到底在哪里呢?若我们再次遇见,已各自生活在各个领域的大家又能否像以往般的要好?《未闻花名》便是这样的一个故事。

一部主打友谊的动漫作品,讲述了儿时的玩伴如何在长大后疏远,又是如何因为一个契机再度走到一起。每次看都会有莫名的感动,但都和上一次的感触有微妙的不同。

趁着假期的末尾再度温习了一遍,感触很多,都绕在一起说不明白,但是看到引用里的这句话,又突然觉得忍不住忍不住要说些什么,所以来胡乱地表达一下。
Continue reading 未闻花名

自制上海风格的炸猪排

上海的老味道吃过的人都会明白。并不需要解释太多,上海风格的炸猪排在于独特的辣酱油和“薄”。

现在的00后在吃日式咖喱猪排饭的时候大概不会想到炸猪排还有蘸酱油的吃法,而这个酱油也不是一般寿司店的寿司酱油或者是用于热气羊肉的老抽,对于我父母这一代,黄牌辣酱油对于炸猪排,就相当于 cheese 对于 animal fries 一样的不可替代。我父母小时候的“泰康黄牌”酱油现在还是上海炸猪排的首选调料。可以没有面粉,可以没有盐,可以不加面包屑,但是不能没有辣酱油。 Continue reading 自制上海风格的炸猪排

[Updated Aug 10, 2015]正确的调教wine容器和Evernote

Environment

  • 启用了multilib的最新Archlinux 64-bit
    # pacman -Syu
  • 带有monogecko的Wine 1.7.x
    # pacman -S wine wine_gecko wine-mono mono
  • winetricks,干吗的不用说也明白
    # pacman -S winetricks
  • 顺手的下载器和浏览器
    我的是wgetgoogle-chrome
  • 可能一定会用到梯子和proxychains-ng,自行准备,下载字体要用

Preparation

  1. Evernote官方下载安装包
    $ wget -O "Evernote-Install.exe" "https://evernote.com/download/get.php?file=Win"
    ……我可没说一定要用wget,圣战请移步
  2. 开新的wine容器,名称为evernote
    $ env WINEPREFIX="$HOME/.local/share/wineprefixes/evernote" winecfg

    Wine-Initializing-PREFIX
    图1:wine容器正在初始化
  3. 调整wine设定

Installation

  1. 开始安装到指定容器
    $ env WINEPREFIX="$HOME/.local/share/wineprefixes/evernote" wine Evernote-Install.exe

    就像在Windows里那样,一路下一步
    图4:就像在Windows里那样,一路下一步

    重要!不要更变默认安装配置,不然会给后期的更新和查错带来麻烦!

  2. 安装gnutls库
    重要!没有这个东西Evernote根本不能访问笔记存储服务器!
    # pacman -S lib32-gnutls
  3. winetricks中安装msxml3 msxml5 msxml6
    $ winetricks

    在winetricks中选择Evernote所在的容器
    图5:在winetricks中选择Evernote所在的容器
    选择安装DLL组件
    图6:选择安装DLL组件
    安装msxml3 msxml4 msxml5,它们是印象笔记正常读取笔记需要的支持文件
    图7:安装msxml3 msxml4 msxml5,它们是印象笔记正常读取笔记需要的支持文件,按照提示操作,完成后会回到图6
  4. winetricks中安装富文本控件
    winetricks中的富文本控件,需要他们来正确显示笔记格式
    图8:winetricks中的富文本控件,需要他们来正确显示笔记格式
  5. winetricks中的中文字体配置
    配置字体,以防中文字符全是豆腐
    图9:图6中的界面选择第二项配置字体,以防中文字符全是豆腐,如果不需要日文和韩文字符,后两个可以不选

Done! Happy taking notes!

安装及配置完成!
图10:安装及配置完成!
Evernote的托盘图标和windows上的体验差不多
图11:Evernote的托盘图标和windows上的体验差不多
Evernote已经正常运作,现在正在同步我在云端的笔记
图12:Evernote已经正常运作,现在正在同步我在云端的笔记

Post-installation tweaks

开机启动

虽然wine能够处理大多数让windows程序跑起来的工作,但是wine仍然是一个容器,不足以上升到系统层面,因此你并不能强求印象笔记在你登陆时自行启动。
The Linux Way:使用Gnome高级设置gnome-tweak-tool,使用pacman -S gnome-tweak-tool以安装,在自启菜单中找到Evernote的启动器并添加相应启动项。

 更新

就和安装一个新的一样,重复准备步骤1和安装步骤1即可,Winetricks无需再次配置。

Known Caveats

Evernote-in-wine-bugs

1:笔记本分类错误,在试图更改已经存在的笔记的所属笔记本时会发生错误并且崩溃。
解决方案:not yet

2:图片不能自动缩放到适合大小。
解决方案:错误信息提示需要libjpeg.so.8,即使已经安装64位的libjpeg-turbo,32位的Evernote并不能正确加载,安装lib32-libjpeg-turbo以解决问题

[Update Aug 10, 2015]

疑似无法启动的可以尝试安装AUR里的log4cplus