【问题】传球问题
有a,b,c,d,四个人
互相传球
从a开始传出
经过5次传球后
球回到a的手里
算总共有多少种传球的方法
一个“精湛”的JS程序
下面是一个很“精湛”的JS程序:
http://rmd.atdmt.com/tl/DocumentDotWrite.js
这个JS文件中“精湛”之处在于,其只有一行代码,如下所示:
function DocumentDotWrite(s){document.write(s);}
下面这个贴子讨论了这个JS文件:http://forums.thedailywtf.com/forums/p/7872/147330.aspx
大家都在猜测为什么那个程序员要这么干,下面是一些猜测:
网友superjer说:这是一个伟大的创造,解决了你的键盘“.”键损坏的情况。
网友Heron说:这是从Character Map上拷贝粘贴下来的。
网友mfah说:这是世界上第一个用C来包装Javascript的示例。
网友djork说:我是一个用手机编程的人,这个方法可以让人在手机上更容易输入我的代码。
网友PSWorx说:可能他们想把document.write作为一个回调函数,但直接把document.write传进去不行。
还有一个网友说:这么做或者可以阻止网页上的广告阻截器。
呵 ...
Java异常另类手册
在这个页面上http://rymden.nu/exceptions.html,你会看到Java的各种异常,不过,你看看各个异常的解释,你会发现非常有趣,下面例举几个吧:
java.lang.ArithmeticException
你正在使用计算解决一个你不能自己解释的数学问题,请你重新读一下你的程序,然后,再试一次。
java.lang.ClassNotFoundException
你应该是发明创造了一个你自己的类,目前,Java中还没有实现“种姓制度”,但是Java明显使用了巴厘岛的种姓制度。也就是说,如果你是一个武士(wesia),也就相当于印度种姓制度中的第三层——吠舍(vaishya)
java.lang.IllegalAccessException
你是一个正在运行Java程序入室盗窃的小偷,请停止对电脑的盗窃行为,离开房子,然后再试一次。
java.lang.NullPointerException
你没有狗。请你先找一只狗(比如:布烈塔尼獵犬),然后再试一次。
java.lang.SecurityException
你已被认为是国家安全的一个威胁。请你呆在原地别动,然 ...
纯CSS做的3D效果
下面是一个用CSS做的一个3D的效果。你可以使用鼠标在图片中移动来显示这个效果。其实,这个效果只是能过移动图片来产生的。其可以工作在Internet Explorer 8, Firefox 3, Opera 9, Safari 3, Chrome 4 和 Konqueror 3.5下。网页在这里:http://www.romancortes.com/ficheros/meninas.html
Web程序的最佳测试数据
这里有一篇Matthias写的关于转义字符文章-“The art of escaping”,这篇文章告诉你有一些比较特殊的字符需要你去认真的处理,不然,你的网站程序轻则出错,重则被人黑了。这些物殊的字符是[<"@%'&_\?/:;,>কী €] ,你可以使用这个字符串到任意一个可以输入的Web程序上去做测试。
下面这个表格告诉你为什么这些字符很特殊。这个列表不会是完整的,而且也永远不会完整。
相关领域
转义字符
HTML
< , > , &
JSON
“
SQL in mySql
字符串 “, ‘, 通配符 %, _
rfc 1738 for URL-parameter
;, /, ?, :, “, @, =, & 空格
把这些转义字符放在一起,然后再整些 utf-8 的一些特殊字符。这些utf-8的字符你可以参看本站的 ...
Java读写Excel
本文主要向你演示如何使用JavaExcel API来读写Excel文件。关于JavaExcel API,这是一个开源的lib库。其相关的feature如下:
支持Excel 95, 97, 2000, XP, 2003 的制表页。
可以读写相关的Excel公式 (仅支持Excel 97 及以后版本)
可以生成 Excel 2000 格式的xls文件。
支持字体,数字和日期格式。
支持单元格的阴影,边框和颜色。
可以修改已存在的制表页。
国际化多语言集。(公式目前支持,英文,法文,西班牙文和德文)
支持图表拷贝。
支持图片的插入和复制。
日志生成可以使用Jakarta Commons Logging, log4j, JDK 1.4 Logger, 等。
更多……
你可以在这里下载:http://jexcelapi.sourceforge.net/,然后,把jxl.jar加到你的Java的classpath中。
下面是两段例程,一段是如何创建Excel,一段是如何读取Excel。
创建Excel
package writer;
import java.io.Fil ...
Web中的省略号
在Web开发中,对于一种情况很常见。那就是,文本太长,而放置文本的容器不够长,而我们又不想让文本换行,所以,我们想使用省略号来解决这个问题。但是,在今天HTML的标准中并没有相关的标识或属性让你可以简单地完成这个事。但是我们可以使用CSS样式表来完成这个事,在IE,Safari,Chrome,Opera中都可以。但在Firefox中却不行,但我们可以使用jQuery来解决Firefox不兼容的问题。下面是相关的代码示例。
使用CSS设置省略号
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
overflow 属性是必需的,并且属性要是hidden。
white-space: nowrap 也是必需的。如果文本可以自动换行,就算是不可见,也不会有省略号的。因为文本换行了,所以没有超过容器的尺寸,所以也就不会有省略号了。
width 属性仅在需要支持IE6时设置。 设置成100%仅是为了解决I ...
程序员的相关笑话(二)
前面发表过《程序员的相关笑话(一)》现在继续一些相关的笑话。
目录
牧羊人与IT顾问
程序员睡觉
一个程序出错信息
为什么程序员喜欢UNIX
Google递归关键字
一句话幽默
牧羊人与IT顾问
从前,有一个牧羊人,他有很多的羊。一天他赶着他的那群羊到了一条公路边上。突然,有一辆保时洁急驶过来,上面坐着一个年轻人人,穿着Armani的衣服,和Cerutti的皮鞋,Ray-Ban的太阳眼镜,TAG-Heuer的手表,以前Versace的领带。
他走到牧羊人面前问牧羊人:“如果我能说出你有多少只羊,你能给我一只吗?”
牧羊人看了看他那一大群数都数不过来的羊,说:“可以!”。
那个年轻人,于是打开了他的笔记本电脑,接上手机,进入了NASA Webster,通过GPS定位,开始扫描。然后打了40多页充满各位对数微积分的公式的Excel表格,最后通过他的那个高科技迷你打印机打出了150多页的分析报告,然后,他看了看报告,走到牧羊人前说:“你一共有1586只羊!”
牧羊人拍手道:“牛啊,你说的一点也没错,你挑一只吧”。
于是 ...
哥是玩程序的
下面一组有趣的Web示例,这些示例使用Web的一些很“土”控件做出一些很有趣的玩意儿。原来,编程是可以用来玩的,看看这些玩程序的人搞出的这些有意思的玩意,简直是玩得太有意思了。不过,请注意,这些东西只能使用Chrome打开,不然,你看不到相关的效果。
用滚动条做的时间
http://toki-woki.net/p/scroll-clock/,下面的抓图只显示了时和分,后面还有不停跳动的秒。可以在IE,Fireforx和Chrome中查看。
用CheckBox做成一个水滴效果
http://the389.com/works/drops/,这个示例的整个页面由Checkbox构成,你用鼠标点一下其中一个CheckBox,你会看到一个巨大的水滴滴了下去。Chrome中效果更好。
一个用滚动条做的扭动效果
http://the389.com/works/shake/,页面打开你可以看到一排滚动条,用鼠标快速地横向滑动,你会看到滚动条开始跟着你的鼠标扭动。太BT了。请使用Chrome查看。
用CheckBox做的一个音阶
http://the389.com/works/tenori/, ...
如何使用Python操作摄像头
用过USB摄像头的都知道,你需要使用鼠标来操作它,比如截个图,录个像什么的,要点N次鼠标,对于我们那些不喜欢多次点击鼠标的人来说,这是一件很boring的事情,所以,本文将教你如何使用Python来操作摄像头。
这里,我们需要三个Python库: VideoCapture, PIL 和 pygame。使用这三个库你可以非常容易的编写一个摄像头程序。之所以使用pygame,其目的就是因为这个库可以处理视频帧(fps)。下面是代码:
from VideoCapture import Device
import ImageDraw, sys, pygame, time
from pygame.locals import *
from PIL import ImageEnhance
res = (640,480)
pygame.init()
cam = Device()
cam.setResolution(res[0],res[1])
screen = pygame.display.set_mode((640,480))
pygame.display.set_caption(' ...
Javascript 曲线表作图库
dygraphs 是一个开源的Javascript库,它可以产生一个可交互式的,可缩放的的曲线表。其可以用来显示大密度的数据集(比如股票,气温,等等),并且可以让用户来浏览和解释这个曲线图。在它的主页(http://www.danvk.org/dygraphs/),你可以看到一些示例和用法。
要使用这个库,很简单,只需要包括dygraph-combined.js文件,其文件尺寸很经济,也就45K。
<script type="text/javascript"
src="dygraph-combined.js"></script>
下面两个示例,你可以把数据写在javascript中,也可以设置一个csv文件。
示例一,你可以在代码中指定数据
<div id="graphdiv"></div>
<script type="text/javascript">
g = new Dygraph(
// containing div
&nb ...
UI的恶梦
UI可能是编程中最令人头痛的事了。设计UI通常对于程序员来说是一件很痛苦的事情。下面,让我们来看一看一些可怕的UI设计吧,前面几个UI都是出于咱们程序员自己之手,把他们放在这里,希望能引起大家的注意。(国内软件的UI嘛的我就不说了,省得得罪人)下面这个例子不知道你是否让你似曾相识,呵呵,记得我上大学时,用delphi,PB经常开发这样的界面,当时觉得自己特牛!现在看上去嘛,简直就是一个垃圾。(关于UI设计,你可以查看本站的《35个强大的UI设计教程》)
首先,我们先来看一个叫wGetGUI的小工具软件,这是一个100%由程序员设计的UI,如下所示:
看到这样的界面,你会觉得怎么样?“高科技”还是“头晕”?相比起命令行的那个wget,真不知道这个图形界面的工具是怎么被设计出来。哎。这里是这个工具的网页:http://www.jensroesner.de/wgetgui/,网页上还有几张图,也是一样的。
不过,比起下面这个来,wGetGUI算不上什么了。下面这个软件叫做:FileMatrix,这个界面是前所未有的经典,那叫一个相当强大啊。估计可以节省很多对话框和tab页了,把软件的 ...
程序员的相关笑话(一)
目录
问答
刹车失灵
关于编程语言
自行车
火车
问路
警告
问答
Q:你是怎么区分一个内向的程序员和一个外向的程序员的?
A:外向的程序员会看着你的鞋和你说话时。
Q:为什么程序员不能区分万圣节和圣诞节?
A:这是因为Oct 31 == Dec 25!(八进制的31==十进制的25)
刹车失灵
有一个物理学家,工程师和一个程序员驾驶着一辆汽车行驶在阿尔卑斯山脉上,在下山的时候,忽然,汽车的刹车失灵了,汽车无法控制地向下冲去,眼看前面就是一个悬崖峭壁,但是很幸运的是在这个悬崖的前面有一些小树让他们的汽车停了下来,而没有掉下山去。三个惊魂未定地从车里爬了出来。
物理学家说,“我觉得我们应该建立一个模型来模拟在下山过程中刹车片在高温情况下失灵的情形”。
工程师说,“我在车的后备厢来有个扳手,要不我们把车拆开看看到底是什么原因”。
程序员说,“为什么我们不找个相同的车再来一次以重现这个问题呢?”
关于编程语言
如果C++是一把锤子的话,那么编程就会变成大手指头。
如果你找了 ...
Visual Studio的Vim插件
前两天向大家介绍了Eclipse 和Vim相互交融的插件,今天向大介绍几个插件,可以让你在Visual Studio中使用Vim的那些操作。
第一个是:ViEmu,下面是一个演示图片。不过这个插件是商业版的,而且还不支持VS2010。不过据其网站说很快就会支持。最夸张的是ViEmu还支持Word和Outlook,SQL Server,呵呵。
如果你要用免费的的插件,没有问题,试工这个新出的插件吧:VsVim。只不过好像目前只支持VS2010。
看来Vim还是很强大的,不然,怎会有这些人把其集成到了 Eclipes 和Vistual Studio中,呵呵。Unix下的这个老得都不行了的编辑器正在影响着图形界面的编辑器。最后,让我问问你,你会用Vim吗?
我是怎么招聘程序员的
很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章。
工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,我个人觉得一个好的面试,面试官是很重要的,所以,本文想从“面试官”的角度来阐述一下。于是,有了下面这样一篇的文章,希望本文对你的职场经历有用,特别是那些正在招聘和面试程序员的朋友,我觉得这篇文章会对大家有很多启示。此外,做为被面试的人,你可以看看本站的《别的程序员是怎么读你的简历的》《程序员需要具备的基本技能》《优秀程序员的十个习惯》其它一些和程序员相关的文章。
对于招聘方来说,在招聘程序员的时候,我估计面试应聘者时,最主要想知道的是下面三件事:
这个程序员的是否够聪明?
这个程序员能否把事情搞定?
这个程序员能和我的团队在一起工作吗?
我相信,这是所有团队经理招人要考虑的三个问题,所有的问题也基本上围绕着这三个问题。有些时候,你也许觉得程序员的技术技能可以同时解决这三个问题,一个技术 ...
SQL的Where语句
某DBA在查看自己的数库日志的时候,看到了数据库服务器上出现了很多很怪异的SQL的Where条件语句,是下面这个样子:(所有的where语句前都有了一个叫“1=1”的子条件)呵呵。
要理解这个事情的原因其实并不难。只要你是一个编写数据库的程序员,你就会知道——动态生成where后的条件的“麻烦”,那就是条件的“分隔”-and或or。下面听我慢慢说来。
我们知道,大多数的查询表单都需要用户输出一堆查询条件,然后我们的程序在后台要把这些子条件用and组合起来。于是,把and加在各个条件的中间就成为了一件“难事”,因为你的程序需要判断:
如果没有条件的话,则不需要where
如果只有一个条件的话,不需要and.
如果有多个条件的话,
如果and是持续加在每个条件后面的话,那么就要判断是否是最后一个条件,因为最后一个不能加and.
同样,如果and是要加在每个条件前面的话,你就需要判断是否是第一个,如果是,那就不加。
真是TMD太烦了,所以,编程“大拿”引入了“1=1”条件语句。于是,编程的难度大幅度下降,你可以用单一的方式来处理这若干的查询子条件了。 ...
Coderun.com 在线开发IDE
相信大家都还记得我以前向大家推荐的《在线代码编译服务Codepad.org》吧。这回的这个更猛——在线的代码开发的IDE,可以编译,执行,调试。不过,主要针对Web方面的,主要是C#,ASP.NET,Javascript(JQuery)和PHP,很强大哦。那句话是怎么说来的——“如果一个软件可以用Javascript来写,那么这个软件的最终版本会是Javascript”。这个在线的IDE是:
http://www.coderun.com/ide/
有朋友在留言中说,这个项目可能不实用,没什么意思,而我想说,Google的Chrome OS项目可能非常喜欢这个东西。顺便说一下,这个Online的IDE是开源的,源码在这里:http://coderun.codeplex.com/。
Javascript程序员嘴最脏??
请看下图,我在Google Code上,针对每个程序语言都搜索了一下“fuck”一词的出现文件的个数X,以及没有出现fuck一词的文件的个数Y,然后放在Excel里求了一下百分比(X/(X+Y) * 100%),做了一个图。结果,JavaScript语言中出现的次数高达0.56%,名列全部语言之首,然后是Perl,C 和 PHP。(对于Javascript程序员的这种行为可以理解,因为IE,因为浏览器嘛,我就不多说了)
相关的数据表格如下:
(全文完)
编程语言时间地理图
有人使用Google Map做了一个网页,把所有编程语言的时间线和地理位置,如下图,上面是一个编程语言的时间轴,下面是Google Map地图,点击编程语言,你可以查看该编程语言的发明者,发明地,和其Hello World示例(点击这里查看更多的Hello World)
http://www.geospat.com/hoprola/
(点击小星,可以看到语言的发明者和示例)
C 语言整型谜题
如题,此篇文章是描述C语言中的整数谜题。
假定机器字长是32位的,用2的补码表示整数。对以下C表达式,请问它们在所有情况下都正确吗?如果不是,请给出反例。
初始化:
int x = foo();
int y = bar();
unsigned ux = x;
unsigned uy = y;
1. 若x < 0, 则x * 2 < 0
2. ux >= 0
3. 若x & 7 == 7, 则(x << 30) < 0
4. ux > -1
5. 若x > y, 则-x < -y
6. x * x >= 0
7. 若x > 0 && y > 0, 则x + y > 0
8. 若x >= 0, 则-x <= 0
9. 若x <= 0, 则-x >= 0
答案如下:
1. 错。当x = INT_MIN
2. 正确。
3. 正确。
4. 错。-1被转换成UINT_MAX
5. 错。当x = -1, y = INT_MIN
6. 错。当x = 65535
7. 错。I ...