Category Archives: Information Technology

我们的数据库课

很久之前的一篇文章,怎么也是上上学期吧,写成草稿了,现在贴出来吧。 我并不是要批评我们的老师,我觉得我们的老师还是挺负责任的,能讲到的还是尽量讲到还是都讲到了。 其实最重要的是我并不知道这课到底是在讲什么,老师在某节课上说:“我们这门课主要是讲授数据库理论,这个内容就不讲了”(意思是这样的)。当时我就震惊了,我一直以为这门课讲的是数据库如何使用数据库的……老师上课的时候也经常说作为数据库的使用者如何如何,那我们的这门课到底是在讲理论还是使用呢…… 作为大学的课程,我认为应该以理论为主,怎样使用只是顺带一提,以自学为主就好,就像传言中国外大学某些课程一样,一次课讲完一门语言,SQL 这种东西完全可以一次课讲完,剩下的靠大家自学或者直接实践,但是上半学期除了绪论,就一直在讲关系代数和 SQL,这个东西需要这么多时间来讲吗?我个人认为,4个课时就足够了(可能有点太激进了)。这门课上用了八周,也就是 22 个课时来讲这些东西。 我是一个理论比较弱的人,所以就想着靠学校里的数据库课补一下理论知识的。在我眼中,这门课讲的东西确实是必须的,但是内容太少了,深度也不够。这个 playlist 是印度一所大学的数据库课程,我只看了标题,来比较一下我们课程的内容。Lecture 1~9 我们是讲过的,10~16 没讲过,17~23 讲过,24~26 没讲过,27~29 讲过,30~42 没讲过,只有 19/42 的内容我们覆盖到了,也就是只有 45%。看看我们漏掉了什么东西,存储过程、索引、查询过程和优化、分布式数据库、数据挖掘、XML 和对象数据库还有很多 case study。我想要的是什么?我想学的就是数据库是怎么实现的,存储过程、索引、查询过程和优化为什么没有?这是本科教育对吗?不是职业教育,我们要知道原理才能更好地利用数据库,对吗?学校里学不到的指望我们在工作中学吗?大家都清楚,工作了就更没有机会去学理论了。怎样用 SQL 需要教吗?DBMS 就会告诉你你的 SQL 是对是错,你也能一眼看出来结果是否正确,尝试一下,总会正确的。但是如果你一句 SQL 执行了一分钟,DBMS 会告诉你为什么吗?会告诉你子查询的速度慢吗?会告诉你优化器做了什么吗?会告诉你中间创建了哪些临时表吗?不会的,起码不会一眼就看出来,你需要理论知识的支持,可是这门课给了我们什么? 要说这门课重视实践,那我又不明白了。现在起码在互联网方面,大家都只是把数据库当作一个存储数据的地方,很多高级的功能、很复杂的 SQL 都很少出现,那么我们写一堆长长的带着子查询,带着 ANY 带着 EXISTS 的东西有什么用呢?做教务系统吗?用非常复杂的 SQL … Continue reading

Posted in Information Technology | Tagged | 5 Comments

iOS dev: 将 Xcode 中的 CODE SIGN IDENTITY 分离出 VCS

做 iOS 开发的时候每个人都有不同的开发者证书/私钥,只有通过这个私钥进行代码签名之后 app 才能在 iPhone 上运行起来。项目中用来确定使用哪个私钥签名的配置文件是 project.pbxproj,由于它也记录了项目地很多其它信息,所以它往往会出现在版本控制系统中,这样就造成只有一个人能够成功地签名。好在我们可以通过 .xcconfig 文件来将这个配置抽离出来。 首先新建一个文件(Cmd+N),在 Other 中选择 Configuration Settings File,新建一个配置文件 CodeSign.xcconfig。在这个文件中添加一行: CODE_SIGN_IDENTITY = iPhone Developer: 人甲 路 (XXXXXXXXXX),其中证书的名称可以在 Keychain Access 里面找到。 之后删除原来 project.pbxproj 里面的签名,直接在 build settings 里面删除就好,注意 project 和 target 的都要删掉(都选中之后 Cmd+delete)。 最后在 Project … Continue reading

Posted in Information Technology | Tagged , , , | Leave a comment

Lion 对加密卷的支持

今天想给硬盘数据做备份,毕竟硬盘已经用了两年了,不用查 SMART 信息也知道他已经老了,虽然诸如代码之类的都有很多备份,但是还是有些文档、照片需要备份。 又阴差阳错得到一块老旧移动硬盘,灰常好啊。开工吧。 拿来的时候是 NTFS,第一件事情就是改成 HFS+,拿 Disk Utility 格式化的时候发现多出了加密的选项,不用多说,先试试。不得不说这个 Lion 的 GM 版本还不够到正式版的水平,这个输入密码的输入框如果输入超过十位的密码就会 crash,这个完全不能忍受啊,尝试了半天发现先在别的地方输入好然后复制过来就可以了。(好吧,我不得不说我写文章想截图的时候这个 bug 又神秘的消失了) 这样格式化好了之后每次插入移动硬盘的时候都会提示你输入密码才能访问,像是做备份这种应用就会安全很多。 之后我就发现加密卷的密码无法修改,我猜测这种加密是用密码加密一个密钥,再用密钥加密数据的,应该可以修改密码,现在无法修改的原因应该是 Apple 还没想好在哪里放这个功能,也或许 Apple 不会给这个功能提供 GUI,那我们转战 CLI 吧,Disk Utility 对应的命令行工具是 diskutil,里面提供了很多 GUI 中没有的功能。鼓捣一会之后发现 diskutil 有个叫做 CoreStorage 的模块,进一步发现 diskutil coreStorage changeVolumePassphrase 可以修改 CoreStorage … Continue reading

Posted in Information Technology | Tagged , , , | 2 Comments

Installing Gentoo Linux on DELL R710

公司买了一台 R710,第一次自己装服务器上的 Linux,虽说区别不是很大,但是还是很值得纪录一下的哦。 服务器跟 PC 最大的区别大概就是硬件了吧,涉及到驱动的基本上就只有 RAID 控制器了吧?编译内核的时候那个纠结啊……那个启动不起来啊……真是…… 首先是得照着一个指南做,就是这个指南啦,比较适合以前装过 Gentoo 的人看。这个指南是装软件 RAID 和 LVM2,我们做的是硬件 RAID,所以里面软件 RAID 相关的东西就不用安装了,比如 dm-mod 之类的就不用装了。我还是习惯把 /boot 放在 LVM 里面,其实自己有的时候也觉得没啥必要,有点犯贱的意思……如果你也希望把 /boot 放在 LVM 里面,可以参考 Gentoo Wiki 的这篇文章,不过里面的内容略微有点过时了,比如内核参数 dolvm2,现在写成 dolvm 了。一开始安装的时候忘了做 initrd,查了半天才发现,还是不细心啊。 剩下的大概就是编译内核了,先随手把什么声卡驱动什么的去掉,然后重点是 RAID 驱动,一开始天真地以为 RAID 控制器的驱动是 LSI … Continue reading

Posted in Information Technology | Tagged , , , , | 1 Comment

A Password Generator

一个简易的密码生成器,python 写的,遵循 2 句 BSD 许可证,应该很好懂,参数什么的可以自己调调。 PS:其实我写完了才发现有个叫 pwgen 的东西,pwgen -cns 16 似乎也不错。 参考: https://blog.delphij.net/2010/12/post-598.html phpmyadmin 生成密码的代码:https://github.com/Reen/phpmyadmin/blob/master/js/server_privileges.js#L80 #!/usr/bin/env python2.6   # Copyright 2011 Kou Zuyang. All rights reserved. # # Redistribution and use in source and binary forms, with or without … Continue reading

Posted in Information Technology | Tagged , , | Leave a comment