Notes for Reinstalling Ubuntu Precise Pangolin

今天重装了 Ubuntu ,因为一些很奇妙的原因。记录一下重装系统之后要做的事。需要特别注意的是,使用 dpkg --get-selections 导出列表供重装之后自动安装软件这种方法,我一次都没有成功过。每次失败的原因出奇地一致:这种方法会导出原来系统安装的所有软件,重装之后的系统使用这个列表进行安装,会把列表里的软件先卸载一遍才进行安装,但是卸载这些软件之后也就无法安装软件了。重启之后内核都找不到,因为这个我重装了两次。

阅读剩余部分 -

Python 切片操作及其它

写东西的时候掉了一个大坑,懒了一下,随口问了一些别人切片操作,结果调了半天才发现别人回答有误。自力更生,记一下一些东西吧。

切片操作是指对序列(字符串、列表、元组等等)的复制操作。

a = [1,2,3,4,5,6,7,8]
a[0:]
[1, 2, 3, 4, 5, 6, 7, 8]
i = 4; a[i:]
[5, 6, 7, 8]
a[:i]
[1, 2, 3, 4]
a[0:i]
[1, 2, 3, 4]
a[i:-1]
[5, 6, 7]
a[:]
[1, 2, 3, 4, 5, 6, 7, 8]

我之前就是被误导,试图使用 a[i:-1] 取得序列的后一段。
还有一些 Python 的提示,速记一下。

  • 元组内容不可改变,但是元组内如果有可变元素(列表、字典),这些元素是可变的。
  • 魔法字符串建议使用 #!/usr/bin/env python 或类似的。
  • 建议使用 with open() as file_instance 来处理文件,尤其是读取文件。
  • 使用魔法字符串并赋予文件可执行权限,直接运行时不会在路径下编译 pyc 文件。

HTML5 canvas 彩色时钟

2014年4月18日更新本节。

演示中修改代码,使画布时刻保持页面允许的最大正方形,并能同步调整画布中各元素的大小(包括字体)。


最近想法比较多,大多是对以前写的一些半死不活的 demo 的一些改进,其中大部分都是 HTML5 的,再其中大部分又是 canvas 的。canvas 这个东西有时候让人迷惑有时候又非常吸引人,因为比较接近底层的缘故吧,但又是在可视化的同时接近底层。

昨天晚上开始动手到现在,做好了这个彩色时钟。去年我就写过一个类似的、也许代码优化得更好的例子,作为一个 Chrome 插件的一部分存在,本来是要发布到应用市场的,因为一些原因(Chrome 应用市场收取开发者注册费必须使用国外信用卡; Chrome 扩展的新版 manifest 规范严格限制了 inline-script 的运行,而我当时非常喜欢用 inline-script )未能如愿。几经辗转,很多代码都丢失了。所以这次是重新写的。基本延续了我一年前那种配色白痴的配色风格。(==。)

代码都是加过注释的,况且是很简单的功能,就不贴在这了。

这里面最主要的一点就是,使用 context.beginPath() 开始路径之后用 context.arc() 画弧,画玩之后不要闭合路径,而是直接用 context.stroke() 描边,才能达到需要的效果。当然如果有兴趣的话你也可以试试闭合路径再描边。

最后,演示效果:

Canvas Grid

2014年4月17日更新:演示中修改了对粒子走出屏幕范围后的处理。

最初版本中是穿出屏幕后从另一端再进入。经过我观察发现与安卓的动态壁纸不一致。现在改成了穿出屏幕的粒子自动销毁,从屏幕边缘重新生成随机粒子。并修复了粒子的阴影效果。为了提高性能,使用了 canvas 双缓冲(但这种场景下貌似并没有提高多少)。

在看《轻音少女》,同时也觉得有一段时间没做什么实验性质的玩意了,所以呢,照着大部分安卓手机都会有的一个动态壁纸效果写了这个东西—— CGrid ,名字是 Canvas Grid 的意思。

阅读剩余部分 -

默认日记

好吧,我又在 GitCafe 上开了个坑, BooTypecho ,深度整合 Bootstrap 的 Typecho ,地址在:https://gitcafe.com/JokerQyou/BooTypecho 。

本来我打算全部整合完了再发布上去的,但是照这速度下去,寒假前是弄不完了,所以先发布下,然后慢慢推进。希望自己可以坚持下来,不让这个项目跟其他的一样夭折掉。

博客主题更改

好吧,这是自从接触 Typecho 以来第一次改主题(之前的主题只增加了两处背景颜色和边距调整)。

具体的改动包括:

  • 导航栏自动固定/脱离固定,这个参考了米粽老师的博客
  • 引入 Bootstrap 。其实我想直接改用 Bootstrap 的,但是要一点点来,所以现在框架还是用的 960gs ,到时候会慢慢全部迁移到 Bootstrap 。
  • 逐步脱离官方的默认主题。字体什么的我要慢慢调整,还有一些小边角。比如你可能已经注意到了,我大量使用了 Bootstrap 的 Icons 。

当然我没忍住,改动了几个 Typecho 的核心文件,我觉得这首先要归结于官方,因为有些东西实在是不应该硬编码到核心里去,比如分页 Box 的 className ,至少应该给个参数便于自定义。主要的改动在:

  • /var/Widget/Abstract/Contents.php 此处修改了第 509 行左右,密码保护文章的 HTML 表单元素相关的 className
  • /var/Widget/Archive.php 修改了第 1301 行左右,修改了分页使用的容器以及相关 className
  • /var/Typecho/Widget/Helper/PageNavigator/Box.php 修改了第 57 行左右,splitWord 的容器包裹和当前页面指示的 className

现在存在的一个问题是,在分页浏览到第 5 页以后,在分页 Box 里会产生一个空的 a 标签,我猜测是 /var/Typecho/Widget/Helper/PageNavigator/Box.php 这个文件里某处有问题。到时候处理下。

默认日记

今天我的笔电真是奇葩了,更新管理器提示我有更新,然后我安装的时候发现 Chrome 这货逆天了,下载到 16.6 MB 然后退回 16.2 MB 这样的事发生了好多遍。换源换了好几次都没用。(话说搜狐的源是怎么了,有时候安装软件会接到空的响应,直接访问也看不到目录列表了,倒是有页面提示说当前网站无法访问什么的,也试过网易的源啦,不过速度上差强人意)

诶,其实一直搞不懂,计算机图形学这种东西,为什么要考试啊,要是用编程作品给成绩多好。数学推导和证明什么的,真心无力。

默认日记

Nginx 真尼玛蛋疼。

两个月前我还在用 Apache2 自得其乐,开机自启动不用我去操心,每次打开电脑我只要专注在页面上就好了,服务器什么的绝对不会有问题。

自从我上次重装系统之后想要保持本地服务器跟 VPS 一致,麻烦就来了,先是手动装 Nginx +PHP-FPM+MySQL ,运行不能。然后使用 lnmp ,这下跟服务器完全一致了吧,还是运行不能。然后某一次电脑故障, lnmp 就突然好了,虽说每次开机要手动启动服务,但我半个月才关机一次倒也没什么。

现在好了。下午电脑卡了一下,快没电了所以我就强关了。然后这下好了,整个服务都挂掉了不说,启动不能, Nginx 是启动了,可是你他妈给我把网站根目录定位到哪里去了啊!!!访问不能啊, curl 出错啊!!其他两个服务傲娇了好吗!三个东西愣是不组合早一起好吗!!好不容易三个服务都手动启动了,相互不合作啊!!!!!!!!!

卧了个大槽,明天再看看。要是明天我还搞不好就直接卸载掉,换 Apache2 好了。特么的我是写代码的,不是来练习服务器运维的!