英国 CS Master 一年总结

从来没有想过自己还有机会再回到学校读书,虽然 Offer在14年底就已经拿到,但一直都在犹豫,然而在15年6月最后还是决定利用在英国的机会读一个 CS Master ,本文旨在对所学课程做一个大致总结。

申请学校的细节不多说,在众多全英三十名以内我喜欢的学校中,只拿到了萨里的网络工程和南安的 CS Offer,于是选择了南安。这个专业的好处是简单易申,课程选择范围大,几乎可以选择学院内与计算机相关的所有 Master 课程,唯一遗憾的是没有计算机网络和操作系统相关的专业课程。于是我选择了人工智能相关的课,其实主要就 Machine Learning 和 Computer Vision,上学期基础课,下学期 Advanced 课程;另外还有必修课 Topic in Computer Science 和 Project Preparation 以及凑数课 Complexity Evolution 和 Computational Finance 一共 8 门课,每学期四门,大约12周的 Lecture,约在第16周考试。

关于学习,我想说的就是千万不能掉以轻心,自以为是。看自己数学好不好再选课,除非你想挑战一下自己。英文很重要也很不重要,没事的时候多背几个单词不会错,不过正常情况下 CS 专业不会有空闲的时候。 第一学期我就自以为是的认为凭经验及格一点问题都没就浑浑噩噩的过了一学期,早上约九十点起床,有早课的话会早点,上完课就图书馆休息休息看看电影再有空就做做作业,午饭晚饭附近中餐馆吃,晚上约九点左右回去。

Complexity Evolution 一学期没两节课听懂了,coursework 也不会做,总之就是无聊+难,感觉像听天书。Machine Learning 这门课在第一学期其实蛮简单的(作为一个已经毕业六年本科数学还挂科的我来说,在第二学期才发现这门课的内涵),但老师讲的不多,基本上是凭着对 Lecture 的回忆对着看coursera 上的网络课程来弥补没理解到的 gap,偶尔我们还开玩笑说其实我们上的是 Stanford 的网课,应该拿个 Stanford 的学位。作业基本上是直接搜网上的资料,理所当然的效果并不好,没有对知识点有个整体的把握,始终都是一知半解。Computer Vision 主要讲信号方面的基础知识,内容跟 machine learning 有重叠,一半理论一半实践,也需要较强的数学功底和记忆力。必修课 Topic in Computer Science ,算是水课,基本就是读读学科内各个方向的论文,上课时小组讨论讨论,有点像本科的计算机科学导论,不过老师选的论文质量颇高,不妨细读;这也成了我第一学期唯一过70分的科目。一般每门课都有参考书目,但老师基本都会说可看可不看随你,千万别理解成可以不看,最后吃亏的是自己(第一学期我没有看过一本教材)。理所当然的,第一学期结果差强人意,差一点就挂科,其余三科都在60分以下,最后平均分59 (Master 及格线pass 50+,良好merit 60+,优秀distinction 70+)。

第二学期的课程基本是第一学期课程的深入和应用,普遍来说分数会比第一学期好拿,但也并简单。在吸取了第一学期的教训以后,夹着尾巴做人,缩短了每天的娱乐(电影)时间,延长了晚上回家的时间(11点到12点),减少了去中餐馆的时间,午餐基本改成三明治解决。最重要的,向着优秀的同学们学习,在他们的努力下,以及补好数学(线性代数,概率,微积分),终于有所进步,最终第二学期几科最低成绩70分,平均77。我只想说这些不容易,但努力是值得的。我见过凌晨四点校园里的月光,也见过早晨五点初升的朝阳。谢谢那些和我一起奋斗的同学们!

PS:如果你正在犹豫要不要读书或者为选课而犹豫,希望我的经验可以供你参考。整体来讲,如果你希望学到相对深入的内容,CS 及其相关专业是最忙最累的专业。虽然英国的 Master 在国内外含金量普遍偏低,如果能够坚持下去,一年的学习对自己来说一定物有所值。
-EOF-

[中文]iOS技术问答 QA1747 调试部署的iOS应用程序

QA1747调试部署的iOS应用程序

问:我如何在没有Xcode调试器的情况下调试一个已部署的程序?

答:一旦你已经部署你的应用,无论是通过App Store还是企业部署,你都无法使用Xcode的调试器调试它。你需要通过分析设备的崩溃日志和控制台的输出来调试问题。

更多丰富NSLog语句的信息,请查看 Improved logging in Objective-C.。

获得奔溃日志和控制台输出
使用Xcode获得奔溃日志和控制台输出

重要提示:当前,Xcode并不会自动添加低内存警告的日志。你必须通过*不使用Xcode获得奔溃日志*一节的说明来手工获得他们。更多关于低内存日志的信息,请查看Understanding and Analyzing iOS Application Crash Reports.

即使你不能在Xcode调试器下运行这个程序,Xcode仍然可以给你所有你需要的信息来调试问题。

  1. 插上设备并打开Xcode
  2. 打开Organizer窗口并选择Device选项卡
  3. 在DEVICES部分,展开该设备列表
  4. 选择Device Logs查看奔溃日志或者选择Console查看控制台输出

不使用Xcode获得控制台输出
有时你需要现场调试一个问题,或者告诉测试人员如何获得更多的信息提供给你。在没有安装Xcode的情况下,可以下载*iPhone 配置实用工具*来保存控制台输出。它可用于Mac OS X和Windows。

  1. 插上设备并打开iPhone 配置实用工具
  2. 选择左侧DEVICES菜单下的设备
  3. 选择Console选项卡
  4. 按下窗口右下角的*Save Console As…*按钮导出控制台日志

不使用Xcode获得奔溃日志
在插入设备并同步iTunes后,根据不同的平台,奔溃日志可以在以下位置找到。

Mac OS X:
~/Library/Logs/CrashReporter/MobileDevice/

Windows XP
C:\Documents and Settings\\Application Data\Apple Computer\Logs\CrashReporter\MobileDevice\

Windows Vista or 7
C:\Users\\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice\

是使用者登陆计算机的名称。 是iOS设备的名称, 比如, “John’s iPhone”.

启用App Store诊断报告

重要提示:当前,Xcode并不会自动添加低内存警告的日志。你必须通过*不使用Xcode获得奔溃日志*一节的说明来手工获得他们。更多关于低内存日志的信息,请查看Understanding and Analyzing iOS Application Crash Reports.

如果一个程序被部署在App Stroe,你可以在iTunes Connect中查看到奔溃报告。但仅限于选择发送诊断和用量信息给Apple的用户。

如果有人报告了一个奔溃,而你没有在iTunes Connect中看到相应的报告,你可能需要依据以下的基础知识文章适用于Mac或适用于Windows指导他们,以便他们可以选择发送给你奔溃报告。

那些关闭App Store诊断报告的用户人和可以获得奔溃日志,以*不使用Xcode获得奔溃日志*一节所描述的方式获得,然后手工发送他们。

理解奔溃日志和控制台输出
理解奔溃日志的第一步和最重要一步是符号化他们。符号地址是使用人类可读的函数名称和行号替换内存地址。

如果你通过Xcode的Organizer窗口得到了一个设备的奔溃日志,然后他们会自动在几秒钟以后自动为您符号化。否则你将需要自己通过将.crash文件导入到Xcode Organizer中符号化。打开Xcode Organizer,选择“设备”选项卡,选择“LIBRARY”菜单下的“Device Logs”,点击“Import”按钮并选择.crash文件。

更多关于奔溃日志的信息,请查看 Understanding and Analyzing iOS Application Crash Reports 技术说明,以及 Understanding Crash Reports on iPhone OS WWDC 2010 Session.

via Technical Q&A QA1747 Debugging Deployed iOS Apps

-EOF-

iTunes Connect数据小结

前段时间发布了一个免费得App到App Store,最近留意了一下数据,总结一些经验:

  1. iTunes Connect数据不是实时更新得,每天更新一次,大约在北京时间18:30左右
  2. 并不能查看到最近一周得汇总数据,要等下周一才会产生周报表,但在可以在Web上看到按日的趋势图
  3. 3.周报表生成时间略晚于平时,周一的报表约在19:30左右产生

顺带广告下这个用于查看iOS内置字体的免费应用Fonts Inside,有需要用到的同学也请提提意见。

-EOF-