2007年10月18日星期四

PlotKit

http://media.liquidx.net/js/plotkit-doc/PlotKit.QuickStart.html


PlotKit

PlotKit is a Javascript graph plotting library. It is aimed at web applications that require plotting series of data in modern web browsers.

PlotKit requires MochiKit. (1.3 or higher)

PlotKit supports both HTML Canvas and SVG, along with an emulated canvas for Internet Explorer.

PlotKit is easily extensible to include other rendering engines, styles and layouts. Please pursue the documentation for more information.

PlotKit is licensed under the BSD License, so you can include it in your free or commercial applications without worrying.

jQuery

http://jquery.com/

jQuery is a new type of JavaScript library.

jQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages. jQuery is designed to change the way that you write JavaScript.

"You start with 10 lines of jQuery that would have been 20 lines of tedious DOM JavaScript. By the time you are done it's down to two or three lines and it couldn't get any shorter unless it read your mind." - Dave Methvin

You can find a useful visual reference here :http://visualjquery.com

2007年10月17日星期三

openCascade - 3D modeling & numerical simulation

一个三维建模和数值模拟的开源代码库
In short, Open CASCADE Technology Public License is LGPL-like with certain differences. ...

Areas of use

Whether you are a software vendor or an industrial company, a research institute or a University, or an individual developer you will encounter similar issues when developing specific technical and scientific applications.

No matter what your business profile is, Open CASCADE Technology brings you numerous competitive advantages over other modeling kernels. Using Open CASCADE will increase your productivity and will solve very special problems.

To help you evaluate whether Open CASCADE Technology is the right tool for developing your specific applications, we list a few typical examples of applications and show what Open CASCADE offers to speed up their development (see "More about...").

These typical needs can appear in various industrial domains, such as aerospace or automotive sectors, in scientific research or commercial software edition. Discover these and other domains where Open CASCADE Technology has already been successfully applied. Find out about leading companies that already benefited from using it. See our customer list at www.opencascade.com.

A Visual Explanation of SQL Joins

原文发表于2007年10月11日的http://www.codinghorror.com/blog/

A Visual Explanation of SQL Joins

I thought Ligaya Turmelle's post on SQL joins was a great primer for novice developers. Since SQL joins appear to be set-based, the use of Venn diagrams to explain them seems, at first blush, to be a natural fit. However, like the commenters to her post, I found that the Venn diagrams didn't quite match the SQL join syntax reality in my testing.

I love the concept, though, so let's see if we can make it work. Assume we have the following two tables. Table A is on the left, and Table B is on the right. We'll populate them with four records each.

id name       id  name
-- ---- -- ----
1 Pirate 1 Rutabaga
2 Monkey 2 Pirate
3 Ninja 3 Darth Vader
4 Spaghetti 4 Ninja

Let's join these tables by the name field in a few different ways and see if we can get a conceptual match to those nifty Venn diagrams.

SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name

id name id name
-- ---- -- ----
1 Pirate 2 Pirate
3 Ninja 4 Ninja

Inner join produces only the set of records that match in both Table A and Table B.

Venn diagram of SQL inner join
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name

id name id name
-- ---- -- ----
1 Pirate 2 Pirate
2 Monkey null null
3 Ninja 4 Ninja
4 Spaghetti null null
null null 1 Rutabaga
null null 3 Darth Vader

Full outer join produces the set of all records in Table A and Table B, with matching records from both sides where available. If there is no match, the missing side will contain null.

Venn diagram of SQL cartesian join

SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name

id name id name
-- ---- -- ----
1 Pirate 2 Pirate
2 Monkey null null
3 Ninja 4 Ninja
4 Spaghetti null null

Left outer join produces a complete set of records from Table A, with the matching records (where available) in Table B. If there is no match, the right side will contain null.

Venn diagram of SQL left join
SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableB.id IS null

id name id name
-- ---- -- ----
2 Monkey null null
4 Spaghetti null null

To produce the set of records only in Table A, but not in Table B, we perform the same left outer join, then exclude the records we don't want from the right side via a where clause.

join-left-outer.png
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableA.id IS null
OR TableB.id IS null

id name id name
-- ---- -- ----
2 Monkey null null
4 Spaghetti null null
null null 1 Rutabaga
null null 3 Darth Vader

To produce the set of records unique to Table A and Table B, we perform the same full outer join, then exclude the records we don't want from both sides via a where clause.

join-outer.png

There's also a cartesian product or cross join, which as far as I can tell, can't be expressed as a Venn diagram:

SELECT * FROM TableA
CROSS JOIN TableB

This joins "everything to everything", resulting in 4 x 4 = 16 rows, far more than we had in the original sets. If you do the math, you can see why this is a very dangerous join to run against large tables.

[advertisement] Axosoft's OnTime 2007 allows software development teams to collaborate and ship software on time. It manages projects hierarchically, tracking defects, requirements, tasks, and help desk incidents in one place. Hosted or installed. Windows or Web. Free SDK and Free single-user license.

Posted by Jeff Atwood Comments (79) 106 blog reactions

Web Development Tutorials

These tutorials are designed to support college-level classes in Web development, but they can provide introductions to these topics for anyone interested. All are works in progress and are being expanded as time permits. They run under Microsoft Server 2003 and .NET Framework 2.0, and have been tested using Microsoft Internet Explorer 6.0 under Windows XP. The current URL is http://it.maconstate.edu/tutorials.

MERLOT icon
These tutorials earned the 2006 MERLOT (Multimedia Educational Resource for Learning and Online Teaching) Information Technology Classics Award for Exemplary Online Learning Resources: http://www.merlot.org. (Awarded August 2006)

Students and professionals world-wide who have taken time to offer constructive comments and suggestions for improving and expanding the materials.



一个在线的教程,有XHTML/CSS, JScript,XML, ASP.NET 2.0 ASP.NET 1.1, PHP和VB等

2007年10月9日星期二

MooTools Javascript开发框架

http://mootools.net/

MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API.

MooTools code respects strict standards and doesn't throw any warnings. It's well commented and has meaningful variable names: a joy to browse and a snap to understand.

这是一个javascript开发框架,良好的跨平台代码,有各种动态效果。

Periodic Table 元素周期表

下面是几个元素周期表和相关元素数据的网站
http://code.jalenack.com/periodic/
http://www.chemicool.com/

信息比较全,而且页面设计的也比较好。

2007年10月8日星期一

fatal error C1083: Cannot open include file: 'windows.h': No such file or directory

When compiling some files e.g. CPPUnitTest, I got this fatal error:
fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
Solution: You must be using Express Edition of Visual Studio which does not include the win32 SDK:
go to Visual C++ Express Edition home, cilck using Platform SDK, do what ms tells you to do .


2007年10月7日星期日

网站安全快速检查清单

这里是从http://www.googlechinawebmaster.com/转来的一篇文章

网站安全快速检查清单

发表者: Nathan Johns

原文:Quick security checklist for webmasters
发表于: 2007年9月18日,星期二,12:34AM

最近几个月,失密网站的数量明显增多。一种解释是黑客黑掉了一些网站来发布恶意软件或制造垃圾搜索结果。不论是何原因,这是我们为站长们提供一些网站安全方面的小技巧的好时机。

免责声明:虽然我们收集了很多小贴士以及链接,我们也鼓励管理员“请在家中尝试以下方法”,但是这绝不是一个保护你网站安全的完整清单。我们希望它有帮助,但我们也建议您要对网站安全进行更深入的研究。
  • 检查你的服务器配置
在Apache的网站上有一些安全配置技巧, 微软也有一个IIS技术资源中心。其中的主要技巧包括目录权限信息,服务器端包括认证和加密信息。
  • 总是使用最新的软件更新和补丁
人们经常犯的的错误是在自己的网站上安装一个论坛或博客软件,然后就再也不管了。就像你的车总是要保养一样,保持对你安装的任何软件的最新更新也是很重要的。需要一些小贴士?Mark Blair的博客上有一些很好的,包括为你网站上所有的软件和插件列个清单,并跟踪版本号和更新历史。他还建议利用任何软件开发者网站提供的feed。
  • 经常留意你的日志文件
养成这个习惯有很多好处,其中之一就是安全性的增加。你可能会对你的发现有些惊讶。
  • 检查你的网站,看看有没有常见漏洞
避免存在有开放权限的目录。这几乎就像把你家的前门敞开,门前的垫子上写着“来吧,请随意!” 你也要检查任何xss(跨站点脚本)和SQL注入漏洞。最后,选择好密码。你可以依循Gmail支持中心的一个很好的指南,它会帮助你选择一个密码。
  • 警惕第三方内容提供商
如 果你正考虑安装一个由第三方提供的应用软件,例如一个控件,计数器,广告网络,或网络统计服务,一定要非常小心。虽然网络上有很多非常好的第三方内容,有 些提供商也可 能利用这些应用软件来干坏事,例如对你的访客有危险的脚本。要确保应用软件来自有信誉的提供者。他们有一个合法网站吗?他们提供技术支持吗?他们有联系信 息吗?有其他管理员用过该软件吗?
  • 尝试在Google上用site:搜索来看看Google索引了你的什么网页
这看似有点明显,但它经常被忽视。对你的网站做一个例检并确保一切正常总是有好处的。不熟悉site:搜索操作?它是一个让你只在一个具体网站上搜索的方法。举例说,搜索 site:googleblog.blogspot.com只会返回谷歌官方(英文)博客的结果。
谷歌的站长工具是免费的。它还有各种各样的好功能。譬如,它有关于你的网站的状态数据和管理Googlebot抓取您网站的工具。另一个亮点是,如果谷歌认为你的网站已被攻陷并被放置了恶意软件, 我们的站长控制台会显示更详细的信息,如一些有害网址的样本。一旦你认为恶意软件已经被删除,你可以通过站长工具来要求重新审查。
  • 使用安全协议
数据传输应该用SSH和SFTP,而不是象telnet或FTP的纯文本协议。 SSH和SFTP会加密,也就更安全。关于这个和其他许多有用的小技巧,请参考StopBadware.org的清除和保护你的网站的小技巧
这个博客上有很多很好的关于线上安全的内容并有指向有用资源的链接。建议你把它加到你的Google Reader Feeds。:)
  • 从您的网站寄存服务公司寻求支持
许多网站寄存服务公司都有技术服务组。如果你觉得有点儿不对劲,或者仅仅想确保你的网站是好的,你可以访问他们的网站或给他们打一个电话。

我们希望你能从我们的小贴士中发现有用的信息。如果您想分享你自己的技巧,请为这篇文章发表评论,或者在谷歌站长帮助小组开一个讨论。立即动手,让你的网站更安全!

2007年10月5日星期五

VBScript:object required error

Dim a
Set a="asdfa"
语句有时会遇到这样的错误:

Microsoft VBScript runtime エラー '800a01a8'

Object required: '[string: "asdfa"]'

/yourfile.asp, 行 36

解决方法:
这里不需要使用set,赋值时直接用等号就可以了,如果是指定对象才用set.

Dim a
a="asfda"