阿里云联手中科院研制量子计算机动态

阿里云官网昨天发布了一则消息,称阿里云与中国科学院在上海联合建立了量子计算实验室,计划研制量子计算机。​这是一个科幻感极强的计划,让人联想到高深晦涩、奇谲诡异的量子物理学。据信,量子计算机将拥有匪夷所思的超强计算能力,可以瞬间在数据库中扫描60亿地球人的脸,并实时辨别出一个人的身份。在量子计算机面前,现代电子计算机的运算性能就像是蜗牛过独木桥。

django:DateTimeField如何自动设置为当前时间并且能被修改
——django日期时间字段的使用

创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。这三个field有着相同的参数auto_now和auto_now_add,表面上看起来很easy,但实际使用中很容易出错,下面是一些注意点。

扩展笔记本内存的8大注意事项

清除了电脑中多余的软件和文件,但笔记本还是很卡,可能是配置跟不上了。如果不想买新电脑,可以买根内存条,扩展一下内存。在这个电子商务空前繁荣的时代,你只需要在网上下个单,并准备一把小螺丝刀,就可以对你的笔记本开刀做手术了。不过在开刀之前,一定要先了解一下其中的坑。

django-compressor:如何去除注释并充分压缩css

网站部署时,对css和js进行混淆压缩是一项必要的工作。对于用django开发的网站,有一个叫做django-compressor的工具可以高效灵活地实施这项工作。不过该工具在默认配置下,输出的css文件并未被去除注释、换行和空格,需要手动进行设置。如何解决这个问题呢?

为什么你的电脑越来越卡?

你的电脑装上了360或者腾讯安全卫士,你勤勤恳恳地清理你的电脑垃圾,你仔仔细细地优化了你的开机启动项,你养成了随手点击桌面上那个360加速小球的好习惯,但是你依然郁闷地发现,你的电脑还是越来越卡,越来越慢,甚至移动一下鼠标都会造成更深更严重的瘫痪。

css3备忘

本篇不定期更新,主要记录使用css过程中的一些疑难杂症、易错的知识点,以及易被忘记的地方。

javascript备忘

本篇不定期更新,主要记录使用javascript过程中的一些疑难杂症、易错的知识点,以及易被忘记的地方。

django备忘

本篇不定期更新,主要记录使用djgngo过程中的一些疑难杂症、易错的知识点,以及易被忘记的地方。

html5:手机浏览器下的滚动条和overflow属性

最近做移动网站,遇到了滚动条问题。相对于传统的pc网站,手机网站的滚动条在外观和作用上有很大的不同,这让我一度感觉很错乱,甚至以为overflow这个css属性在移动端失效了。仔细研究和测试后,发现其实不然。

jquery:如何检测jquery版本,并在一个网页中引入不同的jquery版本

和任何其他框架类似,jquery版本众多,通常来说,当然是使用最新的版本为好。但是,在实际情境中,可能需要同时使用两个不同版本的jquery。别如下面的情景:

django:get_or_create方法使用注意事项
——1062 - Duplicate entry 'https' for key 'name'

今天遇到一个问题:django一直报错,错误为“1062 - Duplicate entry 'https' for key 'name'”。查询文档后,发现是使用get_or_create方法时出了问题。

如何找到apache无法启动的原因

折腾apache真是一件要命的事,晦涩冗长的文档看得我想要自杀。一个常见的问题是,更改配置后,apache无法正常启动,而且log中找不到任何线索。其实这种情况下有一个简单有效的办法,可以快速帮你找到原因,那就是使用使用apache的httpd命令。

https折腾记
——以apache为服务器的网站怎样才能通过https协议访问

由于google账户不能顺畅登录,所以我的chrome书签不能顺畅地在不同设备间同步。试了各种别的浏览器,都不好用。360浏览器没有ipad版,qq浏览器在ipad下面添加书签时老是导致死机,火狐浏览器宣布永远不开发ios版……一怒之下,我自己写了个书签管理小工具。这个小工具其实就是一个用javascript写的bookmarklet,可以把我需要的网址收藏到我自己的数据库,从而彻底摆脱浏览器的限制,实现跨平台、快浏览器地同步书签,吼吼。这个工具需要在被浏览的网页中嵌入一个我自己的js文件和表单(通过<script>和<iframe>标签),我悲催地发现,当被收藏的网址使用的是https协议时,由于我的网站用的是http协议,这两个外部文件无法被嵌入,工具失效。没办法,我只能再折腾一番,让自己的网站可以通过https协议访问。

window8下如何批量重命名文件微知识

今天无意发现windows8的一个有趣现象。选中多个文件,然后对其中任意一个文件上右击,进行重命名,比如重命名为test。这时候奇妙的事情发生了,所有文件的名称都变了,如果多个选中的文件类型相同,那么它们会被重命名为形如test(1)、test(2)、test(3)……的形式;如果选中的多个文件类型各不相同,那么他们会被具有相同的新名称。

老板永远不该向前端工程师说的10件事

前端工程师是一个特殊的职业,它关乎产品的脸面,但常被老板误解和轻视。身为前端工程师的你,如果有一个吐槽老板的机会,你想说点什么呢?来自Watful的前端工程师Hunter Bridges分享了10件让前端工程师讨厌的事。或许你觉得这个清单还不够全面,或许里面的部分观点你不同意,但看完后,你肯定会会心一笑。

python2.3方法解析顺序(译)
——详解多继承的C3算法(C3 Method Resolution Order)

不少语言支持多继承,比如python。多继承?似乎很简单嘛!但仔细想想,真的是这样吗?创建一个类时,如果继承的层级比较深,继承图中的每个节点都可能有一个或多个直接父类,那么这个新创建的类该从按照什么顺序继承父类和祖先类的属性和方法?这个问题远没有想象的简单。最近研究dojo源码,发现dojo模拟了多继承,其方法解析顺序参照了python中的C3算法。谷歌了好久,发现这方面的中文参考资料很少,绝望之下,索性翻译了这篇来自python官方的文档。该文档深入介绍了多继承时的C3方法解析顺序,解释了“局部优先级”和“单调性”两条重要原则,并且有丰富的例子。希望各位看官喜欢。

灵活和严谨:dojo和Extjs风格上的差别微感悟

dojo和Extjs,同为牛逼哄哄的重量级、一站式的javascript前端框架,都对javascript基于原型的继承模式进行了面向对象式的封装,为苦逼的前端工程师提供了一种更接近传统语言的编程体验。但即便如此,二者在风格上还是有很大的区别。首先,dojo支持多继承,而Extjs采用单继承的方式。为了突破这种限制,让类实现更丰富、更灵活的功能,Extjs提供了mixin和plugin这两种机制。其次,dojo引入了模块(module)的概念,采用异步模块定义(AMD)的方式来组织代码,模块可以是一个类、一个对象、一个函数,甚至可以使基本javascript类型,但在Extjs中是没有模块概念的。在组织代码时,在dojo中,模块是一等公民,每个模块对应一个文件,一组模块被放入一个包(package)中;而在Extjs中,类才是组织代码时的一等公民,一个类对应一个文件,类名和文件名通常一致,一组类被放入一个包(package)中。仅仅从这两个角度看,dojo之于Extjs,就像python之于java:

网站如何无抖动地实现控件悬停效果

控件悬浮是网站的常见功能,指网页随滚动条滚动时,悬浮控件相对浏览器窗口保持不动的视觉效果。悬浮控件中通常用于放置一些小工具(比如“回顶部”按钮),或者显示一些希望访问者关注的内容(比如热门文章列表、广告等)。悬浮控件是一把双刃剑,如果被精心设计和实现,它控件可以大大提升网站用户体验和转换率;但当它以一种粗制滥造的面目呈现时,只能增加来访者的厌恶感,降低网站品质。比如,很多粗糙的企业网站都喜欢在右侧放置一个"联系我们"悬浮控件,当移动滚动条时,这个控件并不是老老实实地保持不动,而是一直上下抖动(你可以随便打开一个百度搜索结果中的减肥广告观察这个现象)。悬浮控件的色彩和布局,是设计师应该操心的问题;本文以实现一个悬浮广告为例,说明如何用js“无抖动”地实现一个“由滚动条调位置决定是否悬浮”的自定义悬浮控件。

不只文人相轻,程序员也经常互相鄙视
——二逼程序员和一位被他激怒的程序员之间的对话

有个成语叫“文人相轻”,用来形容写文章的人喜欢相互鄙视的现象。事实上,不只古代的文人有这种坏习惯,今天的程序员也喜欢相互鄙视。这不,某技术qq群里,有一程序员贴出了一段代码,向群里人请教;群里有另一位程序员不认识该君所贴代码使用的语言,遂问“这是什么语言”,哪知对方竟然回敬了一句“高级语言”。于是,一场程序员之间的口水战就此展开了。这场口水战甚是搞笑,二逼的程序员激怒了别人还不自知,反而轻飘飘的觉得很high;被他激怒的程序员一直在克制,表面上装傻充愣,实际上却是冷嘲热讽。最奇葩的是,最后两人竟然虚伪地握手言和了!!下面就是他们之间的奇葩对话:

Django:为model添加自定义的manager进行数据查询微知识

我的网站使用django写的,最近增加了这样一个新需求:后台添加一篇新文章,但并不急于发表,而是现将其隐藏起来,到达特定的时间点后再将其发表。为此,我给原先的article模型添加了一个新的布尔型字段public。这样一来,需要在对article进行查询的源代码中,添加一个过滤器,过滤掉public的值为False的文章。由于在原先的代码中,这样的查询有好多处,逐一进行修改效率太低,而且很容易出错。好在django比较强大,可以直接给model添加自定义的manager进行数据查询,从而轻松地解决我的问题。

Django:如何admin管理界面中显示中文model名称微知识

在定义django模型时,我喜欢使用驼峰命名法,比如定义一个叫“BookReviewWeibo”的model,代表“微读书”。但是,django的admin管理界面在显示这个model的名称时,会将这个驼峰式的名称拆分为独立的单词,并最后一个单词使用复数。例如“BookReviewWeibo”这个model,在admin中会被显示为“book review weibos”,十分难看。

如何通过图灵机解释“邱奇-图灵论题”读书笔记
——Forouzan的《计算机科学导论》笔记(一)

Forouzan著的《计算机科学导论》第十七章中,为了说明“邱奇-图灵论题”,作者介绍了一种只有“递增、递减和循环”三条语句的简单编程语言,指出任何一种实际的高级编程语言都可以用这种简单语言模拟;然后作者介绍了图灵机的概念,并详细解释了如何用图灵机来模拟这种简单语言;在此基础上,作者发问“图灵机是否能解决一台计算能解决的任何问题?”,从而提出了邱奇-图灵论题。作者的思维脉络十分清晰,但我在学习的时候有个问题很困惑。

如何打出英文姓名中的点号“·”微知识

今天在技术群里讨论问题,打“冯·诺依曼”这个姓名的时候,由于不知道如何快速敲出这个讨厌的点号“·”,遂而直接打成了von neumann,哪知道群友们被搞得一团雾水,大呼高大上。

无觅华丽自宫,站长们还是放弃吧

无觅在国内最早推出相关文章插件,很多知名的博主和站长都在使用它,比如月光博客和卢松松博客。11年刚接触无觅的这款插件时,我还是一只菜鸟,深深地为无觅的这种简洁、新奇、实用的创业点子所折服。其他团队随后也推出了类似的插件,不过无觅一直处于领跑状态。无觅团队随后又推出了一系列新产品,比如广告平台、无觅阅读、app工厂、评论插件,以及最近的匿名社交产品,但是无觅似乎已经迷失了方向,部分产品被放弃,或者疑似停止维护。由于无觅一再自废武功,对站长越来越冷淡,在经过两周的纠结后,我只能忍痛放弃它了。

千呼万唤,sae终于开通备案服务了微动态

与阿里云、腾讯云相比,sae性价比对站长是最高的,但苦于没有域名备案资格,让站长门一直很纠结。昨天晚上收到sae发来的邮件,期待已久的备案服务终于开通了,这对普通站长绝对是一个好消息。sae的竞争力,将会大大提高。

发现一个百度的web前端小bug微评论

当某个关键字搜索结果较少时,如果网页的高度小于浏览器的高度,那么百度的页脚便无法在浏览器中贴底,看起来很是怪异(见下图)。由于一般情况下,网页高度都是大于浏览器高度的,所以该bug无伤大雅。但是百度作为国内技术领先的IT公司,在前端细节上这么不严谨,未免贻笑大方。经过测试,谷歌的前端也存在该bug,但比百度轻微一点。当搜索结果较少时,谷歌的页脚是可以贴底的,但如果此时把浏览器窗口拖大,谷歌也会出问题。

站长们,看看我是怎么被我的博客网站给玩了的

做一个独立的个人网站,并不像看着那么简单。从选择域名、购买主机、备案、设计、编码(前后台)、部署、维护、推广,都得自己一个人搞定。如果网站是内容驱动型的,比如博客,那你还得持之以恒地发布原创的内容。虽然我是一个秉承“生命在于折腾”理念的人,喜欢体会折腾带来的无限乐趣,但与此同时,作为一个“重度强迫症”患者,我深刻地体会到:大多数情况下,不是你在折腾网站,而是网站在折腾你。弗洛姆描述人与人的关系时说,每个人都有兼有施虐狂和受虐狂两种倾向。这句话用来形容站长和他的网站,也是非常贴切的。站长朋友们,揉一揉你们浮肿的双眼,看看兄弟我是怎么被网站给“玩”的。

基于django的博客系统如何完美地使用富文本编辑器ckeditor?

django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便。遗憾的是,django并没有提供官方的富文本编辑器,而后者恰好是内容型网站后台管理中不可或缺的控件。ckeditor是一款基于javascript,使用非常广泛的开源网页编辑器。它可以和多种编程语言相结合,python当然也不例外。本文就来介绍一下如何在基于django博客系统如何完美地用上ckeditor。