归档 2014年2月

表达式括号补全与求值

编写程序,从标准输入得到一个缺少左括号的表达式并打印出补全括号之后的中序表达式。

例如给定表达式: 1 + 2 )* 3 - 4 )* 5 - 6 ) ) )

程序可以输出:((1 + 2 )*((3 - 4)*(5 - 6)))

并计算结果,Java代码如下:


import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

/**
 * 表达式求值
 * 
 * @author 在线疯狂 ...

继续阅读

django-blog-zinnia更新django-tinymce版本4.0

从链接下载django-tinymce4的分支版本:django-tinymce-v4-branch

注:此版本尚在开发过程中(最后一次更新于2013年12月初),许多功能还未实现,但并不影响主要功能的使用。

更新zinnia/templates/admin/zinnia/entry目录下的tinymce_textareas.js

替换为如下内容:


tinymce.init({
	id: "id_content",
	valid_elements : '*[*]',
	selector: "textarea",
	language: "zh_CN",
    theme: "modern",
    plugins: [
        "advlist autolink lists link image charmap print preview hr anchor pagebreak",
        "searchreplace wordcount visualblocks visualchars code fullscreen",
        "insertdatetime media nonbreaking save ...

继续阅读

程序员的《权利法案》

“程序员应有的权利你都要去争取!而且记住:你可以让公司做出改变,要不然你就换一家公司。”

一个公司愿意付给一个开发人员6万~10万美元的薪水,却用糟糕的工作条件以及破烂的硬件设施摧残他,这对我来说是难以置信的。不管怎么说,这买卖一点都不划算。然而,我却总能看到这样的事情。这让人很震惊,竟然有这么多公司依然没有为软件开发者的成功提供必要的基础条件。

我提议,我们应该制定一个针对程序员的《权利法案》,以防止公司拒绝给程序员提供取得成功所必需的基础条件,最终达到保护程序员权利的目的。

1. 每个程序员都应该有两个显示器

在LCD价格跳水以及双输出的显卡如此普及的情况下,如果你还把你的开发者限制在一个屏幕上,那你一定是疯了。通过把电脑桌面双倍扩大可以获得生产力的提升,这已经被充分论证过了。如果你想把开发者的生产力发挥到极致,请确保每个开发者都有两个显示器。

2. 每个程序员都应该有一台快速的电脑

程序员必须运行很多软件才能完成他们的工作:开发环境、数据库引擎、网络服务器、虚拟机,如此等等。运行所有这些软件需要一台快速的电脑,再配上很多内存。程序员的电脑越快,他们每次编译、调试的周期就越短。我不是让你当“发烧友”,花天价去购买最新、最顶级的配置——但是,你也得向高配置看齐吧。给你的开发者配备快速的、带有很多内存的电脑吧。眼巴巴地盯着进度条等待绝对是一种浪费!

3. 每个程序员都应该自己选择鼠标和键盘

在大学的时候,我经营过一个代客油漆的业务。我雇用的每一位油漆工都需要他们自己购买刷子。这是我早期积累的经验之一。将一把标准的刷子扔给一位新的油漆工是行不通的。这些“公司标配的”刷子不被爱惜,很快就会沦落到破损不堪的状况。但是,那些自己买刷子的油漆工很珍惜他们的刷子。他们懂得欣赏花20美元买来的专业刷子与那些从一元店里买来的一次性刷子之间的差别。拥有自己的刷子让他们产生一种持久的责任感和手艺人的感觉。程序员应该和他们的鼠标以及键盘保持一种相同的关系——它们是我们用来实践我们手艺的最基本的日常工具,我们应该加以善待。

4. 每个程序员都应该有一把舒适的椅子

别小看这个问题!很大程度上来说,我们靠屁股每天坐上8个小时来谋生。为什么不在一把舒适的、设计优良的椅子上度过那8小时呢?要坐8个小时啊,仅仅给程序员提供勉强过得去的椅子是不够的,要让他们坐得愉悦才行!当然,你雇用程序员主要是为了他们聪明的脑袋,但是也别忘了照顾他们的其他重要部位。

5. 每个程序员都应该能快速接入互联网

任何东西只要能“偷”来的,好的程序员从来不会自己去写。互联网是有史以来“偷”东西的最佳去处。我完全赞成“读万卷书”,但如果没有快速响应的互联网搜索、不能弹指间找到我想要的东西,很难想象我是否还能正常开展工作。

6. 每个程序员都应该有安静的工作环境

编程需要全神贯注。程序员在一个嘈杂的环境里是没法高效工作的。请确保你的工作环境能够保护程序员的“心流”状态,否则他们宝贵的时间将在各种干扰之下消耗殆尽。

译者注:心理学家米哈里齐克森·米哈里(Mihaly Csikszentmihalyi)将心流(flow)定义为一种将个人精神力完全投注在某种活动上的感觉;心流产生时会有高度的兴奋及充实感。

我们要求的这几个基本权利是容易办到的。这些要求并不过分,但它们对于软件开发者工作生活的质量起着关键性的作用。如果你所在的公司在这方面做得不好,那就改善一下吧,这既不需要大量的资金投入,做起来也并不难。作为程序员,你要去争取应有的权利!而且记住:你可以让公司做出改变,要不然你就换一家公司。

译文来自:呦呦鹿鸣

原文链接:the-programmers-bill-of-rights

罗塞塔石碑外语学习软件

Rosetta Stone(罗塞塔石碑)是一款采用直接教学法的语言学习软件。如果你想学习美语、英语、日语或其他语言,在这个软件里只能感受到所学语言的图像、声音和文字。没有任何其他自己母语的帮助和参考。因此,使用这个软件可以像学习母语的环境来学习外语。

Rosetta Stone 语言科技公司自主发明的 Dynamic Immersion Method (沉浸式强化训练法),通过计算机网络技术模拟了母语般的环境以及学母语的自然过程。其简单的、直觉化的学习界面和所运用的先进技术,使您将已理解的图像和所学新语言不断建立联系,从而巩固了语言学习的每一步。软件提供的及时反馈能有效地强化学习效果。系统性的课程结构,能使您从简单的名词和动词,快速提升到复杂的概念和语句,帮助您以超乎想象的速度实现语言学习的目标!学习者对外语的反应无需经过母语区的翻译,使任何年龄的人都能像孩子学习母语那样地去学习外语,有效掌握外语并能用所学外语去交流和思考。


获取Bootstrap3 Modal的调用元素

Bootstrap的模态框(Modal)是一个非常实用的Javascript组件。

从3.0版本开始,Modal对话框的调用元素可以通过show/shown事件中新加入的relatedTarget属性获取

“If caused by a click, the clicked element is available as the relatedTarget property of the event.”

用法如下:


$('#myModal').on('show.bs.modal', function (e) {
  var invoker = $(e.relatedTarget);
});

请看下面这个例子:

模态框在显示之前会先执行alert,显示调用元素的html

继续阅读

每日归档

下个月

归档