页面载入中...
首页 » 2013年03月

PyQt程序编译后的数据库驱动问题

舍得按:这个问题困住舍得蛮长的一段时间了。在用cx-freeze对写完的程序进行编译的时候,舍得发现,程序居然无法正常打开数据库!直到今晚,按脑中突然冒出的一个念头试了一下,发现解决问题的方法竟然是如此滴简单。

先介绍一下问题的背景:在舍得写的这个程序中要用到Qt自带的MySQL驱动,在本地调试的时候,一切正常,数据可以随心所欲滴读取、写入。可一旦用cx-freeze对程序进行编译后,杯具发生,数据库就再也打不开了。

难道是cx-freeze出了错?

还是,根本没法酱紫调用数据库?那写好的程序只能带着Python的环境运行了?

舍得有一个优点是会去想各种各样的“可能”的解决办法,然后一一尝试。哪怕可能性很低很低,只要尝试的成本没有超出舍得的忍耐程度,那——还是会去试。

就这样一个个方案试过去,直到找到答案:

你要调用哪个数据库的驱动,先在程序目录下新建一个叫”sqldrivers“的文件夹,然后把那个驱动(通常放在"Python安装目录\Lib\site-packages\PyQt4\plugins\sqldrivers下,例如舍得要用到MySQL的驱动,就复制qsqlmysql4.dll")复制过来,放到这个文件夹下。然后就没有然后了,直接运行编译好的程序,你会发现数据库正常了。

 

本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:
舍得
首发:舍得@学习力博客

Win8快速关机方法探讨

舍得按:这个关机方法其实在XP时代便已存在,但由于现在Win8系统关机比以往要麻烦了一些,因此,向来习惯偷懒的舍得,便不得不研究一下快速关机的法门。

先来看看Win8常规的关机方法:

我们需要在右侧的的开始菜单中找到设置按钮,通过设置按钮进入到关机界面。然后在关机界面中点击“电源”按键之后,会出现“睡眠”“关机”和“重启”三个按钮,我们可选择相应的按钮。跟Win7那种直接从开始菜单找关机按钮的方式比起来,操作相对要烦琐得多。

下面我们来试验一种较快的关机方法:

1、在桌面上点击鼠标右键,弹出快捷菜单,单击“新建 –> 快捷方式“;

2、关机代码输入:在对象的位置中输入“shutdown.exe -s -t 00”;

3、给这个快捷方式起个名字,比如说”关机“,不过舍得只用一个字母来命名,比如”g“;

4、追求完美的童鞋可以给它换个图标,具体的方法这里就不介绍了;

这样,只要双击这个快捷方式,就可以实现快速关机了。

只是,这还不算最快的关机办法。据说,最快的关机方法是”快速地按一下主机上的POWER键“——这种操作习惯并不可取,所以舍得不会推荐。

舍得推荐的做法是,按下”Win+R“这对组合键,然后输入”g“,再按回车,关机操作就完成了,这就是所谓的”WinRun“大法。

要实现这个”WinRun“大法,我们需要做三步操作:

1、建立一个文件夹,比如说我们在D盘下建立一个叫”Short“的文件夹;

2、把刚才新建的这个快捷方式(文件名叫g.lnk)放到Short文件夹下;

3、最最关键的一步:打开“控制面板→系统→高级系统设置→环境变量→系统变量→path”,选中path后,点击“编辑”,在弹出的对话框中,“变量值”输入框中,定位到文字最后面(可按End键),先添加一个半角分号(以表示与前面的内容区分),再写入(分号后面不用空格)d:\short\ 即可(注意short后面要有反斜线)。这项操作对于电脑苦手来说比较麻烦一点.

上面这三步操作做完以后,你就可以用舍得所推荐的”快速关机法“来进行关机了:按组合键→输入g→回车,搞定。

除了WinRun大法之外,我们还可以用另外一种方式实现快速关机:

右键点击上面建好的关机快捷方式,从弹出的快捷菜单中选择“固定到‘开始’屏幕”,按Win键打开Metro界面,注意调整一下关机按钮在屏幕上的位置,最好放在第一屏中。这样,在要关机的时候,按一下Win键,选中这个"关机"按钮就可以快速关机了.

本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:
舍得
首发:舍得@学习力博客

标签:

SuperMemo与六人行——写在《六人行》第二季完结之际

呼呼,《六人行》课程的第二季终于制作完了,上来冒个泡,谈点感想。

一、为啥要做《六人行》课程?


我极力推荐《六人行》,情节轻松、幽默,语言简练、生活化,而且有10季之多,每季都有20余集,时间长短适中(每集只有大概20分钟),信息量足够大。 绝对是学习英语,了解美国文化的绝好选择。

                                                         ——《浅谈如何学好英语(二)》天涯论坛资深版主 鹿湖居士

    很多童鞋一提SuperMemo,下意识里把它当作“背单词”的一个软件。没错,SuperMemo的确是背单词的利器,而且Piotr Wozniak博士在二十多年前开发它的时候,确实是用来学习英语单词的。但是,经过二十多年的发展,SuperMemo已经不仅仅是一款背单词的工具,甚至,它已经无法用“辅助记忆工具”来简单地界定,它已经成为一个学习平台,在这个平台上,它可以帮助你掌握绝大多数的知识,它会成为你的贴身学习助手。

    单词当然还是要背的,因为有了SuperMemo,我们可以快速突击掉生词,从而可以有更多的时间用来从事对自己帮助更大的训练。对于英语学习来说,除了单词,我们还可以用来背句子,而这句子素材的选择非常关键,对于口语的学习来说,《六人行》自然是绝佳的选择。

 

二、为啥要用SuperMemo来做《六人行》的课程平台?


背句子的软件也不在少数,比较经典的有角斗士出品的《我爱背句子》,大张开发的免费软件《Aboboo》则是这类软件的巅峰之作。但无论是《我爱背句子》还是《Aboboo》,他们的最大缺陷都是缺少良好的记忆算法的支持(尽管前者宣称自己应用了艾宾浩斯遗忘曲线的原理,但那仅仅是机械的套用),这使得用户的学习效率无法得到大幅度的提升。

缺少良好的记忆算法,就会不可避免地产生大量的无用功,这是影响学习效率的根源。因为学习是一个动态变化的过程,所学的内容会由陌生到熟悉,再到掌握,这里面的变化是无法靠死板套用艾宾浩斯遗忘曲线来把握的。若不用记忆算法或应用低劣的记忆算法,用户会在那些已经掌握的学习内容上花上大把的时间,这便是舍得所说的无用功。而SuperMemo的算法之所以科学,就因为它可以最大限度地避免这些无用功的出现。

以某集《六人行》课程为例,比如我们要听写下面这个句子:

Hey Joey, how’d the audition go?

你可能会很轻松地根据录音把这句子写出来,在经过数轮的学习之后,SuperMemo就会根据你的表现,把这个句子的复习次数大幅度减少,这样,你便可以用更多的精力去解决那些真正能难住你的句子。这种学习方式带来的效果,比你自己对着录音机(或复读机)听写,或借助其它类似的软件无法比拟的。更何况SuperMemo会记录你的成长历程,它会成为你无形中的一个监督者,不仅学习过程轻松,学习者还容易养成自律的品质。

一集《六人行》不过200多个句子,用SuperMemo来学,几轮下来,那些难点的句子便无所遁形了。由于SuperMemo采用的是测试的形式,你必须先想出答案,然后才能去找它对答案,这样一来,那些乍一看你都会的词和句会一一暴露出来,SuperMemo能帮你找出这些盲点,仅凭这一点,就已经甩了那些所谓同类软件几条街了。

 

三、单词和句子同步学习,效率更高


舍得制作的《六人行》课程中,是有单词的学习的。这里的单词,都是来自当前这一集的”课文“中,单词和句子同步操练,让单词有了鲜活的语言环境,学到的单词很容易变成”活跃“单词,这跟纯粹的为了背单词而背单词相比,效率无疑高出了一大截。

为了避免重复的劳动,在《六人行》课程的制作过程中,已经将之前出现过的单词全部过滤掉了。以第二季为例,每集的生词量还不足100,平均每个句子还摊不到0.5个生词,学习起来不易受”大量生词“的打击,劲头自然十足。

 

四、多种训练形式,听力、阅读、口语一个都不少


《六人行》课程是从听入手,配合舍得设计的听写题、选择题、匹配题、排序题等多种题型,可以让你从听力到阅读到口语,进行全方位的训练,其中,听写题训练听力自然不需多说,音频部分来自《六人行》剧集,其语速基本接近美国人的日常语速,有的片段甚至比那还快。这个训练可以让你很容易挖出自己那一个个听力盲区;选择题和匹配题主要训练你对词汇理解和运用能力,兼顾了阅读能力的训练;排序题则是训练你的语感。在大多数带语音的练习中,你可以借助SuperMemo的波形复读功能来训练自己的口语,SuperMemo会根据你的读音给出一个合理的评价,帮助你校正你的发音。

 

五、吸收更重要


对于SuperMemo来说,“记住”已经不是唯一的标准。我们不仅要记住,要能在极短的时间内给出答案,还要让所学的内容象养分一样吸收到自己的身体里。这种“吸收”,或者叫“掌握”的状态才是我们应该追求的。

对于词汇来说,我们要能做到语义流层面的快速解构;对于听力训练来说,我们则要做到音频流的快速解构;我们通过SuperMemo学习的不仅仅是知识,更重要的是,我们用它训练出自己各方面的技能。

 

本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:
舍得
首发:
舍得@学习力博客

SuperMemo UX新手指南之课程导入又一法

之所以用"又一法"这个词,是因为之前舍得发过一篇《SuperMemo UX新手指南之课程使用》,文中介绍了在SuperMemo UX中导入课程Q&A文本的方法。本文介绍的是另外一种方法,它主要用于已有的课程,特别适合边学知识边往里添加内容的童鞋,具体的方法如下:

1、首先,打开要添加内容的课程,按F9进入编辑模式。注意,下面的内容不进入编辑模式是没法操作的。

Tips:打好包的课程是没法直接按F9进行编辑的,此时可借助插件来进入编辑模式,具体的方法不再赘述。对于绝大多数童鞋来说,使用这里的导入方法,更多的是应用于自己制作的课程。

2、鼠标右键点击左侧的内容列表中的一个章节(当然这个章节是要用来导入新的源文本的),注意不能选择普通页面。请仔细观察下图中章节的图标,只有在你选中章节的时候,所弹出的快捷菜单中才会有“章节”这一项,然后请从这一项中找到“从Q&A格式文件中导入页面”,点击它。

image

如果你右键点击选中章节出现的是这样的菜单:

SNAG-0057

那就说明你还没有进入编辑模式,此时需要再按一下F9。进入编辑模式后,主窗口会变成一个编辑器,而且其中的内容可以手工修改。

若已经进入编辑模式,在你用右键点击选中的章节,出现的是下面这样的菜单:

SNAG-0058

唔,这位童鞋,舍得告诉你,你现在选中的仅仅是普通页面,不是章节哦!

3、前面操作正确的话,此时会出现如下窗口:

SNAG-0059

点击”选择“按钮,找到你事先准备好的Q&A格式文本,注意,这里不再科普什么是Q&A文本,现在最新版本的UX对Q&A文本的格式要求非常严格,一般来说,不建议直接使用非UX版本(比如说SuperMemo 2008/2006、SuperMemo15等)的Q&A文本。如果你不知道什么叫做Q&A文本,也不想去了解,那还是别往下读了,老老实实地一页一页编辑,或直接使用其他人做好的现成课程吧。

“提问和回答均使用Html语言”这一项建议勾上,不过,就像舍得刚才说的,现在的UX对Q&A文本要求很严格,Q&A文本中的HTML代码很可能会使下面的导入工作无法顺畅进行。因此,舍得的建议:

a、在Q&A文本少用HTML代码;

b、确实需要用到一些特殊的题型或效果的,建议使用转换精灵来制作课程;

“使用提问作为页面标题”这一项可以勾上。

4、点击“导入”按钮,剩下的工作就交给电脑了。

最后讲一下"章节"和"非章节页面"的转换方法。

在新建一个课程的时候,是没有章节存在的,打开课程内容列表里是这个样子:

SNAG-0060

这是一个普通页面,如果我们要导入的话,要先将这个页面转换为章节,方法如下:

1、进入编辑模式;

2、右键点击这个页面,从弹出的菜单中选择”模板“命令:

SNAG-0058

3、在”页面配置“窗口中选择”章节“,然后按”确定“返回:

SNAG-0063

这样我们就将普通页面转换成”章节“了。

 

本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:
舍得
首发:
舍得@学习力博客