Blog

Moodle升级时注意事项

升级时注意事项 #

OCI statement cache causes ORA-01007 #

升级安装过程中需要去掉OCI缓存:

oci8.statement_cache_size = 0

等安装完成后再改回来,原因是该缓存可能会导致出现ORA-01007错误。 https://bugs.php.net/bug.php?id=49803

用命令行升级,没有timeout的困扰 #

用web界面升级,最大的麻烦就是timeout问题,由于使用php-fpm需要用到proxy,又有代理超时问题,再加上PHP脚本最长执行时间的限制,会让在线升级变得非常容易出错。用命令行升级,这些问题可以得到有效解决。

sudo -u apache /usr/local/bin/php admin/cli/cron.php

From #

强制关闭Oracle数据库的方法

强制关闭数据库的方法 #

  1. kill进程此时可以通过下面命令Kill掉系统中(LOCAL=NO)的ORACLE进程
[oracle@DB-Server ~]$ ps -ef|grep ora|grep -v grep|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill

此时可以顺利关闭数据库。

  1. shutdown abort

使用CTRL+C取消操作,然后使用shutdown abort命令关闭数据库。当然生产环境还是慎用shutdown abort命令,使用它往往是在没有办法的情况下。因为 shutdown abort 执行后,所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。

  1. 停服务
    • 首先停应用服务。
    • 其次停止监听服务(listener)
    • 间隔一段时间后,运行自己写的脚本去检查一下还有没有用户进程,如有, KILL.
    • shutdown immediate;

sub:Moodle

服务器配置 #

apache2.4+php-fpm设置参考文档 #

http://wiki.apache.org/httpd/PHP-FPM 配置使用Unix Socket:

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/path/to/socket.sock|fcgi://127.0.0.1:9000/path/to/your/documentroot/

其中要注意两点,一是fpm进程无需在9000号监听,那是个虚拟的端口,真实的连接还是发生在Unix Socket中。二是URL最后不必添加$1。

使用httpd2.4+php-fpm配置注意事项 #

nginx规则,解决上传图片或录像等文件名中使用中文字符中导致文件无法显示的问题。

rewrite "^/pluginfile.php/(.*)$" /pluginfile.php?file=/$1 last;
rewrite "^/draftfile.php/(.*)$" /draftfile.php?file=/$1 last;

Moodle升级时注意事项

Question Engine(Moodle)

Caching(Moodle)

moosh Moodle Shell

Coding Competition Practice Sheet

线性表 #

区间最值查询(RMQ) #

Sparse Table #

  • bailian3438(Balanced Lineup) Sparse Table模板题,练习创建SparseTable类。
  • poj3368(Frequent values) Sparse Table,用动态规划先算出log2数组,对累计后的数据做Sparse Table,查询要比较两部分区间中的最值,从左侧开始的区间的最值要手动判断,右侧区间则可用ST查询。
  • hdu3486(Interviewe) Sparse Table结合二分搜索。无法找到的情况可以快速判断。
  • bailian2019(Cornfields) 二维区间最值查询,用ST数组来解决。

树状数组(Binary Indexed Tree) #

  • bailian2352(Stars) 一维树状数组模板题。星星按y升序排列,y相同,则按x升序排列。y列数据读取后并无用处。计算级别时,假定x值先读到5,再读到3时,这个x为3的新星必定不会对已经有的x为5的星星的等级产生影响,因为它的y值肯定会更大一些。最终,星星的等级即为该x位置的前缀和,算完前缀和后,再为其增1。
  • poj3067(Japan) bailian2352的数据已经排了序,而本题则要自己排序。最后结果会超出int范围,很难看出来。输入输出会影响判题。

线段树(Segement Tree) #

Number Theory #

并查集 #

字符串 #

book:我的朋友马基雅维利:佛罗伦萨的兴亡

Content #

第九章 切萨雷·波吉亚(1502—1503年) #

瓦伦蒂诺公爵切萨雷·波吉亚并没有彻底改变马基雅维利的思想,只是给马基雅维利已经拥有的模糊思想赋予了清晰的形式。他是对马基雅维利的想象力刺激最大的人物。他们邂逅时,马基雅维利33岁,切萨雷27岁。

第十一章 “我一生中最好的日子”(1503—1506年) #

不论是在什么时代,也不论统治者是绝对君主,还是一群贵族,还是像现代佛罗伦萨这样的民众,所有城邦(或国家)都需要用“力量”和“远虑”这两件东西来保卫自己。只有“远虑”不够,只有“力量”也不够;只有“远虑”无法实行所想之事,只有“力量”则行之不远。因而,这两者与政体无关,它们是能够使政体发挥良好效力的政治之根本。这一点无论是在过去还是在将来都不会改变。

在个人之间,法律、契约和协定让他们守信。然而,使权力者守信的只有武力。

第十二章 “副官”马基雅维利 (1507—1512年) #

现实主义者犯错误都是在认为对手也和自己一样不会做蠢事的时候。

第十四章 《君主论》的诞生(1513—1515年) #

但是,命运没有让我熟悉丝绸纺织业,没有让我在棉纺织业赚到钱,也没有让我在金融业出人头地,我只能思考政治,其他什么都不会。

From #

《我的朋友马基雅维利:佛罗伦萨的兴亡》 盐野七生

静态链表

Content #

用静态链表可以先把数据存储在一维数组data[]中,然后用后继数组right[]记录每个元素的后继下标. 0空间没有存储数据,作为头节点。 right[1]=2,代表data[1]的后继下标为2,即data[2],也就是说元素56的后继为9; right[8]=0,代表data[8]的后继为头节点。

插入 #

若在第6个元素之前插入一个元素25,则只需将25放入data[]数组的尾部,即 data[9]=25,然后修改后继数组right[5]=9,right[9]=6,如下图所示。

删除 #

若删除第3个元素,则只需修改后继数组right[2]=4,如下图所示。此时,2的后继为4,相当于把第3个元素跳过去了,实现了删除功能,而第3个元素并未被真正删除,只是它已不在链表中。这样做的好处是不需要移动大量的元素。

From #

《算法训练营入门篇》 陈小玉

uva12657

忠言嘉谟必定源自君主的智慧

Content #

防范谄媚只有一个方法:让人们明白,对你说真话并不会得罪你;然而,一旦人人都对你说真话,你就得不到普遍的尊重了。因此,明智的君主应该采取第三个办法,就是选择明智的人当他的大臣,只允许那些大臣拥有对他说真话的自由,而且只许回答他的询问,其他人或其他话题都不允许。

但是,君主询问他们的意见应该巨细靡遗,并且仔细聆听,深思熟虑之后作出自己的决定。关于这些意见和提供意见的每一个人,君主的作为应该让他们明白,说话越坦诚,他的接受度越高。除了这些人以外,他不应该听别人的意见,而且应该坚持下了决定就贯彻到底。不这么做的君主,要不是因奉承话而受害,就是因朝三暮四而举棋不定,让人家瞧不起。

君主应该时常征询意见,但是要掌握原则——是他要听,而不是别人要说给他听。事实上,除非他自己主动问起,否则不应该允许任何人进言献策。但是他一定要不耻下问,并且耐心倾听相关事情的真相,但是千万不能纵容对方不说实话,不论任何人、基于任何理由都一样。

忠言嘉谟,不论是谁提出来的,必定源自君主的智慧,而不是君主的智慧源自忠言嘉谟。

From #

《君主论(果麦经典)》 马基雅维利

霍布斯政治哲学观的两种假设

Content #

霍布斯是个“人性本恶”论者。他的政治哲学观基于两种假设: 1)人类不值得信任,因为一有机会,他们就会为了自己的利益而彼此欺骗,所以,法律应当维护社会的和谐稳定,不让人类陷入自相残杀的战争中。 2)在和史蒂夫·罗杰斯争执时,托尼·史塔克反复强调:“你没什么特别,我也没什么了不起。”在这一点上,他和霍布斯观点非常一致。

From #

《沙发上的哲学家:看剧也是一种人生思考》 里克·杜菲尔

斯宾诺莎的“上帝即自然”

Content #

斯宾诺莎所认为的上帝,远不是笛卡尔所说的“担保者”,而是宇宙整体本身,只与“外延实体”有关系。只有上帝能约束上帝,由此诞生了斯宾诺莎主义中的“上帝即自然”。

他认为认识世界的唯一方法就是确定造物主和被造物的同一性,而这种同一性就体现在思想与身体的同一性中,所以,上帝即自然。

一个人产生想法的同时,行为方式也会发生改变,同样,行为方式的变化也会影响人的意识,这是一个良性的交互循环。其中,思想和身体这两个元素同等重要,二者都以决定性的方式影响着对方,而这个“对方”也是其本身。

吃过苦头,玛莎终于明白艾什的意识和身体是彼此影响的。意识因其与身体的联系而存在,没有意识的身体只是行尸走肉,所以她男朋友肉体的死亡也意味着其意识的死亡。因此,意识和身体的简单重组并不能让艾什死而复生。

之前,相比于斯宾诺莎的思想,笛卡尔的观点更受欢迎,因为他把思想和身体视为两个独立个体,可以让我们更加深入地研究大脑、研究意识、发展解剖学。可是近几十年来,斯宾诺莎的思想得到了更多科学证明的支撑,逐渐站稳脚跟。例如,当代神经生物学家安东尼奥·达马西奥,就多次利用哲学观点证明身体和思想具有同一性,而非二元性。达马西奥坚持认为:“在现代神经生物学的基础之上,我们不仅可以说物象出现在大脑中,甚至还能够大胆地认为,极大一部分呈现在大脑中的物象源于身体传入的信号。”身体就是思想。身体不仅仅指大脑,还指以完整形式存在的有机体,而思想则是身体的表现。二元论并不适用于这两者,它们之间存在同一性,紧密地联系在一起。

在斯宾诺莎看来,自由不是不受身体及其限制独立做出选择,自由意味着以更加独特、更加强烈的方式使身份认同得到具象体现,时刻保持清醒,不受迷信影响,不耽于其慰藉。我存在,不是因为上帝让我存在,也不是因为“我思故我在”——我存在是身体运转的必然结果。认识到这一点,我们才能幸福。那该怎么做呢?在生活中,我们要意识到自己的人生是宇宙万物中不可分割的一部分;我们要让思想与身体和谐共生,而非矛盾对立;我们要知道自己的意识、自己的行为都是非凡且自由的运动的体现,也是宇宙万物的体现。我是自由的,因为我拥有自己的身体和思想,它们二者无关二元论,也不需要彼此妥协。

From #

《沙发上的哲学家:看剧也是一种人生思考》 里克·杜菲尔

book:沙发上的哲学家:看剧也是一种人生思考

Content #

斯宾诺莎的“上帝即自然” 霍布斯政治哲学观的两种假设

◆ 霍布斯信奉科学,是个实用主义者。他认为,国家是由人类建造的,那么建国之基就并非某种普世原则,而是人们之间不堪一击的共识。你还记得亚里士多德说过“人是社会性动物”吗?他认为人们彼此合作、建造共同体的本能倾向促成了社会和国家的诞生。可在霍布斯看来,这简直就是无稽之谈。他认为,人们颁布法律,只是为了避免整天自相残杀。

◆ 在洛克看来,法律是由人类社会自发产生的,所以是自然的,即自然法。它不是一种诡计,也没有强加于人——这显然更糟。人类没有制定规则,但为了生存的确也会遵守规矩,人的自然性便从这些规则中得到体现。自然法:指的是烙印在人类基因中的,而非由社会文化决定的法规。自然法主义是一种以物质的客观存在性为前提的思想,但许多人认为,根本就不存在自然法,因为每一条法律都是在社会文明中由人制定、为人服务的(这便是法律实证主义的思想)。洛克认为,这就意味着:所有人生而自由、平等、独立。每个人都不能被剥夺这种自然权利,任何人是否拥有对他人的支配权都由后者自己决定。人生而自由,并在自由的基础上建立社会,这才应该是立法的原则。

◆ 马基雅维利主义者:指的是为达到目的不择手段的人。他们的座右铭是:“只要目的正确,就可以不择手段。”

第三章如果我们假设历史有意义,那这种意义的发展方向是什么?

第四章海德格尔认为,科技是人类探索“存在”的一种方式。海德格尔认为科技不是工具,也不是为了达到某个目的的途径,而是人类追求完美、探寻事物本质的形式。

哲学家希拉里·普特南通过名为“缸中之脑”的实验进一步研究了这个问题,而他的发现更让人担忧。假如一个走火入魔的科学家将你麻醉之后,取出你的大脑,把它放在富含微粒子的营养液中,再将其与足够先进的超级电脑连接起来,以在大脑中完美地模仿现实世界,那么会发生什么事呢?

From #

《沙发上的哲学家:看剧也是一种人生思考》 里克·杜菲尔